mintfax fires events when fax state changes or account conditions are met. Each event is delivered as an HTTP POST to your webhook endpoints. This page documents every event type, its payload shape, and how delivery works.Documentation Index
Fetch the complete documentation index at: https://mintfax.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Event envelope
All events share the same top-level structure. Thedata object varies by event type.
| Field | Type | Description |
|---|---|---|
event | string | The event type (e.g., fax.delivered) |
event_id | string | Unique ID (ULID) for this event. Use it for deduplication. |
timestamp | string | ISO 8601 UTC timestamp of when the event was created |
data | object | Event-specific payload. Structure depends on event. |
Fax events
fax.queued
Fires when a fax is accepted and placed in the processing queue. This is the first event in the fax lifecycle.fax.sending
Fires when the fax is picked up from the queue and submitted to the carrier.pages field is populated once the document has been processed. It may be null in earlier events.
fax.delivered
Fires when the carrier confirms the fax was delivered. This is a terminal state. The credit hold is captured (balance charged).fax.failed
Fires when a fax permanently fails after all retries are exhausted. This is a terminal state. The credit hold is released (balance refunded).error_code and error_message fields appear in fax.failed and fax.retry_scheduled events. See Errors for the full error catalog.
fax.retry_scheduled
Fires when a delivery attempt fails but retries remain. The fax stays in flight and will be retried automatically.fax.retry_scheduled, wait for either fax.delivered or fax.failed before taking action. The credit hold remains active during retries.
Balance events
balance.low
Fires when a credit transaction brings the workspace’s available balance below 20% of its last top-up amount. Fires at most once per top-up cycle - the threshold resets when credits are added (via purchase or auto top-up).balance.topup event when it completes.
balance.topup
Fires when credits are added to the workspace, whether through a manual purchase or auto top-up.source field is either "manual" (developer-initiated purchase) or "auto_topup".
Delivery behavior
Ordering
Events may arrive out of order. Afax.delivered event could reach your endpoint before fax.sending if network conditions vary. Use the timestamp field and the fax status to determine the latest state. Do not assume arrival order equals chronological order.
Deduplication
Your endpoint may receive the same event more than once. Every event carries a uniqueevent_id. Store processed event IDs and skip duplicates.
Retries
If your endpoint returns a non-2xx status code or does not respond within 30 seconds, mintfax retries delivery with exponential backoff:| Attempt | Delay after failure |
|---|---|
| 1 | 10 seconds |
| 2 | 60 seconds |
| 3 | 300 seconds |
GET /fax/{id} as a fallback.
Signature
All webhook payloads are signed with HMAC-SHA256 using your endpoint’s signing secret. The signature is sent in theX-Mintfax-Signature header. See Webhooks for verification examples.
See also
- Webhooks - endpoint setup, per-fax overrides, signature verification
- Errors - error codes referenced in
fax.failedandfax.retry_scheduledevents - Sandbox - test event delivery with magic numbers
Last updated: 2026-05-09