For a Nigeria-optimised Paystack checkout: (1) enable all payment channels — card, bank transfer, USSD, QR; (2) show bank transfer prominently for customers who use GTBank, First Bank, or Access Bank (they prefer bank transfer for amounts above NGN 50,000); (3) amounts are in kobo — multiply by 100 before passing to Paystack; (4) set currency to NGN explicitly; (5) include the customer phone number so Paystack can enable USSD payment without the customer typing it.
// Nigeria-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, // Enables USSD pre-fill
amount: Math.round(orderAmount * 100), // Convert NGN to kobo
currency: 'NGN', // Explicit — good practice
reference: generateReference(),
channels: ['card', 'bank', 'ussd', 'bank_transfer', 'qr'], // All channels
metadata: {
order_id: order.id,
custom_fields: [
{ display_name: 'Order ID', variable_name: 'order_id', value: order.id.toString() },
],
},
callback_url: 'https://yourapp.com/payment/callback',
}),
});
Channel notes for Nigeria:
card — Visa, Mastercard, Vervebank — direct bank debit (for supported banks)bank_transfer — generates a one-time bank account for bank transfer paymentussd — dial *737# or *919# style codes on any phoneqr — PayAttitude QR code for scan-to-payGet 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