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

Turn a stack of supplier bills into a QuickBooks or Xero import that already adds up

Drop the PDFs and photos. BillToCSV multiplies every line, re-adds the subtotal and tax, and turns anything that does not tie amber before it reaches your books.

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

Convert bills

Drop supplier bills here

One bill per file. A stack is fine: drop them all and each one gets its own review card.

PDF, JPG or PNG, up to 40 MB each. Free: 1 file per day, up to 10 pages, no account.

No bill handy?

    What is a bill import CSV?

    A bill import CSV is a spreadsheet with one row per bill line that QuickBooks Online or Xero reads to create supplier bills in bulk, instead of you keying each one.

    BillToCSV builds that file from a supplier's PDF or photo, and it proves the arithmetic first: quantity × unit price equals the line amount, the lines add up to the subtotal, and subtotal plus tax equals the invoice total. A bill that fails a check is flagged before the import can create a bill that disagrees with the paper.

    See it work on two sample bills

    Both bills below were run through the same code that reads your files, while this page was built. The first ties on every check. The second has a 7% tax line and one line where the printed amount is $2.00 more than quantity times price, so that row turns amber and the bill is held back.

    A clean 4-line bill Sample

    Every check ties

    Office supplies, Net 30, no tax. Every line multiplies out and the lines add up to the total.

    Supplier
    Harbor Point Office Supply
    Invoice no.
    HP-20417
    Invoice date
    2026-10-14
    Due date
    2026-11-13 (Net 30)
    Total
    329.73 USD
    • Every line multiplies out
    • Lines add to the subtotal
    • Subtotal + tax = total
    Line items for the a clean 4-line bill
    #DescriptionQtyUnit priceAmountQty × priceStatus
    1 Copy paper, 8.5 x 11, case of 10 reams 5 38.40 192.00 192.00 Ties
    2 Ballpoint pens, box of 12 3 6.25 18.75 18.75 Ties
    3 Stapler, heavy duty 2 14.99 29.98 29.98 Ties
    4 Toner cartridge, black 1 89.00 89.00 89.00 Ties
    Totals check
    Lines add to329.73
    Printed subtotal329.73
    Printed total329.73
    Subtotal + tax329.73 ties
    What the reader extracted from this bill
    ## Harbor Point Office Supply
    
    418 Wharf Road, Portland, ME 04101
    
    INVOICE
    
    | Invoice No. | HP-20417 |
    |---|---|
    | Invoice Date | 14 Oct 2026 |
    | Terms | Net 30 |
    | PO Number | 88213 |
    
    Bill To: Alder & Finch Design LLC
    
    | Qty | Description | Unit Price | Amount |
    |---:|---|---:|---:|
    | 5 | Copy paper, 8.5 x 11, case of 10 reams | $38.40 | $192.00 |
    | 3 | Ballpoint pens, box of 12 | $6.25 | $18.75 |
    | 2 | Stapler, heavy duty | $14.99 | $29.98 |
    | 1 | Toner cartridge, black | $89.00 | $89.00 |
    
    Subtotal: $329.73
    
    Total: $329.73
    
    The QuickBooks CSV the code produced from it
    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
    HP-20417,Harbor Point Office Supply,10/14/2026,11/13/2026,Net 30,,PO 88213,,"Toner cartridge, black",89.00,,,USD

    A bill with 7% tax and one bad line Sample

    Needs a look: off by 2.00

    Janitorial supplies with a 7% sales tax line. On line 3 the printed amount is $2.00 more than quantity times price.

    Supplier
    Northgate Janitorial Supply
    Invoice no.
    NG-55120
    Invoice date
    2026-10-21
    Due date
    2026-11-05 (Net 15)
    Total
    334.91 USD
    • 1 line does not multiply outoff by 2.00
    • Lines add to the subtotal
    • Subtotal + tax = total
    Line items for the a bill with 7% tax and one bad line
    #DescriptionQtyUnit priceAmountQty × priceStatus
    1 Nitrile gloves, box of 100 6 9.50 57.00 57.00 Ties
    2 Trash liners 33 gal, case 4 24.75 99.00 99.00 Ties
    3 Floor cleaner, 5 gal pail 2 41.50 85.00 83.00 Check
    2 × 41.50 = 83.00, but the amount printed is 85.00 (off by 2.00).
    4 Microfiber cloths, 12 pack 10 7.20 72.00 72.00 Ties
    Totals check
    Lines add to313.00
    Printed subtotal313.00
    Sales Tax (7%)21.91
    Printed total334.91
    Subtotal + tax334.91 ties
    What the reader extracted from this bill
    # Northgate Janitorial Supply
    
    Invoice Number: NG-55120
    Invoice Date: 10/21/2026
    Payment Terms: Net 15
    Customer PO: 4471
    
    | Item | Qty | Price | Total |
    |---|---:|---:|---:|
    | Nitrile gloves, box of 100 | 6 | 9.50 | 57.00 |
    | Trash liners 33 gal, case | 4 | 24.75 | 99.00 |
    | Floor cleaner, 5 gal pail | 2 | 41.50 | 85.00 |
    | Microfiber cloths, 12 pack | 10 | 7.20 | 72.00 |
    
    Subtotal $313.00
    Sales Tax (7%) $21.91
    Total $334.91
    
    The QuickBooks CSV the code produced from it
    BillNo,Supplier,BillDate,DueDate,Terms,Location,Memo,Account,LineDescription,LineAmount,LineTaxCode,LineTaxAmount,Currency
    NG-55120,Northgate Janitorial Supply,10/21/2026,11/05/2026,Net 15,,PO 4471,,"Nitrile gloves, box of 100",57.00,,3.99,USD
    NG-55120,Northgate Janitorial Supply,10/21/2026,11/05/2026,Net 15,,PO 4471,,"Trash liners 33 gal, case",99.00,,6.93,USD
    NG-55120,Northgate Janitorial Supply,10/21/2026,11/05/2026,Net 15,,PO 4471,,"Floor cleaner, 5 gal pail",85.00,,5.95,USD
    NG-55120,Northgate Janitorial Supply,10/21/2026,11/05/2026,Net 15,,PO 4471,,"Microfiber cloths, 12 pack",72.00,,5.04,USD

    From stack to import in four steps

    1. Drop the bills

      Add PDFs or photos, one bill per file. Drop the whole stack; each file gets its own review card.

    2. Read the amber rows

      Green rows tie. Amber rows show the exact numbers that disagree, for example 2 × 41.50 = 83.00 while the bill says 85.00.

    3. Fix or accept

      Edit any cell and the checks rerun on the spot, or accept a row as printed when the supplier's figure is the one you will pay.

    4. Download and import

      Take the QuickBooks CSV or the Xero CSV (plus a review CSV for your files), fill the Account column, and run your import.

    Typing, a generic OCR app, or BillToCSV

    How the three routes compare for a stack of supplier bills
    What you compare Typing it in by handA generic OCR appBillToCSV
    Effort per bill Every field and line keyed by you. Fields filled in; you open each bill to confirm them. Upload, scan the amber rows, download.
    Does quantity × unit price equal the amount? Only if you stop and work it out. Varies by app. Ask whether it checks. Checked on every line that has a quantity and a unit price.
    Do the lines add to the subtotal and total? You re-add them, or trust the paper. Varies by app. Ask whether it re-adds the lines. Always re-added: lines to subtotal, subtotal plus tax to total.
    A misread or mistyped digit Your risk on every keystroke. Silent unless the app cross-checks. Usually breaks a sum, so the row turns amber. A misread that still adds up is not caught.
    What you get Bills typed straight into the bill screen. Fields in the app's own layout. A CSV in QuickBooks Online or Xero import column order, plus a review CSV.
    What you still decide Everything. Whether to trust the extraction. The amber rows and the Account column.

    Questions people ask

    What does BillToCSV do?

    It reads a supplier bill from a PDF or photo, pulls out the supplier, invoice number, dates, terms, currency, line items, tax and total, checks the arithmetic, and gives you a CSV laid out for the QuickBooks Online or Xero bill import. It does not connect to your books. You import the file yourself.

    What exactly gets checked?

    Three things. Each line: quantity × unit price must equal the line amount to within $0.01 after rounding. The lines must add up to the printed subtotal. Subtotal plus tax plus any shipping or discount lines must equal the printed total.

    Anything that fails turns amber with the numbers shown. If a bill prints no subtotal or no total, that check is marked not applicable instead of passed.

    Is it free?

    Yes, to try. The free allowance is 1 file per day, up to 10 pages, no account. Pro and Team plans raise the limits.

    Which files can I upload, and how big?

    PDF, JPG and PNG, one bill per file, up to 40 MB each. Photos read best when they are flat, bright and show the whole page. Other file types, such as HEIC, Word or Excel files, are not accepted.

    Can I convert many bills at once?

    Yes. Drop a stack and every file gets its own review card. On the free allowance only the first file of the day converts, and the rest are listed as not converted so nothing is dropped silently. On paid plans each converted file counts as one bill.

    Why is the Account column blank?

    Account (QuickBooks) and account code (Xero) depend on your chart of accounts, which BillToCSV cannot see. Guessing would post expenses to the wrong place, so the column is left blank. Type a name under Export options to fill it on every line, or map it during the import.

    What happens when a bill does not add up?

    The failing rows turn amber and the bill starts unticked, so it is not in your download unless you tick it. You can edit a cell (the checks rerun), accept a row as printed, or leave the bill out and query the supplier.

    Does it import into QuickBooks or Xero for me?

    No. It produces a file and you import it. That keeps your accounting login out of this site. Verify the column headers against your QuickBooks or Xero import page, because vendors change them. The blank templates show the layouts used here.

    Are my files kept?

    Files are processed in memory and deleted after conversion. Pages that need a second look may be sent to Google's Gemini API, where Google may keep them for up to 55 days under its terms. Uploads are not used for training. Details are on the privacy page.

    How accurate is reading a scan or a photo?

    OCR can misread digits, especially on faded, creased or skewed pages. A misread usually breaks one of the three checks, which is why the row turns amber, but a misread that still adds up cannot be caught. Compare the amounts with the paper for scanned and photographed bills.

    Which currencies and number formats are understood?

    Dollar, pound and euro symbols and common ISO codes are recognised, and both 1,234.56 and 1.234,56 number formats. A bare $ is read as USD, so change the Currency column if the bill is really CAD, AUD or NZD.

    How are dates and due dates read?

    Formats such as 2026-10-14, 14 Oct 2026 and 10/14/2026 are read. A date like 03/04/2026 could be March 4 or April 3; it is read as MM/DD/YYYY for dollar bills and flagged. Terms such as Net 30 become a due date counted from the invoice date.