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
Screenshots
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
- License: OPL-1
- Languages: English
- Author: Pokutsoft
- Dependencies: account
- Support: support@pokutsoft.com
Update date: 2026-07-02
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 803 |
| Technical Name |
gb_accounting_export_xero_quickbooks_sage |
| License | OPL-1 |
| Website | https://pokutsoft.com/ |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module