---
id: object/table/570
type: object
title: Table 570 "G/L Account Category"
summary: Table 570 "G/L Account Category" in Base Application (Microsoft.Finance.GeneralLedger.Account). 11 fields, 17 public procedures, 7 events. Present since at least BC23, still in BC30, changed in BC24, BC26, BC29.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "29"
  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: 8f41c578c795cc42f0985428bc9ce1dded83d2db5daff6b2d25c2c1efb9340fb
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/GeneralLedger/Account/GLAccountCategory.Table.al
    title: src/Layers/W1/BaseApp/Finance/GeneralLedger/Account/GLAccountCategory.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/bi-account-categories
    - https://learn.microsoft.com/dynamics365/business-central/bi-design-financial-reports
    - https://learn.microsoft.com/dynamics365/business-central/bi-examples-custom-financial-reports
    - https://learn.microsoft.com/dynamics365/business-central/finance-chart-of-accounts
    - https://learn.microsoft.com/dynamics365/business-central/finance-general-ledger
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/finance/financial-analytics/built-in-finance-analysis-tools
    - topic/business-central/business-functionality/finance/financial-analytics/financial-reporting
    - topic/business-central/business-functionality/finance/work-with-the-chart-of-accounts-and-gene
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 570
name: G/L Account Category
namespace: Microsoft.Finance.GeneralLedger.Account
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "26"
  - "29"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 11
  procedures: 29
  events: 7
  subscribers: 0
relations:
  out: 1
  referenced_by: 9
  pages: 1
  extended_by: 0
  event_subscribers: 0
  calls: 3
  called_by: 0
  implements: 0
---

# Table 570 "G/L Account Category"

> Table 570 "G/L Account Category" in Base Application (Microsoft.Finance.GeneralLedger.Account). 11 fields, 17 public procedures, 7 events. Present since at least BC23, still in BC30, changed in BC24, BC26, BC29.

Base Application · Microsoft.Finance.GeneralLedger.Account · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/GeneralLedger/Account/GLAccountCategory.Table.al) · facts from BC29

Learn documents this table through its pages: [Page 790 "G/L Account Categories"](../page/790.md) (5 Learn pages).

## Properties

| Property | Value |
|---|---|
| Caption | G/L Account Category |
| DataClassification | CustomerContent |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | Entry No. | Integer | — | AutoIncrement |
| 2 | Parent Entry No. | Integer | — |  |
| 3 | Sibling Sequence No. | Integer | — |  |
| 4 | Presentation Order | Text[100] | — |  |
| 5 | Indentation | Integer | — |  |
| 6 | Description | Text[80] | Specifies a description of the record. |  |
| 7 | Account Category | Option | Specifies the category of the G/L account. | OptionCaption: ,Assets,Liabilities,Equity,Income,Cost of Goods Sold,Expense |
| 8 | Income/Balance | Enum "G/L Account Report Type" | — | enum [Enum 20 "G/L Account Report Type"](../enum/20.md); not editable |
| 9 | Additional Report Definition | Option | Specifies additional attributes that are used to create the cash flow statement. | OptionCaption: ,Operating Activities,Investing Activities,Financing Activities,Cash Accounts,Retained Earnings,Distribution to Shareholders |
| 11 | System Generated | Boolean | — |  |
| 12 | Has Children | Boolean | — | FlowField: exist("G/L Account Category" where("Parent Entry No." = field("Entry No."))) |

## Keys

- Key1: Entry No. (clustered)
- Key2: Presentation Order, Sibling Sequence No.
- Key3: Parent Entry No.

## Events published

- `OnBeforeGetTotaling(GLAccountCategory: Record "G/L Account Category"; var TotallingStr: Text[250]; var IsHandled: Boolean)` (integration): Integration event that allows customization of the GetTotaling procedure. Subscribers can provide custom totaling logic before the standard calculation.
- `OnBeforeMove(var RecGLAccountCategory: Record "G/L Account Category"; var GLAccountCategory: Record "G/L Account Category"; Steps: Integer; var IsHandled: Boolean)` (integration): Integration event that allows customization of the category move operation. Subscribers can implement custom logic before moving account categories.
- `OnBeforeUpdateDescendants(var GLAccountCategory: Record "G/L Account Category"; var IsHandled: Boolean)` (integration): Integration event that allows customization of descendant category updates. Subscribers can implement custom logic before updating child categories.
- `OnBeforeUpdatePresentationOrder(var GLAccountCategory: Record "G/L Account Category"; var IsHandled: Boolean)` (integration): Integration event that allows customization of presentation order updates. Subscribers can implement custom logic before updating category display order.
- `OnBeforeValidateTotaling(var GLAccountCategory: Record "G/L Account Category"; NewTotaling: Text; var IsHandled: Boolean)` (integration): Integration event that allows customization of totaling validation. Subscribers can implement custom validation logic before totaling field changes.
- `OnGetBalanceOnAfterGetTotaling(var GLAccountCategory: Record "G/L Account Category"; TotalingStr: Text; var Balance: Decimal; var IsHandled: Boolean)` (integration): Integration event that allows customization of balance calculation after totaling. Subscribers can modify the balance calculation based on totaling results.
- `OnGetBalanceOnBeforeProcessChildren(var GLAccountCategory: Record "G/L Account Category"; var Balance: Decimal; var IsHandled: Boolean)` (integration): Integration event that allows customization of balance calculation before processing child categories. Subscribers can modify the balance calculation before child category processing.

## Procedures

- `UpdatePresentationOrder()`: Updates the hierarchical presentation order and indentation level based on the category's position in the tree structure. Calculates the sort order for proper display sequence in financial reports and user interfaces.
- `InitializeDataSet()`: Initializes the account category dataset with standard financial statement structure. Creates default categories for Assets, Liabilities, Equity, Income, Cost of Goods Sold, and Expenses.
- `InsertRow(): Integer`: Creates a new account category as a sibling of the current category with default settings. Returns the entry number of the newly created category for further processing.
- `MoveUp()`: Moves the current account category up one position in the sibling sequence within the same parent level. Updates presentation order and descendant categories accordingly.
- `MoveDown()`: Moves the current account category down one position in the sibling sequence within the same parent level. Updates presentation order and descendant categories accordingly.
- `MakeChildOfPreviousSibling()`: Changes the current category to become a child of its previous sibling category. Restructures the hierarchy by moving the category down one level in the tree.
- `MakeSiblingOfParent()`: Changes the current category to become a sibling of its parent category. Restructures the hierarchy by moving the category up one level in the tree.
- `DeleteRow()`: Deletes the current category and all its child categories from the hierarchy. Removes associated account assignments and updates related financial reports.
- `MapAccounts()`: Maps general ledger accounts to this category (placeholder for future implementation). Provides extension point for custom account mapping logic.
- `ValidateTotaling(NewTotaling: Text)`: Validates and assigns a new totaling filter for general ledger accounts in this category. Updates account assignments and clears previous totaling assignments as needed.
- `LookupTotaling()`: Opens a lookup page to select G/L accounts for the Totaling field. Provides a filtered view based on the category's Income/Balance setting.
- `PositiveNormalBalance(): Boolean`: Determines if the account category has a positive normal balance. Returns true for Expense, Assets, and Cost of Goods Sold categories.
- `GetBalance(): Decimal`: Calculates the total balance for this account category including all child categories. Processes both totaling accounts and hierarchical child categories.
- `GetTotaling(): Text[250]`: Gets the totaling filter string for this account category. Returns the account filter used for calculating category totals.
- `ShowNotificationAccSchedUpdateNeeded()`: Shows a notification that account schedules need to be updated when categories change. Helps maintain consistency between account categories and financial reporting.
- `GetAccSchedUpdateNeededNotificationId(): Guid`: Returns the unique identifier for the account schedule update needed notification. Used for notification management and user preferences.
- `DontNotifyCurrentUserAgain(NotificationID: Guid)`: Disables the account schedule update notification for the current user. Allows users to opt out of future notifications about category updates.

Plus 5 local procedures.

## Triggers

OnDelete

## Relations

- Has Children: CalcFormula [Table 570 "G/L Account Category"](../table/570.md)

## Referenced by

9 fields in 6 objects relate to this table (TableRelation or CalcFormula).

- [Table 15 "G/L Account"](../table/15.md): Account Subcategory Descript., Account Subcategory Entry No.
- [Table 36953 "Account Category"](../table/36953.md): G/L Acc. Category Entry No., Parent Acc. Category Entry No.
- [Table 98 "General Ledger Setup"](../table/98.md): Acc. Payables Category, Acc. Receivables Category
- [Table 46862 "BC14 G/L Account"](../table/46862.md): Account Subcategory Entry No.
- [Table 570 "G/L Account Category"](../table/570.md): Has Children
- [Table 85 "Acc. Schedule Line"](../table/85.md): Totaling

## Pages and codeunits on this table

- [Page 790 "G/L Account Categories"](../page/790.md) (source table)

## 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 570 "G/L Account Category Mgt."](../codeunit/570.md) (2 calls: `InitializeDataSet → (object)`, `InsertRow → AddCategory`)
- [Codeunit 1511 "Notification Lifecycle Mgt."](../codeunit/1511.md) (1 call: `ShowNotificationAccSchedUpdateNeeded → SendNotification`)
- [Codeunit 46 "SelectionFilterManagement"](../codeunit/46.md) (1 call: `GetTotaling → GetSelectionFilterForGLAccount`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24, BC26, BC29

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: "table", object_name: "G/L Account Category")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
