Site Optimized for Chrome and Firefox


To help protect AT&T subscribers against improper messaging activity,
the SMS and MMS APIs require Premium Access and special permission before they can be used. the SMS and MMS APIs require Premium Access and special permission before they can be used.
Introduction

The MMS API sends MMS messages to one or more AT&T Wireless mobile phones or emails in a single request. This API contains methods for sending and receiving messages and querying for the status of previously submitted MMS messages. For Mobile Originating messages, the MMS API allows you to poll the delivery status of the message or request that delivery status notifications be sent to a registered callback listener URI as soon as the message arrives.

API Quick Start
1
Get Key & Secret

The first step in working with AT&T APIs is to create a developer account or Sign-In to the AT&T Developer Portal.

Click on My Apps and select Setup new application by providing Application Name. Then choose MMS from the list of available API's and click submit to get an App Key and App Secret.

Applicable Scopes : MMS

2
Get OAuth Access Token

AT&T uses the OAuth 2.0 framework to obtain an OAuth access token as shown in the OAuth call flow. To obtain an OAuth access token, use the folowing OAuth sample code.

DHS
AT&T Gateway

# Obtain these from your API Matrix account
APP_KEY=""
APP_SECRET=""

# Setup the scopes for requesting access 
SCOPE="MMS"

curl "https://api.att.com/oauth/v4/token" \
    --insecure \
    --header "Accept: application/json" \
    --header "Content-Type: application/x-www-form-urlencoded" \
    --data "client_id=${APP_KEY}&client_secret=${APP_SECRET}&grant_type=client_credentials&scope=${API_SCOPES}"

For more information refer to the OAuth 2.0 API.

3
Make API Calls
  • Send an MMS message from an app to phone(s)
  • The Send MMS method sends an MMS message to one or more AT&T wireless network mobile phone(s) or email(s). A unique identifier (messageId) returned in the response may be used to query for the delivery status of the sent message.

    DHS
    AT&T Gateway
    
    # Step 1:
    
    # Authentication parameter; for directions regarding obtaining the OAuth access
    # token, see the OAuth section.
    OAUTH_ACCESS_TOKEN="ENTER_VALUE"
    
    # Step 2:
    
    # Fully qualified domain name for the API Gateway.
    FQDN="https://api.att.com"
    
    # Telephone number to which the MMS message is sent.
    # For example: TEL="tel:+1234567890"
    TEL="ENTER_VALUE"
    
    # Enter file path of MMS attachment to send.
    # For example: FILE="/tmp/img.gif"
    FILE="ENTER_VALUE"
    
    # Enter the MMS file type.
    # For example: MIME_TYPE="image/gif"
    MIME_TYPE="ENTER_VALUE"
    
    # BASE64 image data of MMS attachment to send.
    IMAGE_DATA="$(base64 $FILE)"
    
    # Filename of MMS attachment.
    FILE_NAME=$(basename $FILE)
    
    # Create the body of the MMS message.
    BODY=$(cat<<EOF
    --foo
    Content-Transfer-Encoding: 8bit
    Content-Disposition: form-data; name="root-fields"
    Content-ID: <startpart>
    Content-Type: application/json
    
    {
        "outboundMessageRequest":{
            "address":"${TEL}",
            "priority":"High",
            "subject":"Test Message"
        }
    }
    
    --foo
    Content-Disposition: attachment; filename=${FILE_NAME}
    Content-Transfer-Encoding: BASE64
    Content-ID: ${FILE_NAME}
    Content-Type: ${MIME_TYPE}; name=$FILE_NAME
    
    ${IMAGE_DATA}
    
    --foo--
    EOF
    )
    
    # Send the Send MMS method request to API Gateway.
    curl "${FQDN}/mms/v3/messaging/outbox" \
        --header "Authorization: Bearer ${OAUTH_ACCESS_TOKEN}" \
        --header "Accept: application/json" \
        --header "MIME-Version: 1.0" \
        --header "Content-Type: multipart/related;type=\"application/json\";start=\"<startpart>\"; boundary=\"foo\"" \
        --data "${BODY}" \
        --request POST
    
  • Get delivery status for an MMS message
  • The Get MMS Delivery Status method requests the status of a message sent using the Send MMS method and accepted by the API Gateway for delivery to the destination mobile device. The message identifier (messageId) returned in the Send MMS response must be provided in the Get MMS Delivery Status method request.

    DHS
    AT&T Gateway
    
    # Step 1:
    
    # Authentication parameter; for directions regarding obtaining the OAuth access
    # token, see the OAuth section.
    OAUTH_ACCESS_TOKEN="ENTER_VALUE"
    
    # Step 2:
    
    # Fully qualified domain name for the API Gateway.
    FQDN="https://api.att.com"
    
    # Enter message identifier used for the Get MMS Delivery Status method.
    MESSAGE_ID="ENTER_VALUE"
    
    # Send the Get MMS Delivery Status method request to the API Gateway.
    curl "${FQDN}/mms/v3/messaging/outbox/${MESSAGE_ID}" \
        --header "Authorization: Bearer ${OAUTH_ACCESS_TOKEN}" \
        --header "Accept: application/json" \
    
  • Receive MMS messages via notification
  • The Receive MMS method receives notifications to the developer's listener URL, which is provisioned while creating an app. The Receive MMS callback enables an app to immediately receive mobile-originated MMS messages destined for the short code assigned to the app.

    DHS
    AT&T Gateway
    • Prerequisite : Developer listener URL registered at MyApps portal

    • POST {developer listener URL (subject, priority, sender phone number,attachment}

      Step 1 : Push MMS notification

    • {Acknowledge}

      Response - HTTP 200 OK

Demo Apps
Libraries
OAuth

All APIs provided by AT&T use the OAuth 2.0 framework. All API requests sent to the API Gateway must include an OAuth access token.

You may authorize access for this API by using the following scope.

  • "MMS" for the Get MMS Delivery Status method, the Receive MMS callback, the Receive MMS Delivery Status callback, and the Send MMS method.

To obtain an OAuth access token, use the App Key and App Secret from the My Apps section after registering and signing into your API Platform account. To obtain your OAuth access token run the following command from the Command Line Interface window and replace "{{APP_KEY}}", "{{APP_SECRET}}", and "{{API_SCOPES}}" with the App Key, App Secret, and the API scopes that are specified in your app account.

Get Access Token method using the cURL command:

copy
curl "https://api.att.com/oauth/v4/token" \
    --insecure \
    --header "Accept: application/json" \
    --header "Content-Type: application/x-www-form-urlencoded" \
    --data "client_id={{APP_KEY}}&client_secret={{APP_SECRET}}&grant_type=client_credentials&scope={{API_SCOPES}}" 

A successful response from the API Gateway contains an OAuth access token, the expiration period, and an OAuth refresh token as displayed in the following example.

Response from the API Gateway for the Get Access Token method:

HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Date: {{DATE_AND_TIME_STAMP}}

{
    "access_token":"{{OAUTH_ACCESS_TOKEN}}",
    "token_type": "bearer",
    "expires_in":{{EXPIRATION_PERIOD}},
    "refresh_token":"{{REFRESH_TOKEN}}"
} 

Extract the value from "{{OAUTH_ACCESS_TOKEN}}" to use in the Authorization parameter for requests to the API Gateway. When sending a request to the API Gateway a successfully constructed Authorization parameter looks like the following.

Authorization parameter for the HTTP header:

Authorization: Bearer {{OAUTH_ACCESS_TOKEN}} 

For more information about the OAuth refresh token, other authentication options, and revoking tokens; see the OAuth 2.0 API v4.

Considerations

The RESTful MMS API provided by AT&T has the following considerations.

  • You can send an MMS message to a maximum of 10 recipients at a time.
  • All the messages sent are retried for up to 72 hours and any undelivered messages get deleted after that.
  • AT&T supports two flavors of MMS API GSMA One and AT&T. If the application wants to use multiple short codes to send MMS messages, then consider using GSMA One API. Using the GSMA One API enables you to specify a short code as a parameter in the URI to indicate the originating sender address for the MMS message.
Provisioning

The RESTful MMS API provided by AT&T requires that you provision your app as follows.

  • By default, an online short code is assigned to your application for the reception of Mobile Originating MMS message via a callback URI, so that the application gets a notification as soon as a message is received. You must register this callback URI during provisioning.
  • You can bring your own short code (custom short code) to use for your application. The process for on-boarding a custom short code typically takes 1-2 weeks. For more information, please see the FAQs.
  • The GSMA One API can support multiple short codes for an application. When using the GMA One API to send a MMS message from the application, the sender address should always be set to the highest numbered short code available for the application.
Resources
Get MMS Delivery Status

Select provider:

Overview

The Get MMS Delivery Status method requests the status of a previously submitted Send MMS method request that was accepted by the API Gateway for delivery to the destination mobile device.
The message identifier returned in the response of the corresponding Send MMS method must be provided in this method request.
Note: This method of polling for the delivery status message only works when the notifyDeliveryStatus parameter is either set to false or is not present in the Send MMS method request.
When one of the following events occur the delivery status removed from the API Gateway and is not available for the app to query it.

  • Thirty minutes after the message has reached the final state; the final state is one of the following values.
    • DeliveredToTerminal
    • DeliveryImpossible
  • Once the API Gateway responds to the first delivery status request from the app after the message has reached the final state.
  • OAuth Scope
  • Scope: MMS

  • Model: client_credentials

  • Resource
  • copy
    GET https://api.att.com/mms/v3/messaging/outbox/{{messageId}} 
Request Examples

Request

copy
GET https://api.att.com/mms/v3/messaging/outbox/MMSa9b1927803784049
Authorization: Bearer xyz123456789
Accept: application/json 

Response

copy
{
    "DeliveryInfoList": {
        "DeliveryInfo": [
            {
                "Id" : "msg0",
                "Address" : "tel:3500000992",
                "DeliveryStatus" : "DeliveredToTerminal"
            }
        ] ,
        "ResourceUrl": https://api.att.com/mms/v3/messaging/outbox/MMSa9b192780378404c
    }
} 
Request Parameters
Parameter
Accept String Header
Specifies the format of the body for the response.
The acceptable values for this parameter are:
  • application/json
  • application/xml
  • application/x-www-form-urlencoded
The default value is application/json.
Note: For this method, this parameter specifies how the entity should be represented in case of an error.
This parameter is for setting the format of an error message.
If there is no error, then the representation will match the form of the actual content.
Authorization String Header
Specifies the authorization.
The acceptable format for this parameter is the word "Bearer" followed by a space (   ) and an OAuth access token.
If this parameter value is missing from the header, then the API Gateway returns a message with an HTTP Status Code of 400 Invalid Request.
If the OAuth access token is not valid, then the API Gateway returns an HTTP Status Code of 401 Unauthorized with a WWW-Authenticate HTTP header.
messageId String URI Path
Specifies the MMS message identifier that is returned as part of a previous response.
Response Parameters
Parameter
DeliveryInfoList Delivery Info List Object Body
Contains the delivery information that describes the delivery status of the messages that were previously requested.
This parameter contains the following child parameters:
Overview

The Get MMS Delivery Status method requests the status of a previously submitted Send MMS method request that was accepted by the API Gateway for delivery to the destination mobile device.
The message identifier returned in the response of the corresponding Send MMS method must be provided in this method request.
Note: This method of polling for the delivery status message only works when the notifyDeliveryStatus parameter is either set to false or is not present in the Send MMS method request.
When one of the following events occur the delivery status removed from the API Gateway and is not available for the app to query it.

  • Thirty minutes after the message has reached the final state; the final state is one of the following values.
    • DeliveredToTerminal
    • DeliveryImpossible
  • Once the API Gateway responds to the first delivery status request from the app after the message has reached the final state.
  • OAuth Scope
  • Scope: MMS

  • Model: client_credentials

  • Resource
  • copy
    GET https://api.att.com/3/messaging/outbound/requests/{{senderAddress}}/{{requestId}}/deliveryInfos 
Request Examples

Request

copy
GET https://api.att.com/3/messaging/outbound/tel%3A%2B12345678/MMSa9b1927803784049/deliveryInfos
Authorization: Bearer xyz123456789
Accept: application/json 

Response

copy
{
    "deliveryInfoList": {
        "deliveryInfo": [
            {
                "address": "tel:+14258028620",
                "deliveryStatus": "DeliveredToTerminal"
            }
        ],
        "resourceURL": "https://api.att.com/3/messaging/outbound/22888026/MMSa9b4c6b76f957807/deliveryInfos"
    }
} 
Request Parameters
Parameter
Accept String Header
Specifies the format of the body for the response.
The acceptable values for this parameter are:
  • application/json
  • application/xml
The default value is application/json.
Note: For this method, this parameter specifies how the entity should be represented in case of an error.
This parameter is for setting the format of an error message.
If there is no error, then the representation will match the form of the actual content.
Authorization String Header
Specifies the authorization.
The acceptable format for this parameter is the word "Bearer" followed by a space (   ) and an OAuth access token.
If this parameter value is missing from the header, then the API Gateway returns a message with an HTTP Status Code of 400 Invalid Request.
If the OAuth access token is not valid, then the API Gateway returns an HTTP Status Code of 401 Unauthorized with a WWW-Authenticate HTTP header.
Content-Type String Header
Specifies the representation format for the request.
requestId String URI Path
Specifies the MMS message identifier that is returned in a previous response.
senderAddress String URI Path
Specifies the address that originally appeared on the AT&T Wireless customer's mobile device and to where a responding MMS message from the user is sent.
This parameter should be one of the short codes assigned to the app account from which the originating message is sent
Response Parameters
Parameter
DeliveryInfoList Delivery Info List Object Body
Contains the delivery information that describes the delivery status of the messages that were previously requested.
This parameter contains the following child parameters:
Receive MMS

Select provider:

Overview

The Receive MMS callback receives MMS messages.
This callback represents a push or notification that the developer must implement and host in order to collect all of the messages destined for the short code assigned to app account.
This callback does not provide a mechanism to actively retrieve or poll for waiting MMS messages.
When an MMS messages arrives for the short code, the API Gateway determines which app account is associated with that short code, and the MMS message is immediately delivered to the MMS Mobile Originated (MO) listener URI that is registered to the app account for the specified short code.
This callback enables developers to immediately receive MO MMS messages destined to short codes assigned to their app account. In this case, the API Gateway acts as a client and the app acts as a server.
The developer exposes the app functionality to the API Gateway in the form of a listener URI.
This URI is used by the API Platform to forward the received MMS messages.
Note: The developer must register the URI or the API Gateway will not be able push the notification to the app associated with the MO messages destined for the short code.
Note: If the URI provided is HTTPS and a port is not defined, then the default SSL port 443 is used.
Note: The use of a transport mechanism other than HTTPS is not supported in the URI.
When a user sends a message to the short code, the API Gateway forwards the message to the URI listener provisioned with the short code associated with the app account.
The messages are removed from the AT&T Network after delivery is acknowledged by the app or after all the retries as per the retry configuration are exhausted. The number of retries are specified by the retry configuration.
The app must acknowledge the notification with an appropriate HTTP Status Code class of 2xx.
Note: The following is an explanation regarding the handling of HTTP status codes sent by the app in response to a notification from the API Gateway.

  • In the case of HTTP Status Code class of 2xx, the API Gateway assumes positive acknowledgement that the notification has been sent successfully.
  • In the case of no response, timeout condition, or HTTP Status Codes class other than 2xx; the API Gateway assumes that either the app is temporarily unavailable or cannot receive and process the notification at this point in time.

If the MMS Mobile Originated (MO) URI listener assigned to the app is unavailable, busy, or otherwise unable to process and acknowledge the MO message, then the delivery is retried as per the retry configuration set in the AT&T Network.
Typically the retry period is 72 hours after which time the message is discarded and no further retries are attempted.

  • OAuth Scope
  • Scope: Not Applicable

  • Model: Not Applicable

  • Resource
  • copy
    POST http://{{your_notification_callback_uri}} 
Notification Examples

Notification

copy
POST http://{{your_notification_callback_uri}}
Content-Type: multipart/related; type="text/xml"; start="<rootpart@api.att.com>"; boundary="MIMEBoundary_a9b1d81c790c90ac6520a984a9e404cedce0f820564bd221"
Content-Transfer-Encoding: 8bit
Content-ID: rootpart@api.att.com
Content-Type: text/xml; charset=UTF-8

<InboundMmsMessage>
    <SenderAddress>tel:+14258028620</SenderAddress>
    <Priority>Normal</Priority>
    <Subject></Subject>
</InboundMmsMessage>

--MIMEBoundary_a9b1d81c790c90ac6520a984a9e404cedce0f820564bd221
Content-Type: multipart/related; Type="application/smil"; Start=0.smil; boundary="Nokia-mm-messageHandler-BoUnDaRy-=_-861381851"
Content-Transfer-Encoding: binary
Content-ID: <#1Attachment>

--Nokia-mm-messageHandler-BoUnDaRy-=_-861381851
Content-Type: application/smil
Content-ID: 0.smil
Content-Transfer-Encoding: BASE64

PHNtaWw+CjxoZWFkPgo8bGF5b3V0PgogPHJvb3QtbGF5b3V0Lz4KPHJlZ2lvbiBpZD0iVGV4dCIg
dG9wPSI3MCUiIGxlZnQ9IjAlIiBoZWlnaHQ9IjMwJSIgd2lkdGg9IjEwMCUiIGZpdD0ic2Nyb2xs
Ii8+CjxyZWdpb24gaWQ9IkltYWdlIiB0b3A9IjAlIiBsZWZ0PSIwJSIgaGVpZ2h0PSI3MCUiIHdp
ZHRoPSIxMDAlIiBmaXQ9Im1lZXQiLz4KPC9sYXlvdXQ+CjwvaGVhZD4KPGJvZHk+CjxwYXIgZHVy
PSIxMHMiPgo8aW1nIHNyYz0iSU1HXzcxMTguanBnIiByZWdpb249IkltYWdlIi8+Cjx0ZXh0IHNy
Yz0idGV4dF8wMDAyLnR4dCIgcmVnaW9uPSJUZXh0Ii8+CjwvcGFyPgo8L2JvZHk+Cjwvc21pbD4K

--Nokia-mm-messageHandler-BoUnDaRy-=_-861381851
Content-Type: image/jpeg; Name=IMG_7118.jpg
Content-Disposition: Attachment; Filename=IMG_7118.jpg
Content-ID: 1
Content-Location: IMG_7118.jpg
Content-Transfer-Encoding: BASE64

{{...BASE64 data....}}

--Nokia-mm-messageHandler-BoUnDaRy-=_-861381851
Content-Type: text/plain; Charset=US-ASCII
Content-Disposition: Attachment; Filename=text_0002.txt; Charset=US-ASCII
Content-ID: 2
Content-Location: text_0002.txt
Content-Transfer-Encoding: BASE64

U3VwZXI= 
Notification Parameters
Parameter
InboundMmsMessage Inbound MMS Message Object Body
Contains the information for the inbound MMS message.
This parameter contains the following child parameters:
<Attachments> MIME Data MIME Body
Represents one or more multi-part MIME content attachments sent in the notification with the appropriate content-header for the specific part.
The MIME body may contain one or more MIME parts up to 600 kilobytes ( kB ).
The MIME body may contain audio, video, image, or text content.
Receive MMS Delivery Status

Select provider:

Overview

The Receive MMS Delivery Status callback receives notifications for the final delivery status of the MMS messages sent by the app.
This callback enables the developer to receive notifications.
In this case, the API Gateway acts as a client and the app acts as a server.
The developer provides the listener endpoint URI for the app to the API Platform during the app account registration process or with an update to their app account using the appropriate short code.
A one-to-one association exists between the URI and a short code.
The URI is used by the API Gateway to notify the final delivery status of the MMS messages that were earlier accepted for delivery by the API Gateway against the short code.
Note: The delivery notification is delivered to the app only if the notification specified in the Send MMS method request by setting the notifyDeliveryStatus parameter to true.
Note: There is one notification message per destination address when the MMS message is being delivered to multiple recipients in a single request.
Note: All of the notifications being delivered to multiple recipients in a single request may not be delvered at the same time as the timing depends on the delivery of the MMS message to each recipient.
Note: If the URI provided is HTTPS and a port is not specified, then the default SSL port 443 is used.
Note: The use of a transport mechanism other than HTTPS is not supported in the URI.
When an MMS message, that was earlier accepted for delivery, reaches the final status and the app has requested for delivery notification in the Send MMS method request; then one or more notification messages are sent to the endpoint URI registered by the app account for the specified short code.
The MMS message reaches the final status when it is delivered to the user's mobile device or when it expires in the network after multiple retries.
The number of retry attempts is based on the Network retry configuration, which is currently set to 72 hours.
If the notifyDeliveryStatus parameter value is set to true in the Send MMS method request and if the notification endpoint URI is not provided or is associated to the corresponding short code in the app account, then the delivery notification status message may become lost.
The listener for the app is expected to respond to the notification by responding with the appropriate HTTP Status Code class of 2xx for positive acknowledgement.
The following is an explanation regarding handling of HTTP status codes sent by the app, in response to a notification from the API Gateway.

  • In case of HTTP Status Code class of 2xx, the API Gateway assumes positive acknowledgement that the notification has been sent successfully.
  • In case of no response, a timeout condition, or a HTTP Status Code class other than 2xx; the API Gateway assumes that either the app is temporarily unavailable or cannot receive and process the notification at that point in time.

If the registered app delivery notification URI listener is unavailable, busy, or otherwise unable to process and acknowledge the delivery status notification message; then delivery is retried as per the retry configuration set in the API Platform.
Typically, the retry period is 72 hours after which the message is discarded and no further retries are attempted.

  • OAuth Scope
  • Scope: Not Applicable

  • Model: Not Applicable

  • Resource
  • copy
    POST https://{{your_notification_callback_uri}} 
Notification Examples

Notification

copy
POST https://{{your_notification_callback_uri}}
{
    "deliveryInfoNotification": {
        "messageId":"MMSc04091ed284f5684",
        "deliveryInfo":{
            "address":"tel:+13500000012",
            "deliveryStatus":"DeliveredToTerminal"
        }
    }
} 
Notification Parameters
Parameter
deliveryInfoNotification Delivery Info Notification Object Body
Contains the delivery status for one or more destination addresses along with callback data provided in the previous Send MMS method request and the unique tracking identifier generated by the API Gateway that was earlier provided in the response to the previous Send MMS method request.
This parameter contains the following child parameters:
Send MMS

Select provider:

Overview

The Send MMS method sends an MMS message to one or more AT&T Wireless mobile devices.
This method also allows the app to specify to the API Gateway that it will be notified about the delivery status of the message through a push or callback response.

  • OAuth Scope
  • Scope: MMS}

  • Model: client_credentials

  • Resource
  • copy
    POST https://api.att.com/mms/v3/messaging/outbox 
Request Examples

Request

copy
POST https://api.att.com/mms/v3/messaging/outbox HTTP/1.1
Authorization: Bearer xyz123456789
Content-Type: multipart/related; type="application/json"; start="{startpart}"; boundary="foo"
Accept: application/json
MIME-Version: 1.0
Content-Length: nnnn
Connection: close

--foo
Content-Transfer-Encoding: 8bit
Content-Disposition: form-data; name="root-fields"
Content-ID: {startpart}
Content-Type: application/json

{
    "outboundMessageRequest": {
        "address":"tel:4259999999",
        "priority":"High",
        "subject":"simple message to myself"
    }
}
--foo
Content-Disposition: attachment; filename=att.gif
Content-Transfer-Encoding: Binary
Content-ID: att.gif
Content-Type: image/gif;name=att.gif

{{...binary data...}}
--foo-- 

Response

copy
{
    "outboundMessageResponse": {
        "messageId": "MMSa9b4dd85737c0409",
        "resourceReference": {
            "resourceURL": "https://api.att.com/mms/v3/messaging/outbox/MMSa9b4dd85737c0409"
        }
    }
} 

Request

copy
POST https://api.att.com/mms/v3/messaging/outbox HTTP/1.1
Accept: application/json
MIME-Version: 1.0
Content-Type: multipart/related; type="application/json"; start="{startpart}"; boundary="----=_Part_1_30913058.1330958564625"
Content-Length: nnnnn

------=_Part_1_30913058.1330958564625
Content-Type: application/json; charset=UTF-8
Content-Transfer-Encoding: 8bit
Content-ID: {startpart}

{
    "outboundMessageRequest": {
        "address":"tel:14259999999",
        "subject":"Test MMS V3",
        "priority":"High"
    }
}
------=_Part_1_30913058.1330958564625
Content-Type: multipart/related; type="application/smil"; start="{smil}"; boundary="----=_Part_0_15555997.1330958564590"
Content-Transfer-Encoding: binary
Content-ID: {#1Attachment}

------=_Part_0_15555997.1330958564590
Content-Type: application/smil; name=mms.smil
Content-Transfer-Encoding: 8bit
Content-ID: {smil}
Content-Disposition: attachment; filename=mms.smil

<?xml version="1.0" encoding="UTF-8"?>
<smil>
    <head>
        <layout>
            <root-layout height="100%" width="100%"/>
            <region fit="hidden" height="50%" id="ImageOrVideo" left="0" top="50%" width="100%"/>
            <region fit="hidden" height="50%" id="Text" left="0px" top="50%" width="100%"/>
        </layout>
    </head>
    <body>
        <par>
            <img region="ImageOrVideo" src="cid:0-image"/>
            <text region="Text" src="cid:0-text"/>
        </par>
    </body>
</smil>
------=_Part_0_15555997.1330958564590
Content-Type: text/plain; name=text.txt; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-ID: 0-text
Content-Disposition: attachment; filename=text.txt

Test MMS from Developers
------=_Part_0_15555997.1330958564590
Content-Type: image/png; name=atttst.png
Content-Transfer-Encoding: BASE64
Content-ID: 0-image
Content-Disposition: attachment; filename=atttst.png

{{...BASE64 encoded Data...}}
------=_Part_0_15555997.1330958564590--

------=_Part_1_30913058.1330958564625-- 

Response

copy
{
    "outboundMessageResponse": {
        "messageId": "MMSa9b4dd85737c0409"
    }
} 

Request

copy
POST https://api.att.com/mms/v3/messaging/outbox HTTP/1.1
Authorization: Bearer xyz123456789
Content-Type: multipart/related; type="application/x-www-form-urlencoded"; start="{startpart}"; boundary="foo"
Accept: application/json
MIME-Version: 1.0
Content-Length: nnnn
Connection: close


--foo
Content-Transfer-Encoding: 8bit
Content-Disposition: form-data; name="root-fields"
Content-ID: {startpart}
Content-Type: application/x-www-form-urlencoded

address=tel%3A%2B13500000991&
priority=High&
subject=image%20file
--foo
Content-Disposition: attachment; filename=att.gif
Content-Transfer-Encoding: Binary
Content-ID: att.gif
Content-Type: image/gif;name=att.gif

{{...binary data...}}
--foo-- 

Response

copy
<outboundMessageResponse messageId=?MMSa9b1927803784049?>
</outboundMessageResponse> 

Request

copy
POST https://api.att.com/mms/v3/messaging/outbox HTTP/1.1
Authorization: Bearer xyz123456789
Content-Type: multipart/related; type="application/xml"; start="{startpart}"; boundary="foo"
Accept: application/json
MIME-Version: 1.0
Content-Length: nnnn
Connection: close


--foo
Content-Type:; application/xml; charset=UTF-8
Content-Transfer-Encoding: 8bit
Content-Disposition: form-data; name="root-fields"
Content-ID: {startpart}

<outboundMessageRequest>
    <address>tel:+13500000992</Address>
    <subject>test</Subject>
    <priority>High</Priority>
</outboundMessageRequest>
--foo
Content-Disposition: attachment; filename=att.gif
Content-Transfer-Encoding: Binary
Content-ID: att.gif
Content-Type: image/gif;name=att.gif

{{...binary data...}}
--foo-- 

Response

copy
<outboundMessageResponse messageId="MMSc04091ed284f5684">
    <resourceReference>
       <resourceURL>https://api.att.com/mms/v3/messaging/outbox/MMSa9b4dd85737c0409</resourceUrl>
    </resourceReference>
</outboundMessageResponse> 
Request Parameters
Parameter
Accept String Header
Specifies the format of the body for the response.
The acceptable values for this parameter are:
  • application/json
  • application/xml
  • application/x-www-form-urlencoded
The default value is application/json.
Note: For this method, this parameter specifies how the entity should be represented in case of an error.
This parameter is for setting the format of an error message.
If there is no error, then the representation will match the form of the actual content.
Authorization String Header
Specifies the authorization.
The acceptable format for this parameter is the word "Bearer" followed by a space (   ) and an OAuth access token.
If this parameter value is missing from the header, then the API Gateway returns a message with an HTTP Status Code of 400 Invalid Request.
If the OAuth access token is not valid, then the API Gateway returns an HTTP Status Code of 401 Unauthorized with a WWW-Authenticate HTTP header.
Content-Type String Header
Specifies the representation format for the body of the request.
outboundMessageRequest Outbound Message Request Object Body
Contains the information about the MIME content.
This parameter contains the following child parameters:
<Attachments> MIME Data MIME Body
Represents one or more multi-part MIME content attachments sent in the notification with the appropriate content-header for the specific part.
Note: The SMIL wrapping is recommended in order to render the multi-media attachments properly across all of the mobile devices.
Note: If an SMIL wrapper is not specified by the developer, then the API Gateway inserts the SMIL wrapper as appropriate.
Response Parameters
Parameter
outboundMessageResponse Outbound Message Response Object Body
>Contains the response message.
This parameter contains the following child parameters:
Overview

The Send MMS method sends an MMS message to one or more AT&T Wireless mobile devices.
This method also allows the app to specify to the API Gateway that it be notified about the delivery status of the message through a push or callback response.

  • OAuth Scope
  • Scope: MMS}

  • Model: client_credentials

  • Resource
  • copy
    POST https://api.att.com/3/messaging/outbound/{{senderAddress}}/requests 
Request Examples

Request

copy
POST https://api.att.com/3/messaging/outbound/44178644/requests HTTP/1.1
Authorization: Bearer 8b45510402bf1476bf1a4884da36fd56
Content-Type: multipart/related; type="application/json"; start="{startpart}"; boundary="foo"
Accept: application/json
MIME-Version: 1.0
Content-Length: nnnn
Connection: close

--foo
Content-Transfer-Encoding: 8bit
Content-Disposition: form-data; name="root-fields"
Content-ID: {startpart}
Content-Type: application/json

{
    "outboundMessageRequest":{
       "address":"tel:4259999999",
       "priority":"High",
       "subject":"simple message to myself"
    }
}
--foo
Content-Disposition: attachment; filename=att.gif
Content-Transfer-Encoding: Binary
Content-ID: att.gif
Content-Type: image/gif;name=att.gif

{{...binary data...}}
--foo-- 

Response

copy
{
    "outboundMessageResponse": {
        "messageId": "MMSa9b4dd85737c0409"
    }
} 

Request

copy
POST https://api.att.com/3/messaging/outbound/44178644/requests HTTP/1.1
Accept: application/json
MIME-Version: 1.0
Content-Type: multipart/related; type="application/json"; start="<startpart>"; boundary="----=_Part_1_30913058.1330958564625"
Content-Length: nnnnn

------=_Part_1_30913058.1330958564625
Content-Type: application/json; charset=UTF-8
Content-Transfer-Encoding: 8bit
Content-ID: <startpart>

{
    "outboundMessageRequest":{
        "address":"tel:14259999999",
        "subject":"Test MMS V3",
        "priority":"High"
    }
}
------=_Part_1_30913058.1330958564625
Content-Type: multipart/related; type="application/smil"; start="<smil>"; boundary="----=_Part_0_15555997.1330958564590"
Content-Transfer-Encoding: binary
Content-ID: {#1Attachment}

------=_Part_0_15555997.1330958564590
Content-Type: application/smil; name=mms.smil
Content-Transfer-Encoding: 8bit
Content-ID: <smil>
Content-Disposition: attachment; filename=mms.smil

<?xml version="1.0" encoding="UTF-8"?>
<smil>
    <head>
        <layout>
            <root-layout height="100%" width="100%"/>
            <region fit="hidden" height="50%" id="ImageOrVideo" left="0" top="50%" width="100%"/>
            <region fit="hidden" height="50%" id="Text" left="0" top="50%" width="100%"/>
        </layout>
    </head>
    <body>
        <par>
            <img region="ImageOrVideo" src="cid:0-image"/>
            <text region="Text" src="cid:0-text"/>
        </par>
    </body>
</smil>
------=_Part_0_15555997.1330958564590
Content-Type: text/plain; name=text.txt; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-ID: 0-text
Content-Disposition: attachment; filename=text.txt

Test MMS from Developers
------=_Part_0_15555997.1330958564590
Content-Type: image/png; name=atttst.png
Content-Transfer-Encoding: BASE64
Content-ID: 0-image
Content-Disposition: attachment; filename=atttst.png

{{...BASE64 encoded Data...}}
------=_Part_0_15555997.1330958564590--

------=_Part_1_30913058.1330958564625-- 

Response

copy
{
    "outboundMessageResponse": {
        "messageId": "MMSa9b4dd85737c0409",
        "resourceReference": {
            "resourceURL": "https://api.att.com/3/messaging/outbound/44178644/MMSa9b4dd85737c0409/deliveryInfos"
        }
    }
} 

Request

copy
POST https://api.att.com/3/messaging/outbound/44178644/requests HTTP/1.1
Authorization: Bearer 8b45510402bf1476bf1a4884da36fd56
Content-Type: multipart/related; type="application/x-www-form-urlencoded"; start="<startpart>"; boundary="foo"
Accept: application/json
MIME-Version: 1.0
Content-Length: nnnn
Connection: close


--foo
Content-Transfer-Encoding: 8bit
Content-Disposition: form-data; name="root-fields"
Content-ID: <startpart>
Content-Type: application/x-www-form-urlencoded

address=tel%3A%2B13500000991&
priority=High&
subject=image%20file
--foo
Content-Disposition: attachment; filename=att.gif
Content-Transfer-Encoding: Binary
Content-ID: att.gif
Content-Type: image/gif;name=att.gif

{{...binary data...}}
--foo-- 

Response

copy
<outboundMessageResponse messageId=?MMSa9b1927803784049?>
</outboundMessageResponse> 

Request

copy
POST https://api.att.com/3/messaging/outbound/44178644/requests HTTP/1.1
Authorization: Bearer 8b45510402bf1476bf1a4884da36fd56
Content-Type: multipart/related; type="application/xml"; start="<startpart>"; boundary="foo"
Accept: application/json
MIME-Version: 1.0
Content-Length: nnnn
Connection: close


--foo
Content-Type:; application/xml; charset=UTF-8
Content-Transfer-Encoding: 8bit
Content-Disposition: form-data; name="root-fields"
Content-ID: <startpart>

<outboundMessageRequest>
    <address>tel:+13500000992</Address>
    <subject>test</Subject>
    <priority>High</Priority>
</outboundMessageRequest>
--foo
Content-Disposition: attachment; filename=att.gif
Content-Transfer-Encoding: Binary
Content-ID: att.gif
Content-Type: image/gif;name=att.gif

{{...binary data...}}
--foo-- 

Response

copy
<outboundMessageResponse messageId="MMSc04091ed284f5684">
    <resourceReference>
       <resourceURL>https://api.att.com/3/messaging/outbound/44178644/MMSa9b4dd85737c0409/deliveryInfos</resourceUrl>
    </resourceReference>
</outboundMessageResponse> 
Request Parameters
Parameter
Accept String Header
Specifies the format of the body for the response.
The acceptable values for this parameter are:
  • application/json
  • application/xml
  • application/x-www-form-urlencoded
The default value is application/json.
Note: For this method, this parameter specifies how the entity should be represented in case of an error.
This parameter is for setting the format of an error message.
If there is no error, then the representation will match the form of the actual content.
Authorization String Header
Specifies the authorization.
The acceptable format for this parameter is the word "Bearer" followed by a space (   ) and an OAuth access token.
If this parameter value is missing from the header, then the API Gateway returns a message with an HTTP Status Code of 400 Invalid Request.
If the OAuth access token is not valid, then the API Gateway returns an HTTP Status Code of 401 Unauthorized with a WWW-Authenticate HTTP header.
Content-Type String Header
Specifies the representation format for the body of the request.
outboundMessageRequest Outbound Message Request Object Body
Contains the information about the MIME content.
This parameter contains the following child parameters:
senderAddress String URI Path
Specifies the short code associated with the app account that appears on the user's mobile device or user agent as the sender of the message.
<Attachments> MIME Data MIME Body
Represents one or more multi-part MIME content attachments sent in the notification with the appropriate content-header for the specific part.
Note: The SMIL wrapping is recommended in order to render the multi-media attachments properly across all of the mobile devices.
Note: If an SMIL wrapper is not specified by the developer, then the API Gateway inserts the SMIL wrapper as appropriate.
Response Parameters
Parameter
outboundMessageResponse Outbound Message Response Object Body
Contains the response message.
This parameter contains the following child parameters: