Contents
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 has a direct feed to Xero, set up from FNB's side. Xero's help centre says transactions appear in Xero daily between 5am and 8am. FNB's own guide says to allow up to 48 hours after the settlement day for a transaction to come through.
It is worth knowing what kind of feed you have, because FNB accounts can be on either. A direct feed is an arrangement between the bank and Xero, where the bank sends the data itself. An aggregator feed is a third-party service that logs into your internet banking on a schedule and reads the transactions off the screen. FNB's guide refers to an older Yodlee link, which is an aggregator connection, and some FNB accounts in Xero may still be on it. FNB's guide says to deactivate that link when you set up the direct feed.
You can check this for any bank. Xero's help centre publishes articles titled "[bank name] direct feeds" for the banks it has a direct feed with. There is one for FNB, as there is for Nedbank and Bank Zero.
Xero lists current, savings and foreign currency accounts as eligible for the FNB direct feed. Credit cards and loans are not on that list. So check how any FNB card or loan account in Xero is connected: if it is on the older aggregator link, 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.
The practical consequence, for anything still on the aggregator: 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 for the accounts the direct feed does not cover, 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 that is the service FNB's own Xero feed runs on. 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: Switch off any existing feed on the account
If the FNB account is already in Xero on the older Yodlee link, switch that off first, as FNB's guide says. Xero's help centre explains how: go to Accounting → Bank Accounts, click the menu icon next to the account, and under Bank Feeds choose Deactivate Feed or Disconnect. Before you do, note the date of the last transaction it brought in.
Do not disconnect a direct feed that is already working. Xero says that if you cancel a direct feed, you have to wait two weeks before you can connect it again.
If the account is not in Xero yet, or you only import statements into it by hand, skip this step.
Step 2: Connect the feed from FNB
The direct feed is set up from FNB's side, not from Xero's. You need to be an authorised representative, mandated person or administrator on the FNB profile.
- In FNB Online Banking Enterprise, go to Business solutions → Integration Channel → Service task
- Open the API tab and click Subscribe next to Transaction History
- Choose "Through a third-party" and select Xero
- Select the accounts to feed into Xero (FNB's guide says not to select accounts starting with 8), accept the consent and submit
- FNB sends you to Xero: log in, check the prompt names the right organisation, and click Allow access
- Back in FNB, check that Transaction History now shows as Subscribed
The FNB Business App has the same option under Menu → Business solutions → Integration Channel. If Integration Channel does not appear under Business solutions, FNB's guide says to contact your platform specialist or the FNB Business Helpdesk on 0877 362 247. FNB's guide says there is no FNB charge for the feed.
Step 3: Fill the gap once
FNB's guide says transaction history only starts transferring from the next day's sync, so there can be a gap between your old feed's last transaction and the direct feed's first. Xero's own article says to check for missing or duplicate transactions when the feed starts. If any days are missing, download an FNB statement for them, import it into Xero once, and delete any duplicates.
Step 4: 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 5: 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.
Xero cannot instruct FNB to make a payment. FNB's Integration Channel, the same service the bank feed runs on, also lists domestic payments, but you apply to FNB for the Integration Channel, and linking it to your approved bills is a build, not a setting. For businesses with enough payment volume, that build can mean approved bills land in FNB ready for someone to authorise, with no re-typing. For most businesses, the practical route 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:
- In Xero, select the bills you want to pay and create a batch payment
- Export the batch payment file from Xero (Business → Bills to pay → select the bills → Batch Payment → Make Payment → Export Batch File)
- Log in to FNB Business Online → Payments → Batch Payments → Upload File
- 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
FNB's direct feed covers foreign currency accounts as well as rand accounts. Xero's FNB article notes that you need multicurrency switched on in Xero to hold them.
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 does | What it doesn't do |
|---|---|
| Sends FNB transactions into Xero daily, straight from FNB | Initiate payments from Xero to FNB |
| Suggests reconciliation matches based on your history | Handle truncated or inconsistent references automatically |
| Covers current, savings and foreign currency accounts | Cover credit cards or loans, which are not on Xero's eligible list |
| Starts transferring from the next daily sync | Guarantee there is no gap when you switch over, so check when it starts |
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 →Read next