The supplier statement says one thing.
What is in Xero?
Upload the statement. Select the supplier. Get a clear list of lines that agree, differ, or need a closer look.
The workflow compares invoice references and original invoice totals. Every result has supporting evidence. No entries are posted and no emails are sent.
Preview: synthetic tests and self-hosted n8n checks have passed. Verification against a live Xero test organization and n8n Cloud is still pending. Start with test data.
See the report firstOriginal totals differ. Review the invoice and both recorded amounts.
The reference exists. The amount needs review because the original invoice total is missing.
10 lines. Every line is included. These figures come from the published test fixture.
Start with the exceptions.
Keep the evidence.
See why a line was flagged and trace it back to the document.
The report shows the invoice reference, statement page or row, compared amounts, candidate Xero bills, and a suggested review action.
The example includes a paid bill, an amount difference, a credit note, duplicates, and an outstanding-only line. All data is fictional.
Open the full example reportFrom statement to review list.
Upload and select
Use a text-based PDF or UTF-8 CSV. Select one Xero organization, supplier, currency, and statement date.
Confirm the lines
Review the extraction, correct it if needed, and confirm every transaction line is included. PDF extraction optionally uses OpenAI.
Check and download
The workflow also retrieves older and paid bills. Download HTML, CSV, and JSON together in a ZIP file.
Clear boundaries.
Visible uncertainty.
- Read-only Xero access. No posting or automatic email delivery.
- An outstanding balance is never compared with an original invoice total.
- Credits, partial payments, cancellations, duplicates, and ambiguous candidates require review.
- Incomplete retrieval stops the check. It cannot produce a false not-found result.
- Current Xero data is not a historical snapshot at the statement date.
- Scanned documents, currency conversion, and full balance or payment reconciliation are outside the scope.
An exception is an observation. It does not establish debt, missing documents, or accounting errors.
What you need.
An operator-controlled n8n installation, access to the correct Xero organization, and your own Xero OAuth app with read-only access. The workflow uses standard nodes and is designed for n8n Cloud and self-hosting.
CSV and the fixture demo need no AI key. PDF extraction requires an OpenAI API key and permission to send document text there. Xero data is not sent to AI for matching.
You cover any n8n hosting, Xero app subscription, and OpenAI usage costs. Pricing and data retention depend on your providers and configuration. The guide explains limits, logging, and deletion.
The code and template are available under the MIT license. Setup, customization, and optional support are agreed separately.
Questions before you try it.
Does the workflow change anything in Xero?
No. It reads contacts and purchase bills using limited OAuth permissions. It posts no accounting entries and sends no email.
Do we need AI or have to share accounting data with OpenAI?
CSV and the synthetic example use no AI. Optional PDF extraction sends document text to OpenAI. Xero bills are not sent to AI, and an operator confirms the extracted rows.
What does implementation cost?
The source is free under the MIT license. We agree an implementation and customization price after reviewing your format and checking requirements. Hosting, any Xero app subscription and OpenAI usage are separate costs.
Try it yourself.
Or have it implemented for your team.
Bring a representative statement and describe how you check it today. We agree formats, access, manual review steps, and price before work starts.