trialing.
Os exemplos usam o sandbox (
https://api.upag.dev/v1) com sk_test_… e pk_test_…. Em produção use https://api.upag.io/v1 com sk_live_….1. Criar o link com teste
O item precisa ser de um preço recorrente; sem item recorrente a sessão é recusada (CHECKOUT_SESSION_TRIAL_REQUIRES_RECURRING_ITEM).
Com
paymentMethodCollection: "always", o card precisa estar em paymentMethods (senão CHECKOUT_SESSION_TRIAL_REQUIRES_CARD). Pix não pode ser guardado para cobrar depois: o único método guardado é o cartão.
Campos completos em Criar link de pagamento.
2. Abrir a sessão e confirmar sem cobrar
Abra a sessão como no checkout hospedado (upag.checkout.start(code), onde code é o último trecho de link.url). A sessão já vem com trial preenchido e amount: 0. Em vez de charge, a confirmação leva paymentMethod com o cartão tokenizado:
upag-js
trialing, o cartão fica vinculado ao pagador e guardado nela para a cobrança do fim do teste, e a sessão vai para complete. Com paymentMethodCollection: "if_required", o paymentMethod pode ser omitido; com always, omitir devolve erro.
Referência: Confirmar sessão.
Data fixa em vez de duração
Na sessão criada pelo servidor você pode enviarsubscriptionData.trialEnd, uma data fixa de fim com pelo menos 48 horas a partir de agora (ISO 8601 ou Unix em segundos). trial e trialEnd não vão juntos.
Já em Criar assinatura (POST /subscriptions) só existe trialEnd, no futuro, e o trialEnd não aceita o objeto trial. Lá não há trialSettings: se o teste acabar sem método de pagamento, uma fatura aberta é criada e a assinatura vai para past_due.
Node.js SDK
startDate, currentPeriodStart e currentPeriodEnd ficam null; os períodos começam quando o teste termina.
3. Acompanhar por webhook
Node.js SDK
- Com cartão: a Upag cobra o primeiro período no cartão, à vista. Aprovado, a assinatura vira
active; recusado,past_duee novas tentativas. - Sem cartão e
create_invoice: gera uma fatura com Pix vencendo em 3 dias. - Sem cartão e
cancel: a assinatura é cancelada.