SMS
The SFTP messaging integration for SMS is designed to support the transmission of Mobile Terminated (MT) messages, also referred to as outbound messages. These are messages initiated by the platform and delivered directly to the end user’s mobile device.

This method of delivery is particularly suitable for enterprises seeking to automate high-volume SMS campaigns without relying on the graphical interface or API endpoints. By uploading properly structured JSON files to the designated /sms directory within the secure SFTP environment, organizations can seamlessly trigger outbound SMS messaging.
Before sending your first SMS message, you must set up the short code or long code from which the message will be sent.
A Short Code is a special telephone number designed for high-throughput, two-way messaging. Short codes are used to send and receive SMS messages to and from mobile phones. That is, an SMS shortcode is a 5-digit number to which an SMS text message can be sent. Shortcodes are often used by businesses to allow customers to opt-in to their SMS campaigns, alert services, or to enter SMS competitions.
A Long Code is a standard phone number used to send and receive voice calls and SMS messages. Phone numbers are typically called “long codes” (10-digit numbers in many countries) when comparing them with SMS short codes (5-6 digit numbers). With a long code, you can only send one message per second. Therefore, long code text marketing does not work if you want to message groups of more than 200 people.
If you’re choosing between a long and short code for your brand’s SMS number, consider using a short code since it can provide higher throughput, faster messaging, and help you drive better customer engagement.
NOTEThe destination address ("
to
") of the message must be specified in E.164 format → (‘+’ and a country code). The plus sign prefix of the format is optional.E.164 format: An ITU recommendation for the International Public Telecommunications Numbering Plan, used in the world's Public Switched Telephone Network (PSTN). It defines a common format for international phone numbers prefixed with a ("
+
" ) sign followed by a sequence of up to 15 digits, made up of a Country Code (1 to 3 digits) and a Subscriber Number that includes the area code (maximum 12 digits).
Sending SMS message
When sending SMS messages via SFTP, the platform requires that files be uploaded in JSON format to the /sms
directory. Two message structures are supported:
- SMS without Placeholders: For static messages where no personalization is required, placeholders can be omitted.
- SMS with Placeholders: Placeholders allow you to personalize messages dynamically by inserting variable values (e.g., name, age) for each recipient.
SMS Without Placeholders
The SMS without placeholders format is used when the same static message is sent to all recipients, without the need for personalization or dynamic variables. This structure is simpler, as it only requires the core campaign details and the list of destination phone numbers.
In this format, the message field contains the exact text that will be delivered to every recipient, while the data array lists the phone numbers of all intended recipients. Since no placeholders are declared, the system delivers the message exactly as written to each phone number.
This approach is ideal for:
- Broadcast announcements (e.g., promotions, alerts, reminders).
- Uniform notifications where no personalization is required.
- Quick campaigns that prioritize efficiency and simplicity.
When you send an SMS text message, the request body contains the following data:
{
"campaignName": "Winter Promotion",
"from": "ELIPACKAGE",
"message": "Hello! Take advantage of our Winter Promotion and enjoy exclusive discounts.",
"data": [
{
"to": "+525500000000"
},
{
"to": "+525511111111"
}
]
}
The parameters presented in the request body example when sending the SMS text message are the following:
Parameter | Required | Description |
---|---|---|
campaignName | Yes | Name of the campaign. |
from | Yes | Source address of the message. Specifies the Shortcode (from 1 to 6 digits), Longcode (from 7 digits on), an alphanumeric shortcode (ex. COMPANY) or a virtual number that will be used to originate and send the SMS message. Any of these codes will appear in the handset as the source of the text message. Virtual numbers will translate to a local shortcode depending on the destination carrier. If you don't have one assigned yet please contact our support team to request one. |
message | Yes | Content of the SMS message that will be sent to the end user. The maximum length of a short message text is 160 characters using the default GSM 03.38 alphabet. If you use any character that is not in the default alphabet, the message will be encoded in Unicode and will be divided in segments of a maximum of 70 characters each. For example, if you include an emoji in your message and the message is 150 characters long, it will be divided into three segments: the first one with 70 characters, the second one with 70 characters and the third one with just 10 characters. You will be charged per segment, not per message. |
data | Yes | Array that contains the recipients, each defined by their phone number in E.164 format. |
data.to | Yes | Destination address of the message. This is the cell phone number where you want to send your message to. The destination address must be specified in E.164 format → (‘+’ and a country code). The plus sign prefix of the format is optional. |
SMS With Placeholders
The SMS with placeholders format allows you to personalize each message dynamically by replacing predefined variables with specific values for each recipient. Placeholders are declared in the message body using double square brackets ([[ ]]
), and their corresponding values are mapped in the data array for every recipient.
This method is particularly useful for campaigns that require customized messages, such as addressing recipients by name, providing age-specific information, or sending unique codes. By using placeholders, organizations can achieve a higher level of personalization and engagement without having to create separate messages for each user.
When sending SMS with placeholders via SFTP, the following process applies:
- Define placeholders in the message parameter using double square brackets (
[[placeholderName ]]
) format. - List all placeholder names in the placeholders array.
- For each recipient, specify the number and provide the corresponding placeholder values inside a placeholders object.
When you send an SMS text message, the request body contains the following data
{
"campaignName": "Personalized Promo",
"from": "ELIPACKAGE",
"message": "Hi [[name]], your discount code is [[code]].",
"placeholders": [
"name",
"code"
],
"data": [
{
"to": "+525500000000",
"placeholders": {
"name": "Ana",
"code": "PROMO123"
}
},
{
"to": "+525511111111",
"placeholders": {
"name": "Luis",
"code": "PROMO456"
}
}
]
}
The parameters presented in the request body example when sending the SMS text message are the following:
Parameter | Required | Description |
---|---|---|
campaignName | Yes | Name of the campaign. |
from | Yes | Source address of the message. Specifies the Shortcode (from 1 to 6 digits), Longcode (from 7 digits on), an alphanumeric shortcode (ex. COMPANY) or a virtual number that will be used to originate and send the SMS message. Any of these codes will appear in the handset as the source of the text message. Virtual numbers will translate to a local shortcode depending on the destination carrier. If you don't have one assigned yet please contact our support team to request one. |
message | Yes | Content of the SMS message that will be sent to the end user. Placeholders must be defined using double square brackets ( The maximum length of a short message text is 160 characters using the default GSM 03.38 alphabet. If you use any character that is not in the default alphabet, the message will be encoded in Unicode and will be divided in segments of a maximum of 70 characters each. For example, if you include an emoji in your message and the message is 150 characters long, it will be divided into three segments: the first one with 70 characters, the second one with 70 characters and the third one with just 10 characters. You will be charged per segment, not per message. |
placeholders | Yes | It is required when the body contains placeholders. Array listing all placeholders defined in the message body |
data | Yes | Array that contains the recipients, each defined by their phone number in E.164 format, and provide the corresponding placeholder values. |
data.to | Yes | Destination address of the message. This is the cell phone number where you want to send your message to. The destination address must be specified in E.164 format → (‘+’ and a country code). The plus sign prefix of the format is optional. |
data.placeholders | Yes |
It is required when the body contains placeholders. Set as parameter the placeholder you configured that is inside double brackets The placeholders must be correctly formatted in order of how the message was created. For example, for a text message body like |
Updated about 5 hours ago