How to verify a bank account in South Africa

Every year South African businesses lose money paying suppliers or employees whose banking details have changed — or whose banking details were fraudulently substituted. The fraud is straightforward: someone intercepts a payment notification, swaps the account number for their own, and the money arrives at the wrong place before anyone notices.

Bank account verification is the check that catches this before the payment goes out. This guide explains how it works in South Africa, which services offer it, and how to integrate it into your supplier onboarding process.

What bank account verification checks

A bank account verification does two things:

  1. Confirms the account exists and is active — the account number is real and accepting payments at the named bank.
  2. Matches the account to an identity — the account holder name (or ID number) on record at the bank matches what you were given.

It does not tell you the account balance. It tells you that the details are genuine and belong to who you think they belong to.

How AVS works in South Africa

South Africa has a formal bank account verification infrastructure called Account Verification Service (AVS), operated through BankservAfrica — the same interbank settlement infrastructure that processes EFTs and debit orders.

AVS connects to all major South African banks. When a business submits a verification request with an account number, account holder name, and ID number, the request is routed to the relevant bank, matched against their records, and a response is returned — typically within seconds.

The response is a match/no-match result across three fields:

  • Account number valid
  • Account holder name matches
  • ID number matches

Real-time vs. batch verification:

ModeUse caseResponse time
Real-time (AVS-R)Single account, immediate checkSeconds
Batch (AVS-B)Bulk employee or supplier listMinutes to hours

Who provides AVS in South Africa

You cannot access BankservAfrica's AVS directly — you go through an approved intermediary. The main providers are:

BankservAfrica Easy AVS — the original source, accessed via approved partners.

Datanamix — provides a unified API that aggregates AVS across all participating SA banks through a single integration.

Consumer Profile Bureau (CPB) — a credit bureau that includes AVS as part of a broader identity and account verification suite.

Electrum — a fintech infrastructure provider offering AVS as part of a payments API stack.

VerifyNow — a standalone SA bank account verification service with a web portal and API.

For most businesses, the choice comes down to whether you need AVS standalone or as part of a broader KYC/identity check.

The "change of banking details" fraud

The most common fraud pattern AVS protects against in South Africa is the changed banking details scam:

  1. A fraudster gains access to a supplier's email (or spoofs it convincingly).
  2. They send an email — often timed to coincide with an upcoming payment — saying the supplier has changed their banking details.
  3. Your accounts team updates the payment details in good faith.
  4. The next payment goes to the fraudster's account.

Banks process payments by account number. The beneficiary name you see on your screen is not validated at payment time — it is just metadata. The money goes to the account number regardless of what name you typed.

AVS is the countermeasure: before updating any supplier's banking details, run a verification. If the new account number does not match the supplier's registered ID number, reject the change.

The SAPS Commercial Crimes Unit documented a significant increase in changed-banking-details fraud targeting SA businesses in 2025. Any business that makes supplier or contractor payments should have a policy requiring AVS before updating banking details.

Integrating AVS into supplier onboarding

A simple onboarding flow with AVS:

Supplier submits banking details via form
          ↓
Your system calls AVS API
          ↓
┌─────────────────┬──────────────────────┐
│ Match           │ No match             │
├─────────────────┼──────────────────────┤
│ Approve details │ Flag for manual      │
│ Store in system │ review — do not pay  │
└─────────────────┴──────────────────────┘

A typical API call to a provider like Datanamix looks like:

const result = await avs.verify({
  accountNumber: '62012345678',
  branchCode: '250655',
  accountHolderName: 'Acme Construction Pty Ltd',
  idNumber: '8001015009087',
});

if (result.accountValid && result.nameMatch && result.idMatch) {
  await db.approveSupplierBankDetails(supplierId);
} else {
  await notifications.flagForReview(supplierId, result);
}

Verifying accounts through transaction data

An alternative verification approach — especially useful for ongoing monitoring rather than one-time onboarding — is to pull a live transaction from the account.

If a client or employee links their bank account via BankLink, you can confirm:

  • The account number (learned from the first sync)
  • That the account is active and accepting transactions
  • That recent transactions exist (the account is being used)

This complements formal AVS by giving you ongoing confidence that an account is still active, not just that it was valid at the point of onboarding.

Getting started

For one-time supplier verification, use a formal AVS provider (Datanamix, VerifyNow, or Consumer Profile Bureau). For ongoing account monitoring — confirming that a linked account is active and transactions are flowing — BankLink's Pulses give you a live data feed.

Link and monitor accounts → app.banklink.co.za