Not the job you came for? Tell me what you need
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.
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.
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
| *ContactName | *InvoiceNumber | *Description | *Quantity | *UnitAmount |
|---|---|---|---|---|
| Northside Cafe | DN-0001 | Filter coffee 1kg | 3 | 45.00 |
| Northside Cafe | DN-0001 | Oat milk 12pk | 2 | 28.50 |
| Northside Cafe | DN-0001 | Delivery | 1 | 15.00 |
| Harbour Fitness | DN-0002 | Filter coffee 1kg | 1 | 45.00 |
| Bellambi Dental | DN-0003 | Oat milk 12pk | 4 | 28.50 |
DN-0001 — Northside Cafe,
3 lines,
207.00.
DN-0002 — Harbour Fitness,
1 line,
45.00.
DN-0003 — Bellambi Dental,
1 line,
114.00.
| 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. |
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.
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.
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.