Envelope da requisição
Cada requisição de webhook enviada pelo Upag segue este formato:- event — Nome do evento (ex.:
subscription.created,payment.approved). Use este valor para decidir como processar o payload. - data — Objeto com os dados do recurso. A estrutura de
datadepende do tipo de evento. Consulte as páginas de referência abaixo para cada payload.
Tipos de evento
Assinaturas (subscription)
| Evento | Descrição |
|---|---|
subscription.created | Nova assinatura criada |
subscription.active | Assinatura ativa |
subscription.canceled | Assinatura cancelada |
subscription.past_due | Assinatura em atraso |
subscription.trialing | Assinatura em período de trial |
subscription.incomplete | Assinatura incompleta |
subscription.paused | Assinatura pausada |
subscription.void | Assinatura anulada |
data: Payload Subscription.
Pagamentos (payment)
| Evento | Descrição |
|---|---|
payment.created | Novo pagamento criado |
payment.incomplete | Pagamento incompleto |
payment.pending | Pagamento pendente |
payment.approved | Pagamento aprovado |
payment.refunded | Pagamento reembolsado |
payment.refused | Pagamento recusado |
payment.failed | Pagamento falhou |
data: Payload Payment.
Faturas (invoice)
| Evento | Descrição |
|---|---|
invoice.created | Nova fatura criada |
invoice.opened | Fatura aberta |
invoice.paid | Fatura paga |
invoice.voided | Fatura anulada |
data: Payload Invoice.
Segurança
Para garantir que a requisição foi enviada pelo Upag, verifique a assinatura usando o cabeçalho da requisição (por exemplox-Upag-signature ou o nome configurado no painel) e sua chave secreta de webhook. A assinatura é um HMAC do corpo da requisição. Compare o hash que você calcular com o valor do cabeçalho; se forem iguais, a requisição é autêntica. Mantenha a chave secreta em segurança e nunca a exponha no código ou em repositórios públicos.