pending, a NyxPag envia um evento transaction.* para a sua URL. É o jeito certo de saber que um Pix foi pago, sem ficar consultando.
Os três eventos
Uma cobrança Pix vale 15 minutos a partir da criação. Se não for paga nesse prazo, a NyxPag a cancela e você recebe
transaction.cancelled com data.expired: true.direction: "in", type: "payment") e transferências (direction: "out", type: "withdrawal"). Confira data.type para saber qual é.
Formato do corpo
Exemplo: cobrança aprovada
transaction.approved
Os valores deste exemplo são ilustrativos. A tarifa real depende da sua conta e vem no campo
fee. O objeto payer pode trazer dados completados pela instituição do pagador, como bankName e state, quando disponíveis. Trate CPF e e-mail como dados pessoais: não grave o corpo do webhook em logs abertos.Exemplo: cobrança que expirou
O exemplo abaixo está abreviado para destacar o que muda:status, expired e approvedAt. O evento real traz todos os campos do objeto transação.
transaction.cancelled
Como tratar cada evento
1
Valide a assinatura
Antes de olhar o conteúdo. Veja Validando a assinatura.
2
Deduplique
A mesma entrega pode chegar mais de uma vez. Guarde o
id do evento (ou o X-NyxPag-Delivery) e ignore repetições.3
Encontre o pedido
Use
data.externalId, que é o identificador que você mandou ao criar a operação. Se preferir, use data.id.4
Aplique a regra de negócio
approved libera. failed e cancelled encerram. Trate cada um uma vez só.5
Responda 2xx
Grave primeiro, responda rápido, processe depois. Veja Entrega e retentativas.
Receptor completo
As funções
db, orders e payouts acima são do seu sistema. O ponto é o formato: dedupe primeiro, depois a regra de negócio.Ciclo de vida
Estados, transições e o objeto transação campo a campo.
Eventos de MED
Quando um pagador contesta um Pix.

