Receiving Webhooks for Programmable Fax
When you send a Programmable Fax command and receive a successful response (i.e. 200 OK), you can expect to receive a webhook. The webhook will be delivered to the primary URL specified on the Application associated with the call. If that URL does not resolve, or your application returns a non 200 OK response, the webhook will be delivered to the failover URL, if one has been specified. In order to minimize webhook delivery time, Telnyx:- does not enforce the order in which webhooks are delivered
- retries webhook delivery if your application does not respond within a certain time threshold.
- out-of-order webhooks
- simultaneous (or near simultaneous) webhooks
- duplicate webhooks
command_ids within 60 seconds will be ignored.
Example: Receiving a webhook from an outbound fax
When you place an outbound fax, you will receive a number of webhooks indicating the current status of the fax. The first webhook you will receive will have A queued status indicating that Telnyx successfully received the request to send the fax.| FIELD | VALUE |
| record_type | Description of the record. |
| id | unique id for the webhook |
| event_type | The type of event |
| occurred_at | ISO-8601 datetime of when event occured |
| to | Destination number or SIP URI of the call |
| from | Number or SIP URI placing the call |
| fax_id | Unique ID for the Programmable Fax |
| client_state | Configurable state to track commands |
| status | Can be one of queued, media.processed, sending.started, delivered, failed |
Example: Receiving a webhook on successful fax delivery
Example: Receiving a webhook on failed fax delivery
Possible failure reasons
Inspect thefailure_reason field in webhook’s payload to debug failed deliveries of your faxes. The possible failure reasons are:
account_disabledconnection_channel_limit_exceededdestination_invaliddestination_not_in_countries_whitelistdestination_not_in_service_plandestination_unreachablefax_initial_communication_timeoutfax_signaling_errorinvalid_ecm_response_from_receiverno_outbound_profileoutbound_profile_channel_limit_exceededoutbound_profile_daily_spend_limit_exceededreceiver_call_droppedreceiver_communication_errorreceiver_declinereceiver_incompatible_destinationreceiver_invalid_number_formatreceiver_no_answerreceiver_no_responsereceiver_recovery_on_timer_expirereceiver_unallocated_numberservice_unavailableunverified_destination_not_allowedunverified_origination_numberuser_busyuser_channel_limit_exceeded