Identité
Vérifiez la somme de contrôle d'un IBAN et déterminez le canal d'un numéro mobile.
Identité vérifie une destination avant que vous lui envoyiez des fonds. Elle propose deux endpoints
POST, synchrones et sans effet secondaire.
| Méthode | Endpoint | Fonction |
|---|---|---|
POST | /identity/validate | Vérifie la structure, la longueur et la somme de contrôle mod-97 d'un IBAN. |
POST | /identity/resolve | Détermine le canal et le titulaire du compte d'un numéro mobile. |
Deux conditions s'appliquent
Identité nécessite une clé privée (sk.) ou une clé restreinte avec identity.write, ainsi qu'un
plan payant : starter, growth, scale ou business. Tout autre plan reçoit une réponse 403
qui demande une mise à niveau.
Valider un IBAN
Cette opération s'exécute entièrement chez Wajub sans contacter de banque. Elle vérifie dans l'ordre le format (deux lettres, deux chiffres, puis des caractères alphanumériques), la longueur attendue pour le pays et la somme de contrôle mod-97 de la norme ISO 13616. Une somme valide signifie que l'IBAN est bien formé, pas que le compte existe.
https://api.wajub.com/identity/validateibanstringobligatoiretypestringfacultatifiban est acceptée aujourd'hui.curl https://api.wajub.com/identity/validate \
-H "Authorization: $WAJUB_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "iban": "FR14 2004 1010 0505 0001 3M02 606" }'La réponse est plate, sans enveloppe. iban est renvoyé sous une forme normalisée, celle que vous
devez enregistrer :
Lorsque l'IBAN est refusé, message indique le motif que vous pouvez directement afficher à
l'utilisateur :
Les cinq messages possibles :
message | Cause |
|---|---|
IBAN is too short. | Moins de quatre caractères. |
IBAN format is invalid (expected 2 letters, 2 digits, then alphanumeric). | Format incorrect. |
IBAN length must be N characters for country XX. | Pays connu, longueur incorrecte. |
IBAN length must be between 15 and 34 characters. | Pays absent de notre tableau des longueurs. |
IBAN checksum is invalid. | Format et longueur corrects, échec de mod-97. |
Un refus renvoie toujours 200
valid: false est un appel réussi avec une réponse négative, pas une erreur. Adaptez le traitement
à valid, pas au code de statut.
Identifier un numéro mobile
La résolution reçoit un numéro et un canal, puis renvoie le moyen de paiement qu'elle créerait : le
canal déterminé, un identifiant provisoire du moyen de paiement et le nom du titulaire du compte.
issuer est présent uniquement lorsque le canal en enregistre un. Gérez donc son absence.
https://api.wajub.com/identity/resolveaccount_numberstringobligatoirechannelstringobligatoirecm.mtn ou cm.orange, ou cm.mobile pour laisser Wajub choisir entre les deux à partir du numéro.countrystringobligatoiretypestringobligatoiremobile est acceptée aujourd'hui.curl https://api.wajub.com/identity/resolve \
-H "Authorization: $WAJUB_SANDBOX_KEY" \
-H "Content-Type: application/json" \
-d '{
"account_number": "670000000",
"channel": "cm.mobile",
"country": "CM",
"type": "mobile"
}'Ici, le préfixe du numéro a permis de résoudre cm.mobile en cm.mtn :
Un numéro dont l'opérateur ne peut pas être identifié renvoie 422 :
La résolution fonctionne uniquement dans la sandbox
En mode live, POST /identity/resolve répond avec 501 Not Implemented et
Identify resolve is only available in sandbox. Use a sandbox API key. L'implémentation de la
sandbox déduit le canal du préfixe du numéro et renvoie un nom de titulaire temporaire. Elle
n'interroge pas encore l'opérateur. Vous pouvez construire votre intégration avec cette réponse,
mais n'affichez pas le nom renvoyé à un client en production.
POST /identity/validate ne possède pas cette restriction. Le contrôle mod-97 est arithmétique et
fonctionne de la même manière dans les deux environnements.