---
title: Obtenir le processus
description: Récupérez l'état actuel et le résultat d'un processus de vérification.
canonical: https://developer.unico.io/fr/dual-api/developers/api-reference/web-sdk/get-process
locale: fr
generated_by: markdown-export
---

- [/fr/](/fr/)
- [Référence API](/fr/dual-api/developers/api-reference/)
- [Web et Natif](/fr/dual-api/developers/api-reference/web-sdk/)
- Obtenir le processus

**Sur cette pageObtenir le processusGETRécupérez un processus existant par son identifiant. Selon le contrat API, le résultat est déjà retourné de manière synchrone à la création du processus — utilisez ce endpoint pour les re-requêtes, l'audit et le support.

avertissementAvant de récupérer le processus, consultez notre configuration webhook et nos stratégies de repli — [cliquez ici](/fr/developers/webhooks-and-events/setup).
### Point de terminaison​

EnvironnementURL**Production**`GET https://api.idcloud.unico.app/client/v1/process/{processId}`**Sandbox**`GET https://api.idcloud.uat.unico.app/client/v1/process/{processId}`
### Requête​

En-têtes
En-têteValeur`Authorization``Bearer <access_token>`
Paramètres de chemin
ParamètreTypeRequisDescription`processId`string (UUID)ouiIdentifiant du processus retourné par [Créer un processus](/fr/dual-api/developers/api-reference/web-sdk/post-process).
### Exemple​

cURLNode.js```
curl -X GET https://api.idcloud.unico.app/client/v1/process/$PROCESS_ID \  -H "Authorization: Bearer $TOKEN"
```

```
import fetch from 'node-fetch';const res = await fetch(  `https://api.idcloud.unico.app/client/v1/process/${processId}`,  { headers: { Authorization: `Bearer ${accessToken}` } });const { process: proc } = await res.json();
```

### Réponses​

200 OK
```
{  "process": {    "id": "226fd950-4b80-4da6-a476-ba9d397ddc91",    "flow": "id_r2",    "callbackUri": "/",    "userRedirectUrl": "https://cadastro.uat.unico.app/flow?collect-data=true&dynamic-wrapper=true&id=226fd950-4b80-4da6-a476-ba9d397ddc91",    "state": "PROCESS_STATE_FINISHED",    "result": "PROCESS_RESULT_APPROVED",    "createdAt": "2026-08-06T01:42:21.693615Z",    "finishedAt": "2026-08-06T01:43:03.080508Z",    "person": {      "duiType": "DUI_TYPE_BR_CPF",      "duiValue": "40*******50",      "friendlyName": "teste",      "email": "",      "phone": "5511999999999",      "notifications": [        { "notificationChannel": "NOTIFICATION_CHANNEL_WHATSAPP" }      ],      "phoneCountryCodeAlpha3": ""    },    "purpose": "personAuthentication",    "services": [],    "authenticationInfo": { "authenticationId": "55cba227-9828-49df-a16f-bcdaa7bdaa4d" },    "capacities": ["PROCESS_CAPACITY_IDCLOUDONE"],    "expiresAt": "2026-08-13T01:42:21.536500Z",    "token": "",    "companyData": { "branchId": "", "countryCode": "BRA" },    "simulated": false  }}
```

Champs du processus
ChampSignification`id`UUID du processus ; la clé utilisée pour interroger et suivre le flux.`flow`Type de parcours exécuté (ex. `id_r2`, `idlivetrust_r2`, `idtrust_r2`, ...).`callbackUri`URI de rappel vers laquelle l'application cliente est redirigée à la fin du flux.`userRedirectUrl`URL complète de la page CbU que l'utilisateur ouvre pour exécuter le parcours (porte l'`id` et les indicateurs de comportement).`state`État du cycle de vie du processus. Valeurs `PROCESS_STATE_*` (ex. `CREATED`, `FAILED`, `FINISHED`, `AWAITING_FOR_DOCUMENT`, `UNSPECIFIED`).`result`Verdict final de l'évaluation. Valeurs `PROCESS_RESULT_*` (ex. `APPROVED`, `AUTHENTICATED`, `NOT_APPROVED`, ...). Concluant uniquement lorsque `state = PROCESS_STATE_FINISHED`.`createdAt`Horodatage de création du processus (UTC).`finishedAt`Horodatage de fin du processus (UTC).`person`Sous-objet contenant les données de la personne vérifiée.`purpose`Objectif du processus (ex. `personAuthentication`, enregistrement de personne).`services`Liste des services additionnels associés au processus ; vide si aucun.`authenticationInfo.authenticationId`ID de l'événement d'authentification d'identité généré par le flux.`capacities`Capacités/produits utilisés. Valeurs `PROCESS_CAPACITY_*` (ex. `IDCLOUDONE`).`expiresAt`Horodatage d'expiration du processus/lien (UTC).`token`Jeton de session/accès associé au processus (peut être vide).`companyData`Sous-objet contenant les données de l'entreprise/tenant propriétaire du processus.`simulated`Booléen ; indique s'il s'agit d'un processus de simulation/sandbox (`true`) ou réel (`false`).
Champs de la personne
ChampSignification`duiType`Type du document d'identification unique. Valeurs `DUI_TYPE_*` (ex. `BR_CPF`).`duiValue`Valeur du document (ex. le numéro de CPF).`friendlyName`Nom convivial/surnom de la personne (texte libre, non validé).`email`Email de la personne ; peut être vide.`phone`Numéro de téléphone au format E.164 (code pays + code régional + numéro).`notifications`Liste des canaux de notification. Chaque élément porte `notificationChannel` avec des valeurs `NOTIFICATION_CHANNEL_*` (ex. `WHATSAPP`, `SMS`, `EMAIL`).`phoneCountryCodeAlpha3`Code pays ISO alpha-3 du numéro de téléphone (ex. `BRA`) ; peut être vide.
Champs des données de l'entreprise
ChampSignification`branchId`Identifiant de la succursale du tenant ; vide lorsqu'il n'y a pas de segmentation par succursale.`countryCode`Pays de l'entreprise en ISO alpha-3 (ex. `BRA`).
Types de document et champs OCR
`process.services[].documents[].doc.code` rapporte le type de document sous la forme d'un code court en majuscules. `unico.moja.dictionary.br.cnh.v2.Cnh` devient `CNH`.
Le code ne porte ni le pays ni la version du schéma ; la version est retournée séparément dans `doc.version`.
Les types de document qui utilisent le schéma unifié — `unified_schema` dans la [référence des champs](/fr/assets/files/document-content-fields-0e4663f2ade946e901bbc7523c21f032.json) — sont rapportés comme le type identifié lors de la capture, en majuscules : `IDCARD`, `DRIVERLICENSE`, `PASSPORT` ou `VOTERID`.
Les passeports américains conservent leur variante au lieu d'être regroupés sous `PASSPORT` ; des valeurs telles que `POLYCARBONATEPASSPORT`, `PASSPORTCARD` et `PAPERPASSPORT` sont donc également retournées.
Par exemple, `unico.moja.dictionary.ar.generic.v1.IdCard` et `unico.moja.dictionary.us.generic.v1.PolycarbonatePassport` sont rapportés comme `IDCARD` et `POLYCARBONATEPASSPORT`.
Schémas spécifiques
Les types de document qui utilisent leur propre schéma de champs — listés sous `specific_document_schemas` dans la [référence des champs](/fr/assets/files/document-content-fields-0e4663f2ade946e901bbc7523c21f032.json) — sont présentés dans le tableau ci-dessous. Utilisez le type du dictionnaire pour rechercher chaque schéma dans ce fichier.
Pays`doc.code`Type du dictionnaireDocumentBR`RG``unico.moja.dictionary.br.rg.v2.Rg`RGBR`CNH``unico.moja.dictionary.br.cnh.v2.Cnh`CNH (permis de conduire)BR`CIN``unico.moja.dictionary.br.cin.v1.Cin`CINBR`PASSAPORTE``unico.moja.dictionary.br.passaporte.v1.Passaporte`PasseportMX`INE``unico.moja.dictionary.mx.ine.v1.Ine`Carte d'électeur INEMX`LPC``unico.moja.dictionary.mx.lpc.v1.Lpc`Licencia para conducir (permis de conduire)MX`PASAPORTE``unico.moja.dictionary.mx.pasaporte.v1.Pasaporte`Passeport—`UNKNOWN``unico.moja.dictionary.other.unknown.v1.Unknown`Le type n'a pas pu être identifié — `doc.data` est vide
`PASSAPORTE` et `PASAPORTE` sont des documents différentsLe passeport brésilien est `PASSAPORTE` (deux S) et le mexicain `PASAPORTE` (un seul S), chacun reflétant l'orthographe de son propre dictionnaire. Ce n'est pas une faute de frappe — ne traitez pas ces deux valeurs comme équivalentes.
Aucune extraction OCR n'est effectuée et aucun champ n'est rapporté dans `doc.data` lorsque `doc.code` vaut `UNKNOWN`.
Les clients au Brésil peuvent recevoir le payload complet du processusLa structure globale de la réponse reste la même — le résultat unique est la valeur par défaut.Les intégrations au Brésil peuvent recevoir l'objet processus complet ci-dessous, avec les résultats par capacité dans authenticationInfo.```
{  "process": {    "id": "53060f52-f146-4c12-a234-5bb5031f6f5b",    "flow": "idchecktrust",    "callbackUri": "https://example.com/callback",    "userRedirectUrl": "https://example.com/redirect",    "state": "PROCESS_STATE_FINISHED",    "result": "PROCESS_RESULT_OK",    "createdAt": "2024-01-01T10:00:00Z",    "finishedAt": "2024-01-01T10:15:00Z",    "expiresAt": "2024-01-08T10:00:00Z",    "purpose": "VERIFICATION",    "clientReference": "client-ref-abc",    "useCase": "smart_revalidation",    "capacities": ["liveness", "face_match"],    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",    "person": {      "duiType": "DUI_TYPE_BR_CPF",      "duiValue": "12345678909",      "friendlyName": "Luke Skywalker",      "notifications": [        {          "notificationChannel": "email"        }      ]    },    "authenticationInfo": {      "authenticationId": "auth-123",      "livenessResult": "LIVENESS_RESULT_LIVE",      "authenticationResult": "AUTHENTICATION_RESULT_INCONCLUSIVE",      "identityFraudstersResult": "TRUST_RESULT_INCONCLUSIVE",      "bioTokenEngineResult": "BIO_TOKEN_ENGINE_RESULT_UNSPECIFIED",      "smartRevalidationResult": "SMART_REVALIDATION_RESULT_UNSPECIFIED",      "idAgeResult": "ID_AGE_RESULT_UNSPECIFIED",      "scoreEngineResult": {        "scoreEnabled": "SCORE_ENABLED_TRUE",        "score": 85.5      }    },    "companyData": {      "branchId": "branch-123",      "countryCode": "BR"    },    "bioTokenData": {      "referenceProcessId": "ref-proc-123",      "authenticationId": "auth-ref-123"    },    "services": [      {        "envelopeId": "4d4f3d90-04a3-4259-b63b-930ab10d2e47",        "documentIds": ["doc-abc-123"],        "consent_granted": true,        "documents": [          {            "doc_id": "doc-abc-123",            "typified": true,            "cpf_match": true,            "face_match": true,            "validate_doc": true,            "reused_doc": false,            "signed_url": "https://example.com/doc?token=xyz",            "doc": {              "version": 1,              "code": "CNH",              "data": {                "numero": "044589731564",                "cpfNumero": "12345678909",                "nomeCivil": "Luke Skywalker",                "dataNascimento": "1990-05-12T00:00:00Z",                "dataExpiracao": "2027-12-07T00:00:00Z",                "categoria": "B"              }            }          }        ]      }    ]  }}
```

Champs de premier niveauChampTypeDescription`process.id`string (UUID)Identifiant du processus.`process.flow`stringIdentifiant du flux envoyé à la création.`process.callbackUri`stringURL de rappel configurée pour les événements du processus.`process.userRedirectUrl`stringURL pour rediriger l'utilisateur après la fin du parcours.`process.state`enumÉtat actuel du processus. Voir les valeurs ci-dessous.`process.result`enumRésultat de la vérification. Présent uniquement lorsque `state = PROCESS_STATE_FINISHED`.`process.createdAt`string (datetime)Horodatage ISO 8601 de la création du processus.`process.finishedAt`string (datetime)Horodatage ISO 8601 de la fin du processus. Présent uniquement lorsque `state = PROCESS_STATE_FINISHED`.`process.expiresAt`string (datetime)Horodatage ISO 8601 de l'expiration du processus.`process.purpose`stringObjectif du processus tel que configuré dans le flux.`process.clientReference`stringRéférence côté client optionnelle pour l'indexation dans le portail.`process.useCase`stringIdentifiant du scénario associé au flux.`process.capacities`array of stringsListe des capacités activées dans ce processus.`process.token`stringJWT signé pour l'intégration SDK.`process.person`objectIdentification fournie à la création.`process.person.notifications`arrayCanaux de notification configurés pour le parcours (ex. `email`).`process.authenticationInfo`objectRésultats par capacité. Voir ci-dessous.`process.companyData`objectContexte de l'entreprise et de la succursale.`process.companyData.branchId`stringIdentifiant de la succursale.`process.companyData.countryCode`stringCode pays ISO 3166-1 alpha-2.`process.bioTokenData`objectInformations du processus de référence — présent uniquement dans les flux de Validation 1:1 et de Revalidation intelligente.`process.services`arrayEnveloppes signées, documents capturés et autres sorties de service. Voir ci-dessous.Valeurs de process.stateValeurSignification`PROCESS_STATE_CREATED`Processus créé ; l'utilisateur n'a pas encore terminé le parcours.`AWAITING_FOR_DOCUMENT`Processus créé sans document d'identification ; en attente de sa configuration via [Définir le document du processus](/fr/dual-api/developers/api-reference/web-sdk/post-process-document). Présent uniquement lorsque le Custom Flow autorise un document optionnel.`PROCESS_STATE_FINISHED`Parcours terminé. Vérifiez `result` et `authenticationInfo`.`PROCESS_STATE_FAILED`Erreur de traitement.Incohérence de nommage des états`AWAITING_FOR_DOCUMENT` ne suit pas la convention de préfixe `PROCESS_STATE_*` utilisée par les autres états. Il s'agit d'une incohérence de nommage connue dans l'API actuelle.Valeurs de process.resultValeurSignification`PROCESS_RESULT_OK`Toutes les capacités ont retourné des résultats positifs.`PROCESS_RESULT_INVALID_IDENTITY`Au moins une capacité a retourné un résultat définitivement négatif (ex. détection de vie échouée, identité non correspondante).`PROCESS_RESULT_ERROR`Erreur lors du traitement du résultat.`PROCESS_RESULT_EXPIRED`Le processus a expiré avant la fin du parcours.`PROCESS_RESULT_UNSPECIFIED`Le processus n'est pas encore terminé.Résultats des capacités dans authenticationInfoTous les champs sont toujours retournés indépendamment du flux. Les champs pour les capacités non utilisées dans le flux retournent `*_UNSPECIFIED`.Valeurs d'enum abrégéesLes valeurs abrégées (ex. `livenessResult = LIVE`, `authenticationResult = INCONCLUSIVE`) correspondent directement aux valeurs d'enum complètes documentées ici (`LIVENESS_RESULT_LIVE`, `AUTHENTICATION_RESULT_INCONCLUSIVE`, etc.) — le préfixe est omis par souci de concision.ChampCapacitéValeurs possibles`authenticationId`—Identifiant unique pour cette tentative d'authentification.`livenessResult`[Détection de Vie](/fr/capabilities/liveness)`LIVENESS_RESULT_LIVE`, `LIVENESS_RESULT_NOT_LIVE`, `LIVENESS_RESULT_UNSPECIFIED``authenticationResult`[Vérification d'identité](/fr/capabilities/identity-verification)`AUTHENTICATION_RESULT_POSITIVE`, `AUTHENTICATION_RESULT_NEGATIVE`, `AUTHENTICATION_RESULT_INCONCLUSIVE`, `AUTHENTICATION_RESULT_UNSPECIFIED``identityFraudstersResult`[Classification du risque de fraude](/fr/capabilities/fraud-risk-classification)`TRUST_RESULT_YES`, `TRUST_RESULT_INCONCLUSIVE`, `TRUST_RESULT_UNSPECIFIED``bioTokenEngineResult`[Validation 1:1](/fr/capabilities/1-1-validation)`BIO_TOKEN_ENGINE_RESULT_POSITIVE`, `BIO_TOKEN_ENGINE_RESULT_NEGATIVE`, `BIO_TOKEN_ENGINE_RESULT_UNSPECIFIED``smartRevalidationResult`[Revalidation intelligente](/fr/capabilities/smart-revalidation)`SMART_REVALIDATION_RESULT_POSITIVE`, `SMART_REVALIDATION_RESULT_NEGATIVE`, `SMART_REVALIDATION_RESULT_UNSPECIFIED``idAgeResult`[Vérification de l'âge](/fr/capabilities/age-verification)`ID_AGE_RESULT_POSITIVE`, `ID_AGE_RESULT_NEGATIVE`, `ID_AGE_RESULT_INCONCLUSIVE`, `ID_AGE_RESULT_UNSPECIFIED``scoreEngineResult.scoreEnabled`[Score de Risque](/fr/capabilities/risk-score)`SCORE_ENABLED_TRUE`, `SCORE_ENABLED_FALSE`, `SCORE_ENABLED_UNSPECIFIED``scoreEngineResult.score`[Score de Risque](/fr/capabilities/risk-score)Nombre de -100 à +100. Présent lorsque `authenticationResult = AUTHENTICATION_RESULT_INCONCLUSIVE` et que le Score de Risque est activé.`serproResult.score`[Retour de similarité Serpro](/fr/capabilities/serpro-similarity-return)`0`–`100` (similarité) ; `-1` (pas de visage enregistré pour ce CPF) ; `-2` (erreur d'intégration).Champs de process.servicesConventions de nommage mixtes dans `services`Le tableau `services` utilise le camelCase pour les champs au niveau de l'enveloppe (`envelopeId`, `documentIds`) et le snake_case pour les champs au niveau du document (`doc_id`, `consent_granted`, `face_match`, etc.). Cela reflète la réponse réelle de l'API — les deux conventions sont intentionnelles et ne constituent pas une erreur de documentation.ChampTypeDescription`envelopeId`string (UUID)Identifiant de l'enveloppe signée.`documentIds`array of stringsIDs des documents capturés dans ce service.`consent_granted`booleanSi l'utilisateur a accordé le consentement au partage de données.`documents`arrayDocuments capturés avec données OCR et résultats de validation.`documents[].doc_id`stringIdentifiant du document.`documents[].typified`booleanSi le type de document a été identifié avec succès.`documents[].cpf_match`booleanSi le CPF sur le document correspond au CPF fourni (Brésil uniquement).`documents[].face_match`booleanSi le selfie correspond à la photo sur le document.`documents[].validate_doc`booleanSi le document a passé la validation d'authenticité.`documents[].reused_doc`booleanSi ce document a été réutilisé depuis un processus précédent.`documents[].signed_url`stringURL pré-signée pour télécharger le PDF du document (valide 5 minutes — refaites l'appel pour renouveler).`documents[].doc.version`integerVersion du schéma OCR.`documents[].doc.code`stringCode court du type de document (ex. `CNH`). Consultez [Types de document et champs OCR](#document-type-values) pour toutes les valeurs et la façon dont le code est dérivé.`documents[].doc.data`objectChamps OCR extraits. Le contenu varie selon le type de document — voir la [référence complète des champs](/fr/assets/files/document-content-fields-0e4663f2ade946e901bbc7523c21f032.json) pour le catalogue complet. Les noms de champs dans `doc.data` (ex. `nomeCivil`, `dataNascimento`) sont retournés en portugais — ce sont les valeurs réelles produites par le moteur OCR.
Les clients au Mexique peuvent recevoir le bloc RENAPO VerificationLa réponse conserve la même structure et ajoute le bloc idGov.Les intégrations au Mexique avec RENAPO Verification activé reçoivent un bloc `idGov` supplémentaire sous `authenticationInfo`, avec l'enregistrement que le RENAPO détient pour la CURP de l'utilisateur. Il s'agit d'une réponse distincte du résultat d'identité.```
{  "process": {    "id": "11111111-2222-3333-4444-555555555555",    "state": "PROCESS_STATE_FINISHED",    "result": "PROCESS_RESULT_APPROVED",    "person": {      "duiType": "DUI_TYPE_MX_CURP",      "duiValue": "PUEA880304MDFRJN04"    },    "authenticationInfo": {      "authenticationId": "22222222-3333-4444-5555-666666666666",      "idGov": {        "government_valid": true,        "curp": "PUEA880304MDFRJN04",        "government_name": "ANA PRUEBA EJEMPLO"      }    },    "companyData": { "countryCode": "MEX" }  }}
```

Les autres champs et les clés restantes de `idGov` sont omis par souci de concision. Pour le tableau complet des champs `idGov`, consultez [RENAPO Verification](/fr/capabilities/renapo-verification#possible-responses).ChampTypeDescription`authenticationInfo.idGov`objectEnregistrement du RENAPO pour la CURP. Absent lorsque la capacité n'est pas activée. `{}` lorsque le RENAPO n'a pas répondu. Mexique uniquement. Voir [RENAPO Verification](/fr/capabilities/renapo-verification).
### Codes d'erreur​

400 Bad Request401 Unauthorized404 Not Found429 Too Many Requests500 Internal Server ErrorCodeMessageDescription`3`process id is invalidLorsque l'ID du processus est invalide.CodeMessageDescription—Jwt header is an invalid JSONLorsque le jeton d'accès utilisé contient des caractères incorrects.—Jwt is expiredLorsque le jeton d'accès utilisé a expiré.CodeMessageDescription`5`error getting process: rpc error: code = NotFound desc = process not foundLorsque l'ID du processus n'a pas été trouvé.Limite de débit atteinte. Lorsque votre système reçoit une erreur HTTP 429, vous devez implémenter des mécanismes pour prévenir les défaillances en cascade et éviter d'aggraver la restriction.
**Bonnes pratiques :**

**Période de repos (backoff) :** Arrêtez ou réduisez immédiatement les requêtes suivantes de votre système. Ne réessayez pas continuellement les requêtes échouées dans une boucle serrée.
**File d'attente et limitation (Queueing & throttling) :** Mettez en mémoire tampon ou en file d'attente les requêtes sortantes de votre côté pour contrôler le flux de trafic avant de les renvoyer.
**Backoff exponentiel avec jitter :** Lors des nouvelles tentatives, augmentez le temps d'attente de manière exponentielle entre les essais (par exemple, 1 s, 2 s, 4 s, 8 s) et ajoutez un petit délai aléatoire ("jitter") pour éviter un effet de troupeau où toutes les requêtes en file d'attente réessaient exactement à la même milliseconde.

avertissementEnvoyer continuellement des requêtes vers un endpoint soumis à une limite de débit sans appliquer de backoff peut **prolonger la période de restriction** et impacter sévèrement le débit opérationnel de votre système. Limiter correctement les requêtes de votre côté garantit une intégration plus fluide et plus résiliente.
Pour les limites par défaut, l'augmentation des requêtes et des détails supplémentaires, consultez [Limites de débit](/fr/dual-api/developers/api-reference/rate-limits).CodeMessageDescription`99999`Internal failure! Try again laterLorsqu'il y a une erreur interne.
### Polling vs webhook​

Vous pouvez interroger ce endpoint pour vérifier la progression, mais le modèle recommandé est de **s'abonner à un webhook** et d'appeler ce endpoint uniquement en secours. Voir [Webhooks et événements](/fr/developers/webhooks-and-events).
### Prochaines étapes​

Pour le selfie capturé, voir [Obtenir le selfie](/fr/dual-api/developers/api-reference/web-sdk/get-selfie).
Pour le bundle d'audit des preuves, voir [Obtenir l'ensemble des preuves](/fr/dual-api/developers/api-reference/web-sdk/get-evidence-set).
Dernière mise à jour le 8 oct. 2026**