---
id: object/page/6942
type: object
title: Page 6942 "Expense Agent Setup API"
summary: Page 6942 "Expense Agent Setup API" 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: ef532a958bce055a40ff5009c8b425b53a8075e2b7b0dd3355042766f80ba4eb
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/ExpenseAgent/app/src/APIs/ExpenseAgentSetupAPI.Page.al
    title: src/Apps/W1/ExpenseAgent/app/src/APIs/ExpenseAgentSetupAPI.Page.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/10956
    - change/bcapps/9859
object_type: page
object_id: 6942
name: Expense Agent Setup API
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: []
counts:
  fields: 0
  procedures: 1
  events: 0
  subscribers: 0
  controls: 38
  actions: 0
relations:
  out: 1
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 3
  called_by: 0
  implements: 0
---

# Page 6942 "Expense Agent Setup API"

> Page 6942 "Expense Agent Setup API" 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/APIs/ExpenseAgentSetupAPI.Page.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| SourceTable | Expense Agent Setup |
| PageType | API |

## 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 | Id | `Rec.SystemId` | — |
|  | Use Rules | [Use Rules](../table/6930.md#fields) | Specifies whether configured expense management rules are applied. <small>from the table field</small> |
|  | Allow Submitters to Evaluate Policies | [Submitter-run Evaluation](../table/6930.md#fields) | Specifies whether submitters can preventively run policy evaluation before submitting expense reports. This evaluation will consume additional AI credits. <small>from the table field</small> |
|  | Enable Agent | [Enable Agent](../table/6930.md#fields) | Specifies whether the agent is enabled to process expense submissions from email and calendar. <small>from the table field</small> |
|  | Exchange Rate for Expenses | [Exchange Rate for Expenses](../table/6930.md#fields) | Specifies which exchange rate to use when converting foreign currency expenses. <small>from the table field</small> |
|  | Prepayment-Cash Advance Allowed | [Allow Prepayment-Cash Advance](../table/6930.md#fields) | Specifies whether prepayments and cash advances are allowed. <small>from the table field</small> |
|  | Allow Grouping of Transactions in Report | [Allow Grp. of Trans. in Report](../table/6930.md#fields) | Specifies whether similar transactions are grouped together in expense reports. <small>from the table field</small> |
|  | Expense Report Rounding Precision <small>obsolete Pending 29.0; #if not CLEAN29</small> | [Exp. Report Rounding Precision](../table/6930.md#fields) | Specifies the rounding precision for amounts in expense reports. <small>from the table field</small> |
|  | Expense Report Rounding Type <small>obsolete Pending 29.0; #if not CLEAN29</small> | [Expense Report Rounding Type](../table/6930.md#fields) | Specifies how amounts are rounded: nearest, up, or down. <small>from the table field</small> |
|  | Do Not Allow Expenses Older Than | [Do Not Allow Exp. Older Than](../table/6930.md#fields) | Specifies a date formula; expenses older than the resulting date are not allowed. <small>from the table field</small> |
|  | If Expense Is Older Than Allowed | [If Exp. Is Older Than Allowed](../table/6930.md#fields) | Specifies how the system handles expenses older than the allowed date: warn, require justification, or block submission. <small>from the table field</small> |
|  | Check Category/Subcategory Usage | [Check Category/SubCat. Usage](../table/6930.md#fields) | Specifies whether both category and subcategory are required on each expense. <small>from the table field</small> |
|  | Display Anti-Corruption Attestation | [Enable Anti-Corp. Statement](../table/6930.md#fields) | Specifies whether users must confirm an anti-corruption attestation before submitting expenses. <small>from the table field</small> |
|  | Expense Reports Nos. | [Expense Reports Nos.](../table/6930.md#fields) | Specifies the number series used to create new expense reports. <small>from the table field</small> |
|  | Expenses Nos. | [Expense Nos.](../table/6930.md#fields) | Specifies the number series used to create expenses. <small>from the table field</small> |
|  | Posted Expense Reports Nos. | [Posted Expense Reports Nos.](../table/6930.md#fields) | Specifies the number series used for posted expense reports. <small>from the table field</small> |
|  | Standard Rate of Mileage | [Standard Rate of Mileage](../table/6930.md#fields) | Specifies the default mileage reimbursement rate. <small>from the table field</small> |
|  | Default Mileage UOM | [Default Mileage UOM](../table/6930.md#fields) | Specifies the default unit of measure for mileage. <small>from the table field</small> |
|  | Only Shortest Route | [Only Shortest Route](../table/6930.md#fields) | Specifies whether only the shortest route is shown for mileage expenses. |
|  | Full Per-Diem Calculations | [Full Per-Diem Calculation](../table/6930.md#fields) | Specifies the rule used to calculate full per diem, for example by calendar day or by hours. <small>from the table field</small> |
|  | Reduction for Breakfast % | [Reduction for Breakfast %](../table/6930.md#fields) | Specifies the percentage deducted from the per diem when breakfast is provided. <small>from the table field</small> |
|  | Per Diem Rounding Precision <small>obsolete Pending 29.0; #if not CLEAN29</small> | [Per Diem Rounding Precision](../table/6930.md#fields) | Specifies the rounding precision for per diem amounts. <small>from the table field</small> |
|  | Reduction for Lunch % | [Reduction for Lunch %](../table/6930.md#fields) | Specifies the percentage deducted from the per diem when lunch is provided. <small>from the table field</small> |
|  | Minimum Hours for Per Diem | [Minimum Hours for Per Diem](../table/6930.md#fields) | Specifies the minimum number of hours required to qualify for per diem. <small>from the table field</small> |
|  | Reduction for Dinner % | [Reduction for Dinner %](../table/6930.md#fields) | Specifies the percentage deducted from the per diem when dinner is provided. <small>from the table field</small> |
|  | Time Tolerance for Calendar | [Time Tolerance for Calendar](../table/6930.md#fields) | Specifies the allowed time deviation when matching calendar events to expenses. <small>from the table field</small> |
|  | Expense Report Grouping | [Expense Report Grouping](../table/6930.md#fields) | Specifies how expense reports are grouped when they are created automatically. <small>from the table field</small> |
|  | Noreply Email Account ID | [Noreply Email Account ID](../table/6930.md#fields) | — |
|  | Noreply Email Connector | [Noreply Email Connector](../table/6930.md#fields) | — |
|  | Noreply Email Address | [Noreply Email Address](../table/6930.md#fields) | Specifies the noreply email address used for outgoing messages. If empty, the main email account is used. <small>from the table field</small> |
|  | System Communication Channel | [System Communication Channel](../table/6930.md#fields) | Specifies the identifier or email address used as the system communication channel. <small>from the table field</small> |
|  | Inbound Email Address | [Email Address](../table/6930.md#fields) | Specifies the inbound email address used by the Expense Agent to receive receipts. Surfaced in service-side notifications such as the welcome email. |
|  | Enable Project Fields | [Enable Project Fields](../table/6930.md#fields) | Specifies whether project and project task fields are visible in the expense web app for submitters. <small>from the table field</small> |
|  | Project Visibility | [Project Visibility](../table/6930.md#fields) | Specifies which projects are visible to submitters: only projects assigned to the user, or all active projects. <small>from the table field</small> |
|  | Agent Language Code | `AgentLanguageCode` | Specifies the language that the agent uses for task details and outgoing messages. |
|  | Agent Time Zone | `AgentTimeZone` | Specifies the time zone configured for the agent user. |
|  | Agent Regional Format ID | `AgentRegionalFormatId` | Specifies the regional format (locale) identifier configured for the agent user. |
|  | expenseAgentAccessControls | part [Page 6984 "Expense Agent Access Ctrl API"](../page/6984.md) | — |

## Procedures

1 local procedures, no public ones.

## Triggers

OnInit, OnAfterGetRecord

## Relations

- source table [Table 6930 "Expense Agent Setup"](../table/6930.md)

## 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 43 "Language"](../codeunit/43.md) (1 call: `TryGetAgentUserSettings → GetLanguageCode`)
- [Codeunit 4321 "Agent"](../codeunit/4321.md) (1 call: `TryGetAgentUserSettings → GetUserSettings`)
- [Codeunit 6993 "Expense Agent API Validation"](../codeunit/6993.md) (1 call: `OnInit → VerifyAgentAccess`)

## Recent changes

- 2026-09-04 [#10956 [ExpenseAgent] Refactor agent setup for policies](../../changes/bcapps/10956.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

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 Agent Setup API")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
