Passa al contenuto principale

Invio SMS

Questa guida copre i fondamentali dell'invio SMS tramite la REST API di Agile Telecom: encoding del testo, sender ID, parti concatenate, schedulazione e invio massivo. Per il reference completo di request/response apri la SMS API sul portale wholesale.

Encoding: GSM-7 vs Unicode (UCS-2)​

I messaggi SMS sono codificati in uno di due standard. L'encoding influisce direttamente sul numero di caratteri che entrano in una singola parte.

EncodingLimite per parteParti concatenate (per parte)Uso tipico
GSM-7160 caratteri153 caratteriItaliano, inglese, alfabeti latini
UCS-270 caratteri67 caratteriEmoji, arabo, cirillico, cinese, greco

Un singolo carattere non-GSM (es. un'emoji o una vocale accentata fuori dall'extended set) sposta l'intero messaggio su UCS-2 e riduce la lunghezza per parte a 70 caratteri.

Imposta enableUnicode: true per consentire la rilevazione automatica dell'encoding. Imposta enableConcatenated: true per permettere a messaggi più lunghi di una parte di essere divisi e ricomposti sul telefono.

{
"enableConcatenated": true,
"enableUnicode": true,
"messages": [
{
"destinations": ["+393351234567"],
"sender": "Agile",
"body": "Ciao — il tuo codice è 12345. Rispondi STOP per disiscriverti."
}
]
}

Sender ID​

Il campo sender è l'identificativo "from" mostrato sul telefono del destinatario. Due formati accettati:

  • Numerico — Short code o numero lungo (solo cifre). Le risposte sono possibili se affitti un numero inbound.
  • Alfanumerico — Fino a 11 caratteri, lettere/cifre, senza spazi. Visibile ma non rispondibile. Alcuni paesi richiedono pre-registrazione.
"sender": "Agile" // alfanumerico (non rispondibile)
"sender": "393351234" // numerico (rispondibile se possiedi il numero)
Regolamentazioni paese

Sender alfanumerici, parole opt-out e shortcode sono regolamentati per paese. Verifica sempre le regole locali prima di inviare in un nuovo mercato.

SMS Concatenati (Lunghi)​

Quando un messaggio supera il limite di una parte, la piattaforma lo divide in più parti e le concatena sul dispositivo via UDH (User Data Header). Ogni parte è fatturata separatamente.

Encoding1 parte2 parti3 parti4 parti
GSM-7160306459612
UCS-270134201268

Lascia enableConcatenated: true salvo motivi specifici per forzare una singola parte — altrimenti i body lunghi saranno rifiutati.

Schedulazione​

Invia il campo scheduling su un messaggio per posticiparne la consegna. Il formato è ISO-like con offset di timezone:

{
"messages": [
{
"destinations": ["+393351234567"],
"sender": "Agile",
"body": "Promemoria: appuntamento domani alle 10:00.",
"scheduling": "2026-05-20 08:30:00.000+0200"
}
]
}

Un messaggio schedulato può essere cancellato prima dell'orario di invio dal portale wholesale o dall'endpoint di cancellazione.

Invio Massivo​

Invia a molti destinatari in una sola chiamata API aggiungendo più oggetti all'array messages, o più numeri in destinations.

{
"enableConcatenated": true,
"enableDelivery": true,
"messages": [
{
"destinations": [
"+393351234567",
"+393351234568",
"+393351234569"
],
"sender": "Agile",
"body": "Promo primavera: 20% di sconto fino a domenica."
}
]
}

Una singola richiesta può portare migliaia di destinazioni. Per volumi molto grandi, preferisci SMPP per throughput sostenuto — vedi il reference SMPP.

Modalità Simulazione​

Imposta simulation: true per validare la tua richiesta end-to-end senza inviare realmente e senza consumare credito. La risposta ha forma identica a un invio reale.

{
"simulation": true,
"messages": [ ... ]
}

ID di Tracking​

Usa il campo ids su un messaggio per associare ID di tracking per destinazione. Vengono restituiti sulla submission e sui delivery report.

{
"messages": [
{
"destinations": ["+393351234567", "+393351234568"],
"ids": ["ordine_5571_a", "ordine_5571_b"],
"sender": "Agile",
"body": "Ordine confermato."
}
]
}

Prossimi passi​