---
id: object/page/6914
type: object
title: Page 6914 "Expense Categories API"
summary: Page 6914 "Expense Categories 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: 1b4ede70d4de73f2dd044d60046c210ef726ddaec4bde3970226b7d9934cda5f
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/ExpenseAgent/app/src/APIs/ExpenseCategoriesAPI.Page.al
    title: src/Apps/W1/ExpenseAgent/app/src/APIs/ExpenseCategoriesAPI.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/9859
object_type: page
object_id: 6914
name: Expense Categories 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: 15
  actions: 0
relations:
  out: 1
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 1
  called_by: 0
  implements: 0
---

# Page 6914 "Expense Categories API"

> Page 6914 "Expense Categories 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/ExpenseCategoriesAPI.Page.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| SourceTable | Expense Category |
| 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` | — |
|  | Code | [Code](../table/6921.md#fields) | — |
|  | Description | [Description](../table/6921.md#fields) | — |
|  | Posting Description | [Posting Description](../table/6921.md#fields) | Specifies the posting description that will be used on the ledger entries when this expense category is used in an expense report line. If this field is left blank, the description from the expense report line will be used for the ledger entries. <small>from the table field</small> |
|  | Posting Group | [Posting Group](../table/6921.md#fields) | — |
|  | Attachment Enforcement | [Attachment Enforcement](../table/6921.md#fields) | — |
|  | Default Payment Method | [Default Payment Method](../table/6921.md#fields) | — |
|  | Payment Method Description | `PaymentMethodDescription` | — |
|  | Prepayment-Cash Advance | [Prepayment-Cash Advance](../table/6921.md#fields) | — |
|  | Inactive | [Inactive](../table/6921.md#fields) | — |
|  | Expense Group | [Expense Group](../table/6921.md#fields) | — |
|  | Refundable | [Refundable](../table/6921.md#fields) | — |
|  | Reimbursement Type | [Reimbursement Type](../table/6921.md#fields) | — |
|  | Expense Detail Required | [Expense Detail Required](../table/6921.md#fields) | — |
|  | Expense Subcategories | part [Page 6925 "Expense Subcategories API"](../page/6925.md) | — |

## Procedures

1 local procedures, no public ones.

## Triggers

OnInit, OnAfterGetRecord

## Relations

- source table [Table 6921 "Expense Category"](../table/6921.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 6993 "Expense Agent API Validation"](../codeunit/6993.md) (1 call: `OnInit → VerifyAgentAccess`)

## Recent changes

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