Quick start
The 60-second path. For requirements, optional companion modules, and post-install verification, see Installation.
1. Install the connector
composer require byte8/magento-xero-accounting
bin/magento module:enable Byte8_Core Byte8_Client Byte8_XeroAccounting
bin/magento setup:upgrade
bin/magento cache:flush
composer require pulls in byte8/module-client (the shared chassis) and byte8/module-core (utilities) automatically.
2. Generate a pairing code
In the Magento admin: Stores → Configuration → Byte8 → Xero Accounting.
You'll see a Connection Status block (red, "Not connected") and a Pairing code field. Click Generate pairing code — Magento computes a fresh code, shows it once (it's stored hashed), and starts a 30-minute TTL.
3. Pair with ledger.byte8.io
Click Open Byte8 Ledger beside the pairing-code field — it redirects you straight to ledger.byte8.io/dashboard/connect-magento?provider=xero with the right tenant context.
Sign in (or create your Byte8 account if this is your first connector), enter:
- Magento URL — your store's base URL (
https://your-shop.example.com) - Pairing code — the one you generated 30 seconds ago
Submit. Ledger calls back into your Magento at POST /V1/byte8/xero/setup/pair, persists the per-tenant api_key, and the Magento Connection Status block flips to green ("Connected").
4. Connect Xero
Still on ledger.byte8.io, navigate to Connect → Xero and complete the standard Xero OAuth handshake. The chassis stores the OAuth tokens encrypted at rest and refreshes them automatically — you never see them again.
After connecting, the chassis builds a reference cache for your Xero account: income categories, bank accounts, payment-method targets. This takes ~3-5 seconds and runs once per binding; the dashboard's settings dropdowns populate from it.
5. Verify with a test invoice
Raise a test invoice in your Magento admin (Sales → Orders → Invoice). Within ~60 seconds (the cron drain interval), it should appear:
- In your Magento admin — Sales → Invoices grid, with the Xero Status chip flipping from
⏳ Pendingto✓ Synced. - In Xero — listed as an Open invoice on the contact created from the Magento customer.
- On the Byte8 dashboard —
ledger.byte8.io/dashboard/syncshows asucceededrow with the Xero invoice URL (https://api.xero.com/v2/invoices/<uuid>).
What's next
If the test invoice synced cleanly, you're live. From here:
- Tour the sync settings — sync filters, default mappings, payment-method routing, item-type map, commercial knobs. All optional; defaults are sensible.
- Browse the Magento admin surfaces — chips, info blocks, dead-letter banner, every visual confirmation you'll see day-to-day.
- Read what syncs — the entity-by-entity matrix.
- If something didn't sync, head to Troubleshooting.