Payment Docs
Payouts

West Africa

Mobile money payouts in XOF to Ivory Coast, Senegal and other countries

Before you start

This payout destination is not enabled for all merchants. Check availability with your manager, and make sure your merchant balance is sufficient before creating a payout.

Overview

CurrencyDestinationPayment type
XOFMobile money wallets: MTN, Orange, Wave, Moov, Free MoneySIM

Primary destinations are Ivory Coast and Senegal. Each country and operator pair is a separate payout service; choose it with serviceId.

Other currencies

CDF, GHS, KES, NGN, ZAR, UGX, TZS, ZMW and BDT are available subject to agreement with your manager.

Amount rules: XOF amounts must be whole numbers in multiples of 5; TZS, KES, GHS and UGX amounts must be whole numbers.

Choose the destination

GET /v1/payouts/services

Pass the serviceId of the target operator when creating the payout. When omitted, your default service is used. Make sure it is the destination you intend to pay to.

The recipient phone number must belong to the operator of the selected service. A Wave (Senegal) wallet cannot be topped up through an Orange (Ivory Coast) service.

account fields

FieldTypeRequiredDescription
namestring✅ YesRecipient name
requisitesstring✅ YesRecipient requisites: card number, phone number, PIX key, etc., depending on paymentType
userIdstring✅ YesUser ID in your system
FieldTypeRequiredDescription
userEmailstring❌ NoRecipient email. Recommended to always pass; required by some services
userIpstring❌ NoRecipient IP address

requisites is the wallet phone number in international format, digits only, without +: Ivory Coast 2250700000001, Senegal 221700000001.

Request example

curl -X POST "https://api.riopay.online/v1/payouts" \
  -H "Content-Type: application/json" \
  -H "X-Api-Token: YOUR_API_TOKEN" \
  -d '{
    "amount": 10000,
    "currency": "XOF",
    "paymentType": "SIM",
    "serviceId": 123,
    "externalId": "payout-123",
    "account": {
      "name": "John Doe",
      "requisites": "2250700000001",
      "userId": "user_12345",
      "userEmail": "john.doe@example.com"
    },
    "note": "Payout for order #1234"
  }'

Response

The response is a standard payout object with the CREATED status. Store the id to track the payout.

Payout object fields

The final status usually arrives within a few minutes.

Next steps

On this page