Skip to main content
Every time FirstPromoter attempts to send a webhook, a delivery record is created and tracked. You can inspect these records via the dashboard to debug failed deliveries.

Delivery statuses

StatusMeaning
pendingDelivery has been queued but not yet attempted.
deliveredYour endpoint returned a 2xx response.
retryingA delivery attempt failed; more retries are scheduled.
failedAll retry attempts were exhausted without a successful response.

Retry behaviour

When a delivery attempt fails (non-2xx response, timeout, or network error), FirstPromoter waits before retrying. The delay grows with each attempt:
AttemptDelay before retry
1st retry20 minutes
2nd retry40 minutes
3rd retry60 minutes
… (attempt × 20 min)
Retries stop when the number of failed attempts reaches the max_retries value configured on the subscription (default: 3). After that, the delivery is marked failed. Set max_retries to 0 on a subscription to disable retries entirely.

Delivery record fields

id
number
Internal ID of the delivery record.
event_id
string
The UUID of the event. Matches event_id in the payload.
event_type
string
The event type string, e.g. commission.updated.
action
string
created, updated, or deleted.
entity_type
string
The type of the resource, e.g. referral.
entity_id
number
The ID of the resource.
status
string
Current status: pending, delivered, retrying, or failed.
attempts
number
How many delivery attempts have been made so far.
response_code
number
The HTTP status code returned by your endpoint on the last attempt.
response_body
string
The first 1,000 characters of your endpoint’s response body.
last_error
string
A description of the last error (e.g., timeout message, HTTP error). Up to 1,000 characters.
object_changes
object
For updated events, the fields that changed (same as changes in the payload).
payload
object
The full JSON payload that was (or will be) sent to your endpoint.
delivered_at
string
ISO 8601 timestamp of the successful delivery. null until delivered.
created_at
string
When the delivery record was created.

Viewing deliveries

You can view delivery history for any subscription from the Settings → Integrations → Webhooks page in the dashboard. Click into a subscription to see all delivery attempts, their status, response codes, and error details.

Manually retrying a failed delivery

If a delivery has a failed status you can re-attempt it directly from the dashboard without waiting for the automatic retry schedule. Navigate to the subscription’s delivery history and click Retry on the failed delivery.

Sending a test delivery

When setting up a new subscription you can send a test payload to your endpoint from the dashboard without needing to trigger a real event. Navigate to the subscription and click Send test. The test payload has "data": { "test": true } and is signed with your subscription’s secret_key just like a real delivery.