Webhook Retry
When your endpoint fails to receive an event, you can resend the webhook without waiting for a new real event. Hub Chatt2.me supports retry for a single log or in bulk.
When to use retry?
- Your server was down during a period
- There was a bug in the processing and you've already fixed it
- The endpoint returned a temporary error (e.g. database unavailable)
- You want to test the processing of a specific event again
Retry a specific log
curl -X POST \
"https://api.chatt2.me/v1/organization/webhook/{webhookId}/webhook-log/{webhookLogId}/retry" \
-H "x-api-key: your-api-key"
Response
{
"success": true,
"newLogId": "d4e5f6a7-b8c9-0123-def0-456789012345"
}
| Field | Description |
|---|---|
success | true if the retry was executed (does not indicate the endpoint responded 200) |
newLogId | UUID of the new log generated for this retry — use it to track the result |
info
success: true means the Hub attempted to resend the event. The actual result of the new attempt is recorded in the log with id newLogId. Check it to see the statusCode and responseBody of the new delivery.
Bulk retry
Resend multiple logs at once by passing an array of webhookLogIds:
curl -X POST \
"https://api.chatt2.me/v1/organization/webhook/{webhookId}/webhook-log/retry" \
-H "x-api-key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"webhookLogIds": [
"b2c3d4e5-f6a7-8901-bcde-f23456789012",
"c3d4e5f6-a7b8-9012-cdef-345678901234"
]
}'
Response
{
"results": [
{
"webhookLogId": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
"success": true,
"newLogId": "e5f6a7b8-c9d0-1234-ef01-567890123456"
},
{
"webhookLogId": "c3d4e5f6-a7b8-9012-cdef-345678901234",
"success": false,
"newLogId": null
}
]
}
When success is false for an item, the retry could not be executed for that log (e.g. invalid log or already deleted).
Recommended flow after a mass failure
- Identify failed logs — use the
?status=Failedfilter in List Webhook Logs - Collect the IDs of the logs that need to be resent
- Fix the issue on your server before retrying
- Execute the bulk retry with the collected IDs
- Check the new logs (
newLogId) to confirm everything was processed successfully
# 1. List failed logs and extract IDs (example with jq)
FAILED_IDS=$(curl -s \
"https://api.chatt2.me/v1/organization/webhook/{webhookId}/webhook-log?status=Failed&limit=50" \
-H "x-api-key: your-api-key" \
| jq '[.data[].id]')
# 2. Execute bulk retry
curl -X POST \
"https://api.chatt2.me/v1/organization/webhook/{webhookId}/webhook-log/retry" \
-H "x-api-key: your-api-key" \
-H "Content-Type: application/json" \
-d "{\"webhookLogIds\": $FAILED_IDS}"
Limitations
- You can only retry logs with
Failedstatus - Retry creates a new log — the original log remains as
Failedin the history - The maximum number of IDs per bulk retry request is determined by the limit of
50records per page when listing