Passa al contenuto principale

SMS Legacy API

Cos'è SMS Legacy

SMS Legacy è il formato retrocompatibile per l'invio di messaggi SMS tramite la piattaforma Qlara. A differenza del formato Universal (un messaggio per richiesta), il formato Legacy consente di inviare più messaggi a più destinatari in una singola richiesta HTTP.

Questo formato è pensato per chi ha già un'integrazione esistente basata su questo schema o per chi necessita di inviare lo stesso messaggio a liste di destinatari in un'unica chiamata. Per le nuove integrazioni, si consiglia il formato SMS Universal.


Endpoint

Invio messaggi

POST https://lora-api.agiletelecom.com/api/services/sms/send

Verifica credito

GET https://lora-api.agiletelecom.com/api/services/sms/credit

Content-Type: application/json

Autenticazione: API Key (X-Api-Key) oppure Basic Auth (Authorization: Basic)


Campi della richiesta di invio

Campi globali

CampoTipoObbligatorioDefaultDescrizione
globalIdstringNo(auto)Identificativo globale della richiesta per raggruppare tutti i messaggi inviati nella stessa chiamata. Se non fornito, viene generato automaticamente
enableConcatenatedbooleanNotrueSe true, i messaggi lunghi vengono automaticamente concatenati in più parti SMS. Se false, il testo viene troncato alla lunghezza massima di una singola parte
enableUnicodebooleanNotrueSe true, i messaggi con caratteri non GSM-7 vengono inviati in codifica Unicode. Se false, i caratteri non supportati vengono rimossi o sostituiti
enableDeliverybooleanNotrueSe true, abilita le notifiche di consegna (delivery notification) verso il tuo URL di callback
simulationbooleanNofalseSe true, i messaggi vengono elaborati e validati ma non inviati fisicamente. Utile per test
skipRcsOverridebooleanNofalseSe true, gli SMS vengono inviati direttamente senza passare per un eventuale override RCS configurato a livello di account
messagesarrayLista di messaggi da inviare. Ogni elemento descrive un messaggio con i propri destinatari (vedi sotto)

Campi dell'oggetto messages[]

Ogni elemento dell'array messages rappresenta un messaggio con il suo testo e la lista dei destinatari.

CampoTipoObbligatorioDescrizione
destinationsarray[string]Lista di numeri destinatari in formato internazionale (es. ["+393401234567", "+393409876543"])
idsarray[string]NoLista di ID personalizzati per ogni destinatario, nello stesso ordine di destinations. Utile per tracciamento individuale
senderstringMittente del messaggio. Alfanumerico (max 11 caratteri) o numerico
bodystringSì*Testo del messaggio. *Mutuamente esclusivo con hexBody
hexBodystringNo*Testo del messaggio in formato esadecimale. Usato per contenuti binari. *Mutuamente esclusivo con body
udhDatastringNoUser Data Header in formato esadecimale. Usato per messaggi binari o concatenazione manuale
schedulingstringNoData e ora di invio programmato. Formato: yyyy-MM-dd HH:mm:ss.SSSZ (es. 2025-10-01 09:00:00.000+0000)

Risposta di invio

{
"globalId": "d4f5e6a7-b8c9-0123-4567-890abcdef012",
"processedMessages": 1,
"processedSmsParts": 3,
"credit": 1247.50
}
CampoTipoDescrizione
globalIdstringID globale della richiesta (quello fornito o generato automaticamente)
processedMessagesintegerNumero totale di messaggi processati (un messaggio per ogni destinatario)
processedSmsPartsintegerNumero totale di parti SMS generate (considera la concatenazione)
creditnumberCredito residuo dopo l'invio

Endpoint verifica credito

GET https://lora-api.agiletelecom.com/api/services/sms/credit

Non richiede body. Restituisce il saldo credito disponibile per l'account.

Risposta:

{
"credit": 1247.50
}
CampoTipoDescrizione
creditnumberCredito SMS disponibile per il tuo account

Confronto: Legacy vs Universal

CaratteristicaSMS LegacySMS Universal
Messaggi per richiestaMultipliUno
Destinatari per messaggioMultipliUno
Placeholder nel testoNo
Modalità simulazione
Invio programmatoSì (scheduling)Sì (scheduledDate)
Notifiche di consegnaSì (enableDelivery)Sì (enableNotification)
ID messaggio personalizzatoSì (ids[])Sì (messageId)
Controllo codifica UnicodeSì (enableUnicode)Automatica
Controllo concatenazioneSì (enableConcatenated)Automatica
Verifica creditoSì (endpoint dedicato)No
Formato consigliatoPer integrazioni esistentiPer nuove integrazioni

Esempi

1. Invio multi-destinatario

Invio dello stesso messaggio a tre destinatari con ID personalizzati per il tracciamento:

{
"globalId": "campagna-marzo-2025",
"enableConcatenated": true,
"enableUnicode": true,
"enableDelivery": true,
"simulation": false,
"messages": [
{
"destinations": [
"+393401234567",
"+393409876543",
"+393405551234"
],
"ids": [
"msg-001",
"msg-002",
"msg-003"
],
"sender": "MyBrand",
"body": "Ciao! Approfitta della promozione: 20% di sconto su tutto il catalogo fino al 31 marzo. Visita il nostro sito!"
}
]
}

Risposta:

{
"globalId": "campagna-marzo-2025",
"processedMessages": 3,
"processedSmsParts": 3,
"credit": 1244.50
}

2. Verifica credito

Per controllare il credito SMS disponibile prima di un invio massivo:

GET /api/services/sms/credit HTTP/1.1
Host: lora-api.agiletelecom.com
X-Api-Key: YOUR_API_KEY

Risposta:

{
"credit": 1244.50
}

Codici di errore

Codice HTTPSignificatoCosa fare
200Richiesta elaborataVerifica processedMessages e processedSmsParts nella risposta
400Richiesta non validaVerifica i campi obbligatori e il formato dei dati
401Non autenticatoVerifica la tua API Key o le credenziali Basic Auth
403Accesso negatoIP non in whitelist o risorsa non autorizzata
422Entità non processabileDati sintatticamente corretti ma semanticamente non validi
429Troppe richiesteHai superato il rate limit. Riprova dopo il periodo indicato
500Errore interno del serverRiprova più tardi. Se il problema persiste, contatta il supporto