v3.2 includes all features of v3.1, with the addition of:

Long Message Element

The longMessageInfo element is now available for incoming HTTP messages. If a message sent to your endpoint is longer than a standard text message, it may be split into multiple parts. In this case, the request from Vibes will include the longMessageInfo element.

Learn more on our Receive Messages page.


Alternative Message Delivery

Alternate Message Delivery allows a customer to request certain messages to be delivered via a second method (via a long code or alternate short code) if the message fails to be delivered on the original short code.

This is useful for user scenarios in which it is essential to get an important, timely message to a consumer without delay, such as for messages related to monitoring or alerts, two-factor authentication, and account verification. Once set up on your account, it is enabled on a per message basis.

Please note that if this method is used, the consumer will receive a text from an alternative phone number than the one they might expect. However, in these scenarios, the value of delivering the messages often outweighs any potential confusion from the message originating from an alternative long code.


Alternate Message Delivery is currently not supported for concatenated messages.


To utilize this service, a customer will need to request it through their Account Service Representative. Alternative long or short codes will be acquired for their use and associated with their current code(s). From that point on, a customer can indicate any message submitted through the API for alternateDelivery on the API call, and the feature will be enabled for that message.

XML Request Example

<?xml version="1.0" encoding="UTF-8"?>
<mtMessage submitterMessageId="239487234987234" alternateDelivery="true">
    <destination carrier="102" address="+18475551212" type="MDN" />
    <source address="98765" type="SC" />
    <receiptOption callbackUrl="http://www.client.com/callback" >ERROR</receiptOption>
    <transaction id="6439376297230"/>

Message Flow

In the case when alternate delivery is requested, and the original message fails delivery at the carrier, a delivery receipt will be returned for the original message indicating the failure along with the AlternateMessageID that was created for the alternate. Both the original message and the alternate message will have the same SubmitterMessageID for customer reference. Another delivery receipt will be returned for the alternate message which will also indicate the original MessageUID for reference.

Message Status Changes

To support alternate message delivery, a new message status is added called Forwarded. This status will apply to any original messages that failed carrier delivery and had an alternate message created. Please see the specific delivery receipt page for your connection method for details.

Callback Changes

If alternate message delivery is applied, you may receive extra callbacks if you include intermediate callbacks in your request. You will also get extra information within the callback XML.

If you request intermediate callbacks, you will receive a callback when the original outgoing message succeeds or fails, and if it failed, another callback when the alternate message succeeds or fails.

If you request only final callbacks, then you will only receive a callback when the original message succeeds, or the alternate message succeeds or fails.

Callbacks for the original outgoing message will include a new attribute in the root element: ForwardedMessageID. This is the unique identifier of the alternate message generated due to the failure. See in used in the example below.

<?xml version="1.0" encoding="UTF-8"?>
<mtMessageResponse messageId="865cd3d1-bea6-4a6f-8bac-bae483248a27" 
    <status isError="true">
        <description>Description of status</description>

Callbacks for the alternate outgoing message will include a different attribute in the root element: OriginalMessageID. This is the unique identifier of the original outgoing message submitted to the API.

<?xml version="1.0" encoding="UTF-8"?>
<mtMessageResponse messageId="734cd3d1-bea6-4a6f-8bac-bae985345a27" 
    <status isError="false">

Message Splitting & Multi-Part Messages

Vibes' Connect platform now allows API callers to submit SMS messages up to 900 characters in length. These messages will automatically split into multiple SMS messages and, for carriers that support it, Message Concatenation will be utilized so the message will appear as one large message on the device.


This feature will be available for all API users and is enabled by setting a flag when a message is submitted. If that flag is set on a message and the message text exceeds the carrier length of a single SMS, it will be automatically split into multiple SMS messages.

Once the original message is split, each SMS message segment will be individually recorded, tracked, and billed as separate message. In addition, each of the SMS messages will be associated back to the original large message for reference.

The actual splitting logic varies based on each carrier's support for concatenated messaging, their specific implementation of concatenated messaging, and payload. Here are the specifics:

  • For carriers that support concatenated messaging, the original message will be split into specific SMS messages at the maximum concatenated SMS length for the carrier. This can be less than the maximum length of an SMS message, based on the carrier's rules and implementation on concatenated messages.
  • For carriers that do not support concatenated messaging, the message will be split by Vibes. The system will break messages on a word boundary when possible. However, if splitting a message on a word boundary would cause an extra message to be generated, then it will be split at the maximum character length to avoid the extra message.


Extra charges may apply

If your large SMS message is split into multiple messages for delivery, you will be billed for additional messages. If you would not like to incur extra charges, we recommend setting splitLongMessage to false.