Pular para o conteúdo principal

Evento invoice.finalized

Disparado na finalização de um rascunho, inclusive na criação finalizada por padrão pela API. Os itens, termos e dados do cliente já estão congelados. O objeto fica open ou paid quando não existe saldo a receber. Repetir a finalização não emite outro evento. data.object usa o mesmo shape de GET /v1/invoices/:id. O campo data.object.hosted_invoice_url é uma URL ativa da página pública dessa invoice.
Compras avulsas seguem o fluxo de payment_intent e não têm invoice. A exceção é a compra por checkout criada com invoice_creation: true: a invoice nasce depois do pagamento, e este evento já chega com ela paga.

Como processar

  • Registre o id do evento (evt_*) para processar o webhook de forma idempotente.
  • Use data.object.id (inv_*) como chave da invoice no seu sistema.
  • Salve status, due_date, amount_due_now, amount_remaining e hosted_invoice_url para orientar a cobrança.
  • Use line_items como retrato dos itens faturados; valores e períodos já estão fixos na criação.
  • Use customer, subscription e metadata para correlacionar a invoice com seu cliente, assinatura ou pedido interno.
  • Se payment_intent e latest_charge vierem null, isso apenas indica que nenhuma tentativa de pagamento foi criada ainda.

Campos importantes

Status e variações

Exemplo de payload