South African bank details explained

"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:

FieldExampleNotes
Bank nameFirst National BankRequired for context
Account holder nameAcme Construction (Pty) LtdMust match the account exactly
Account number620123456789–11 digits depending on bank
Branch code2506556 digits — use the universal code
Account typeCheque / Savings / TransmissionRequired 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:

BankUniversal Branch Code
FNB (First National Bank)250655
Standard Bank051001
ABSA632005
Nedbank198765
Capitec470010
African Bank430000
Investec580105
TymeBank678910
Discovery Bank679000
Using an old branch-specific code instead of the universal code will usually still work — the bank maps old codes to the right branch — but using the universal code is cleaner and avoids edge cases with older payment systems.

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:

BankSWIFT / BIC Code
FNBFIRNZAJJ
Standard BankSBZAZAJJ
ABSAABSAZAJJ
NedbankNEDSZAJJ
CapitecCABLZAJJ
InvestecIVESZAJJ

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.

Link a bank account → app.banklink.co.za