Job expense-receipts-import-to-xero-draft-bills · revised 11 October 2026
Import an expense export as draft Xero bills with the right account and receipt attached
A synthetic expense export becomes one draft Xero bill per expense with the agreed account, supplier and receipt attached, a re-import creates nothing new, and a missing receipt is flagged.
You might be seeing
- Bills arrive in Xero with no receipt attached, or the receipt is on the wrong bill
- Every expense lands in one general expenses account
- Importing the same export twice creates the bills twice
No passwords, keys, card details or admin invites needed to start.
What usually happened
The import turns each exported expense into a bill but loses the link between expense, category and receipt. Categories are not mapped to accounts, receipts are uploaded separately and not tied to the bill they belong to, and nothing records which expenses were already imported, so re-imports duplicate them.
Who it’s for: A bookkeeper, finance manager or office manager who retypes expenses from a spend or receipt tool into Xero, or whose import lands expenses in the wrong account without their receipts.
Usually starts when: Month-end coding of expenses takes days because receipts are not attached, lines land in a general account, and a re-run of the import double-counts the same expenses.
The result: A synthetic export of twelve expenses creates twelve draft bills, each with the agreed account and supplier and its receipts attached to that bill only, a missing or oversized receipt is flagged on a list, importing the same export again creates nothing, and a further expense from a supplier not on the approved list is held and creates no new contact.
Check whether this job fits
Answer these from what you can see without sending logins, invoices or customer data. Nothing is submitted unless you choose to contact us; this is a fit check, not permission for us to touch your systems.
Checks you can run yourself
Check five bills for receipts and accounts
In Xero, open five recent imported bills. For each, note whether a receipt is attached and which account the line uses. Do not edit them.
Look for: Bills with no receipt, or all lines in one account, which are the two failures this job addresses.
What you get
- The import as a pull request or exported configuration with the field mapping written out
- A test table: each expense, its bill, account, tax type and attached receipts
- A flagged list for missing, oversized or failed receipts and for expenses that could not be mapped
Included
- One expense export format feeding one Xero organisation as draft bills
- Field mapping for date, amount, currency, description, account and tax type taken from an approved mapping list
- Supplier matched to an existing Xero contact by a stored contact ID or contact number from an approved supplier list; an expense from a supplier that is not on the list is held and listed, and no contact is created automatically
- Receipt upload to the bill the expense belongs to, within the file count and size limits Xero documents for attachments, confirmed on the demo organisation
- A record of imported expense ids so a re-import creates nothing new
- Tests with twelve invented expenses on a Xero demo organisation, including a foreign-currency one and one without a receipt, plus a separate export of one further expense from a supplier that is not on the approved list
Not included
- Approving, paying or authorising bills, or sending anything to a supplier: your finance owner does that in Xero
- Choosing account codes or tax types, or advising on what is a claimable expense
- Creating, merging or cleaning up supplier contacts in Xero: your bookkeeper adds or chooses the contact, and duplicate contacts are a separate job
- Reading text from receipts or fixing wrong amounts in the source
- Employee reimbursement, payroll and card-feed reconciliation
- Bookkeeping, tax, audit or any accounting advice, including deciding how a transaction should be treated in your accounts
- Changing posted, reconciled or locked-period transactions: your accountant or account holder decides and performs those
- Live changes: your authorised account holder applies any agreed change and holds the production keys
How we know it’s done
Agreed with you before work starts. Each check produces evidence you keep.
A synthetic export of twelve expenses creates twelve draft bills, and each bill's supplier, date, amount, currency, account and tax type equal the approved mapping.
Evidence: The export, the bill list and a per-bill comparison table, redacted.
Each receipt file is attached to its own bill only, including the expense with two receipts; the expense without a receipt is flagged.
Evidence: A per-bill attachment list and the flagged list.
Importing the same export again creates no bill; an export with one changed expense creates no new bill and flags the change.
Evidence: Bill counts before and after each import and the flagged entry.
A separate export of one further expense from a supplier that is not on the approved supplier list creates no bill and no new contact, and appears on the held list with the supplier as exported; the contact count in the demo organisation is the same before and after.
Evidence: The contact count before and after, the held list and the bill count.
A receipt larger than the attachment size limit measured on the demo organisation, or a bill beyond the measured attachment count, is listed as failed and the bill itself still exists as a draft.
Evidence: The failed-receipt entry and the bill record.
Sign-off. You inspect the named test evidence and sign off before payment. Your authorised account holder performs and verifies any live change, and decides what happens to records already posted.
If it fails. If an agreed check does not pass, you do not pay for this fixed scope. We hand over the findings and agree whether to stop or re-quote; no surprise work and no change to your live records.
When it fits, and when we stop
It fits when
- Each exported expense has an id that never changes, and receipts can be provided as files
- A Xero demo organisation can receive invented bills and receipt files for the tests
- Your bookkeeper approves the category-to-account list and says which tax type each uses
- Your bookkeeper can give a list of the suppliers in the export with the existing Xero contact each should use
- A person on your side reviews each draft bill before it is approved in Xero
- Real financial records, customer data and keys are handled only after written agreement, through a secure handoff we agree with you; the first enquiry and the fit check use invented or redacted examples
We stop and tell you if
- Expenses carry no stable id and none can be added
- Receipts are not available as files and must be photographed or transcribed
- The same expenses must also be posted to a second accounting system
What could go wrong
Before merge, closing the pull request leaves your import unchanged. After merge, your developer can revert it. Draft bills created in the demo organisation are disposable; live drafts are created only after your account holder switches the import on.
Scroll the table sideways to read it all.
| Risk | How we handle it |
|---|---|
| A receipt is attached to the wrong bill because files and expenses are matched by position or filename. | Receipts are matched by expense id carried in the export; a test includes similar filenames and an expense with two receipts. |
| A bill with an unmapped category falls into a general account. | Unmapped categories are listed and the bill is not created until a person maps them. |
| An import that creates a contact for every new supplier name produces duplicate contacts in Xero. | Suppliers are matched to an approved list by stored contact ID or contact number; an unknown supplier is held and listed, never created automatically, and the unknown-supplier case is a named acceptance test. |
| Draft bills are approved or paid automatically. | The import creates drafts only; approval is a person's action in Xero. |
An independent reviewer checks that each receipt is on the right bill and only that bill, that amounts and currencies match the export, and that the import cannot approve or pay anything.
How we deliver
We arrange the work and independent review, then show you the result against the agreed checks. You keep authority over your systems.
- Agree the export format, the category-to-account list, the supplier list, the tax types and the draft-only rule in writing
- Reproduce the problem with twelve invented expenses on the demo organisation and record accounts and attachments
- Map fields and accounts from the approved list, match each supplier to its listed Xero contact and create one draft bill per expense, holding any expense whose supplier is not listed
- Attach each receipt to its own bill after the bill exists, within the documented limits, and list failures
- Record imported expense ids, then re-run the same export and an export with one changed expense
- Independent review of the table and the flagged list, then hand over for your developer to merge and your bookkeeper to review the drafts
This is a one-off job, not emergency cover or a subscription. We confirm eligibility, the total price, a start window and a delivery date before you accept. Work starts only after agreed inputs, secure access, any licences and necessary permissions are in place. Platform and supplier charges are excluded unless the written quote includes them. No charge or booking is created by an enquiry.
Need to keep it working?
If you import monthly, discuss a post-import check of counts and receipts as a separate standing agreement.
Ongoing work is separately scoped and quoted: no monitoring, response-time guarantee or automatic subscription is included in this job.
Explore an ongoing engineering lane, or mention the responsibility you need in your enquiry.
What you can check
This is a new service. We have not delivered this job for a client yet.
Other ways to get this done
- Xero documents attaching files to an existing bill through its API, with limits on the number and size of attachments; your developer can use that directly. developer.xero.com
- Ask the expense tool vendor whether it already has a Xero connection that attaches receipts to bills.
Questions
Will it approve or pay the bills?
No. It creates drafts for your finance owner to review, approve and pay in Xero under your own controls.
Can it read the receipt and fill in the amounts?
No. Amounts come from the export. Reading receipt images is not part of this scope.
What if a supplier is not in Xero yet?
The expense is held and listed with the supplier as exported. Your bookkeeper adds or chooses the contact in Xero and updates the approved supplier list; the import never creates a contact on its own.
What about expenses in a foreign currency?
The test set includes one. Rate handling follows the same rule as the foreign-currency invoice job and is agreed with your accountant.
Send an enquiry
Send us
- The name of the expense tool or export format and a list of its columns, with no real rows
- Three invented expenses: one with a receipt, one with two receipts, one with none
- Whether expenses may arrive in a foreign currency, and roughly how many different suppliers appear in a month
- Do not send credentials, bank details, invoices, customer records or confidential code in the first enquiry
Later, once you agree
- A synthetic or redacted export through the agreed route, with receipts replaced by invented files
- A Xero demo organisation connected by you for the job
- Your bookkeeper's approved category-to-account and tax-type list
- Your bookkeeper's approved supplier list: each supplier as it appears in the export, with the Xero contact ID or contact number of the existing contact to use (invented suppliers for the demo organisation)
- A secure, company-controlled handoff route agreed in writing before any access; no passwords, keys or customer records by ordinary email
You keep the live accounting organisation, payment accounts, production keys and every customer and financial record. We work on an authorised demo, sandbox or synthetic copy through a company-controlled handoff, never a personal login. Your authorised account holder approves and performs any live change and checks the result under their own keys.
Email fallback: open your mail app
If website submission is unavailable, review and send the fallback email yourself. An email fallback is not a website receipt. Or write to hello@syntheticindustry.ai with “expense-receipts-import-to-xero-draft-bills” as the subject.