Pular para o conteúdo
LeonaPayLeonaPayDevelopers
Primeiros passosReferenciais da APIIntegraçõesv2
Eventos

Webhooks

Receba alterações de status em tempo real e confirme a autenticidade de cada evento.

Eventos disponíveis

Cadastre uma URL HTTPS no painel. Cada entrega é assinada e sua resposta fica registrada nos logs de endpoints.
EventoQuando é enviado
payment.createdTransação criada
payment.pendingPagamento aguardando confirmação
payment.action_requiredCartão aguardando confirmação do titular ou desafio 3DS
payment.authorizedCartão autorizado e aguardando conclusão
payment.paidPagamento confirmado
payment.failedPagamento recusado ou expirado
payment.refundedPagamento estornado
withdrawal.createdSaque solicitado
withdrawal.processingSaque enviado para processamento
withdrawal.completedSaque concluído
withdrawal.failedSaque não concluído
withdrawal.cancelledSaque cancelado
advance.completedAntecipação aprovada e creditada
advance.rejectedAntecipação recusada

Exemplo de webhook de saque

O objeto receipt só é preenchido após a conclusão do saque.
{
  "id": "evt_wd_01_withdrawal_completed_1787630400000",
  "type": "withdrawal.completed",
  "createdAt": "2026-08-25T10:00:00.000Z",
  "data": {
    "id": "wd_01",
    "status": "COMPLETED",
    "rail": "PIX",
    "currency": "BRL",
    "amount": 100.00,
    "fee": 1.00,
    "netAmount": 99.00,
    "destination": { "pixKey": "cliente@example.com", "pixType": "EMAIL" },
    "receipt": { "endToEndId": "E0000000020260825..." },
    "createdAt": "2026-08-25T09:58:00.000Z",
    "updatedAt": "2026-08-25T10:00:00.000Z"
  }
}

Falha transacional e ação necessária

Eventos de falha usam o mesmo objeto seguro da API. O evento nunca revela a liquidante, credenciais ou o payload bruto recebido. Em cartões, payment.action_required informa que o titular precisa concluir o 3DS antes do resultado final.
Responda HTTP 2xx rapidamente, deduplique pelo id do evento e processe o conteúdo em fila. Eventos podem ser repetidos ou chegar fora de ordem.
{
  "id": "evt_pay_01_payment_failed_1787630400000",
  "type": "payment.failed",
  "createdAt": "2026-08-25T10:00:00.000Z",
  "requestId": "req_01J...",
  "data": {
    "id": "pay_01J...",
    "reference": "pedido-123",
    "method": "PIX",
    "status": "FAILED",
    "error": {
      "category": "PROVIDER",
      "code": "ONP503_PIX_TEMPORARILY_UNAVAILABLE",
      "message": "This payment method is temporarily unavailable. Retry safely with the same idempotency key.",
      "retryable": true,
      "retryAfter": 2,
      "requestId": "req_01J...",
      "docsUrl": "https://docs.leonapay.com.br/docs/errors#onp503-pix-temporarily-unavailable"
    }
  }
}

Eventos de PIX

A LeonaPay envia um novo evento sempre que o pagamento muda de estado. O campo occurredAt representa o momento efetivo da alteração.
StatusEventoSituação
CREATEDpayment.createdQR Code criado
PENDINGpayment.pendingAguardando pagamento
PAIDpayment.paidPagamento confirmado
EXPIREDpayment.expiredQR Code expirado
FAILEDpayment.failedFalha no processamento
REFUNDEDpayment.refundedPagamento devolvido
[
  {
    "id": "evt_created",
    "event": "payment.created",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "PIX",
      "status": "CREATED",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_pending",
    "event": "payment.pending",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "PIX",
      "status": "PENDING",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_paid",
    "event": "payment.paid",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "PIX",
      "status": "PAID",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_expired",
    "event": "payment.expired",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "PIX",
      "status": "EXPIRED",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_failed",
    "event": "payment.failed",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "PIX",
      "status": "FAILED",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_refunded",
    "event": "payment.refunded",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "PIX",
      "status": "REFUNDED",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  }
]

Eventos de BOLETO

A LeonaPay envia um novo evento sempre que o pagamento muda de estado. O campo occurredAt representa o momento efetivo da alteração.
StatusEventoSituação
CREATEDpayment.createdBoleto emitido
PENDINGpayment.pendingAguardando compensação
PAIDpayment.paidBoleto compensado
EXPIREDpayment.expiredVencimento encerrado
FAILEDpayment.failedFalha na emissão
REFUNDEDpayment.refundedPagamento devolvido
[
  {
    "id": "evt_created",
    "event": "payment.created",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "BOLETO",
      "status": "CREATED",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_pending",
    "event": "payment.pending",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "BOLETO",
      "status": "PENDING",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_paid",
    "event": "payment.paid",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "BOLETO",
      "status": "PAID",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_expired",
    "event": "payment.expired",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "BOLETO",
      "status": "EXPIRED",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_failed",
    "event": "payment.failed",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "BOLETO",
      "status": "FAILED",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_refunded",
    "event": "payment.refunded",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "BOLETO",
      "status": "REFUNDED",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  }
]

Eventos de SPEI

A LeonaPay envia um novo evento sempre que o pagamento muda de estado. O campo occurredAt representa o momento efetivo da alteração.
StatusEventoSituação
CREATEDpayment.createdCLABE disponibilizada
PENDINGpayment.pendingAguardando transferência
PAIDpayment.paidSPEI conciliado
EXPIREDpayment.expiredReferência expirada
FAILEDpayment.failedTransferência rejeitada
REFUNDEDpayment.refundedValor devolvido
[
  {
    "id": "evt_created",
    "event": "payment.created",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "SPEI",
      "status": "CREATED",
      "amount": 125.9,
      "currency": "MXN",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_pending",
    "event": "payment.pending",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "SPEI",
      "status": "PENDING",
      "amount": 125.9,
      "currency": "MXN",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_paid",
    "event": "payment.paid",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "SPEI",
      "status": "PAID",
      "amount": 125.9,
      "currency": "MXN",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_expired",
    "event": "payment.expired",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "SPEI",
      "status": "EXPIRED",
      "amount": 125.9,
      "currency": "MXN",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_failed",
    "event": "payment.failed",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "SPEI",
      "status": "FAILED",
      "amount": 125.9,
      "currency": "MXN",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_refunded",
    "event": "payment.refunded",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "SPEI",
      "status": "REFUNDED",
      "amount": 125.9,
      "currency": "MXN",
      "reference": "pedido-123"
    }
  }
]

Eventos de MBWAY

A LeonaPay envia um novo evento sempre que o pagamento muda de estado. O campo occurredAt representa o momento efetivo da alteração.
StatusEventoSituação
CREATEDpayment.createdSolicitação enviada
AUTHORIZATION_PENDINGpayment.pendingAguardando aprovação no app
PAIDpayment.paidPagamento aprovado
REJECTEDpayment.failedCliente recusou
EXPIREDpayment.expiredSolicitação expirada
REFUNDEDpayment.refundedPagamento devolvido
[
  {
    "id": "evt_created",
    "event": "payment.created",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "MBWAY",
      "status": "CREATED",
      "amount": 125.9,
      "currency": "EUR",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_authorization_pending",
    "event": "payment.pending",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "MBWAY",
      "status": "AUTHORIZATION_PENDING",
      "amount": 125.9,
      "currency": "EUR",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_paid",
    "event": "payment.paid",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "MBWAY",
      "status": "PAID",
      "amount": 125.9,
      "currency": "EUR",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_rejected",
    "event": "payment.failed",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "MBWAY",
      "status": "REJECTED",
      "amount": 125.9,
      "currency": "EUR",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_expired",
    "event": "payment.expired",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "MBWAY",
      "status": "EXPIRED",
      "amount": 125.9,
      "currency": "EUR",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_refunded",
    "event": "payment.refunded",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "MBWAY",
      "status": "REFUNDED",
      "amount": 125.9,
      "currency": "EUR",
      "reference": "pedido-123"
    }
  }
]

Eventos de BANK TRANSFER

A LeonaPay envia um novo evento sempre que o pagamento muda de estado. O campo occurredAt representa o momento efetivo da alteração.
StatusEventoSituação
CREATEDpayment.createdPagamento criado
REDIRECT_PENDINGpayment.pendingAguardando banco
PAIDpayment.paidPagamento confirmado
CANCELLEDpayment.failedFluxo cancelado
EXPIREDpayment.expiredSessão expirada
REFUNDEDpayment.refundedValor devolvido
[
  {
    "id": "evt_created",
    "event": "payment.created",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "BANK_TRANSFER",
      "status": "CREATED",
      "amount": 125.9,
      "currency": "ARS",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_redirect_pending",
    "event": "payment.pending",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "BANK_TRANSFER",
      "status": "REDIRECT_PENDING",
      "amount": 125.9,
      "currency": "ARS",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_paid",
    "event": "payment.paid",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "BANK_TRANSFER",
      "status": "PAID",
      "amount": 125.9,
      "currency": "ARS",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_cancelled",
    "event": "payment.failed",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "BANK_TRANSFER",
      "status": "CANCELLED",
      "amount": 125.9,
      "currency": "ARS",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_expired",
    "event": "payment.expired",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "BANK_TRANSFER",
      "status": "EXPIRED",
      "amount": 125.9,
      "currency": "ARS",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_refunded",
    "event": "payment.refunded",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "BANK_TRANSFER",
      "status": "REFUNDED",
      "amount": 125.9,
      "currency": "ARS",
      "reference": "pedido-123"
    }
  }
]

Eventos de PSE

A LeonaPay envia um novo evento sempre que o pagamento muda de estado. O campo occurredAt representa o momento efetivo da alteração.
StatusEventoSituação
CREATEDpayment.createdPagamento criado
PENDINGpayment.pendingAguardando transferência
PAIDpayment.paidPagamento conciliado
FAILEDpayment.failedFalha bancária
EXPIREDpayment.expiredReferência expirada
REFUNDEDpayment.refundedValor devolvido
[
  {
    "id": "evt_created",
    "event": "payment.created",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "PSE",
      "status": "CREATED",
      "amount": 125.9,
      "currency": "COP",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_pending",
    "event": "payment.pending",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "PSE",
      "status": "PENDING",
      "amount": 125.9,
      "currency": "COP",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_paid",
    "event": "payment.paid",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "PSE",
      "status": "PAID",
      "amount": 125.9,
      "currency": "COP",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_failed",
    "event": "payment.failed",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "PSE",
      "status": "FAILED",
      "amount": 125.9,
      "currency": "COP",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_expired",
    "event": "payment.expired",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "PSE",
      "status": "EXPIRED",
      "amount": 125.9,
      "currency": "COP",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_refunded",
    "event": "payment.refunded",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "PSE",
      "status": "REFUNDED",
      "amount": 125.9,
      "currency": "COP",
      "reference": "pedido-123"
    }
  }
]

Eventos de NEQUI

A LeonaPay envia um novo evento sempre que o pagamento muda de estado. O campo occurredAt representa o momento efetivo da alteração.
StatusEventoSituação
CREATEDpayment.createdPagamento criado
PENDINGpayment.pendingAguardando confirmação
PAIDpayment.paidPagamento confirmado
FAILEDpayment.failedPagamento rejeitado
EXPIREDpayment.expiredPrazo encerrado
REFUNDEDpayment.refundedValor devolvido
[
  {
    "id": "evt_created",
    "event": "payment.created",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "NEQUI",
      "status": "CREATED",
      "amount": 125.9,
      "currency": "COP",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_pending",
    "event": "payment.pending",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "NEQUI",
      "status": "PENDING",
      "amount": 125.9,
      "currency": "COP",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_paid",
    "event": "payment.paid",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "NEQUI",
      "status": "PAID",
      "amount": 125.9,
      "currency": "COP",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_failed",
    "event": "payment.failed",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "NEQUI",
      "status": "FAILED",
      "amount": 125.9,
      "currency": "COP",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_expired",
    "event": "payment.expired",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "NEQUI",
      "status": "EXPIRED",
      "amount": 125.9,
      "currency": "COP",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_refunded",
    "event": "payment.refunded",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "NEQUI",
      "status": "REFUNDED",
      "amount": 125.9,
      "currency": "COP",
      "reference": "pedido-123"
    }
  }
]

Eventos de BREB

A LeonaPay envia um novo evento sempre que o pagamento muda de estado. O campo occurredAt representa o momento efetivo da alteração.
StatusEventoSituação
CREATEDpayment.createdPagamento criado
PENDINGpayment.pendingAguardando confirmação
PAIDpayment.paidPagamento confirmado
FAILEDpayment.failedPagamento rejeitado
EXPIREDpayment.expiredPrazo encerrado
REFUNDEDpayment.refundedValor devolvido
[
  {
    "id": "evt_created",
    "event": "payment.created",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "BREB",
      "status": "CREATED",
      "amount": 125.9,
      "currency": "COP",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_pending",
    "event": "payment.pending",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "BREB",
      "status": "PENDING",
      "amount": 125.9,
      "currency": "COP",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_paid",
    "event": "payment.paid",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "BREB",
      "status": "PAID",
      "amount": 125.9,
      "currency": "COP",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_failed",
    "event": "payment.failed",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "BREB",
      "status": "FAILED",
      "amount": 125.9,
      "currency": "COP",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_expired",
    "event": "payment.expired",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "BREB",
      "status": "EXPIRED",
      "amount": 125.9,
      "currency": "COP",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_refunded",
    "event": "payment.refunded",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "BREB",
      "status": "REFUNDED",
      "amount": 125.9,
      "currency": "COP",
      "reference": "pedido-123"
    }
  }
]

Eventos de CREDIT CARD

A LeonaPay envia um novo evento sempre que o pagamento muda de estado. O campo occurredAt representa o momento efetivo da alteração.
StatusEventoSituação
CREATEDpayment.createdAutorização iniciada
THREE_DS_REQUIREDpayment.action_requiredAutenticação necessária
AUTHORIZEDpayment.authorizedValor autorizado
PAIDpayment.paidCaptura concluída
DECLINEDpayment.failedEmissor recusou
REFUNDEDpayment.refundedEstorno concluído
[
  {
    "id": "evt_created",
    "event": "payment.created",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "CREDIT_CARD",
      "status": "CREATED",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_three_ds_required",
    "event": "payment.action_required",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "CREDIT_CARD",
      "status": "THREE_DS_REQUIRED",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_authorized",
    "event": "payment.authorized",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "CREDIT_CARD",
      "status": "AUTHORIZED",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_paid",
    "event": "payment.paid",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "CREDIT_CARD",
      "status": "PAID",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_declined",
    "event": "payment.failed",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "CREDIT_CARD",
      "status": "DECLINED",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_refunded",
    "event": "payment.refunded",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "CREDIT_CARD",
      "status": "REFUNDED",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  }
]

Eventos de DEBIT CARD

A LeonaPay envia um novo evento sempre que o pagamento muda de estado. O campo occurredAt representa o momento efetivo da alteração.
StatusEventoSituação
CREATEDpayment.createdPagamento iniciado
THREE_DS_REQUIREDpayment.action_requiredAutenticação necessária
PAIDpayment.paidDébito confirmado
DECLINEDpayment.failedEmissor recusou
CANCELLEDpayment.failedPagamento cancelado
REFUNDEDpayment.refundedEstorno concluído
[
  {
    "id": "evt_created",
    "event": "payment.created",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "DEBIT_CARD",
      "status": "CREATED",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_three_ds_required",
    "event": "payment.action_required",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "DEBIT_CARD",
      "status": "THREE_DS_REQUIRED",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_paid",
    "event": "payment.paid",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "DEBIT_CARD",
      "status": "PAID",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_declined",
    "event": "payment.failed",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "DEBIT_CARD",
      "status": "DECLINED",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_cancelled",
    "event": "payment.failed",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "DEBIT_CARD",
      "status": "CANCELLED",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  },
  {
    "id": "evt_refunded",
    "event": "payment.refunded",
    "occurredAt": "2026-08-20T14:01:12Z",
    "data": {
      "id": "pay_01J5VX8M8W8W6Q",
      "method": "DEBIT_CARD",
      "status": "REFUNDED",
      "amount": 125.9,
      "currency": "BRL",
      "reference": "pedido-123"
    }
  }
]

Validar assinatura

Compare a assinatura HMAC SHA-256 do corpo bruto com o header x-onpay-signature, usando o segredo do webhook. O header x-onpay-event identifica o tipo do evento.
const digest = createHmac("sha256", webhookSecret)
  .update(rawRequestBody)
  .digest("hex");
const expected = `sha256=${digest}`;
// Compare expected with request.headers["x-onpay-signature"]
LeonaPay Developers · API v2