---
id: object/codeunit/48
type: object
title: Codeunit 48 "PostingSetupManagement"
summary: Codeunit 48 "PostingSetupManagement" in Base Application (Microsoft.Finance.ReceivablesPayables). 29 public procedures, 10 events, 1 event subscribers. Present since at least BC23, still in BC30, changed in BC24.
tier: official
language: en
tags:
  - codeunit
  - base application
versions:
  introduced: null
  last_changed: "24"
  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: 85ba5cefbe16fcee01f9108d3e7a1d395946efc44c4fcbdb32cc5ad08cc1ce25
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/ReceivablesPayables/PostingSetupManagement.Codeunit.al
    title: src/Layers/W1/BaseApp/Finance/ReceivablesPayables/PostingSetupManagement.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: codeunit
object_id: 48
name: PostingSetupManagement
namespace: Microsoft.Finance.ReceivablesPayables
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 46
  events: 10
  subscribers: 1
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 3
  called_by: 12
  implements: 0
---

# Codeunit 48 "PostingSetupManagement"

> Codeunit 48 "PostingSetupManagement" in Base Application (Microsoft.Finance.ReceivablesPayables). 29 public procedures, 10 events, 1 event subscribers. Present since at least BC23, still in BC30, changed in BC24.

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

## Events published

- `OnBeforeCheckInvtPostingSetupInventoryAccount(var LocationCode: Code[10]; var PostingGroup: Code[20]; var IsHandled: Boolean)` (integration): Integration event raised before checking inventory posting setup inventory account.
- `OnBeforeCheckVATPostingSetupSalesAccount(VATBusGroupCode: Code[20]; VATProdGroupCode: Code[20]; var IsHandled: Boolean)` (integration): Integration event raised before checking VAT posting setup sales account.
- `OnBeforeCheckGenPostingSetupCOGSAccount(var GenBusGroupCode: Code[20]; var GenProdGroupCode: Code[20]; var IsHandled: Boolean)` (integration): Integration event raised before checking general posting setup COGS account.
- `OnBeforeCheckVATPostingSetupPurchAccount(var VATBusGroupCode: Code[20]; var VATProdGroupCode: Code[20]; var IsHandled: Boolean)` (integration): Integration event raised before checking VAT posting setup purchase account.
- `OnBeforeCheckGenPostingSetupSalesAccount(var GenBusGroupCode: Code[20]; var GenProdGroupCode: Code[20]; var IsHandled: Boolean)` (integration): Integration event raised before checking general posting setup sales account.
- `OnBeforeCheckCustPostingGroupReceivablesAccount(var PostingGroup: Code[20]; var IsHandled: Boolean)` (integration): Integration event raised before checking customer posting group receivables account.
- `OnBeforeCheckVendPostingGroupPayablesAccount(var PostingGroup: Code[20]; var IsHandled: Boolean)` (integration): Integration event raised before checking vendor posting group payables account.
- `OnBeforeConfirmPostingAfterWorkingDate(var ConfirmQst: Text; var PostingDate: Date; var Result: Boolean; var IsHandled: Boolean)` (integration): Integration event raised before confirming posting after working date.
- `OnBeforeCheckGenPostingSetupPurchAccount(var GenBusGroupCode: Code[20]; var GenProdGroupCode: Code[20]; var IsHandled: Boolean)` (integration): Integration event raised before checking general posting setup purchase account.
- `OnBeforeSendGenPostingSetupNotification(GenPostingSetup: Record "General Posting Setup"; FieldCaption: Text; var IsHandled: Boolean)` (integration): Integration event raised before sending general posting setup notification.

## Event subscriptions

- OnInitializingNotificationWithDefaultState subscribes to Page "My Notifications" OnInitializingNotificationWithDefaultState

## Procedures

- `CheckCustPostingGroupReceivablesAccount(PostingGroup: Code[20])`: Validates that the receivables account is configured in the specified customer posting group. Sends notification if the receivables account is missing and notifications are enabled.
- `CheckVendPostingGroupPayablesAccount(PostingGroup: Code[20])`: Validates that the payables account is configured in the specified vendor posting group. Sends notification if the payables account is missing and notifications are enabled.
- `CheckGenPostingSetupSalesAccount(GenBusGroupCode: Code[20]; GenProdGroupCode: Code[20])`: Checks if sales account is properly configured in general posting setup. Validates sales account setup and sends notification if configuration is missing.
- `CheckGenPostingSetupPurchAccount(GenBusGroupCode: Code[20]; GenProdGroupCode: Code[20])`: Checks if purchase account is properly configured in general posting setup. Validates purchase account setup and sends notification if configuration is missing.
- `CheckGenPostingSetupCOGSAccount(GenBusGroupCode: Code[20]; GenProdGroupCode: Code[20])`: Checks if Cost of Goods Sold account is properly configured in general posting setup. Validates COGS account setup and sends notification if configuration is missing.
- `CheckVATPostingSetupSalesAccount(VATBusGroupCode: Code[20]; VATProdGroupCode: Code[20])`: Checks if sales VAT account is properly configured in VAT posting setup. Validates sales VAT account setup and sends notification if configuration is missing.
- `CheckVATPostingSetupPurchAccount(VATBusGroupCode: Code[20]; VATProdGroupCode: Code[20])`: Checks if purchase VAT account is properly configured in VAT posting setup. Validates purchase VAT account setup and sends notification if configuration is missing.
- `CheckInvtPostingSetupInventoryAccount(LocationCode: Code[10]; PostingGroup: Code[20])`: Checks if inventory account is properly configured in inventory posting setup. Validates inventory account setup and sends notification if configuration is missing.
- `GetPostingSetupNotificationID(): Guid`: Gets the unique notification ID for posting setup notifications. Returns the GUID used to identify posting setup notification messages.
- `ConfirmPostingAfterWorkingDate(ConfirmQst: Text; PostingDate: Date): Boolean`: Confirms posting operation when posting date is after working date. Shows confirmation dialog and manages instruction settings for future confirmations.
- `IsPostingSetupNotificationEnabled(): Boolean`: Checks if posting setup notifications are enabled for the current user. Returns notification setting status for posting setup validation warnings.
- `SendCustPostingGroupNotification(CustomerPostingGroup: Record "Customer Posting Group"; FieldCaption: Text)`: Sends notification for missing customer posting group account configuration. Displays user notification when customer posting group account setup is incomplete.
- `SendVendPostingGroupNotification(VendorPostingGroup: Record "Vendor Posting Group"; FieldCaption: Text)`: Sends notification for missing vendor posting group account configuration. Displays user notification when vendor posting group account setup is incomplete.
- `SendInvtPostingSetupNotification(InvtPostingSetup: Record "Inventory Posting Setup"; FieldCaption: Text)`: Sends notification for missing inventory posting setup account configuration. Displays user notification when inventory posting setup account is incomplete.
- `SendGenPostingSetupNotification(GenPostingSetup: Record "General Posting Setup"; FieldCaption: Text)`: Sends notification for missing general posting setup account configuration. Displays user notification when general posting setup account is incomplete.
- `LogVATPostingSetupFieldError(VATPostingSetup: Record "VAT Posting Setup"; FieldNumber: Integer)`: Logs field error for VAT posting setup configuration issues.
- `LogGenPostingSetupFieldError(GenPostingSetup: Record "General Posting Setup"; FieldNumber: Integer)`: Logs field error for general posting setup configuration issues.
- `LogInventoryPostingSetupFieldError(InventoryPostingSetup: Record "Inventory Posting Setup"; FieldNumber: Integer)`: Logs field error for inventory posting setup configuration issues.
- `LogCustPostingGroupFieldError(CustomerPostingGroup: Record "Customer Posting Group"; FieldNumber: Integer)`: Logs field error for customer posting group configuration issues.
- `LogVendPostingGroupFieldError(VendorPostingGroup: Record "Vendor Posting Group"; FieldNumber: Integer)`: Logs field error for vendor posting group configuration issues.
- `LogEmplPostingGroupFieldError(EmployeePostingGroup: Record "Employee Posting Group"; FieldNumber: Integer)`: Logs field error for employee posting group configuration issues.
- `LogJobPostingGroupFieldError(JobPostingGroup: Record "Job Posting Group"; FieldNumber: Integer)`: Logs field error for job posting group configuration issues.
- `LogFAPostingGroupFieldError(FAPostingGroup: Record "FA Posting Group"; FieldNumber: Integer)`: Logs field error for fixed asset posting group configuration issues.
- `SendVATPostingSetupNotification(VATPostingSetup: Record "VAT Posting Setup"; FieldCaption: Text)`: Sends notification for missing VAT posting setup configuration.
- `ShowCustomerPostingGroups(SetupNotification: Notification)`: Shows customer posting groups page from setup notification.
- `ShowVendorPostingGroups(SetupNotification: Notification)`: Shows vendor posting groups page from setup notification.
- `ShowInventoryPostingSetup(SetupNotification: Notification)`: Shows inventory posting setup page from setup notification.
- `ShowGenPostingSetup(SetupNotification: Notification)`: Shows general posting setup page from setup notification.
- `ShowVATPostingSetup(SetupNotification: Notification)`: Shows VAT posting setup page from setup notification.

Plus 6 local procedures.

## Triggers

OnRun

## 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 1330 "Instruction Mgt."](../codeunit/1330.md) (3 calls: `ConfirmPostingAfterWorkingDate → GetPostingAfterWorkingDateNotificationId`, `ConfirmPostingAfterWorkingDate → IsMyNotificationEnabled`, `IsPostingSetupNotificationEnabled → IsMyNotificationEnabled`)
- [Codeunit 1431 "Forward Link Mgt."](../codeunit/1431.md) (1 call: `LogContextFieldError → GetHelpCodeForEmptyPostingSetupAccount`)
- [Codeunit 28 "Error Message Management"](../codeunit/28.md) (1 call: `LogContextFieldError → LogContextFieldError`)

## Called by

- [Table 5606 "FA Posting Group"](../table/5606.md) (31 calls: `GetAccumDepreciationAccount → LogFAPostingGroupFieldError`, `GetAccumDepreciationAccountOnDisposal → LogFAPostingGroupFieldError`, `GetAcquisitionCostAccount → LogFAPostingGroupFieldError`, …)
- [Table 252 "General Posting Setup"](../table/252.md) (23 calls: `GetCOGSAccount → LogGenPostingSetupFieldError`, `GetCOGSInterimAccount → LogGenPostingSetupFieldError`, `GetDirectCostAppliedAccount → LogGenPostingSetupFieldError`, …)
- [Table 208 "Job Posting Group"](../table/208.md) (14 calls: `GetGLCostsAppliedAccount → LogJobPostingGroupFieldError`, `GetGLExpenseAccountContract → LogJobPostingGroupFieldError`, `GetItemCostsAppliedAccount → LogJobPostingGroupFieldError`, …)
- [Table 92 "Customer Posting Group"](../table/92.md) (10 calls: `GetAddFeePerLineAccount → LogCustPostingGroupFieldError`, `GetAdditionalFeeAccount → LogCustPostingGroupFieldError`, `GetApplRoundingAccount → LogCustPostingGroupFieldError`, …)
- [Table 5813 "Inventory Posting Setup"](../table/5813.md) (9 calls: `GetCapacityVarianceAccount → LogInventoryPostingSetupFieldError`, `GetCapOverheadVarianceAccount → LogInventoryPostingSetupFieldError`, `GetInventoryAccount → LogInventoryPostingSetupFieldError`, …)
- [Table 93 "Vendor Posting Group"](../table/93.md) (7 calls: `GetApplRoundingAccount → LogVendPostingGroupFieldError`, `GetInvRoundingAccount → LogVendPostingGroupFieldError`, `GetPayablesAccount → LogVendPostingGroupFieldError`, …)
- [Table extension 6900 "Exp. Employee Posting Group"](../tableextension/6900.md) (4 calls: `GetExpensePayableBankPaidAccount → LogEmplPostingGroupFieldError`, `GetExpensePayableCardPaidAccount → LogEmplPostingGroupFieldError`, `GetExpenseReportPayablesAccount → LogEmplPostingGroupFieldError`, …)
- [Table 325 "VAT Posting Setup"](../table/325.md) (3 calls: `GetPurchAccount → LogVATPostingSetupFieldError`, `GetRevChargeAccount → LogVATPostingSetupFieldError`, `GetSalesAccount → LogVATPostingSetupFieldError`)
- [Table 5221 "Employee Posting Group"](../table/5221.md) (3 calls: `GetApplRoundingAccount → LogEmplPostingGroupFieldError`, `GetPayablesAccount → LogEmplPostingGroupFieldError`, `GetRoundingAccount → LogEmplPostingGroupFieldError`)
- [Codeunit 13 "Gen. Jnl.-Post Batch"](../codeunit/13.md) (1 call: `CheckLine → ConfirmPostingAfterWorkingDate`)
- [Table 37 "Sales Line"](../table/37.md) (1 call: `CopyFromItem → CheckInvtPostingSetupInventoryAccount`)
- [Table 39 "Purchase Line"](../table/39.md) (1 call: `CopyFromItem → CheckInvtPostingSetupInventoryAccount`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24

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: "codeunit", object_name: "PostingSetupManagement")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
