Xero logo

Raise a Xero bill from each expense claim

Staff expense claims land in Xero as bills awaiting payment, coded to the right account and tagged to the department that spent the money.

When this happens

New submission on your expense claim form

Do this

Create a bill in accounts payable against the claimant's contact record with the amount and expense account code

One-directional. A submission triggers the action — nothing is written back into your form.

Expense claims stall in the gap between a spreadsheet and the ledger. The claim sits in someone's inbox, accounts payable has no idea it exists, and the person who paid for the train ticket asks about it three weeks later.

Raising the bill at the moment of submission closes that gap. The claim form feeds Xero directly: one bill per claim, coded to the right expense account and tagged to the department that spent the money. Finance teams that approve reimbursements in batches get a payables list that is already accurate.

Setting it up

  1. 1

    Publish the expense report form and ask one colleague to file a genuine claim, so the sample carries the way people in your organisation actually itemise.

  2. 2

    In Zapier, trigger on New Submission from that form, add Xero, and pick Create Bill so the claim posts to accounts payable rather than appearing as money owed to you.

  3. 3

    Map Employee Name to the bill's contact, with a Find Contact step ahead of it. Regular claimants already exist in Xero, and matching them keeps one payables record per person.

  4. 4

    Split Itemized Expenses into individual bill lines with a Formatter step. One line per expense keeps a week of travel readable when an approver opens it.

  5. 5

    Translate Expense Categories Included (check all that apply) into account codes with a Zapier Lookup Table — travel to your travel account, software to subscriptions — instead of asking claimants to know your chart of accounts.

  6. 6

    Map Department to a tracking category option on each line, so departmental spend reports do not need re-coding at month end.

  7. 7

    Set the line amount type and tax rate explicitly rather than accepting the Zap's default, then reconcile the first claim by hand to confirm the net figure is what you expected.

  8. 8

    Put Expense Period into the bill Reference, leave the status as Draft or Awaiting Approval, run one claim through, and switch the Zap on once it appears under Business then Bills to pay.

What maps where

Using the Expense Report Form as the starting point. These are its real fields — swap in your own and the mapping works the same way.

Form fieldXero
Employee NameContact the bill is raised against in accounts payable
Itemized ExpensesBill line items, one line per expense, after a Formatter split
Total Amount Requested ($)Bill total, checked against the sum of the individual lines
Expense Categories Included (check all that apply)Account code on each bill line, resolved through a Zapier lookup table
DepartmentTracking category option on the line, keeping departmental reporting accurate
Expense PeriodReference on the bill, so an approver sees which weeks the claim covers

Variations worth knowing

Send larger claims for approval first

Total Amount Requested ($) can drive Zapier paths. Below your sign-off threshold the bill is created as Awaiting Payment; above it, the bill stays a draft and a notification goes to the person named in Manager / Approver Name before anything reaches the payment run.

Keep the supplier ledger uncluttered

Raising every claim against one Staff expenses contact, with Employee Name in the bill Reference instead, stops a fifty-person company acquiring fifty contacts in Xero. Reporting by person then comes from the reference column rather than from the contact list.

If something isn't arriving

Bills fail because the amount is not recognised as a number.

People type £42.50, 42,50 or forty-two fifty. Add a Formatter Numbers step to strip symbols and normalise the decimal separator before the Xero action, and change the field's help text to ask for digits only.

The same claim reaches Xero twice.

Xero happily accepts two identical bills. Build the Reference from Employee Name and Expense Period, add a Find Bill search on that reference, and only continue when nothing comes back so a resubmitted claim stops before payables.

Frequently asked questions

Should reimbursements be bills or spend money transactions in Xero?

A bill keeps the claim in accounts payable until it is paid, which is what most teams want for reimbursements. Spend money suits cases where the money has already left the account. The Zap can create either — pick one and stay with it.

Can the claimant check the status of their claim?

Not through the form. The connection runs one way, so nothing about payment status is read back from Xero. Claimants find out from whoever runs the payment run, or from the remittance Xero sends when the bill is paid.

Do contractors and employees need separate forms?

Not necessarily. One form works if you add a question distinguishing the two, then use Zapier paths to send contractor claims to their own supplier contact and a different purchases account code, while staff claims follow the reimbursement route.

Related automations

Build the form first

The automation needs somewhere to fire from. Publish a form, connect it once, and every submission from then on runs this flow.

Start free