La verifica dell'età è passata da una casella da spuntare a un compito di ingegneria. Nel Regno Unito, l'Online Safety Act impone ad alcuni servizi controlli dell'età «altamente efficaci». Nell'UE, la Commissione europea ha pubblicato un blueprint (un progetto di riferimento) per dimostrare di avere più di 18 anni senza consegnare nient'altro. Entrambi indicano i documenti d'identità come una delle strade possibili.
Questo articolo è per gli sviluppatori a cui è stato chiesto di «aggiungere la verifica dell'età» e che vogliono capire dove si colloca la scansione di un documento d'identità. Spiega quali metodi elencano le autorità britanniche ed europee, cosa dimostra e cosa non dimostra la scansione di un passaporto o di una carta d'identità, come trasformare una data di nascita in una risposta «maggiorenne o no» e cosa conservare dopo. Ogni citazione qui sotto viene dalla pagina dell'autorità stessa, collegata dove compare; ne diamo una traduzione.
Questo è il blog di doc.cheap, un'API OCR per passaporti e documenti d'identità. Leggete la parte sul prodotto tenendolo presente.
Il Regno Unito: l'asticella è «altamente efficace»
L'obbligo si trova nella section 12 dell'Online Safety Act 2023. Per i contenuti più dannosi, il fornitore deve «usare la verifica dell'età o la stima dell'età (o entrambe) per impedire ai minori di qualsiasi età di imbattersi in contenuti di priorità primaria dannosi per i minori». E il controllo deve essere «di natura tale, e usato in modo tale, da essere altamente efficace nel determinare correttamente se un determinato utente sia o meno un minore».
La section 230 definisce i due termini. La verifica dell'età «indica qualsiasi misura progettata per verificare l'età esatta degli utenti» di un servizio soggetto alla legge. La stima dell'età «indica qualsiasi misura progettata per stimare l'età o la fascia d'età degli utenti». Chiude anche la scorciatoia più facile: «Una misura che richiede all'utente di dichiarare da sé la propria età (senza altro) non va considerata verifica o stima dell'età.»
Ofcom, l'autorità britannica per le comunicazioni, spiega l'asticella nelle sue linee guida sulla verifica dell'età altamente efficace per i servizi della Part 3 (la versione aggiornata è datata 24 aprile 2025). La sezione 3 fornisce «un elenco non esaustivo» dei metodi che ritiene in grado di essere altamente efficaci:
| Metodo nell'elenco di Ofcom | Ruolo di un documento d'identità |
|---|---|
| Open banking | Nessuno |
| Corrispondenza con un documento d'identità con foto (photo-ID matching) | Sì, il documento è la prova |
| Stima facciale dell'età | Nessuno |
| Controlli dell'età dell'operatore mobile | Nessuno |
| Controlli con carta di credito | Nessuno |
| Stima dell'età basata sull'e-mail | Nessuno |
| Servizi di identità digitale | Spesso, nel momento in cui l'identità viene verificata la prima volta |
Ofcom descrive così la corrispondenza con un documento con foto: «funziona acquisendo le informazioni rilevanti da un documento d'identità con foto caricato e confrontandole con un'immagine dell'utente al momento del caricamento, per verificare che si tratti della stessa persona».
La stessa sezione elenca ciò che non basta, tra cui «chiedere all'utente di inserire la propria data di nascita senza ulteriori prove a conferma di questa informazione». Una data di nascita digitata è un'autodichiarazione. Una data di nascita letta da un documento è una prova, e il resto delle linee guida di Ofcom riguarda quanto debba essere buona quella prova.
L'UE: un blueprint basato sulla prova dell'età
Sul versante europeo, la Commissione ha pubblicato la prima versione di un blueprint per la verifica dell'età il 14 luglio 2025. Con le sue parole, il blueprint «fornisce un metodo che consente agli utenti di dimostrare di avere più di 18 anni quando accedono a contenuti per adulti soggetti a limitazioni, come la pornografia online, senza rivelare nessun'altra informazione personale».
Il progetto separa il controllo dall'uso. L'«età dell'utente sarà verificata dall'emittente usando dati personali dettagliati, come la data di nascita. I servizi online, invece, riceveranno solo una prova che l'utente ha più di 18 anni, senza altri dati personali».
I documenti d'identità entrano al primo passaggio. La scheda della Commissione sul blueprint indica come fonti di una prova dell'età «le eID nazionali, i passaporti e le carte d'identità, app preinstallate con informazioni sull'età, come le app bancarie, o un'attivazione offline tramite terzi, come l'ufficio postale». E aggiunge che «nell'ottobre 2025 è stata pubblicata una seconda versione del blueprint con un metodo basato su passaporto e carta d'identità per generare una prova dell'età».
In entrambi i casi, quindi, un documento è un input accettato. In nessuno dei due la sola foto di un documento costituisce l'intero controllo.
Cosa prova una scansione, e cosa no
La scansione di un documento risponde bene a una domanda: che cosa dice questo documento? Legge la data di nascita, la data di scadenza, il tipo di documento e la zona a lettura ottica (MRZ), e può dirvi se le cifre di controllo di quella zona tornano. È la parte «acquisire le informazioni rilevanti» della descrizione di Ofcom.
Non risponde alle altre domande che un controllo dell'età deve coprire:
- La persona è il titolare? La sezione di Ofcom sulla robustezza nomina il caso ovvio: «un utente minore che carica l'immagine di un documento che non gli appartiene». La sua risposta è che «richiedere una foto dell'utente al momento del caricamento del documento, nella corrispondenza con il documento con foto, aiuta a verificare che il documento appartenga a quell'utente».
- La persona è presente? «Il rilevamento della vitalità offre un'ulteriore garanzia che un utente minore non abbia caricato la foto di un adulto, assicurando che l'utente sottoposto alla verifica dell'età sia presente nel momento in cui il controllo viene eseguito.»
- Il documento è autentico? «Un controllo robusto con documento con foto non dovrebbe poter essere aggirato facilmente; per questo un metodo basato su documento con foto dovrebbe saper rilevare documenti falsificati o manipolazioni che un minore potrebbe creare o procurarsi.»
Nessuna di queste è OCR. Leggere un documento e verificarlo sono lavori separati, svolti da strumenti separati, e un controllo dell'età basato sui documenti ha bisogno di entrambi. La fase di lettura vi dà dati affidabili sul documento; il confronto facciale, il controllo di vitalità e il controllo di autenticità vi dicono se potete fidarvi del documento e della persona.
Da una data di nascita a «maggiorenne o no»
Una volta letta la data di nascita, il calcolo dell'età è breve ma facile da sbagliare. Sottrarre gli anni non basta: chi è nato il 20 novembre 2008 il 10 novembre 2026 ha 17 anni, non 18. Confrontate anche mese e giorno.
from datetime import date
def age_on(birth_iso: str, on: date) -> int:
"""Whole years completed on the day `on`, from a YYYY-MM-DD date of birth."""
born = date.fromisoformat(birth_iso)
years = on.year - born.year
if (on.month, on.day) < (born.month, born.day):
years -= 1 # the birthday has not come yet this year
return years
def is_over(birth_iso: str, threshold: int, on: date) -> bool:
return age_on(birth_iso, on) >= threshold
print(age_on("2008-11-20", date(2026, 11, 10))) # 17
print(is_over("2008-11-20", 18, date(2026, 11, 20))) # True
In pratica contano alcuni dettagli:
- Usate la data del controllo, in un solo fuso orario. «Oggi» sul server e «oggi» per l'utente possono differire intorno alla mezzanotte. Scegliete un criterio e registrate la data usata.
- Il 29 febbraio. Con il confronto qui sopra, chi è nato il 29 febbraio compie gli anni il 1° marzo negli anni non bisestili. Se il vostro ordinamento lo definisce in altro modo, cambiate quell'unico ramo.
- Una data mancante non è una risposta. Se la scansione non restituisce la data di nascita, il risultato è «impossibile verificare», mai «maggiore di 18 anni».
- La scadenza è una domanda a parte. Se un documento scaduto sia una prova accettabile dipende dalla vostra policy: leggete la data di scadenza e decidetelo in modo esplicito.
Conservate la risposta, non il documento
Il progetto della Commissione invia ai servizi «solo una prova che l'utente ha più di 18 anni». La stessa idea funziona nel vostro sistema: una volta fatto il controllo, ciò che vi serve è un booleano e una data, non l'immagine di un passaporto.
La sezione di Ofcom sulla privacy va nella stessa direzione. Ricorda ai fornitori che «tutti i metodi di verifica dell'età comportano un trattamento di dati personali e dovrebbero seguire un approccio di protezione dei dati fin dalla progettazione», e cita la minimizzazione dei dati e la limitazione della conservazione tra i principi da seguire.
Un record minimo ha questo aspetto:
{
"user_id": "u_3f9c",
"check": "age_over_18",
"result": true,
"checked_on": "2026-11-10",
"method": "photo_id_matching"
}
Nessuna immagine, nessun numero di documento, nessuna data di nascita. Se una legge vi obbliga a conservare di più, conservate esattamente quello, in un solo archivio con una propria data di cancellazione.
Il ruolo di doc.cheap
doc.cheap legge passaporti, carte d'identità e patenti di guida e restituisce in JSON ciò che vi è stampato. Per un controllo dell'età i campi utili sono holder.birth_date, una data ISO YYYY-MM-DD oppure null, più document.expiry_date, document.is_expired e mrz.status: così la data che passate ad age_on viene da una lettura che potete verificare.
È un servizio di lettura, non di verifica. Nello scenario di solo riconoscimento il campo authenticity.overall della risposta vale not_checked, e il confronto facciale e il controllo di vitalità restano agli strumenti pensati per questo. Inoltre non conserva nulla che non chiediate: retain_hours: 0 su una chiave live non scrive alcuna riga, come spiega la guida alla conservazione della cronologia. L'immagine in sé non viene mai salvata.
Per provare la fase di lettura prima di progettare il resto, partite dall'API OCR per passaporti gratuita. Se state scegliendo un fornitore, il confronto delle API OCR per passaporti mette fianco a fianco i prezzi pubblicati.
Questo è un riepilogo tecnico, non una consulenza legale.
Una domanda per voi: quale parte del vostro controllo dell'età ha richiesto più tempo per essere messa a punto – la lettura, il confronto facciale o il record che conservate? Raccontatecelo nei commenti qui sotto.