Skip to main content
The Xero integration pushes structured data extracted from invoices and receipts directly into Xero as Bills, eliminating manual data entry. Once set up, every invoice approved in RecordEngine appears in Xero within seconds — with vendor, date, line items, and amounts already populated.

How It Works

1

Document is processed in RecordEngine

An invoice is uploaded and processed. The AI extracts vendor name, invoice date, due date, line items, amounts, and tax.
2

Document is exported

When the document reaches Export status, RecordEngine fires the outbound Document Webhook with the full structured payload.
3

Automation creates the Bill in Xero

Your automation platform receives the webhook, maps the fields to Xero’s Bill format, and creates the draft Bill via the Xero API. The Bill appears in Xero’s Awaiting Payment or Draft queue ready for payment.

What Gets Created in Xero

RecordEngine’s Standard Invoice profile maps directly to Xero Bill fields:
Xero matches the vendor by contact name. Make sure the vendor name extracted by RecordEngine matches your Xero contact name exactly — or add a lookup step in your automation to find the Xero contact ID first.

Step 1 — Configure the Webhook in RecordEngine

  1. Go to Settings → Webhooks
  2. Enter your automation platform’s webhook URL in Document Webhook URL
  3. Save

Step 2 — Connect Xero in Your Automation Platform

Connect your Xero organisation using the native Xero connector. You’ll need:
  • Xero advisor or standard user access on the organisation
  • Permission to authorise the OAuth connection

Step 3 — Build the Automation Scenario

Trigger: Webhook — Custom Webhook Action 1: Parse the incoming webhook payload Action 2: Xero — Create/Update Bill Map fields from the payload to the Xero Bill:
Automation scenario: RecordEngine webhook to Xero Bill creation

Step 4 — Handle Line Items

The webhook payload includes line items as an array. Use an iterator in your automation to loop through line_items and create a Xero line item for each:
Map each object to a Xero LineItem: Description, Quantity, UnitAmount, LineAmount.

Step 5 — Handle Tax

Xero requires explicit tax treatment on each line item. Add a condition in your automation:
  • If extracted_fields.tax is present and non-zero, set TaxType to the appropriate Xero tax rate code for your organisation (e.g. INPUT2 for 20% UK input VAT, or NONE for zero-rated)
  • If no tax, set TaxType = "NONE"
Your Xero tax rate codes are visible in Xero → Accounting → Tax Rates.

Step 6 — Test the Integration

  1. Upload a test invoice and process it with the Standard Invoice profile
  2. Verify all fields extract correctly — pay attention to vendor name, amounts, and line items
  3. Approve and Export the document
  4. Check your automation execution log — the webhook should appear within seconds
  5. Open Xero — the Bill should appear in your Draft or Awaiting Payment queue

Preventing Duplicates

Add a duplicate-check step in your automation before creating the Xero Bill:
  1. Search Xero for existing Bills with the same Reference (invoice number)
  2. If found, skip creation or update the existing Bill instead
  3. If not found, proceed with creation
This prevents double-entries if a document is accidentally exported twice.

Alternative — CSV Import

If you prefer a manual approach, export a CSV from RecordEngine and import into Xero: Export from RecordEngine:
  1. Select the documents in the document list
  2. Click CSV Export
Import into Xero:
  1. In Xero go to Accounting → Bills to Pay
  2. Click Import and follow Xero’s CSV import wizard
  3. Map the RecordEngine CSV columns to Xero fields
The webhook approach creates Bills in real time as documents are approved. The CSV import approach suits teams who prefer to batch-process at end-of-week or end-of-month.

Troubleshooting

For more help see Integration Troubleshooting.