Skip to content

MM7 Submit

MM7_Submit

Send MMS MT to end users

To send a multimedia message, submit the SubmitReq MM7 SOAP to the API Endpoint with the multimedia message as the payload. When the API endpoint accepts the request, it acknowledges with a success status using a SubmitRsp MM7 SOAP. This indicates that the message was accepted for delivery. It does not, however, indicate that the message was delivered to the device. If the message was received in error, it responds with a failure status using the RSErrorRsp SOAP Fault.

Group Messaging

Group messaging or group chat functionality is enabled by utilizing the “displayonly” attribute within the “number” node. To send multimedia messages to multiple recipients, the “displayonly” attribute needs to be set to “false” for one recipient and “true” for the remaining recipients. If the attribute is set to “false” for more than one recipient or “true” for all recipients, the API request will be rejected. The attribute accepts only “true” or “false” values and defaults to “false”.

It’s important to note that group messaging operates as a pass-through, ensuring delivery only to the recipient with the “displayOnly” attribute set to “false”. To ensure delivery to all recipients, multiple requests must be made for each recipient with the “displayOnly” attribute set to “false”.

MM7_Submit.REQ

Supported MM7 SOAP envelope request elements

Element Description Required
TransactionID The identification of the MM7 SubmitReq/SubmitRsp pair. It is located in the SOAP header. You supply this in the MM7 SubmitReq and the system returns it in the corresponding SubmitRsp. Yes
SubmitReq Identifies the message as an MMS MT submit. This is the message type for an MT request. Yes
MM7Version Identifies the MM7 Version. Version 6.8.0 is recommended.
See all supported MM7 Versions & Namespaces
Yes
VASPID Your account manager will provide you an API key after your account is provisioned which is your VASPID. Yes
VASID Your account manager will provide you a VASID for each shortcode if it is required. No
SenderAddress This is your Short Code, Toll Free Number or 10 Digit Long Code (10DLC). This number must first be provisioned and configured to your account before you can use it. Alphanumeric sender supported only for carriers in certain countries; not supported in the USA.

Accepts only one of the following elements:
– ShortCode
– Number
– RFC2822Address
Yes
Recipients The mobile phone number(s) of the recipient(s). This must be a valid mobile number in international format without a leading + symbol; for example 12515550123 (US) and 447700900750 (UK).

Multiple numbers are supported by setting the “diplayonly” attribute to “false” for one of the numbers and “true” for the rest of the numbers. “displayonly” must be either “true” or “false”. Default is “false”.
Yes
Subject The subject of the multimedia message, to be displayed above the message content. Recommended length is 40 characters. Maximum length is 80 characters. Emojis and unicode are not supported in the subject. Toll Free MMS messages may not support subject field. No
Content This points to the first envelope of the message attachment. The href:cid attribute links to the content ID of the attachment. Yes
allowAdaptations Indicates if you wish to allow the mobile operator to re-encode (transcode) the content to make the content more suitable to the target handset. Each mobile operator may choose to obey or ignore this field; for example, some mobile operators assume or require by default the option to transcode content. AllowAdaptations is an attribute of Content element. The value must be Boolean (either true or false). Yes
DeliveryReport Requests a delivery report for the submitted message. Boolean value, true or false. If the element is omitted or left empty, it defaults to true and delivery reports will be sent. Contact your account manager if you want delivery reports turned off at the account level. No
ExpiryDate The desired time of expiry for the MM (timestamp). The date format is absolute. If the Expiry date is not provided or if it is greater than 3 days, then the 3 day default is applied. If an ExpiryDate less than 3 days is used this date is passed through. Mobile Network operators have their own limits and logic and may overwrite the ExpiryDate again. Example Date Format: 2020-08-31T14:23:00+00:00 No
TimeStamp The time and date of the submission of the MM (timestamp). This is overwritten with the current timestamp value always. If not passed, then it gets added at the API endpoint before it gets submitted to the Carrier gateway. No

See Unsupported elements

Request Examples

Example 1:
<?xml version="1.0" encoding="UTF-8"?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
    <soap-env:Header>
        <TransactionID xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4" soap-env:mustUnderstand="1">1000001</TransactionID>
    </soap-env:Header>
    <soap-env:Body>
        <SubmitReq xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4">
            <MM7Version>6.8.0</MM7Version>
            <SenderIdentification>
                <VASPID>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</VASPID>
                <SenderAddress>
                    <ShortCode>00000</ShortCode>
                </SenderAddress>
            </SenderIdentification>
            <Recipients>
                <To>
                    <Number>10000000001</Number>
                </To>
            </Recipients>
            <Subject>My first MM7 Message</Subject>
            <Content allowAdaptations="false" href="" />
        </SubmitReq>
    </soap-env:Body>
</soap-env:Envelope>

Example 2 with Group Messaging:
<?xml version="1.0" encoding="UTF-8"?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
    <soap-env:Header>
        <TransactionID xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4" soap-env:mustUnderstand="1">1000001</TransactionID>
    </soap-env:Header>
    <soap-env:Body>
        <SubmitReq xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4">
            <MM7Version>6.8.0</MM7Version>
            <SenderIdentification>
                <VASPID>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</VASPID>
                <SenderAddress>
                    <ShortCode>00000</ShortCode>
                </SenderAddress>
            </SenderIdentification>
            <Recipients>
                <To>
                    <Number displayonly="false">10000000001</Number>
                    <Number displayonly="true">10000000002</Number>
                    <Number displayonly="true">10000000003</Number>
                </To>
            </Recipients>
            <Subject>My first MM7 Group Message</Subject>
            <Content allowAdaptations="false" href="" />
        </SubmitReq>
    </soap-env:Body>
</soap-env:Envelope>

Example 3 with Alphanumeric Sender:
<?xml version="1.0" encoding="UTF-8"?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
    <soap-env:Header>
        <TransactionID xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4" soap-env:mustUnderstand="1">1000001</TransactionID>
    </soap-env:Header>
    <soap-env:Body>
        <SubmitReq xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4">
            <MM7Version>6.8.0</MM7Version>
            <SenderIdentification>
                <VASPID>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</VASPID>
                <SenderAddress>
                    <RFC2822Address>AlphanumericSenderId</RFC2822Address>
                </SenderAddress>
            </SenderIdentification>
            <Recipients>
                <To>
                    <Number>10000000001</Number>
                </To>
            </Recipients>
            <Subject>My first MM7 Message</Subject>
            <Content allowAdaptations="false" href="" />
        </SubmitReq>
    </soap-env:Body>
</soap-env:Envelope>

MM7_Submit.RES

Supported MM7 SOAP envelope response elements

Element Description Returned
TransactionID The identification of the MM7 SubmitReq/SubmitRsp pair. It is located in the SOAP header. You supply this in the MM7 SubmitReq and the system returns it in the corresponding SubmitRsp. Yes
SubmitRsp Identifies the message as an MM7 Submit Response. This is the message type for an MT response. Yes
MM7Version Identifies the MM7 Version.
See all supported MM7 Versions & Namespaces
Yes
StatusCode MT message submission acceptance/rejection is based on Success/Failure status code. “Success” response does not mean the message was delivered to the handset.
See all Status Codes
Yes
StatusText Description of the status code. Yes
MessageId If the MT message submit is successful then this contains the system-generated ID of the submitted message. This ID is expected in the delivery reports relating to this message. Yes

Example: Success

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
    <soap-env:Header>
        <TransactionID xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4" soap-env:mustUnderstand="1">1000001</TransactionID>
    </soap-env:Header>
    <soap-env:Body>
        <SubmitRsp xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4">
            <MM7Version>6.8.0</MM7Version>
            <Status>
                <StatusCode>1000</StatusCode>
                <StatusText>Successfully parsed and validated request</StatusText>
            </Status>
            <MessageID>xxxxxxxxxxxx</MessageID>
        </SubmitRsp>
    </soap-env:Body>
</soap-env:Envelope>

Example: Failure

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
    <soap-env:Header>
        <TransactionID xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4" soap-env:mustUnderstand="1">1000001</TransactionID>
    </soap-env:Header>
    <soap-env:Body>
        <soap-env:Fault>
            <faultcode>soap-env:Client</faultcode>
            <faultstring>Client error</faultstring>
            <detail>
                <RSErrorRsp xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4">
                    <MM7Version>6.8.0</MM7Version>
                    <Status>
                        <StatusCode>2007</StatusCode>
                        <StatusText>Unable to parse request</StatusText>
                        <Details>Message format corrupt</Details>
                    </Status>
                </RSErrorRsp>
            </detail>
        <soap-env:Fault>
    </soap-env:Body>
</soap-env:Envelope>

MT Submit Full Example

Request

POST /mm7/v1 HTTP/1.1
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Host: {Host Base URL}
Accept: */*
Content-Type: multipart/related; boundary="mainBoundary"; type="text/xml"; start="<mm7-start>"
SOAPAction: "http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4"
Content-Length: 45454
Expect: 100-continue

--mainBoundary
Content-Type: text/xml; charset=utf-8
Content-ID: <mm7-start>

<?xml version="1.0" encoding="utf-8"?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
    <soap-env:Header>
        <TransactionID xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4" soap-env:mustUnderstand="1">1000001</TransactionID>
    </soap-env:Header>
    <soap-env:Body>
        <SubmitReq xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4">
            <MM7Version>6.8.0</MM7Version>
            <DeliveryReport>true</DeliveryReport>
            <SenderIdentification>
                <VASPID>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</VASPID>
                <SenderAddress>
                    <ShortCode>00000</ShortCode>
                </SenderAddress>
            </SenderIdentification>
            <Recipients>
                <To>
                    <Number>10000000001</Number>
                </To>
            </Recipients>
            <Subject>My first MM7 Message</Subject>
            <ExpiryDate>2015-05-24T18:54:48+00:00</ExpiryDate>
            <TimeStamp>2015-05-21T18:54:48+00:00</TimeStamp>
            <Content allowAdaptations="false" href=""/>
        </SubmitReq>
    </soap-env:Body>
</soap-env:Envelope>

--mainBoundary
Content-Type: multipart/related; start="<mms.smil>";
    boundary="subBoundary"; type="text/xml"
Content-ID: <generic_content_id>

--subBoundary
Content-Type: text/plain; charset=utf-8
Content-ID: <132c4ca56a209475>

MM7 Test Text
--subBoundary
Content-Type: application/smil; charset=utf-8
Content-ID: <mms.smil>

<?xml version="1.0" encoding="UTF-8"?><smil><head><layout><root-layout width="100%" height="100%"/><region id="Text" top="50%" left="0" height="50%" width="100%" fit="hidden"/></layout></head><body><par><text src="cid:132c4ca56a209475" region="Text"/></par></body></smil>
--subBoundary--

--mainBoundary--

Response

HTTP/1.1 200 OK
Content-Type: application/xml; charset=utf-8
Date: Mon, 16 Mar 2015 17:46:59 GMT
Server: Apache
Vary: Accept-Encoding,User-Agent
Content-Length: 715
Connection: keep-alive

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
    <soap-env:Header>
        <TransactionID xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4" soap-env:mustUnderstand="1">1000001</TransactionID>
    </soap-env:Header>
    <soap-env:Body>
        <SubmitRsp xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4">
            <MM7Version>6.8.0</MM7Version>
            <Status>
                <StatusCode>1000</StatusCode>
                <StatusText>Successfully parsed and validated request</StatusText>
            </Status>
            <MessageID>xxxxxxxxxxxx</MessageID>
        </SubmitRsp>
    </soap-env:Body>
</soap-env:Envelope>

MM7_Submit.REQ

Element Behavior Description
ApplicID Stripped This information element contains the identification of the destination application. Upon reception, the recipient MMS VAS Application shall provide this MM7_retrieve.REQ to the specified destination application
AuxApplicInfo Stripped If present, this information element indicates additional application/implementation-specific control information
ChargedParty Stripped An indication of which party is expected to be charged for a Message submitted by the VASP, e.g. the sender, receiver, both parties, or neither. Possible values are “Sender”, “Recipient”, “Both”, “Neither”
ChargedPartyID Stripped The address/id of the third party which is expected to pay for the Message.
ContentClass Stripped Classifies the content of the MM to the smallest content class to which the MM belongs. Possible values are “text”, “image-basic”, “image-rich”, “video-basic”, “video-rich”, “megapixel”, “content-basic”, “content-rich”
DeliveryCondition Stripped If the condition is met the MM shall be delivered to the recipient MMS User-Agent, otherwise the MM shall be discarded. The initial values are MMS capable only; HPLMN only; any other values can be added based on bilateral agreements between the MMS Relay/Server operator and the VASP.
DistributionIndicator Stripped If set to ‘false’ the VASP has indicated that the content of the MM is not intended for redistribution. If set to ‘true’ the VASP has indicated that the content of the MM can be redistributed. Boolean value true/false
DRMContent Stripped Indicates if the MM contains DRM-protected content. Boolean value true/false
EarliestDeliveryTime Stripped The earliest desired time of delivery of the MM to the recipient (timestamp). Date format is absolute or relative
LinkedID Stripped This identifies correspondence to a previous valid message delivered to the VASP.
MessageClass Pass Through Class of the MM (e.g. “Informational”, “Advertisement”, “Auto”)
Priority Pass Through The priority (importance) of the message. Possible values are “High”, “Normal”, “Low” and case-sensitive.
ReadReply Pass Through A request for confirmation via a read report to be delivered. Boolean true/false value. Set it ‘true’ to receive MM7 Read Replies.
ReplyApplicID Stripped If present, this information element indicates a “reply path”. It contains the application identifier which shall be used by the recipient MMS VAS Application when a reply-MM or a read-reply report is created
ReplyCharging Stripped A request for reply-charging. No value. Presence implies true
ReplyChargingSize Stripped In case of reply-charging the maximum size for reply-MM(s) granted to the recipient(s). Optional attribute of ReplyCharging element. Positive integer value
ReplyDeadline Stripped In case of reply-charging the latest time of submission of replies granted to the recipient(s) (timestamp). The optional attribute of the ReplyCharging element. Date format is absolute or relative
ServiceCode Pass Through Information supplied by the VASP which may be included in charging/billing information. The syntax and semantics of the content of this information are out of the scope of this specification.