Reenvio e Replay
Eventualmente, você pode precisar reenviar eventos que falharam ou reprocessar eventos antigos. A plataforma oferece endpoints para isso.
Quando Reenviar?
- Evento falhou: Seu servidor estava offline ou retornou erro
- Reprocessamento: Você precisa reprocessar events antigos com nova lógica
- Debug: Precisa testar o processamento de um evento específico
- Migração: Migrando para novo endpoint de webhook
Reenvio Individual
POST /processing/events/{event_id}/resend
Reenvia um evento específico para o webhook configurado.
curl -X POST "https://api.integracoesinteligentes.com/processing/events/0192abcd-1234-5678-9abc-def012345679/resend" \ -H "Authorization: Bearer <seu-token>"Resposta (204 No Content):
Sem corpo na resposta.
Para detalhes completos, consulte POST /processing/events/{id}/resend.
Nota:
Eventos reenviados manualmente são marcados como
manually_dispatched: true.
Reenvio em Lote (Eventos Falhos)
POST /processing/events/resend-failed
Reenvia todos os eventos com falha do tenant.
curl -X POST "https://api.integracoesinteligentes.com/processing/events/resend-failed" \ -H "Authorization: Bearer <seu-token>"Resposta (204 No Content):
Sem corpo na resposta.
Para detalhes completos, consulte POST /processing/events/resend-failed.
Importante:
Este endpoint requer que a
webhook_urlesteja configurada e válida.
Consultar Tentativas de Entrega
GET /processing/dispatches
Liste todas as tentativas de entrega de eventos:
curl -X GET "https://api.integracoesinteligentes.com/processing/dispatches?limit=20" \ -H "Authorization: Bearer <seu-token>"Para detalhes completos (parâmetros, filtros, resposta), consulte GET /processing/dispatches.
Campos da Tentativa
| Campo | Descrição |
|---|---|
id | ID da tentativa |
integration_event_id | ID do evento |
destination_url | URL para onde foi enviado |
status | succeeded, retrying, failed |
attempt_response_code | Código HTTP retornado |
response_body_snippet | Trecho da resposta (até 500 chars) |
attempt_number | Número da tentativa (1-5) |
max_attempts | Máximo de tentativas (5) |
attempted_at | Data/hora da tentativa |
duration_ms | Tempo de resposta em ms |
manually_dispatched | Se foi reenvio manual |
Detalhes de uma Tentativa
GET /processing/dispatches/{attempt_id}
curl -X GET "https://api.integracoesinteligentes.com/processing/dispatches/0192abcd-..." \ -H "Authorization: Bearer <seu-token>"Para detalhes completos, consulte GET /processing/dispatches/{id}.
Consultar Eventos
GET /processing/events
Liste todos os eventos processados:
curl -X GET "https://api.integracoesinteligentes.com/processing/events?limit=20" \ -H "Authorization: Bearer <seu-token>"Para detalhes completos (parâmetros, filtros, resposta), consulte GET /processing/events.
Status dos Eventos
| Status | Descrição |
|---|---|
queued | Aguardando processamento |
processing | Sendo processado |
success | Processado com sucesso |
failed | Falhou após todas as tentativas |
dispatched | Enviado com sucesso para webhook |
skipped | Pulado (evento desabilitado) |
Detalhes de um Evento
GET /processing/events/{event_id}
Inclui o payload completo:
curl -X GET "https://api.integracoesinteligentes.com/processing/events/0192abcd-..." \ -H "Authorization: Bearer <seu-token>"Para detalhes completos, consulte GET /processing/events/{id}.
Consultar Webhooks Recebidos
GET /processing/ingestion
Liste webhooks recebidos das plataformas integradas:
curl -X GET "https://api.integracoesinteligentes.com/processing/ingestion?limit=20" \ -H "Authorization: Bearer <seu-token>"Para detalhes completos (parâmetros, filtros, resposta), consulte GET /processing/ingestion.
Status dos Webhooks
| Status | Descrição |
|---|---|
queued | Recebido, aguardando processamento |
processing | Sendo processado |
success | Processado com sucesso |
failed | Falhou no processamento |
polyfilling | Buscando dados adicionais |
incomplete_polyfill | Polyfill incompleto (real_time) |
waiting_installation_setup | Aguardando configuração |
Boas Práticas
1. Monitore Taxa de Sucesso
Calcule a taxa de sucesso periodicamente:
const total = dispatches.data.length;const succeeded = dispatches.data.filter( (d) => d.status === "succeeded",).length;const successRate = (succeeded / total) * 100;
if (successRate < 95) { alert(`Taxa de sucesso abaixo de 95%: ${successRate.toFixed(2)}%`);}2. Alertas para Falhas
Configure alertas quando houver múltiplas falhas consecutivas:
const recentFailures = dispatches.data.filter( (d) => d.status === "failed" && new Date(d.attempted_at) > Date.now() - 3600000, // última hora);
if (recentFailures.length > 10) { alert(`Muitas falhas na última hora: ${recentFailures.length}`);}3. Limpeza de Eventos Antigos
Eventos são mantidos por 30 dias e webhooks por 7 dias (pruning automático).
Próximos Passos
- API de Processing - Documentação completa
- Configurar Webhook URL - Requisitos do endpoint
- Receber Eventos - Processamento
- Troubleshooting - Problemas comuns