Skip to main content

Employee Expenses

Field and office staff submit reimbursable out-of-pocket expenses for manager review. Expenses are linked to a job, equipment, and/or cost code, flowing into job costing and payroll once approved.

Sidebar → Workforce Admin → Employee Expenses

URL: /employee-expenses

Reaching this page requires the Expense — View permission. Without it the page is not reachable from the sidebar or by direct URL.

note

Two other machine-readable names sometimes turn up alongside Employee Expenses in generated references — BreakTimeAllowance and EmployeeAgreement / EmployeeAgreementContract. They are not part of this screen. Break time allowances and employee agreements live under Settings → Human Resources, a separate page from Employee Expenses; this page only covers the Employee Expenses list, its create/edit panel, and its approval workflow.

Overview​

Employee Expenses — list of submitted expense claims with amounts, status, and approval actions

The Employee Expenses page lists every expense an employee has submitted — one row per expense — with its allocation, amount, and approval status. It is a filtered view of the same underlying Expense record used by Accounts Payable: "Employee Expense" and "Account Payable" are the two kinds of expense record, and this page shows only Employee Expenses.

note

The demo instance has no Employee Expense records at all, so the list is shown empty ("No Data Found") in every screenshot on this page, including the one above. Column names, filter chips, and form fields below are confirmed from the table's column configuration and from the live, empty UI — not from a populated row.

List columns​

The columns below are everything the Employee Expenses table can show. Which ones are visible by default versus added through the column picker varies; the screenshot shows the table with most columns turned on.

Employee Expenses list with the full column set visible — Expense Date, Merchant, Expense Account, Expense Category, Equipment, Job, Project, Submitted By, Employee, Date Submitted, Net/Tax Amount Allocated

ColumnDescription
Expense DateDate the expense was incurred (Date of Expense on the form). Sortable.
Invoice NumberOptional vendor invoice number, mainly relevant when a Vendor / Supplier is attached (see Non-reimbursable vendor expenses).
MerchantFree-text name of the vendor or merchant where the purchase was made.
Vendor / SupplierThe linked Company record, when one is attached. Shown automatically when the list is opened from a Company's own page; add it manually elsewhere.
Expense AccountThe GL account item (Chart of Accounts item) the expense's cost rolls into. The same underlying field is labelled "GL Account" on Accounts Payable bills.
Expense CategoryAlways Employee Expense on this page. Read-only here; it only differs on the shared Accounts Payable list.
EquipmentThe equipment the expense is allocated to, when Allocate To is set to Equipment.
JobThe job the expense is allocated to, when Allocate To is set to Job.
ProjectThe project of the allocated job, if that job belongs to a project.
Submitted ByThe user who created the expense record — may differ from Employee, e.g. an office admin entering an expense on a worker's behalf.
EmployeeThe worker being reimbursed. Only set when Reimbursable Expense is on.
Date SubmittedTimestamp the record was created. This is the default sort column (newest first).
Net Amount Allocated / Tax Amount Allocated / Gross Amount AllocatedSums pulled from the expense's allocation line item(s). Differ from Net/Tax/Gross Amount on the record itself only when Split Expense divides one expense across several allocation lines.
Has Been ReimbursedEditable inline from the list. Whether the employee has actually been paid back — independent of lock state.
LockedWhether the record is locked against edits. Only meaningful when the instance's connected accounting system is Sage 50 (Canada), QuickBooks, or Spectrum.
Expense StatusInReview, Approved, or Rejected — see Approval workflow below.
QuickBooks Online Sync StatusThis expense's sync record with QuickBooks Online, on instances whose QBO integration covers Employee Expenses.

Filters, quick tabs, search, sort, and export​

Employee Expenses list with the Expense Status filter open, showing its search box

ControlTypeEffect
All / Active / ArchivedQuick tabsSwitches between every record, non-archived records only (default), and archived records only.
Expense StatusFilter chipMulti-select by status. On the demo instance it shows "No Expense Status Options Available" because there are no expense records to derive the option list from.
Submitted ByFilter chipFilter by the user who created the record.
EmployeeFilter chipFilter by the worker being reimbursed.
ProjectFilter chipFilter by the allocated job's project.
JobFilter chipFilter by the allocated job.
EquipmentFilter chipFilter by the allocated equipment.
Expense AccountFilter chipFilter by the GL account item the expense is allocated to.
Expense DateFilter chip (date range)Filter by the date the expense was incurred.
MerchantFilter chipFilter by merchant name.
Expense CategoryFilter chipFilter by type — always Employee Expense on this page.
Date SubmittedFilter chip (date range)Filter by when the record was created.
Vendor / Supplier, LockedFilter chips (job-scoped list only)Appear only when this same list is embedded on a Job → Financials & Reporting → Expenses tab (see Costing an expense to a job).
Search Account, Claimant, Job NameSearch boxFree-text search across the expense's vendor/account, claimant (employee), and job name.
Column headersSortClick a header to sort by that column. Default sort is Date Submitted, newest first.
ExportButtonExports the current filtered view to CSV. Disabled when there are no rows to export (as on the demo instance). Instances with a connected accounting system may also see an accounting-format export here, gated by that system's export settings for Employee Expenses.
Create Employee ExpenseButtonOpens the Create Employee Expense panel — see below.

Create an Employee Expense​

Click Create Employee Expense (top right of the list) to open the panel. The same panel, with the record's saved values, opens when you click a row's View Details link to edit an existing expense.

The panel is a shared Expense form used for both Employee Expenses and Accounts Payable; the fields below are what it shows when opened from this page.

Panel — top half​

Create Employee Expense panel — Reimbursable Expense toggle, Employee field, and the Expense Status / Has Been Reimbursed controls at the bottom

Shown empty on the demo instance.
FieldRequiredTypeEffect
Expense DateYesDateThe date the expense was incurred.
Invoice NumberNoTextOptional vendor invoice number. If a Vendor / Supplier and invoice number are both present, saving checks for a duplicate invoice number on that vendor and asks you to confirm before saving anyway.
Expense CategoryYes (fixed)Select (disabled)Always Employee Expense; the dropdown is present but disabled from this page — you cannot switch it to Account Payable here.
MerchantYesTextName of the vendor or merchant where the purchase was made.
Vendor / SupplierNo — only shown when Allow Vendors / Suppliers on Employee Expenses is onCompany pickerOptionally associates a vendor/supplier company with the expense. See Non-reimbursable vendor expenses.
Reimbursable Expense—ToggleOn: the panel asks for an Employee to reimburse. Off: the panel asks for a Reimbursement Type instead (e.g. company card), since there is no employee to pay back. Default is controlled by the Default New Expenses to Reimbursable instance setting.
EmployeeYes, when Reimbursable Expense is onUser picker (active, non-guest users only)The worker to reimburse.
Reimbursement TypeYes, when Reimbursable Expense is offSelect/comboboxHow the company paid (e.g. company card). On instances with QuickBooks Online payment-account sync enabled for employee expenses, this list also offers QBO payment accounts.
DetailsNoTextarea (800 char)Free-text notes about the expense.

Allocate To grid​

Create Employee Expense panel — Allocate To set to Job, a job selected, and the Expense Account field

Shown empty on the demo instance.

This is what makes the expense show up in job costing — separate from the Reimbursable Expense toggle, which only controls who gets paid back.

ControlRequiredTypeEffect
Split Expense—ToggleOff (default): a single allocation row. On: add multiple Job/Equipment allocation rows, each with its own Net/Gross Amount and Taxes; a row's amounts must add up to the expense total to save.
Allocate ToYesSelectJob or Equipment — what this allocation row is charged against.
Select Job / Select EquipmentYesSearch/comboboxThe specific job or equipment record for this row. Job options are restricted to jobs you're a project lead on when your Job view permission is project-based.
Expense AccountYesComboboxThe GL account item this allocation line's cost rolls into. The same Job/Equipment + Expense Account combination cannot be used twice across rows.
Net Amount (or Gross Amount in Total calculation mode)Yes, when Split Expense is onCurrencyThis row's share of the expense.
+ (Allocate to Cost Code)—ButtonAppears only on Job rows. Adds a Cost Code sub-row nested under that job line, offered only from cost codes belonging to that specific Job + Expense Account combination. Add more than one to split the job line across several cost codes; the row's amounts must sum to the parent job line's amount. Not available on Equipment rows.
Expand/collapse chevron—Icon buttonShows or hides a job row's Cost Code sub-rows once at least one has been added.
Trash icon—ButtonRemoves a row (or, on a sub-row, removes that cost-code split).
Assets / ReceiptsNoFile uploadAttach one or more receipt files (DOC, DOCX, PDF, XLS, PPT, TXT, JPEG, JPG, PNG, and most other document types; up to 8 files).
note

An earlier version of this page said there was no cost-code field on the expense allocation — that was wrong. A Job allocation row can carry one or more Cost Code sub-rows, each tied to that row's specific Job + Expense Account combination. The demo instance had no Expense Accounts configured for the job used in the screenshot above (the picker showed "Nothing found"), so a populated cost-code split could not be captured live.

Panel — bottom half (tax, status, lock)​

FieldRequiredTypeEffect
Calculation Mode—Toggle (Pre-tax / Total)Pre-tax: enter the Net Amount and taxes are calculated from the selected Tax Type. Total: enter the Gross Amount and the net/tax split is back-calculated.
Net Amount (Pre-tax mode)YesCurrencyThe expense subtotal before tax.
Tax TypeYes, unless Override Tax Rate is onSelectThe tax rate applied to the expense.
Override Tax Rate—ToggleLets you enter the tax amount manually instead of picking a Tax Type. The instance's own help text warns this transaction will not sync or export to any accounting system.
TaxesDepends on Calculation ModeCurrencyCalculated automatically in most cases; editable directly when Override Tax Rate is on, or back-calculated per line item when Split Expense has more than one row.
Gross Amount (Total mode) / TotalYes (Total mode)CurrencyThe full amount including tax.
Locked—ToggleOnly shown when the instance's connected accounting system is Sage 50 (Canada), QuickBooks, or Spectrum. Requires the separate Expense — Lock permission; without it the toggle is disabled with the tooltip "You do not have permission to lock this expense." While locked, the whole form is disabled and the panel shows "This record cannot be modified as it has been transferred to Accounting for processing."
Has Been Reimbursed—ToggleHidden entirely for non-reimbursable expenses (there's nothing to reimburse). Records that the employee has actually been paid back — independent of Locked.
Exported to Sage 50 Canada / Exported to QuickBooks / Exported to Spectrum—Read-only timestampShows the last export time to whichever accounting system is connected, or "Not exported." Only one of the three appears, matching the connected system.
Expense Status (Approve / Reject)—Action barSee Approval workflow below. Only shown to users with the Expense — Approve permission; everyone else sees plain Save/Cancel buttons instead.

Approval workflow​

  1. A worker or an office admin creates the expense (from the mobile app with a receipt photo, or from this desktop panel) and saves it. Saving without choosing Approve or Reject sets the record's status to InReview — there is no separate "draft" state on this form.
  2. Saving a new InReview expense sends an Expense Submitted notification. Recipients are the users subscribed to that notification who hold the Expense — View permission — it is not limited to a fixed "approver" role.
  3. A user with the Expense — Approve permission opens the expense — this permission is also what makes the Approve/Reject action bar appear at all — reviews the receipt, the allocation, and the amount, and clicks Approve or Reject. Rejecting requires a reason, entered in the Reason for expense rejection field.
  4. Approved sends an Expense Approved notification to the employee being reimbursed (the record's Employee field) and triggers a job-cost recalculation for the job(s) the expense is allocated to.
  5. Rejected sends an Expense Rejected notification to that same employee. Moving an already-Approved expense back to Rejected or InReview also triggers a job-cost recalculation, so the job's Actual costs stay correct.
  6. Once Approved and marked Reimbursable, the expense is picked up by payroll through the pay-period reports — see Reimbursement and payroll below — not by a separate "send to payroll" action on the expense itself.

On mobile, workers submit expenses (with a receipt photo) and see their own expense status from the Appello mobile app; see Mobile: Expenses, Leave & Certifications for that side of the workflow.

Resync from QuickBooks — not on this screen​

The shared expense panel has a Refresh from QuickBooks action that re-pulls attachments and re-syncs a bill from QuickBooks Online. It is gated to Accounts Payable bills only (type === "AccountPayable", status In Review, and the Expense — Approve permission) and does not appear on Employee Expenses at all. If you're looking for that control, see Accounts Payable and QuickBooks Online: Accounting Connection for what the resync does and how the QuickBooks Online connection more broadly keeps Appello and QuickBooks in sync.

Bulk actions​

Select one or more rows with the checkboxes to reveal bulk actions in the list toolbar:

ActionEffect
ArchiveArchives the selected expenses. They move out of the Active tab into Archived, and no longer count toward the Outstanding/Total AP totals shown on the list.
RestoreRestores previously archived expenses back to Active (available from the Archived tab).
DeletePermanently deletes the selected expenses. The list first checks for related records and can warn you how many would be affected before you confirm.
Lock / UnlockToggles the Locked state on the selected expenses in one action — same effect as the Locked toggle on the individual panel, and subject to the same Expense — Lock permission.

Reimbursement and payroll​

Once an expense is Approved and marked reimbursable, it is picked up by payroll the same way approved timesheet hours are: through the pay-period reports, not by a separate "send to payroll" action on the expense itself.

The Reimbursable Expense toggle​

Every expense has a Reimbursable Expense toggle on the create/edit panel. When it is on, the expense requires an Employee (the worker to reimburse); when it is off, the panel asks for a Reimbursement Type instead, since there is no employee to pay back.

Whether a new expense starts with this toggle on or off is controlled instance-wide:

  1. Go to Settings → Instance Settings.
  2. Find the Employee Expense Settings card.
  3. Toggle Default New Expenses to Reimbursable.

Instance Settings — Employee Expense Settings card with Allow Vendors / Suppliers on Employee Expenses and Default New Expenses to Reimbursable

SettingLocationEffect
Default New Expenses to ReimbursableSettings → Instance Settings → Employee Expense SettingsWhen on, a brand-new expense starts with Reimbursable Expense switched on. When off, new expenses start non-reimbursable. Existing expenses are never changed by this setting — it only affects the initial value on a new record.

Full instance-wide settings reference: Instance Settings.

Appearing on the Payroll Report and in payroll exports​

Reimbursable expenses do not have their own line item on a job's labour cost report — they surface on the Payroll Report for the pay period in which they were logged, alongside travel, board, and parking:

Payroll Report columnWhat it is
Out of Pocket Expenses Subtotal / Tax / TotalThe reimbursable employee expenses logged in that pay period, net and gross
Expenses Grand TotalTravel + Board + Parking + the out-of-pocket expense total above

Because the Payroll Report and its exports (CSV, and any payroll-software format enabled for your instance) are the same feature documented in Timesheet Export & Payroll, see that page for the full column layout, the pay-period selector, and how to run a payroll-software export — an approved reimbursable expense simply adds to those same "Out of Pocket" figures for the worker's pay period.

note

The demo instance has no employee expense records, so the Out of Pocket columns could not be captured with a non-zero value here. The column names and the fact that they sum reimbursable expenses for the pay period come from the Payroll Report's own documentation, not from a populated screenshot on this page.

Locking an expense​

An expense can be locked once it has been transferred to your accounting system for payroll or AP processing, so nobody edits it out from under that transfer:

  • The Locked toggle only appears on the expense when your instance's connected accounting system is Sage 50 (Canada), QuickBooks, or Spectrum.
  • Locking (and unlocking) requires a permission separate from ordinary expense edit access — without it, the toggle is disabled with the tooltip "You do not have permission to lock this expense."
  • While an expense is locked, the entire form is disabled and cannot be saved. The panel shows the warning "This record cannot be modified as it has been transferred to Accounting for processing."
  • From the Employee Expenses list, Locked is also available as a filter and as a bulk action — select one or more rows to lock or unlock them together.

The job-scoped expense list (see Costing an expense to a job below) exposes the same Locked and Has Been Reimbursed filters, so you can check payment/lock state without leaving the job:

Job-scoped Employee Expense list, filtered to one job, showing the Vendor / Supplier, Has Been Reimbursed, and Locked filter columns

Has Been Reimbursed is a separate toggle from locking — it just records that the employee has actually been paid back, independent of whether the record is locked against further edits.

note

The demo instance has no expense records to lock, and the connected-accounting-system gate could not be exercised live. The lock behavior, the permission gate, and the warning text above are described rather than captured from a populated screenshot.

Costing an expense to a job​

An expense's Allocate To section is what makes it show up in job costing — see the Allocate To grid above for the field-by-field breakdown, including how a Job row can also carry one or more Cost Code sub-rows.

Where it shows up in job costs​

Once an expense is allocated to a job, two places on that job reflect it:

  • Job → Financials & Reporting → Expenses — the same Employee Expenses list, pre-filtered to this job. Use it to review, approve, or check the reimbursement/lock state of every expense charged to the job.
  • Job → Financials & Reporting → Financial Summary — the job's cost breakdown by account item, under the Financials tab's Expenses section (alongside Direct Labour, Equipment Time, and Travel Expenses). An approved expense's Net Amount and tax add to the Actual column for the account item it was allocated to.

Job Financial Summary — cost breakdown by account item (Direct Labour, Equipment Time, Travel Expenses) with Estimates / Change Orders / Total / Actual / Difference columns

note

The job used above ("Bay Street Tower — RTU Replacement") has no expenses allocated to it on the demo instance, so its Financial Summary shows only the standard Direct Labour / Equipment Time / Travel Expenses rows with zero actuals — no Employee Expense account-item row was available to capture live. Source code confirms the Financial Summary's underlying data includes approved, in-review, and rejected employee-expense totals per account item; the exact row label and its position in the Expenses section could not be confirmed against a populated instance.

Non-reimbursable vendor expenses​

If a vendor or supplier fronted a cost that your company will pay directly — rather than an employee paying out of pocket — you can record that on the same Employee Expenses screen instead of creating a separate Accounts Payable bill, but only if your instance allows it:

  1. Go to Settings → Instance Settings → Employee Expense Settings.
  2. Turn on Allow Vendors / Suppliers on Employee Expenses.

With that setting on, the expense form shows an optional Vendor / Supplier company picker below Merchant. Associating a vendor there is intended for non-reimbursable expenses — the Reimbursable Expense toggle and the Vendor / Supplier field are independent controls, but the setting's own description frames the vendor field as the way to sync a non-reimbursable expense to QuickBooks Online with the vendor as the payee, rather than reimbursing an employee. With a Vendor / Supplier and an Invoice Number both present, saving also checks for a duplicate invoice number already used by that vendor and asks you to confirm before saving anyway.

See Instance Settings for where this setting lives among the rest of the instance-wide configuration.

note

The demo instance has Allow Vendors / Suppliers on Employee Expenses turned off (see the screenshot in Reimbursement and payroll above), so the Vendor / Supplier field could not be captured live on the create/edit panel. The field's presence, its position below Merchant, and its "non-reimbursable expenses synced to QuickBooks Online" description come from the setting's own help text; whether the product technically enforces vendor-linked expenses to be non-reimbursable, or simply expects that workflow, could not be confirmed in this pass.

Permissions and settings​

NameTypeEffect
Expense — ViewPermissionRequired to reach Employee Expenses at all.
Expense — Create / Edit / DeletePermissionGoverns the Create Employee Expense button, editing an existing record, and the bulk Delete action.
Expense — ApprovePermissionRequired for the Approve/Reject action bar to appear on the panel at all — without it you only get Save/Cancel. Also gates the Accounts Payable-only "Refresh from QuickBooks" resync.
Expense — LockPermissionRequired to change the Locked toggle, individually or via the bulk Lock/Unlock action.
Default New Expenses to ReimbursableInstance settingSettings → Instance Settings → Employee Expense Settings. Sets the starting value of Reimbursable Expense on new records only.
Allow Vendors / Suppliers on Employee ExpensesInstance settingSettings → Instance Settings → Employee Expense Settings. Shows the Vendor / Supplier picker on the panel and enables duplicate-invoice checking for it.
Connected accounting system (Sage 50 Canada / QuickBooks / Spectrum)Instance-wide integrationDetermines whether the Locked toggle and the matching "Exported to ..." read-only field appear on the panel. See Accounting Connection.