
"Bank details" in South Africa refers to the set of identifiers needed to send or receive money. The combination of fields required depends on whether the payment is domestic or international — and using the wrong code is one of the most common reasons payments fail or land in the wrong account.
This guide covers every component of South African bank details, when you need each one, and what to watch out for.
The components of South African bank details
A complete set of SA bank details for a domestic EFT includes:
| Field | Example | Notes |
|---|---|---|
| Bank name | First National Bank | Required for context |
| Account holder name | Acme Construction (Pty) Ltd | Must match the account exactly |
| Account number | 62012345678 | 9–11 digits depending on bank |
| Branch code | 250655 | 6 digits — use the universal code |
| Account type | Cheque / Savings / Transmission | Required by some platforms |
For an international transfer, you need the SWIFT/BIC code instead of the branch code.
Branch codes: specific vs. universal
Historically, every bank branch in South Africa had its own unique 6-digit branch code. If you banked at the Sandton City FNB branch, you used a different code than the Rosebank branch.
All major SA banks have since introduced universal branch codes — a single code that works for any branch at that bank. You should always use the universal code unless a specific platform explicitly requires otherwise.
Universal branch codes for major SA banks:
| Bank | Universal Branch Code |
|---|---|
| FNB (First National Bank) | 250655 |
| Standard Bank | 051001 |
| ABSA | 632005 |
| Nedbank | 198765 |
| Capitec | 470010 |
| African Bank | 430000 |
| Investec | 580105 |
| TymeBank | 678910 |
| Discovery Bank | 679000 |
SWIFT/BIC codes for international transfers
South Africa does not use the IBAN (International Bank Account Number) system used in Europe. For international transfers into or out of South Africa, you use:
- The recipient's account number
- The bank's SWIFT/BIC code (8 or 11 characters)
SWIFT codes for major SA banks:
| Bank | SWIFT / BIC Code |
|---|---|
| FNB | FIRNZAJJ |
| Standard Bank | SBZAZAJJ |
| ABSA | ABSAZAJJ |
| Nedbank | NEDSZAJJ |
| Capitec | CABLZAJJ |
| Investec | IVESZAJJ |
An 8-character SWIFT code refers to the bank's head office. An 11-character code (with 3 extra characters at the end) refers to a specific branch. For most international transfers, the 8-character head office code is correct.
Account types in South Africa
SA banks typically offer three account types for businesses:
Cheque account (also called a current account) — the standard transactional account for businesses. Supports debit orders, EFTs, and debit card payments.
Savings account — earns interest, but may have limits on the number of monthly transactions or require a notice period for withdrawals.
Transmission account — a high-volume transactional account designed for businesses processing large numbers of payments. No cheque book, no debit card — purely electronic. Often used by payroll providers and property managers.
When filling in bank details for a supplier or employee, the account type matters. An EFT sent to a savings account from a system that expects a cheque account will usually still clear, but some older payment systems reject the mismatch.
Why bank details need to match exactly
Payment fraud in South Africa increasingly involves changed banking details. A fraudster intercepts a supplier invoice, changes the bank account number to their own, and the payment goes to the wrong place.
The account holder name on a payment does not prevent this — SA banks process payments by account number, not name. If you pay the wrong account number, the payment arrives there regardless of whose name you typed.
This is why businesses verify bank details before making first payments to new suppliers — not just for correctness, but for fraud prevention. See How to Verify a Bank Account in South Africa for how AVS works.
Getting bank details into your software
If you need to retrieve bank account details programmatically — for example, to confirm that a linked account is active and the details are current — BankLink can pull the account number and bank name from a live transaction sync. The account number is learned from the first sync on a linked account.
This is more reliable than asking a client to type their details manually, where transcription errors are common.
