SMS MT / MMS MT Delivery Report Postbacks
The MMS MT / SMS MT Postback API notifies you of the delivery status of each message you send. For MMS, we have two methods for delivering content; Binary and xHTML. We send different postback notification formats depending on which method is used.
SMS MT/MMS MT Postback Types:
SMS Delivery Status
MMS Delivery Status
SaveMMS Encoding Status
SMS MT Delivery Status
Postback notification when an SMS is sent to the mobile network operator.
SMS Success/Failure Status Codes
Code | Status |
---|---|
N201 | Message Sent |
N202 | Message Sent/Delivered |
E201 | Message Failed |
E202 | Message Sent/Failed, Message Sent/Expired or Message Sent/NotSupported |
Postback Nodes
Variable | Description |
---|---|
ORIGIN | SMS_MT means an SMS terminated on a mobile. |
CODE | Code N201 means the SMS was submitted to the carrier successfully. E201 is submission failed. |
STATUS | Whether the message was forwarded successfully – “Message Sent” or “Message Failed”. Whether the message was delivered successfully – “Message Sent/Delivered” or “Message Sent/Failed”. |
FROM | The shortcode the message is sent from. |
TO | The recipient of the message. |
TRACKINGID | The ID to correleate API requests, and delivery receipts. |
SPID | Carrier Identification. |
TIMESTAMP | The timestamp the message sent (N201) or when MMS was delivered (N202). |
AGGREGATORID | SMS aggregator or carrier transaction ID. |
N201 Example:
<?xml version='1.0'?>
<POSTBACK>
<ORIGIN>SMS_MT</ORIGIN>
<CODE>N201</CODE>
<STATUS>Message Sent</STATUS>
<FROM>00000</FROM>
<TO>10000000000</TO>
<TRACKINGID>xxxxxxxxxxxx</TRACKINGID>
<SPID>0001470</SPID>
<TIMESTAMP>2013-11-05T05:41:08-05:00</TIMESTAMP>
</POSTBACK>
N202 Example:
<?xml version='1.0'?>
<POSTBACK>
<ORIGIN>SMS_MT</ORIGIN>
<CODE>N202</CODE>
<STATUS>Message Sent/Delivered</STATUS>
<FROM>00000</FROM>
<TO>10000000000</TO>
<TRACKINGID>xxxxxxxxxxxx</TRACKINGID>
<SPID>0001470</SPID>
<TIMESTAMP>2013-11-05T05:41:15-05:00</TIMESTAMP>
<AGGREGATORID>11529-64807-97508-73852-97658</AGGREGATORID>
</POSTBACK>
E201 Example:
<?xml version='1.0'?>
<POSTBACK>
<ORIGIN>SMS_MT</ORIGIN>
<CODE>E201</CODE>
<STATUS>Message Failed</STATUS>
<FROM>00000</FROM>
<TO>10000000000</TO>
<TRACKINGID>xxxxxxxxxxxx</TRACKINGID>
<SPID>0001470</SPID>
<TIMESTAMP>2013-11-05T05:41:08-05:00</TIMESTAMP>
</POSTBACK>
E202 Example:
<?xml version='1.0'?>
<POSTBACK>
<ORIGIN>SMS_MT</ORIGIN>
<CODE>E202</CODE>
<STATUS>Message Sent/Failed</STATUS>
<FROM>00000</FROM>
<TO>10000000000</TO>
<TRACKINGID>xxxxxxxxxxxx</TRACKINGID>
<SPID>0001470</SPID>
<TIMESTAMP>2013-11-05T05:41:15-05:00</TIMESTAMP>
<AGGREGATORID>11529-64807-97508-73852-97658</AGGREGATORID>
</POSTBACK>
MMS MT Delivery Status
A postback notification called N101
is immediately sent after we begin to process the MMS. Upon receiving Delivery Report (DLR) from the carrier, the system generates Postback notification N102
with the handset information. The N101 and N102 notifications are linked by TRACKINGID.
For Message Sent/Expired postback notifications, the system either generates postback notification N102
or N103
per account and can be switched to either upon request to Skycore.
If the mobile network operator does not support MMS or the destination handset does not support the size of the content within the MMS, then we fall back to SMS/xHTML to deliver the message. In this method, we deliver the MMS as an SMS containing the fallback SMS text (or the subject text if the fallback SMS text is not provided) and a link to an xHTML page with the content.
MMS Success/Failure Status Codes
Code | Status |
---|---|
N101 | Message Sent |
N102 | Message Sent/Delivered or Message Sent/Expired |
N103 | Message Sent/Expired |
E101 | Message Failed |
E102 | Message Sent/Failed, Message Sent/Rejected or Message Sent/NotSupported |
Postback Nodes
Variable | Description |
---|---|
ORIGIN | SMS_MT means an SMS terminated on a mobile. |
CODE | N101, N102, E101, E102. |
SENTAS | Indicates if the MMS was delivered as MMS (binary) or SMS (xHTML). |
MMSID | The ID (bigint) of a saved MMS. |
STATUS | For N101 notification status can be “Message Sent”. For N102 notification status can be “Message Sent/Delivered” or “Message Sent/Expired”. For N103 notification status can be “Message Sent/Expired”. For E101 notification status can be “Message Failed”. For E102 notification status can be “Message Sent/Failed”, “Message Sent/Rejected” or “Message Sent/NotSupported”. |
FROM | The shortcode the message is sent from. |
TO | The recipient of the message. |
TRACKINGID | The ID to correleate API requests, and delivery receipts. |
CLIENT_REFERENCE | Customer transaction ID for the API request. Passed back in all the postbacks for the API transaction. Accepts max. length of 64 chars. |
SPID | Carrier Identification |
TIMESTAMP | The timestamp the MMS was sent (N101) or when MMS was delivered (N102). |
HANDSET | Handset profile returned inside Delivery Receipt. This is present only in N102 notification. |
OS | The operating system of the handset. This is present only in N102 notification. |
AGGREGATORID | SMS aggregator or carrier transaction ID. |
STATUSDETAILS | Any additional information passed back from the aggregator/carrier in the case of MMS delivery failed. |
N101 Example: (Binary)
<?xml version='1.0'?>
<POSTBACK>
<ORIGIN>MMS_MT</ORIGIN>
<CODE>N101</CODE>
<SENTAS>MMS</SENTAS>
<STATUS>Message Sent</STATUS>
<MMSID>39597</MMSID>
<FROM>00000</FROM>
<TO>10000000000</TO>
<TRACKINGID>xxxxxxxxxxxx</TRACKINGID>
<CLIENT_REFERENCE>5ZY7Cx1Xy0vs</CLIENT_REFERENCE>
<SPID>0001570</SPID>
<TIMESTAMP>2012-06-07T07:27:29-05:00</TIMESTAMP>
</POSTBACK>
N101 Example: (xHTML)
<?xml version='1.0'?>
<POSTBACK>
<ORIGIN>MMS_MT</ORIGIN>
<CODE>N101</CODE>
<SENTAS>SMS</SENTAS>
<STATUS>Message Sent</STATUS>
<MMSID>39755</MMSID>
<FROM>00000</FROM>
<TO>10000000000</TO>
<TRACKINGID>xxxxxxxxxxxx</TRACKINGID>
<CLIENT_REFERENCE>5ZY7Cx1Xy0vs</CLIENT_REFERENCE>
<SPID>0001140</SPID>
<TIMESTAMP>2012-06-07T07:27:34-05:00</TIMESTAMP>
<STATUSDETAILS>Handset setting: mms with pass via xHTML</STATUSDETAILS>
</POSTBACK>
N102 Example: (Binary)
<?xml version='1.0'?>
<POSTBACK>
<ORIGIN>MMS_MT</ORIGIN>
<CODE>N102</CODE>
<SENTAS>MMS</SENTAS>
<STATUS>Message Sent/Delivered</STATUS>
<MMSID>39597</MMSID>
<FROM>00000</FROM>
<TO>10000000000</TO>
<TRACKINGID>xxxxxxxxxxxx</TRACKINGID>
<CLIENT_REFERENCE>5ZY7Cx1Xy0vs</CLIENT_REFERENCE>
<SPID>0001570</SPID>
<TIMESTAMP>2012-06-07T07:27:34-05:00</TIMESTAMP>
<HANDSET>LGMP260 LG-Android-MMS-V4.0/1.2</HANDSET>
<AGGREGATORID>11529-64807-97508-73852-97658</AGGREGATORID>
<OS>android</OS>
</POSTBACK>
N102 Example: (xHTML)
<?xml version='1.0'?>
<POSTBACK>
<ORIGIN>MMS_MT</ORIGIN>
<CODE>N202</CODE>
<SENTAS>SMS</SENTAS>
<STATUS>Message Sent/Delivered</STATUS>
<FROM>00000</FROM>
<TO>10000000000</TO>
<TRACKINGID>xxxxxxxxxxxx</TRACKINGID>
<CLIENT_REFERENCE>5ZY7Cx1Xy0vs</CLIENT_REFERENCE>
<SPID>0001140</SPID>
<TIMESTAMP>2012-06-07T07:28:09-05:00</TIMESTAMP>
<AGGREGATORID>11529-64807-97508-73852-97658</AGGREGATORID>
</POSTBACK>
When the system is unable to send an MMS we return a postback E101.
E101 Example:
<?xml version='1.0'?>
<POSTBACK>
<ORIGIN>MMS_MT</ORIGIN>
<CODE>E101</CODE>
<STATUS>Message Failed</STATUS>
<MMSID>39755</MMSID>
<FROM>00000</FROM>
<TO>10000000000</TO>
<TRACKINGID>xxxxxxxxxxxx</TRACKINGID>
<CLIENT_REFERENCE>5ZY7Cx1Xy0vs</CLIENT_REFERENCE>
<SPID>0001140</SPID>
<STATUSDETAILS>Error fetching dynamic content</STATUSDETAILS>
</POSTBACK>
When the MMS delivery fails due to various reasons we return a postback E102.
E102 Example:
<?xml version='1.0'?>
<POSTBACK>
<ORIGIN>MMS_MT</ORIGIN>
<CODE>E102</CODE>
<STATUS>Message Sent/Rejected</STATUS>
<MMSID>39755</MMSID>
<FROM>00000</FROM>
<TO>10000000000</TO>
<TRACKINGID>xxxxxxxxxxxx</TRACKINGID>
<CLIENT_REFERENCE>5ZY7Cx1Xy0vs</CLIENT_REFERENCE>
<SPID>0001140</SPID>
<TIMESTAMP>2012-06-07T07:28:09-05:00</TIMESTAMP>
<AGGREGATORID>11529-64807-97508-73852-97658</AGGREGATORID>
<STATUSDETAILS>Recipient blocked by mobile operator</STATUSDETAILS>
</POSTBACK>
SaveMMS Encoding Status
When the MMS is saved using the API or the MMS Composer, we generate a postback notification. When saving and encoding of the content is successful, we generate N003. If encoding of the content failed, we generate either postback E002 or E003 containing the MMSID and the name of the audio or video that failed. When E002 or E003 is returned, the MMSID should be considered corrupted.
Variable | Description |
---|---|
ORIGIN | MMS_MT for saving MMS content. |
CODE | N003, E002, E003. |
MMSID | The ID (bigint) of a saved MMS. |
AUDIONAME | Points to audio content that failed to encode properly. |
VIDEONAME | Points to video content that failed to encode properly. |
CLIENT_REFERENCE | Customer transaction ID for the API request. Passed back in all the postbacks for the API transaction. Accepts max. length of 64 chars. |
N003 (Save MMS Successful) Example:
<?xml version='1.0'?>
<POSTBACK>
<ORIGIN>MMS_MT</ORIGIN>
<CODE>N003</CODE>
<MMSID>35674</MMSID>
<CLIENT_REFERENCE>5ZY7Cx1Xy0vs</CLIENT_REFERENCE>
</POSTBACK>
E002 (Save MMS with Audio Failure) Example:
<?xml version='1.0'?>
<POSTBACK>
<ORIGIN>MMS_MT</ORIGIN>
<CODE>E002</CODE>
<MMSID>35674</MMSID>
<AUDIONAME>sample.mp3</AUDIONAME>
<CLIENT_REFERENCE>5ZY7Cx1Xy0vs</CLIENT_REFERENCE>
</POSTBACK>
E003 (Save MMS with Video Failure) Example:
<?xml version='1.0'?>
<POSTBACK>
<ORIGIN>MMS_MT</ORIGIN>
<CODE>E003</CODE>
<MMSID>35675</MMSID>
<VIDEONAME>sample.mp4</VIDEONAME>
<CLIENT_REFERENCE>5ZY7Cx1Xy0vs</CLIENT_REFERENCE>
</POSTBACK>