Course invoicing that ends in Xero, not in a spreadsheet.
Zooza holds the bookings, the payment plans and the discounts. Xero holds the books. The integration moves invoices and payments between them so the office is not retyping a term’s worth of enrolments into the accounts.
This page is the detail a bookkeeper will ask for before you switch: what syncs, in which direction, and where the edges are.
What moves, and which way
Three separate flows, and only one of them runs in both directions. Knowing which is which is most of what goes wrong in a badly set-up migration.
Invoices
Zooza → Xero Every time a payment is recorded in Zooza, an invoice is created in Xero. Xero assigns the invoice number, so your numbering sequence stays where your accountant expects it. Discounts, registration fees and payment schedules come across as line items.
Payments
Zooza → Xero After the invoice exists, payment sync runs automatically. Each payment — credit, bank transfer, direct debit, Stripe, refund — appears as its own transaction in Xero against that invoice. Zooza checks what Xero still says is owed before syncing, so a double-send cannot overpay an invoice, and anything already synced is skipped.
Tax rates
Xero → Zooza The one that flows the other way. VAT payers pull their rates from Xero with a manual sync. Tax is managed in Xero, not in Zooza — so if an invoice comes out tax exempt, the rate is missing in Xero rather than mis-set in Zooza.
What you set up once
Three mappings, and then it runs. Most of the support tickets are a missing one of these.
A bank account in Xero
It has to be of type Bank Account and have a code assigned. Payments have nowhere to land without it.
A revenue account with a tax rate
The rate lives on the account in Xero. This is what Zooza reads when it pulls rates across.
Account codes per transaction type
Map each type in the Invoice Line Types section, so course fees, registration fees and discounts land in the right places rather than all in one bucket.
What it will not do
Four of these catch people out, and all four are easier to plan around than to discover in March. We would rather you read them here than find them during a year-end.
Xero re-authorisation every 60 days
This is Xero’s own security policy, not a Zooza limit. The part that matters operationally: an expired connection stops the sync silently. Nothing alerts you, so it is usually found during reconciliation, weeks later. Put the renewal in a calendar.
No credit notes
Credit notes are deliberately not created automatically — raise them in Xero. Zooza keeps the refund records as the reference you work from.
Nothing into a closed period
Xero refuses invoices dated into a closed year, so a missing invoice from a prior fiscal year cannot be generated retroactively. That one goes in by hand.
Payments taken outside Zooza stay invisible
Cash in the hall, a direct Stripe link, a bank transfer nobody recorded — if the payment was never entered in Zooza, no invoice is generated for it, and your bank deposits will not match. Record payments in Zooza and the problem does not arise.
No local PDF copy
Zooza links to the invoice in Xero rather than storing its own PDF. Edits made in Xero come back to Zooza only after a manual refresh.
Setup detail lives in the help centre: help.zooza.online/payments/xero-integration/ · help.zooza.online/payments/xero-invoicing-faq/
Questions a bookkeeper asks first
-
Which system issues the invoice number?
Xero does. Zooza triggers the invoice, Xero numbers it — so your sequence stays unbroken and your accountant keeps working in the system they already audit from. -
What date does the invoice carry?
The date the payment was received, not the date the booking was made. For a family who enrols in September and pays in November, the invoice is a November one. Worth knowing before you reconcile a term against enrolment dates. -
Can the same payment be synced twice?
No. Zooza checks what Xero still reports as owed before it sends anything, and payments that have already synced are skipped. The guard is on the Zooza side, so it holds even if someone re-runs a sync by hand. -
We use Stripe as well. Will the transactions duplicate?
They can, if Stripe’s bank feed in Xero is switched on alongside the Zooza sync — then the same money arrives twice, once per invoice and once in the payout. Pick one model: individual invoice tracking through Zooza, or bulk payout reconciliation through the feed. Running both is the usual cause of duplicate records. -
Invoices are coming out tax exempt. What is wrong?
Almost always a missing rate in Xero rather than a Zooza setting, because tax rates are managed entirely in Xero. Check the rate exists on the revenue account, then re-sync the connection from Zooza to pull it across. -
Does Zooza support accounting systems other than Xero?
Yes. SuperFaktura in Slovakia, Fakturoid and Abra Flexi in Czechia, SmartBill in Romania and Szamlazz in Hungary all connect directly, and where there is no live connector — Pohoda, Omega and MRP among them — Zooza exports in a form the bookkeeper imports rather than retypes.
Let the bookings write the books.
Connect Xero once, map three accounts, and a term of enrolments stops being a retyping job. Start on a free account and connect when you are ready.