Référence
Opérateurs & pays
MivaaPay couvre le Mobile Money de sept pays, plus le paiement par carte. Chaque opérateur a un
code : c'est lui que vous passez dans le champ operator à la création d'un paiement.
Ce tableau recense ce que la plateforme sait faire. Ce qui est réellement ouvert
sur votre compte dépend de votre contrat : interrogez
GET /payment-modes plutôt
que de coder cette liste en dur. Les frais y sont également ceux qui vous sont appliqués.
Mobile Money
| Pays | Opérateur | Code operator | OTP |
|---|---|---|---|
🇧🇯 Bénin BJ | MTN | mtn | — |
| Moov | moov | — | |
| Celtiis | celtiis_bj | — | |
| Coris | coris | requis | |
🇧🇫 Burkina Faso BF | Moov | moov_bf | — |
| Orange | orange_bf | requis | |
| Wave | wave_bf | requis | |
🇨🇮 Côte d'Ivoire CI | MTN | mtn_ci | — |
| Moov | moov_ci | — | |
| Orange | orange_ci | — | |
| Wave | wave_ci | — | |
🇲🇱 Mali ML | Orange | orange_ml | — |
| Mobicash | mobicash_ml | — | |
🇸🇳 Sénégal SN | Orange | orange_sn | requis |
| Free | free_sn | — | |
| Wave | wave_sn | — | |
🇹🇬 Togo TG | Togocom | togocom_tg | — |
| Moov | moov_tg | — | |
🇨🇬 Congo CG | MTN | mtn_cg | — |
Le code operator est insensible à la casse : MTN et mtn
désignent le même moyen de paiement.
Cartes bancaires
| Réseau | Code operator | Particularité |
|---|---|---|
| Visa | VISA |
Pas de phone_number ; en revanche customer.firstname,
customer.lastname et customer.email sont obligatoires.
La réponse contient une payment_url vers laquelle rediriger le client.
|
| Mastercard | MASTERCARD |
Opérateurs à code OTP
Chez quatre opérateurs, le client génère lui-même un code à usage unique — généralement par un
code USSD — et vous le communique. Vous le transmettez dans le champ otp de
POST /payments ; sans lui, l'appel est rejeté.
Concernés : coris, orange_bf, wave_bf,
orange_sn. Le catalogue le signale par requires_otp: true — testez
ce champ plutôt que la liste ci-dessus, elle peut évoluer.
free_sn
Free Sénégal exige une return_url à la création du paiement : c'est la page
vers laquelle le client est renvoyé après validation. Renseignez-la systématiquement pour cet
opérateur.
Format des numéros
phone_number attend 8 à 15 chiffres, indicatif pays compris,
sans espaces, tirets ni parenthèses. Le + initial est toléré.
| Pays | Indicatif | Exemple accepté |
|---|---|---|
| Bénin | 229 | 22997000000 |
| Burkina Faso | 226 | 22670000000 |
| Côte d'Ivoire | 225 | 2250700000000 |
| Mali | 223 | 22370000000 |
| Sénégal | 221 | 221770000000 |
| Togo | 228 | 22890000000 |
| Congo | 242 | 242060000000 |
Un numéro au bon format mais qui n'existe pas, ou qui n'appartient pas à l'opérateur visé, passe
la validation et échoue ensuite chez l'opérateur : vous recevez alors un
payment_failed.
Types de moyens de paiement
Le champ type du catalogue prend l'une de ces valeurs :
| Valeur | Description |
|---|---|
mobile_money | Débit d'un compte Mobile Money, validé par le client sur son téléphone. |
card | Carte bancaire, via une page de paiement hébergée. |
bank_transfer | Virement bancaire. |
e_wallet | Portefeuille électronique. |
Vous pouvez filtrer le catalogue par ce champ :
GET /payment-modes?type=mobile_money, et par pays :
GET /payment-modes?country=CI. Les deux se combinent.
Limites de montant
Les opérateurs Mobile Money n'acceptent qu'une plage de montants, et c'est le total débité — votre montant plus la commission — qui est comparé à cette plage :
| Borne | Valeur |
|---|---|
| Minimum débité | 10 (unité de la devise) |
| Maximum débité | 1 000 000 |
Hors de ces bornes, l'API répond invalid_request avant de contacter
l'opérateur, et le message indique le total calculé. Les paiements par carte ne sont pas soumis
à ce contrôle.