Datautvinning
Ett OCR-API för ID-skanning som returnerar strukturerade fält, inte ett textblock.
ShieldID omvandlar ett statligt foto-ID till strukturerade data per fält: namn, födelsedatum, dokumentnummer, utgångsdatum, adress med mera, där varje fält har sin källa och sitt eget utfall. Ett API för datautvinning ur dokument och ett API för dokumentverifiering i samma session.
Vad du får tillbaka
Strukturerade fält, där dokumentet faktiskt har dem.
Inte alla dokument har alla fält. ShieldID returnerar det dokumentet har och markerar det som saknas.
- Fullständigt namn
- Som tryckt, och som kodat i streckkoden eller MRZ där dokumentet har en.
- Födelsedatum
- Läses från den tryckta sidan och korskontrolleras mot streckkoden och MRZ.
- Dokumentnummer
- Körkortsnummer eller passnummer, kontrollerat för intern konsekvens där utfärdarens format tillåter det.
- Utgångsdatum
- Läses från den tryckta sidan och streckkoden eller MRZ.
- Adress
- Läses från den tryckta sidan och streckkoden där den finns; kan jämföras med ett separat uppladdat adressdokument.
- Kön
- Läses där dokumentet trycker eller kodar det.
- Utfärdande jurisdiktion
- Identifieras utifrån streckkodens utfärdarkod när dokumentet har en igenkänd sådan, i mån av tillgång.
Tre källor, en jämförelse
Streckkod, MRZ och den tryckta framsidan läses avsiktligt, inte blandas av misstag.
Varje fält tillskrivs den källa det kom från. När två källor inte stämmer överens markeras det som en flagga på resultatet, inte som ett medelvärde av de två uppgifterna.
PDF417-streckkod
Baksidan av ett nordamerikanskt körkort eller ID-kort avkodas till strukturerade AAMVA-fält. När ett dokument har en streckkod har dess fält företräde framför den tryckta framsidan.
Pass-MRZ
Den maskinläsbara zonen lokaliseras, läses och valideras mot ICAO:s kontrollsiffer-formler som finns inbyggda i zonen. Ett lägsta giltighetsvärde, kontrollerat mot just det värdet, avgör om ett MRZ-läst fält överhuvudtaget är tillförlitligt – en zon som inte klarar sin egen kontrollsumma får inte åsidosätta en renare källa.
Strukturerad OCR och OCR av hela sidan på framsidan
Den tryckta sidan läses med hjälp av dokumentets egen layout när en sådan känns igen, med OCR av hela sidan som reserv, så att även ett obekant dokument ger läsbara fält.
Konflikter flaggas, de medelvärdesbildas inte
Ett namn eller födelsedatum som skiljer sig mellan framsidan, streckkoden och MRZ rapporteras som en avvikelse i resultatet. Inget i flödet väljer tyst en vinnare och döljer skillnaden.
Validering av MRZ-kontrollsumma
En maskinläsbar zon måste klara sin egen kontrollräkning innan vi litar på den.
Den maskinläsbara ICAO-zonen i ett pass innehåller kontrollsiffror av design. ShieldID validerar dem innan ett MRZ-läst fält betraktas som tillförlitligt.
En särskild detektor lokaliserar MRZ, en läsare extraherar tecknen och resultatet poängsätts för giltighet mot zonens egna kontrollsummeformler. Endast ett fält som klarar det lägsta giltighetsvärdet godtas med full prioritet; en zon som läses dåligt behandlas därefter i stället för att släppas igenom som om den vore ren.
Streckkod först
När källor överlappar vinner den mest tillförlitliga.
Samma fält kan finnas i streckkoden, i MRZ och på den tryckta framsidan. ShieldID löser det med samma ordning varje gång.
- PDF417-streckkod
- Pass-MRZ, när den har klarat sin kontrollsumma
- Strukturerad avläsning av den tryckta framsidan
- Reserv med OCR av hela sidan
Adressdokument
Ladda upp ett andra dokument och få en enkel adressjämförelse.
När en verifiering kräver adressbevis laddar den sökande upp ett separat dokument, och ShieldID läser det på samma sätt som legitimationen.
Adressdokumentet körs genom OCR och dess adress jämförs med adressen som lästs från ID-handlingen. Det är en enkel text- och tokenjämförelse, inte en separat dokumentklassificerare, och den körs bara när sessionen kräver det och ett dokument faktiskt har skickats in.
Maskering och hantering av personuppgifter
Extraherade data skyddas på samma sätt som bilderna.
Strukturerade fält omfattas av samma integritetskontroller som gäller för själva ID-bilderna.
Födelsedatum krypterat i vila
Födelsedatum lagras krypterat i vila; tjänsten startar inte utan att krypteringsnyckeln finns på plats.
Bilder rensas med timer
De tagna bilderna på dokument och selfie raderas automatiskt efter en kort tid, som standard sju dagar. En rensning körs med jämna mellanrum och igen kort efter varje omstart, så att en bild aldrig blir kvar efter den dag den ska vara borta.
Maskering av poäng på enheten
Där en matchnings- eller konfidensuppgift annars skulle visas på den sökandes egen telefon tar ShieldID bort den underliggande procentsatsen från meddelandet innan det visas, så att ett råpoäng aldrig exponeras utanför ditt konto.
Registret överlever bilderna
Bilderna raderas enligt schema. Att en verifiering har skett, och vad den kom fram till, finns kvar i ditt konto – och, för en Trust Ledger-integration, som en verifierad/misslyckad post i Activity Ledger (loggposter för ShieldID API-konton: Kommer snart).
Exempelresultat
Utfall per fält, i det format som API:et returnerar.
Namn, nummer och adresser nedan är påhittade för det här exemplet. Fältuppsättningen, källhänvisningen och utfallen har samma struktur som ett verkligt resultat.
| Fält | Värde | Källa | Utfall |
|---|---|---|---|
| person.name | "Priya Chandrasekaran" | barcode | match |
| person.dob | "1991-07-22" | barcode | match |
| person.document_number | "C4839201" | mrz | match |
| person.document_country | "CA" | barcode issuer code | match |
| person.address | "18 Spruce Ave, Ottawa ON" | barcode | match |
| identity.name_match | PASS | front vs barcode vs requester | PASS |
| checks.document_tamper | "no_indication" | advisory model | advisory — not gating |
// Sample result. Names, numbers and addresses are fictional.
{
"session_id": "ses_9f2c...sample",
"status": "VERIFIED",
"environment": "sandbox",
"person": {
"name": "Priya Chandrasekaran",
"dob": "1991-07-22",
"document_type": "DRIVERS_LICENCE",
"document_country": "CA",
"document_jurisdiction": "ON",
"address": "18 Spruce Ave, Ottawa ON"
},
"identity": {
"checks": ["name_match"],
"warnings": [],
"sources": {
"name": "barcode",
"dob": "barcode",
"address": "barcode"
}
},
"checks": {
"document": "PASS",
"identity": "PASS",
"document_tamper": "no_indication"
},
"completed_at": "2026-09-17T14:02:11Z"
}Integrationsanteckningar
Samma fält, oavsett var du läser resultatet.
Strukturerade fält är ingen separat produkt från verifieringssessionen. De kommer som en del av samma resultat.
- Fälten levereras i sessionsresultatet som du hämtar via API:et när en verifiering är klar.
- Samma resultat levereras till din endpoint via en signerad webhook när verifieringen är klar, så du slipper polla efter det.
- Varje fält är hänfört till sin källa och har sitt eget utfall, både i API-resultatet och i webhook-nyttolasten.
- Sandbox-sessioner returnerar samma fältstruktur som produktion, så du kan bygga din integration innan ett enda riktigt dokument har lästs.
Frågor
Raka svar om dataextraktion.
Se fälten själv
Kör en sandbox-verifiering och läs det strukturerade resultatet.
Skapa en sandbox-session, skanna ett dokument med din egen telefon och se varje fält, dess källa och dess utfall i svaret. Sandbox-sessioner debiteras aldrig.