
Ayabonga Qwabi“Cheapest” here isn’t just the transaction percentage you see on the marketing page. It’s Total Cost...
“Cheapest” here isn’t just the transaction percentage you see on the marketing page.
It’s Total Cost of Ownership (TCO) – everything that hits your pocket and your sanity:
I pulled the latest 2026 numbers from the gateways themselves + SARB ecosystem data. Here’s the honest ranking for a typical Joburg or Cape Town indie store doing R50k–R200k/month.
No one charges monthly fees anymore for starters – the game really has changed.
Total cost per transaction = (percentage rate × amount) + fixed fee + payout fee
Example for a normal R100 online order:
Now flip it to a R5,000 laptop sale:
Break-even point: anything over roughly R2,000 and Paystack starts saving you money.
Low-ticket kasi retail? Yoco. High-ticket or scaling? Paystack pulls ahead fast.
This is what kills cash flow when load shedding hits and you need money in the bank today:
| Gateway | Payout Fee | Money in Bank Speed | Real Pain for Small Biz |
|---|---|---|---|
| Peach | Free | Next business day | None |
| Stitch | R2 – R10 | Instant | Low |
| Yoco | R2.50 (sometimes) | 1–2 days | Medium |
| Paystack | R3 | Next day | Medium |
| Ozow | R5 | Immediate | Medium |
| PayFast | R8.70 | 2–3 days | High |
PayFast is still popular, but that R8.70 payout fee adds up fast when you’re trying to pay suppliers while the lights are off.
Build one tiny Payment Orchestrator (just one Next.js API route or Server Action) that automatically picks the cheapest gateway based on payment type and basket size. It survives load shedding and saves you thousands every month.
Here’s the exact code you can copy today:
// app/api/orchestrate-payment/route.ts
import { NextResponse } from 'next/server';
const rules = {
eft: { name: 'ozow', fee: 0, url: 'https://api.ozow.com/v2/payment' }, // free first year!
cardLow: { name: 'yoco', fee: 2.95 },
cardHigh:{ name: 'paystack',fee: 2.9 } // anything over R2,000
};
export async function POST(req: Request) {
const { amount, method, orderId } = await req.json();
const chosen = (amount > 2000 && method === 'card')
? rules.cardHigh
: rules[method] || rules.cardLow;
// Call the chosen gateway here...
const res = await fetch(chosen.url, { /* your headers & body */ });
// Log to Supabase for Grafana monitoring during load shedding
await logPayment({ gateway: chosen.name, amount, orderId });
return NextResponse.json({ redirectUrl: data.url, gatewayUsed: chosen.name });
}
Add HMAC webhook verification + an idempotency key (simple UUID) and you’re bulletproof. Total extra work: 90 minutes. Monthly savings: often R1,000–R3,000 depending on volume.
Just starting / side-hustle / first R1 million → Ozow
Zero fees on EFT, instant bank transfers, no chargeback drama. Perfect while you test the market.
Low-ticket retail (coffee, clothes, spaza online) → Yoco
No monthly fee and the rate drops automatically the more you sell (down to 2.55%). Super simple redirect checkout.
High-ticket items or growing fast → Paystack
Beautiful popup that keeps customers on your site + a dashboard that tells you exactly why a payment failed. Best developer experience in Africa.
You want full control of the checkout page → iKhokha
Uses “signed payloads” (you create a secure HMAC-SHA256 signature in code). No one can change the amount in transit. Durban-made pride.
Running SaaS or monthly subscriptions → Peach Payments
“Tokenization” lets you save a card safely once and charge it every month without touching the full card number. Free daily payouts too.
Planning for PayShap and open banking in 2027 → Stitch
White-label everything (your branding the whole way) and direct bank connections for real-time payments.
Drop your current real monthly TCO in the comments (be honest – we’re all devs here).
Ozow? Yoco? Still on PayFast? Or did you build the orchestrator already?
I’m dropping the full orchestrator repo + free TCO calculator on GitHub this week – comment “REPO” and I’ll DM the link the moment it’s live.
Let’s keep building affordable, resilient fintech in Mzansi.
Grind smart, ship paid. 💰🇿🇦