BillToCSV
  1. Drop bills PDF or photo, one bill per file
  2. Check totals Every line and sum proven
  3. Download for QuickBooks or Xero Import-ready CSV

Blank bill import templates for QuickBooks and Xero

Download an empty CSV with the column headers BillToCSV writes, and read what each column holds. Or skip the typing: drop the bills and get the file filled in and checked.

Free: 1 file per day, up to 10 pages, no account.

Download the blank templates

Verify the column headers against your QuickBooks or Xero import page; vendors change them. These files match the layouts BillToCSV writes. They are not Intuit's or Xero's own templates.

QuickBooks Online bill template

13 columns, header row only. Account is for you to fill.

Download QuickBooks template (CSV)

Show the header row
BillNo,Supplier,BillDate,DueDate,Terms,Location,Memo,Account,LineDescription,LineAmount,LineTaxCode,LineTaxAmount,Currency

What each QuickBooks column holds

Xero bill template

26 columns, header row only. Asterisks mark the columns Xero requires.

Download Xero template (CSV)

Show the header row
*ContactName,EmailAddress,POAddressLine1,POAddressLine2,POAddressLine3,POAddressLine4,POCity,PORegion,POPostalCode,POCountry,*InvoiceNumber,*InvoiceDate,*DueDate,Total,InventoryItemCode,*Description,*Quantity,*UnitAmount,*AccountCode,*TaxType,TaxAmount,TrackingName1,TrackingOption1,TrackingName2,TrackingOption2,Currency

What each Xero column holds

What is a bill import template?

A bill import template is a CSV that holds only the header row: the column names your accounting software expects. You add one row per bill line underneath, repeat the bill-level details on every row of the same bill, and import the file to create the bills in one go.

These two templates match the layouts BillToCSV writes. They are not Intuit's or Xero's own files. Verify the column headers against your QuickBooks or Xero import page, because vendors change them, and use the template your software offers if it differs.

Filling a blank template by hand

  1. Download the template for your software

    Use the QuickBooks one for QuickBooks Online and the Xero one for Xero. Keep the header row exactly as it is: do not rename, reorder or delete columns.

  2. Add one row per bill line

    A bill with five lines needs five rows. Repeat the bill number, supplier and dates on every one of them, spelled identically, so the import groups them into one bill.

  3. Protect the dates and amounts

    Spreadsheet apps love to reformat dates. Format the date columns as text before you type, or write them as YYYY-MM-DD and tell the import which format the file uses. Type amounts as plain numbers: no currency symbol, no thousands separator.

  4. Save as CSV, comma separated

    In Excel choose CSV UTF-8 (Comma delimited). Some regional settings save with semicolons, which the imports do not expect.

  5. Test with two or three bills

    Import a small file first, open the bills, and compare the totals with the paper. Then do the rest.

Blank template, generic OCR app, or BillToCSV

Three ways to end up with a filled-in import file
What you compare Blank template, by handA generic OCR appBillToCSV
Who types the lines You, from the paper. The app fills a layout of its own. The converter reads the PDF or photo and writes the rows.
Header names As downloaded, if you keep them intact. Its own, unless it has a QuickBooks or Xero mode. The layouts on this page, written for you.
Arithmetic on the lines Only what you do yourself. Varies by app. Ask whether it checks. Quantity × unit price, lines to subtotal, subtotal plus tax to total.
Dates in the right format Spreadsheet apps may reformat them. Depends on the app. Written in the format you pick, ambiguous dates flagged.
Time for 40 bills Hours. Faster, but each bill still needs opening. Drop the stack, clear the amber rows, download.

What a filled file looks like

These are the first rows BillToCSV wrote for its clean sample bill (Harbor Point Office Supply, invoice HP-20417). One row per line; the bill number, supplier and dates repeat on each row, which is how the import knows the rows belong to one bill.

QuickBooks

BillNo,Supplier,BillDate,DueDate,Terms,Location,Memo,Account,LineDescription,LineAmount,LineTaxCode,LineTaxAmount,Currency
HP-20417,Harbor Point Office Supply,10/14/2026,11/13/2026,Net 30,,PO 88213,,"Copy paper, 8.5 x 11, case of 10 reams",192.00,,,USD
HP-20417,Harbor Point Office Supply,10/14/2026,11/13/2026,Net 30,,PO 88213,,"Ballpoint pens, box of 12",18.75,,,USD
HP-20417,Harbor Point Office Supply,10/14/2026,11/13/2026,Net 30,,PO 88213,,"Stapler, heavy duty",29.98,,,USD

Xero

*ContactName,EmailAddress,POAddressLine1,POAddressLine2,POAddressLine3,POAddressLine4,POCity,PORegion,POPostalCode,POCountry,*InvoiceNumber,*InvoiceDate,*DueDate,Total,InventoryItemCode,*Description,*Quantity,*UnitAmount,*AccountCode,*TaxType,TaxAmount,TrackingName1,TrackingOption1,TrackingName2,TrackingOption2,Currency
Harbor Point Office Supply,,,,,,,,,,HP-20417,14/10/2026,13/11/2026,329.73,,"Copy paper, 8.5 x 11, case of 10 reams",5,38.40,,,,,,,,USD
Harbor Point Office Supply,,,,,,,,,,HP-20417,14/10/2026,13/11/2026,329.73,,"Ballpoint pens, box of 12",3,6.25,,,,,,,,USD
Harbor Point Office Supply,,,,,,,,,,HP-20417,14/10/2026,13/11/2026,329.73,,"Stapler, heavy duty",2,14.99,,,,,,,,USD

Account, *AccountCode and *TaxType are blank because only you know your chart of accounts and tax rates. Drop your own bills to get a file like this, with every total checked.

Questions people ask

Are these the official QuickBooks and Xero templates?

No. They are independent files that match the layouts BillToCSV writes. Intuit and Xero publish their own templates, and the vendors change them from time to time, so verify the column headers against your QuickBooks or Xero import page before you rely on a file.

Why does the Xero template have more columns than the QuickBooks one?

The Xero layout carries contact address, tracking and inventory columns that the QuickBooks layout does not. BillToCSV fills the ones it can read from the bill and leaves the rest blank. The QuickBooks template has thirteen columns and the Xero template has twenty-six.

Do I have to fill every column?

No. Fill the columns your software marks as required. For Xero those are the headers that start with an asterisk. For QuickBooks, Intuit's help lists bill number, supplier, bill date, due date, account and line amount, plus a line tax code where sales tax is switched on. Leave the optional columns empty.

How do I put several lines on one bill?

Use one row per line and repeat the bill-level columns (number, supplier, dates) exactly on each row. The import groups rows with the same bill number into one bill.

Excel changed my dates. How do I stop that?

Format the date columns as Text before you type or paste, or enter dates as YYYY-MM-DD, and tell the import which date format your file uses. Opening a CSV by double-click and saving it again is the usual way dates get rewritten, so keep a copy of the original file.

Which file format and encoding do the imports want?

A plain CSV with comma separators and UTF-8 text. In Excel, choose CSV UTF-8 (Comma delimited). Files from BillToCSV use commas, quote every field that needs it and end rows with a carriage return and a line feed.

Can I use semicolons instead of commas?

Some spreadsheet apps in some regions save CSV files with semicolons, and the bill imports generally expect commas. If your file arrives as one long column, save it again as comma separated, or change the list separator in your system's regional settings.

What do the columns hold?

The QuickBooks page and the Xero page each list every column, what BillToCSV puts in it and what you do next.

Can BillToCSV fill the template for me?

Yes, that is what it is for. Drop the supplier bills on the home page and download a QuickBooks or Xero CSV with every line and total checked. The free allowance is 1 file per day, up to 10 pages, no account.

What does "verify the column headers" mean in practice?

Open the import page in your own QuickBooks or Xero, download or view the sample file it offers, and compare the header names, their spelling and their order with the template here. If they differ, edit the first row of the CSV to match, or map the columns during the import where your software lets you.