---
title: "API SMS per OTP e codici di verifica"
description: "Inviate SMS OTP con una chiamata REST e token bearer, con supporto Unicode e arabo, mittenti registrati, stati via webhook e fallback vocale."
canonical: "https://omnichannels.ai/it/channels/sms/otp-api/"
language: "it"
updated: "2026-10-10"
publisher: "BroadNet Technologies"
brand: "OmniChannels.ai"
---

# API SMS per OTP e codici di verifica

Canonical: https://omnichannels.ai/it/channels/sms/otp-api/
Language: it
Publisher: OmniChannels.ai by BroadNet Technologies

Inviate codici monouso dal vostro backend con una richiesta HTTPS all'API REST di BroadNet. È la vostra applicazione a generare e verificare il codice; noi lo consegniamo da un mittente (Sender ID) registrato su rotte dirette verso gli operatori e riportiamo ogni stato al vostro webhook.

**Risposta breve:** Per inviare un OTP via SMS con OmniChannels.ai, il vostro backend genera il codice e chiama POST /sms/sendSms su https://api.broadnet.me con un token bearer, il vostro mittente (Sender ID), il numero e il messaggio. L'API restituisce un ID del messaggio e gli stati di consegna arrivano al vostro webhook. Sono supportati Unicode e arabo e WhatsApp o la voce possono fare da fallback.

## Cosa offre agli sviluppatori l'API SMS per OTP

- **Una chiamata REST per codice:** POST /sms/sendSms con un corpo JSON e un token bearer. La risposta è l'ID del messaggio da memorizzare insieme al tentativo di verifica.
- **Stati di consegna via webhook:** Ricevete SUBMITTED, SENT, DELIVERED, FAILED e REJECTED in un unico formato normalizzato, così sapete quando offrire un nuovo invio o cambiare canale.
- **Codici Unicode e in arabo:** Impostate messageType su UNICODE per l'arabo o altri alfabeti. POST /sms/identify restituisce la codifica e il numero di segmenti prima dell'invio.
- **Mittenti (Sender ID) registrati:** Inviate da un mittente alfanumerico (Sender ID) registrato per il traffico transazionale nei mercati che lo richiedono, come Emirati Arabi Uniti e Arabia Saudita.
- **Verifica del numero prima dell'invio:** POST /sms/lookup controlla un numero sulla rete (HLR e MNP) e vi aiuta a scartare i numeri non validi prima di pagare l'invio di un codice.
- **Fallback WhatsApp e voce:** Passate a un modello di autenticazione WhatsApp o a una chiamata vocale quando l'SMS non viene consegnato o il codice non viene inserito.
- **SMPP per volumi molto elevati:** Se avete già un client SMPP, inviate gli OTP via SMPP 3.4 su TLS sulle stesse rotte e ricevete le conferme sulla sessione.
- **SDK e server MCP:** Usate l'SDK TypeScript @broadnet/cpaas-sdk, la specifica OpenAPI 3.1 o il server MCP per gli agenti IA.

## Cosa fa il vostro codice e cosa fa l'API

| Voce | Dettagli |
|---|---|
| Generate il codice | Il vostro backend crea un codice casuale, memorizza un hash con un orario di scadenza e limita i tentativi per numero, dispositivo e indirizzo IP. |
| Inviate l'SMS | POST /sms/sendSms con senderId, destinationNumber (prefisso internazionale più numero, solo cifre), message e messageType. |
| Seguite la consegna | Memorizzate l'ID del messaggio restituito e abbinate gli stati del webhook. Un DELIVERED mancante entro il vostro timeout può avviare un fallback. |
| Verificate il codice | Il vostro backend confronta ciò che l'utente ha digitato con l'hash memorizzato. La piattaforma non controlla né memorizza mai lo stato della vostra verifica. |
| Passate al fallback | Rinviate su WhatsApp con un modello di autenticazione, oppure con una chiamata vocale, che il nostro team attiva con voi. |
| Prezzi | Addebito per segmento SMS in base alla destinazione, alle tariffe di listino pubblicate da BroadNet, senza costi di attivazione né minimo mensile. Vedi i prezzi degli SMS per paese. |

## Come integrare l'API SMS per OTP

1. **Ottenete il token:** Richiedete l'accesso; viene rilasciato un token bearer per il vostro account e i messaggi di prova vanno ai vostri numeri verificati.
2. **Registrate un mittente (Sender ID):** Scegliete un mittente (Sender ID) transazionale e registratelo nei paesi che lo richiedono prima di andare online.
3. **Scrivete il messaggio:** Mettete il codice per primo, indicate il vostro marchio, la scadenza e un avviso di non condivisione. Mantenetelo entro un segmento.
4. **Inviate e seguite:** Chiamate POST /sms/sendSms, memorizzate l'ID del messaggio e gestite gli stati del webhook in modo idempotente.
5. **Aggiungete fallback e limiti:** Aggiungete WhatsApp o la voce come passaggio successivo e limitate la frequenza delle richieste per bloccare l'SMS pumping prima del lancio.

## Quando l'API SMS per OTP è la scelta giusta

### È la scelta giusta quando

- Integrate nella vostra app la verifica di registrazione, accesso o pagamento e volete il pieno controllo del codice.
- Vi servono OTP verso Emirati Arabi Uniti, Arabia Saudita e altri mercati del GCC e di MENA, in arabo e inglese.
- Volete un'unica API per gli SMS oggi e per il fallback WhatsApp, RCS o voce in seguito.
- Preferite REST e webhook, con SMPP disponibile quando i volumi crescono.

### Da sapere prima di iniziare

- Non esiste un endpoint di verifica ospitato: è la vostra applicazione a generare, memorizzare e controllare il codice.
- L'accesso alla produzione è valutato dal nostro team; non c'è una registrazione immediata in autonomia.
- La registrazione del mittente (Sender ID) richiede giorni in alcuni paesi, quindi avviatela prima della data di lancio.
- Gli endpoint OTP sono un bersaglio delle frodi di SMS pumping; elenchi di paesi consentiti, limiti di frequenza e controlli anti-bot sono una vostra responsabilità nell'app.

## Domande sull'API SMS per OTP

### Come invio un SMS OTP con l'API?

Generate il codice nel vostro backend, poi chiamate POST https://api.broadnet.me/sms/sendSms con un'intestazione Authorization: Bearer e un corpo JSON contenente senderId, destinationNumber, message e messageType. La risposta è l'ID del messaggio e gli stati di consegna arrivano al vostro webhook.

### L'API genera e verifica il codice al posto mio?

No. È la vostra applicazione a generare il codice, memorizzarne un hash con una scadenza e controllare ciò che l'utente inserisce. Tenere la verifica nel vostro sistema significa che logica del codice, limiti di tentativi e traccia di audit restano sotto il vostro controllo.

### Posso inviare SMS OTP in arabo?

Sì. Impostate messageType su UNICODE. Gli SMS in arabo contengono 70 caratteri per segmento, quindi mantenete il messaggio breve. Potete chiamare prima POST /sms/identify per ottenere la codifica e il numero di segmenti.

### Qual è il miglior formato per un messaggio SMS OTP?

Partite dal codice, indicate il vostro marchio, la scadenza e avvertite l'utente di non condividere mai il codice, tutto in un solo segmento. Usate un mittente (Sender ID) transazionale e tenete le offerte fuori, così le reti non filtrano il messaggio come marketing.

### Cosa faccio se l'SMS OTP non viene consegnato?

Controllate gli stati del webhook per l'ID del messaggio. Se non vedete DELIVERED, o l'utente non inserisce il codice entro il vostro timeout, offrite un nuovo invio o passate a WhatsApp o a una chiamata vocale. Non riprovate all'infinito sullo stesso numero.

### Come proteggo il mio endpoint OTP dall'SMS pumping?

Consentite solo i paesi che servite, limitate la frequenza per numero, dispositivo e indirizzo IP, aggiungete un controllo anti-bot sui moduli pubblici e impostate avvisi sui picchi di richieste verso prefissi insoliti. Anche una verifica del numero prima dell'invio aiuta a scartare i numeri non validi.

### Quanto costa un SMS OTP?

Gli SMS OTP sono addebitati per segmento alla tariffa della destinazione. I prezzi di listino indicativi di BroadNet per paese sono nelle pagine dei prezzi degli SMS, ad esempio da US$0.0123 per segmento verso gli Emirati Arabi Uniti. Non ci sono costi di attivazione né minimo mensile; il preventivo conferma le tariffe.

### C'è una sandbox?

L'accesso di prova invia ai vostri numeri verificati sulla stessa API, così provate consegna e stati reali prima della produzione. Non c'è una sandbox pubblica separata né una registrazione immediata in autonomia.

Aggiornato: 2026-10-10