← Guides
Integration How-Tos·8 min read·

How to connect FNB to Xero

If you're running a South African business on Xero and banking with FNB, connecting the two is one of the highest-return setup tasks you can do. Once it's running, your FNB transactions appear in Xero automatically, reconciliation becomes a daily task measured in minutes rather than a monthly task measured in hours, and your books stay current without manual bank statement imports.

This guide covers what the connection does, how to set it up, what it can't do, and how to handle the payment side of the equation that the feed alone won't solve.

What the FNB bank feed actually does

FNB appears in Xero's South African bank list, and once connected, transactions flow into Xero automatically, typically within a business day of clearing.

It is worth knowing what kind of feed it is, because it explains the behaviour most FNB users eventually run into. Three South African banks have a direct feed, where the bank itself sends the data to Xero: Nedbank, Investec and Bank Zero. FNB is not one of them. Its connection runs through an aggregator, a third-party service that logs into your internet banking on a schedule and reads the transactions off the screen.

You can check this for any bank. Xero's help centre publishes a dedicated article for each bank that has a direct feed, titled "[bank name] direct feeds". There is one for Nedbank and one for Investec. There is not one for FNB.

That works until it does not. A changed login page, an added security step, an expired session or a fraud control tripping on the automated login will stop it, usually without an obvious warning. Xero's own product forum has an open request for a genuine FNB direct feed, with businesses reporting long stretches of unreliability on the current one.

The practical consequence: check that transactions are still arriving rather than assuming they are. A feed that quietly stops mid-month is far more expensive than one that visibly breaks, because you find out at reconciliation and then have to work out how far back the gap goes.

Can you just build a better feed yourself?

This is the obvious next question, and we looked into it properly because a client asked us the same thing about this exact problem.

The short answer is no, and the reason is at Xero's end rather than FNB's.

FNB does expose the data. Its Integration Channel offers a transaction history API tied to your own online banking profile, and FNB already pushes transaction history straight into Sage accounts for customers who use it. So the raw material is there.

Xero's bank feeds interface is the blocker. It is closed, open only to financial institutions with an established partnership with Xero, and certification takes months with no guarantee of approval. A consultancy cannot get on it, and neither can you.

Anything built outside that route can still put transactions into Xero, but they land as completed entries rather than as statement lines waiting to be reconciled. No reconciliation queue, no matching against your invoices and bills, and a duplicate risk if the ordinary feed wakes up again. For anyone doing the books, the reconciliation screen is the job, so a pipe that skips it has not fixed the problem, it has moved it.

What can be done, and it is worth more than it sounds

The expensive part of a broken feed is not the break. It is the fortnight before anybody notices.

A check that watches for silence. If an account that normally sees daily activity has had nothing for longer than it should, somebody gets told that day instead of at month end. This is small to build, needs no permission from Xero or FNB, and turns a reconciliation crisis into a ten-minute import.

A recovery routine that is ready to go. When the feed does drop, the missing days get pulled and prepared as a statement file, so restoring the gap is one upload rather than an afternoon of working out where the hole starts and ends.

Neither is glamorous and neither pretends to replace what Xero will not open up. Together they remove almost all of the actual cost. If your FNB feed has been dropping and you have been finding out late, tell us what your month end looks like and we will tell you honestly whether this is worth doing for you.

Each transaction comes through with the date, amount, and the reference as it appears on your bank statement. Xero then tries to match each transaction against an existing invoice, bill, or spend money entry in your books. Transactions it can match with high confidence get suggested for reconciliation. Transactions it can't match sit in your reconciliation queue for you to categorise manually.

Over time, Xero learns from your reconciliation decisions. If you consistently code a transaction from a specific payee to a specific account, Xero will suggest that coding automatically for future transactions from the same payee.

What the bank feed does not do: it does not initiate payments. The feed is read-only: transactions appear in Xero after they've happened in FNB, not before. If you want to pay bills or suppliers from within Xero and have those payments execute in FNB, that requires a separate process covered below.

How to set up the FNB bank feed in Xero

Step 1: Add your FNB account in Xero

In Xero, go to Accounting → Bank Accounts → Add Bank Account. Search for "First National Bank" and select it. Enter your FNB account number.

Xero will prompt you to connect the feed. Choose the connected feed rather than the manual import option, since you want transactions arriving on their own.

Step 2: Authorise the connection through FNB

Xero will redirect you to FNB's authorisation page. Log in to your FNB Business Online profile and approve the data sharing request. This grants Xero read access to your transaction history.

Once authorised, Xero will import up to 90 days of historical transactions and begin pulling new transactions automatically from that point.

Step 3: Set up bank rules

Before you start reconciling, set up bank rules for your most frequent transaction types. In Xero, go to Accounting → Bank Accounts → [your account] → Manage Account → Bank Rules.

A bank rule tells Xero: "whenever you see a transaction with these characteristics, code it to this account and this contact automatically." Rules save significant time on recurring transactions like bank charges, payroll, and regular supplier payments.

Step 4: Reconcile regularly

The feed works best when reconciliation is done frequently: daily or every few days. Letting it build up defeats the purpose of the automation. The reconciliation queue in Xero shows you matched suggestions to accept and unmatched transactions to categorise.

What the bank feed can't do, and how to handle it

Batch payments from Xero to FNB

The most common gap: you've captured bills in Xero and want to pay them through FNB without manually re-entering payment details in FNB Business Online.

FNB does not have a public API that allows third-party systems to initiate payments. This is a deliberate security decision: direct payment initiation from external systems requires a corporate banking agreement and integration that sits outside what most businesses need.

The practical workaround is a batch payment file. Xero can generate a payment export file from a batch of approved bills. FNB Business Online accepts a CSV file in a specific format for batch payment uploads: the file contains the payee account details, amounts, and references for multiple payments, which can be uploaded and approved in a single step.

The process:

  1. In Xero, select the bills you want to pay and create a batch payment
  2. Export the batch payment file from Xero (Business → Bills to pay → select the bills → Batch Payment → Make Payment → Export Batch File)
  3. Log in to FNB Business Online → Payments → Batch Payments → Upload File
  4. Review the batch and authorise payment

This is not fully automated. It still requires someone to log in to FNB and authorise the payment. But it eliminates re-entering payment details manually and reduces a multi-step manual process to a file upload and an authorisation click.

Transaction references

FNB transaction references are often truncated or formatted in ways that make automatic matching difficult. A payment reference that appears clearly in Xero may appear as a shortened string in the bank feed. If you find Xero struggling to match transactions automatically, check whether the reference format is consistent between what you're issuing and what appears on the bank statement.

Multi-currency accounts

If you hold foreign currency accounts with FNB, the bank feed behaviour for those accounts differs from ZAR accounts. Xero supports foreign currency bank accounts, but the feed setup and reconciliation process for foreign currency requires additional configuration in Xero's currency settings.

When to bring automation into the process

The bank feed handles the data flow between FNB and Xero automatically. For most businesses, that's enough.

Where automation adds value on top of the feed:

  • Automatic reconciliation reporting: if you need a daily or weekly reconciliation status report sent to a specific person or system, n8n can pull that data from the Xero API and deliver it automatically
  • Exception alerts: if a transaction appears in the FNB feed that doesn't match any expected invoice or bill, an automated alert can flag it immediately rather than waiting for the next reconciliation session
  • Multi-entity consolidation: if you're reconciling multiple FNB accounts across multiple Xero organisations, automation can consolidate the status across all of them into a single view

These are extensions of the feed, not replacements for it. The feed does the heavy lifting. Automation handles the edge cases and reporting that the feed doesn't cover.

If you need FNB connected to other business systems beyond Xero (your CRM, payment platform, or operations software), that falls under systems integration rather than a single bank feed setup. For Xero-specific integration work, the Xero integration specialist page covers what that engagement looks like.

Summary

What the FNB bank feed doesWhat it doesn't do
Pulls FNB transactions into Xero automaticallyInitiate payments from Xero to FNB
Suggests reconciliation matches based on your historyHandle truncated or inconsistent references automatically
Imports up to 90 days of historical transactions on setupReplace the need to authorise payments in FNB Business Online

The feed brings transactions in. Paying bills out still means logging into FNB to authorise the batch, and truncated references still break automatic matching. Those are the parts we build.

Describe what you're working with and we'll come back with something specific, not a sales call.

Get your free audit