“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:
- How many hours you (or your junior) spend coding the integration
- Monthly fixed fees (spoiler: most are R0 now)
- Payout/settlement fees that delay your cash during load shedding
- Extra work for webhooks, retries, and observability when EskomSePush says Stage 6
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.
2026 Cheapest-First Ranking by Real TCO
- Ozow – Literally free for the first R1 million in sales
- Yoco – Zero monthly fees + automatic rate drops
- Paystack – Wins on bigger purchases
- iKhokha – Great control at 2.85%
- Stitch – Built for the PayShap/open-banking future
- Peach Payments – Perfect for monthly subscriptions
- PayFast – Still works but payout fees hurt
No one charges monthly fees anymore for starters – the game really has changed.
Simple Math That Actually Matters (No Spreadsheets Needed)
Total cost per transaction = (percentage rate × amount) + fixed fee + payout fee
Example for a normal R100 online order:
- Yoco at 2.95% = R2.95 total
- Paystack at 2.9% + R1 fixed = R3.90
Now flip it to a R5,000 laptop sale:
- Yoco = R147.50
- Paystack = R146
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.
The Hidden Cost Nobody Talks About: Payout Fees
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.
The One Trick Every Joburg Architect is Using in 2026
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.
My 2026 Recommendation – Pick One Based on Your Exact Situation
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.
Quick DevOps Resilience Tips for SA Reality
- Never trust the “success URL” redirect – use webhooks + idempotency keys instead.
- Queue failed webhooks in Supabase Edge Functions so load shedding doesn’t lose orders.
- Add a tiny Prometheus exporter and Grafana dashboard to watch success rates per bank (FNB vs Capitec vs Standard Bank). Alert on Slack when failures >5%.
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. 💰🇿🇦
Top comments (0)