Skip to main content
No Billing, webhooks avisam sua aplicação quando pagamentos, assinaturas ou faturas mudam. Você registra uma URL HTTPS no dashboard, escolhe os eventos e passa a receber POST com event e data. Consultar a API de tempos em tempos ainda serve para suporte ou telas administrativas; para disparar automação (ERP, e-mail transacional, liberação de produto), o webhook costuma ser o caminho mais simples.

Montagem básica

  1. Exponha uma rota POST (ex.: /webhooks/upag-billing) com TLS.
  2. No dashboard Billing, informe a URL e marque os eventos (Referência).
  3. Valide a assinatura, trate o JSON, responda status 2xx quando aceitar a entrega.
O retorno do checkout no browser pode falhar (aba fechada, rede). Trate payment.approved ou invoice.paid no servidor como confirmação do negócio.

Sandbox vs live

Mantenha URLs ou configurações distintas para contas/chaves sk_test_... e sk_live_..., para não processar evento de teste como produção.

Envelope

Eventos

Assinaturas

data: Payload Subscription.

Pagamentos

data: Payload Payment.

Faturas

data: Payload Invoice.

Autenticidade

Confira HMAC do corpo com a signing secret do endpoint e o header indicado no dashboard (ex.: x-upag-signature). Passo a passo: Verificação e segurança.

Entregas repetidas

O Billing pode reenviar o mesmo evento após timeout ou erro HTTP. Guarde um registro por ${event}:${data.id} antes de efeitos colaterais.
  • Devolva 2xx só depois de persistir ou enfileirar.
  • Não amarre validação a um schema fixo de todo o data — campos novos podem surgir sem aviso de versão na doc.

Referência de payloads

Payment

Campos em payment.*.

Subscription

Campos em subscription.*.

Invoice

Campos em invoice.*.

Guias

Checkout hospedado

Sessão, redirect e handler de pagamento.

Assinatura recorrente

Ciclo de assinatura e fatura.