RevExOS
ServicesCase StudiesBlogFree Tools
AR Invoicing Starter Guide - $10AR Automation Playbook - $79View all courses
AboutGet Free Audit
ServicesCase StudiesBlogFree ToolsCourses
AR Invoicing Starter Guide - $10AR Automation Playbook - $79
AboutGet Free Audit
RevExOS
ServicesCase StudiesBlogFree Tools
AR Invoicing Starter Guide - $10AR Automation Playbook - $79View all courses
AboutGet Free Audit
ServicesCase StudiesBlogFree ToolsCourses
AR Invoicing Starter Guide - $10AR Automation Playbook - $79
AboutGet Free Audit
Back to Blog
tutorialsSeptember 21, 2026

How to Get an Invoice You Built With a Free Generator Into Xero

A free invoice generator gives you a PDF, not a Xero record. Here's the manual path for a single invoice and the real bulk-CSV path, including the two gaps you need to fill in yourself.

R

RevExOS

Q2C Consulting

How to Get an Invoice You Built With a Free Generator Into Xero

A free invoice generator, including this site's own Invoice Generator, gives you a PDF. That is exactly what a client needs to receive an invoice. It is not what Xero needs to record one, since Xero has no idea the PDF exists until you either type it in or feed it a CSV in the format Xero expects. Here is both paths, done properly, including the two spots where Xero's real import template is stricter than a generic export will be.


Option 1: Enter It Manually (Fine for a Handful of Invoices)

For low volume, just re-key it:

  1. In Xero, go to Business > Invoices > New Invoice.
  2. Select or add the contact, matching the client you used in the generator.
  3. Re-enter each line item description, quantity, and unit amount.
  4. Match the invoice date, due date, and reference number to what is on the PDF you sent.
  5. Approve and send, or just approve if the PDF already went out separately.

This is fine at low volume. It stops being fine once you are sending more than a handful a month, both because of the time cost and because manual re-entry is exactly where a due date or a rate quietly drifts from what your client actually received.


Option 2: Bulk-Import as CSV

This site's Invoice Parser has a Xero-ready CSV export built for exactly this. The workflow:

  1. Build and send your invoice PDF from the Invoice Generator as usual.
  2. Upload that PDF (or a batch of several) to the Invoice Parser. It extracts the contact name, invoice number, dates, line items, and totals automatically using GPT-4o vision, and shows you an editable review screen before anything is finalized.
  3. Fix anything that needs it, click Add to Export Batch, and repeat for each invoice in this run.
  4. Set the export format to Xero-ready CSV and download it.

That export produces these exact columns: *ContactName, *InvoiceNumber, *InvoiceDate, *DueDate, Description, *Quantity, *UnitAmount, AccountCode, Currency. The asterisks mark Xero's own required fields.

Two Gaps You Need to Fill In Before Importing

Be honest with yourself about these two, because they are the difference between a clean import and a rejected file:

AccountCode is left blank on purpose. The parser has no way to know your chart of accounts, so this column ships empty. Open the CSV before uploading and fill in the account code you use for revenue or sales on every row (or a formula in a spreadsheet if the code is the same for all rows in a batch).

Xero's own official import template also includes a TaxType column, and this export does not generate one. Either add that column yourself with your standard tax rate code before uploading, or leave it out and set the tax treatment manually once the bills land in Xero as drafts (see the next step). Skipping this quietly is how invoices end up importing with no tax applied at all.

Importing the CSV into Xero

  1. Go to Business (or Purchases, depending on whether you are recording this as a sales invoice or a bill) > Bills, then New bill > Import from CSV.
  2. If you have not already matched Xero's column order, download Xero's own import template first and paste your data into it without renaming any of the headers, this avoids most of the file-rejection issues people run into.
  3. Save the file as CSV with UTF-8 encoding. Xero rejects .xlsx files outright.
  4. Drag the file in or click Select File.
  5. Choose whether the amounts in UnitAmount are tax-inclusive or tax-exclusive, matching how you priced the invoice.
  6. Click Confirm.

Two things to expect afterward: everything you import lands as a draft, not a finalized invoice, so you still need to review and approve each one before it counts toward your books. And if you are importing more than 500 rows in one go, Xero recommends splitting the file, worth knowing before you try to push a full quarter's invoices through in one file.


Common Import Errors and What Causes Them

"File rejected before it even reaches the mapping screen." Xero's CSV importer is strict about the header row: *ContactName, *InvoiceNumber, *InvoiceDate, *DueDate, Description, *Quantity, *UnitAmount, AccountCode, TaxType have to appear exactly as Xero's template spells them, asterisks included on the required ones. If you renamed a column, reordered them, or the file saved as .xlsx instead of .csv, Xero rejects it outright rather than trying to guess your intent.

"Everything imported with no tax applied." This is the TaxType gap mentioned above showing up after the fact. Since the Invoice Parser's export does not generate a TaxType column, anything you import without adding one lands with no tax code set. Check a sample invoice in the draft queue before approving the whole batch, catching it there is much faster than fixing it invoice by invoice after everything has already been approved.

"AccountCode column is empty and Xero won't let me approve the draft." This is expected, not a bug: the parser has no way to know your chart of accounts, so it leaves this column blank by design. Open the CSV in a spreadsheet before uploading, and either fill in your standard revenue account code down the whole column (a single formula works if every row uses the same code) or set it manually on each draft invoice inside Xero after import.

"Contact wasn't matched to an existing customer." Like QuickBooks, Xero matches on the literal string in ContactName. "Acme Inc" and "Acme, Inc." are different contacts to Xero even though they are the same client to you. Check the ContactName column against your actual Xero contact list before uploading, not against how the client's own letterhead spells their name.


Why This Takes Two Tools

A generator only has the fields you typed into it, it has no invoice document to read, so it cannot produce an import-ready export on its own. The Invoice Parser solves a different problem, reading structured data back out of any invoice, whether it came from this site's generator, a client's bill to you, or a scanned paper original, which is exactly what a bulk import needs. Build with one tool, reconcile with the other.

If the invoice started life as a quote your client accepted, skip the re-entry entirely: the Quote Generator has a one-click convert-to-invoice button that carries the line items over before you ever touch the parser.


Free Tool Details

The Invoice Generator and Invoice Parser are both free: 2 uses a day with no signup, 5 a day total once you share an email. Nothing is saved on RevExOS's servers, the generator's PDF renders entirely in your browser and the parser processes uploads in memory only. Only an anonymous usage count is logged to keep the tools free and abuse-free.

Frequently Asked Questions

Why is the AccountCode column blank in the Xero export?
The tool has no way to know your chart of accounts, so it leaves AccountCode empty for you to fill in with your own revenue/sales code before importing.
Does the Xero CSV export include tax information?
Not currently. Xero's own template includes a TaxType column this export doesn't generate, so add one manually or set the tax rate after the bill imports as a draft.
Do invoices import directly into my Xero books, or do they need approval?
They import as drafts. You still need to review and approve each one in Xero before it counts toward your books.

Tags

invoice generator xeroxero csv importfree invoice generatorinvoice to xeroxero bulk invoice import

Stop losing revenue between quote and cash.

Get a free Q2C audit and see exactly where your AR, invoicing, and collections process is leaking money.

Get a free audit

RevExOS

Revenue Execution OS: Quote-to-Cash Intelligence for Professional Services.

Services

  • AR Collection Automation
  • AR Automation
  • Invoice Automation
  • Quote Automation
  • GTM Engineering
  • Customer Automations
  • Q2C Data Sync Automation

Resources

  • Blog
  • Case Studies

Courses

  • AR Invoicing Starter Guide - $10
  • AR Automation Playbook - $79
  • View all courses

Free Tools

  • Invoice Parser
  • Invoice Generator
  • Quote & Estimate Generator
  • Proposal Generator
  • Jev API Playground
  • Q2C Cycle Simulator
  • Payment Terms Benchmarker
  • Q2C Stack Checker
  • AR Collections Email Generator
  • Merchant of Record Selector
  • Billing Platform Selector
  • Revenue Intelligence
  • View all tools

Contact

  • About Us
  • Contact Us
  • contact@revexos.com

Legal

  • Privacy Policy
  • Terms of Service

© 2026 RevExOS. All rights reserved.