Xero payment integration: getting gateway payments into Xero cleanly
A practical guide to Xero payment integration for South African businesses: bank feeds, recording invoice payments, gateway fees, clearing accounts and reconciling.
- Published
- Reading time
- 7 min read
- By
- CentraPoint Team
On this page
A Xero payment integration gets the payments your customers make (by card, instant EFT, debit order or bank transfer) into Xero so invoices are marked paid and your bank account reconciles without retyping. In practice that means three pieces working together: invoices and payments recorded against the right invoice in Xero, bank feeds bringing in what actually hit your account, and a sensible way to handle gateway fees and batched settlements in between.
This guide explains how Xero handles each piece (as described on Xero's own site as of September 2026) and a setup that works for South African businesses taking payments through local gateways.
How Xero handles payments and bank data
Bank feeds
According to Xero South Africa, bank feeds bring transactions from participating banks into Xero automatically, so you don't have to upload statements. Where an automated feed isn't available, you can export a statement from your bank in formats such as OFX, QIF, QBO, QFX or CSV and import it. Xero also lists direct feeds from some payment providers, including Stripe, Wise and PayPal. Xero suggests checking bank feed availability for your specific bank from within the product.
Reconciliation
When bank transactions arrive, Xero suggests matches against invoices, bills and other records, and you can create bank rules for recurring transactions. You approve the suggestion or code the transaction yourself. Xero also describes "cash coding" for handling many similar statement lines at once.
Recording invoice payments
A payment in Xero is applied to a specific invoice and to a bank-type account that allows payments. Once an invoice is fully paid, it moves to Paid. Integrations do this through Xero's Accounting API payments endpoint, which is how most billing and payment tools post payments into Xero.
Online invoice payments
Xero's South African site lists payment services such as Stripe, GoCardless and PayPal that can be connected so customers pay from a Xero invoice. The Xero App Store lists further payment apps, including options used in South Africa. Check each app's listing for what it syncs.
The core problem: payments vs bank deposits
The reason gateway payments are fiddly in any accounting system is that what your customer pays and what lands in your bank are rarely the same line.
Illustrative example. On Monday, three customers pay invoices through a card gateway:
| Invoice | Customer paid |
|---|---|
| INV-2041 | R1,150.00 |
| INV-2042 | R2,300.00 |
| INV-2043 | R575.00 |
| Total | R4,025.00 |
On Wednesday, the gateway settles one deposit to your bank of R3,915.30, after deducting R109.70 in fees. (Fee amounts are made up; check your gateway's pricing page for your actual rates.)
If you try to match that single R3,915.30 bank line directly to three invoices totalling R4,025.00, nothing lines up. You need a place for the payments to sit until the settlement arrives, and a way to book the fees.
The clearing account approach
Most accountants solve this with a clearing account per gateway, set up in Xero as a bank-type account that allows payments:
- Record each customer payment against its invoice, into the gateway clearing account (for example "Card gateway clearing"). The three invoices are now Paid, and the clearing account shows R4,025.00.
- When the settlement arrives in your real bank account, record a transfer of R3,915.30 from the clearing account to the bank account. The bank feed line now matches.
- Book the fees of R109.70 from the clearing account to a bank charges or merchant fees expense account (with VAT treatment as advised by your accountant, based on the gateway's tax invoice).
- Check the clearing account balance. After each settlement it should return to zero, or to the value of payments not yet settled. Anything left over is a mismatch to investigate.
The clearing account gives you a clean audit trail: every invoice payment is visible, every settlement matches the bank, and fees are recorded separately rather than hidden in a net amount.
Handling other payment types
| Payment type | How it usually lands | Suggested approach |
|---|---|---|
| Card or instant EFT via a gateway | Batched settlements, net of fees | Clearing account per gateway, as above |
| Debit orders | Batch deposit, with unpaids and fees reported separately | Clearing account per debit order provider; reverse unpaid payments and re-open the invoices |
| Direct EFT from the customer | Individual bank lines | Match the bank line directly to the invoice |
| Cash | Deposited in batches | Cash-on-hand or undeposited funds account, then transfer |
| Refunds | Gateway deducts from a later settlement | Record the refund against a credit note, through the clearing account |
For debit orders specifically, unpaid collections arrive after the fact. When one comes back, the payment you recorded needs reversing so the invoice shows as outstanding again. Our guide to how debit orders work in South Africa explains why unpaids happen and when they're reported.
A setup checklist
- Decide the source of truth for invoices. Either invoices are created in your billing system and synced to Xero, or created in Xero. Avoid creating the same invoice in both.
- Map your chart of accounts: sales accounts per product or plan, the correct tax rates (15% standard, zero-rated, exempt), a clearing account per gateway, and a fees expense account.
- Connect your bank feed or set a routine for importing statements.
- Agree contact matching. Customer names and email addresses should match between systems so invoices don't create duplicate contacts.
- Align VAT settings and rounding so invoice totals agree to the cent. See tax inclusive vs tax exclusive pricing.
- Test with a few invoices end to end: invoice, payment, settlement, fees and a refund.
- Review the clearing accounts weekly for balances that don't clear.
Common problems
- Duplicate payments when both a sync and a bank rule record the same receipt. Decide which process records payments and switch the other off.
- Invoices paid in Xero but not in your billing system (or the reverse) when someone records a payment manually in only one place.
- Fees missing, so the clearing account never quite reaches zero.
- Tax rate mismatches that make synced invoices differ by a few cents.
How CentraPoint helps
CentraPoint offers accounting integrations with Sage, Xero, QuickBooks and Zoho Books; Pastel export. On the payments side, it connects to gateways such as PayFast, Netcash, Ozow, Yoco, Peach Payments, Paystack and others as modules, records offline EFT and cash payments against invoices, and imports statements to auto-match collections, unpaids, fees and payouts with an exception queue for the rest. That reconciliation work is what keeps your gateway clearing accounts easy to clear. See the reconciliation documentation and the list of supported gateways.
Frequently asked questions
Does Xero have bank feeds for South African banks?
Xero says bank feeds are available from participating banks and suggests checking your specific bank inside Xero. If a feed isn't available, you can import statement files such as OFX or CSV.
Why doesn't my gateway deposit match my invoices in Xero?
Gateways usually settle several payments in one deposit, net of fees. Record payments into a clearing account, then transfer the settlement to the bank and book the fees separately.
What is a clearing account in Xero?
It's an account that holds payments temporarily between the customer paying and the money reaching your bank. It should clear to zero once settlements and fees are recorded.
Can payments be posted to Xero automatically?
Yes. Xero's Accounting API lets integrations apply payments to invoices, and Xero's app store lists payment and billing apps that do this. Check what each integration syncs before relying on it.
- #xero
- #accounting
- #reconciliation
- #integrations