Xero WooCommerce integration
WooCommerce orders and refunds in Xero, with the right tax code and the gateway reconciled.
Implementation time · 5-10 días laborables
The problem
With Xero the pain is not issuing a single invoice, it is bank reconciliation. WooCommerce lives on WordPress and its gateway settles payments grouped and net of fees, so matching them by hand against dozens of orders is slow and error-prone. Generic plugins push each order as a line and leave the bank impossible to reconcile; as volume grows, the accountant ends up redoing the work every month.
ProposalThe solution
We connect your WooCommerce store (WordPress) to Xero so every order becomes the correct invoice or receipt, with its tax code, contact and account. Gateway settlements (Stripe, PayPal or WooPayments) are reconciled against the bank, fees are recorded as an expense, and refunds generate credit notes. Built for how UK, Australia and New Zealand operate, where Xero is the standard and VAT or GST has to match on the first pass.
What we automate
- Every WooCommerce order creates an invoice or receipt in Xero with the correct tax code.
- Gateway settlements (Stripe, PayPal, WooPayments) are reconciled against the bank statement.
- Gateway fees are recorded as an expense in the right account.
- Full or partial refunds as credit notes for the actual units.
- Xero contacts created or matched without duplicating customers.
- Full idempotency: WooCommerce webhook retries never duplicate entries.
Real use cases
These are the profiles that most ask us for the Xero ↔ WooCommerce integration and what they get in the end.
UK WooCommerce store on WooPayments
Before: Reconciling each grouped settlement against orders ate half a day a week.
After: Settlements reconcile on their own; the accountant reviews instead of redoing.
Australian brand with GST
Before: GST codes were applied by hand and wrong on every batch of orders.
After: Every sale carries the correct GST code straight into Xero.
Store with many partial refunds
Before: Refunds messed up the accounts and never matched the bank.
After: Every refund is an exact, traceable credit note.
What changes exactly
Without the integration
- Reconciling grouped settlements against orders by hand.
- Each order as a line that leaves the bank unreconciled.
- Tax codes applied by eye from WordPress.
- The accountant redoing the work every month.
With the integration
- Gateway settlements reconciled against the bank automatically.
- Sales grouped by settlement, bank matched.
- Correct tax code on every line.
- The accountant reviews, does not redo.
How we build it
WooCommerce webhooks land in a queue and an idempotent worker writes them to Xero via its API, grouping payments by gateway settlement so bank reconciliation matches on the first pass. Retries with backoff and a unique external key per order, without depending on WordPress being always up.
Frequently asked questions
Does it reconcile gateway settlements with the bank?
Yes, that is the core. We group sales by Stripe, PayPal or WooPayments settlement and record the fee, so the net bank deposit reconciles with the invoices behind it without manual adjustments.
Does it use invoices or sales receipts in Xero?
It depends on your accounting setup. For B2C ecommerce a receipt or a summary invoice usually makes more sense; we decide it with you and your accountant before we start.
Does it work with multi-currency?
Yes. Xero supports multi-currency and we apply the correct rate per transaction, keeping FX differences properly recorded.
What about UK, AU or NZ tax?
We map WooCommerce tax rates to Xero tax codes (VAT, GST and so on) based on your configuration, so every line carries the right code.
Related integrations
QuickBooks + Shopify
Every Shopify order becomes a correct invoice in QuickBooks, with tax and fees reconciled.
See integrationEcommerceXero + Shopify
Shopify orders, refunds and payouts synced to Xero, reconciled and with no duplicates.
See integrationEcommerceOdoo + Shopify
Shopify and Odoo in sync: orders, stock and invoicing in your open-source ERP, tailored.
See integrationShall we talk about your WooCommerce integration?
A 30-minute call, no strings. You leave with scope and a price.