Payouts
Payouts let you push funds from your merchant wallet to a recipient's mobile money account, bank account, or PayElect wallet. Common use-cases: seller disbursements, refund-by-payout, staff salaries, insurance claims.
Payout approval.
Payouts above your configured threshold require admin approval before processing (status:
PENDING_APPROVAL). Configure your threshold in the merchant portal under Developer → Payout Settings.
Endpoint
POST
/pay/api/v1/payout
Mobile money payout (Guinea — Orange Money)
curl -X POST https://api.payelecthq.com/pay/api/v1/payout \
-H "Authorization: Bearer <client_id>" \
-H "Content-Type: application/json" \
-d '{
"amount": "50000",
"currency": "GNF",
"destination_type": "MOBILE_MONEY",
"destination": {
"country_code": "GN",
"phone": "+224622000000",
"provider": "orange_money",
"account_name": "Mamadou Diallo"
},
"idempotency_key": "payout-seller-12-2026-07-12",
"metadata": { "seller_id": "SLR-012", "reason": "weekly_settlement" }
}'
Response (accepted, pending provider confirmation):
{
"status": "success",
"data": {
"payoutUid": "po_01J4PAYOUTABC123",
"amount": 50000,
"currency": "GNF",
"destinationType": "MOBILE_MONEY",
"providerSlug": "orange_money",
"status": "PENDING",
"source": "api",
"mode": "production",
"createdAt": "2026-07-12T11:00:00Z"
}
}
Bank transfer payout (Senegal — XOF)
curl -X POST https://api.payelecthq.com/pay/api/v1/payout \
-H "Authorization: Bearer <client_id>" \
-H "Content-Type: application/json" \
-d '{
"amount": "250000",
"currency": "XOF",
"destination_type": "BANK",
"destination": {
"country_code": "SN",
"bank_code": "SN001",
"account_number": "SN12345678901234567890",
"account_name": "Fatoumata Ba",
"bank_name": "Ecobank Senegal"
},
"idempotency_key": "payout-vendor-44-2026-07-12"
}'
Destination types
| destination_type | Required destination fields | Countries |
|---|---|---|
MOBILE_MONEY |
country_code, phone, provider, account_name |
GN, SN, CI, CM, BJ, BF, ML, NE, TG, SL, GH, NG, TZ, UG, KE, RW, ZM |
BANK |
country_code, bank_code, account_number, account_name, bank_name |
GN, SN, CI, US (ACH), FR (SEPA), GB |
WALLET |
country_code, wallet_uid or email |
All PayElect markets |
Timing expectations
| Method | Typical settlement | Notes |
|---|---|---|
| Orange Money (GN/SN) | Under 2 minutes | Instant for amounts under 5,000,000 GNF |
| Wave (GN/SN) | Under 2 minutes | |
| MTN MoMo | Under 5 minutes | Occasional delays during peak hours |
| CinetPay mobile money | Under 10 minutes | Covers 17 countries |
| Bank transfer (CEMAC) | 1–2 business days | T+1 cut-off varies by bank |
| ACH (US) | 1–3 business days | Same-day ACH available for premium tier |
| PayElect wallet | Instant | Internal transfer, no provider involved |
Check payout status
curl -X GET https://api.payelecthq.com/pay/api/v1/payout/po_01J4PAYOUTABC123 \
-H "Authorization: Bearer <client_id>"
Possible status values: PENDING_APPROVAL, PENDING, SUCCESS, FAILED. Subscribe to payout.succeeded and payout.failed webhooks for real-time notification.