How to Upload Supplier Bills to Xero from a Spreadsheet
Xero lets you bring in bills from a file. That means you do not have to type each bill by hand. To import bills into Xero, you first need a sheet with the right columns. Then you upload it and check the drafts.
Supplier bills tend to arrive as PDFs. Our invoice to Excel converter turns each PDF into a sheet with a Xero Bill preset. The columns come out in the shape Xero wants.
Shape the sheet the Xero way
Xero reads a bill as a set of fields. The name of the firm that sent it. The bill number. The date and the due date. Then one row per item, with a count, a price, and an account code. If a field is blank or in the wrong form, that bill can fail or land wrong.
| Xero field | What to put in it |
|---|---|
| Contact name | The firm that sent the bill |
| Invoice number | The number on the bill |
| Date and due date | Real dates, not text |
| Description | What each row is |
| Quantity and unit amount | Count and price of one |
| Account code | The code your books use |
The Xero Bill preset in our tool fills most of these for you. You add the account codes your firm uses, since those are yours alone.
Two rules from Xero's own template are worth knowing by heart. Rows that share one invoice number join into one bill — that is how a bill with five rows stays one bill. And the prices in one file must be all tax-in or all tax-out, never a mix. Xero asks which kind when you import. Pick the kind your bills use and hold to it for the whole file.
Dates have a form too. Xero wants real dates, day, month, year, in the cells — not words like “March 3” and not text that just looks like a date. A sheet that holds text dates will import with blank or wrong dates, and a bill with the wrong due date gets paid at the wrong time. Set the date columns to date form once, in your saved template, and the flaw can not come back.
What the draft states mean
Imported bills do not go straight to “owed”. They land as drafts, and each state on the way means a clear thing:
| State in Xero | What it means | Your move |
|---|---|---|
| Draft | In the system, not yet counted as owed | Check sums, dates, and codes |
| Awaiting approval | Sent on for a second set of eyes | Wait, or nudge the approver |
| Approved | Checked and ready to pay | Pay on the due date |
| Paid | Money sent and matched | None — the bill is closed |
The draft step is the gift of this flow. A bill typed by hand is live the moment it is saved. An imported bill waits as a draft till you say it is right. That pause is where you catch the wrong date, the twin bill, and the code that does not fit — while the fix is still free.
Use the pause well. Open each draft just long enough to match three things to the PDF: the total, the due date, and the account code. Those three carry most of the risk. A wrong total is money wrong. A wrong due date is money at the wrong time. A wrong code is a report that lies to you at month end. The rest of the fields can be neat or plain; these three must be right.
If your firm has a second person who can approve, let the drafts wait for their eyes. Xero's states make the hand-off plain: you import, they approve, the bill moves on. Two sets of eyes on the money-out door is cheap insurance, and the draft state is where it lives.
Upload and check the drafts
In Xero, go to the bills area and choose the import tool. Pick your file and match the columns if Xero asks. The bills land as drafts. That is the safe part of the flow: drafts are not final. Open a few and check the sums, the dates, and the tax.
If a draft looks wrong, fix the sheet and import that bill again. It is much easier to fix a draft than to undo a paid bill. When the drafts look right, approve them in Xero as you would any bill. You can check the examples to see what a clean bill sheet looks like.
Keep the source PDFs with each batch, in the same folder as the sheet. The draft in Xero shows sums; the PDF is the proof behind them. That pair is your record if a sum is ever asked about — a habit worth building, as our guide on why Excel beats PDF for keeping invoice records lays out.
Account codes and tax, in plain terms
An account code is the bucket a cost falls in: rent, parts, fuel, fees. Xero sorts your spend by these buckets, so the code is what makes reports mean a thing. Use the codes your books already have. If a bill is a new kind of cost, ask your bookkeeper which bucket fits — do not guess a new code into life. A short code list, taped to the wall or saved with the sheet, keeps each import the same.
Tax works the same way: each row names a tax rate, and the name must match the one in Xero, word for word. A rate typed two ways is two rates to Xero. Set the rate names once in your sheet template and reuse them. Most bad imports trace back to a name that is close but not the same.
If your firm tracks spend by job, site, or team, Xero's tracking fields can ride along in the same file. Add the tracking name and choice as columns, spelled the way they stand in Xero. Then each imported bill lands not just in the right account but in the right slice of your reports. Set the columns once in the template. Skip this if you do not track — plain bills import fine with no tracking at all.
A week of bills, start to finish
Here is the whole flow as one job. On Monday, the week's bills sit in a folder: say nine PDFs. You run them through the converter with the Xero preset. Out comes one sheet, nine bills, rows in place. You scan the sheet top to foot: names right, dates real, codes filled. The totals check flags one bill — its rows fall short by the sum of one row. You open the PDF, find the row the first read split in two, join it in the sheet, and the flag clears.
Next, the upload. In Xero: Purchases, Bills, New bill, Import from CSV. Pick the file, say the prices are tax-out, and confirm. Xero reads the file and reports back: nine bills in, no rows turned away. The bills sit as drafts. You open three — the flagged one, the biggest one, and one at random — and check them against their PDFs. All three match. Approve the set.
Time it, the first time you do this, and you will likely land near twenty minutes for the week — most of it your checks, which is as it should be. The same nine bills typed by hand would run past an hour, with the checks still to do. Week two is faster: the template is saved, the code list is set, and the steps are a habit. That is the real shape of this tool — not a trick, a habit that costs less each time you run it.
When a row gets rejected
If a file has a flaw, Xero tells you at import and names the row. Do not panic and do not force it. Read the note, fix the sheet, and import the fixed rows again. The bills that did land stay landed; you only redo the ones that failed.
- Blank contact name: the one field Xero must have. Fill it with the name as it stands in Xero.
- Bad date: the cell holds text, not a date. Set it to date form and save again.
- Mixed tax: some rows are tax-in, some tax-out. Make the whole file one kind.
- Odd number form: a sum with a comma where a point should be. Clean the number column.
Nine times in ten, the flaw is in the sheet, not in Xero. That is good news: the sheet is yours to fix in a minute, with no harm done to the books.
One more cause hides in the contact list. If the name in your file is “Acme Ltd” but Xero holds “Acme Limited”, the import makes a fresh contact and the bill lands on the wrong firm. Before a big import, sort your sheet by contact name and read the list once. Names you do not know are the ones to check. Two minutes of reading beats a month of bills split across twin contacts.
Three habits that help
- Keep vendor names the same as in Xero. A new spelling makes a new contact.
- Run the totals check before upload. Bills that fail the math check should not go in.
- Do a small test lot first — three to five bills — then scale up.
- Import on a set day each week, so bills do not pile up and age.
- Check for twin bills by number before you approve the drafts.
These habits take a minute and save an hour. Clean data in, clean books out.
The totals habit earns its own note. A bill whose rows do not sum to its total will sit wrong in Xero just as it did on paper, and the gap will be harder to trace a month later. If a bill fails the math, set it aside and work the cause first — our guide on why invoice totals don't add up, and the checks that find the gap shows how.
Your next step
Convert one supplier bill with the Xero preset and upload it as a test. Once the draft looks right, do the rest of the week. If some of your bills go to QuickBooks too, read how to import invoices into QuickBooks.
One week of bills is the right first run: small enough to check with care, big enough to prove the flow. After that, the import is just a slot in your week — and the typing is gone for good.
Keep the sheet file with the PDFs when the import is done. If a draft is ever in doubt, the sheet is your map back to the bill, row by row. That small act turns each week's import into a record, not just a task — and records are what your books stand on when a hard question comes.
One last point in favor of the weekly slot: Xero's drafts keep your “owed” list honest in real time. Bills you have checked show as owed; bills still in draft do not. Your cash view stays true, and true cash is what good calls are made of.
Sources and further reading
- Import bills and credit notes — Xero's own guide to the bill import template: each column, what to put in it, and the import steps in order.
- Import invoices and bills using the Conversion Toolbox — Xero's field-by-field list for bringing bills in as approved, with the rules for names, dates, and line amounts.