Référence API
Vérification
Le cœur du produit : un vérificateur crée une demande pour un sujet, le détenteur consent, un résultat en découle.
Créer une demande
Réservé au rôle verifier. La demande est taguée avec l’environnement du jeton (isolation SANDBOX / PRODUCTION).
POST
/verify/requestrôle : verifier| Champ | Type | Description |
|---|---|---|
subjectRefrequis | string | DID du sujet. Jamais de PII. |
scoperequis | string[] | Attributs demandés (au moins un), ex. ["identity", "is_adult"]. |
reasonrequis | string | Motif lisible présenté au détenteur. |
mode | PROOF_ONLY | SELECTIVE | Mode de divulgation. Défaut : PROOF_ONLY. |
callbackUrl | string (url) | URL de webhook notifiée à l’issue de la demande. |
requireLiveness | objet | Exigence optionnelle de preuve du vivant (voir ci-dessous). |
L’objet requireLiveness, s’il est présent, exige qu’un humain vivant contrôle l’identité :
| Champ | Type | Description |
|---|---|---|
requireLiveness.minLevelrequis | L1 | L2 | L3 | Niveau minimal de PoLP requis. |
requireLiveness.maxAgeDays | number (1–365) | Fraîcheur maximale acceptée. Défaut : 30. |
1curl -X POST https://api.ayiid.example/verify/request \2 -H "authorization: Bearer $ACCESS_TOKEN" \3 -H "content-type: application/json" \4 -d '{5 "subjectRef": "did:ayi:z6Mkf...abcd",6 "scope": ["identity", "is_adult"],7 "reason": "Ouverture de compte",8 "mode": "PROOF_ONLY",9 "callbackUrl": "https://exemple.com/webhooks/ayiid",10 "requireLiveness": { "minLevel": "L2", "maxAgeDays": 30 }11 }'
Réponse (HTTP 201) :
1{2 "requestId": "req_9f3a...",3 "status": "PENDING",4 "message": "Demande de verification creee."5}
Consulter une demande
Renvoie l’état courant d’une demande.
GET
/verify/request/:idpublic| Champ | Type | Description |
|---|---|---|
idrequis | string | Identifiant de la demande (paramètre d’URL). |
1curl https://api.ayiid.example/verify/request/req_9f3a...
Statuts d’une demande
| Champ | Type | Description |
|---|---|---|
PENDING | en attente | Demande créée, décision du détenteur attendue. |
APPROVED | approuvée | Le détenteur a consenti ; une attestation est émise. |
REJECTED | refusée | Le détenteur a refusé. |
EXPIRED | expirée | Délai dépassé. |
CANCELLED | annulée | Demande annulée. |
Suite du flux
Une fois la demande créée, présentez au détenteur l’URL hébergée de consentement (voir Consentement). La décision signée déclenche l’émission de l’attestation, puis, si configuré, le webhook signé.