Campos
| Campo | Tipo | Descrição |
|---|---|---|
webhookId | UUID | Identificador único |
externalProvider | String | Nome do provider externo |
externalEventId | String | ID do evento no provider |
externalEventType | String | Tipo do evento no provider |
actionType | WebhookActionType | Ação derivada do evento |
payload | Json | Conteúdo original do provider |
error | String? | Mensagem de erro do processamento |
status | WebhookStatus | Status de processamento |
receivedCount | Int | Número de entregas do provider para o mesmo evento |
lastReceivedAt | DateTime | Data da última entrega |
processedAt | DateTime? | Data do processamento bem-sucedido |
createdBy | UUID? | Usuário que criou o registro, quando aplicável |
createdAt | DateTime | Data de criação |
updatedBy | UUID? | Usuário que fez a última atualização, quando aplicável |
updatedAt | DateTime | Data da última atualização |
Idempotência
- O par
externalProvider+externalEventIdidentifica um evento único do provider. - Entregas repetidas do mesmo evento são tratadas de forma idempotente.
- Consultas podem ser filtradas por provider, tipo de evento, ação, status e data.
Regras de Negócio
- Cada entrega repetida do mesmo evento incrementa
receivedCounte atualizalastReceivedAt, sem duplicar o registro. - O
payloadarmazena o corpo original do provider. - O webhook referencia recursos externos pelos identificadores presentes no evento (
externalEventId, etc.).
Enums
WebhookStatus
| Valor | Descrição |
|---|---|
RECEIVED | Evento recebido, aguardando ou em processamento |
PROCESSED | Evento processado com sucesso |
FAILED | Falha no processamento |
WebhookActionType
| Valor | Descrição |
|---|---|
UPDATE_PAYMENT | Atualização de pagamento |
PAYMENT_PAID | Pagamento confirmado |
UPDATE_ORDER | Atualização de pedido |
UPDATE_TRANSFER | Atualização de transferência |
UPDATE_BANK_ACCOUNT | Atualização de conta bancária |