(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.data-privacy-src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-TT9ZP96');

Knowledge Base

MMS MT Postback V2

8 min read

Synopsis

When the MMS is sent we will generate a Postback notification. When we receive an MMS delivery receipt we will generate another Postback notification. Not all carriers provide MMS delivery receipts.

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 tracking-id. Not all carriers provide handset information. When the mobile network operator does not support MMS or the destination handset does not support the size of the content within the MMS, it is sent as fallback SMS. 

The possible MMS status code that you may receive for the delivery status is one of the following:  N101 (Sent), N102 (Delivered), N103 (Message Expired), E101 (Sending Failure), E102 (Delivery Failure).

MMS MT Success/Failure Status Codes – JSON

Postback CodePostback Status
N101Sent
N102Delivered
N103Expired
E101Failed
E102Rejected
E102Unrecognised
N003Transcoding successful
E002Transcoding failed for audio
E003Transcoding failed for video
N013Transcoding successful and sending triggered
E011Content validation failures
E012Transcoding failed for audio and sending not triggered
E013Transcoding failed for video and sending not triggered

MMS MT Postback Nodes

Postback ParameterPostback Parameter Description
originMMS_MT
codePostback Notification code to identify the postback.
sent-asValue is “MMS” if the MMS is sent/delivered as MMS. Value is “SMS” if the MMS is sent/delivered as Fallback SMS.
statusStatus of the MMS MT transaction. Example: Sent, Delivered, Failed, Rejected, Expired.
status-detailsStatus Details of the MMS MT transaction. Example: Message Sent, Message Delivered, Message Failed, Message Rejected, Message Expired.
toDestination phone number with country code.
fromThe shortcode, 10DLC or TFN sender.
timestampThe timestamp for the MMS MT transaction.
operator-idCarrier ID for the Phone Number.
operator-nameCarrier Name for the Phone Number.
tracking-id / trackingidTracking ID generated in the API Response passed back in the postback to link API Request to Postback.
client-referenceCustomer transaction ID for the API request. Passed back in all the postbacks for the API transaction. Accepts max. length of 64 chars.
campaign-refMessaging Campaign Reference ID from the API Request.
from-maskSender Mask for the Shortcode used to send the message. Sent in the postback only if it exists.
mms-id / mmsidThe mms template id value of the template that will be created.
handsetHandset profile returned inside Delivery Receipt. This is present only in N102 notification.
audio-name / audionameAudio file URL provided in the request.
video-name / videonameVideo file URL provided in the request.
content-typeContent type.
content-nameContent file URL provided in the request.
error-infoError information for the failure.

POSTBACK: N101/N102/N103/E101/E102 Request

curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"STATUS_CODE",
          "sent-as":"MMS/SMS",
          "status":"STATUS",
          "status-details":"STATUS_DETAILS",
          "mms-id":"MMS_ID",
          "from":"SENDER_NUMBER",
          "to":"RECEIVER_PHONE_NUMBER_WITH_COUNTRY_CODE",
          "tracking-id":"TRACKING_ID",
          "client-reference":"CLIENT_REFERENCE",
          "operator-id":"CARRIER_ID",
          “operator-name”:”CARRIER_NAME”
          "timestamp":"SENT_TIMESTAMP",
          "handset":"HANDSET_ID"
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: N101 Example (MMS MT Sent)

MMS
curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"N101",
          "sent-as":"MMS",
          "status":"Sent",
          "status-details":"Message Sent",
          "mms-id":”123456",
          "from":"00000",
          "to":"10000000000",
          "tracking-id":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "operator-id":"0001470",
          “operator-name”:”AT&T”,
          "timestamp":"2021-01-26T18:00:07.990498+00:00"
      }’ \
  "POSTBACK_ENDPOINT_URL"

Fallback SMS
curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"N101",
          "sent-as":"SMS",
          "status":"Sent",
          "status-details":"Message Sent",
          "mms-id":"123456",
          "from":"00000",
          "to":"10000000000",
          "tracking-id":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "operator-id":"0001470",
          “operator-name”:”AT&T”,
          "timestamp":"2021-01-26T18:00:07.990498+00:00"
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: N102 Example (MMS MT / Fallback SMS Delivered)

MMS
curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"N102",
          "sent-as":"MMS", 
          "status":"Delivered",
          "status-details":"Message Delivered",
          "mms-id":"123456",
          "from":"00000",
          "to":"10000000000",
          "tracking-id":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "operator-id":"0001470",
          “operator-name”:”AT&T”,
          "timestamp":"2021-01-26T18:00:07.990498+00:00",
          "handset":"iosmms2.0"
      }’ \
  "POSTBACK_ENDPOINT_URL"

Fallback SMS
curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"N102",
          "sent-as":"SMS", 
          "status":"Delivered",
          "status-details":"Message Delivered",
          "mms-id":"123456",
          "from":"00000",
          "to":"10000000000",
          "tracking-id":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "operator-id":"0001470",
          "operator-name":"AT&T",
          "timestamp":"2021-01-26T18:00:07.990498+00:00",
          "handset":"iosmms2.0"
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: N103 Example (MMS MT Expired)

curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"N103",
          "sent-as":"MMS",
          "status":"Expired",
          "status-details":"Message Expired",
          "mms-id":"123456",
          "from":"00000",
          "to":"10000000000",
          "tracking-id":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "operator-id":"0001470",
          "operator-name":"AT&T",
          "timestamp":"2021-01-26T18:00:07.990498+00:00"
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: E101 Example (MMS MT Sending Failed)

MMS is too BIG (Fallback SMS is disabled)
curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"E101",
          "sent-as":"MMS",
          "status":"Failed",
          "status-details":"MMS is too big",
          "mms-id":"123456",
          "from":"00000",
          "to":"10000000000",
          "tracking-id":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "operator-id":"0001470",
          "operator-name":"AT&T",
          "timestamp":"2021-01-26T18:00:07.990498+00:00"
      }’ \
  "POSTBACK_ENDPOINT_URL"

No way to send SMS or MMS
curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"E101",
          "sent-as":"MMS",
          "status":"Failed",
          "status-details":"No way to send MMS or SMS",
          "mms-id":"123456",
          "from":"00000",
          "to":"10000000000",
          "tracking-id":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "operator-id":"0001470",
          "operator-name":"AT&T",
          "timestamp":"2021-01-26T18:00:07.990498+00:00"
      }’ \
  "POSTBACK_ENDPOINT_URL"

Internal Routing Error
curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"E101",
          "sent-as":"MMS",
          "status":"Failed",
          "status-details":"Internal Routing Error",
          "mms-id":"123456",
          "from":"00000",
          "to":"10000000000",
          "tracking-id":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "operator-id":"0001470",
          "operator-name":"AT&T",
          "timestamp":"2021-01-26T18:00:07.990498+00:00"
      }’ \
  "POSTBACK_ENDPOINT_URL"

Content Validation Failed
curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"E101",
          "sent-as":"MMS",
          "status":"Failed",
          "status-details":"Content Validation Failed",
          "mms-id":"123456",
          "from":"00000",
          "to":"10000000000",
          "tracking-id":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "operator-id":"0001470",
          "operator-name":"AT&T",
          "timestamp":"2021-01-26T18:00:07.990498+00:00"
      }’ \
  "POSTBACK_ENDPOINT_URL"

Audio or Video Transcoding Failed
curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"E101",
          "sent-as":"MMS",
          "status":"Failed",
          "status-details":"Audio or Video Transcoding Failed",
          "mms-id":"123456",
          "from":"00000",
          "to":"10000000000",
          "tracking-id":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "operator-id":"0001470",
          "operator-name":"AT&T",
          "timestamp":"2021-01-26T18:00:07.990498+00:00"
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: E102 Example (MMS MT Rejected)

Rejected
curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"E102",
          "sent-as":"MMS",
          "status":"Rejected",
          "status-details":"Message Rejected",
          "mms-id":"123456",
          "from":"00000",
          "to":"10000000000",
          "tracking-id":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "operator-id":"0001470",
          "operator-name":"AT&T",
          "timestamp":"2021-01-26T18:00:07.990498+00:00"
      }’ \
  "POSTBACK_ENDPOINT_URL"

Unreachable
curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"E102",
          "sent-as":"MMS",
          "status":"Rejected",
          "status-details":"Network Unreachable",
          "mms-id":"123456",
          "from":"00000",
          "to":"10000000000",
          "tracking-id":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "operator-id":"001470",
          "operator-name":"AT&T",
          "timestamp":"2021-01-26T18:00:07.990498+00:00"
      }’ \
  "POSTBACK_ENDPOINT_URL"

Not Supported
curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"E102",
          "sent-as":"MMS",
          "status":"Rejected",
          "status-details":"Message Not Supported",
          "mms-id":"123456",
          "from":"00000",
          "to":"10000000000",
          "tracking-id":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "operator-id":"0001470",
          "operator-name":"AT&T",
          "timestamp":"2021-01-26T18:00:07.990498+00:00"
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: E102 Example (MMS MT Unrecognised)

curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"E102",
          "sent-as":"MMS",
          "status":"Unrecognised",
          "status-details":"-1:Exception",
          "mms-id":"123456",
          "from":"00000",
          "to":"10000000000",
          "tracking-id":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "operator-id":"0001470",
          "operator-name":"AT&T",
          "timestamp":"2021-01-26T18:00:07.990498+00:00"
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: N003 Request

curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"STATUS_CODE",
          "mmsid":"MMS_ID_OF_NEW_MMS_TEMPLATE_CREATED",
          "tracking-id":"TRACKING_ID_OF_REQUEST",
          "client-reference":"CLIENT_REFERENCE",
          "timestamp":"TIMESTAMP_TRANSCODED"
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: N003 Example

curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"N003",
          "mmsid":"123456",
          "tracking-id":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "timestamp":"2021-01-26T18:00:07.990498+00:00"
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: E002 Request

curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"STATUS_CODE",
          "mmsid":"MMS_ID_OF_NEW_MMS_TEMPLATE_CREATED",
          "trackingid":"TRACKING_ID_OF_REQUEST",
          "client-reference":"CLIENT_REFERENCE",
          "audioname":"AUDIO_FILE_URL_PROVIDED_IN_THE_REQUEST"
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: E002 Example

curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"E002",
          "mmsid":"123456",
          "trackingid":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "audioname":"https://fake-content-url.com/audio.mp3"
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: E003 Request

curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"STATUS_CODE",
          "mmsid":"MMS_ID_OF_NEW_MMS_TEMPLATE_CREATED",
          "trackingid":"TRACKING_ID_OF_REQUEST",
          "client-reference":"CLIENT_REFERENCE",
          "videoname":"VIDEO_FILE_URL_PROVIDED_IN_THE_REQUEST"
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: E003 Example

curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"E003",
          "mmsid":"123456",
          "trackingid":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "videoname":"https://fake-content-url.com/video.mp3"
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: N013 Request

curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"STATUS_CODE",
          "mms-id":"MMS_ID_OF_NEW_MMS_TEMPLATE_CREATED",
          "tracking-id":"TRACKING_ID_OF_REQUEST",
          "client-reference":"CLIENT_REFERENCE",
          "timestamp":"TIMESTAMP_TRANSCODED"
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: N013 Example

curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"N013",
          "mms-id":"123456",
          "tracking-id":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "timestamp":"2021-01-26T18:00:07.990498+00:00"
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: E011 Request

curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"STATUS_CODE",
          "tracking-id":"TRACKING_ID_OF_REQUEST",
          "client-reference":"CLIENT_REFERENCE",
          "content-type":"CONTENT_TYPE", 
          "content-name":"CONTENT_FILE_URL_PROVIDED_IN_THE_REQUEST",
          "error-info":"REASON_FOR_CONTENT_VALIDATION_FAILURE"
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: E011 Example

curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"E011",
          "tracking-id":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "content-type":"video", 
          "content-name":"https://fake-content-url.com/video.mp4",
          "error-info":"Video for slide 1 not found at url. Content cannot be fetched from the URL."
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: E012 Request

curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"STATUS_CODE",
          "tracking-id":"TRACKING_ID_OF_REQUEST",
          "client-reference":"CLIENT_REFERENCE",
          "audio-name":"AUDIO_FILE_URL_PROVIDED_IN_THE_REQUEST",
          "error-info":"Transcoding failed for audio"
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: E012 Example

curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"E012",
          "tracking-id":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "audio-name":"https://fake-content-url.com/audio.mp3",
          "error-info":"Transcoding failed for audio"
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: E013 Request

curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"STATUS_CODE",
          "tracking-id":"TRACKING_ID_OF_REQUEST",
          "client-reference":"CLIENT_REFERENCE",
          "video-name":"VIDEO_FILE_URL_PROVIDED_IN_THE_REQUEST",
          "error-info":"Transcoding failed for video"
      }’ \
  "POSTBACK_ENDPOINT_URL"

POSTBACK: E013 Example

curl -X POST \ 
     -H "content-type: application/json" -d '
      {
          "origin":"MMS_MT",
          "code":"E013",
          "tracking-id":"xxxxxxxxxxxx",
          "client-reference":"5ZY7Cx1Xy0vs",
          "video-name":"https://fake-content-url.com/video.mp4",
          "error-info":"Transcoding failed for video"
      }’ \
  "POSTBACK_ENDPOINT_URL"
Go to Top