Delivery receipts for outbound SMS

Delivery Receipts (DR) are webhooks for delivery statuses: POST requests sent by 8x8 platform in JSON format to the delivery reports callback URL configured for your account.

Whenever a message has a new delivery status associated with the delivery stage it is in, 8x8 sends out a POST request with the new status to the callback URL.

📘

You can configure your callback using Webhooks Configuration API

You can also overwrite the default callback URL on a per-message / per-batch-of-message basis by specifying a different dlrCallbackUrl value in your API requests when sending a message or a batch of messages (see Send API)

Retry logic

In case of connection error/timeout or HTTP response code 4XX or 5XX, there will be multiple retry attempts with progressive intervals: 1, 10, 30, 90 sec.

Webhook format

Request body description

Parameter name

Parameter type

Description

namespace

string

A generic namespace for incoming webhook.
Equal to SMS for delivery receipts.

eventType

string

Webhook type.
Equals to outbound_message_status_changed for delivery receipts.

description

string

Human-readable description of the incoming event

payload

object

Delivery receipt information, see below.

Payload object description

Parameter name

Parameter type

Description

umid

uuid

A unique identifier generated by 8x8 for the message

batchId

uuid

A unique identifier generated by 8x8 for the message if sent using Batch API

clientMessageId

string

Your custom identifier for the message

clientBatchId

string

Client managed id for this batch of messages : your own unique reference

subAccountId

string

The sub-account id used to deliver the message

source

string

The source (i.e: sender) used to deliver the message

destination

string

Destination phone number where the SMS was sent (E.164 format)

status

object

Current status of the message, please see Message status reference for details.

price

object

Price information of the message, please see Price object reference for details

smsCount

integer

Number of SMS segment in the message

❗️

If the request you receive has a different structure from described in this document, please contact our support to activate the latest format for your account.

Sample delivery receipt for outbound SMS

{
  "namespace": "SMS",
  "eventType": "outbound_message_status_changed",
  "description": "SMS outbound message delivery receipt",
  "payload": {
    "umid": "9e09ac86-bd74-5465-851d-1eb5a5fdbb9a",
    "batchId": "3e09ac86-bd74-5465-851d-1eb5a5fdbb9b",
    "clientMessageId": "1e09ac86-bd74-5465-851d-1eb5a5fdbb9b",
    "clientBatchId": "2e09ac86-bd74-5465-851d-1eb5a5fdbb9b",
    "subAccountId": "SubAccount-1",
    "source": "8x8",
    "destination": "+12025550293",
    "status": {
      "state": "undelivered",
      "detail": "rejected_by_operator",
      "timestamp": "2016-01-01T00:00:00Z",
      "errorCode": 15,
      "errorMessage": "Invalid destination"
    },
    "price": {
      "total": 0.0375,
      "perSms": 0.0125,
      "currency": "USD"
    },
    "smsCount": 3
  }
}