Pular para o conteúdo

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.

Terminal window
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.

Terminal window
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_url esteja configurada e válida.

Consultar Tentativas de Entrega

GET /processing/dispatches

Liste todas as tentativas de entrega de eventos:

Terminal window
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

CampoDescrição
idID da tentativa
integration_event_idID do evento
destination_urlURL para onde foi enviado
statussucceeded, retrying, failed
attempt_response_codeCódigo HTTP retornado
response_body_snippetTrecho da resposta (até 500 chars)
attempt_numberNúmero da tentativa (1-5)
max_attemptsMáximo de tentativas (5)
attempted_atData/hora da tentativa
duration_msTempo de resposta em ms
manually_dispatchedSe foi reenvio manual

Detalhes de uma Tentativa

GET /processing/dispatches/{attempt_id}

Terminal window
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:

Terminal window
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

StatusDescrição
queuedAguardando processamento
processingSendo processado
successProcessado com sucesso
failedFalhou após todas as tentativas
dispatchedEnviado com sucesso para webhook
skippedPulado (evento desabilitado)

Detalhes de um Evento

GET /processing/events/{event_id}

Inclui o payload completo:

Terminal window
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:

Terminal window
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

StatusDescrição
queuedRecebido, aguardando processamento
processingSendo processado
successProcessado com sucesso
failedFalhou no processamento
polyfillingBuscando dados adicionais
incomplete_polyfillPolyfill incompleto (real_time)
waiting_installation_setupAguardando 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