API för identitetsverifiering via NFC • Integritet i fokus • API-kompatibelt

Integrera ID-verifiering i din egen programvara.

Skapa säkra NFC-identitetsverifieringsförfrågningar från ditt eget system. Bjud in användare via e-post eller SMS, eller skicka den genererade länken själv. Användaren skannar NFC-chipet i mobilappen och du hämtar endast de fält som din process behöver.

Verifiering av NFC-chipLäs av DG1/DG2-data och kontrollera dokumentchipet.
DataminimeringBegär endast de fält och kontroller som behövs för ditt arbetsflöde.
Eget arbetsflödeAnvänd externa källor för att koppla resultaten till dina egna dokument.
Exempel på flöde
1POST /scan-requests
2Invite email / SMS / own channel
3App NFC + optional selfie check
4GET /scan-requests/{id}/details

API-flöde

ID Scan är utvecklat för programvaruleverantörer och organisationer som vill införa identitetsverifiering utan att själva behöva bygga upp hela flödet för mobilskanning.

1

Skapa en förfrågan

Skapa en skanningsbegäran från ditt backend-system. Ange en extern referens, språk, giltighetstid, leveransinställningar, begärda fält och kontroller.

2

Bjud in användaren

Låt ID Scan skicka e-postmeddelandet eller SMS:et, eller använd din egen kommunikationskanal med den returnerade verifieringslänken.

3

Skanna i appen

Användaren öppnar mobilappen, skannar MRZ-området, läser av NFC-chipet och kan vid behov genomföra en selfie-kontroll i realtid mot porträttfotot i DG2.

4

Hämta resultatet

Hämta status, kontroller, begärda fält och granskningsinformation via API:et. Endast konfigurerade fält returneras.

Bas-URL och autentisering

API-anrop skickas till ID Scan API:s bas-URL och autentiseras med hjälp av en API-nyckel som genererats i ID Scan-portalen. API-nyckeln skickas via en särskild förfrågningsrubrik och bör endast användas på serversidan. API-nycklar får aldrig exponeras i frontend-kod eller mobilappar.

Base URL https://api.id-scan.app Example request GET https://api.id-scan.app/api/scan-requests/{id}/details X-API-KEY: YOUR_API_KEY Accept: application/json

Skapa begäran och svar

När en skanningsförfrågan skapas returnerar API:et förfrågnings-ID, förfrågningsnyckel, giltighetstid och verifieringslänkar. Använd den returnerade WebUrl-länken i dina egna e-postmeddelanden, SMS, portaler eller arbetsflöden när du använder självleverans. På mobila enheter kan DeepLinkUrl öppna appen direkt.

{ "ScanRequestId": "2153ae29-0b77-4601-87b6-17ce9037ef3d", "Status": "requested", "LanguageCode": "nl", "ExternalReference": "customer-12345", "RequestKey": "ab6f1c05de29", "ExpiresAtUtc": "2026-05-28T06:58:17.9384521Z", "DeepLinkUrl": "idcheck://scan/ab6f1c05de29", "WebUrl": "https://id-scan.app/ab6f1c05de29", "IsTest": false }

Leveransalternativ

Du kan välja hur användaren ska ta emot verifieringsförfrågan. På så sätt kan ID Scan anpassas till både helt automatiserade och skräddarsydda kommunikationsflöden.

Plattformens e-post

ID Scan skickar ett e-postmeddelande med en inbjudan i företagets design och en säker verifieringslänk.

SMS-plattform

ID Scan skickar verifieringslänken via SMS. Praktiskt för registreringsprocesser där mobilen står i centrum.

Egen leverans

Ditt system tar emot länken och vidarebefordrar den via din egen e-post, SMS, portal eller meddelandesystem.

Begäranstatus

En verifieringsförfrågan går igenom ett fåtal olika statusar. Integreringar kan använda dessa statusar för att visa förloppet, skicka påminnelser eller avgöra om en ny förfrågan behövs.

StatusBeskrivning
requestedThe request has been created and is waiting for the user to start or complete the verification.
compliance_pendingThe identity verification has been completed and optional compliance screening is being processed.
completedThe user completed the flow. Use IsSuccess and the check fields to determine whether verification passed.
expiredThe request expired before the user completed the verification.
deletedThe request was deleted and is no longer available for completion.
failedThe request could not be completed successfully because of an error or failed verification step.

Extern referens

Använd en extern referens för att koppla en verifieringsförfrågan till din egen kund, anställd, dossier, order eller registrering vid kundregistrering. Samma referens returneras när du hämtar information om förfrågan.

Kund ID

Koppla förfrågan till din egen kund- eller klientpost.

Ärendenummer

Koppla resultatet till en Wwft-, HR- eller regelefterlevnadsdossier.

Order- eller arbetsflödes-ID

Använd referensen för att fortsätta de automatiserade arbetsflödena när verifieringen är klar.

Obligatoriska fält

ID Scan stöder dataminimering. Du kan ställa in exakt vilka fält som ska skickas tillbaka till ditt system. Användaren kan se vilka uppgifter som kommer att delas innan de skickas in.

FältBeskrivningKälla
surnameSurname / family name from the identity document.NFC DG1
given_namesGiven names from the identity document.NFC DG1
date_of_birthDate of birth. Can also be used for age checks.NFC DG1
date_of_expiryDocument expiry date.NFC DG1
document_numberDocument number. Can be returned full or masked depending on template settings.NFC DG1
document_typeDocument type, such as passport or identity card.NFC DG1
issuing_countryCountry that issued the document.NFC DG1
country_of_issueCountry of issue when available.NFC DG1
nationalityNationality from the identity document.NFC DG1
genderGender marker from the document, if requested.NFC DG1
photoPortrait photo from the NFC chip. Only return when explicitly needed.NFC DG2
mrz_masked_imageMasked MRZ image as proof of scan without exposing all MRZ data.Camera/MRZ
selfie_imageLive selfie image. Usually only included for manual review.Camera/selfie

Tillgängliga checkar

Kontroller kan begäras som en del av verifieringsprocessen. Vissa kontroller är tekniska NFC-kontroller, medan andra avser affärsregler, såsom lägsta ålder eller verifiering via selfie.

KontrolleraBeskrivningResultat
nfc_read_successIndicates whether the NFC chip was successfully read.true / false
chip_authentication_successIndicates whether chip authentication or chip verification succeeded.true / false
document_not_expiredChecks if the document expiry date is in the future.true / false
minimum_ageChecks whether the person meets a configured minimum age without necessarily returning the date of birth.{ required, passed }
sod_signature_validChecks the SOD signature when available.true / false
dg1_hash_validChecks whether DG1 data matches the signed document data.true / false
dg2_hash_validChecks whether the portrait photo data matches the signed document data.true / false
active_auth_okOptional active authentication result when supported by the document.true / false / not available
selfie_checkOptional live selfie verification matched against the DG2 portrait photo.{ requested, consent_given, passed, status, method }
compliance_screeningOptional PEP, sanctions and related person screening after the NFC identity verification has completed.{ requested, match_found, pep_match, sanctions_match, rca_match, highest_score, matches }

PEP- och sanktionskontroll

ID Scan kan vid behov kontrollera de verifierade identitetsuppgifterna mot register över politiskt utsatta personer (PEP), sanktionslistor och register över närstående personer. Detta underlättar arbetet med kundkännedom (KYC), bekämpning av penningtvätt (AML) och efterlevnad efter att dokumentverifieringen via NFC har slutförts.

PEP-screening

Kontrollera om den verifierade personen är en politiskt utsatt person.

Kontroll av sanktioner

Kontrollera om den verifierade personen förekommer i sanktionsrelaterade databaser.

Manuell granskning

Eventuella resultat bör alltid granskas manuellt innan åtgärder vidtas.

Resultat- och returfält

Resultatet innehåller begärandestatus, verifieringsstatus, extern referens, valda identitetsfält, valda bilder samt kontrollresultat. Fält som inte har begärts returneras inte.

Begäran status

Begärda, slutförda, utgångna, raderade eller misslyckade, inklusive tidsstämplar för när de skapades och slutfördes.

Valda fält

Endast registrerade personuppgifter såsom namn, nationalitet, födelsedatum eller giltighetstid för dokumentet.

Kontroller och revision

NFC-avläsningsstatus, chipautentisering, dokumentets giltighet, selfie-kontroll samt valfria PDF-filer och rapporteringsdata.

Bildfält

Bildfält som DG2-porträttfoto, maskerad MRZ-bild och selfie-bild returneras direkt som Base64-kodade data när de begärs. Bilderna returneras inte som offentliga webbadresser.

Base64-kodad

Använd datavärdet som binär bilddata kodad med Base64.

Innehållstyp

Använd content_type, till exempel image/jpeg, för att återge bilden korrekt.

Endast på begäran

Bilddata inkluderas endast om fältet uttryckligen anges i mallen.

Döljning av dokumentnummer

Dokumentnumret kan returneras i sin helhet eller i maskerad form. Genom att maskera numret minskar risken för att dokumentnumren exponeras i onödan, samtidigt som det fortfarande går att göra jämförelser eller revisionskontroller i ditt eget system.

VärdeAlternativBeskrivning
(empty)No maskingReturn the document number as read from the identity document. Only use when the full document number is required.
last4_visibleLast 4 visibleMask the document number and only return the last four characters, for example *****7P44.
first4_visibleFirst 4 visibleMask the document number and only return the first four characters.

Exempel på API-förfrågan

I exemplet nedan skapas en verifieringsförfrågan, ID Scan ombeds att skicka inbjudan via e-post och endast de valda fälten och kontrollerna returneras.

POST /api/scan-requests X-API-KEY: YOUR_API_KEY Content-Type: application/json { "externalReference": "customer-12345", "language": "en", "expiresInHours": 72, "delivery": { "mode": "platform", "channels": ["email"], "emailAddress": "client@example.com", "phoneNumber": null }, "template": { "fields": { "given_names": { "requested": true }, "surname": { "requested": true }, "document_number": { "requested": true, "masking": "last4_visible" }, "country_of_issue": { "requested": true }, "photo": { "requested": true }, "date_of_expiry": { "requested": true }, "nationality": { "requested": true }, "mrz_masked_image": { "requested": true } }, "checks": { "document_not_expired": true, "nfc_read_success": true, "chip_authentication_success": true, "selfie_check": true, "minimum_age": 18, "compliance_screening": true } } }

Exempel på resultat

När processen är klar kan ditt system hämta resultatet med hjälp av begäran-ID eller begäran-nyckel. Den externa referensen kan användas för att koppla resultatet till ditt eget system.

GET /api/scan-requests/{id}/details X-API-KEY: YOUR_API_KEY { "VerificationRequestId": "912eef5b-7ec7-4825-9125-b5a0e68eb878", "Name": "Jane Doe", "EmailAddress": "jane@example.com", "PhoneNumber": "31612345678", "PreferredLanguage": "en", "Status": "completed", "RequestType": "identity_check", "DeliveryMode": "platform", "DeliveryChannels": "sms,email", "ResultJson": { "fields": { "country_of_issue": "NLD", "nationality": "NLD", "given_names": "JANE MARIA", "surname": "DOE", "date_of_birth": "1985-04-12", "date_of_expiry": "2034-01-03", "document_number": "*****7P44", "photo": { "available": true, "content_type": "image/jpeg", "data": "/9j/..." }, "mrz_masked_image": { "available": true, "content_type": "image/jpeg", "data": "/9j/4AAQSQ==..." } }, "checks": { "nfc_read_success": true, "chip_authentication_success": true, "document_not_expired": true, "minimum_age": { "required": 18, "passed": true }, "selfie_check": { "requested": true, "consent_given": true, "passed": true, "status": "passed", "method": "on_device_face_match" } }, "compliance": { "requested": true, "provider": "OpenSanctions", "match_found": false, "pep_match": false, "sanctions_match": false, "rca_match": false, "highest_score": 0.00, "matches": [] } }, "CreatedDateTimeUtc": "2026-05-26T06:14:26", "InvitationSentDateTimeUtc": "2026-05-26T06:14:26", "CompletedDateTimeUtc": "2026-05-26T06:16:04", "HasResult": true, "IsSuccess": true, "NfcReadSuccess": true, "ChipAuthenticationSuccess": true, "Summary": "Passport chip successfully read", "DocumentType": "PASSPORT" }

Lagring och integritet

Lagringsinställningarna kan konfigureras per kund. Verifieringsdata kan raderas efter en viss tid, efter att de har lästs eller i enlighet med den integritetspolicy du har ställt in. Detta bidrar till att begränsa onödig lagring av känsliga identitetsuppgifter.

Fasta dagar

Ta bort verifieringsdata efter ett angivet antal dagar.

Efter att ha läst

Markera data som lästa när de hämtas och schemalägg radering efter det.

Portal- och API-inställningar

Använd vid behov separata lagringsinställningar för arbetsflöden i portalen och via API.

Ytterligare effektmått

Förutom att skapa och hämta förfrågningar kan integrationer skicka ut inbjudningar på nytt eller ta bort en förfrågan. Man kan ta bort en förfrågan när ett arbetsflöde avbryts eller när en verifiering inte längre behövs.

Skicka inbjudan på nytt

POST /scan-requests/{id}/resend

Radera beställning

DELETE /scan-requests/{id}

Läs mer

GET /scan-requests/{id}/details

Testläge

Testläget kan användas för att kontrollera att hela integrationsflödet fungerar som det ska innan det tas i drift. Testförfrågningar markeras med IsTest i API-svaret, så att ditt system kan skilja testdata från produktionsflödena.

Säker testning

Kontrollera att förfrågningar skapas, levereras, att appar skannas och att resultat hämtas utan att använda produktionsarbetsflöden.

Synligt som svar

Svaret på skapningsförfrågan innehåller IsTest, vilket gör det enkelt att identifiera testförfrågningar.

Gå live senare

Börja med att konfigurera en test-API-nyckel eller en testklient och övergå till verifiering i produktionsmiljön efter att allt har validerats.

Exempel på öppen källkod för .NET

Utforska vårt offentliga integrations exempel för .NET på GitHub. Exemplet visar hur man skapar verifieringsförfrågningar, hämtar verifieringsresultat och integrerar NFC-passverifiering i sina egna applikationer.

Fullständigt exempel

Inkluderar arbetsflöden för att skapa förfrågningar, hämta resultat och verifiera identitet med hjälp av C# och .NET.

NFC-verifiering

Lär dig hur du hanterar resultat från NFC-passverifiering, dokumentfält och verifieringskontroller.

Programvara med öppen källkod

Klonera repositoriet, testa API:et och använd det som utgångspunkt för din egen integration.

Misslyckanden och ofullständiga resultat

Det är inte alla förfrågningar som leder till en lyckad verifiering. En användare kan avbryta processen, förfrågan kan löpa ut eller NFC-avläsningen kan misslyckas. Använd Status, HasResult, IsSuccess och kontrollfälten för att fastställa det slutliga resultatet.

{ "VerificationRequestId": "912eef5b-7ec7-4825-9125-b5a0e68eb878", "Status": "completed", "HasResult": true, "IsSuccess": false, "NfcReadSuccess": false, "ChipAuthenticationSuccess": false, "Summary": "NFC chip could not be read", "DocumentType": null, "ResultJson": { "checks": { "nfc_read_success": false, "chip_authentication_success": false, "document_not_expired": null, "selfie_check": { "requested": true, "consent_given": false, "passed": false, "status": "not_completed", "method": "on_device_face_match" } } } }

Är du redo att integrera identitetsverifiering via NFC?

Skapa ett gratis konto, generera en API-nyckel och testa hela processen innan du går live.