Skip to main content
Uma assinatura cobra um cliente de forma recorrente por um ou mais preços recurring. A cada período a Upag gera uma fatura e a cobra pelo método guardado na assinatura (pix ou um cartão tokenizado). Também é possível começar com um período de teste (trial). Todos os endpoints exigem chave secreta (sk_…). A prévia da próxima cobrança fica em Próxima fatura.
Sandbox: https://api.upag.dev/v1 com sk_test_…. Produção: https://api.upag.io/v1 com sk_live_….

Estrutura

Atributos

string
UUID da assinatura.
string
UUID do cliente.
string | null
pix ou card: o método usado nas cobranças. null num teste sem método de pagamento.
string | null
UUID do cartão usado nas cobranças. null quando paymentMethod não é card.
string
incomplete, trialing, active, past_due, paused, canceled ou void. Veja Status.
string
Moeda dos preços (brl ou usd).
string
day, week, month ou year. Todos os itens compartilham o mesmo intervalo.
integer
A cada quantos interval a assinatura cobra (por exemplo, interval: "month" e intervalCount: 3 cobram a cada 3 meses).
boolean
Quando true, a assinatura é cancelada ao fim do período atual em vez de renovar.
string | null
ISO 8601 do início da assinatura. null durante o teste: o primeiro período só começa quando ele acaba.
string | null
ISO 8601 do fim. Preenchido ao cancelar de imediato.
string | null
ISO 8601 do início do teste. null sem teste, ou depois que ele acabou.
string | null
ISO 8601 do fim do teste. null sem teste, ou depois que ele acabou.
string | null
O que acontece quando o teste acaba sem método de pagamento: create_invoice ou cancel. null sem teste ou depois que ele acabou. Veja Teste grátis.
string | null
Início do período atual (ISO 8601). null durante o teste.
string | null
Fim do período atual (ISO 8601). É a data da próxima renovação. null durante o teste.
string | null
ISO 8601 do cancelamento efetivo.
string | null
Motivo informado ao cancelar, ou missing_payment_method quando o teste acabou sem método de pagamento e o comportamento era cancel.
array
Itens ativos da assinatura.
  • id: UUID do item.
  • product: UUID do produto.
  • price: UUID do preço.
  • name: nome do preço, copiado quando o item entrou.
  • amount: valor unitário em centavos, copiado do preço quando o item entrou.
  • quantity: quantidade.
  • totalAmount: amount × quantity, em centavos.
  • createdAt, updatedAt: ISO 8601.
string
ISO 8601.
string
ISO 8601.

Status

Acompanhe as mudanças por webhooks de assinatura: subscription.created, subscription.active, subscription.trialing, subscription.trial_ending, subscription.past_due, subscription.incomplete, subscription.paused, subscription.canceled e subscription.void.

Renovação

  • Cartão: cada período é cobrado em 1 parcela no cartão guardado.
  • Pix: a fatura do período é emitida com um QR code que vence em 3 dias.
  • Recusa ou Pix sem pagamento: a assinatura vai para past_due e a cobrança é repetida.
  • Trocas de item agendadas com applyAt: "period_end" são aplicadas na renovação. Veja Mudanças agendadas.