DataNinja

Make a spreadsheet fit another system

A file in whatever shape it came in, out as something Xero's importer or your bank accepts. Cleaned on the way through, with every row and every dollar accounted for.

In Xero: Accounting → Chart of accounts → Export. Attach it and the account box below becomes a list of your own accounts, and we check the one you pick before you import. Xero doesn't — it drops a code it doesn't recognise, imports anyway, and leaves the account blank on every line. Read and discarded like everything else here.

Only used if your file doesn't say

These come from your own Xero, so we ask rather than guess — a wrong one is yours to fix, and invoices arrive as drafts either way.

200 is Sales in Xero's default chart. If your file has its own account column we read that instead, and reject any row missing one.
Unless every row in your file carries one Xero accepts. All or nothing, so no line gets a rate different from the one written beside it.

Applied to every invoice

Used only where your file has no numbers.

Only used if your file doesn't say

These come from your own Xero, so we ask rather than guess — a wrong one is yours to fix, and bills arrive as drafts either way.

From your own chart of accounts — we can't guess this one. If your file has its own account column we read that instead, and reject any row missing one.
Unless every row in your file carries one Xero accepts. All or nothing, so no line gets a rate different from the one written beside it.

Applied to every bill

Used only where your file has no numbers.

Each row of your file needs a BSB, an account number, a name and an amount. Anything short of that is left out and named, never guessed at — a wrong BSB sends real money to a stranger.

The account the money leaves Required

Your bank issued all of this when they switched on batch payments. We can't guess any of it, and we don't keep it — it goes into the file and the file comes back to you.

Your business name, as your bank has it.
Three letters: CBA, NAB, WBC, ANZ.
Six digits, hyphen optional.
Keep any leading zeros.
Up to six digits, sometimes called an APCA number. Your bank issues it — a wrong one is rejected by them, not by us.

What the payment says Optional

16 characters, the format's limit. Blank uses your account name.
What it's called in your banking history.
Blank means today.

What that looks like

An order export, run through the same converter your file goes through — not a recording. The customer, the date and the order number are written once and the rest of the order is blank underneath, which is what a line-item export actually looks like. Five rows, three invoices.

What went in

Order,Customer,Date,Item,Qty,Unit Price
ORD-88,Northside Cafe,04/08/2026,Filter coffee 1kg,3,45.00
,,,Oat milk 12pk,2,28.50
,,,Delivery,1,15.00
ORD-89,Harbour Fitness,05/08/2026,Filter coffee 1kg,1,45.00
ORD-90,Bellambi Dental,05/08/2026,Oat milk 12pk,4,28.50

What Xero receives

*ContactName*InvoiceNumber*Description*Quantity*UnitAmount
Northside CafeDN-0001Filter coffee 1kg345.00
Northside CafeDN-0001Oat milk 12pk228.50
Northside CafeDN-0001Delivery115.00
Harbour FitnessDN-0002Filter coffee 1kg145.00
Bellambi DentalDN-0003Oat milk 12pk428.50
5 rows became 3 invoices totalling 366.00

What you get back

A file the other system takes For Xero, its own template — column for column, with the headings and date format its importer expects. For your bank, an ABA file: the fixed-width direct entry format every Australian bank accepts.
Its own reconciliation Every row becomes a line or a rejection, and the money that went in plus the money left out equals the column it came from. A grouping bug that restated your revenue stops the run rather than reaching Xero — or your bank.
What we read, and what we assumed Which column played which part — the customer, or the BSB and the account number — plus what made one invoice, and the account code and tax rate every line was given. Nothing is applied silently: a wrong guess about a column is obvious to you in a second and invisible to us forever.

Before you start

Converting for Xero

You'll need an account code from your own chart of accounts. It lives in your Xero, not here, so we ask for it rather than guess — putting somebody's income against the wrong account is not a mistake worth risking to save a field.

Everything arrives in Xero as drafts. Nothing posts to your ledger until you approve it.

If an import has already gone wrong for you: why a Xero spreadsheet import fails — including the one that succeeds and leaves every line coded to nothing.

Making a payment file

You'll need the details your bank issued when they switched on batch payments: your BSB and account number, and your direct entry user ID (sometimes called an APCA number). We can't guess any of them.

Each row needs a BSB, an account number, a name and an amount. Anything short of that is left out and named, never guessed at — a wrong account code makes a bill nobody can approve, and a wrong BSB sends real money to a stranger.

Your bank validates the file when you load it, and shows you the total and the payee list. Nothing is paid until you authorise it, so it is safe to load one and look. No bank has confirmed a file from us yet — if yours rejects it, tell us what it said.

Other systems

MYOB Business has no bulk invoice import to convert to, so there is nothing to build against yet. Tell us what you use and we'll look at it.

If you run a fund and the file is a tab per investor: monthly investor statements — a PDF each for the month, with the interest as a Xero bills CSV.