Docs API

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.

La liste qui fait foi est celle de l'API

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

PaysOpérateurCode operatorOTP
🇧🇯 Bénin BJMTNmtn
Moovmoov
Celtiisceltiis_bj
Coriscorisrequis
🇧🇫 Burkina Faso BFMoovmoov_bf
Orangeorange_bfrequis
Wavewave_bfrequis
🇨🇮 Côte d'Ivoire CIMTNmtn_ci
Moovmoov_ci
Orangeorange_ci
Wavewave_ci
🇲🇱 Mali MLOrangeorange_ml
Mobicashmobicash_ml
🇸🇳 Sénégal SNOrangeorange_snrequis
Freefree_sn
Wavewave_sn
🇹🇬 Togo TGTogocomtogocom_tg
Moovmoov_tg
🇨🇬 Congo CGMTNmtn_cg

Le code operator est insensible à la casse : MTN et mtn désignent le même moyen de paiement.

Cartes bancaires

RéseauCode operatorParticularité
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.
MastercardMASTERCARD

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.

Un cas particulier : 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é.

PaysIndicatifExemple accepté
Bénin22922997000000
Burkina Faso22622670000000
Côte d'Ivoire2252250700000000
Mali22322370000000
Sénégal221221770000000
Togo22822890000000
Congo242242060000000

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 :

ValeurDescription
mobile_moneyDébit d'un compte Mobile Money, validé par le client sur son téléphone.
cardCarte bancaire, via une page de paiement hébergée.
bank_transferVirement bancaire.
e_walletPortefeuille é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 :

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