An expense advance is money the company pays an employee before they spend it, such as a travel float or a site imprest, which the employee then owes back. You record the advance, finance pays it from a bank account, and the debt is cleared in one of two ways: by setting it off against expense claims the employee files, or by the employee returning the unspent cash. Each of those three steps posts its own journal, so the amount still owed is a real balance on the Employee Advance account.
Overview
An advance moves through these stages:
- Recorded. Someone creates the advance with the employee, the amount and the bank account it will be paid from. It does not post anything yet.
- Paid. Finance chooses Pay Advance. xMatix posts the payment and opens a balance the employee owes, equal to the full amount.
- Settled against claims. When the employee's expense claim has been approved and posted, finance chooses Settle Against Claim. The claim's payable and the advance's balance both drop by the same amount.
- Recovered. If money is left over, the employee returns it and finance chooses Recover Advance to clear the rest.
The advance is closed when its Outstanding Amount reaches zero.
When to use it
- An employee needs cash before a trip or a job, and you want the amount tracked until it is accounted for.
- You want claims from that trip to use up the advance before any further reimbursement is paid.
- For salary advances and loans recovered in instalments through payroll, use the payroll loans and advances feature instead. Expense advances are never recovered through payroll.
How xMatix handles it
- One balance per advance. Paying an advance raises a recoverable open item against the employee's resource record, on the company's Employee Advance account. Settlements and recoveries draw it down.
- Journals post straight away. Pay, settle and recover each post a balanced journal when you run them:
| Action | Debit | Credit | Journal date |
|---|---|---|---|
| Pay Advance | Employee Advance | the advance's GL Account (your bank) | the advance's Advance Date, or today if that is empty |
| Settle Against Claim | Employee Payable (the claim's payable account) | Employee Advance | the claim's date |
| Recover Advance | the advance's GL Account (your bank) | Employee Advance | today |
- Approval does not pay. No approval process is shipped for advances, and approving one does not post anything. Paying is always a separate finance action.
- Advances are not applied to claims automatically. Reimbursing a claim pays whatever is still open on it. If you settle the advance against the claim first, the reimbursement pays only the difference.
Prerequisites
- Access to the Expenses app and the Expense Advances list.
- The employee's resource record. An advance is tied to the resource, the same person record claims use.
- For finance: an Employee Advance control account for the company, set up as described under Configuration, and the bank GL account you pay from.
- For settling: the employee's claim must be approved and posted, which needs an Employee Payable control account. See Submit and approve expense claims.
Procedure
Step 1 — Record the advance
- Open the Expenses app and go to Expense Advances.
- Choose New.
- Fill in the form:
- Partner Account and Branch — the company and location the advance belongs to. The Branch list shows only that company's branches. On a tenant with one company or one location, these fields are hidden.
- Business Unit — optional.
- Amount — the amount to advance.
- Purpose — what the money is for, in enough detail for finance to judge it.
- Under Additional Information: Resource (the employee), Cost Center (optional) and GL Account — the bank account the advance will be paid from. GL Account is required.
- Save.
The advance gets a number from the EA series, and its record page opens. Nothing has posted yet, and Outstanding Amount is empty. If you left Branch or Business Unit empty, xMatix fills them from the GL Account's defaults where it has them.
The create form has no Advance Date field. Set it on the record page (Step 2) if the payment should be dated something other than the day you pay it.
Step 2 — Complete the record page
The record page has two tabs: Related and Details. On Details, the fields are grouped into Key Information, Amount Details and References. Click a field to change it in place:
- Advance Date (References) — the date the payment journal will carry.
- Expense Claim (Key Information) — the claim this advance should be settled against. Settle Against Claim uses this field, so set it before settling.
- Project (References) — optional.
Choosing Edit at the top of the page opens the create form, which does not include Advance Date or Expense Claim. Edit those fields in place on the Details tab instead.
The Employee field under Key Information is not saved. Use Resource to identify the employee.
Step 3 — Get it approved (if your organisation requires it)
No approval process is shipped for advances. If your administrator has built one for the Expense Advance entity, submit the advance through it and wait for the decision; see Approval processes.
Pay Advance does not check for an approval. Finance should confirm the decision before paying.
Step 4 — Pay the advance (finance)
- Open the advance.
- Choose Pay Advance. A dialog asks for the GL Account to pay from, already filled with the advance's bank account. Change it if you are paying from another account; the advance's GL Account field is updated to match.
- Confirm.
xMatix posts the payment journal and raises the employee's balance. Outstanding Amount now equals Amount, and the GL field links to the payment journal. An advance can be paid only once. Running Pay Advance again is refused.
Step 5 — Settle it against a claim (finance)
- Make sure the claim belongs to the same employee and has been approved and posted.
- On the advance's Details tab, set Expense Claim to that claim.
- Choose Settle Against Claim and confirm.
xMatix settles the smaller of the two balances, the advance's outstanding amount or the claim's open payable, and posts the settlement journal. Afterwards:
- The advance's Outstanding Amount drops by the settled amount.
- On the claim, the settled amount is added to the advance-adjusted amount and taken off the net reimbursable amount.
- If the claim's payable reaches zero, the claim's payment status becomes Paid and its status Settled, so it no longer needs reimbursing.
To use the remaining balance against another claim, change Expense Claim to the next claim and run Settle Against Claim again.
Step 6 — Recover the unspent balance (finance)
- Collect the unspent cash from the employee.
- Check that the advance's GL Account is the bank account the money went into. Recovery posts to that account, and the action has no dialog. Change the field in place if needed.
- Choose Recover Advance and confirm.
xMatix recovers the whole outstanding amount, dated today. Outstanding Amount becomes zero and the advance is closed. Partial recovery is not available from the record page. To recover part of the balance, settle claims first so that only the cash part is left.
Find advances
Expense Advances opens the All Expense Advance view. Its columns are Name, Partner Account, Business Unit, Branch, Employee, Advance Date, Outstanding Amount, Amount, Created By, Created Date and Modified Date. The Employee column is always empty because that field is not saved, so add a Resource column to the view to see who each advance is for. To list open advances, filter on Outstanding Amount greater than zero.
On mobile
The Expenses app is part of the field app. There, the advance create form and record page have the same fields as on the web.
Fields
Create form
| Field | What it means | Notes |
|---|---|---|
| Partner Account | The company the advance belongs to. | Only companies are offered. Its Employee Advance control account is the one used for posting. Hidden on single-company tenants. |
| Branch | The location. | Filtered to the chosen company. Filled from the GL Account's default if left empty. Hidden on single-location tenants. |
| Business Unit | The finance division. | Optional. Filled from the GL Account's default if left empty, and copied onto the open item. |
| Amount | How much is advanced. | Must not be empty or zero ("Amount can not be zero or less than zero."). The payment also refuses a negative amount. |
| Purpose | Why the advance is needed. | Free text, up to 500 characters. |
| Resource | The employee receiving the advance. | Needed before paying. The balance is held against this person. |
| Cost Center | Cost center for reporting. | Optional. Recorded on the advance only — advance posting does not put it on the journal. See Cost centers. |
| GL Account | The bank or payment account. | Required. Used by Pay Advance (as the default in its dialog) and by Recover Advance. This is not the Employee Advance account. |
Record page (Details tab)
| Field | What it means | Notes |
|---|---|---|
| Employee | An older employee link. | Not saved. Use Resource. |
| Expense Claim | The claim to settle against. | Read by Settle Against Claim. Not limited to the employee's own claims, so check it. |
| Outstanding Amount | What the employee still owes. | Empty until paid, then set to Amount. Reduced by each settlement and recovery. Not recalculated if you edit Amount later. |
| Advance Date | The date of the payment. | Date of the payment journal. Not on the create form. |
| Open Transaction | The employee's open balance item. | Set when paid. Read-only in practice. |
| Project | Project for reporting. | Optional. |
| GL | The payment journal. | Set when paid. An advance with a GL cannot be paid again. |
Status is kept by the system (Requested when created, then Paid, PartiallySettled, Settled or Recovered), but it is not on the standard form or list. Read progress from Outstanding Amount and GL, or ask your administrator to add Status to the layout.
Business rules
- Numbering. Advances are named from the EA series with the date and a six-digit counter, set in the Expense Advance name setting.
- Pay needs a bank GL account, an amount above zero, a Resource, an Employee Advance control account for the advance's company, and no previous payment.
- Settle needs a paid advance, an Expense Claim, a posted claim with an open payable, and a balance on both sides. It refuses an advance that is already Settled or Recovered. It does not check that the claim belongs to the same employee.
- Recover needs a paid advance and a bank GL account, and always recovers the whole outstanding balance.
- Status. A new advance is Requested. Paying sets Paid. A settlement sets Settled when the balance reaches zero and PartiallySettled otherwise. A recovery sets Recovered. Approved is never set by xMatix itself; only an approval process field update you configure can write it.
- Each settlement and recovery is recorded as an advance settlement entry with the amount, type (Against Claim or Cash Return), date and journal. Its journal narration names the advance, for example "Advance EA-… settled vs claim …" or "Advance EA-… recovered in cash".
- No automatic reversal. Changing Amount after paying, or deleting a paid advance, does not reverse or repost the journal. Reverse the journal in Finance if a payment was wrong.
Example
Before a three-day site visit, a field engineer needs 15,000 for travel and lodging.
- Their manager creates an advance: Resource set to the engineer, Amount 15,000, Purpose "Site visit — travel and lodging, 3 days", GL Account Current Account — Main Bank. It is saved as EA-15102026-000012.
- Finance sets Advance Date to 15 Oct and chooses Pay Advance. The journal debits Employee Advance 15,000 and credits the bank 15,000. Outstanding Amount reads 15,000.
- After the trip the engineer files a claim for 11,200. It is approved and posts on final approval.
- Finance sets Expense Claim on the advance to that claim and chooses Settle Against Claim. 11,200 is settled, the claim shows as Paid and Settled, and Outstanding Amount drops to 3,800.
- The engineer returns 3,800 in cash, which is banked into the main account. Finance chooses Recover Advance, and Outstanding Amount becomes 0.
If the claim had been 17,000 instead, settling would have used the full 15,000 and left 2,000 open on the claim, which is paid through reimbursement.
Training
Practice exercise
In a sandbox where the Employee Advance and Employee Payable control accounts are set up:
- Create an advance of 5,000 for a test resource, with your sandbox bank account as GL Account.
- Pay it. Expected: Outstanding Amount 5,000, and the GL field links to a journal of Employee Advance debit 5,000 and bank credit 5,000.
- Create, approve and post a claim of 3,000 for the same resource. Set it as the advance's Expense Claim and settle. Expected: Outstanding Amount 2,000, and the claim's net reimbursable amount is 0.
- Recover the advance. Expected: Outstanding Amount 0, and a journal of bank debit 2,000 and Employee Advance credit 2,000 dated today.
Quick reference
- Record the advance first. Nothing posts until Pay Advance.
- GL Account on the advance is the bank, not the Employee Advance account.
- Set Advance Date on the record page before paying if the date matters.
- Approval never pays, and Pay Advance never checks approval.
- Settle only against a posted claim, and set Expense Claim first.
- Settling uses the smaller of the two balances.
- Recover Advance always takes the whole remaining balance.
- Use Resource, not Employee, to name the person.
Permissions
- See, create, edit and delete advances follow the Expense Advance entity access on the user's security profile. The seeded Standard User and System Admin profiles can create them.
- Pay Advance, Settle Against Claim and Recover Advance are server actions. They need a grant on the security profile's Actions tab. Standard User and System Admin have all three out of the box. A user without the grant cannot run them.
- Restrict the three actions to finance users if employees should only record their own advances. See Security profiles.
Configuration
- Employee Advance control account. In the GL accounts of each company that pays advances, you need one account with Account Type Current Assets whose stored Control Type is exactly
EmployeeAdvance, with no space. The Control Type list on the GL account form offers Employee Advance with a space, which payment does not recognise. Neither shipped chart template includes this account, so Enable finance does not create it. Ask your administrator to set the value through the Setup Copilot or a data import; see GL accounts. Leave Is Control Account cleared, because the journal lines carry no customer or supplier. If more than one account matches, xMatix uses the first one it finds, so keep exactly one per company. - Employee Payable control account. It is needed so claims post and can be settled, and it has the same exact-value rule (
EmployeePayable). See Configuring Expense Management. - Approval process. To require sign-off, build one on the Expense Advance entity under Setup → Process Studio → Approvals. Use field updates to stamp the outcome on Status if you want it recorded; see Approval processes. Because Pay Advance does not check approval, train finance to pay only approved advances.
- Numbering. The EA series and its format are in Design Studio → Entities → Expense Advance → Logic → Document Settings.
- Form and list. To show Status, add Advance Date to the create form or remove the unused Employee field, edit the Expense Advance layouts in the designer (Design a form layout). To show the person on the list, add Resource to the All Expense Advance view.
Common problems
Pay Advance says "No Employee Advance control account … is configured"
Cause: the advance's company has no GL account with Account Type Current Assets and the stored Control Type EmployeeAdvance. A value picked from the form's list (Employee Advance, with a space) does not match.
Fix: have an administrator set the exact value on the right account (see Configuration), then pay again. Also check that the advance's Partner Account is the company that owns that account.
"Expense advance must be anchored on a Resource."
Cause: the advance has no Resource. The Employee field does not count.
Fix: set Resource under Additional Information (Edit) and pay again.
"A bank / payment GL account must be selected before paying the advance."
Cause: GL Account is empty, both on the advance and in the dialog.
Fix: choose the bank account in the Pay Advance dialog.
Pay Advance says the advance "has already been paid/posted and cannot be paid again"
Cause: the advance already has a payment journal (GL).
Fix: nothing to do. If the first payment was wrong, reverse its journal in Finance and create a new advance.
"An expense claim must be linked or selected before settling the advance."
Cause: the advance's Expense Claim field is empty.
Fix: set Expense Claim on the Details tab, then settle.
"Claim is not posted / has no payable open item."
Cause: the claim has not been posted yet, usually because it is still awaiting approval, or posting failed for lack of an Employee Payable account.
Fix: finish the claim's approval or post it, then settle.
"Nothing to settle (advance or claim balance is zero)."
Cause: either the advance has been used up or the claim's payable has already been paid or settled.
Fix: check Outstanding Amount on the advance and the claim's balance. Choose another claim or recover the rest.
"… must be paid before it can be settled against a claim" or "… before it can be recovered"
Cause: the advance has not been paid yet.
Fix: run Pay Advance first.
"… is already fully settled and has no outstanding balance to apply."
Cause: the advance is Settled or Recovered.
Fix: none needed. The advance is closed.
Recover Advance says "Invalid recovery amount."
Cause: the advance has no outstanding balance left, because earlier settlements used it all up.
Fix: none needed. The advance is already closed.
I can't save the advance: "Amount can not be zero or less than zero."
Cause: Amount is empty or zero.
Fix: enter the amount being advanced.
The employee returned only part of the cash
Cause: Recover Advance always clears the whole balance.
Fix: settle the employee's claims first so that only the returned cash is left, then recover. If the employee still owes money, keep the advance open until the remaining claims or cash come in.
Common questions
My claim is bigger than my advance. What happens?
Settling uses the whole advance and leaves the rest of the claim's payable open. For example, a 17,000 claim against a 15,000 advance settles 15,000, and the claim still has 2,000 to reimburse. That 2,000 is paid through the normal reimbursement run, single or batch, which pays only what is still open on the claim. The advance's Outstanding Amount drops to zero and the advance is closed as Settled.
My advance is bigger than my claim. What happens?
Settling clears the claim completely: its payment status becomes Paid and its status Settled, because nothing is owed to the employee. The advance keeps the difference as its Outstanding Amount. Either settle it against the employee's next posted claim (change Expense Claim and settle again) or have the employee return the cash and run Recover Advance, which clears the whole remaining balance and closes the advance as Recovered.
Does approving an advance pay it?
No. Approval, if your organisation has set up an approval process for advances, only records the decision; it posts nothing. Finance pays with Pay Advance, which posts the journal and opens the employee's balance. Pay Advance does not check whether the advance was approved, so finance should confirm approval before paying. Reimbursement of claims also never touches advances by itself; you settle them deliberately.
Where can finance see who owes what?
Each advance's Outstanding Amount shows what that employee still owes, and filtering the advance list on Outstanding Amount greater than zero lists every open advance. The total of open advances should equal the balance of the Employee Advance GL account, because every pay, settle and recover posts to it. A difference usually means a manual journal hit the Employee Advance account directly. See Expense accounting.
