Skip to main content

Visão geral

Cada ciclo de uma assinatura gera uma fatura. A fatura tem os próprios itens, descontos, pagamentos e status, e pode receber mais de uma tentativa de cobrança. Para listar as faturas de uma assinatura, use GET /v2/subscriptions/{id}/invoices.
O id da fatura é um código numérico de 6 dígitos, como 482913. As rotas de fatura só encontram faturas de assinaturas.

Status da fatura

Enquanto a fatura está em aberto ou recusada, o status reflete a cobrança mais recente. Uma fatura failed pode receber uma nova cobrança com Pagar fatura e passar a processing, requires_action ou paid.

Campos da fatura

Ação pendente (next_action)

Quando a análise de fraude pede verificação, nada é cobrado até a confirmação do código:
Quando a cobrança é PIX e ainda não foi paga:

Motivo da recusa (failure_reason)

Mostre ao pagador apenas o customer_message. O message é técnico e não deve ser exibido. Veja Pagamento recusado.

Exemplo de fatura paga

Resposta (HTTP 200)

Pagar uma fatura em aberto

Quando uma fatura é recusada, a assinatura fica past_due e recebe novas tentativas automáticas. Você também pode cobrar a fatura na hora, com outro cartão ou PIX:
Request — POST /v2/invoices/482913/pay
A resposta é 200 com a fatura atualizada (em geral processing para cartão ou requires_action para PIX), ou 402 quando a nova cobrança é recusada.
Só é possível pagar uma fatura pendente ou recusada de uma assinatura active, past_due ou suspended. Nos demais casos, a resposta é 422 (invoice_not_payable).

Código de verificação

  1. A fatura fica requires_action com next_action.type = "otp_confirmation".
  2. O comprador recebe o código.
  3. Você envia o código em POST /v2/invoices/{id}/confirm: { "code": "123456" }.
  4. A cobrança é retomada e a fatura passa a processing (ou 402 se for recusada).
O reenvio do código (POST /v2/invoices/{id}/confirm/resend) aceita 5 requisições por minuto por IP de origem. Se a sua plataforma atende várias contas a partir do mesmo servidor, todas dividem esse limite. O 429 desse limite vem fora do envelope de erro da v2.

Webhooks

Faturas de assinaturas criadas pela v2 enviam eventos no formato v2, com a fatura em data: Veja Eventos de fatura.
Uma fatura paga gera invoice.paid, e não charge.paid. O estorno de uma fatura é notificado por eventos de cobrança (charge.refunded ou charge.partial_refunded).

Erros específicos

Veja o catálogo completo em Erros.