Passer au contenu principal
POST
curl

Services basés sur l’adresse

Pour les services qui valident une adresse résidentielle ou une adresse de fourniture d’un service public, vous pouvez envoyer une seule address, et Didit la découpera avant de traiter la vérification. Pour obtenir le meilleur taux de correspondance, envoyez directement les champs d’adresse structurés de Didit : Les champs structurés remplacent la valeur unique address. postal_code est accepté comme alias de address_element_5.

Consentement

Certains services de base de données exigent le consentement explicite de l’utilisateur final avant que le fournisseur puisse être interrogé. Le catalogue de services marque ces lignes avec requires_consent=true. Envoyez consent=true lorsque le consentement de l’utilisateur s’applique aux services sélectionnés. Didit rejette la requête avant tout appel au fournisseur et tout événement de facturation si un service sélectionné exige un consentement que vous n’envoyez pas.

Envoi de fichiers

La validation en base de données utilise multipart/form-data. Les services biométriques qui exigent selfie l’exposent sous forme de champ d’envoi de fichier dans l’interface de test de l’API, ce qui vous permet de sélectionner directement une image au lieu de coller un chemin ou une chaîne base64. Dans votre code, envoyez le fichier avec la syntaxe multipart habituelle :

Erreurs de validation

Didit valide les champs obligatoires, la structure de l’adresse et les formats propres à chaque service avant d’appeler le fournisseur. Par exemple, les services de registre chinois comme chn_national_id et chn_passport_verification attendent full_name dans son écriture chinoise d’origine, et chn_national_id exige en plus un numéro d’identité national chinois valide de 15 ou 18 caractères, avec une clé de contrôle correcte. Si une requête ne peut pas être exécutée, l’API renvoie des erreurs de champ explicites et aucune consommation n’est facturée. Si un fournisseur échoue après la vérification préalable, la réponse contient validation_errors, et les requêtes API enregistrées conservent ces erreurs dans le résultat de validation en base de données.

Données rejetées et résultats indisponibles

Lorsqu’aucun service ne renvoie de résultat exploitable, examinez chaque entrée de validation_errors avant de décider si vous devez réessayer. Le statut HTTP seul ne détermine pas si une nouvelle tentative est appropriée. Une réponse 400 avec code: "provider_rejected_input" et retryable: false signifie que chaque tentative n’ayant pas abouti à une réponse a explicitement refusé les données fournies. Corrigez les données fournies avant de réessayer. Ces tentatives ne sont pas facturées. Une réponse 502 avec code: "empty_provider_response" et retryable: true signifie que le service n’a pas pu produire de résultat exploitable pour une autre raison. Cela inclut une donnée refusée suivie d’un repli indisponible, ou d’un repli qui ne fournit aucune explication. Réessayez plus tard ; la réponse n’établit pas que la donnée est erronée. Si une base de données continue d’échouer, Didit envoie un e-mail aux organisations qui l’ont utilisée récemment lorsque l’interruption se prolonge, puis de nouveau lorsque des vérifications réelles confirment qu’elle répond à nouveau, voir Notifications de disponibilité. Lorsque seuls certains services sélectionnés échouent, la requête aboutit malgré tout : la réponse est 200 et les services en échec sont listés sous database_validation.errors[], chacun avec les mêmes champs code et retryable. database_validation.status reflète alors les services qui ont répondu et peut valoir Approved. Consultez donc errors[] sur chaque réponse, et pas seulement en cas de 4xx ou 5xx. Un service signalé à cet endroit est absent de validations et de services_used, et n’est pas facturé ; réessayez ce service seul. D’autres erreurs 502 peuvent nécessiter une donnée corrigée. Par exemple, provider_invalid_input et provider_validation_error indiquent que les données ont été rejetées par la source ; la requête ne doit pas être réessayée sans modification, même lorsque l’ancienne réponse omet retryable. Les consignes de nouvelle tentative pour empty_provider_response ne s’appliquent pas à ces codes. Un résultat définitif indiquant une absence de correspondance est une vérification terminée, et non une panne de disponibilité.

Autorisations

x-api-key
string
header
requis

La clé API de votre application, issue de Développeurs -> Clés API dans la Business Console. La clé principale dispose d'un accès complet. Une clé nommée peut être restreinte : aucun, lecture ou écriture par ressource, limitée à certains workflows ou aux sessions approuvées, à une liste d'adresses IP et à une date d'expiration. 401 signifie que la clé est incorrecte, révoquée ou expirée ; 403 signifie qu'aucune clé n'a été envoyée, que la clé n'a pas accès à cette ressource ou action, ou que la requête provient d'une adresse hors de sa liste d'IP ; 404 sur une route de session signifie que la session est hors des workflows ou des statuts de la clé. Une clé sans accès aux médias reçoit les URL d'images, de vidéos et de PDF à null, et une clé sans accès en écriture aux sessions reçoit les liens et tokens de session à null. Voir https://docs.didit.me/console/api-keys.

Corps

issuing_state
string
requis

Code pays ISO 3166-1 alpha-3 du registre auprès duquel effectuer la validation (par exemple BRA, ESP, COL). Détermine les services disponibles. Les codes non pris en charge renvoient 400 avec la liste complète des options valides.

Exemple:

"BRA"

services
string[]

service_id du catalogue à exécuter pour ce pays (par exemple ["bra_cpf"]). Accepte également une chaîne unique ou une chaîne séparée par des virgules/encodée en JSON. S'il est omis ou vide, exactement un service par défaut est exécuté — le service en production le plus anciennement établi pour le pays ; les services plus récents, biométriques et à l'usage doivent être nommés explicitement. Envoyer services fait basculer la réponse vers le format étendu (ajoute services_used et match_score). Chaque identifiant doit exister et être actif pour l'issuing_state ; les services nécessitant un onboarding renvoient 400 jusqu'à leur activation pour votre organisation. Découvrez les services disponibles par pays via GET /v1/organization/database-validation-countries/ (un endpoint du catalogue non documenté dans cette spécification) ou dans l'éditeur de workflow de la Business Console.

Exemple:
validation_type
string
obsolète

OBSOLÈTE. Accepté pour des raisons de rétrocompatibilité mais ignoré — le champ validation_type de la réponse est désormais déterminé par le nombre de services ayant obtenu une correspondance complète. Utilisez services pour cibler des services spécifiques.

Définir sur true lorsque l'utilisateur final a explicitement consenti aux services de validation sélectionnés. Requis pour les services marqués avec requires_consent=true dans le catalogue — sans lui, ces services renvoient une erreur 400 avec services_requiring_consent.

identification_number
string

Numéro d'identification universel — mappé automatiquement au champ propre au pays approprié, ce qui vous permet de l'utiliser à la place de personal_number/tax_number/document_number : ARG→document_number (DNI), BOL→document_number (CI), BRA→tax_number (CPF, 11 chiffres), CHL→personal_number (RUT), COL→personal_number (Cédula), CRI→personal_number (Cédula), DOM→personal_number (Cédula, 11 chiffres), ECU→personal_number (Cédula, 10 chiffres), ESP→personal_number (DNI/NIE), GTM→document_number (DPI), HND→document_number (DNI), MEX→personal_number (CURP, 18 caractères), PAN→personal_number (Cédula), PER→personal_number (DNI, 8 chiffres), PRY→document_number (CI), SLV→document_number (DUI), URY→personal_number (CI), VEN→document_number (Cédula). Il n'écrase jamais un champ propre au pays explicitement fourni.

first_name
string

Le prénom de l'individu. Requis par certains services/pays.

Exemple:

"John"

last_name
string

Le nom de famille de l'individu. Requis par certains services/pays.

Exemple:

"Doe"

middle_name
string

Deuxième prénom, utilisé par les services de certains pays (AUS, NZL, …).

full_name
string

Nom complet — certains services l'acceptent à la place du prénom/nom (par ex. les services CHN, qui comparent le nom dans le système d'écriture natif).

date_of_birth
string<date>

Date de naissance, YYYY-MM-DD. Requise par de nombreux services.

Exemple:

"1980-01-01"

personal_number
string

Identifiant personnel unique émis par le gouvernement. Utilisé par : CHL (RUT), COL (Cédula), CRI, DOM, ECU, ESP (DNI/NIE), MEX (CURP), PAN (Cédula), PER (DNI), URY. Envisagez d'utiliser plutôt identification_number.

tax_number
string

Identifiant fiscal. Utilisé par : BRA (CPF, 11 chiffres). Envisagez d'utiliser identification_number à la place.

document_number
string

Numéro de document. Utilisé par : ARG (DNI), BOL (CI), GTM (DPI), HND (DNI), PRY (CI), SLV (DUI), VEN (Cédula). Envisagez d'utiliser identification_number à la place.

document_type
enum<string>

Type de document en cours de validation : P passeport, DL permis de conduire, ID pièce d'identité nationale, RP titre de séjour (plus SSC, HIC, WP, TC, VISA, PSC, BC, OTHER). Requis par certains services (ex. ESP).

Options disponibles:
P,
DL,
ID,
RP,
SSC,
HIC,
WP,
TC,
VISA,
PSC,
BC,
OTHER
expiration_date
string<date>

Date d'expiration du document, YYYY-MM-DD. Requise pour la validation ESP (Espagne).

Exemple:

"2030-01-15"

date_of_issue
string<date>

Date de délivrance du document, YYYY-MM-DD (fecha de expedición). Requise pour la validation de la cédula COL (Colombie).

Exemple:

"2015-06-20"

nationality
string

Nationalité au format ISO 3166-1 alpha-3. Requise par certains services.

gender
enum<string>

Genre : M, F, ou X (autre/inconnu). Requis pour la validation RENAPER de l'Argentine (arg_renaper).

Options disponibles:
M,
F,
X
address

Adresse résidentielle. Privilégiez l'objet structuré {"street_1":"123 Main St","street_2":"Apt 4B","city":"Springfield","region":"IL","postal_code":"62701","country":"US"} ; une chaîne complète sur une seule ligne est toujours acceptée. Requis par les services de vérification d'adresse ; lorsqu'un service définit des exigences d'adresse, les éléments manquants renvoient 400 avec address_fields_required_by.

address_element_1
string

Adresse postale comprenant le numéro et le type de voie. En cas d'omission, dérivée de address.

address_element_2
string

Appartement, unité, bâtiment, étage ou ligne d'adresse supplémentaire. À envoyer uniquement lorsque vous disposez explicitement de cette information.

address_element_3
string

Ville, banlieue, district, localité ou quartier. Si elle est omise, dérivée de address.

address_element_4
string

État, province, région ou ville. Si omis, dérivé de address.

address_element_5
string

Code postal. postal_code est accepté comme alias.

postal_code
string

Code postal pour les services basés sur l'adresse (alias de address_element_5).

driver_license_number
string

Numéro de permis de conduire pour les services gouvernementaux de vérification de documents (AUS, NZL, IND).

driver_license_card_number
string

Numéro de carte physique du permis de conduire, lorsqu'il est requis séparément du numéro de permis (AUS).

driver_license_state
string

État ou territoire de délivrance du permis de conduire (AUS).

driver_license_version
string

Code de version du permis de conduire (NZL).

passport_number
string

Numéro de passeport pour les services gouvernementaux de vérification de passeport (AUS, NZL, IND, CHN).

passport_expiration_date
string<date>

Date d'expiration du passeport, YYYY-MM-DD, pour les services de vérification de passeport.

passport_file_number
string

Numéro de dossier de passeport (IND).

passport_issue_country
string

Pays de délivrance du passeport (ISO 3166-1 alpha-3) pour les services de vérification de passeport.

medicare_card_number
string

Numéro de carte Medicare (AUS).

immi_card_number
string

Numéro de l'ImmiCard australienne.

immi_card_expiry_date
string<date>

Date d'expiration de l'ImmiCard australienne.

citizenship_certificate_number
string

Numéro de certificat de citoyenneté (AUS).

birth_registration_number
string

Numéro d'enregistrement de l'acte de naissance (AUS).

birth_registration_date
string<date>

Date d'enregistrement de l'acte de naissance (AUS).

birth_registration_state
string

État d'enregistrement de l'acte de naissance (AUS).

marriage_certificate_number
string

Numéro de certificat de mariage (AUS).

change_of_name_certificate_number
string

Numéro de certificat de changement de nom (AUS).

first_partner_name
string

Prénom du partenaire sur un acte de mariage (AUS).

last_partner_name
string

Nom de famille du conjoint sur un certificat de mariage (AUS).

voter_id
string

Numéro d'électeur (IND EPIC, IRL).

epic_card
string

Numéro de carte d'électeur EPIC (Inde).

pan
string

PAN (Permanent Account Number) pour l'Inde.

national_id
string

Numéro national d'identité (CHN, MYS, KEN, KHM, NGA, ZAF, …).

cic
string

Código de Identificación de Credencial (CIC) INE/IFE mexicain, 9 chiffres. Utilisé par le service de validité de la carte MEX INE (mex_ine_vigencia).

identificador_ciudadano
string

Identificador del Ciudadano INE mexicain (9 chiffres). Utilisé avec cic pour les modèles INE modernes (E/F/G/H) dans mex_ine_vigencia.

ocr
string

Numéro OCR INE mexicain (13 chiffres, au verso de la carte). Utilisé avec cic pour le modèle D dans mex_ine_vigencia.

voter_number
string

Clave de Elector INE mexicaine (18 caractères). Utilisée avec emission_number pour les anciens modèles IFE (A/B/C) dans mex_ine_vigencia.

emission_number
string

Número de Emisión INE mexicain. Utilisé avec voter_number pour les anciens modèles IFE (A/B/C) dans mex_ine_vigencia.

bvn
string

Numéro de vérification bancaire nigérian.

bank_card_number
string

Numéro de carte bancaire (vérification de carte bancaire CHN).

company_registration_number
string

Numéro d'immatriculation de l'entreprise tel que délivré par le registre des sociétés : le CNPJ au Brésil (par ex. 11222333000181), le numéro d'immatriculation en Afrique du Sud (par ex. 1936/007721/06). Requis par les services de registre des sociétés et de dirigeants d'entreprise (bra_company_registry, bra_company_directors, zaf_company_registry, zaf_company_directors).

company_name
string

Raison sociale enregistrée, recoupée avec l'entrée du registre. Facultatif pour zaf_company_registry.

initials
string

Les initiales de la personne telles qu'imprimées sur le document. Requises par zaf_drivers_license ; acceptées par zaf_bank_account_holder.

licence_number
string

Numéro de permis de conduire tel qu'imprimé sur la carte, pour zaf_drivers_license. Lorsqu'il est omis, document_number est utilisé.

refugee_file_number
string

Numéro de dossier de réfugié délivré par le Department of Home Affairs d'Afrique du Sud. Requis par zaf_refugee.

bank_name
string

Nom de la banque détenant le compte. Requis par zaf_bank_account_holder.

bank_account_number
string

Numéro de compte bancaire. Requis par zaf_bank_account_holder ; accepté par zaf_fraud_prevention.

account_type
string

Type de compte bancaire pour zaf_bank_account_holder : current, savings, transmission, subscriptionShare ou notKnown, insensible à la casse. Toute autre valeur renvoie 400. Omettez-le si vous ne connaissez pas le type : la vérification croisée du type de compte est alors indiquée comme non confirmée.

phone_number
string

Numéro de téléphone mobile de contact, pour les services effectuant des vérifications croisées de joignabilité (zaf_bank_account_holder, zaf_fraud_prevention, zaf_refugee).

right_thumb
string

Empreinte du pouce droit encodée en Base64 pour zaf_dha_fingerprint_match, avec left_thumb ou seule.

left_thumb
string

Empreinte du pouce gauche encodée en Base64 pour zaf_dha_fingerprint_match, avec right_thumb ou seule.

score_level
integer

Niveau de score biométrique minimum pour zaf_criminal_face_screening. La valeur par défaut est 3.

max_matches
integer

Nombre maximal de correspondances candidates renvoyées par zaf_criminal_face_screening. Vaut par défaut 1.

vehicle_register_number
string

Numéro d'immatriculation du véhicule. Requis, avec vehicle_licence_plate et vin, par zaf_vehicle_ownership.

vehicle_licence_plate
string

Numéro de plaque d'immatriculation du véhicule. Requis, avec vehicle_register_number et vin, par zaf_vehicle_ownership.

vin
string

Numéro d'identification du véhicule (VIN ou numéro de châssis). Requis, avec vehicle_register_number et vehicle_licence_plate, par zaf_vehicle_ownership.

ssn
string

Numéro de sécurité sociale (États-Unis).

phone
string

Numéro de téléphone pour les services de Vérification du téléphone.

landline
string

Numéro de ligne fixe pour les services de vérification de téléphone.

email
string<email>

Adresse e-mail pour les services de vérification d'identité.

country_of_residence
string

Pays de résidence au format ISO 3166-1 alpha-2. Utilisé par les services mondiaux d'enrichissement d'identité (par ex. glb_identity_enrichment) pour cibler la recherche.

Exemple:

"US"

partial_match_action
enum<string>
défaut:NO_ACTION

Action effectuée par un partial_match sur database_validation.status. Par défaut : NO_ACTION (le statut reste Approved, avec un avertissement).

Options disponibles:
DECLINE,
NO_ACTION
no_match_action
enum<string>
défaut:DECLINE

Action effectuée par un no_match sur database_validation.status. Par défaut : DECLINE.

Options disponibles:
DECLINE,
NO_ACTION
save_api_request
boolean
défaut:true

Conserver la validation en tant que session (visibilité dans la console, endpoint de décision, webhook status.updated). Modifie également le format de réponse de validations : des objets par service lorsque true (par défaut), une table de champs fusionnée lorsque false.

vendor_data
string

Votre identifiant pour l'utilisateur validé ; renvoyé en écho et conservé avec la session.

metadata
object | null

JSON libre stocké avec la requête et renvoyé en écho.

Réponse

Validation terminée — au moins un service sélectionné a renvoyé un résultat exploitable. Inspectez database_validation.match_type pour le résultat global, validations pour les comparaisons de champs par service et les outcome_codes, et errors (le cas échéant) pour les services en échec.

request_id
string<uuid>

Identifiant de session persistante lorsque save_api_request=true (utilisable avec GET /v3/session/{sessionId}/decision/) ; sinon un UUID de corrélation temporaire.

database_validation
object
vendor_data
string | null

Valeur renvoyée de vendor_data que vous avez envoyé.

metadata
object | null

Écho des metadata que vous avez envoyées.

created_at
string<date-time>
Dernière modification le 7 novembre 2026