Our Own Books, Run Through Claude - A Custom Xero Connector
Company
Automate AI (our own business)
Industry
AI automation agency
What We Built
A Xero toolkit Claude operates, with guard rails
Connected To
Two Xero organisations and three Stripe accounts
Why We Built It
In August 2026 we moved our books into Xero from another accounting platform. That meant the full history: customers, products, repeating invoices, every past invoice with its original number, the payments against them and months of coded bank transactions. On top of that, three Stripe accounts bill into the same ledger, and we look after a second Xero organisation as well.
We wanted to tell Claude what needed doing in plain English, and have it done properly, in the right organisation, every time.
Where the Off-the-shelf Options Stopped
Xero now offers a free read-only connector inside Claude and ChatGPT, and an official MCP server that can create and update records. Both are worth using. But the connector can't change anything, and the MCP server only exposes the parts of Xero's API its makers chose to wrap. There are no tools to void or clean up records, it works with one organisation per connection, and it has no way to load hundreds of records and pick up where it left off.
For a migration and day-to-day bookkeeping across two organisations, that wasn't enough. One wrong setting, and real entries would land in the wrong set of books.
What We Built
A Xero toolkit that Claude runs on our behalf, with the whole Xero Accounting API open to it rather than a short list of tools. Every job is written to be safe to repeat, can be previewed before it posts, and refuses to run unless it is pointed at the organisation it was built for. Claude reads the request, picks or writes the job, shows the dry run, and runs it once it has been checked.
Historic invoices migrated, totals matched to the cent
Xero Accounting API endpoint reachable, not a fixed tool list
Billing and clean-up jobs run through it so far
What It Does
More Than Reading the Books
Writes, fixes and syncs, with checks that stop mistakes before they post.
The whole API, not a subset
Xero's official MCP server exposes a fixed list of tools. Ours can reach every endpoint in the Xero Accounting API, plus fixed assets and invoice PDFs, so if Xero can do it, Claude can ask for it.
Never the wrong ledger
Two Xero organisations, one toolkit. Before anything runs, it checks the organisation is known, the login really belongs to it, and the live name matches. Any mismatch stops the job.
Bulk work, done safely
Contacts, invoices, payments and hundreds of bank lines loaded in bulk. Every job skips what is already in Xero, so re-running it is always safe.
Dry run first
Every change can be previewed before it is applied. The AI shows what it would post, a person checks it, then it runs for real.
Daily Stripe sync
Payments, fees and payouts from three Stripe accounts post into Xero every morning, each to its own clearing account, with checks that stop money being counted twice.
Fix-ups, not just reads
Merging duplicate contacts, voiding duplicate receipts, recoding invoices and raising one-off bills are all jobs the AI can prepare and run, with the same guard rails.
Compared
Our Xero Toolkit vs Xero's Own AI Options
Columns: ours, Xero's MCP server, and Xero's connector inside Claude.
| Our Xero toolkit | Xero MCP server | Xero connector in Claude | |
|---|---|---|---|
| Read invoices, contacts and reports | Yes | Yes | Yes |
| Coverage of the Xero API | Every Accounting endpoint, plus assets and PDFs | A fixed list of about 40 tools | Read-only subset |
| Create and update records | Yes | YesInvoices in draft only | No |
| Void, merge and clean up records | Yes | No | No |
| More than one organisation | YesWith wrong-ledger checks | YesOne per connection | YesOne at a time |
| Checks the organisation before every run | Yes | No | No |
| Bulk loads that resume after Xero's daily limit | Yes | No | No |
| Preview every change before it posts | Yes | No | No |
| Scheduled syncs from other systems | Yes | No | No |
Three Checks Before Every Job
During the migration, a stray setting on one machine quietly pointed requests at the wrong organisation. Nothing like that can happen now. Every job checks three things before it sends a single request: the organisation is one it knows, the login is authorised for that exact organisation, and the organisation's live name matches. Most jobs are also pinned to the one ledger they were written for and refuse to run anywhere else.
The Migration in Numbers
- 186 historic invoices, with their original numbers and dates, totals matching the old system to the cent.
- 147 customer payments, allocated so debtor balances tie out.
- 45 contacts, 19 repeating invoice templates and the full chart of accounts with tracking.
- 528 bank transactions, loaded across two days because Xero caps each organisation at 5,000 calls a day. The job simply skipped what had already landed and finished the rest.
Under the Hood
- Xero API: any Accounting API endpoint plus fixed assets and PDFs, through one custom connection per organisation, with read-only scopes for reporting.
- Claude: plans the job, writes or picks the script, shows the dry run and runs it once approved.
- AWS: the daily Stripe sync runs as a scheduled serverless job; everything else runs on demand.
- Rate limits: automatic back-off when Xero says slow down, and resumable jobs for the daily cap.
The Outcome
Our books are kept by asking. Raising a one-off invoice, fixing a contact, stopping a retainer or checking what hasn't been billed is a sentence to Claude, checked before it posts, in the right organisation every time.
Want Claude Working Inside Your Xero?
We can build the same guard rails around your organisations, your chart of accounts and your billing.
Free 30-min call · We'll show you 2–3 things to automate first · No obligation
More Success Stories
See how we've helped other New Zealand businesses transform with AI automation
Retro Bowl
Hospitality
An AI voice agent answering the phone in a busy eight-lane bowling alley, plus front-counter texting.
Read case studyPackaging Products
E-commerce
+20% ROAS in month one; social restarted after a 12-month gap.
Read case studyPackaging Products Sales Reporting
E-commerce
Custom dashboard reveals hidden cash sales patterns and high-value clients.
Read case study