Outils pour utilisateurs

Français | English


Guide de migration ShootID vers ID360

🔑 ETAPE 1 – AUTHENTIFICATION

🔹 ShootID

  • Méthode : Authentification via HTTP Basic Auth
  • Header utilisé dans toutes les requêtes :
Authorization: Basic base64(applicationToken:applicationSecret)
    
  • Durée de validité : Permanente (ou jusqu’à révocation manuelle)

🔸 ID360

{
  "username": "string",
  "password": "string"
}
 
  • Réponse :
{
  "token": "0123456789abcdef01234567"
}
 
  • Header à inclure ensuite dans chaque appel API :
Authorization: Token 0123456789abcdef01234567
    

🕐 Durée de vie & renouvellement du token (ID360)

  • Durée de validité : 15 minutes
  • Renouvellement automatique : à chaque appel API utilisant ce token
  • Exception : L’appel `/user/login/` ne renouvelle pas la durée
  • Erreur en cas d’expiration : HTTP 401 Unauthorized

🔄 Pour prolonger la validité du token (sans générer un nouveau token) :

GET /api/1.0.0/user/whoami
Authorization: Token 0123456789abcdef01234567
  • Fréquence recommandée : toutes les 13 minutes
  • Réponse attendue : HTTP 200 si le token est toujours valide

✅ Tableau de correspondance : Authentification

Fonction ShootID ID360
Méthode HTTP Basic Auth Login avec username/password → Token
Endpoint N/A (inclus dans chaque appel) POST /user/login/
Format d’authentification Authorization: Basic … Authorization: Token <jeton>
Validité du token Long terme (pas d’expiration) expiré au delà de 15 min d'inactivité
Prolongation du token N/A GET /user/whoami recommandé toutes les 13 min

🧩 ÉTAPE 2 – INITIALISER UNE TRANSACTION / DÉMARRER UN PARCOURS

🔹 ShootID

{
  "transactionId": "2c95841e45404f7e0145405da33f0009",
  "qrCode": "https://www.contralia.fr/shootid/api/v2/picture?pictureId=2c95841e45404f7e0145405"
}
 

🔸 ID360

curl -X POST \
"https://id360docaposte.com/api/1.0.0/process/{UUID}/enrollment" \
-H "accept: application/json" \
-H "Authorization: Token 0123456789abcdef01234567" \
-d '{
  "callback_url": "https://www.example.com/callback_url",
  "browser_callback_url": "https://www.example.com/browser_callback_url",
  "client_reference": "any_string",
  "callback_headers": {
    "header_name_1": "header_value_1",
    "header_name_2": "header_value_2"
  },
  "last_name": "Users last name",
  "first_name": "Users first name",
  "email": "Users email",
  "address_line_1": "Users address line 1",
  "address_line_2": "Users address line 2",
  "address_line_3": "Users address line 3",
  "zip_code": "Users zip code",
  "city": "Users city",
  "country": "Users country",
  "phone_number": "Users phone number"
}'
 

🧾 Précisions sur les paramètres

  • Dans l'url, l'UUID correspond à l'ID du parcours
  • `callback_url` (obligatoire) : URL backend qui recevra en POST le résultat complet du parcours ID360
  • `browser_callback_url` (obligatoire) : URL vers laquelle l’utilisateur est redirigé côté navigateur
  • `callback_headers` : headers personnalisés pour l’appel vers votre backend (auth, identifiant, etc.)
  • `client_reference` : identifiant de dossier interne à votre SI (pour faire le lien avec vos données)
  • Champs utilisateurs (`last_name`, `email`, etc.) : purement informatifs, non utilisés pour des contrôles
  • `email` : obligatoire uniquement si parcours PVID

✅ Tableau de correspondance : Initialisation de parcours

Fonction ShootID ID360
Type d’appel `GET /api/v2/init` `POST /api/1.0.0/process/{id}/enrollment`
Retour `transactionId`, `qrCode` `id` (dossier), `url`, `api_key`, `status`
Paramétrage du parcours Implicite Explicite via `{id}` du process configuré dans l’IHM
Callback technique N\A `callback_url` (backend) + `browser_callback_url` (front)
Suivi personnalisé Non `client_reference` possible
Authentification Via Basic dans chaque appel Via token (`Authorization: Token …`)

🔀 ÉTAPE 2B – CHOIX & SÉLECTION DE LA ROUTE (ID360)

🧭 Pourquoi cette étape est nécessaire

Dans certains parcours ID360, plusieurs méthodes d’identification peuvent être proposées à l’utilisateur final, telles que :

  • L’identification via l’Identité Numérique de La Poste
  • L’identification via un Parcours en Ligne Personnalisable de Docaposte

👉 Dans le cadre du présent parcours, seul le canal du Parcours Personnalisable Docaposte est utilisé, ce qui implique que la plateforme ID360 demande explicitement à l’intégrateur de sélectionner cette route parmi les options disponibles.

🔐 Cette sélection garantit que l’utilisateur suivra le bon scénario d’identification, sans ambiguïté, en accord avec le paramétrage métier prévu dans la console d’administration.


🎯 Objectif

Associer une route spécifique à un dossier utilisateur (enrollment) via son `api_key`, afin de verrouiller le mode d’identification à suivre.


1. 📥 Récupération de la liste des routes

  • Endpoint : `GET /api/1.0.0/enrollment/flow/enrollment_info/`

Préprod :

curl -X 'GET' \
'https://preprod.id360docaposte.com/api/1.0.0/enrollment/flow/enrollment_info/' \
-H 'accept: application/json' \
-H 'x-api-key: {API_KEY_DOSSIER}'

Prod :

curl -X 'GET' \
'https://id360docaposte.com/api/1.0.0/enrollment/flow/enrollment_info/' \
-H 'accept: application/json' \
-H 'x-api-key: {API_KEY_DOSSIER}'

Réponse (extrait) :

{
  "routes": [
    {
      "id": 275128
    }
  ]
}
Le champ `routes[0].id` contient l’identifiant de la route à utiliser.

2. ✅ Sélection de la route

  • Endpoint : `POST /api/1.0.0/enrollment/flow/route/{route_id}/select/`

Préprod :

curl -X 'POST' \
'https://preprod.id360docaposte.com/api/1.0.0/enrollment/flow/route/{route_id}/select/' \
-H 'accept: application/json' \
-H 'x-api-key: {API_KEY_DOSSIER}' \
-H 'Content-Type: text/plain'

Prod :

curl -X 'POST' \
'https://id360docaposte.com/api/1.0.0/enrollment/flow/route/{route_id}/select/' \
-H 'accept: application/json' \
-H 'x-api-key: {API_KEY_DOSSIER}' \
-H 'Content-Type: text/plain'

Réponse attendue :

HTTP 204 No Content

📝 Remarques clés

  • La clé API du dossier (`api_key`) est obtenue via l’appel `POST /process/{id}/enrollment`
  • Le choix de la route est obligatoire dans les parcours multi-canal
  • La route sélectionnée est ensuite associée définitivement à ce dossier
  • Cette action doit être effectuée avant tout envoi de documents ou d’infos utilisateur

🪪 ÉTAPE 3 – AJOUTER UN DOCUMENT D’IDENTITÉ

🔹 ShootID

  • Méthode : `POST`
  • Type : `multipart/form-data`
  • Champs principaux :
    • `transactionId` (string) – identifiant de la transaction (obligatoire)
    • `file` (fichier) – image à uploader (obligatoire)
    • `type` (enum string) – type de document géré : `Enum : IDENTITY`. (obligatoire)
    • `documentId` (integer) – identifiant du document (obligatoire)
  • Options avancées : page, géolocalisation, scanProvider, OCR/MRZ, traitement image
  • Réponse exemple :
{
  "transactionId": "2c95841e45404f7e0145405da33f0009",
  "qrCode": "https://www.contralia.fr/shootid/api/v2/picture?pictureId=2c95841e45404f7e0145405da35c000a",
  "documents": [{
    "status": "READY_TO_BE_SCANNED",
    "declaredType": "IDENTITY",
    "documentId": 0
  }]
}
 

🔸 ID360

  • Méthode : `POST`
  • URL :
https://preprod.id360docaposte.com/api/1.0.0/enrollment/flow/document/id_document_image/?total_pages=2&uploaded_page=0
    
  • Type : `application/octet-stream`
  • Authentification : `x-api-key` (obtenue lors de l’enrollment)
  • Payload : binaire pur (pas de form-data)

➤ cURL (préprod)

curl -X 'POST' \
'https://preprod.id360docaposte.com/api/1.0.0/enrollment/flow/document/id_document_image/?total_pages=2&uploaded_page=0' \
-H 'accept: */*' \
-H 'x-api-key: {API_KEY_DOSSIER}' \
-H 'Content-Type: application/octet-stream' \
--data-binary '@CNIRecto.PNG'

➤ Paramètres dans l’URL

Paramètre Description
`total_pages` Nombre total de pages à uploader pour le document (ex : `2` pour CNI recto/verso)
`uploaded_page` Index de la page envoyée (commence à `0`)

✅ Tableau de correspondance – Upload Document

Élément ShootID ID360
Endpoint `POST /api/v2/add` `POST /enrollment/flow/document/id_document_image/`
Authentification `Authorization: Basic` + `transactionId` `x-api-key`
Format d’envoi `multipart/form-data` `application/octet-stream` (binaire pur)
Paramètres document `type`, `documentId`, `page`, etc. `total_pages`, `uploaded_page` dans l’URL
Champ du fichier `file` contenu brut via `–data-binary`
Réponse JSON avec `status`, `documentId`, etc. Réponse non détaillée (succès silencieux) ou `204` attendu
Traitements optionnels Oui (binarisation, OCR, cropping, etc.) Gérés en amont dans le paramétrage du parcours
Type de document géré Enum : `IDENTITY`, `RIB`, `CHECK`, `CAR_REGISTRATION`, etc. Fixe : `id_document_image` (pour cette étape spécifique)

📄 ÉTAPE 4 – AJOUT D’AUTRES DOCUMENTS (RIB, justificatif de domicile, etc.)

Dans certains parcours ID360, notamment ceux nécessitant la constitution du bloc adresse ou de l’identité bancaire, il est indispensable d’ajouter d'autres documents en plus de la pièce d’identité :

  • 📄 Justificatif de domicile (facture, quittance, etc.)
  • 🏦 RIB (relevé d'identité bancaire)

🔹 ShootID

  • Endpoint : `POST /shootid/api/v2/add`
  • Champs obligatoires :
    • `transactionId`
    • `file`
    • `type` → `ADDRESS_BLOCK` (justificatif) ou `RIB`
  • Champs optionnels : `documentId`, `page`, `scanProvider`, `processCropping`, etc.
  • Réponse : confirmation + status `READY_TO_BE_SCANNED`

🔸 ID360

🏦 1. Upload du RIB

  • Endpoint :
POST /api/1.0.0/enrollment/flow/document/bank_details_image/
 
  • Exemple cURL :
curl -X 'POST' \
'https://preprod.id360docaposte.com/api/1.0.0/enrollment/flow/document/bank_details_image/' \
-H 'accept: */*' \
-H 'x-api-key: {API_KEY_DOSSIER}' \
-H 'Content-Type: application/octet-stream' \
--data-binary '@rib.jpg'
 

→ Ce document alimente le bloc bancaire (IBAN, titulaire du compte).


🏠 2. Upload du justificatif de domicile

  • Endpoint :
POST /api/1.0.0/enrollment/flow/document/proof_of_address_image/
 
  • Exemple cURL :
curl -X 'POST' \
'https://preprod.id360docaposte.com/api/1.0.0/enrollment/flow/document/proof_of_address_image/' \
-H 'accept: */*' \
-H 'x-api-key: {API_KEY_DOSSIER}' \
-H 'Content-Type: application/octet-stream' \
--data-binary '@facture_edf.pdf'
 

→ Ce document est utilisé pour alimenter le bloc adresse, qui peut être recoupé avec la pièce d’identité.


✅ Résumé des endpoints documentaires ID360

Type de document Endpoint ID360
Pièce d'identité `/enrollment/flow/document/id_document_image/`
Justificatif de domicile `/enrollment/flow/document/proof_of_address_image/`
RIB `/enrollment/flow/document/bank_details_image/`

📥 ÉTAPE 5 – RECUPERATION DU RESULTAT FINAL

🔹 ShootID

Exemple de réponse

  • Statut du scan : `OK`, `KO`, `PROVIDER_COULD_NOT_PROCESS_ERROR`
  • Résultats de validation : MRZ, intégrité…
  • Données OCR : nom, prénom, date de naissance, sexe, numéro…
  • Images générées : `imagePhoto`, `image1Cut`, `image2Cut`, `imageSignature`
  • Critères de fraude : `fraudScanTimesCriteria`, `fraudPeriodCriteria`

🔸 ID360

Requête de récupération du rapport

Exemple de requête CURL

curl -X GET \
  "https://preprod.id360docaposte.com/api/1.0.0/enrollment/{id}/report" \
  -H "accept: application/json" \
  -H "Authorization: Token 0123456789abcdef01234567"
  • Dans l'url {id} : correspond à l'id du dossier
  • Paramètres : aucun
  • Résultat : Code HTTP 200 + réponse JSON
  • Appel à effectuer uniquement côté serveur

Exemple de réponse

{
  "status": "OK",
  "id": 215416,
  "identity": {
    "name": "SPECIMEN ABB",
    "first_name": "NATACHA",
    "birth_date": "1973-07-12",
    "gender": "F",
    "birth_place": "TOULON",
    "nationality": "FRA",
    "extra": {
      "id_number": "90RF02331",
      "expiration_date": "2029-03-03",
      "issuer": "Préfecture du Sud",
      "address": "102 RUE PRINCIPALE 34700 LODÈVE FRANCE"
    }
  },
  "extracted_data": {
    "proof_of_address": [
      {
        "full_name": "MME SPECIMEN NATACHA",
        "address_1": "205 route des lylas",
        "address_2": "BT LES OLIVIERS",
        "zip_code": "06000",
        "city": "Nice",
        "date": "2022-04-06"
      }
    ],
    "bank_details": [
      {
        "iban": "FR7630006000011234567890189",
        "bic": "CEPAFRPP831",
        "full_name": "MLE NATACHA SPECIMEN"
      }
    ]
  }
}

⚠️ Attention : ne pas appeler le rapport immédiatement

→ Attendez toujours la réception de la *callback finale* sur votre `callback_url` avant d'appeler la méthode report.

  • Cette callback vous informe que le traitement est terminé.
  • Une fois reçue, vous pouvez alors appeler `/enrollment/{id}/report`.
  • Voir le guide des callbacks ici

Comparatif ShootID / ID360

Fonction ShootID ID360
Endpoint `GET /result` `GET /enrollment/{id}/report`
Authentification Basic Auth `Authorization: Token …`
Moment d’appel Après upload des docs Après réception de la callback finale
Structure de réponse Par document (`documents[]`) Par bloc (`blocks.identity`, `blocks.address`, etc.)
Résultats techniques Détail MRZ / OCR Agrégés selon configuration du parcours

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also, you acknowledge that you have read and understand our Privacy Policy. If you do not agree, please leave the website.

Plus d’informations