Skip to content
EzeFlow

Guide · 7 min read

FNB bulk payments from a CSV file: a step-by-step guide

To pay many suppliers at once in FNB Online Banking Enterprise, you import a payments CSV file. It has three short header rows (a template line, the payment date, and your paying account with a hash total), a row of column headings, then one line per payment. Build it only from approved payments and verified supplier details, do not re-save it in Excel, and let your FNB authorisers release the batch as usual.

Updated By the EzeFlow team

In short

  • One file pays from one account on one payment date.
  • Each payment line needs a name, account number, account type, 6-digit branch code, amount and two references of up to 20 characters.
  • The hash total is the sum of all account numbers plus your own account, last 12 digits.
  • Never open and re-save the file in Excel. It can damage account numbers and branch codes.
  • The file only prepares payments. Your FNB authorisers still release them.

How does an FNB bulk payment import work?

Instead of capturing twenty supplier payments one by one, you prepare them in a CSV file and import the file into FNB Online Banking Enterprise. FNB reads the lines, shows you the payments, and they then go through your normal FNB authorisation. Nothing is paid until your authorisers release it.

FNB publishes a payments CSV template and an import guide. The layout below is the one EzeFlow builds, based on that template. FNB can change its rules, so for menu paths, cut-off times and limits, check FNB's current import guide in Online Banking Enterprise.

What does the FNB payment CSV look like?

Here is a shortened example with two made-up payments. In the real file every row has 36 columns, and most of them are empty.

BInSol - U ver 1.00
30-09-2026
62000000000,125000000011
RECIPIENT NAME,RECIPIENT ACCOUNT,RECIPIENT ACCOUNT TYPE,BRANCHCODE,AMOUNT,OWN REFERENCE,RECIPIENT REFERENCE,EMAIL 1 NOTIFY,...
Apex Radiator Works,62000000011,1,250655,12480.00,EZF-01174,INV 01174
Karoo Office Supply,1000000000,1,470010,3215.50,EZF-01181,KOS 88213
  • Row 1 is the template line. Leave it exactly as FNB supplies it.
  • Row 2 is the payment (action) date, written DD-MM-CCYY.
  • Row 3 is your own paying account, then the hash total.
  • Row 4 holds the column headings.
  • Row 5 onwards is one payment per line.

The payment columns, as EzeFlow fills them:

ColumnWhat goes inWatch out for
Recipient nameThe supplier's name as you want it on the paymentUp to 20 characters, plain letters and numbers
Recipient accountThe account numberDigits only, no spaces or dashes
Recipient account type1 current or cheque, 2 savings, 3 transmission, 4 bond, 6 subscription shareMost business accounts are type 1
Branch codeThe recipient bank's branch codeExactly 6 digits, including a leading zero
AmountRand and cents, for example 12480.00No R, no spaces, no thousands separator
Own referenceWhat shows on your statementUp to 20 characters
Recipient referenceWhat shows on the supplier's statementUp to 20 characters
Email, fax and SMS notifyOptional payment notificationsEzeFlow fills email 1 only when the supplier has a notification email

For the references, use something both sides can match. Your own reference should point to your internal record, such as the payment request number. The recipient reference should be the invoice number or your account number with the supplier, because that is what their debtors clerk will look for.

How is the hash total calculated?

Add up every recipient account number in the file, add your own paying account number once, and keep the last 12 digits. If the answer is shorter than 12 digits, pad it with zeros on the left. That is how EzeFlow calculates it, following FNB's guide.

For the example above:

Apex Radiator Works62 000 000 011
Karoo Office Supply1 000 000 000
Own account, added once62 000 000 000
Sum, last 12 digits125000000011

The hash total is a control number. If anyone changes an account number in the file after it was built, the hash total no longer matches the accounts in it. That is also why you should not "fix" a line by hand in the file: fix the supplier record and build the file again.

Step by step: from approved invoices to released payments

  1. Start from approved payments only. Every line should trace back to a request with its invoice and the approvals your policy requires.
  2. Check the bank details. Compare each supplier against your supplier master file and your beneficiary list in FNB. Anything new or changed must be verified by phone first.
  3. Choose the paying account and date. One file, one account, one payment date.
  4. Build the file. Keep names and references short and plain, and amounts in 12480.00 format.
  5. Note the control figures: number of lines, total amount and hash total.
  6. Import the file in FNB Online Banking Enterprise, following FNB's import guide.
  7. Compare FNB's summary with your control figures before anything is authorised.
  8. Authorisers release the payments in FNB, as they would for any batch.
  9. Mark the payments paid once FNB has released them, so your records and the bank agree.

Common problems and how to avoid them

ProblemHow to avoid it
Account numbers turned into 6.2E+11 or branch codes losing their leading zeroThe file was opened and saved in Excel. Build it again and import it untouched.
Commas, quote marks or accents in namesA comma splits a column in two. Use plain characters only. EzeFlow strips them out and turns é into e.
Names or references cut offKeep both to 20 characters. Put the invoice number first so it survives.
Wrong branch code or account typeTake both from the supplier's bank confirmation letter, not from an invoice.
Amount written as R12 480,00Use 12480.00: a full stop for cents, nothing else.
Payment date in the pastSet the date before you build the file. EzeFlow suggests the next business day.
A foreign currency invoice in the batchKeep it out of the rand file and pay it separately.

What should you check before you import?

A clean file is not the same as a safe payment. The file will happily pay a fraudster if the account number in your system is wrong. Before building it, check:

  • Was the request edited after it was approved?
  • Were the supplier's bank details changed after the approval?
  • Is the supplier's account on your FNB beneficiary list, with the same branch code?
  • Is the supplier blocked, or is the account number or branch code invalid?
  • Is the same amount going to the same supplier twice, in this batch or recently?
  • Is the amount far above what you usually pay this supplier?

How EzeFlow helps

EzeFlow's bank payments module, in the Professional and Enterprise plans, builds this file for you. Your named bank team keeps a supplier master file (bank account numbers stored encrypted, every change recorded) and uploads the FNB beneficiary export to compare. Approved payments go into one batch per organization, paid from that organization's FNB account. A payment can be tagged "new beneficiary" or "changed bank details" so it stays out of the file until the details are set up in EzeFlow and FNB.

Before finalising, EzeFlow runs every check in the list above, including amounts more than three times the supplier's usual payment. Lines with a problem move to a separate list to capture by hand, and warnings must be confirmed. You then download the FNB CSV with its hash total, and mark the lines paid once FNB has released them. EzeFlow never moves money.

Frequently asked questions

What date format does the FNB payment CSV use?

In the FNB payments template that EzeFlow follows, the payment date is on row 2 in the format DD-MM-CCYY, for example 30-09-2026. EzeFlow will not build a file with a date in the past or more than a year ahead. If your template looks different, check FNB's current import guide in Online Banking Enterprise.

How is the FNB hash total calculated?

Add up all the recipient account numbers in the file, add your own paying account number once, and keep the last 12 digits, padded with zeros on the left if the result is shorter. It sits next to your own account number on row 3. EzeFlow calculates it for you.

Can one FNB CSV file pay from more than one account?

No. Row 3 holds one paying account, so every payment in the file comes out of that account. If you pay from several accounts, for example one per branch or company, build one file per account.

Can the file pay suppliers who bank with other South African banks?

Each line carries the recipient's branch code and account type, so the recipient does not have to bank with FNB. Use the universal branch code from the supplier's bank confirmation letter, and check FNB's import guide for any limits on your own banking profile.

Does EzeFlow send the payments to FNB?

No. EzeFlow never moves money and never connects to your bank account. It builds the CSV file from approved, checked payments. Your team imports the file into FNB Online Banking Enterprise and your FNB authorisers release the payments there.

What happens to foreign currency payments?

They do not belong in this rand payments file. EzeFlow keeps any payment that is not in rand out of the CSV and puts it on a separate list to capture by hand, for example through FNB's forex service.