sendSavedMMS

Synopsis:

This API sends stored content from a specified account using an MMSID to a single mobile number.

FROM must be one of the shortcodes allowed for your account. In case the number is from a different country than the FROM shortcode is assigned to, the default shortcode for those countries will be used.

When MMS is sent as SMS, the fallback SMS text and link are sent.

  • The fallback SMS text is the text used in place of the MMS subject. You can dynamically change the fallback SMS text by setting up the FALLBACKSMSTEXT node.
  • The fallback SMS link is the link that hosts the MMS content. The fallback SMS link may be disabled by passing ‘yes’ to the DISABLEFALLBACKSMSLINK node. In this case only the MMS subject or the fallback SMS Text is sent. By default, we always send the fallback SMS link along with the fallback SMS text or the MMS subject.
  • The fallback SMS can be completely disabled by passing ‘yes’ to the DISABLEFALLBACKSMS node. By default the fallback SMS is enabled. If the MMS will be sent as SMS while the fallback SMS is disabled, then the message will fail to send instead.

You can dynamically send custom text for each slide by setting up the CUSTOMTEXT node (CUSTOMTEXT must include mandatory fields: value and slide) and the MMS Subject by setting up the CUSTOMSUBJECT node. Line breaks are supported in the custom slide texts of the MMS.

If “Enforce Campaign Check” is turned ON, then this function will require the campaign reference ID of the messaging campaign that the recipient’s phone number is subscribed into to be passed inside the campaignref node.

Content Transcoding:

Every binary MMS we deliver can be transcoded for the destination handset and every web page we deliver is transcoded for the browsing handset. To transcode a binary MMS we must know what type of handset the user has. We are able to obtain this handset type information from delivery receipts and store the record in a handset cache for later use. We have a database of attributes which we manually match to every new handset in the cache so we can adapt the content during MMS delivery.

Device Discovery Message:

A Device Discovery Message (DDM) is a short textual MMS message that is sent to the number to discover what handset the end user is using. We store this handset information in our system and reuse it, so a DDM is sent only to new numbers. If the DDM settings are not included within your API call and the number is not in the handset cache we will deliver the MMS with generic settings. If the handset is in the handset cache the DDM will not be sent and the MMS message will be transcoded and delivered immediately. You can force sending of DDM (regardless if number is cached) by setting DDMFORCE to ‘true’.

API allows you to customize DDM by setting 3 parameters:
DDMTITLE - This is the DDM title (optional, if not set then “Device Discovery” text will be used).
DDMTEXT - This is the DDM body (mandatory).
DDMTIMEOUT - (in minutes) When we send DDM we wait for the Delivery Report which contain the handset profile. In some cases we do not receive it or it takes very long (handset turned off or out of range). This variable tells the system how long should it wait for DDM Delivery Report before sending actual content using Default parameters. Default value of this parameter is 5 minutes.

Dynamic Image Objects:

This API also supports sending MMS with embedded Dynamic Image Object. The custom Dynamic Image data can be supplied in the API. Look at the request below to understand. Some additional notes:

  • If the dynamic image contains a barcode, dynamic image data MUST be supplied to the ‘BARCODEID’ node before sending.
  • If the dynamic image contains at least one text area, dynamic image data CAN be supplied to the ‘TEXTAREA#’ nodes before sending. If no data is supplied to the text areas, then the text areas will be empty/blank upon sending.
  • The background image URL in the dynamic image supports gif, jpg, and png image file types. The image added in the dynamic image will be converted into a jpg file upon sending. If the background image is not a gif, jpg, or png file or if the background image URL is invalid, then the request will fail and no message will be sent. The backgroud image will be resized if the file size is greater than 200 KB or if the width is greater than 640 px. If the dynamic image template already contains a background image, then it will be replaced with the background image passed in the request instead.
  • The dynamic image data added into the dynamic image can be saved in our database by passing ‘yes’ to the SAVEDATA node. By default the dynamic image data will not saved upon sending.

Passbook Pass:

This API also supports sending MMS with a Passbook Pass. If the saved MMS has a Passbook pass, then the dynamic pass data passed in the API request will be used to create the Passbook pass sent via MMS. The ‘customPassId’ is the identifier from your system to identify the pass or pass data uniquely. The pass can be sent as a link by passing ‘yes’ to the FORCEPASSASLINK node.

Dynamic vCards:

This API also supports sending MMS with embedded Dynamic vCard. The custom Dynamic vCard data can be supplied in the API. Look at the request below to understand. Some additional notes:

  • Only one dynamic vCard per request is allowed. A dynamic vCard must have some data added in the request.
  • The first and last names of the contact are required in the vCard. The first and last names can only contain alphanumeric, space “ “ and period “.” characters. The request will fail and no message will be sent if the first and last names are not included or if they contain special characters. The rest of the contact information are optional and can be empty.
  • Up to four phone numbers, four email addresses, and four physical addresses are supported in the vCard. The request will fail and no message will be sent if the limit is exceeded.
  • Currently the labels ‘work’ and ‘home’ are supported for the phone numbers, email addresses, and physical addresses labels in the vCard. If any other labels are used, then the request will fail and no message will be sent. If no label is added, then the default label ‘work’ is used.
  • The photo URL in the dynamic vCard supports gif, jpg, and png image file types. The image added in the dynamic vCard will be converted into a jpg file upon sending since vCards currently support jpg file type only. If the photo is not a gif, jpg, or png file or if the photo does not exist, then the request will fail and no message will be sent.
  • The order of the request parameters for a dynamic vCard does not matter.
  • Nothing needs to be added in the MMS template in order to send a dynamic vCard.
  • The dynamic vCard generated will automatically be attached to the last slide of the MMS upon sending.

Request: XML

<REQUEST>
    <ACTION>sendSavedMMS</ACTION>
    <API_KEY>apiKey</API_KEY>
    <MMSID>MMSID</MMSID>
    <TO>Number</TO>
    <FROM>Shortcode</FROM>
    <FROM_MASK>*shortcodeMask</FROM_MASK>
    <OPERATORID>OPERATORID</OPERATORID>
    <CAMPAIGNREF>CampaignReferenceID</CAMPAIGNREF>
    <FALLBACKSMSTEXT>This text replaces the MMS subject when MMS is sent as SMS link</FALLBACKSMSTEXT>
    <DISABLEFALLBACKSMS>'yes' to disable fallback SMS</DISABLEFALLBACKSMS>
    <DISABLEFALLBACKSMSLINK>'yes' to disable fallback SMS link</DISABLEFALLBACKSMSLINK>
    <DDMTITLE>DDM Title</DDMTITLE>
    <DDMTEXT>DDM Body</DDMTEXT>
    <DDMTIMEOUT>DDM Timeout in minutes</DDMTIMEOUT>
    <CUSTOMTEXT>
        <VALUE>Custom Text for slide</VALUE>
        <SLIDE>Slide ID</SLIDE>
    </CUSTOMTEXT>
    <CUSTOMSUBJECT>MMS Custom Subject</CUSTOMSUBJECT>
    <DYNAMICIMAGE>
        <BACKGROUNDIMAGE>Background Image URL</BACKGROUNDIMAGE>
        <BARCODEID>Dynamic Image: Barcode ID</BARCODEID>
        <TEXTAREA1>Dynamic Image: Textarea Text 1</TEXTAREA1>
        <TEXTAREA2>Dynamic Image: Textarea Text 2</TEXTAREA2>
        <TEXTAREA3>Dynamic Image: Textarea Text 3</TEXTAREA3>
        <TEXTAREA4>Dynamic Image: Textarea Text 4</TEXTAREA4>
        <TEXTAREA5>Dynamic Image: Textarea Text 5</TEXTAREA5>
        <TEXTAREA6>Dynamic Image: Textarea Text 6</TEXTAREA6>
        <TEXTAREA7>Dynamic Image: Textarea Text 7</TEXTAREA7>
        <TEXTAREA8>Dynamic Image: Textarea Text 8</TEXTAREA8>
        <SAVEDATA>'yes' or 'no' to save the dynamic image data</SAVEDATA>
    </DYNAMICIMAGE>
    <DATA>
        <FIRST_NAME>First Name</FIRST_NAME>
        <LAST_NAME>Last Name</LAST_NAME>
        <GENDER>Gender</GENDER>
        ...
    </DATA>
    <PASSDATA>
        <CUSTOMPASSID>customPassId</CUSTOMPASSID>
        <LOGOURL>logoUrl</LOGOURL>
        <STRIPURL>stripUrl</STRIPURL>
        <THUMBNAILURL>thumbnailUrl</THUMBNAILURL>
        <BARCODEVALUE>barcodeValue</BARCODEVALUE>
        <BARCODETEXT>barcodeText</BARCODETEXT>
        <HEADERLABEL1>headerLabel1</HEADERLABEL1>
        <HEADERVALUE1>headerValue1</HEADERVALUE1>
        <PRIMARYLABEL1>primaryLabel1</PRIMARYLABEL1>
        <PRIMARYVALUE1>primaryValue1</PRIMARYVALUE1>
        <PRIMARYLABEL2>primaryLabel2</PRIMARYLABEL2>
        <PRIMARYVALUE2>primaryValue2</PRIMARYVALUE2>
        <SECLABEL1>secLabel1</SECLABEL1>
        <SECVALUE1>secValue1</SECVALUE1>
        <SECLABEL2>sedLabel2</SECLABEL2>
        <SECVALUE2>secValue2</SECVALUE2>
        <SECLABEL3>sedLabel3</SECLABEL3>
        <SECVALUE3>secValue3</SECVALUE3>
        <SECLABEL4>sedLabel4</SECLABEL4>
        <SECVALUE4>secValue4</SECVALUE4>
        <AUXLABEL1>auxLabel1</AUXLABEL1>
        <AUXVALUE1>auxValue1</AUXVALUE1>
        <AUXLABEL2>auxLabel2</AUXLABEL2>
        <AUXVALUE2>auxValue2</AUXVALUE2>
        <AUXLABEL3>auxLabel3</AUXLABEL3>
        <AUXVALUE3>auxValue3</AUXVALUE3>
        <AUXLABEL4>auxLabel4</AUXLABEL4>
        <AUXVALUE4>auxValue4</AUXVALUE4>
        <BACKLABEL1>backLabel1</BACKLABEL1>
        <BACKVALUE1>backValue1</BACKVALUE1>
        <BACKLABEL2>backLabel2</BACKLABEL2>
        <BACKVALUE2>backValue2</BACKVALUE2>
        <BACKLABEL3>backLabel3</BACKLABEL3>
        <BACKVALUE3>backValue3</BACKVALUE3>
        <BACKLABEL4>backLabel4</BACKLABEL4>
        <BACKVALUE4>backValue4</BACKVALUE4>
        <RELLATITUDE1>relLatitude1</RELLATITUDE1>
        <RELLONGITUDE1>relLongitude1</RELLONGITUDE1>
        <RELTEXT1>relText1</RELTEXT1>
        <RELLATITUDE2>relLatitude2</RELLATITUDE2>
        <RELLONGITUDE2>relLongitude2</RELLONGITUDE2>
        <RELTEXT2>relText2</RELTEXT2>
        <RELLATITUDE3>relLatitude3</RELLATITUDE3>
        <RELLONGITUDE3>relLongitude3</RELLONGITUDE3>
        <RELTEXT3>relText3</RELTEXT3>
        <RELLATITUDE4>relLatitude4</RELLATITUDE4>
        <RELLONGITUDE4>relLongitude4</RELLONGITUDE4>
        <RELTEXT4>relText4</RELTEXT4>
        <RELLATITUDE5>relLatitude5</RELLATITUDE5>
        <RELLONGITUDE5>relLongitude5</RELLONGITUDE5>
        <RELTEXT5>relText5</RELTEXT5>
        <RELLATITUDE6>relLatitude6</RELLATITUDE6>
        <RELLONGITUDE6>relLongitude6</RELLONGITUDE6>
        <RELTEXT6>relText6</RELTEXT6>
        <RELLATITUDE7>relLatitude7</RELLATITUDE7>
        <RELLONGITUDE7>relLongitude7</RELLONGITUDE7>
        <RELTEXT7>relText7</RELTEXT7>
        <RELLATITUDE8>relLatitude8</RELLATITUDE8>
        <RELLONGITUDE8>relLongitude8</RELLONGITUDE8>
        <RELTEXT8>relText8</RELTEXT8>
        <RELLATITUDE9>relLatitude9</RELLATITUDE9>
        <RELLONGITUDE9>relLongitude9</RELLONGITUDE9>
        <RELTEXT9>relText9</RELTEXT9>
        <RELLATITUDE10>relLatitude10</RELLATITUDE10>
        <RELLONGITUDE10>relLongitude10</RELLONGITUDE10>
        <RELTEXT10>relText10</RELTEXT10>
        <IBEACONUUID1>iBeaconUUID1</IBEACONUUID1>
        <IBEACONMAJOR1>iBeaconMajor1</IBEACONMAJOR1>
        <IBEACONMINOR1>iBeaconMinor1</IBEACONMINOR1>
        <IBEACONTEXT1>iBeaconText1</IBEACONTEXT1>
        <IBEACONUUID2>iBeaconUUID2</IBEACONUUID2>
        <IBEACONMAJOR2>iBeaconMajor2</IBEACONMAJOR2>
        <IBEACONMINOR2>iBeaconMinor2</IBEACONMINOR2>
        <IBEACONTEXT2>iBeaconText2</IBEACONTEXT2>
        <IBEACONUUID3>iBeaconUUID3</IBEACONUUID3>
        <IBEACONMAJOR3>iBeaconMajor3</IBEACONMAJOR3>
        <IBEACONMINOR3>iBeaconMinor3</IBEACONMINOR3>
        <IBEACONTEXT3>iBeaconText3</IBEACONTEXT3>
        <IBEACONUUID4>iBeaconUUID4</IBEACONUUID4>
        <IBEACONMAJOR4>iBeaconMajor4</IBEACONMAJOR4>
        <IBEACONMINOR4>iBeaconMinor4</IBEACONMINOR4>
        <IBEACONTEXT4>iBeaconText4</IBEACONTEXT4>
        <IBEACONUUID5>iBeaconUUID5</IBEACONUUID5>
        <IBEACONMAJOR5>iBeaconMajor5</IBEACONMAJOR5>
        <IBEACONMINOR5>iBeaconMinor5</IBEACONMINOR5>
        <IBEACONTEXT5>iBeaconText5</IBEACONTEXT5>
        <IBEACONUUID6>iBeaconUUID6</IBEACONUUID6>
        <IBEACONMAJOR6>iBeaconMajor6</IBEACONMAJOR6>
        <IBEACONMINOR6>iBeaconMinor6</IBEACONMINOR6>
        <IBEACONTEXT6>iBeaconText6</IBEACONTEXT6>
        <IBEACONUUID7>iBeaconUUID7</IBEACONUUID7>
        <IBEACONMAJOR7>iBeaconMajor7</IBEACONMAJOR7>
        <IBEACONMINOR7>iBeaconMinor7</IBEACONMINOR7>
        <IBEACONTEXT7>iBeaconText7</IBEACONTEXT7>
        <IBEACONUUID8>iBeaconUUID8</IBEACONUUID8>
        <IBEACONMAJOR8>iBeaconMajor8</IBEACONMAJOR8>
        <IBEACONMINOR8>iBeaconMinor8</IBEACONMINOR8>
        <IBEACONTEXT8>iBeaconText8</IBEACONTEXT8>
        <IBEACONUUID9>iBeaconUUID9</IBEACONUUID9>
        <IBEACONMAJOR9>iBeaconMajor9</IBEACONMAJOR9>
        <IBEACONMINOR9>iBeaconMinor9</IBEACONMINOR9>
        <IBEACONTEXT9>iBeaconText9</IBEACONTEXT9>
        <IBEACONUUID10>iBeaconUUID10</IBEACONUUID10>
        <IBEACONMAJOR10>iBeaconMajor10</IBEACONMAJOR10>
        <IBEACONMINOR10>iBeaconMinor10</IBEACONMINOR10>
        <IBEACONTEXT10>iBeaconText10</IBEACONTEXT10>
    </PASSDATA>
    <FORCEPASSASLINK>'yes' or 'no' to force pass as link</FORCEPASSASLINK>
    <DYNAMICVCARD>
        <NAME>
            <FIRSTNAME>First Name</FIRSTNAME>
            <LASTNAME>Last Name</LASTNAME>
            <SUFFIX>Suffix Name</SUFFIX>
        </NAME>
        <ORGANIZATION>Organization Name</ORGANIZATION>
        <TITLE>Organization Title</TITLE>
        <PHOTOURL>Photo URL</PHOTOURL>
        <NOTE>Contact Note</NOTE>
        <PHONE>
            <NUMBER>Phone Number 1</NUMBER>
            <LABEL>Phone Label 1 (e.g. 'work' or 'home')</LABEL>
        </PHONE>
        <PHONE>
            <NUMBER>Phone Number 2</NUMBER>
            <LABEL>Phone Label 2 (e.g. 'work' or 'home')</LABEL>
        </PHONE>
        <EMAIL>
            <ID>Email Address</ID>
            <LABEL>Email Address Label (e.g. 'work' or 'home')</LABEL>
        </EMAIL>
        <PHYSICALADDRESS>
            <ADDRESS>Physical Address</ADDRESS>
            <LABEL>Physical Address Label (e.g. 'work' or 'home')</LABEL>
        </PHYSICALADDRESS>
    </DYNAMICVCARD>
</REQUEST>

*ShortcodeMask (Alphanumeric sender) is allowed only in few countries. Not supported in United States.

Request: GET

API_URL?action=sendsavedmms
&api_key=API key
&mmsid=MMSID
&to=number
&from=shortcode
&from_mask=shortcode mask
&operatorid=operator ID
&campaignref=campaign reference ID
&fallbacksmstext=this text replaces the MMS subject when MMS is sent as SMS link
&disablefallbacksms='yes' to disable fallback SMS
&disablefallbacksmslink='yes' to disable fallback SMS link
&ddmtitle=DDM Title
&ddmtext=DDM Body
&ddmtimeout=DDM Timeout in minutes
&customtext_#=Custom Text for slide             (replace '#' with slide number)
&customsubject=MMS Custom Subject
&di_bgimage=dynamic image: background image URL
&di_barcodeid=dynamic image: barcode ID
&di_textarea1=dynamic image: textarea text 1
&di_textarea2=dynamic image: textarea text 2
&di_textarea3=dynamic image: textarea text 3
&di_textarea4=dynamic image: textarea text 4
&di_textarea5=dynamic image: textarea text 5
&di_textarea6=dynamic image: textarea text 6
&di_textarea7=dynamic image: textarea text 7
&di_textarea8=dynamic image: textarea text 8
&di_savedata='yes' or 'no' to save the dynamic image data
&data_first_name=first name
&data_last_name=last name
&data_age=age
...
&custompassid=custom pass ID
&logourl=logo URL
&stripurl=strip URL
&thumbnailurl=thumbnail URL
&barcodevalue=barcode value
&barcodetext=barcode text
&headerlabel1=header label 1
&headervalue1=header value 1
&primarylabel1=primary label 1
&primaryvalue1=primary value 1
&primarylabel2=primary label 2
&primaryvalue2=primary value 2
&seclabel1=secondary label 1
&secvalue1=secondary value 1
&seclabel2=secondary label 2
&secvalue2=secondary value 2
&seclabel3=secondary label 3
&secvalue3=secondary value 3
&seclabel4=secondary label 4
&secvalue4=secondary value 4
&auxlabel1=auxiliary label 1
&auxvalue1=auxiliary value 1
&auxlabel2=auxiliary label 2
&auxvalue2=auxiliary value 2
&auxlabel3=auxiliary label 3
&auxvalue3=auxiliary value 3
&auxlabel4=auxiliary label 4
&auxvalue4=auxiliary value 4
&backlabel1=back label 1
&backvalue1=back value 1
&backlabel2=back label 2
&backvalue2=back value 2
&backlabel3=back label 3
&backvalue3=back value 3
&backlabel4=back label 4
&backvalue4=back value 4
&rellatitude1=relevant latitude 1
&rellongitude1=relevant longitude 1
&reltext1=relevant text 1
&rellatitude2=relevant latitude 2
&rellongitude2=relevant longitude 2
&reltext2=relevant text 2
&rellatitude3=relevant latitude 3
&rellongitude3=relevant longitude 3
&reltext3=relevant text 3
&rellatitude4=relevant latitude 4
&rellongitude4=relevant longitude 4
&reltext4=relevant text 4
&rellatitude5=relevant latitude 5
&rellongitude5=relevant longitude 5
&reltext5=relevant text 5
&rellatitude6=relevant latitude 6
&rellongitude6=relevant longitude 6
&reltext6=relevant text 6
&rellatitude7=relevant latitude 7
&rellongitude7=relevant longitude 7
&reltext7=relevant text 7
&rellatitude8=relevant latitude 8
&rellongitude8=relevant longitude 8
&reltext8=relevant text 8
&rellatitude9=relevant latitude 9
&rellongitude9=relevant longitude 9
&reltext9=relevant text 9
&rellatitude10=relevant latitude 10
&rellongitude10=relevant longitude 10
&reltext10=relevant text 10
&ibeaconuuid1=iBeacon UUID 1
&ibeaconmajor1=iBeacon Major 1
&ibeaconminor1=iBeacon Minor 1
&ibeacontext1=iBeacon Relevance Text 1
&ibeaconuuid2=iBeacon UUID 2
&ibeaconmajor2=iBeacon Major 2
&ibeaconminor2=iBeacon Minor 2
&ibeacontext2=iBeacon Relevance Text 2
&ibeaconuuid3=iBeacon UUID 3
&ibeaconmajor3=iBeacon Major 3
&ibeaconminor3=iBeacon Minor 3
&ibeacontext3=iBeacon Relevance Text 3
&ibeaconuuid4=iBeacon UUID 4
&ibeaconmajor4=iBeacon Major 4
&ibeaconminor4=iBeacon Minor 4
&ibeacontext4=iBeacon Relevance Text 4
&ibeaconuuid5=iBeacon UUID 5
&ibeaconmajor5=iBeacon Major 5
&ibeaconminor5=iBeacon Minor 5
&ibeacontext5=iBeacon Relevance Text 5
&ibeaconuuid6=iBeacon UUID 6
&ibeaconmajor6=iBeacon Major 6
&ibeaconminor6=iBeacon Minor 6
&ibeacontext6=iBeacon Relevance Text 6
&ibeaconuuid7=iBeacon UUID 7
&ibeaconmajor7=iBeacon Major 7
&ibeaconminor7=iBeacon Minor 7
&ibeacontext7=iBeacon Relevance Text 7
&ibeaconuuid8=iBeacon UUID 8
&ibeaconmajor8=iBeacon Major 8
&ibeaconminor8=iBeacon Minor 8
&ibeacontext8=iBeacon Relevance Text 8
&ibeaconuuid9=iBeacon UUID 9
&ibeaconmajor9=iBeacon Major 9
&ibeaconminor9=iBeacon Minor 9
&ibeacontext9=iBeacon Relevance Text 9
&ibeaconuuid10=iBeacon UUID 10
&ibeaconmajor10=iBeacon Major 10
&ibeaconminor10=iBeacon Minor 10
&ibeacontext10=iBeacon Relevance Text 10
&forcepassaslink='yes' to force pass as link

Request Parameters:

Mandatory: action, api_key, mmsId, to, from, campaignRef (if "Enforce Campaign Check" IS enabled),
customPassId (if saved MMS includes a pass),
barcodevalue (if "Barcode = Allowed" && "Barcode Type = Dynamic" && "Barcode Value Source = Dynamic Value" for Pass Template otherwise IGNORED),
di_barcodeid (if saved MMS includes a personalized image with barcode),
firstname (if dynamicvcard is enabled), lastname (if dynamicvcard is enabled)

Optional: campaignRef (if "Enforce Campaign Check" is NOT enabled),
fallbackSmsText, disableFallbackSms, disableFallbackSmsLink, ddmTitle, ddmText, ddmTimeout, customText, customSubject, data, operatorid,
di_barcodeid (if saved MMS does NOT include a personalized image with barcode),
di_textarea#, di_bgimage, di_savedata,
customPassId (if saved MMS does NOT include a pass), logoUrl, stripUrl, thumbnailUrl,
barcodetext (if "Barcode = Allowed" && "Barcode Alternate Text = Dynamic Text" for Pass Template otherwise IGNORED),
headerlabel1, headervalue1,
primarylabel1, primaryvalue1,
primarylabel2, primaryvalue2 - if "Pass template type = Boarding Pass" otherwise IGNORED,
seclabel1, secvalue1, seclabel2, secvalue2, seclabel3, secvalue3, seclabel4, secvalue4,
auxlabel1, auxvalue1, auxlabel2, auxvalue2, auxlabel3, auxvalue3, auxlabel4, auxvalue4,
backlabel1, backvalue1, backlabel2, backvalue2, backlabel3, backvalue3, backlabel4, backvalue4,
rellatitude1, rellongitude1, reltext1,
rellatitude2, rellongitude2, reltext2,
rellatitude3, rellongitude3, reltext3,
rellatitude4, rellongitude4, reltext4,
rellatitude5, rellongitude5, reltext5,
rellatitude6, rellongitude6, reltext6,
rellatitude7, rellongitude7, reltext7,
rellatitude8, rellongitude8, reltext8,
rellatitude9, rellongitude9, reltext9,
rellatitude10, rellongitude10, reltext10,
ibeaconUUID1, ibeaconMajor1, ibeaconMinor1, ibeaconText1,
ibeaconUUID2, ibeaconMajor2, ibeaconMinor2, ibeaconText2,
ibeaconUUID3, ibeaconMajor3, ibeaconMinor3, ibeaconText3,
ibeaconUUID4, ibeaconMajor4, ibeaconMinor4, ibeaconText4,
ibeaconUUID5, ibeaconMajor5, ibeaconMinor5, ibeaconText5,
ibeaconUUID6, ibeaconMajor6, ibeaconMinor6, ibeaconText6,
ibeaconUUID7, ibeaconMajor7, ibeaconMinor7, ibeaconText7,
ibeaconUUID8, ibeaconMajor8, ibeaconMinor8, ibeaconText8,
ibeaconUUID9, ibeaconMajor9, ibeaconMinor9, ibeaconText9,
ibeaconUUID10, ibeaconMajor10, ibeaconMinor10, ibeaconText10,
forcepassaslink,
dynamicvcard, firstname (if dynamicvcard is NOT enabled), lastname (if dynamicvcard is NOT enabled)
suffix, organization, title, photourl, note,
phone_number_1, phone_label_1,
phone_number_2, phone_label_2,
email_id_1, email_label_1,
physical_address_1, physical_address_label_1

Response Parameters:

status, to, from, mmsId, trackingId, errorCode, errorInfo

Request Example: XML

<REQUEST>
    <ACTION>sendSavedMMS</ACTION>
    <API_KEY>qTFkykO9JTfahCOqJ0V2Wf5Cg1t8iWlZ</API_KEY>
    <TO>16501234123</TO>
    <FROM>60856</FROM>
    <CAMPAIGNREF>Campaign123</CAMPAIGNREF>
    <MMSID>35674</MMSID>
    <FALLBACKSMSTEXT>Visit this link for more details</FALLBACKSMSTEXT>
    <DDMTITLE>We are detecting your handset</DDMTITLE>
    <DDMTEXT>This message is free of charge and will allow us to deliver your content nice and smooth</DDMTEXT>
    <DDMTIMEOUT>10</DDMTIMEOUT>
    <CUSTOMTEXT>
        <VALUE>My Custom text in first slide\r\nAnd some more Custom text</VALUE>
        <SLIDE>1</SLIDE>
    </CUSTOMTEXT>
    <CUSTOMSUBJECT>My Custom Subject</CUSTOMSUBJECT>
    <DYNAMICIMAGE>
        <BACKGROUNDIMAGE>https://www.yourwebsite.com/images/backgroundimage.jpg</BACKGROUNDIMAGE>
        <BARCODEID>SKY-13332-433433</BARCODEID>
        <TEXTAREA1>Company-SKY</TEXTAREA1>
        <TEXTAREA2>Mr.XXXX</TEXTAREA2>
        <TEXTAREA3>Email:xxxx@yyyy.com</TEXTAREA3>
        <TEXTAREA4>Mobile:xxx-xxx-xxxx</TEXTAREA4>
    </DYNAMICIMAGE>
    <DATA>
        <FIRST_NAME>John</FIRST_NAME>
        <LAST_NAME>Smith</LAST_NAME>
        <AGE>30</AGE>
        <PET>Dog</PET>
    </DATA>
    <DYNAMICVCARD>
        <NAME>
            <FIRSTNAME>John</FIRSTNAME>
            <LASTNAME>Smith</LASTNAME>
            <SUFFIX>Jr.</SUFFIX>
        </NAME>
        <ORGANIZATION>My Organzation Name</ORGANIZATION>
        <TITLE>Agent</TITLE>
        <PHOTOURL>https://yourwebsite.com/contacts/photo1.png</PHOTOURL>
        <NOTE>My agent</NOTE>
        <PHONE>
            <NUMBER>(617) 314-7688</NUMBER>
            <LABEL>work</LABEL>
        </PHONE>
        <PHONE>
            <NUMBER>(617) 000-0000</NUMBER>
            <LABEL>home</LABEL>
        </PHONE>
        <EMAIL>
            <ID>johnsmith@yourorganzation.com</ID>
            <LABEL>work</LABEL>
        </EMAIL>
        <PHYSICALADDRESS>
            <ADDRESS>397 Moody St 202, Waltham, MA 02453-0461</ADDRESS>
            <LABEL>work</LABEL>
        </PHYSICALADDRESS>
    </DYNAMICVCARD>
</REQUEST>

Request Example: GET

https://secure.skycore.com/API/wxml/1.3/index.php?action=sendsavedmms
&api_key=qTFkykO9JTfahCOqJ0V2Wf5Cg1t8iWlZ
&to=16501234123
&from=60856
&campaignref=Campaign123
&mmsid=35674
&fallbacksmstext=Visit+this+link+for+more+details
&ddmtitle=We+are+detecting+your+handset
&ddmtext=This+message+is+free+of+charge+and+will+allow+us+to+deliver+your+content+nice+and+smooth
&ddmtimeout=10
&customtext_1=My+Custom+text+in+first+slide\r\nAnd+some+more+Custom+text
&customsubject=My+Custom+Subject
&di_bgimage=https://www.yourwebsite.com/images/backgroundimage.jpg
&di_barcodeid=SKY-13332-4333433
&di_textarea1=Company-SKY
&di_textarea2=Mr.XXXX
&di_textarea3=Email%3Axxxx%40yyyy.com
&di_textarea4=Mobile%3Axxx-xxx-xxxx
&data_first_name=John
&data_last_name=Smith
&data_age=30
&data_pet=Dog

Response Example: Success

<RESPONSE>
    <STATUS>Success</STATUS>
    <MMSID>35674</MMSID>
    <TRACKINGID>TU1TXzU5Nzg3OQ==</TRACKINGID>
    <TO>16501234123</TO>
    <FROM>60586</FROM>
    <STATUSDETAILS>MMS request accepted and queued for delivery</STATUSDETAILS>
</RESPONSE>

Response Example: Failure

<RESPONSE>
    <STATUS>Failure</STATUS>
    <ERRORCODE>E713</ERRORCODE>
    <TO>16501234123</TO>
    <ERRORINFO>There is billing problem on your account</ERRORINFO>
</RESPONSE>

Postback Notification:

When the MMS delivery is processed successfully the system will generate a Postback notification. When an MMS delivery report is received the system will generate another Postback notification. Not all carriers provide MMS delivery receipts. For more details please visit the MMS MT Delivery Status section of the Delivery Report Postback documentation.


General Error Codes:

Code Description
E100 Invalid request. Make a valid request via GET/POST/XML with all the required variables.
E104 User Authentication Failed.
E105 This account has no API rights.
E106 You can call API every X seconds.
E107 This account has no rights to use this action.
E108 XML Parse error: $error.
E109 API not activated.
E112 IP was not whitelisted. API call rejected.
E113 Set throughput exceeded for this API action. API call rejected.
E114 Phone number is blacklisted. API call rejected.
E120 Account has reached the API request limit.
E503 Internal error.


Code Description
E110 Invalid receiver number.
E111 Invalid shortcode.
E241 This content does not exist.
E601 There is no dynamic image template found in the MMS.
E602 Dynamic Image: Barcode ID is required.
E603 Dynamic Image: Invalid Barcode ID. Please remove if any special characters and try again.
E604 Dynamic Image: Text Area X is required.
E605 Dynamic Image: Invalid Text Area X. Please remove if any special characters and try again.
E606 Dynamic image custom data cannot be added. Please try again.
E618 Carrier lookup failed. Please retry.
E619 Carrier not provisioned.
E620 The ‘mmsid’ is required.
E621 The ‘to’ is required.
E622 The ‘fallbacksmstext’ is required.
E626 Content unavailable. Encoding in progress, try again later.
E627 Invalid serviceid / serviceid is required
E628 Operator Not supported.
E629 Unrecognized content type.
E650 The ‘operator id’ is required.
E652 Incorrect disablefallbacksms value. It is optional, but accepts only ‘yes’, ‘no’ or ‘’ if set.
E713 There is billing problem on your account.
E715 Number is not subscribed in this campaign
E718 The ‘campaignref’ is required
E721 Invalid campaignref
E803 ‘barcodevalue’ is required.
E810 The CustomPassID is required
E812 ‘CustomPassId’ already exists.
E817 ‘stripimageurl’ is not accepted. It has to be set as Dynamic in the Pass Template.
E818 Invalid ‘stripimageurl’. Image cannot be fetched.
E819 ‘logourl’ is not accepted. It has to be set as Dynamic in the Pass Template.
E820 Invalid ‘logourl’. Image cannot be fetched.
E822 There is no pass found in this MMS Template to send.
E825 ‘thumbnailurl’ is not accepted. It has to be set as Dynamic in the Pass Template.
E826 Invalid ‘thumbnailurl’. Image cannot be fetched.
E840 ‘headerlabel1’ is not accepted. It has to be set as Dynamic in the Pass Template.
E841 ‘headervalue1’ is not accepted. It has to be set as Dynamic in the Pass Template.
E842 ‘primarylabel1’ is not accepted. It has to be set as Dynamic in the Pass Template.
E843 ‘primaryvalue1’ is not accepted. It has to be set as Dynamic in the Pass Template.
E844 ‘primarylabel2’ is not accepted. It has to be set as Dynamic in the Pass Template.
E845 ‘primaryvalue2’ is not accepted. It has to be set as Dynamic in the Pass Template.
E846 ‘seclabel1’ is not accepted. It has to be set as Dynamic in the Pass Template.
E847 ‘secvalue1’ is not accepted. It has to be set as Dynamic in the Pass Template.
E848 ‘seclabel2’ is not accepted. It has to be set as Dynamic in the Pass Template.
E849 ‘secvalue2’ is not accepted. It has to be set as Dynamic in the Pass Template.
E850 ‘seclabel3’ is not accepted. It has to be set as Dynamic in the Pass Template.
E851 ‘secvalue3’ is not accepted. It has to be set as Dynamic in the Pass Template.
E852 ‘seclabel4’ is not accepted. It has to be set as Dynamic in the Pass Template.
E853 ‘secvalue4’ is not accepted. It has to be set as Dynamic in the Pass Template.
E854 ‘auxlabel1’ is not accepted. It has to be set as Dynamic in the Pass Template.
E855 ‘auxvalue1’ is not accepted. It has to be set as Dynamic in the Pass Template.
E856 ‘auxlabel2’ is not accepted. It has to be set as Dynamic in the Pass Template.
E857 ‘auxvalue2’ is not accepted. It has to be set as Dynamic in the Pass Template.
E858 ‘auxlabel3’ is not accepted. It has to be set as Dynamic in the Pass Template.
E859 ‘auxvalue3’ is not accepted. It has to be set as Dynamic in the Pass Template.
E860 ‘auxlabel4’ is not accepted. It has to be set as Dynamic in the Pass Template.
E861 ‘auxvalue4’ is not accepted. It has to be set as Dynamic in the Pass Template.
E862 ‘backlabel1’ is not accepted. It has to be set as Dynamic in the Pass Template.
E863 ‘backvalue1’ is not accepted. It has to be set as Dynamic in the Pass Template.
E864 ‘backlabel2’ is not accepted. It has to be set as Dynamic in the Pass Template.
E865 ‘backvalue2’ is not accepted. It has to be set as Dynamic in the Pass Template.
E866 ‘backlabel3’ is not accepted. It has to be set as Dynamic in the Pass Template.
E867 ‘backvalue3’ is not accepted. It has to be set as Dynamic in the Pass Template.
E868 ‘backlabel4’ is not accepted. It has to be set as Dynamic in the Pass Template.
E869 ‘backvalue4’ is not accepted. It has to be set as Dynamic in the Pass Template.
E870 ‘rellatitude1’, ‘relongitude1’ and ‘reltext1’ are not accepted. Relevance Location1 has to be set as Dynamic in the Pass Template.
E871 ‘rellatitude2’, ‘relongitude2’ and ‘reltext2’ are not accepted. Relevance Location2 has to be set as Dynamic in the Pass Template.
E872 ‘rellatitude3’, ‘relongitude3’ and ‘reltext3’ are not accepted. Relevance Location3 has to be set as Dynamic in the Pass Template.
E873 ‘rellatitude4’, ‘relongitude4’ and ‘reltext4’ are not accepted. Relevance Location4 has to be set as Dynamic in the Pass Template.
E874 ‘rellatitude5’, ‘relongitude5’ and ‘reltext5’ are not accepted. Relevance Location5 has to be set as Dynamic in the Pass Template.
E875 ‘rellatitude6’, ‘relongitude6’ and ‘reltext6’ are not accepted. Relevance Location6 has to be set as Dynamic in the Pass Template.
E876 ‘rellatitude7’, ‘relongitude7’ and ‘reltext7’ are not accepted. Relevance Location7 has to be set as Dynamic in the Pass Template.
E877 ‘rellatitude8’, ‘relongitude8’ and ‘reltext8’ are not accepted. Relevance Location8 has to be set as Dynamic in the Pass Template.
E878 ‘rellatitude9’, ‘relongitude9’ and ‘reltext9’ are not accepted. Relevance Location9 has to be set as Dynamic in the Pass Template.
E879 ‘rellatitude10’, ‘relongitude10’ and ‘reltext10’ are not accepted. Relevance Location10 has to be set as Dynamic in the Pass Template.
E880 ‘rellatitude1’ value is invalid.
E881 ‘rellatitude2’ value is invalid.
E882 ‘rellatitude3’ value is invalid.
E883 ‘rellatitude4’ value is invalid.
E884 ‘rellatitude5’ value is invalid.
E885 ‘rellatitude6’ value is invalid.
E886 ‘rellatitude7’ value is invalid.
E887 ‘rellatitude8’ value is invalid.
E888 ‘rellatitude9’ value is invalid.
E889 ‘rellatitude10’ value is invalid.
E890 ‘rellongitude1’ value is invalid.
E891 ‘rellongitude2’ value is invalid.
E892 ‘rellongitude3’ value is invalid.
E893 ‘rellongitude4’ value is invalid.
E894 ‘rellongitude5’ value is invalid.
E895 ‘rellongitude6’ value is invalid.
E896 ‘rellongitude7’ value is invalid.
E897 ‘rellongitude8’ value is invalid.
E898 ‘rellongitude9’ value is invalid.
E899 ‘rellongitude10’ value is invalid.
E950 ‘ibeaconuuid1’, ‘ibeaconmajor1’, ‘ibeaconminor1’ and ‘ibeacontext1’ values are not accepted. iBeacon1 field has to be set as dynamic in the Pass Template.
E951 ‘ibeaconuuid2’, ‘ibeaconmajor2’, ‘ibeaconminor2’ and ‘ibeacontext2’ values are not accepted. iBeacon2 field has to be set as dynamic in the Pass Template.
E952 ‘ibeaconuuid3’, ‘ibeaconmajor3’, ‘ibeaconminor3’ and ‘ibeacontext3’ values are not accepted. iBeacon3 field has to be set as dynamic in the Pass Template.
E953 ‘ibeaconuuid4’, ‘ibeaconmajor4’, ‘ibeaconminor4’ and ‘ibeacontext4’ values are not accepted. iBeacon4 field has to be set as dynamic in the Pass Template.
E954 ‘ibeaconuuid5’, ‘ibeaconmajor5’, ‘ibeaconminor5’ and ‘ibeacontext5’ values are not accepted. iBeacon5 field has to be set as dynamic in the Pass Template.
E955 ‘ibeaconuuid6’, ‘ibeaconmajor6’, ‘ibeaconminor6’ and ‘ibeacontext6’ values are not accepted. iBeacon6 field has to be set as dynamic in the Pass Template.
E956 ‘ibeaconuuid7’, ‘ibeaconmajor7’, ‘ibeaconminor7’ and ‘ibeacontext7’ values are not accepted. iBeacon7 field has to be set as dynamic in the Pass Template.
E957 ‘ibeaconuuid8’, ‘ibeaconmajor8’, ‘ibeaconminor8’ and ‘ibeacontext8’ values are not accepted. iBeacon8 field has to be set as dynamic in the Pass Template.
E958 ‘ibeaconuuid9’, ‘ibeaconmajor9’, ‘ibeaconminor9’ and ‘ibeacontext9’ values are not accepted. iBeacon9 field has to be set as dynamic in the Pass Template.
E959 ‘ibeaconuuid10’, ‘ibeaconmajor10’, ‘ibeaconminor10’ and ‘ibeacontext10’ values are not accepted. iBeacon10 field has to be set as dynamic in the Pass Template.
E960 ‘ibeaconuuid1’ value is invalid.
E961 ‘ibeaconuuid2’ value is invalid.
E962 ‘ibeaconuuid3’ value is invalid.
E963 ‘ibeaconuuid4’ value is invalid.
E964 ‘ibeaconuuid5’ value is invalid.
E965 ‘ibeaconuuid6’ value is invalid.
E966 ‘ibeaconuuid7’ value is invalid.
E967 ‘ibeaconuuid8’ value is invalid.
E968 ‘ibeaconuuid9’ value is invalid.
E969 ‘ibeaconuuid10’ value is invalid.
E970 ‘ibeaconmajor1’ value is invalid.
E971 ‘ibeaconmajor2’ value is invalid.
E972 ‘ibeaconmajor3’ value is invalid.
E973 ‘ibeaconmajor4’ value is invalid.
E974 ‘ibeaconmajor5’ value is invalid.
E975 ‘ibeaconmajor6’ value is invalid.
E976 ‘ibeaconmajor7’ value is invalid.
E977 ‘ibeaconmajor8’ value is invalid.
E978 ‘ibeaconmajor9’ value is invalid.
E979 ‘ibeaconmajor10’ value is invalid.
E980 ‘ibeaconminor1’ value is invalid.
E981 ‘ibeaconminor2’ value is invalid.
E982 ‘ibeaconminor3’ value is invalid.
E983 ‘ibeaconminor4’ value is invalid.
E984 ‘ibeaconminor5’ value is invalid.
E985 ‘ibeaconminor6’ value is invalid.
E986 ‘ibeaconminor7’ value is invalid.
E987 ‘ibeaconminor8’ value is invalid.
E988 ‘ibeaconminor9’ value is invalid.
E989 ‘ibeaconminor10’ value is invalid.
E990 ‘ibeaconuuid1’ value is required.
E991 ‘ibeaconuuid2’ value is required.
E992 ‘ibeaconuuid3’ value is required.
E993 ‘ibeaconuuid4’ value is required.
E994 ‘ibeaconuuid5’ value is required.
E995 ‘ibeaconuuid6’ value is required.
E996 ‘ibeaconuuid7’ value is required.
E997 ‘ibeaconuuid8’ value is required.
E998 ‘ibeaconuuid9’ value is required.
E999 ‘ibeaconuuid10’ value is required.
E1406 The background-image-url value is invalid.
E1501 There is no information added for the vCard.
E1502 Only jpg, png, and gif images are allowed for the photo in the vCard.
E1504 The first name for the vCard cannot be empty.
E1505 The first name for the vCard can only contain alphanumeric, space and . characters.
E1506 Phone number X added for the vCard is invalid.
E1507 Phone number X added for the vCard is blank.
E1508 Email id X added for the vCard is invalid.
E1509 Email id X added for the vCard is blank.
E1510 Physical address X added for the vCard is blank.
E1511 The photo url in the vCard does not exist.
E1512 The maximum number of phone numbers / email addresses / physical addresses (4) in the vCard has been exceeded.
E1513 The last name for the vCard cannot be empty.
E1514 The last name for the vCard can only contain alphanumeric, space and . characters.
E1515 The first and last names for the vCard are required.
E1516 Phone / Email / Physical address X label added for vCard is invalid.
E1517 Dynamic Image: Incorrect savedata value. It is optional, but accepts only ‘yes’ or ‘no’ if set.


Key Term Definitions:

Term Description
ACTION This is the name of the function you want to execute with the API.
API_KEY Random key that is assigned to an account that can be used for authorization instead of USER/PASS. You can find and regenerate this key on the ‘API Settings’ page.
BARCODETEXT Added text that will be shown below the barcode image on the pass.
BARCODEVALUE The barcode value or Id that will be encoded into the barcode image on the pass.
CAMPAIGNREF Depending on your API settings, you may be required to subscribe users into a campaign first before sending them messages. If you are required to subscribe a user first, then a valid Campaign Reference is required. This would be the campaign reference ID (string) to which the user is subscribed.
CUSTOMSUBJECT This is a custom subject that will overwrite the MMS Subject used in a sendSavedMMS function call.
CUSTOMTEXT This is custom text that will overwrite a given slide text used in a sendSavedMMS function call.
CUSTOMPASSID The identifier from your system to identify the pass or pass data uniquely.
DDMTEXT Text/Body for DDM message (Device Discovery Message) used in the sendSavedMMS function.
DDMTIMEOUT The time(in minutes) for a DDM message (Device Discovery Message) used in the ‘sendSavedMMS’ function. After this time expires, we send an MMS even if there is not a DDM result received.
DDMTITLE Title for a DDM message (Device Discovery Message) used in the sendSavedMMS function.
FORCEPASSASLINK If the saved MMS has a Passbook pass, then force the pass as a link upon sending.
FROM A valid shortcode or longcode for the sender address(string). When sending to a list of many numbers using the ‘sendSavedContent’ function and if the ‘FROM’ value cannot be used for a certain country, then the system will re-write the sender address to use a valid shortcode for those numbers.
MMSID The ID(integer) of a saved MMS.
PASSDATA All the data that goes on the pass(Array).
SLIDE This represents a single slide within the MMS sequence the could include IMAGE/URL/TEXT/PIC etc. (There are special rules for slides within the ‘saveMMS’ special consideration section).
TEXTAREA1 Custom text that goes at position 1 set on the Dynamic Image.
TEXTAREA2 Custom text that goes at position 2 set on the Dynamic Image.
TEXTAREA3 Custom text that goes at position 3 set on the Dynamic Image.
TEXTAREA4 Custom text that goes at position 4 set on the Dynamic Image.
TO This is the message recipient’s phone number in an international format.
TRACKINGID On success, the API returns with the tracking ID to identify sent messages. Upon API call failure, no tracking ID is returned. Once the message sending is processed you shall receive a postback containing TRACKINGID and the message status.