Limites et validation
L'API contrôle chaque requête avant de la transmettre à l'opérateur. Les opérateurs peuvent en plus appliquer leurs propres plafonds.
Montants
amount doit être un nombre JSON (1000, pas "1000"), exprimé dans la devise du pays.
| Règle | Valeur |
|---|---|
| Montant minimum | 200 |
| Montant maximum | 2 000 000 |
Exceptions aux minimums :
| Moyen de paiement | Minimum |
|---|---|
RDC_PM_AIRTEL (payin) | 50 (CDF) |
CB_PM_MTN, CB_CASHIN_MTN | 500 (XAF) |
Un montant hors limites est refusé avec le statut 400, par exemple :
{ "err": { "status": "error", "message": "Amount must be <= 2 000 000 Fcfa", "code": 400 } }
Numéros de téléphone
telephone doit être une chaîne JSON, au format national (sans indicatif pays) du pays concerné. Les espaces et les séparateurs sont ignorés.
| Pays | Format attendu | Exemple |
|---|---|---|
Côte d'Ivoire (CI) | 10 chiffres, commençant par 01, 05 ou 07 | 0505000000 |
Sénégal (SN) | 9 chiffres, commençant par 70, 75, 76, 77 ou 78 | 770000000 |
Burkina Faso (BF) | 8 chiffres | |
Bénin (BN) | 10 chiffres | |
Cameroun (CM) | 9 chiffres |
Les préfixes opérateur sont aussi contrôlés pour ces pays. Les autres pays (Congo-Brazzaville, Congo RDC, Gambie) sont validés selon leur propre format national. Un numéro refusé renvoie Phone number not valid (HTTP 400).
Identifiant de transaction
merchant_transaction_iddoit être unique, toutes périodes confondues. L'unicité est vérifiée sur toute la plateforme (pas seulement sur votre compte) : utilisez un préfixe propre à votre société ou un UUID.- Une transaction identique (même montant, même numéro, même type) encore en cours depuis moins d'une minute est refusée :
An identical transaction is already in progress. Please wait.
Champs obligatoires
Un champ manquant renvoie 400 avec le nom du champ concerné, par exemple You must add telephone to your body. La liste des champs obligatoires de chaque point d'accès figure dans Encaisser et Verser.