Visão geral
Uma assinatura cobra o cliente automaticamente a cada ciclo. Cada ciclo gera uma fatura, com os próprios pagamentos e status.
Todos os valores são em centavos (R$ 100,00 =
10000). O id da assinatura tem o formato sub_....
Intervalo de cobrança
O ciclo é definido porinterval × interval_count:
O intervalo total pode ter no máximo 365 dias. Acima disso, a resposta é
422 com param: "interval_count".
Campos da assinatura
Cliente (customer)
Itens (items)
Pagamento (payment)
¹ Obrigatório quando
payment.type é card e payment.card.token não é enviado.
Descontos e acréscimos
Usediscounts e increments para alterar o valor de faturas específicas:
Desconto de R$ 10,00 na primeira fatura e acréscimo de 10% na segunda
Split
Divida o valor de cada fatura entre recebedores da sua conta com a listasplit (de 1 a 10 recebedores):
As regras são validadas na criação, e não só na primeira cobrança:
- A soma dos
amountdo split deve ser igual ao total dos itens. - Exatamente um recebedor deve ter
charge_processing_fee: true. - Pelo menos um recebedor deve ter
charge_remainder_fee: true. - Pelo menos um recebedor deve ter
liable: true. - O
receiver_codenão pode se repetir, deve pertencer à sua conta e estar apto a receber.
Split entre dois recebedores
Análise de fraude
A primeira cobrança passa pela análise de fraude:- Aprovada: a cobrança segue normalmente.
- Verificação necessária: a assinatura fica
incompletee a fatura ficarequires_actioncomnext_action.type = "otp_confirmation". Nada é cobrado até o comprador informar o código em Confirmar código de verificação da fatura. - Negada: a resposta é
402, a assinatura ficaincomplete_expiredelatest_invoice.failure_reason.codeéfraud_suspected.
fraud_analysis:
reason é obrigatório quando skip é true e aceita upsell, one_click, trusted_customer ou external_analysis. Pular a análise exige permissão da conta; sem ela, a resposta é 422 (fraud_bypass_not_allowed).
Status da assinatura
Ciclo de vida
Exemplo: assinatura quinzenal com cartão
Request
Resposta (HTTP 201)
Campos da resposta
Webhooks
Assinaturas criadas pela v2 enviam os eventos no formato v2. Assinaturas criadas pela v1 continuam no formato v1.- Eventos de assinatura:
subscription.canceled,subscription.delayed,subscription.regularized,subscription.suspendedesubscription.completed. - Eventos de fatura:
invoice.created,invoice.paideinvoice.failed.
Não existe
subscription.created: a primeira fatura já vem na resposta do POST. O invoice.created é enviado apenas nas renovações. Uma fatura paga gera invoice.paid, e não charge.paid.Erros específicos
Veja o catálogo completo em Erros.
