Xero Integration
Connect your Xero organisation to Zazu and push your contacts, invoices, and journal entries straight into Xero's ledger — no manual re-keying. About 2 minutes; no API keys to copy.
What you'll need#
Before you start:
- A Xero organisation you can sign in to.
- Permission in Xero to authorise third-party apps for that organisation.
Prerequisites in Xero#
The integration writes to Xero's Contacts, Invoices, and ManualJournals endpoints, so your organisation needs a chart of accounts and tax rates set up (the default South African chart is fine).
Connect in Zazu#
Go to Settings → Integrations → Xero and click Connect to Xero. You'll be sent to Xero to sign in and choose which organisation to connect. After you approve, Xero sends you back to Zazu, which fetches your chart of accounts and tax rates automatically.
Map your accounts#
Before invoices and journal entries can be pushed, match Zazu's concepts to your own chart of accounts: a sales revenue account, a clearing account (journal entries only), and a tax code per VAT rate you invoice with. Open the integration's settings page — the Account mapping card lists everything that still needs a selection, with the options taken straight from your synced chart of accounts.
Until the mapping is complete, pushes are held back safely — nothing is ever posted to a guessed account.
Manual journals need the Adviser role#
Zazu pushes some postings to Xero as manual journals. Xero only allows manual journals for users with the Adviser role in the organisation. Contacts and invoices work with any role — only journal entries require Adviser.
Optional: inbound webhooks#
Optional — the integration re-syncs your chart of accounts on a schedule without it. Webhooks make that refresh instant. Xero signs every webhook with an HMAC-SHA256 signature that Zazu verifies, so no shared secret to copy.
In your Xero app configuration, set the delivery URL to https://<your-zazu-host>/webhooks/xero and subscribe to the Contacts and Invoices events.
What gets pushed#
| Zazu record | Becomes in Xero |
|---|---|
| Customer | Contact |
| Invoice | Invoice (accounts receivable, in draft) |
| Posting | ManualJournal |
Each push is idempotent — Zazu sends a deterministic Idempotency-Key with every create, so a retry never creates a duplicate in your books.
Bank feeds#
Zazu is a Xero financial-services partner, so your Zazu accounts appear in Xero as live bank feeds. Every six hours Zazu delivers a bank statement per account — the transactions appear in Xero's bank reconciliation screen ready for you to reconcile, with balances that always match your Zazu account.
Feeds are created automatically for your open and blocked accounts when you connect. You can switch individual accounts off (and back on) from the integration settings page, and trigger an immediate delivery with “Sync now”. The first statement covers the last 90 days.
Connected to Xero before bank feeds existed? Reconnect once from the settings page to grant the additional access.