Skip to main content
Trackly SMS receives delivery status updates from SMS providers via webhooks. This page documents the webhook format for Infobip, our primary provider.

Webhook URL

Configure this URL in your Infobip dashboard to receive delivery reports:
https://app.tracklysms.com/api/webhook-feedbacks/infobip
This webhook is configured automatically when you set up your Infobip integration. You typically don’t need to configure it manually.

Webhook Payload

Infobip sends delivery status updates in the following format:
{
  "results": [
    {
      "messageId": "msg_abc123def456",
      "to": "+14155551234",
      "status": {
        "groupId": 3,
        "groupName": "DELIVERED",
        "id": 5,
        "name": "DELIVERED_TO_HANDSET"
      },
      "doneAt": "2024-01-15T10:30:00.000+0000"
    }
  ]
}

Status Groups

Infobip uses status groups to categorize delivery outcomes:
Group IDGroup NameDescription
1PENDINGMessage is being processed
2UNDELIVERABLEMessage could not be delivered
3DELIVEREDMessage was delivered successfully
4EXPIREDMessage expired before delivery
5REJECTEDMessage was rejected by carrier

Common Status Codes

Delivered (Group 3)

IDNameDescription
5DELIVERED_TO_HANDSETDelivered to recipient’s phone
6DELIVERED_TO_OPERATORDelivered to carrier (no handset confirmation)

Undeliverable (Group 2)

IDNameDescription
7REJECTED_ABSENT_SUBSCRIBERRecipient not available
9REJECTED_SYSTEM_ERRORSystem error
14REJECTED_OPERATORRejected by carrier
15REJECTED_DUPLICATEDuplicate message

Rejected (Group 5)

IDNameDescription
51REJECTED_SPAMMessage flagged as spam
52REJECTED_DESTINATIONInvalid destination

Receiving Alerts

Instead of polling for status updates, you can receive real-time alerts in Discord:

Alert Types

When delivery failures occur, you can receive alerts via Discord:
Alert TypeTrigger
Delivery FailureMessage status is UNDELIVERABLE or REJECTED
Spam ComplaintMessage flagged as spam (status 51)
Opt-OutRecipient replied STOP
See Discord Alerts for configuration details.

Response

Your webhook endpoint should return a 200 OK response:
{
  "status": "success"
}
If the webhook returns an error status, Infobip may retry the request. Ensure your endpoint is idempotent.