---
id: object/codeunit/370
type: object
title: Codeunit 370 "Bank Acc. Reconciliation Post"
summary: Codeunit 370 "Bank Acc. Reconciliation Post" in Base Application (Microsoft.Bank.Reconciliation). 5 public procedures, 29 events, 1 event subscribers. Present since at least BC23, still in BC30, changed in BC24-25, BC29.
tier: official
language: en
tags:
  - codeunit
  - 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: 9498b86215bc9a31be2aa05011a2b384b2c991425e930eb81a80be6f08d4a381
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Bank/Reconciliation/BankAccReconciliationPost.Codeunit.al
    title: src/Layers/W1/BaseApp/Bank/Reconciliation/BankAccReconciliationPost.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations:
    - localization/au
    - localization/nz
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/9673
object_type: codeunit
object_id: 370
name: Bank Acc. Reconciliation Post
namespace: Microsoft.Bank.Reconciliation
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "25"
  - "29"
source_major: "29"
obsolete: null
countries:
  - au
  - nz
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 58
  events: 29
  subscribers: 1
relations:
  out: 1
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 3
  calls: 12
  called_by: 6
  implements: 0
---

# Codeunit 370 "Bank Acc. Reconciliation Post"

> Codeunit 370 "Bank Acc. Reconciliation Post" in Base Application (Microsoft.Bank.Reconciliation). 5 public procedures, 29 events, 1 event subscribers. Present since at least BC23, still in BC30, changed in BC24-25, BC29.

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

## Properties

| Property | Value |
|---|---|
| TableNo | Bank Acc. Reconciliation |
| Permissions | TableData "Bank Account Ledger Entry" = rm, TableData "Check Ledger Entry" = rm, TableData "Bank Account" = rm, TableData "Bank Account Statement" = ri, TableData "Bank Account Statement Line" = ri, TableData "Posted Payment Recon. Hdr" = ri |

## Events published

- `OnBeforeAppliedAmountCheck(var BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"; var AppliedAmount: Decimal)` (integration): Event raised before checking the applied amount for a bank account reconciliation line.
- `OnBeforeBankAccStmtInsert(var BankAccStatement: Record "Bank Account Statement"; BankAccReconciliation: Record "Bank Acc. Reconciliation")` (integration): Event raised before inserting a bank account statement record during posting.
- `OnBeforeCloseBankAccLedgEntry(var BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"; var AppliedAmount: Decimal; var IsHandled: Boolean)` (integration): Event raised before closing a bank account ledger entry during reconciliation posting.
- `OnBeforeFinalizePost(var BankAccReconciliation: Record "Bank Acc. Reconciliation")` (integration): Event raised before finalizing the posting process for a bank account reconciliation.
- `OnBeforeDeleteRelatedRecords(BankAccReconciliation: Record "Bank Acc. Reconciliation"; var IsHandled: Boolean)` (integration): Event raised before deleting related records during bank account reconciliation posting.
- `OnBeforePostPaymentApplications(BankAccReconLine: Record "Bank Acc. Reconciliation Line"; var AppliedAmount: Decimal; var IsHandled: Boolean)` (integration): Event raised before posting payment applications for a bank account reconciliation line.
- `OnAfterFinalizePost(var BankAccReconciliation: Record "Bank Acc. Reconciliation")` (integration): Event raised after finalizing the posting process for a bank account reconciliation.
  - subscribers: [Codeunit 1351 "Telemetry Subscribers"](../codeunit/1351.md) LogTelemetryOnBankAccRecPostOnAfterFinalizePost
- `OnBeforeInitPost(var BankAccReconciliation: Record "Bank Acc. Reconciliation")` (integration): Event raised before initializing the posting process for a bank account reconciliation.
- `OnBeforePost(var BankAccReconciliation: Record "Bank Acc. Reconciliation"; var BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line")` (integration): Event raised before posting a bank account reconciliation.
- `OnBeforePostedPmtReconInsert(var PostedPaymentReconHdr: Record "Posted Payment Recon. Hdr"; BankAccReconciliation: Record "Bank Acc. Reconciliation")` (integration): Event raised before inserting a posted payment reconciliation header record.
- `OnBeforeTransferToPostPmtAppln(var BankAccReconciliation: Record "Bank Acc. Reconciliation"; var IsHandled: Boolean)` (integration): Event raised before transferring to posted payment application during reconciliation posting.
- `OnBeforeTransferToBankStmt(var BankAccRecon: Record "Bank Acc. Reconciliation"; PrePostingOutstdPayments: Decimal; PrePostingOutstdBankTransactions: Decimal; PrePostingGLBalance: Decimal; PrePostingTotalPositiveDifference: Decimal; PrePostingTotalNegativeDifference: Decimal; var IsHandled: Boolean)` (integration): Event raised before transferring to bank statement during reconciliation posting.
- `OnCheckLinesMatchEndingBalanceOnAfterCalcSums(var BankAccReconLine: Record "Bank Acc. Reconciliation Line")` (integration): Event raised after calculating sums when checking if lines match ending balance.
- `OnCloseBankAccLedgEntryOnBeforeBankAccLedgEntryModify(var BankAccountLedgerEntry: Record "Bank Account Ledger Entry"; BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line")` (integration): Event raised before modifying bank account ledger entry when closing bank account ledger entry.
- `OnCloseBankAccLedgEntryOnBeforeCheckLedgEntryModify(var CheckLedgerEntry: Record "Check Ledger Entry"; BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line")` (integration): Event raised before modifying check ledger entry when closing bank account ledger entry.
- `OnCloseBankAccLedgEntryOnAfterBankAccLedgEntrySetFilters(var BankAccountLedgerEntry: Record "Bank Account Ledger Entry"; BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line")` (integration): Event raised after setting filters on bank account ledger entry when closing bank account ledger entry.
- `OnBeforeHandlePaymentApplicationTransfer(var BankAccRecon: Record "Bank Acc. Reconciliation"; var IsHandled: Boolean)` (integration): Event raised before handling payment application transfer during reconciliation posting.
- `OnPostPaymentApplicationsOnAfterInitGenJnlLine(var GenJournalLine: Record "Gen. Journal Line"; BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"; var IsApplied: Boolean; var AppliedAmount: Decimal; var PaymentLineAmount: Decimal; var IsHandled: Boolean)` (integration): Event raised after initializing the general journal line when posting payment applications.
- `OnPostPaymentApplicationsOnAfterPostGenJnlLine(var GenJournalLine: Record "Gen. Journal Line"; var GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line")` (integration): Event raised after posting a general journal line during payment application posting.
  - subscribers: [Codeunit 6786 "Withholding Tax Jnl Subscriber"](../codeunit/6786.md) OnPostPaymentApplicationsOnAfterPostGenJnlLine
- `OnPostPaymentApplicationsOnAfterBankAccountLedgerEntrySetFilters(var BankAccountLedgerEntry: Record "Bank Account Ledger Entry"; GenJournalLine: Record "Gen. Journal Line")` (integration): Event raised after setting filters on bank account ledger entry during payment application posting.
- `OnPostPaymentApplicationsOnAfterTransactionPostedAndReconciledCheck(BankAccReconLine: Record "Bank Acc. Reconciliation Line"; var AppliedAmount: Decimal; SourceCode: Code[10])` (integration): Event raised after checking that transaction is posted and reconciled during payment application posting.
- `OnPostPaymentApplicationsOnBeforeValidateApplyRequirements(var BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"; var GenJournalLine: Record "Gen. Journal Line"; AppliedAmount: Decimal)` (integration): Event raised before validating apply requirements during payment application posting.
  - subscribers: [Codeunit 6786 "Withholding Tax Jnl Subscriber"](../codeunit/6786.md) OnPostPaymentApplicationsOnBeforeValidateApplyRequirements
- `OnPostPaymentApplicationsOnAccountTypeCaseElse(var AppliedPaymentEntry: Record "Applied Payment Entry"; var GenJournalLine: Record "Gen. Journal Line")` (integration): Event raised for account type case handling not covered by standard customer, vendor, or employee types.
- `OnPostAfterFilterBankAccRecLines(var BankAccReconLines: Record "Bank Acc. Reconciliation Line"; BankAccRecon: Record "Bank Acc. Reconciliation")` (integration): Event raised after filtering bank account reconciliation lines during posting.
- `OnTransferToBankStmtOnBeforeBankAccStmtLineInsert(var BankAccStmtLine: Record "Bank Account Statement Line"; BankAccReconLine: Record "Bank Acc. Reconciliation Line")` (integration): Event raised before inserting bank account statement line when transferring to bank statement.
- `OnBeforeUpdateBank(var BankAccRecon: Record "Bank Acc. Reconciliation"; var BankAccount: Record "Bank Account"; var IsHandled: Boolean; Amt: Decimal; PostedStamentNo: Code[20])` (integration): Event raised before updating the bank account during reconciliation posting.
- `OnTransferToPostPmtApplnOnBeforePostedPmtReconLineInsert(var PostedPmtReconLine: Record "Posted Payment Recon. Line"; BankAccReconLine: Record "Bank Acc. Reconciliation Line")` (integration): Event raised before inserting posted payment reconciliation line when transferring to posted payment application.
- `OnBeforeApplyCustLedgEntry(var CustLedgerEntry: Record "Cust. Ledger Entry"; AppliedPaymentEntry: Record "Applied Payment Entry"; var BankAccount: Record "Bank Account"; AppliesToID: Code[50]; PostingDate: Date; PmtDiscDueDate: Date; PmtDiscToleranceDate: Date; RemPmtDiscPossible: Decimal; var IsHandled: Boolean)` (integration): Event raised before applying a customer ledger entry during bank reconciliation posting.
- `OnBeforeApplyVendLedgEntry(var VendLedgerEntry: Record "Vendor Ledger Entry"; AppliedPaymentEntry: Record "Applied Payment Entry"; var BankAccount: Record "Bank Account"; AppliesToID: Code[50]; PostingDate: Date; PmtDiscDueDate: Date; PmtDiscToleranceDate: Date; RemPmtDiscPossible: Decimal; var ApplyVendLedgEntryHandled: Boolean)` (integration): Event raised before applying a vendor ledger entry during bank reconciliation posting.

## Event subscriptions

- OnRunPreview subscribes to Codeunit "Bank. Acc. Recon. Post Preview" OnRunPreview

## Procedures

- `RunPreview(var BankAccReconciliation: Record "Bank Acc. Reconciliation"): Boolean`: Runs the posting process in preview mode to validate transactions before final posting. Enables users to review the impact of posting without committing changes to the database, providing validation of applied amounts, account assignments, and posting calculations.
- `ApplyCustLedgEntry(AppliedPmtEntry: Record "Applied Payment Entry"; AppliesToID: Code[50]; PostingDate: Date; PmtDiscDueDate: Date; PmtDiscToleranceDate: Date; RemPmtDiscPossible: Decimal)`: Applies a payment entry to a customer ledger entry during bank reconciliation posting. Updates the customer ledger entry with payment application details including discount dates, tolerance calculations, and application amounts. Handles currency exchange rate calculations for foreign currency transa...
- `ApplyVendLedgEntry(AppliedPmtEntry: Record "Applied Payment Entry"; AppliesToID: Code[50]; PostingDate: Date; PmtDiscDueDate: Date; PmtDiscToleranceDate: Date; RemPmtDiscPossible: Decimal)`: Applies a payment entry to a vendor ledger entry during bank reconciliation posting. Updates the vendor ledger entry with payment application details including discount dates, tolerance calculations, and application amounts. Handles currency exchange rate calculations for foreign currency transactio...
- `ApplyEmployeeLedgEntry(AppliedPmtEntry: Record "Applied Payment Entry"; AppliesToID: Code[50]; PostingDate: Date; PmtDiscDueDate: Date; PmtDiscToleranceDate: Date; RemPmtDiscPossible: Decimal)`
- `Preview(var BankAccReconciliationSource: Record "Bank Acc. Reconciliation")`

Plus 23 local procedures.

## Triggers

OnRun

## Relations

- runs on [Table 273 "Bank Acc. Reconciliation"](../table/273.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 380 "Bank Acc. Recon. Test"](../codeunit/380.md) (5 calls: `StoreFieldsPrePosting → GetGLAccountBalanceLCY`, `StoreFieldsPrePosting → TotalNegativeDifference`, `StoreFieldsPrePosting → TotalOutstandingBankTransactions`, …)
- [Codeunit 103 "Cust. Entry-Edit"](../codeunit/103.md) (2 calls: `ApplyCustLedgEntry → (object)`, `CustEntryEditNoCommit → (object)`)
- [Codeunit 113 "Vend. Entry-Edit"](../codeunit/113.md) (2 calls: `ApplyVendLedgEntry → (object)`, `VendEntryEditNoCommit → (object)`)
- [Codeunit 114 "Empl. Entry-Edit"](../codeunit/114.md) (2 calls: `ApplyEmployeeLedgEntry → (object)`, `EmplEntryEditNoCommit → (object)`)
- [Codeunit 8703 "Feature Telemetry"](../codeunit/8703.md) (2 calls: `Post → LogUptake`, `Post → LogUsage`)
- [Codeunit 10 "Type Helper"](../codeunit/10.md) (1 call: `TransferToPostPmtAppln → GetFieldLength`)
- [Codeunit 12 "Gen. Jnl.-Post Line"](../codeunit/12.md) (1 call: `PostPaymentApplications → RunWithCheck`)
- [Codeunit 27 "Confirm Management"](../codeunit/27.md) (1 call: `PostPaymentApplications → GetResponseOrDefault`)
- [Codeunit 373 "Bank. Acc. Recon. Post Preview"](../codeunit/373.md) (1 call: `Preview → Preview`)
- [Codeunit 408 "DimensionManagement"](../codeunit/408.md) (1 call: `PostPaymentApplications → UpdateGlobalDimFromDimSetID`)
- [Codeunit 410 "Update Analysis View"](../codeunit/410.md) (1 call: `FinalizePost → UpdateAll`)
- [Page 417 "Post Pmts and Rec. Bank Acc."](../page/417.md) (1 call: `InitPost → (object)`)

## Called by

- [Table 1293 "Payment Application Proposal"](../table/1293.md) (2 calls: `UpdateLedgEntryDisc → ApplyCustLedgEntry`, `UpdateLedgEntryDisc → ApplyVendLedgEntry`)
- [Codeunit 371 "Bank Acc. Recon. Post (Yes/No)"](../codeunit/371.md) (1 call: `BankAccReconPostYesNo → (object)`)
- [Codeunit 372 "Bank Acc. Recon. Post+Print"](../codeunit/372.md) (1 call: `OnRun → (object)`)
- [Page 7250 "Bank Acc. Rec. AI Proposal"](../page/7250.md) (1 call: `OnQueryClosePage → (object)`)
- [Page 7252 "Trans. To GL Acc. AI Proposal"](../page/7252.md) (1 call: `OnQueryClosePage → (object)`)
- [Table 273 "Bank Acc. Reconciliation"](../table/273.md) (1 call: `ProcessStatement → (object)`)

## Recent changes

- 2026-07-29 [#9673 Bug 643235: Payment Reconciliation Journal does not round imported bank fee amounts](../../changes/bcapps/9673.md) (main, BC30, fix)

## Across versions

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

## Countries that replace it

[AU](../../localizations/au.md), [NZ](../../localizations/nz.md)

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: "Bank Acc. Reconciliation Post")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
