Aller au contenu
Chargement des API keys…

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éthodeEndpointFonction
POST/identity/validateVérifie la structure, la longueur et la somme de contrôle mod-97 d'un IBAN.
POST/identity/resolveDétermine le canal et le titulaire du compte d'un numéro mobile.

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.

POSThttps://api.wajub.com/identity/validate
ibanstringobligatoire
L'IBAN, jusqu'à 42 caractères. Les espaces sont retirés et les lettres converties en majuscules avant la vérification.
typestringfacultatif
Facultatif. Seule la valeur iban 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 :

Réponse · 200 OK
{
"valid": true,
"iban": "FR1420041010050500013M02606"
}

Lorsque l'IBAN est refusé, message indique le motif que vous pouvez directement afficher à l'utilisateur :

Réponse · 200 OK, refus
{
"valid": false,
"iban": "FR1420041010050500013M02607",
"message": "IBAN checksum is invalid."
}

Les cinq messages possibles :

messageCause
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.

POSThttps://api.wajub.com/identity/resolve
account_numberstringobligatoire
Le numéro mobile. Les formats camerounais sont acceptés sans préfixe, les autres nécessitent celui de leur pays.
channelstringobligatoire
Un slug de canal comme cm.mtn ou cm.orange, ou cm.mobile pour laisser Wajub choisir entre les deux à partir du numéro.
countrystringobligatoire
Code pays ISO 3166-1 alpha-2.
typestringobligatoire
Seule la valeur mobile 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 :

Réponse · 200 OK
{
"channel": "cm.mtn",
"id": "pm.9fK2mQ7vB4nL6hR1",
"name": "Sandbox Account Holder",
"country": "CM",
"type": "mobile_money",
"account_number": "+237670000000"
}

Un numéro dont l'opérateur ne peut pas être identifié renvoie 422 :

Réponse · 422 Unprocessable Content
{
"code": 422,
"status": "Unprocessable Content",
"message": "Carrier not supported for this number.",
"errors": {
"account_number": [
"Carrier not supported for this number."
]
}
}

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.

Que pensez-vous de ce contenu ?