Skip to main content
POST
Criar assinatura
Assina um cliente a um ou mais preços recurring. Sem trialEnd, o primeiro período é cobrado na hora, pelo método escolhido; com trialEnd, a assinatura começa em trialing e nada é cobrado até essa data. A assinatura nasce incomplete e vira active quando a fatura do primeiro período é paga:
  • Cartão aprovado: a resposta já volta active.
  • Pix: continua incomplete até o cliente pagar. A fatura e a cobrança do primeiro período são criadas automaticamente; para achar o QR code, liste as faturas do cliente (customer, status=open), pegue a de subscription igual ao ID e consulte a cobrança em payments[].charge (veja Obter cobrança).
  • Cartão recusado: a assinatura continua incomplete (a criação não falha). Acompanhe por webhook.
Permissão: subscription.write. Apenas chave secreta (sk_…).
Os exemplos usam o sandbox (https://api.upag.dev/v1). Em produção use https://api.upag.io/v1 com sk_live_….

Endpoint

Cartão

Pix

Com período de teste

Neste endpoint o teste é uma data fixa (trialEnd) e o paymentMethod é opcional. Para um teste relativo (14 dias) e para escolher o que acontece sem método de pagamento (trialSettings), use um link de pagamento ou uma sessão de checkout. Veja o fluxo completo em Teste grátis.

Parâmetros

string (uuid)
required
UUID de um cliente da conta.
array
required
Pelo menos um item. Todos os preços precisam ser recurring, com o mesmo interval, intervalCount e moeda; o primeiro define os da assinatura. Não repita o mesmo preço.
  • price (obrigatório): UUID do preço.
  • quantity: inteiro ≥ 1. Padrão 1.
string
pix ou card. Obrigatório, exceto quando trialEnd é enviado.
string (uuid)
UUID de um cartão tokenizado. Obrigatório quando paymentMethod é card e proibido nos demais casos. O cartão precisa estar ativo e já pertencer ao customer. Um cartão recém-tokenizado não pertence a ninguém: ele passa a ser do cliente quando é usado numa cobrança de cartão ou numa confirmação de checkout. Para assinar um cliente novo no cartão, use o checkout.
string
Fim do teste, em ISO 8601. Precisa estar no futuro. A assinatura começa trialing e a primeira fatura só é gerada nessa data.

Resposta

201 Created
Response
Com trialEnd, status vem trialing, trialStartDate e trialEndDate preenchidos, startDate e o período atual null e nenhuma fatura é criada. Se o teste acabar sem método de pagamento, a fatura é gerada e a assinatura fica past_due até você definir um paymentMethod ou a fatura ser paga.

Erros