Remittance
Rechargez un solde remittance en monnaie locale et envoyez de l’argent vers d’autres pays d’Afrique, depuis le tableau de bord ou par API.
La remittance permet à votre entreprise de faire circuler de l’argent entre pays africains. Vous rechargez un solde remittance par mobile money ou virement dans un pays, puis vous envoyez depuis ce solde vers des portefeuilles mobile money et des comptes bancaires dans d’autres pays. Le solde est tenu dans la devise de votre entreprise (par exemple XAF pour une entreprise immatriculée au Cameroun).
Accès sur demande. La remittance s’ouvre entreprise par entreprise, après un court examen. Faites la demande depuis Remittance dans le tableau de bord. Tant que l’accès n’est pas validé, tous les points d’accès ci-dessous renvoient
403 remittance_not_enabled.
Fonctionnement
- Demandez un devis. Créez une recharge ou un envoi. Monerails renvoie un devis : montant, frais, montant crédité ou débité de votre solde et taux appliqué. Un devis est valable environ 9 minutes (
quote_expires_at). - Confirmez. Confirmez le devis. Pour un envoi, le débit est alors réservé sur votre solde ; s’il ne le couvre pas, la confirmation échoue avec
400 insufficient_balanceet rien n’est envoyé. - Suivez l’issue. L’opération passe en
processing, puissucceededoufailed. Vous recevez un webhook dans les deux cas. Un envoi en échec rend automatiquement le montant réservé à votre solde.
Pour sauter l’étape de vérification, envoyez "confirm": true à la création : le devis est confirmé dans la même requête.
Trouver un réseau
Listez les opérateurs mobile money et les banques disponibles pour un pays et un sens :
curl "https://api.monerails.com/v1/remittances/options?type=transfer&country=CI" \
-H "Authorization: Bearer $MONERAIL_KEY"Chaque élément a un id (à envoyer dans network), un channel (mobile_money ou bank), le format de compte attendu (phone ou account_number) et le fee_percent appliqué.
Recharger votre solde
Le payeur valide le paiement sur son téléphone. Votre solde est crédité dès réception.
curl https://api.monerails.com/v1/remittances/topups \
-H "Authorization: Bearer $MONERAIL_KEY" \
-H "Idempotency-Key: topup-0001" \
-H "Content-Type: application/json" \
-d '{
"country": "CM",
"amount": 500000,
"network": "NETWORK_ID",
"payer": { "name": "Alpha SARL", "phone": "+237670000000" }
}'Envoyer de l’argent
amount est le montant reçu par le bénéficiaire, dans la devise du pays d’arrivée, en unités mineures.
curl https://api.monerails.com/v1/remittances/transfers \
-H "Authorization: Bearer $MONERAIL_KEY" \
-H "Idempotency-Key: transfer-inv-204" \
-H "Content-Type: application/json" \
-d '{
"country": "CI",
"amount": 50000,
"network": "NETWORK_ID",
"beneficiary": { "name": "Kouassi Yao", "phone": "+2250700000000" },
"reason": "Supplier invoice 204",
"client_reference": "inv_204"
}'La réponse est un objet remittance au statut quoted :
{
"id": "7c1f0d0e-5d2b-4a43-9b1e-2f3f9a9d1c10",
"object": "remittance",
"type": "send",
"status": "quoted",
"country": "CI",
"currency": "XOF",
"amount": 50000,
"balance_currency": "XAF",
"fee": 1750,
"balance_debit": 51750,
"rate": 1,
"network": "Orange Money",
"beneficiary": { "name": "Kouassi Yao", "phone": "+2250700000000" },
"quote_expires_at": "2026-11-22T10:09:00Z",
"created_at": "2026-11-22T10:00:00Z"
}Confirmez-le :
curl -X POST https://api.monerails.com/v1/remittances/7c1f0d0e-5d2b-4a43-9b1e-2f3f9a9d1c10/confirm \
-H "Authorization: Bearer $MONERAIL_KEY" \
-H "Idempotency-Key: confirm-inv-204"Solde, liste et détail
| Point d’accès | Description |
|---|---|
GET /v1/remittances/balance |
Montants available (disponible) et pending (réservé), dans la devise de votre solde. |
GET /v1/remittances |
Vos recharges et envois, du plus récent au plus ancien. Filtres : type=topup ou type=transfer, limit, starting_after. |
GET /v1/remittances/{id} |
Une opération. |
Statuts
| Statut | Signification |
|---|---|
quoted |
Devis prêt, en attente de confirmation. |
processing |
Confirmée et en cours. Pour un envoi, le débit est réservé. |
succeeded |
Recharge créditée, ou envoi livré. |
failed |
N’a pas abouti. Un débit réservé revient sur votre solde. |
expired |
Le devis n’a pas été confirmé à temps. Rien n’a bougé. |
Webhooks
| Événement | Quand |
|---|---|
remittance.topup_succeeded |
Une recharge est créditée sur votre solde. |
remittance.topup_failed |
Une recharge n’a pas abouti. |
remittance.transfer_succeeded |
Un envoi est livré. |
remittance.transfer_failed |
Un envoi a échoué et son montant est revenu sur votre solde. |
Le champ data de l’événement est l’objet remittance.
Frais
Les frais sont un pourcentage de l’opération, par pays et par sens, affichés dans Paramètres › Tarifs une fois l’accès validé, et dans chaque devis. Ils sont prélevés dans la devise de votre solde : déduits d’une recharge, ajoutés à un envoi.
Mode test
Avec une clé mr_test_, rien ne bouge réellement. L’issue dépend du numéro :
| Numéro | Issue |
|---|---|
Mobile money se terminant par 1111111111 (par exemple +2371111111111) |
succeeded |
Mobile money se terminant par 0000000000 |
failed |
Compte bancaire 1111111111 |
succeeded |
Compte bancaire 0000000000 |
failed |