Aller au contenu
AyiID

Référence API

Identité

Émission d’une identité pseudonyme, consultation de statut, et la liaison puce-personne (chip-verify), pierre angulaire anti-fraude.

Émettre une identité

Lance une vérification KYC via le fournisseur, puis crée l’identité. La charge utile payload (photos, champs) est transmise au fournisseur mais n’est pas stockée.

POST/identity/issuepublic
ChampTypeDescription
subjectRefrequisstringRéférence du sujet (jamais de PII brute persistée).
countryCodestring (2–3)Code pays ISO du document.
walletAddress0x + 40 hexAdresse du portefeuille liée au porteur (login par signature, re-vérification du consentement).
payloadunknownCharge utile opaque transmise au fournisseur. Non stockée.
1curl -X POST https://api.ayiid.example/identity/issue \
2 -H "content-type: application/json" \
3 -d '{
4 "subjectRef": "ref-usager-123",
5 "countryCode": "BJ",
6 "walletAddress": "0x1234abcd...ef01"
7 }'

Consulter le statut

GET/identity/:did/statuspublic
ChampTypeDescription
didrequisstringDID de l’identité.
1curl https://api.ayiid.example/identity/did:ayi:z6Mkf.../status

Suivre une revue manuelle

Statut d’une demande en revue manuelle (mode intérim), sans PII.

GET/identity/review/:idpublic

Liaison puce-personne (chip-verify)

Réservé au rôle holder ; l’identité concernée provient toujours du jeton. L’appareil lit la puce en NFC et transmet le SOD et les groupes de données bruts. Le moteur exécute la vraie Passive Authentication (chaîne CSCA → DSC → SOD, concordance des condensats), la porte de vivacité, et, si les gabarits de visage sont fournis, le face-match. L’attestation signée est émise et ancrée on-chain au mieux.

POST/identity/chip-verifyrôle : holder
ChampTypeDescription
sodBase64requisstring (base64)SOD (ContentInfo CMS) lu dans la puce, DER encodé en base64.
dataGroupsrequis{ number, contentBase64 }[]Groupes lus (au moins DG1 pour l’identité ; DG2 pour le face-match).
livenessAttestationIdrequisstringRéférence d’une attestation de vivacité réelle déjà émise pour ce porteur.
liveFaceTemplatestringEmbedding opaque du visage capturé en direct. Optionnel (PA_ONLY si absent).
chipFaceTemplatestringEmbedding opaque du visage de la puce (DG2), calculé sur l’appareil. Optionnel.
Aucune image ne circule
Les gabarits de visage sont des embeddings opaques calculés sur l’appareil. Sans les deux gabarits, l’attestation est émise en Passive Authentication seule (PA_ONLY) ; avec les deux, la liaison visage-vivant complète (PA_FACE) est conservée.
1curl -X POST https://api.ayiid.example/identity/chip-verify \
2 -H "authorization: Bearer $HOLDER_TOKEN" \
3 -H "content-type: application/json" \
4 -d '{
5 "sodBase64": "MIIF...",
6 "dataGroups": [{ "number": 1, "contentBase64": "YWJj..." }],
7 "livenessAttestationId": "liv_...",
8 "liveFaceTemplate": "...",
9 "chipFaceTemplate": "..."
10 }'

Réponse : { "status": "VERIFIED", "attestation": { ... } }

Mes liaisons actives

GET/identity/chip-bindings/merôle : holder

Renvoie les attestations de liaison actives du porteur. Voir aussi Preuve de personne vivante.