SMS OTP e 2FA per SaaS: login sicuro con codice monouso 2026

Come le PMI SaaS in Italia proteggono il login con SMS OTP senza app obbligatoria: consegnabilità in Italia, strategia di fallback con WhatsApp come canale principale o di riserva, best practice di sicurezza e setup pratico con API, webhook e Flow Builder. Con calcolo di esempio su quando conviene passare a WhatsApp Authentication.

TL;DR

L'SMS OTP è per i fornitori SaaS italiani il secondo fattore più pragmatico, perché ogni dispositivo lo riceve senza installare app. Tre elementi sono decisivi: consegna affidabile (97-99 % in Italia, latenza da 5 a 15 secondi), una strategia di fallback pensata con WhatsApp Authentication e un setup di sicurezza conciso con codici a 6 cifre, breve validità e blocco contro brute force. Una definizione completa del processo si trova nella voce del glossario Password monouso (OTP). Chi supera circa 500 login al giorno dovrebbe valutare se passare a WhatsApp Authentication come canale principale dimezza i costi di invio. Un calcolo di esempio è disponibile più avanti.

Cosa fa l'SMS OTP nel login SaaS

L'SMS OTP è il secondo fattore più pragmatico nel login SaaS: l'utente accede con email e password, il backend invia un codice a 6 cifre via SMS, l'utente lo digita nel modulo di login. Fine. Una definizione completa del processo si trova nella voce del glossario Password monouso (OTP).

Il fascino per i fornitori SaaS PMI italiani sta nel denominatore comune più basso. Un SMS lo riceve ogni smartphone senza alcuna configurazione. Non c'è app da installare, nessun codice QR da scansionare, nessun token hardware da ordinare. Questo abbassa sensibilmente la soglia in fase di onboarding, soprattutto nei settori dove gli utenti finali non sono sviluppatori né power user: artigiani, strutture sanitarie, piccoli studi commercialisti, associazioni locali.

Allo stesso tempo, l'SMS OTP non è il metodo più sicuro sul mercato. Un'app authenticator con autenticazione a due fattori secondo TOTP è più resistente al phishing, una soluzione passkey addirittura immune al phishing. L'SMS OTP si colloca nel mezzo ed è la scelta giusta esattamente quando la copertura e la semplicità d'uso contano più del massimo livello di sicurezza assoluto.

Quando l'SMS OTP è la scelta giusta

La domanda è raramente: SMS o niente. La domanda onesta è: quale canale si adatta a quale utenza?

L'SMS OTP è la raccomandazione standard quando un fornitore si rivolge a un'utenza ampia ed eterogenea e deve garantire che anche utenti più anziani o meno tecnologici passino senza ostacoli. Funziona su ogni cellulare, anche senza connessione dati. Il codice è immediatamente visibile senza dover aprire alcuna app.

WhatsApp OTP tramite un authentication template è l'opzione economicamente più conveniente non appena i clienti finali usano già attivamente WhatsApp, ovvero tipicamente in scenari B2C e in Italia tra i liberi professionisti. Il prerequisito è un tipo di template approvato e un account WhatsApp Business.

Le app authenticator (TOTP) sono la scelta per workflow critici per la sicurezza con un'utenza tecnologica, ad esempio account amministrativi in un SaaS per sviluppatori. Qui contano la resistenza al phishing e i costi di invio pari a 0 € più della massima copertura.

Confronto dei tre canali OTP per il login SaaS: SMS, WhatsApp Authentication e app Authenticator per costi, consegnabilità, usabilità e sicurezza nel mercato italiano
Canale Costi Italia Tasso di consegna Usabilità Sicurezza
SMS OTP 0,06-0,10 €/messaggio 97-99 % Molto alta (no app) Media (rischio SIM swap)
WhatsApp Authentication circa 0,0509 €/messaggio 95-98 % Alta (per utenti attivi) Alta (crittografia E2E)
App Authenticator (TOTP) 0,00 €/codice 100 % (locale) Media (app necessaria) Molto alta (resistente al phishing)

Il confronto completo dei costi con calcoli di esempio per l'Italia si trova nell'articolo correlato sul canale SMS. Questo contributo si concentra sul setup pratico per i fornitori SaaS.

Consegnabilità in Italia: rotte, mittente, latenza

Un SMS che non arriva è nel workflow di login un guasto totale: l'utente si trova davanti a un campo codice vuoto e nel dubbio abbandona. La consegnabilità non è quindi un dettaglio tecnico, ma una decisione di prodotto.

Tre variabili determinano la consegna. La rotta carrier è la più importante. Le rotte premium verso gli operatori di telefonia mobile italiani raggiungono un tasso di consegna del 97-99 % con una latenza di 5-15 secondi. Le rotte a basso costo sul mercato grigio arrivano spesso solo all'80-90 % e sono inadatte all'OTP, perché uno su dieci utenti abbandona. Un fornitore SMS serio dichiara trasparentemente quale rotta utilizza e fornisce automaticamente la variante di qualità superiore per l'OTP.

L'identificativo mittente è la seconda variabile. Tre varianti sono comuni in Italia:

  • Mittente alfanumerico (es. SAAS-LOGIN, fino a 11 caratteri): il marchio appare come mittente, l'utente riconosce immediatamente da chi proviene l'SMS. Crea fiducia, ma non è attivato per tutte le tariffe in Italia.
  • Numero breve (short code a 5 cifre): standard del settore per invii di massa, ma costoso da configurare. Raramente conveniente per le PMI.
  • Numero lungo (classico numero di cellulare internazionale): economico e disponibile rapidamente, ma sembra un SMS da un privato e abbassa la fiducia.

La regola pratica per il login SaaS: se il vostro fornitore supporta il mittente alfanumerico per l'Italia, usatelo. Distingue visivamente gli SMS OTP dallo spam.

La terza variabile è la latenza. Da 5 a 15 secondi tra la chiamata API e l'arrivo dell'SMS è normale. Se la latenza è superiore, verificate la rotta. Nel workflow di login dovreste inoltre aspettare che un evento webhook confermi lo stato «consegnato», in modo che il vostro backend sappia se l'SMS è stato effettivamente consegnato e non solo inviato.

Schermata di blocco smartphone con SMS OTP in arrivo dal mittente SAAS-LOGIN e codice di verifica a 6 cifre, accanto schermata di login con campo di inserimento codice
Mittente alfanumerico, codice a 6 cifre, indicazione concisa della validità: così appare un SMS OTP esemplare. Fonte: SendSeven.

Strategia di fallback: WhatsApp come principale o di riserva

Anche la migliore rotta SMS si interrompe occasionalmente. Un utente fuori copertura, un problema temporaneo del carrier, un viaggio all'estero con roaming bloccato: vale la pena predisporre un secondo canale di invio invece di lasciare l'utente fuori dalla porta.

La combinazione economicamente più conveniente per l'Italia è: WhatsApp prima, SMS come fallback. Il WhatsApp Business API authentication template è più economico dell'SMS ed è utilizzato attivamente dalla maggioranza degli utenti finali in Italia. Chi non ha WhatsApp o non apre il messaggio entro un periodo da voi scelto, riceve automaticamente un SMS in seguito. Questa logica di routing è gestita dal vostro backend: chiama il canale preferito tramite API e, in base al webhook di ricevuta di consegna, invia il fallback se necessario.

Per i modelli di business con utenti finali prevalentemente B2B, l'ordine inverso ha più senso: SMS prima, WhatsApp come fallback. Gli utenti B2B leggono gli SMS aziendali con maggiore attenzione e li accettano come canale di comunicazione formale, mentre WhatsApp è percepito più come canale personale.

Per i numeri fissi o per requisiti speciali di accessibilità, potete consegnare gli OTP anche tramite un gateway telefonico dedicato. Questo percorso non passa per SendSeven, ma corre in parallelo tramite il vostro fornitore VoIP. È tipicamente più costoso dell'SMS, ma vale l'investimento come ultima garanzia nel workflow.

Best practice di sicurezza per i codici OTP

Un setup OTP non diventa sicuro grazie al canale di invio, ma grazie alla disciplina nel backend. Sei regole fanno la differenza tra un secondo fattore credibile e una misura pseudo-sicura che non supera un audit.

  • 6 cifre, non 4. Un codice a 6 cifre ha un milione di combinazioni possibili, uno a 4 cifre solo diecimila. Con un blocco brute force rigoroso la differenza sarebbe teoricamente piccola. In pratica i codici a 4 cifre facilitano il phishing perché gli utenti li memorizzano più facilmente e li digitano in sistemi di terze parti.
  • Validità da 5 a 10 minuti. Meno è fastidioso se l'SMS arriva in ritardo. Di più agevola gli attacchi. 10 minuti sono il compromesso consolidato per gli SMS OTP.
  • Uso singolo obbligatorio. Anche se il codice fosse ancora valido temporalmente, il backend dovrebbe invalidarlo immediatamente dopo un accesso riuscito.
  • Blocco brute force dopo 3-5 tentativi falliti. Poi scartare l'OTP e richiederne uno nuovo. Altrimenti un attaccante potrebbe indovinare il codice per tentativi.
  • Mai codice e link di login nello stesso messaggio. Chi invia un link cliccabile nell'SMS OTP abilita uno scenario di phishing perfido: una schermata di login falsa chiede il codice, l'utente lo fornisce volontariamente. Gli SMS OTP contengono solo il codice, niente altro.
  • Documentare il binding del canale. Il canale OTP dovrebbe essere separato dal canale di login. Chi è connesso via WhatsApp Web sul laptop e riceve l'OTP tramite WhatsApp non ha una vera separazione a due fattori. I fornitori SaaS dovrebbero indicare nell'informativa privacy e nel documento di sicurezza interno quale canale usano per gli OTP e perché.

Un SMS OTP esemplare appare così: «Il tuo codice: 482593. Valido 10 minuti. Inseriscilo solo su SAAS-LOGIN. SAAS-LOGIN». Sei cifre, un'indicazione sulla validità, un avviso di sicurezza, un identificativo mittente alla fine. Nessun link, nessun slogan pubblicitario, nessuna emoji.

GDPR e protezione dei dati nell'invio OTP

L'invio OTP tratta dati personali, in particolare il numero di cellulare dell'utente finale. Quattro punti appartengono a ogni verifica di privacy SaaS.

Base giuridica. Per l'invio OTP a protezione del login si applica in genere l'art. 6, par. 1, lett. b del GDPR (esecuzione del contratto), perché l'autenticazione a due fattori è parte del contratto tra fornitore SaaS e cliente. In alternativa si applica la lett. f (legittimo interesse). Il consenso non è necessario per le misure di sicurezza pure ed è anche sconsigliato, perché potrebbe essere revocato.

Contratto di trattamento dei dati (DPA). L'invio OTP avviene tramite un fornitore di servizi che tratta il numero di cellulare per vostro conto. Avete bisogno di un DPA ai sensi dell'art. 28 del GDPR. I fornitori seri lo mettono a disposizione senza costi aggiuntivi.

Preferire l'hosting UE. I dati dei cittadini UE dovrebbero essere trattati nell'UE. Questo semplifica la valutazione d'impatto sulla protezione dei dati e chiude sostanzialmente la discussione sull'applicabilità di legislazioni extraeuropee. SendSeven è ospitato esclusivamente nell'UE ed è una piattaforma conforme al GDPR con sede in Augsburg.

Periodo di conservazione. I numeri di cellulare per scopi OTP non dovrebbero essere conservati più a lungo di quanto necessario per il workflow di login. Il numero stesso fa parte dei dati anagrafici dell'utente. Il log degli invii OTP può essere tenuto secondo i propri periodi di conservazione, tipicamente da 30 a 90 giorni per i log di sicurezza.

Per approfondire il corretto trattamento dei dati nel contesto del messaging, consultate la voce del glossario messaging conforme al GDPR. Il Garante per la protezione dei dati personali ha pubblicato orientamenti specifici sul trattamento dei dati di autenticazione — assicuratevi che la vostra informativa privacy sia aggiornata di conseguenza.

Setup SaaS con SendSeven: API, webhook, Flow Builder

Nell'implementazione tecnica ci sono tre componenti che interagiscono.

1. API di invio. Al tentativo di login il vostro backend chiama una REST API e passa il numero del destinatario, il codice e opzionalmente l'identificativo mittente. L'API risponde immediatamente con un Message ID. Tramite il canale SMS o l'authentication template WhatsApp (per la variante WhatsApp) il messaggio viene inviato.

2. Webhook per la ricevuta di consegna. Pochi secondi dopo, un webhook riporta lo stato finale: «delivered» (consegnato), «failed» (fallito) o «undeliverable» (non consegnabile, ad esempio perché il numero non è valido). Il vostro backend ascolta questo webhook e può reagire: in caso di «failed» attivare automaticamente il canale di fallback, in caso di «undeliverable» chiedere all'utente di inserire un altro numero.

3. Routing di fallback nel backend. L'ordine dei canali è gestito dal vostro backend: chiama prima il canale preferito tramite API, aspetta il webhook di ricevuta di consegna e, in caso di «failed» o di mancata conferma, invia l'OTP tramite il canale di fallback. In questo modo mantenete il pieno controllo su timeout e priorità. Per i passi successivi, ad esempio una notifica al team in caso di invii falliti ripetuti, si può aggiungere successivamente un flow.

Invio OTP per il vostro login SaaS

SendSeven invia OTP tramite SMS, WhatsApp Authentication e email tramite un'API unificata. DPA ai sensi dell'art. 28 del GDPR, hosting UE, ricevuta di consegna via webhook. I messaggi in entrata sono sempre gratuiti, l'ingresso parte da 9 €/canale/mese nel piano API Only.

Vedi i prezzi

Calcolo di esempio: quando conviene passare a WhatsApp

La questione dei costi è rilevante per ogni SaaS con un numero significativo di login. Un semplice calcolo di esempio mostra da quando il costo aggiuntivo per un authentication template diventa conveniente.

Punto di partenza: un SaaS italiano ha 1.000 login al giorno e invia un OTP per ogni login. Su base SMS, a 0,08 € per messaggio, il costo è di 80 € al giorno, ovvero circa 2.400 € al mese. Chi sposta completamente l'invio OTP su WhatsApp Authentication e paga in media 0,0509 € per messaggio arriva a circa 1.527 € al mese. Il risparmio è di circa 873 € al mese, ovvero circa il 36 %.

Ma attenzione: la migrazione non è uno scambio del 100 %. Realisticamente gli utenti finali si dividono in due gruppi. Circa il 60-80 % usa attivamente WhatsApp e riceve il codice lì. Il restante 20-40 % continua a ricevere l'OTP via SMS come fallback. Con questo mix realistico, il risparmio scende a circa 400-600 € al mese, il che a 1.000 login al giorno è comunque molto più del lavoro amministrativo per il secondo template.

La soglia di convenienza economica si trova quindi a circa 500 login al giorno. Al di sotto di questa soglia, il costo aggiuntivo di setup per l'authentication template non si giustifica. Al di sopra, ogni giorno in cui WhatsApp funziona fa risparmiare rispetto all'invio esclusivo via SMS. Il confronto dettagliato dei costi per altri profili di carico si trova nell'articolo comparativo SMS o WhatsApp: quale canale si adatta quando.

Approfondimento: articoli correlati

Questo articolo ha messo al centro il setup SMS OTP per i fornitori SaaS. I seguenti contributi approfondiscono temi adiacenti su SMS, sicurezza e il metodo WhatsApp Authentication.

Il canale SMS viene presentato in dettaglio sulla pagina del canale SMS, il routing visivo tra canali nel Flow Builder.

Domande frequenti

L'SMS OTP è abbastanza sicuro per un prodotto SaaS?

L'SMS OTP come secondo fattore accanto alla password è significativamente più sicuro di un login con sola password ed è sufficiente per la maggior parte delle applicazioni SaaS per PMI. Chi ha bisogno della massima sicurezza (account amministrativi, dati sensibili) dovrebbe offrire in aggiunta o in alternativa un'app authenticator o i passkey. Importanti sono una lunghezza del codice a 6 cifre, una breve validità di 5-10 minuti e un blocco brute force dopo tre-cinque tentativi falliti.

Quanto è veloce la consegna di un SMS OTP in Italia?

Tramite rotte premium verso gli operatori di telefonia mobile italiani, la latenza è tipicamente compresa tra 5 e 15 secondi. Il tasso di consegna raggiunge il 97-99 %. Le rotte a basso costo sul mercato grigio sono inadatte all'OTP perché garantiscono solo l'80-90 % di consegna e latenze più elevate. Un fornitore serio dichiara trasparentemente quale rotta viene utilizzata.

Quanto costa un SMS OTP nel mercato italiano?

Un SMS OTP costa nel mercato italiano tipicamente tra 0,06 e 0,10 € netto. La variante WhatsApp Authentication costa circa 0,0509 €, un'app authenticator TOTP è gratuita per codice ma richiede un maggiore sforzo di onboarding. Con SendSeven l'ingresso parte da 9 €/canale/mese nel piano API Only.

Devo usare numero lungo, numero breve o mittente alfanumerico per l'OTP?

Se il vostro fornitore supporta il mittente alfanumerico per l'Italia, è la scelta migliore perché il vostro marchio appare direttamente nel campo mittente e si distingue dallo spam. I numeri brevi sono costosi da configurare e per la maggior parte delle PMI non sono convenienti. I numeri lunghi sembrano SMS da un privato e abbassano la fiducia, ma sono economici e disponibili rapidamente.

Come costruisco una logica di fallback tra WhatsApp e SMS?

La variante economicamente più conveniente è: WhatsApp Authentication prima, SMS come fallback. L'ordine è gestito dal vostro backend: chiama il canale preferito tramite API, ascolta il webhook di ricevuta di consegna e invia l'SMS in caso di stato «failed» o «undeliverable» o di mancata conferma. In questo modo mantenete il pieno controllo su timeout e priorità.

Quale base giuridica si applica all'invio OTP secondo il GDPR?

In genere si applica l'art. 6, par. 1, lett. b del GDPR (esecuzione del contratto), perché l'autenticazione a due fattori fa parte del contratto tra fornitore SaaS e cliente. In alternativa si applica la lett. f (legittimo interesse). Il consenso non è necessario. Avete bisogno di un contratto di trattamento dei dati ai sensi dell'art. 28 del GDPR con il vostro fornitore di invio e dovreste preferire l'hosting UE.

Posso inviare un link di login nello stesso SMS OTP?

No. Un SMS OTP deve contenere esclusivamente il codice e un breve avviso di sicurezza. Un link cliccabile nell'SMS OTP abilita uno scenario di phishing perfido: una schermata di login falsa chiede il codice, l'utente lo fornisce volontariamente. La separazione netta tra codice e punto di accesso al login è parte del concetto di sicurezza e appartiene a ogni audit interno.

Da quale volume di login conviene passare da SMS a WhatsApp Authentication?

La soglia di convenienza economica è di circa 500 login al giorno. Al di sopra, il passaggio a WhatsApp Authentication (con SMS come fallback) fa risparmiare mensilmente centinaia di euro in costi di invio nel mercato italiano. Al di sotto, il costo aggiuntivo di setup per l'authentication template si giustifica a malapena. Con un carico molto elevato e invio esclusivo WhatsApp sono realistici risparmi di circa il 36 % rispetto all'invio esclusivo SMS.