Running Odoo for operations and Xero for accounting is one of the most common setups for growing businesses, but only if the two systems actually agree with each other. Without a real connector, teams end up re-keying invoices, reconciling contacts by hand, and hoping nobody creates the same customer twice in both places. Serynto's Xero Odoo Connector was built to close that gap, and the latest update makes it significantly more capable for live, production databases: background synchronization, granular direction control, detailed error and debug logging, and support for Odoo 17 alongside 18 and 19. Serynto's connector is available now on the Odoo Apps Store at apps.odoo.com/apps/modules/19.0/st_xero_connector to get started.
Why Odoo and Xero Need to Actually Agree
What's New in This Update
This release focuses on the parts of a sync tool that matter most once you're running it against real, live data rather than a test database. Synchronization now runs as a background process instead of blocking the interface, so large batches of invoices, contacts, or payments sync without tying up the session or timing out on bigger datasets. You're no longer locked into one sync pattern either: the connector now lets you choose, per data type, whether synchronization runs two-way between Odoo and Xero, one-way from Odoo to Xero only, or one-way from Xero to Odoo only, across all supported data including contacts, invoices, bills, payments, and products. Every sync run also produces detailed logs you can actually use to diagnose a failure, showing which record failed, why, and at what step, combined with dedicated debugging output that makes troubleshooting a stalled sync a matter of minutes rather than a support ticket. And the connector now covers Odoo 17 in addition to 18 and 19, so businesses on the still-widely-used v17 don't have to upgrade their entire ERP just to get a reliable Xero integration.
What the Connector Syncs
The connector handles both master data and transactional accounting records, bidirectionally. On the master data side, that includes customers and contacts, suppliers and vendors, products and product categories, taxes, the chart of accounts, and currencies. On the accounting side, it covers customer invoices, vendor bills, credit notes, payments, bank transactions, and reconciliation data. Because sync direction is now configurable per data type, you can mix and match; for example, keeping product and contact data flowing both ways while restricting financial reconciliation to flow in one direction only, depending on which system your finance team treats as authoritative.
Built for Businesses With Data Already in Both Systems
A lot of Odoo-Xero connectors assume you're starting from a blank slate. Serynto's doesn't. It's designed specifically for the common real-world case: a business that already has months or years of customers, invoices, and payments sitting in both Odoo and Xero, and needs them merged safely rather than duplicated. That's handled through two core capabilities that now work across the new direction-control options. Existing record detection checks for matching records before creating new ones, using the identifying details each platform already has, such as contact name, email, or invoice number, so it recognizes a customer or invoice that already exists on both sides. Once a match is found, duplicate prevention links the two existing records instead of creating a second copy, which is the single most common failure mode with lower-quality sync tools, and the one that usually takes the longest to clean up after the fact.
Safe for Live Databases
Because the connector is meant to run against production data, not just a staging environment, it's built with a few safeguards specifically for that. Manual and scheduled synchronization lets you trigger a sync on demand or let it run automatically on a schedule. Incremental synchronization means only changed records sync on subsequent runs, rather than reprocessing your entire dataset every time. Multi-company support means businesses running more than one company in Odoo can configure and sync each one independently. And detailed sync logs give you a full audit trail of what synced, when, and whether it succeeded, now expanded with the improved error handling in this update.
Setup and Compatibility
The connector authenticates to Xero via OAuth using a Client ID and Secret, so there's no credential sharing required, and it works across Odoo Online, Odoo.sh, and on-premise deployments, on both Community and Enterprise editions. It now supports Odoo 17, 18, and 19. Its dependencies are Contacts, Inventory, Invoicing, Purchase, Sales, and Discuss, all standard Odoo apps, so there's nothing unusual to install first.
Pricing and Support
The connector is available on the Odoo Apps Store for $130, and includes 90 days of free support for setup questions, bugs, and general troubleshooting, though data recovery isn't included. Custom modifications, such as a specific field mapping, an extra data type, or a different matching rule, are available on request. If you're weighing this against a middleware tool like Zapier or a native accounting add-on, the practical difference is scope and control: this connector is purpose-built for Odoo and Xero specifically, handles the full accounting data set rather than just invoices, and now gives you direction-level control most general-purpose sync tools don't offer. Get in touch with Serynto if you want help scoping a rollout for your specific setup, or reach out via sales@serynto.com. You can purchase the connector directly from the Odoo Apps Store at apps.odoo.com/apps/modules/19.0/st_xero_connector.
Frequently Asked Questions
Does this connector support two-way sync, or just import/export? Both. You can run full two-way sync between Odoo and Xero, or restrict it to one direction, Odoo to Xero only or Xero to Odoo only, and that choice can be set independently for each data type. Will it create duplicate customers or invoices if I already have data in both systems? No. The connector checks for existing matching records before creating new ones and links them instead of duplicating, which is the core use case it's designed around. What Odoo versions does it support? Odoo 17, 18, and 19, on Odoo Online, Odoo.sh, or on-premise, across both Community and Enterprise editions. How do I troubleshoot a failed sync? The updated version includes detailed sync logs and debugging output that identify exactly which record failed and why, so most issues can be diagnosed directly from the log rather than requiring support. Does sync run automatically, or do I have to trigger it manually? Both options are supported; you can sync on demand or configure a schedule, and with this update, syncing runs in the background rather than blocking your session. What data does it actually sync? Contacts, vendors, products, taxes, accounts, and currencies as master data, and customer invoices, vendor bills, credit notes, payments, bank transactions, and reconciliation data as accounting records. Ready to get started? Grab the connector from the Odoo Apps Store at apps.odoo.com/apps/modules/19.0/st_xero_connector and start syncing today.