Skip to content
PokutsoftPokutsoft
United KingdomAccounting
Accounting Export - Xero icon

Accounting Export - Xero

One-way export of journals & invoices to Xero / QuickBooks / Sage import formats

Odoo 20.0Odoo 19.0Odoo 18.0
Compatible with Odoo 18.0 · 19.0 · 20.0
OPL-1 license · Odoo 18.0, 19.0 & 20.0
Accounting Export — Xero for Odoo — preview banner

Accounting Export — Xero

One-way export of journals & invoices to Xero / QuickBooks / Sage import formats

Businesses that run Odoo for day-to-day trading but file their accounts in Xero, QuickBooks Online or Sage 50 lose hours every month re-keying journals and invoices by hand — and every manual entry is a chance to mis-post or unbalance a move. This module removes that dual-keying entirely. You build a reusable export profile per target system, crosswalk your Odoo accounts and VAT taxes to the platform's nominal and tax codes, then collect, validate and export a date range to the exact CSV import format that system expects. A validation pass catches unbalanced moves and unmapped accounts before anything leaves Odoo. It is one-way, format-generation only — no live API, no stored credentials and no certification — so UK SMEs and their bookkeepers get a clean, balanced handover without the lock-in.

Key Features

Reusable Export Profiles

Each gb.acc.export.profile pins a target system (Xero, QuickBooks Online or Sage 50), the journals to include, a date format, decimal places and whether draft entries are exported. Configure once, then reuse the profile for every period-end handover.

Per-System Column Specs

The _column_spec method emits the exact headers each platform's import wizard expects — Xero's *ContactName/*InvoiceDate/*AccountCode, QuickBooks JournalNo/Debits/Credits, or Sage 50 Type/NominalCode/TaxCode — so the file drops straight into the target tool.

Account-Code Crosswalk

The gb.acc.export.map model maps each Odoo account.account to the target's nominal code. action_autofill_mapping seeds a blank row for every account in use, then you fill the target codes so each line lands in the right ledger.

Tax-Code Mapping with Smart Defaults

gb.acc.export.tax.map crosswalks Odoo taxes to platform VAT codes; suggest_code proposes defaults from the rate and sale/purchase type — Sage T1/T5/T0, Xero '20% (VAT on Income)', or QuickBooks '20% S'.

Batch Collect and Stage

A gb.acc.export.batch pulls posted move lines via action_collect into gb.acc.export.line records, resolving each line's target and tax code up front. Computed move_count, line_count, total_debit and total_credit give an at-a-glance check before export.

Pre-Export Validation Pass

action_validate checks every move balances to zero and, when Require Full Mapping is on, flags any account with no target code. Problems are written to validation_log and block the export, so you never ship a broken file to your bookkeeper.

One-Click CSV and Download

action_export writes the formatted CSV to an attachment field with a per-system filename, and action_download streams it via /web/content. The batch moves through draft, validated and exported states tracked on its mail thread.

Quick-Run Wizard

The gb.acc.export.wizard defaults the date range to last month and shows a live move_estimate count. On Run it creates, collects and exports a batch in one step, then opens the finished file ready to download.

Format-Generation Only — No Lock-In

The export is one-way and offline: it never connects to Xero, QuickBooks or Sage and stores no credentials. Nothing to authorise, no API certification, no third-party data exposure — just a clean CSV you import yourself.

Use Cases

✓A UK SME running Odoo for trading but filing statutory accounts in Xero, handing over journals each month-end.
✓An external bookkeeper who keeps clients on Sage 50 and needs clean nominal-coded imports from their Odoo data.
✓A finance manager migrating from QuickBooks Online who wants validated, balanced journal exports during the move.
✓An accountant reconciling Odoo sales invoices into Xero with the correct VAT TaxType on every line.
✓A multi-system group that closes books in Odoo but consolidates in Sage, needing repeatable per-journal exports.

Screenshots

Accounting Export — Xero — Run Export in Odoo

Run Export

Why Choose This Module

Move your Odoo journal entries and invoices into Xero, QuickBooks or Sage without re-typing. This module generates the exact CSV import formats those systems expect — one-way, format-generation only: no live API, no stored credentials, no certification required. Sage and Xero dominate UK SME accounting, and this bridge removes the manual dual-keying that plagues businesses running Odoo alongside an external bookkeeper's package.

Specifications

  • Compatible: Odoo 18.0 / 19.0 / 20.0
  • License: OPL-1
  • Languages: English
  • Author: Pokutsoft
  • Dependencies: account
  • Support: support@pokutsoft.com

Update date: 2026-09-30

User guides (PDF)

Related modules