ID
Scan
API de vérification d'identité NFC • Respect de la vie privée avant tout • Compatible API

Intégrez la vérification d'identité à votre propre logiciel.

Créez des demandes de vérification d'identité NFC sécurisées depuis votre propre système. Invitez les utilisateurs par e-mail ou SMS, ou envoyez-leur vous-même le lien généré. L'utilisateur scanne la puce NFC dans l'application mobile et vous récupérez uniquement les champs dont votre processus a besoin.

Vérification de la puce NFCLire les données DG1/DG2 et vérifier la puce du document.
Réduction des donnéesNe demandez que les champs et les validations nécessaires à votre flux de travail.
Propre flux de travailUtilisez des références externes pour relier les résultats à vos propres dossiers.
Exemple de flux
1POST /scan-requests
2Invite email / SMS / own channel
3App NFC + optional selfie check
4GET /scan-requests/{id}/details

Flux API

ID Scan est destiné aux éditeurs de logiciels et aux entreprises qui souhaitent intégrer une fonctionnalité de vérification d'identité sans avoir à développer eux-mêmes l'intégralité du processus de numérisation mobile.

1

Créer une demande

Créez une demande de numérisation depuis votre système d'administration. Ajoutez une référence externe, la langue, la date d'expiration, les paramètres de livraison, les champs requis et les vérifications.

2

Inviter l'utilisateur

Laissez ID Scan envoyer l'e-mail ou le SMS, ou utilisez votre propre canal de communication avec le lien de vérification reçu.

3

Scannez dans l'application

L'utilisateur ouvre l'application mobile, scanne la zone MRZ, lit la puce NFC et, s'il le souhaite, effectue une vérification en direct par selfie par rapport à la photo de profil du DG2.

4

Afficher le résultat

Récupérez l'état, les vérifications, les champs demandés et les informations d'audit via l'API. Seuls les champs configurés sont renvoyés.

URL de base et authentification

Les appels API sont envoyés à l'URL de base de l'API ID Scan et authentifiés à l'aide d'une clé API générée dans le portail ID Scan. La clé API est transmise via un en-tête de requête dédié et ne doit être utilisée qu'au niveau du serveur. Ne divulguez jamais les clés API dans le code front-end ou les applications mobiles.

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

Créer une requête et une réponse

Lorsqu'une demande de scan est créée, l'API renvoie l'identifiant de la demande, la clé de la demande, la date d'expiration et les liens de vérification. Utilisez l'URL Web renvoyée dans vos propres e-mails, SMS, portails ou workflows lorsque vous utilisez la livraison autonome. Sur les appareils mobiles, l'URL DeepLink permet d'ouvrir directement l'application.

{ "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 }

Options de livraison

Vous pouvez choisir la manière dont l'utilisateur reçoit la demande de vérification. Cela permet à ID Scan de s'intégrer aussi bien dans des flux de communication entièrement automatisés que dans des flux personnalisés.

E-mail de la plateforme

ID Scan envoie un e-mail d'invitation personnalisé contenant un lien de vérification sécurisé.

Plateforme SMS

ID Scan envoie le lien de vérification par SMS. Idéal pour les processus d'inscription axés sur le mobile.

Enlèvement en magasin

Votre système reçoit le lien et le transmet via votre propre service de messagerie électronique, par SMS, via votre portail ou via votre système de messagerie.

Statuts des demandes

Une demande de vérification passe par une série limitée d'états. Les intégrations peuvent utiliser ces états pour afficher la progression, déclencher des rappels ou déterminer si une nouvelle demande est nécessaire.

StatutDescription
requestedThe request has been created and is waiting for the user to start or complete the verification.
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.

Référence externe

Utilisez une référence externe pour associer une demande de vérification à l'un de vos clients, employés, dossiers, commandes ou enregistrements d'intégration. Cette même référence est renvoyée lorsque vous consultez les détails de la demande.

ID Client

Associez la demande à la fiche de votre client.

Numéro de dossier

Associez le résultat à un dossier Wwft, RH ou de conformité.

Numéro de commande ou d'opération

Utilisez cette référence pour poursuivre les flux de travail automatisés une fois la vérification terminée.

Champs obligatoires

ID Scan prend en charge la minimisation des données. Vous pouvez configurer précisément les champs qui doivent être renvoyés à votre système. L'utilisateur peut voir quelles données seront partagées avant la soumission.

ChampDescriptionSource
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

Chèques disponibles

Des vérifications peuvent être demandées dans le cadre du processus de vérification. Certaines sont des vérifications techniques NFC, tandis que d'autres concernent des règles métier, telles que l'âge minimum requis ou la vérification par selfie.

VérifierDescriptionRésultat renvoyé
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 }

Champs de résultat et de retour

L'interface de résultat renvoie le statut de la requête, le statut de la vérification, la référence externe, les champs d'identité sélectionnés, les images sélectionnées et les résultats de la vérification. Les champs qui n'ont pas été demandés ne sont pas renvoyés.

Situation de la demande

Demandées, terminées, expirées, supprimées ou ayant échoué, y compris les horodatages de création et d'achèvement.

Champs sélectionnés

Uniquement les données d'identité enregistrées, telles que le nom, la nationalité, la date de naissance ou la date d'expiration du document.

Contrôles et audits

État de lecture NFC, authentification de la puce, validité du document, vérification par selfie et données PDF/rapports (en option).

Champs d'image

Les champs d'image, tels que la photo d'identité DG2, l'image MRZ masquée et le selfie, sont renvoyés en ligne sous forme de données encodées en Base64 lorsqu'ils sont demandés. Les images ne sont pas renvoyées sous forme d'URL publiques.

Encodé en Base64

Utilisez la valeur de la donnée comme données d'image binaires encodées en Base64.

Type de contenu

Utilisez le type de contenu, par exemple image/jpeg, pour restaurer correctement l'image.

Uniquement sur demande

Les données d'image ne sont incluses que lorsque ce champ est explicitement demandé dans le modèle.

Masquage du numéro de document

Le numéro de document peut être renvoyé tel quel ou masqué. Le masquage permet de limiter la divulgation inutile des numéros de document tout en conservant la possibilité d'effectuer des vérifications de correspondance ou d'audit dans votre propre système.

ValeurOptionDescription
(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.

Exemple de requête API

L'exemple ci-dessous crée une demande de vérification, demande à ID Scan d'envoyer l'invitation par e-mail et renvoie uniquement les champs et les vérifications sélectionnés.

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 } } }

Exemple de résultat

Une fois l'opération terminée, votre système peut récupérer le résultat à l'aide de l'identifiant ou de la clé de la requête. La référence externe peut être utilisée pour relier le résultat à votre propre système.

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_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" } } }, "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" }

Conservation des données et confidentialité

Les paramètres de conservation peuvent être configurés pour chaque locataire. Les données de vérification peuvent être supprimées après une période déterminée, après leur consultation ou conformément à la politique de confidentialité que vous avez définie. Cela permet de limiter le stockage inutile de données d'identité sensibles.

Jours fixes

Supprimer les données de vérification après un nombre de jours défini.

Après avoir lu

Marquer les données comme lues dès leur récupération et programmer leur suppression après ce moment.

Paramètres du portail et de l'API

Si nécessaire, utilisez des paramètres de conservation distincts pour les flux de travail du portail et ceux de l'API.

Critères d'évaluation supplémentaires

Outre la création et la récupération des demandes, les intégrations permettent de renvoyer des invitations ou de supprimer une demande. La suppression d'une demande peut être utile lorsqu'un workflow est annulé ou qu'une vérification n'est plus nécessaire.

Renvoyer l'invitation

POST /api/scan-requests/{id}/resend

Demande de suppression

DELETE /api/scan-requests/{id}

Montrer les détails

GET /api/scan-requests/{id}/details

Mode test

Le mode test permet de valider l'ensemble du flux d'intégration avant la mise en production. Les requêtes de test sont signalées par balise « IsTest » dans la réponse de l'API, ce qui permet à votre système de distinguer les données de test des flux de production.

Tests en toute sécurité

Validez la création des demandes, leur transmission, l'analyse des applications et la récupération des résultats sans recourir aux workflows de production.

Visible en réponse

La réponse à la requête de création contient le paramètre IsTest, ce qui permet de repérer facilement les requêtes de test.

Mise en ligne ultérieure

Commencez par configurer une clé API de test ou un tenant de test, puis passez à la vérification en production une fois la validation effectuée.

Échec et résultats incomplets

Toutes les demandes ne aboutissent pas nécessairement à une vérification réussie. Un utilisateur peut interrompre le processus, la demande peut expirer ou la lecture NFC peut échouer. Utilisez les champs Status, HasResult, IsSuccess et les champs de vérification pour déterminer le résultat final.

{ "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" } } } }

Prêt à intégrer la vérification d'identité par NFC ?

Créez un compte gratuit, générez une clé API et testez l'ensemble du processus avant la mise en service.