For a South Africa-optimised Paystack checkout: (1) enable channels: ["card", "bank", "eft"] — card and EFT are the dominant methods; (2) set currency: "ZAR"; (3) amounts in ZAR go to Paystack in cents (multiply by 100); (4) Instant EFT allows customers to pay directly from their bank account via internet banking; (5) major SA banks (ABSA, FNB, Nedbank, Standard Bank, Capitec) are all supported.
// South Africa-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,
amount: Math.round(orderAmountZAR * 100), // ZAR to cents
currency: 'ZAR',
reference: generateReference(),
channels: ['card', 'bank', 'eft'], // Card and EFT for SA
metadata: {
order_id: order.id,
},
}),
});
Supported payment channels in South Africa via Paystack:
card — Visa, Mastercard (Amex via card network)bank — Direct bank debit for supported SA bankseft — Instant EFT via internet banking (ABSA, FNB, Nedbank, Standard Bank, Capitec)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