Pular para o conteúdo

Processamento

Endpoints para consultar e gerenciar events processados, webhooks recebidos e tentativas de entrega.

Events

GET /processing/events

Lista todos os events processados.

Terminal window
curl -X GET "https://api.integracoesinteligentes.com/processing/events?limit=20" \
-H "Authorization: Bearer <token>"

Filtros disponíveis:

FiltroTipoDescrição
filter[name]stringFiltrar por nome (ex: order.paid)
filter[status]stringFiltrar por status
filter[installation_id]UUIDFiltrar por instalação
filter[integration_driver_slug]stringFiltrar por driver
filter[created_at_greater_than]dateData mínima (ISO 8601)

Resposta:

{
"data": [
{
"id": "0192abcd-1234-5678-9abc-def012345679",
"installation_id": "0192abcd-1234-5678-9abc-def012345678",
"integration_driver_slug": "digital_manager_guru",
"name": "order.paid",
"created_at": "2024-01-15T10:45:00.000000Z",
"status": "dispatched",
"superseded": false,
"superseded_by": null,
"last_dispatch": {
"id": "0192abcd-1234-5678-9abc-def012345680",
"status": "succeeded",
"attempt_response_code": 200,
"attempted_at": "2024-01-15T10:45:00.000000Z"
}
}
]
}

Campos da resposta:

CampoTipoDescrição
idUUIDID único do evento
installation_idUUID|nullID da instalação
integration_driver_slugstring|nullSlug do driver
namestringNome do evento
created_atstringData de criação (ISO 8601)
statusstringStatus do evento
supersededbooleanSe foi substituído por evento de maior peso
superseded_byobject|nullEvento que substituiu este
last_dispatchobject|nullÚltima tentativa de entrega
last_dispatch.idUUIDID da tentativa
last_dispatch.statusstringStatus da tentativa
last_dispatch.attempt_response_codeinteger|nullCódigo HTTP da resposta
last_dispatch.attempted_atstringData da tentativa

GET /processing/events/{id}

Retorna um event específico com payload completo.

Terminal window
curl -X GET "https://api.integracoesinteligentes.com/processing/events/0192abcd-..." \
-H "Authorization: Bearer <token>"

Resposta:

{
"data": {
"id": "0192abcd-1234-5678-9abc-def012345679",
"installation_id": "0192abcd-1234-5678-9abc-def012345678",
"integration_driver_slug": "digital_manager_guru",
"name": "order.paid",
"created_at": "2024-01-15T10:45:00.000000Z",
"status": "dispatched",
"superseded": false,
"superseded_by": null,
"payload": {
"customer": {
/* ... */
},
"order": {
/* ... */
},
"payment": {
/* ... */
}
},
"last_dispatch": {
/* ... */
}
}
}

Campos da resposta:

CampoTipoDescrição
idUUIDID único do evento
installation_idUUID|nullID da instalação
integration_driver_slugstring|nullSlug do driver
namestringNome do evento
created_atstringData de criação (ISO 8601)
statusstringStatus do evento
supersededbooleanSe foi substituído
superseded_byobject|nullEvento que substituiu
payloadobjectDados do evento (varia por driver)
last_dispatchobject|nullÚltima tentativa de entrega

POST /processing/events/{id}/resend

Reenvia um event específico.

Terminal window
curl -X POST "https://api.integracoesinteligentes.com/processing/events/0192abcd-.../resend" \
-H "Authorization: Bearer <token>"

Resposta (204 No Content):

Evento enviado para fila de reenvio.

Nota:

Eventos reenviados manualmente são marcados como manually_dispatched: true.

POST /processing/events/resend-failed

Reenvia todos os events com falha.

Terminal window
curl -X POST "https://api.integracoesinteligentes.com/processing/events/resend-failed" \
-H "Authorization: Bearer <token>"

Resposta (204 No Content):

Reenvio de events falhos iniciado.

Importante:

Requer que a webhook_url do tenant esteja configurada e válida.

POST /processing/events/replay

Reenvia eventos dentro de um período específico.

Terminal window
curl -X POST "https://api.integracoesinteligentes.com/processing/events/replay" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"installation_id": "0192abcd-1234-5678-9abc-def012345678",
"created_at_greater_than": 1704067200,
"created_at_less_than": 1704153600
}'

Parâmetros:

CampoTipoObrigatórioDescrição
installation_idUUIDNãoFiltrar por instalação específica
created_at_greater_thanintegerSimTimestamp mínimo (Unix)
created_at_less_thanintegerSimTimestamp máximo (Unix)

Validações:

  • created_at_greater_than deve ser no máximo 30 dias no passado
  • created_at_less_than deve ser maior que created_at_greater_than
  • webhook_url do tenant deve estar configurada

Resposta (204 No Content):

Replay iniciado.

Erro (422 - webhook_url não configurada):

{
"message": "The webhook_url must be set to replay events.",
"errors": {
"webhook_url": ["The webhook_url must be set to replay events."]
}
}

Webhooks Recebidos

GET /processing/ingestion

Lista webhooks recebidos das plataformas integradas.

Terminal window
curl -X GET "https://api.integracoesinteligentes.com/processing/ingestion?limit=20" \
-H "Authorization: Bearer <token>"

Filtros disponíveis:

FiltroTipoDescrição
filter[status]stringFiltrar por status
filter[integration_driver_slug]stringFiltrar por driver
filter[installation_id]UUIDFiltrar por instalação
filter[created_at_greater_than]dateData mínima

Resposta:

{
"data": [
{
"id": "0192abcd-1234-5678-9abc-def012345679",
"installation_id": "0192abcd-1234-5678-9abc-def012345678",
"integration_driver_slug": "digital_manager_guru",
"status": "success",
"status_reason": "succeeded",
"status_changed_at": "2024-01-15T10:45:00.000000Z",
"status_history": [
{
"status": "queued",
"status_reason": null,
"changed_at": "2024-01-15T10:44:30.000000Z"
},
{
"status": "success",
"status_reason": "succeeded",
"changed_at": "2024-01-15T10:45:00.000000Z"
}
],
"created_at": "2024-01-15T10:44:30.000000Z"
}
]
}

Campos da resposta:

CampoTipoDescrição
idUUIDID único do webhook
installation_idUUID|nullID da instalação
integration_driver_slugstring|nullSlug do driver
statusstringStatus atual do webhook
status_reasonstring|nullMotivo do status
status_changed_atstring|nullData da última mudança de status
status_historyarrayHistórico de mudanças de status
status_history[].statusstringStatus naquele momento
status_history[].status_reasonstring|nullMotivo naquele momento
status_history[].changed_atstringData da mudança
created_atstringData de criação

GET /processing/ingestion/{id}

Retorna um webhook específico com payload.

Terminal window
curl -X GET "https://api.integracoesinteligentes.com/processing/ingestion/0192abcd-..." \
-H "Authorization: Bearer <token>"

Tentativas de Entrega

GET /processing/dispatches

Lista tentativas de entrega de events.

Terminal window
curl -X GET "https://api.integracoesinteligentes.com/processing/dispatches?limit=20" \
-H "Authorization: Bearer <token>"

Filtros disponíveis:

FiltroTipoDescrição
filter[status]stringFiltrar por status
filter[attempt_response_code]integerFiltrar por código HTTP
filter[integration_driver_slug]stringFiltrar por driver
filter[attempted_at_greater_than]dateData mínima

Resposta:

{
"data": [
{
"id": "0192abcd-1234-5678-9abc-def012345680",
"integration_event_id": "0192abcd-1234-5678-9abc-def012345679",
"destination_url": "https://sua-api.com/webhooks/integracoes",
"status": "succeeded",
"attempt_response_code": 200,
"response_body_snippet": "{\"status\":\"received\"}",
"attempt_number": 1,
"max_attempts": 5,
"attempted_at": "2024-01-15T10:45:00.000000Z",
"duration_ms": 234,
"manually_dispatched": false
}
]
}

Campos da resposta:

CampoTipoDescrição
idUUIDID único da tentativa
integration_event_idUUIDID do evento relacionado
destination_urlstringURL de destino do webhook
statusstringStatus da tentativa
attempt_response_codeinteger|nullCódigo HTTP da resposta
response_body_snippetstring|nullTrecho do corpo da resposta
attempt_numberintegerNúmero da tentativa
max_attemptsintegerMáximo de tentativas
attempted_atstringData da tentativa
duration_msinteger|nullDuração em milissegundos
manually_dispatchedbooleanSe foi disparado manualmente

GET /processing/dispatches/{id}

Retorna detalhes de uma tentativa específica.

Terminal window
curl -X GET "https://api.integracoesinteligentes.com/processing/dispatches/0192abcd-..." \
-H "Authorization: Bearer <token>"

Métricas

GET /processing/metrics/summary

Retorna um resumo agregado de métricas de processamento.

Terminal window
curl -X GET "https://api.integracoesinteligentes.com/processing/metrics/summary" \
-H "Authorization: Bearer <token>"

Resposta:

{
"data": {
"webhooks_received": 1523,
"events_generated": 1489,
"events_dispatched": 1456,
"events_failed": 33
}
}

Campos da resposta:

CampoTipoDescrição
webhooks_receivedintegerTotal de webhooks recebidos
events_generatedintegerTotal de eventos gerados
events_dispatchedintegerTotal de eventos enviados
events_failedintegerTotal de eventos que falharam

GET /processing/metrics/trends

Retorna tendências de métricas ao longo do tempo.

Terminal window
curl -X GET "https://api.integracoesinteligentes.com/processing/metrics/trends?granularity=day&filter[created_at_greater_than]=1704067200&filter[created_at_less_than]=1704153600" \
-H "Authorization: Bearer <token>"

Parâmetros de query:

ParâmetroTipoObrigatórioDescrição
granularitystringSimGranularidade (hour, day, week, month)
filter[created_at_greater_than]integerSimTimestamp mínimo (Unix)
filter[created_at_less_than]integerSimTimestamp máximo (Unix)

Validações:

  • granularity deve ser um dos valores: hour, day, week, month
  • created_at_greater_than deve ser no máximo 30 dias no passado
  • created_at_less_than deve ser maior que created_at_greater_than

Resposta:

{
"data": {
"granularity": "day",
"series": [
{
"period": "2024-01-01",
"total": 150,
"by_type": {
"order.paid": 100,
"order.canceled": 30,
"checkout.abandoned": 20
}
},
{
"period": "2024-01-02",
"total": 180,
"by_type": {
"order.paid": 120,
"order.canceled": 40,
"checkout.abandoned": 20
}
}
]
}
}

Campos da resposta:

CampoTipoDescrição
granularitystringGranularidade dos dados (hour, day, week, month)
seriesarrayArray de dados por período
series[].periodstringPeríodo formatado
series[].totalintegerTotal de eventos no período
series[].by_typeobjectTotal por tipo de evento

Status dos Events

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

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

Status das Tentativas

StatusDescrição
succeededEntrega bem-sucedida
retryingVai tentar novamente
failedFalhou após todas as tentativas

Backoff de Retentativa

Quando uma tentativa falha, a plataforma tenta novamente:

TentativaDelay
Imediata
5 segundos
15 segundos
30 segundos
60 segundos

Após 5 tentativas, o evento é marcado como failed.

Próximos Passos