Skip to main content
No teste grátis o pagador entra na assinatura sem pagar nada hoje. O teste pertence ao link de pagamento (ou à sessão de checkout): você define a duração e o que acontece se o teste acabar sem método de pagamento, e o checkout cria a assinatura já em 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_….
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
Nenhuma cobrança nem fatura é criada. A assinatura nasce 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 enviar subscriptionData.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
Durante o teste, startDate, currentPeriodStart e currentPeriodEnd ficam null; os períodos começam quando o teste termina.

3. Acompanhar por webhook

Node.js SDK
O que acontece no último dia depende do que o cliente deixou:
  • Com cartão: a Upag cobra o primeiro período no cartão, à vista. Aprovado, a assinatura vira active; recusado, past_due e 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.
Validação da assinatura do webhook: Segurança. Payloads: assinatura e checkout. Quem quiser cancelar antes do fim do teste usa Cancelar assinatura.