Leggere la banda MRZ
Strumento per leggere la banda MRZ, la zona a lettura ottica in fondo a passaporti e carte d'identità: carichi la foto e ricevi i campi decodificati — tipo di documento, nazione, numero, nome, nazionalità, date. Utilizzabile solo per verifiche di identità (KYC) con il consenso del titolare del documento.
Esegui online
Esegui questo sui nostri server con il tuo account. Gli strumenti gratuiti girano nel tuo browser; questo viene addebitato sul tuo saldo KIT al prezzo indicato sopra.
Che cos'è la MRZ
La MRZ (Machine Readable Zone) è quella sequenza di due o tre righe di caratteri e simboli «<» stampata in fondo a passaporti e alle carte d'identità elettroniche. Codifica in modo standard i dati principali del documento e include cifre di controllo per verificare che la lettura sia corretta. Leggerla a mano è facile sbagliare; qui la decodifichiamo e ti restituiamo i campi già separati, con il controllo di coerenza sulle cifre previste dallo standard.
Uso consentito e privacy
Vale la stessa regola del documento d'identità: uso esclusivo per KYC con il consenso della persona, mai per sorveglianza o identificazione all'insaputa dell'interessato. L'immagine non viene conservata: si usa solo per la decodifica e si elimina subito dopo, nel rispetto del GDPR. Trattandosi di documenti di viaggio e identità, teniamo a essere espliciti su cosa succede al file, prima ancora di spiegare come funziona.
Come si usa e prezzo
Fotografi la pagina con la banda MRZ ben leggibile, carichi l'immagine dal browser o via API e ricevi i campi decodificati, pronti per un modulo di verifica o per precompilare l'anagrafica. Il prezzo è pubblicato e a consumo: $0.010 a richiesta più $0.0575 a immagine, senza abbonamento. È una funzione in beta: la banda va inquadrata dritta e nitida, e conviene verificare i campi critici come numero e scadenza.
Casi d'uso
Verifica documento in onboarding
Una piattaforma che richiede il KYC legge la MRZ del passaporto dell'utente consenziente e precompila l'anagrafica, evitando errori di trascrizione sul numero.
Check-in di viaggio
Una struttura decodifica la banda MRZ del documento dell'ospite, con il suo consenso, per registrare i dati richiesti senza digitarli a mano al banco.
Controllo di coerenza dei dati
Un ufficio confronta i campi decodificati dalla MRZ con quelli inseriti a mano nel modulo, sfruttando le cifre di controllo per scovare refusi.
Domande frequenti
Che cos'è esattamente la MRZ?
È la zona a lettura ottica in fondo a passaporti e carte d'identità elettroniche: due o tre righe di caratteri con i dati del documento e cifre di controllo. La decodifichiamo e restituiamo i campi separati.
Posso usarla su qualunque passaporto?
Solo per verifiche di identità (KYC) con il consenso del titolare. È vietato l'uso per sorveglianza o per identificare una persona senza la sua autorizzazione, esattamente come per il documento d'identità.
Sfrutta le cifre di controllo?
Sì: lo standard MRZ prevede cifre di controllo e le usiamo per verificare la coerenza della lettura, così è più facile accorgersi se un campo è stato decodificato male.
L'immagine resta memorizzata?
No: viene usata solo per la decodifica e poi eliminata, non la conserviamo. Il trattamento è conforme al GDPR, e su documenti di viaggio ci teniamo a dirlo chiaro.
Come faccio a ottenere una lettura pulita?
Inquadra la banda dritta, con buona luce e a fuoco, evitando riflessi sulla pagina plastificata. Essendo in beta, su numero e scadenza una verifica finale è sempre consigliata.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/ocr/mrz \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image":"https://ejemplo.com/imagen.jpg"}'const res = await fetch("https://api.kit.forhosting.com/ocr/mrz", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image": "https://ejemplo.com/imagen.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/ocr/mrz",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image": "https://ejemplo.com/imagen.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/ocr/mrz", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image":"https://ejemplo.com/imagen.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/imagen.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/ocr/mrz", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"image": "https://ejemplo.com/imagen.jpg"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "ocr.mrz",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_mb | 25 |
max_pages | 10 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
422 | task_failed | L'attività non è andata a buon fine: non ti viene addebitato nulla. |