HomeIntegrations › Xero
Accounting · UK, NZ, Australia & global

How receipts and invoices get into Xero

Xero's own capture tool is Hubdoc, and there is no public OCR API to send it a photo and get data back. A pipeline can read the document itself and create the bill through Xero's API, with the source file attached.

Capture via HubdocCapture inside Xero runs through Hubdoc; there is no public API for an outside pipeline to pull structured data from a document directly.
Native capture HubdocPublic OCR API NoneBills created as ACCPAY invoicesSource file Attached to the bill
Captureinvoice or receipt arrives outside hubdoc
Readan ai reader pulls supplier and line data
Codeline items matched to accounts and tax
Checkduplicates flagged before anything posts
Postbill created in xero, file attached

What lands in Xero

Supplier & bill details

Supplier, invoice number, dates and totals read from the document and mapped to Xero fields.

Line items

Each line item is extracted and coded to an account before the bill is created.

Bill as ACCPAY invoice

The bill is created through Xero's API in the same ACCPAY format Xero itself uses.

Source PDF or photo

The original file is attached to the bill record, so the paper trail is not lost.

Duplicate check

A document that matches a bill already in Xero is flagged instead of being entered twice.

Review task

Anything that fails validation goes to a review queue instead of being posted on a guess.

Where it gets awkward

Every system has edges. These are the ones that shape the build — better known before the pilot than during it.

No public OCR API

Xero does not expose an endpoint that turns a photo into structured data, so that reading step has to happen before anything reaches Xero. Our pipeline does the reading and calls the bills API directly.

Hubdoc is the native path

Capture inside Xero itself runs through Hubdoc. A custom pipeline is a separate route for documents arriving by email, photo or a channel Hubdoc does not watch.

Bills only through the API

Xero creates bills as ACCPAY invoices; other transaction types need their own mapping.

Is a custom pipeline worth it here?

Worth building
  • Invoices and receipts arriving by email, photo or a channel Hubdoc misses
  • High volume across several entities that all post into Xero
  • Supplier data that needs checking before a bill is created
Native tools are enough
  • Low volume that one person can capture through Hubdoc already
  • You only need the documents already flowing through Hubdoc's own capture

The task behind this

Solution

Invoices and receipts posted into your accounting system automatically

Supplier invoices and staff-photographed receipts posted straight into Merit Aktiva, Xero, QuickBooks and more, with exceptions sent to a review queue.

How the stream is built

Processed in the EU. The original files and extracted data stay in your own systems; a data-processing agreement is available on request — see security and data handling.

From audit to autopilot

Step 1

Audit

We map one document or enquiry stream end-to-end, count volumes and name the systems it touches. You get a written scope and a fixed pilot price.

Free · 3 working days
Step 2

Pilot

One stream goes live on your real documents. Acceptance is measured, not felt: straight-through rate, minutes per document, exceptions.

About two weeks · fixed price
Step 3

Rollout

The remaining streams follow the proven pattern. Monthly report, support, and changes as your systems change.

Stream by stream

Frequently asked questions

Does Xero read invoices on its own?

Only through Hubdoc, which is Xero's own capture tool. There is no public OCR API, so an outside pipeline cannot send Xero a photo and get structured data back; it has to read the document itself and then call the bills API.

How does a document become a bill in Xero?

The pipeline reads the document, maps supplier, line items and totals to Xero fields, and creates the bill as an ACCPAY invoice through the API. The source file is attached to that bill.

Is there a case study for Xero specifically?

Our published case study was built on another ledger, Merit Aktiva, for an Estonian accounting firm. The intake and validation half, reading the document, checking supplier data, flagging duplicates and routing exceptions, is identical; only the final posting call changes for Xero.

What happens to documents that fail validation?

They go to a review queue in a tool you already use rather than being posted as a guess. Someone fixes or approves the entry, and it goes in as a normal bill.

Does this replace Hubdoc?

Not necessarily. It is a separate route for documents that do not flow through Hubdoc, such as photos sent to a messaging channel or attachments arriving in mailboxes Hubdoc is not watching.

Using Xero? Start with the audit

Three working days, one document stream mapped end to end, a fixed pilot price on paper. No commitment.

Get a free automation audit