---
id: object/page/6988
type: object
title: Page 6988 "Expense"
summary: Page 6988 "Expense" in ExpenseAgent (Microsoft.ExpenseAgent). Introduced in BC29, still in BC30.
tier: official
language: en
tags:
  - page
  - expenseagent
versions:
  introduced: "29"
  last_changed: null
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 9e826393a25997e1aa55e2205579962cfdb8834d828c60ccb87cb2a3071b99d7
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/ExpenseAgent/app/src/Expense/Pages/Expense.Page.al
    title: src/Apps/W1/ExpenseAgent/app/src/Expense/Pages/Expense.Page.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/expense-management/expense-management-create-expenses
    title: Create and Manage Expenses in Business Central
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/expense-management/expense-management-mileage-rate-setup
    title: Set Up Mileage Rates for Expense Management
    date: null
    commit: null
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/expense-management/expense-management-create-expenses
    - https://learn.microsoft.com/dynamics365/business-central/expense-management/expense-management-mileage-rate-setup
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/expense-management-preview/set-up-expense-management
    - topic/business-central/business-functionality/expense-management-preview/work-with-expenses-in-business-central
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/10561
    - change/bcapps/9859
object_type: page
object_id: 6988
name: Expense
namespace: Microsoft.ExpenseAgent
app: ExpenseAgent
extends: null
first_version: "29"
last_version: "30"
present_in:
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids:
  - docs/learn-smb-docs/business-central/expense-management/expense-management-create-expenses.md
  - docs/learn-smb-docs/business-central/expense-management/expense-management-mileage-rate-setup.md
counts:
  fields: 0
  procedures: 4
  events: 0
  subscribers: 0
  controls: 50
  actions: 12
relations:
  out: 1
  referenced_by: 0
  pages: 2
  extended_by: 0
  event_subscribers: 0
  calls: 3
  called_by: 1
  implements: 0
---

# Page 6988 "Expense"

> Page 6988 "Expense" in ExpenseAgent (Microsoft.ExpenseAgent). Introduced in BC29, still in BC30.

ExpenseAgent · Microsoft.ExpenseAgent · BC29-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/ExpenseAgent/app/src/Expense/Pages/Expense.Page.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Caption | Expense |
| SourceTable | Expense |
| PageType | Card |

## Fields on this page

Layout controls in source order, grouped by the container they sit in. Shows: the table field a control is bound to (or its expression as written); ToolTip: the control's own, else the bound field's (marked).

| Group | Control | Shows | ToolTip |
|---|---|---|---|
| General | No. | [No.](../table/6900.md#fields) | Specifies the expense document number. Leave blank to assign a number from the Expense Nos. number series. <small>from the table field</small> |
|  | Expense User No. | [Expense User No.](../table/6900.md#fields) | Specifies the expense user who incurred the expense. |
|  | Expense Category | [Expense Category](../table/6900.md#fields) | Specifies the category assigned to this expense. |
|  | Expense Location | [Expense Location](../table/6900.md#fields) | Specifies the travel location for the expense. Available for Per Diem expenses. |
|  | Expense Report No. | [Expense Report No.](../table/6900.md#fields) | Specifies the expense report that includes this expense. Set when added to a report. |
|  | Expense Date | [Expense Date](../table/6900.md#fields) | Specifies the date the expense occurred. |
|  | Expense Time | [Expense Time](../table/6900.md#fields) | Specifies the time the expense occurred. |
|  | Description | [Description](../table/6900.md#fields) | Specifies a short description of the expense. |
|  | Receipt No. | [Expense Ext. Doc. No.](../table/6900.md#fields) | Specifies the receipt number or external reference on the document. |
|  | Amount | [Amount](../table/6900.md#fields) | Specifies the total amount in the expense currency. |
|  | Amount (LCY) | [Amount (LCY)](../table/6900.md#fields) | Specifies the total amount in the local currency. |
|  | Justification | [Justification](../table/6900.md#fields) | Specifies the justification for the expense per policy. |
|  | Merchant Name | [Merchant Name](../table/6900.md#fields) | Specifies the vendor or merchant for this expense. |
|  | Merchant Registration No. | [Merchant Registration No.](../table/6900.md#fields) | Specifies the vendor or merchant registration number for this expense. |
|  | Merchant VAT Registration No. | [Merchant VAT Registration No.](../table/6900.md#fields) | Specifies the vendor or merchant VAT registration number for this expense. |
|  | Expense Vendor No. | [Expense Vendor No.](../table/6900.md#fields) | Specifies the expense vendor record created for this expense. Open the expense vendor to review and approve vendor creation. |
|  | Currency Code | [Currency Code](../table/6900.md#fields) | Specifies the value of the Currency Code field. |
|  | Status | [Status](../table/6900.md#fields) | Specifies the current status of the expense. |
|  | Rule Violations | [Rule Violations](../table/6900.md#fields) | Specifies whether any rule violations exist for this expense. |
|  | Created Date-Time | [Created Date-Time](../table/6900.md#fields) | Specifies the date and time the expense was created. |
| Rule | Status | `ShowAppliedRuleTxt` | Specifies the applied rule; choose to view details. Available after a rule is applied. |
| Travel | Starting Date and Time | [Starting Date and Time](../table/6900.md#fields) | Specifies the start of the travel period for this expense. Editable for Per Diem expenses. |
|  | Ending Date and Time | [Ending Date and Time](../table/6900.md#fields) | Specifies the end of the travel period for this expense. Editable for Per Diem expenses. |
|  | Starting Point | [Starting Point](../table/6900.md#fields) | Specifies the starting location for mileage. Available for Mileage expenses. |
|  | Ending Point | [Ending Point](../table/6900.md#fields) | Specifies the ending location for mileage. Available for Mileage expenses. |
|  | Mileage | [Mileage](../table/6900.md#fields) | Specifies the distance traveled for mileage reimbursement. Available for Mileage expenses. |
|  | Round Trip | [Round Trip](../table/6900.md#fields) | Specifies whether the mileage expense is a round trip. When enabled, the distance is doubled for reimbursement calculation. <small>from the table field</small> |
|  | Vehicle Type | [Vehicle Type](../table/6900.md#fields) | Specifies the vehicle type used for this mileage expense. The matching vehicle-specific mileage rate is applied, or the generic rate when none exists. Available for Mileage expenses. |
|  | Total Mileage | `TotalMileage` | Specifies the total mileage for reimbursement. If round trip, this is double the one-way distance. |
|  | Unit of Measure Code | [Unit of Measure Code](../table/6900.md#fields) | Specifies the unit of measure for mileage (for example, miles or kilometers). Available for Mileage expenses. |
| Billing | Billable | [Billable](../table/6900.md#fields) | Specifies whether the expense is billable to a customer. |
|  | Billable to Customer | [Billable to Customer](../table/6900.md#fields) | Specifies the customer to bill for this expense. Available when Billable is turned on. |
|  | Refundable | [Refundable](../table/6900.md#fields) | Specifies whether the expense is reimbursable. |
|  | Reimbursement Type | [Reimbursement Type](../table/6900.md#fields) | Specifies the type of reimbursement for this expense. |
|  | Non-Refundable Amount | [Non-Refundable Amount](../table/6900.md#fields) | Specifies the reduction to the reimbursable amount. Available when Refundable is on and the category does not require itemization. |
|  | Reimbursable Amount | [Reimbursable Amount](../table/6900.md#fields) | Specifies the amount eligible for reimbursement based on policy. |
|  | Reimbursable Amount (LCY) | [Reimbursable Amount (LCY)](../table/6900.md#fields) | Specifies the reimbursable amount in the local currency. |
|  | Refundable Amount | [Refundable Amount](../table/6900.md#fields) | Specifies the amount eligible for refund based on policy. |
|  | Refundable Amount (LCY) | [Refundable Amount (LCY)](../table/6900.md#fields) | Specifies the refundable amount in the local currency. |
|  | Payment Method Code | [Payment Method Code](../table/6900.md#fields) | Specifies the payment method used for this expense. |
|  | Credit Card Feed No. | [Credit Card Feed No.](../table/6900.md#fields) | Specifies the reference to the imported credit card transaction. Set by the system when matched to a card feed. |
|  | Job No. | [Job No.](../table/6900.md#fields) | Specifies the job to assign this expense to. |
|  | Job Task No. | [Job Task No.](../table/6900.md#fields) | Specifies the job task to assign this expense to. |
| Dimensions | Shortcut Dimension 1 Code | [Shortcut Dimension 1 Code](../table/6900.md#fields) | Specifies Shortcut Dimension 1 for this expense. |
|  | Shortcut Dimension 2 Code | [Shortcut Dimension 2 Code](../table/6900.md#fields) | Specifies Shortcut Dimension 2 for this expense. |
| FactBoxes | Statistics | part [Page 6904 "Expense Statistics"](../page/6904.md) | — |
|  | Rule Violations | part [Page 6962 "Expense Rule Violations"](../page/6962.md) | — |
|  | VAT Specification | part [Page 7080 "Expense VAT Spec. FactBox"](../page/7080.md) | — |
|  | Documents | part [Page 1178 "Doc. Attachment List Factbox"](../page/1178.md) | — |
|  | Preview | part [Page 6956 "Expense Picture"](../page/6956.md) | — |

## Actions

| Group | Action | ToolTip | Runs |
|---|---|---|---|
| Expense | Dimensions | View or edit dimensions, such as area, project, or department, that you can assign to sales and purchase documents to distribute costs and analyze transaction history. |  |
|  | Participants | Add participants to the expense. Available for Participant expenses. |  |
|  | Itemizations | Add itemizations to the expense. Available for Itemize expenses. |  |
|  | Per Diem | Add per diem entries to the expense. Available for Per Diem expenses. |  |
|  | VAT Specification | View or edit the per-rate VAT specification captured from the original invoice for this expense. | [Page 7084 "Expense VAT Specification"](../page/7084.md) |
|  | Expense Report | View the details of the expense report associated with this expense. | [Page 6910 "Expense Report"](../page/6910.md) |
|  | Posted Expense Report | View the details of the posted expense report associated with this expense. | [Page 6998 "Posted Expense Report"](../page/6998.md) |
| Functions | Create Expense Report | Create an expense report with this expense. Available when the expense status is Released. |  |
|  | Match merchant data to vendor | Match the merchant data of this expense to a vendor. |  |
|  | Update VAT Specification | Update VAT specification for this expense. |  |
| Release | Release | Release the expense and lock editing. Reopen to edit. |  |
|  | Reopen | Reopen the expense to allow edits. |  |

## Procedures

4 local procedures, no public ones.

## Triggers

OnOpenPage, OnAfterGetCurrRecord, OnNewRecord

## Relations

- source table [Table 6900 "Expense"](../table/6900.md)

## Pages and codeunits on this table

- [Page 6989 "Expenses"](../page/6989.md) (card page)
- [Page 7090 "Accountant Expenses"](../page/7090.md) (card page)

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 6900 "Expense Doc No Visibility"](../codeunit/6900.md) (1 call: `SetDocNoVisible → ExpenseDocumentNoIsVisible`)
- [Codeunit 6912 "Expense Auto Population"](../codeunit/6912.md) (1 call: `CalculateTotalMileage → GetEffectiveDistance`)
- [Codeunit 6989 "Expense Attachment Mgt."](../codeunit/6989.md) (1 call: `OnAfterGetCurrRecord → HasPDFAttachment`)

## Called by

- [Table 6951 "EA KPI Entry"](../table/6951.md) (1 call: `OpenCard → (object)`)

## Recent changes

- 2026-08-27 [#10561 Mileage Rate Setup](../../changes/bcapps/10561.md) (main, BC30, feature)
- 2026-08-04 [#9859 [Master] - Move Expense Agent (Preview) app into BCApps](../../changes/bcapps/9859.md) (main, BC30, feature, added)

## Across versions

- Present in: BC29-30
- Changed (declaration) in: none

## Documented on Microsoft Learn

- [Create and Manage Expenses in Business Central](https://learn.microsoft.com/dynamics365/business-central/expense-management/expense-management-create-expenses)
- [Set Up Mileage Rates for Expense Management](https://learn.microsoft.com/dynamics365/business-central/expense-management/expense-management-mileage-rate-setup)

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "page", object_name: "Expense")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
