{{ r.d }}
Upload a file in the dashboard. Monerails validates every line, picks the right operator for each recipient, and reports each payment back to you.
{{ f.d }}
{{ code }}
{{ hook }}
Pay out directly to MTN MoMo, Orange Money, M-Pesa, Airtel Money, Wave and more.
Send to bank accounts in local currency, where bank payouts are supported.
Thousands of mobile money and bank payouts from one CSV in the dashboard.
Upload a file in the dashboard. Monerails validates every line, picks the right operator for each recipient, and reports each payment back to you.
Send an Idempotency-Key with every payout: a retry never pays twice.
Owner, Finance, Approver and Developer roles decide who can pay, settle or issue cards.
payout.succeeded or payout.failed for every payment; on failure the money returns to your balance.
Every payment screened against sanctions lists before it leaves.
Pay on a date or a recurring schedule, from the right balance. Coming soon.
Downloadable confirmations with references for each payout.
Live status and webhooks from submitted to paid.
Failed payouts return to your balance automatically, with the reason.
// Send a payout (one recipient per call)
await fetch('https://api.monerails.com/v1/payouts', {
method: 'POST',
headers: { Authorization: `Bearer ${MONERAIL_KEY}`,
'Content-Type': 'application/json' },
body: JSON.stringify({
amount: 980000, currency: 'GHS', // GHS 9,800.00
recipient: { type: 'mobile_money', name: 'Kwame Mensah',
phone: '233240000117', operator: 'MTN' },
client_reference: 'PAYOUT-0457',
}),
});
// → 201 · status: 'pending' · one call per payout
// webhook → payout.succeeded
{
"id": "5c1d7e2a-8f43-4b6e-a1d9-2e7f0b3c9a58",
"object": "event",
"type": "payout.succeeded",
"data": { "object": {
"id": "a47e2b19-6c3d-4f8a-b5e0-91d2c7f4a036",
"status": "succeeded",
"amount": 980000, "currency": "GHS",
"client_reference": "PAYOUT-0457"
} }
}