For a Rwanda-optimised Paystack checkout: (1) enable channels: ["mobile_money", "card"] — mobile money first; (2) set currency: "RWF"; (3) RWF amounts go to Paystack in the smallest unit (multiply by 100); (4) include the customer phone number (07XXXXXXXX) so Paystack routes the mobile money prompt correctly; (5) MTN MoMo Rwanda (078/079 numbers) and Airtel Money Rwanda (073 numbers) are both supported.
// Rwanda-optimised transaction initialization
var response = await fetch('https://api.paystack.co/transaction/initialize', {
method: 'POST',
headers: {
Authorization: 'Bearer ' + process.env.PAYSTACK_SECRET_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: customer.email,
phone: customer.phone, // e.g., '0781234567' (MTN) or '0731234567' (Airtel)
amount: Math.round(orderAmountRWF * 100), // RWF to smallest unit
currency: 'RWF',
reference: generateReference(),
channels: ['mobile_money', 'card'],
metadata: {
order_id: order.id,
},
}),
});
Mobile money operators in Rwanda on Paystack:
Paystack identifies the operator from the phone number prefix and routes the payment prompt accordingly.
Get weekly developer tips
Join 25,000+ developers. Practical guides, job tips, and new content — straight to your inbox.
No spam. Unsubscribe anytime.
This guide is part of the Paystack by country guide.
KES 2,999
The definitive guide to building payment systems with Paystack — from your first transaction to production-grade payment infrastructure across Africa. 9 modules, 47 lessons. Free preview available.
Start Paystack Course