Business situation
A London accountancy practice prepares quarterly VAT returns for many of its clients in Xero. Before a manager files each one, somebody has to look over the quarter: transactions with an unexpected tax code, large bills with no VAT recorded, reverse charge entries, and movements that look out of line with the previous quarter. It is careful work, and it competes with everything else in the week.
Why existing tools alone are insufficient
An AI assistant can spot patterns in a list of transactions, but only if someone exports them into a chat — which puts client ledgers wherever that chat is stored. Connecting the AI straight to Xero gives it whatever the connection allows for everyone who uses it, including the ability to change transactions. The practice wants a second pair of eyes, not a second person editing the books.
Systems involved
- Xero — the VAT return report and the transactions behind it.
- KroyDB — the client entity, its VAT scheme, period dates and the manager responsible.
- Kroy Artifacts — where the review note is kept, linked to the client and the period.
Kroy architecture
Claude connects to Kroy. Xero is connected to Kroy once, by the practice. The Review VAT Return Skill is enabled for the tax team: it may read reports and transactions for the manager’s clients and create a review note. It may not write to Xero. Kroy holds the Xero credentials; Claude never receives them.
Workflow
- The manager asks Claude: “Review ABC Limited’s VAT return for the quarter before I file it.”
- Claude requests context through Kroy. Kroy checks the manager, the agent, the manager’s portfolio and the Skill.
- Kroy calls Xero with
xero.reports.readandxero.transactions.readand returns the period’s return, the transactions behind it and the prior quarter for comparison. - Claude lists the items worth checking — for example, a supplier normally coded at the standard rate now coded as zero-rated, and a large overseas bill with no reverse charge entry.
- The manager asks: “Save that as a review note.” Claude requests
artifact.create. Kroy permits it and links the note to ABC Limited and the period. - The manager asks: “Fix the zero-rated ones.” Claude requests
xero.transactions.update. Kroy refuses: the Skill does not include writing to Xero. - The manager asks Claude to file the return. Kroy refuses: filing is not an action this Skill can reach. The manager corrects the coding and files the return in Xero.
Agent permissions
Claude acts only under delegation from the signed-in manager, and only within the Review VAT Return Skill. It reads the manager’s clients and writes only review notes inside Kroy.
Human permissions
The manager sees their own portfolio, makes every correction and files every return. A partner can see review notes across portfolios.
State changes
- A review note Artifact is created for ABC Limited’s VAT period.
- The period’s status moves to Reviewed — awaiting manager.
- Nothing in Xero changes as a result of the AI’s work.
Audit outcome
Kroy records each Xero read, the review note, and both refused requests — the attempted recode and the attempted filing — with the manager, the agent, the Skill and the policy that decided each one.
Security considerations
- Xero credentials stay in Kroy.
- Read-only access is set in the Skill, so it holds whatever the AI is told.
- Payroll and other portfolios are outside the Skill and never returned.
- The review note stays inside the practice’s Kroy organisation, not in a chat history.
Setup requirements
- A Kroy organisation with client entities, VAT periods and portfolios in KroyDB.
- Xero connected to Kroy.
- Claude connected to Kroy.
- The Review VAT Return Skill enabled for the tax team.