v36

latestOpenAPI 3.1.0raw.githubusercontent.com2026-05-1279125449.6 KB
Messages

SMS status callback

Payload sent by SignalWire to your SMS Status Callback URL when the status of an SMS/MMS message changes.

Configure this callback using the StatusCallback parameter when sending an outgoing message.

There are 8 possible message statuses:

StatusDescription
queuedThe API request was processed and the message is waiting to be sent.
sendingThe message is being transmitted to the nearest upstream carrier.
sentThe nearest upstream carrier has accepted the message.
deliveredThe nearest upstream carrier confirmed receipt of the message.
undeliveredSignalWire received notice from the upstream carrier that the message was not delivered.
failedSignalWire could not send the message. There is no charge for failed messages.
receivingSignalWire has received and is currently processing an inbound message.
receivedThe inbound message has been received by a number in your account.
<Note> SignalWire only marks a message as `delivered` when it receives a Delivery Receipt (DLR) from the receiving carrier confirming entry into the end carrier's network. `sent` means the message left SignalWire and reached the downstream peer. Some carriers send delayed DLRs; others send none at all. MMS messages never receive DLRs, so they will only ever reach `sent` status. </Note>
postWebhooksmsStatusCallback

Payload

MessageStatus'queued' | 'sending' | 'sent' | 'delivered' | 'undelivered' | 'failed' | 'receiving' | 'received' required

The current status of the message at the time of the callback. One of: queued, sending, sent, delivered, undelivered, failed, receiving, received.

ErrorCodestring

If the message has failed or is undelivered, the error code may provide more information about what went wrong.

MessageSidstring required

The unique ID of this message.

AccountSidstring required

The unique ID of the project this message is associated with.

Fromstring required

The From number of the message.

Tostring required

The To number of the message.

Bodystring required

The body of the message.

NumMediainteger required

The number of media files that were included with the message.

NumSegmentsinteger required

The number of segments that make up the entire message. If the body exceeds 160 GSM-7 characters or 70 UCS-2 characters, it is automatically split into smaller segments that are annotated for reconstruction on the recipient handset.

Example payload

{
  "MessageStatus": "delivered",
  "ErrorCode": "30003",
  "MessageSid": "b3877c40-da60-4998-90ad-b792e98472ms",
  "AccountSid": "b3877c40-da60-4998-90ad-b792e98472af",
  "From": "+15551234567",
  "To": "+15559876543",
  "Body": "Hey, your order has shipped!",
  "NumSegments": 1
}

Response

Webhook received