Trackly SMS receives delivery status updates from SMS providers via internal webhook endpoints. These are configured on the provider side to send delivery reports back to Trackly — they are not user-configurable webhooks.Documentation Index
Fetch the complete documentation index at: https://docs.tracklysms.com/llms.txt
Use this file to discover all available pages before exploring further.
These webhook endpoints are internal. They are configured by Trackly within each SMS provider’s dashboard so that delivery reports are routed back to the platform. You do not need to configure these yourself.
Webhook URLs
Each SMS provider has a dedicated webhook endpoint:| Provider | Webhook URL |
|---|---|
| Infobip | https://api.tracklysms.com/api/webhook-feedbacks/infobip?account={account_id} |
| CM | https://api.tracklysms.com/api/webhook-feedbacks/cm?account={account_id} |
| Twilio | https://api.tracklysms.com/api/webhook-feedbacks/twilio?account={account_id} |
| Lime | https://api.tracklysms.com/api/webhook-feedbacks/lime/{webhook_secret}?account={account_id} |
| EZ Texting | https://api.tracklysms.com/api/webhook-feedbacks/eztexting/{webhook_secret}?account={account_id} |
Lime and EZ Texting do not support custom HTTP headers on outbound webhooks. To authenticate incoming callbacks, Trackly uses a per-provider path-segment secret (
{webhook_secret}) compared constant-time against LIME_WEBHOOK_SECRET / EZTEXTING_WEBHOOK_SECRET on the server. Both values are managed in GCP Secret Manager. Configure your reverse proxy / access-log pipeline to redact the path segment under /api/webhook-feedbacks/{lime,eztexting}/ before forwarding logs downstream.Query Parameters
The Trackly account ID associated with the delivery report. This parameter is included in the webhook URL so Trackly can route the delivery status to the correct account.
Webhook Payload
Infobip sends delivery status updates in the following format:Status Groups
Infobip uses status groups to categorize delivery outcomes:| Group ID | Group Name | Description |
|---|---|---|
| 1 | PENDING | Message is being processed |
| 2 | UNDELIVERABLE | Message could not be delivered |
| 3 | DELIVERED | Message was delivered successfully |
| 4 | EXPIRED | Message expired before delivery |
| 5 | REJECTED | Message was rejected by carrier |
Common Status Codes
Delivered (Group 3)
| ID | Name | Description |
|---|---|---|
| 5 | DELIVERED_TO_HANDSET | Delivered to recipient’s phone |
| 6 | DELIVERED_TO_OPERATOR | Delivered to carrier (no handset confirmation) |
Undeliverable (Group 2)
| ID | Name | Description |
|---|---|---|
| 7 | REJECTED_ABSENT_SUBSCRIBER | Recipient not available |
| 9 | REJECTED_SYSTEM_ERROR | System error |
| 14 | REJECTED_OPERATOR | Rejected by carrier |
| 15 | REJECTED_DUPLICATE | Duplicate message |
Rejected (Group 5)
| ID | Name | Description |
|---|---|---|
| 51 | REJECTED_SPAM | Message flagged as spam |
| 52 | REJECTED_DESTINATION | Invalid destination |
Receiving Alerts
Instead of polling for status updates, you can receive real-time alerts in Discord:Discord Alerts
Get notified of delivery failures in real-time
Configure Alerts
Customize which alerts you receive
Alert Types
When delivery failures occur, you can receive alerts via Discord:| Alert Type | Trigger |
|---|---|
| Delivery Failure | Message status is UNDELIVERABLE or REJECTED |
| Spam Complaint | Message flagged as spam (status 51) |
| Opt-Out | Recipient replied STOP |
Response
The Trackly webhook endpoint returns a200 OK response to acknowledge receipt: