POST /api/v1/{account_code}/sms/transactional/send/
Authorization Bearer {token}  — 56 characters

The request consists of two main sections: default (parameters shared by all recipients) and specific (array of recipients with individual overrides). Parameters in specific override those in default for each individual message.

Credit note The response can be positive even if the account has insufficient credit. Always verify your account balance before sending.

Parameters (JSON)

Parameter Required Type Description
account_code YES string (UUID) Account code — passed in the URL path
default YES object Default parameters shared by all recipients
specific YES array<object> List of recipients with per-recipient overrides

default Object

Parameter Required Type Description
sender_id YES string (max 11) Pre-authorized sender associated with the account pre-authorized
text YES string Message text (may contain variable placeholders)
sending_time NO string (ISO 8601) Scheduled send time (e.g. 2025-01-30T14:13:24.679Z)
validity_time NO string (ISO 8601) Message validity expiry
expire_time_rcs NO string (ISO 8601) RCS expiry time
ph_delimiter NO string Variable delimiters in the text (e.g. "# #"#name#, or "{{ }}"{{name}})
meta NO object Shared variables to substitute in the text (e.g. {"company": "Acme"})

Items in specific Array

Parameter Required Type Description
phone_number YES string Recipient number with international prefix (e.g. "+393xxxxxxxxx")
meta NO object Per-recipient variables (override default.meta)
text NO string Per-recipient text (overrides default.text)
ph_delimiter NO string Per-recipient delimiter (overrides default.ph_delimiter)
validity_time NO string (ISO 8601) Per-recipient validity expiry
expire_time_rcs NO string (ISO 8601) Per-recipient RCS expiry

Tracked Links

To track click counts on a link included in the message text, use this format:

Syntax
{{ TRACKED_LINK_https://example.com }}

The platform will automatically replace the tracked link in the message text with a shortlink. The TRACKED_LINK_ prefix must precede the URL, and the entire expression must be wrapped in {{ }}.

The {{ }} delimiters for tracked links are independent from the ph_delimiter used for text variables. You can use both in the same request.

Example Request

JSON
{
  "default": {
    "sender_id": "SENDER",
    "text": "Hello #name# #surname#, you contacted #company#. Click here: {{ TRACKED_LINK_https://example.com }}",
    "sending_time": "2025-01-30T14:13:24.679Z",
    "validity_time": "2025-02-28T14:13:24.679Z",
    "ph_delimiter": "# #",
    "meta": {
      "company": "My Company"
    }
  },
  "specific": [
    {
      "phone_number": "+393331234567",
      "meta": {
        "name": "Mario",
        "surname": "Rossi"
      }
    },
    {
      "phone_number": "+393407654321",
      "ph_delimiter": "{{ }}",
      "text": "Hello {{name}} {{surname}}, welcome to {{company}}! {{ TRACKED_LINK_https://example.com }}",
      "meta": {
        "company": "Another Company",
        "name": "Carlo",
        "surname": "Bianchi"
      }
    }
  ]
}

Success Response

200 OK

An array with one object per recipient, in the same order as the specific array.

JSON
[
  {
    "success": true,
    "uuid": "9a53f419-6475-a191-9b86-xxxxxxxxxxxx",
    "index": 0,
    "receiver": "393331234567",
    "shortlink": "https://l2l.biz/cgRBB8",
    "error": null
  },
  {
    "success": true,
    "uuid": "a5562ac9-54f7-3c1c-7006-xxxxxxxxxxxx",
    "index": 1,
    "receiver": "393407654321",
    "shortlink": "https://l2l.biz/0vhiZj",
    "error": null
  }
]

Response Fields

Field Type Description
successbooleanDelivery outcome for this recipient
uuidstringUnique message identifier
indexintegerPosition in the specific array (0-based)
receiverstringRecipient number (without the +)
shortlinkstring|nullGenerated short URL if a tracked link was included
errorstring|nullError description (if any)