Pular para o conteúdo principal

Logs de Entrega

Cada entrega de webhook fica registrada em um log, com o payload enviado, a resposta do seu servidor e o número de tentativas. Use estas rotas para investigar falhas e reenviar notificações.


Listar logs de entrega​

GET /v1/webhooks/{webhookId}/logs

URL completa: https://api.tapsign.com.br/v1/webhooks/{webhookId}/logs

Headers​

HeaderValor
AuthorizationBearer {token}

Parâmetros de rota​

ParâmetroTipoObrigatórioDescrição
webhookIdintegerSimIdentificador do webhook

Query parameters​

ParâmetroTipoObrigatórioDescrição
pageintegerNãoPágina, começando em 0. Padrão: 0
sizeintegerNãoItens por página. Padrão: 20. Máximo: 100
statusstringNãoSUCCESS, FAILED ou DEAD_LETTER
eventTypestringNãoNome do evento, por exemplo doc_completed
fromstringNãoData e hora inicial (ISO 8601, por exemplo 2026-09-01T00:00:00)
tostringNãoData e hora final (ISO 8601)

Exemplo de requisição​

curl -X GET "https://api.tapsign.com.br/v1/webhooks/7/logs?page=0&size=10&status=FAILED" \
-H "Authorization: Bearer {token}"

Resposta​

Status: 200 OK

{
"content": [
{
"id": 5821,
"eventType": "doc_completed",
"envelopeId": 1234,
"status": "FAILED",
"attempt": 3,
"responseStatus": null,
"responseBody": null,
"errorMessage": "500 Internal Server Error: \"erro ao processar\"",
"payload": "{\"event_type\":\"doc_completed\",\"token\":\"3f6c1a52-8d0e-4b8a-9c61-2f7d5e4a1b90\", ...}",
"createdAt": "2026-09-12T15:35:00Z",
"nextRetryAt": "2026-09-12T15:41:00Z"
}
],
"totalElements": 1,
"totalPages": 1,
"size": 10,
"number": 0
}

Campos do log​

CampoTipoDescrição
idintegerIdentificador do log
eventTypestringEvento entregue
envelopeIdintegerID numérico do envelope que gerou o evento
statusstringSUCCESS, FAILED (ainda pode ser retentado) ou DEAD_LETTER (tentativas esgotadas)
attemptintegerNúmero de tentativas feitas até agora
responseStatusinteger ou nullStatus HTTP recebido do seu servidor. Fica null quando a entrega falha com resposta 4xx ou 5xx, timeout ou erro de conexão
responseBodystring ou nullCorpo da resposta do seu servidor, truncado em 2.000 caracteres
errorMessagestring ou nullMotivo da falha, truncado em 2.000 caracteres
payloadstringJSON exato que foi enviado (o mesmo usado no cálculo da assinatura)
createdAtstringData da primeira tentativa (ISO 8601, UTC)
nextRetryAtstring ou nullPróxima tentativa agendada, quando houver

Detalhar um log​

GET /v1/webhooks/{webhookId}/logs/{logId}

Retorna um único log, com os mesmos campos da listagem.

curl -X GET "https://api.tapsign.com.br/v1/webhooks/7/logs/5821" \
-H "Authorization: Bearer {token}"

Reenviar entrega​

Reenvia na hora o payload guardado no log e devolve o log atualizado.

POST /v1/webhooks/{webhookId}/logs/{logId}/retry

URL completa: https://api.tapsign.com.br/v1/webhooks/{webhookId}/logs/{logId}/retry

Exemplo de requisição​

curl -X POST "https://api.tapsign.com.br/v1/webhooks/7/logs/5821/retry" \
-H "Authorization: Bearer {token}"

Resposta​

Status: 200 OK, com o mesmo log: attempt aumenta em 1 e status passa para SUCCESS ou continua FAILED.

{
"id": 5821,
"eventType": "doc_completed",
"envelopeId": 1234,
"status": "SUCCESS",
"attempt": 4,
"responseStatus": 200,
"responseBody": "ok",
"errorMessage": "500 Internal Server Error: \"erro ao processar\"",
"payload": "{\"event_type\":\"doc_completed\", ...}",
"createdAt": "2026-09-12T15:35:00Z",
"nextRetryAt": null
}
Limites do reenvio manual
  • No máximo 10 reenvios manuais por minuto por webhook. Acima disso a API responde 400.
  • A rota também tem rate limit próprio de 10 requisições por minuto.
  • O reenvio usa o payload original. Se ele traz signed_file, o link pode já ter expirado (validade de 24 horas).

Estatísticas de entrega​

Resumo de todas as entregas registradas para o webhook.

GET /v1/webhooks/{webhookId}/logs/stats

URL completa: https://api.tapsign.com.br/v1/webhooks/{webhookId}/logs/stats

Exemplo de requisição​

curl -X GET "https://api.tapsign.com.br/v1/webhooks/7/logs/stats" \
-H "Authorization: Bearer {token}"

Resposta​

Status: 200 OK

{
"totalDeliveries": 1520,
"successCount": 1487,
"failedCount": 21,
"deadLetterCount": 12,
"successRate": 97.83,
"lastDeliveryAt": "2026-09-12T16:00:05Z",
"lastSuccessAt": "2026-09-12T16:00:05Z",
"lastFailureAt": "2026-09-11T09:12:40Z"
}
CampoTipoDescrição
totalDeliveriesintegerTotal de logs de entrega do webhook
successCountintegerLogs com status SUCCESS
failedCountintegerLogs com status FAILED
deadLetterCountintegerLogs com status DEAD_LETTER
successRatenumberPercentual de sucesso (0 a 100)
lastDeliveryAtstring ou nullData da última entrega
lastSuccessAtstring ou nullData da última entrega com sucesso
lastFailureAtstring ou nullData da última falha

Erros comuns​

StatusQuando acontece
400Mais de 10 reenvios manuais no mesmo minuto para o webhook, ou size acima de 100
401Token ausente ou inválido
404Webhook inexistente ou de outro usuário, ou log que não pertence ao webhook
429Rate limit da rota excedido