Webhook for the Transactional API
Prelude Transactional API can notify your application about events using webhooks. Get notified when your messages are delivered and billed.
Prelude can notify your application about events using webhooks. You can configure a webhook URL using the callback_url
parameter of your request.
The event object
The unique identifier of the event.
The type of the event, possible values are:
Type | Description |
---|---|
transactional.message.created | The message was sent successfully |
transactional.message.pending_delivery | The message is pending delivery |
transactional.message.delivered | Delivery succeeded |
transactional.message.failed | Delivery failed, see status and reason. |
transactional.message.unknown | Unknown delivery, see status and reason. |
The payload of the event, whose structure depends on the event type.
The timestamp of the event creation.
A user-defined identifier to correlate the event with your internal system.
How to set up your Webhook
To start receiving webhook events in your app, create and register a webhook endpoint by following the steps below. You can register and create one endpoint to handle several different event types at once, or set up individual endpoints for specific events.
Implement the handler
Develop a webhook endpoint function to receive event data POST requests.
Pass the URL
Add your webhook endpoint URL to your Transactional requests to start receiving events.
Return OK
Return a 200 OK
HTTP response to the POST request to acknowledge receipt
of the event. If you don’t, Prelude will retry sending the event for 2
weeks.
Delivery Statuses
Failed delivery statuses come with a status
field which can have two values: failed
or expired
.
An additional reason
provides more information about the failure. Some of these may be retriable until we reach the expiry window defined in the expires_at
field of the Send Message request.
Here are the possible reason
values:
Reason | Code | Description | Retriable |
---|---|---|---|
Unavailable Recipient | unavailable | The recipient is unavailable due to a temporary problem (e.g. no cell network). | |
Generic Reason | generic | No detailed information has been received from the underlying carrier. | |
Network Issue | network | The recipient’s carrier network is temporary unreachable. | |
Unknown Recipient | unknown_recipient | The number is not associated with an active line. | |
Insufficient Balance | insufficient_balance | Your balance is insufficient to make an attempt. | |
Carrier Rejected | carrier_rejected | The recipient’s mobile carrier blocked the message (e.g. lack of registration, invalid content or local traffic restrictions). | |
Unknown | unknown | The delivery status cannot be determined due to unspecified issues or lack of detailed information from the carrier or network. |