Aller au contenu principal

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ègleValeur
Montant minimum200
Montant maximum2 000 000

Exceptions aux minimums :

Moyen de paiementMinimum
RDC_PM_AIRTEL (payin)50 (CDF)
CB_PM_MTN, CB_CASHIN_MTN500 (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.

PaysFormat attenduExemple
Côte d'Ivoire (CI)10 chiffres, commençant par 01, 05 ou 070505000000
Sénégal (SN)9 chiffres, commençant par 70, 75, 76, 77 ou 78770000000
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_id doit ê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.