Xero Connect for Magento 2 — One-Click Order to Invoice Sync
Push Magento 2 orders to Xero as invoices in one click. Connect securely with OAuth 2.0 using your own Xero app, sync single orders, bulk selections or every order automatically, and never create a duplicate. Customers are matched or created by email and tax is handled by your Xero sales account.
No subscriptions — pay once. Includes 365 days of free updates & support. Keep using the version you have for as long as you like, and renew any time at 60% of the price for another year of updates.
Your orders are already in Magento. Your accountant still wants them in Xero.
Every sale you make has to land in your accounts — and for most stores that means someone re-keying orders into Xero by hand, or paying for a brittle middleware subscription that breaks on every Magento upgrade. Xero Connect pushes a Magento order to Xero as a proper invoice in one click, matches or creates the customer for you, and records the Xero invoice ID so the same order is never sent twice. Your books stay current without the copy-and-paste.
OAuth 2.0 secure connect · One-click order → invoice · Single, bulk & automatic · Never duplicates · Bring your own Xero app · Encrypted credentials · Magento 2.4.9 · PHP 8.4 / 8.5
| Connect in minutes with OAuth 2.0 | Create a free Xero app, paste in your Client ID and Secret, click Connect to Xero and authorise your organisation. No certification, no app-store listing, no per-order fees. |
|---|---|
| Push the way that suits you | Send a single order from its detail page, select many in the Orders grid and push in bulk, or switch on Auto-Push to send each order the moment its Magento invoice is created. |
| Sent once, never twice | Each order is pushed idempotently — the Xero invoice ID is stored against the order, so re-running a bulk action or re-saving an order can never create a duplicate invoice. |
| Customers handled for you | Buyers are matched to an existing Xero contact by email, or created automatically if they are new — so your contact list stays clean without manual tidying. |
What you’ll use it for
- Kill the manual re-keying — stop copying orders into Xero by hand and remove a whole category of typing errors from your bookkeeping.
- Close the books faster — invoices appear in Xero as orders are placed, so reconciliation at month-end is a review, not a data-entry marathon.
- Drop the middleware bill — because it uses your own Xero app credentials, there is nothing to subscribe to and no per-transaction charge.
- Stay compliant on tax — line amounts are sent tax-exclusive so Xero applies the tax rate set on your sales account, keeping VAT consistent with your chart of accounts.
How it works
Secure by design
Your accounting connection should never leak. Xero Connect uses OAuth 2.0, so Magento never stores a Xero password — only tokens you can revoke at any time from your Xero account. Those access and refresh tokens, and your app’s Client Secret, are all stored with Magento’s encrypted configuration backend and decrypted only when a sync runs. The authorisation flow is protected by a one-time state value to prevent CSRF, and because you connect with your own Xero app there is no third-party server in the middle that can see your data.
Specifications
| Connection | OAuth 2.0 to Xero using your own Xero app (no certification or app-store listing required) |
|---|---|
| Sync | Magento order → Xero sales invoice |
| Triggers | Single order, bulk from the Orders grid, or automatic on invoice creation |
| De-duplication | Idempotent — the Xero invoice ID is recorded on the order so it is pushed once |
| Contacts | Matched or created in Xero by customer email |
| Tax | Line amounts sent tax-exclusive; Xero applies the rate on the sales account |
| Configuration | Invoice status, sales and shipping account codes, optional auto-push |
| Security | Encrypted Client Secret and OAuth tokens; CSRF-protected authorisation |
| Delivery & licence | Composer install, per-domain licence key, updates via Composer |
| Compatibility | Magento Open Source 2.4.9 and later 2.4.x; PHP 8.4 and 8.5 |
Works with
Part of the AgenticEcom suite for order operations — push, then manage every order’s notes, workflow and analytics in one place. Included in the complete AgenticEcom Suite.
See it in action

Frequently asked questions
Do I need a paid Xero app or certification?
No. You create a standard OAuth 2.0 app in your own Xero developer account, which is free and takes a few minutes. There is no certification process and no app-store listing — you connect Magento directly to your own Xero organisation.
Will it ever create duplicate invoices?
No. Each order is pushed idempotently: once an order syncs, its Xero invoice ID is stored against the order, so re-running a bulk push or re-saving the order will never create a second invoice.
How are customers handled in Xero?
Buyers are matched to an existing Xero contact by email address. If no contact exists, one is created automatically, so your Xero contact list stays in step with your store without manual tidying.
How is tax handled?
Line amounts are sent to Xero tax-exclusive, and Xero applies the tax rate configured on the sales account you map. That keeps VAT consistent with your Xero chart of accounts rather than re-deriving it in Magento.
Are my Xero credentials stored safely?
Yes. Your Client Secret and the OAuth access and refresh tokens are stored using Magento’s encrypted configuration backend and decrypted only when a sync runs. The OAuth flow is CSRF-protected with a one-time state value.
Which Magento and PHP versions are supported?
Magento Open Source 2.4.9 and later 2.4.x, verified on PHP 8.4 and 8.5.





