Visão Geral
Webhooks permitem que você receba notificações HTTP automáticas quando eventos importantes ocorrem nos seus pagamentos. Configure a URL do webhook no dashboard para começar a receber eventos.Eventos Disponíveis
| Evento | Descrição |
|---|---|
payment.created | Pagamento foi criado com sucesso |
payment.pending | Pagamento está aguardando confirmação |
payment.confirmed | Pagamento foi confirmado |
payment.expired | Pagamento expirou sem ser pago |
payment.cancelled | Pagamento foi cancelado |
payment.refunded | Pagamento foi reembolsado |
payment.failed | Falha ao criar o pagamento no provedor |
Estrutura do Payload
Todos os webhooks seguem uma estrutura padrão:| Campo | Tipo | Descrição |
|---|---|---|
id | string | Identificador único do evento |
type | string | Tipo do evento (ex: payment.confirmed) |
created | number | Timestamp Unix em segundos |
data | object | Dados específicos do evento |
Exemplos de Payload
payment.created
payment.created
Enviado imediatamente após a criação de um pagamento.
payment.confirmed
payment.confirmed
Enviado quando um pagamento PIX é confirmado.
payment.expired
payment.expired
Enviado quando um pagamento expira sem ser pago.
payment.cancelled
payment.cancelled
Enviado quando um pagamento é cancelado.
payment.refunded
payment.refunded
Enviado quando um pagamento é reembolsado.
payment.failed
payment.failed
Enviado quando ocorre uma falha ao criar o pagamento no provedor. Este evento tem uma estrutura diferente dos demais.
Estrutura do Objeto Payment
| Campo | Tipo | Descrição |
|---|---|---|
id | string | ID único do pagamento |
externalId | string | null | ID de referência externa |
amount | number | Valor em BRL (ex: 10.50) |
currency | string | Moeda (sempre “BRL”) |
description | string | null | Descrição do pagamento |
payerName | string | null | Nome do pagador |
payerDocument | string | null | CPF ou CNPJ do pagador |
payerEmail | string | null | E-mail do pagador |
status | string | Status: pending, confirmed, expired, cancelled, refunded |
provider | string | Provedor: pague_dev, asaas, simulator |
pixCopyPaste | string | null | Código PIX copia e cola |
expiresAt | string | null | Data de expiração (ISO 8601) |
confirmedAt | string | null | Data de confirmação (ISO 8601) |
isTest | boolean | Se é pagamento de teste |
metadata | object | null | Metadados customizados |
createdAt | string | Data de criação (ISO 8601) |
updatedAt | string | Data de atualização (ISO 8601) |
Boas Práticas
Responda rapidamente
Responda rapidamente
Retorne um status
200 OK o mais rápido possível. Processe o evento de forma assíncrona se necessário.Implemente idempotência
Implemente idempotência
Use o campo
id do evento para evitar processar o mesmo evento mais de uma vez. Webhooks podem ser reenviados em caso de falha.Use HTTPS
Use HTTPS
Configure sua URL de webhook com HTTPS para garantir a segurança dos dados transmitidos.
Retentativas
Se sua URL de webhook retornar um erro (status >= 400), o Paybridge tentará reenviar o evento:- 5 tentativas com backoff exponencial
- Intervalos: 2s → 4s → 8s → 16s → 32s
- Após 5 tentativas falhas, o evento vai para uma fila de falhas
Testando Webhooks
No modo de teste (pk_test_*), você pode usar ferramentas como webhook.site ou ngrok para receber webhooks em desenvolvimento local.
Webhooks de teste (
isTest: true) são enviados apenas para webhooks configurados como teste no dashboard.