Export your invoices for Xero

Xero imports invoices from a CSV, so owntime writes one in Xero’s shape. It is an export, not a sync: no OAuth, no Xero app to register, no tokens, and nothing running in the background.

That is deliberate. A live connection would mean a third party holding a key to your books, and it would not survive the promise that this app needs no server.

1. Set your Xero details once

Settings → Xero CSV export. These have to match your Xero organisation, or the import rejects the rows.

  • Account code the sales account in your chart of accounts, e.g. 200. Xero will not accept a code that does not exist.
  • Tax type Xero’s exact name, which differs by country, e.g. GST on Income, 20% (VAT on Income), No VAT. The field suggests common ones but accepts whatever your org uses.
  • Currency ISO 4217, e.g. INR. Leave it empty and we map your currency symbol. If the symbol is ambiguous, like $, the app says so and you should set it by hand.
  • Date format whichever your Xero org uses, DD/MM/YYYY or YYYY-MM-DD.

2. Export

Invoices → Export for Xero (CSV). Voided invoices are left out. The toast reports how many invoices and rows were written, and flags anything worth knowing before you import.

The file uses Xero’s invoice import columns:

ContactName, InvoiceNumber, Reference, InvoiceDate, DueDate, Description, Quantity, UnitAmount, AccountCode, TaxType, TaxAmount, Currency

3. Import into Xero

  1. Xero → Business → Invoices.
  2. Choose Import, then pick the CSV above.
  3. Allow Xero to create new contacts, or make sure each client already exists as a contact.
  4. Check the preview, then confirm.

How lines are written

  • One row per invoice line, with the contact and invoice number repeated on each row, which is how Xero rebuilds a multi line invoice.
  • A fixed fee invoice, where the line amount is more than hours times rate, is written as a single row for the invoice total. That keeps Xero’s arithmetic identical to the PDF you sent. The app tells you when it does this.
  • TaxAmount is left blank on purpose. Xero calculates tax from the tax type, so set the tax type correctly and the totals follow.

What does not come across

  • Status and payments. Xero’s import format has no column for them, so imported invoices arrive awaiting payment. Mark them paid in Xero, or reconcile against your bank feed as you normally would.
  • Updates. Xero keys on the invoice number. Importing the same export twice can duplicate or error, so export an invoice once. If you need to correct one, fix it in Xero.
  • Anything after the fact. If you later change an invoice in owntime, export it again only if it has not been imported yet.

One honest caveat: the right account code and tax type come from your own Xero setup, and owntime cannot guess them. If the import fails on a row, Xero names the column it did not like. That is almost always one of those two.

Stuck? contact@owntime.click. Include the Xero error text.