---
id: object/table/1294
type: object
title: Table 1294 "Applied Payment Entry"
summary: Table 1294 "Applied Payment Entry" in Base Application (Microsoft.Bank.Reconciliation). 18 fields, 18 public procedures, 18 events. Present since at least BC23, still in BC30, changed in BC24-29.
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: a69d04bba663c78f3f2ee2ec9eda5d8b8c82b1ea3fb576a8d6549a5a15bdcf67
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Bank/Reconciliation/AppliedPaymentEntry.Table.al
    title: src/Layers/W1/BaseApp/Bank/Reconciliation/AppliedPaymentEntry.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/10819
object_type: table
object_id: 1294
name: Applied Payment Entry
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"
  - "26"
  - "27"
  - "28"
  - "29"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 18
  procedures: 74
  events: 18
  subscribers: 0
relations:
  out: 11
  referenced_by: 2
  pages: 1
  extended_by: 0
  event_subscribers: 0
  calls: 4
  called_by: 0
  implements: 0
---

# Table 1294 "Applied Payment Entry"

> Table 1294 "Applied Payment Entry" in Base Application (Microsoft.Bank.Reconciliation). 18 fields, 18 public procedures, 18 events. Present since at least BC23, still in BC30, changed in BC24-29.

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

## Properties

| Property | Value |
|---|---|
| Caption | Applied Payment Entry |
| 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 | Bank Account No. | Code[20] | — | TableRelation [Table 270 "Bank Account"](../table/270.md) (Bank Account) |
| 2 | Statement No. | Code[20] | — | TableRelation [Table 273 "Bank Acc. Reconciliation"](../table/273.md) ("Bank Acc. Reconciliation"."Statement No." where("Bank Account No." = field("Bank Account No."), "Statement Type" = field("Statement Type"))) |
| 3 | Statement Line No. | Integer | — |  |
| 20 | Statement Type | Enum "Bank Acc. Rec. Stmt. Type" | — | enum [Enum 1254 "Bank Acc. Rec. Stmt. Type"](../enum/1254.md) |
| 21 | Account Type | Enum "Gen. Journal Account Type" | — | enum [Enum 81 "Gen. Journal Account Type"](../enum/81.md) |
| 22 | Account No. | Code[20] | — | TableRelation [Table 15 "G/L Account"](../table/15.md), [Table 18 "Customer"](../table/18.md), [Table 23 "Vendor"](../table/23.md) (if ("Account Type" = const("G/L Account")) "G/L Account" where("Account Type" = const(Posting), Blocked = const(false)) else if ("Account Type" = const(Customer)) Customer else if ("Account Type" = const(Vendor)) Vendor else if ("Account Type" = const("Bank Account")) "Bank Account" else if ("Accoun...) |
| 23 | Applies-to Entry No. | Integer | — | TableRelation [Table 17 "G/L Entry"](../table/17.md), [Table 21 "Cust. Ledger Entry"](../table/21.md), [Table 25 "Vendor Ledger Entry"](../table/25.md) (if ("Account Type" = const("G/L Account")) "G/L Entry" else if ("Account Type" = const(Customer)) "Cust. Ledger Entry" where(Open = const(true)) else if ("Account Type" = const(Vendor)) "Vendor Ledger Entry" where(Open = const(true)) else if ("Account Type" = const("Bank Account")) "Bank Account Led...) |
| 24 | Applied Amount | Decimal | — |  |
| 29 | Applied Pmt. Discount | Decimal | — |  |
| 30 | Quality | Integer | — |  |
| 31 | Posting Date | Date | — |  |
| 32 | Document Type | Enum "Gen. Journal Document Type" | — | enum [Enum 6 "Gen. Journal Document Type"](../enum/6.md) |
| 33 | Document No. | Code[20] | — |  |
| 34 | Description | Text[100] | — |  |
| 35 | Currency Code | Code[10] | — | TableRelation [Table 4 "Currency"](../table/4.md) |
| 36 | Due Date | Date | — |  |
| 37 | External Document No. | Code[35] | — |  |
| 50 | Match Confidence | Enum "Bank Rec. Match Confidence" | — | enum [Enum 1252 "Bank Rec. Match Confidence"](../enum/1252.md); not editable |

## Keys

- Key1: Statement Type, Bank Account No., Statement No., Statement Line No., Account Type, Account No., Applies-to Entry No. (clustered)

## Events published

- `OnAfterCheckCurrencyCombination(var AppliedPaymentEntry: Record "Applied Payment Entry")` (integration): Event raised after checking the currency combination for applied payment entries.
- `OnAfterAppliedPaymentEntryFilterOnGetTotalAppliedAmountInclPmtDisc(var AppliedPaymentEntry: Record "Applied Payment Entry"; AppliedPaymentEntryRec: Record "Applied Payment Entry")` (integration): Event raised after filtering applied payment entries when getting the total applied amount including payment discount.
- `OnAfterFilterEntryAppliedToOtherStmtLines(var AppliedPaymentEntry: Record "Applied Payment Entry")` (integration): Event raised after filtering entries that are applied to other statement lines.
- `OnAfterGetDiscInfo(var AppliedPaymentEntry: Record "Applied Payment Entry"; var PmtDiscDueDate: Date; var PmtDiscToleranceDate: Date; var RemPmtDiscPossible: Decimal)` (integration): Event raised after getting discount information for an applied payment entry.
- `OnBeforeCheckCurrentMatchesExistingAppln(ExistingAppliedPmtEntry: Record "Applied Payment Entry"; var IsHandled: Boolean)` (integration): Event raised before checking if the current match exists for an existing application.
- `OnAfterAppliedPaymentEntryFiltersGetNoOfAppliedEntries(var AppliedPaymentEntry: Record "Applied Payment Entry"; AppliedPaymentEntryRec: Record "Applied Payment Entry")` (integration): Event raised after applying filters on applied payment entries to get the number of applied entries.
- `OnAfterGetAcceptedPmtTolerance(AppliedPaymentEntry: Record "Applied Payment Entry"; var Result: Decimal)` (integration): Event raised after getting the accepted payment tolerance for an applied payment entry.
- `OnAfterIsAcceptedPmtDiscTolerance(AppliedPaymentEntry: Record "Applied Payment Entry"; var Result: Boolean)` (integration): Event raised after checking if the payment discount tolerance is accepted for an applied payment entry.
- `OnAfterLookupAppliesToEntryNo(var AppliedPaymentEntry: Record "Applied Payment Entry")` (integration): Event raised after looking up the applies-to entry number for an applied payment entry.
- `OnAfterGetLedgEntryInfo(var AppliedPaymentEntry: Record "Applied Payment Entry")` (integration): Event raised after getting ledger entry information for an applied payment entry.
- `OnAfterGetRemAmt(AppliedPaymentEntry: Record "Applied Payment Entry"; var Result: Decimal)` (integration): Event raised after getting the remaining amount for an applied payment entry.
- `OnBeforeCalcAmountToApply(var AppliedPaymentEntry: Record "Applied Payment Entry"; PostingDate: Date; var AmountToApply: Decimal; var IsHandled: Boolean)` (integration): Event raised before calculating the amount to apply for an applied payment entry.
- `OnUpdateParentBankAccReconLineOnBeforeBankAccReconLineModify(var AppliedPaymentEntry: Record "Applied Payment Entry"; var BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"; IsDelete: Boolean)` (integration): Event raised when updating the parent bank account reconciliation line before modifying the bank account reconciliation line record.
- `OnApplyFromBankStmtMatchingBufOnBeforeInsert(BankAccReconLine: Record "Bank Acc. Reconciliation Line"; BankStmtMatchingBuffer: Record "Bank Statement Matching Buffer"; TextMapperAmount: Decimal; EntryNo: Integer; var AppliedPaymentEntry: Record "Applied Payment Entry")` (integration): Event raised when applying from bank statement matching buffer before inserting the applied payment entry.
- `OnGetCustLedgEntryRemAmtOnBeforeCalcFields(AppliedPaymentEntry: Record "Applied Payment Entry"; var IsHandled: Boolean; var Result: Decimal)` (integration): Event raised when getting customer ledger entry remaining amount before calculating fields.
- `OnGetVendLedgEntryRemAmtOnBeforeCalcFields(AppliedPaymentEntry: Record "Applied Payment Entry"; var IsHandled: Boolean; var Result: Decimal)` (integration): Event raised when getting vendor ledger entry remaining amount before calculating fields.
- `OnBeforeSuggestAmtToApply(var AppliedPaymentEntry: Record "Applied Payment Entry"; var IsHandled: Boolean; var Result: Decimal)` (integration)
- `OnBeforeAppliesToEntryNoLookup(var AppliedPaymentEntry: Record "Applied Payment Entry"; var IsHandled: boolean)` (integration)

## Procedures

- `SuggestAmtToApply(): Decimal`: Calculates the suggested amount to apply based on remaining amounts and payment application logic. Takes into account amounts already applied to other statement lines, payment discounts, and document type specific rules. For credit memos, applies special logic based on account type and amount direct...
- `SuggestDiscToApply(UseAppliedAmt: Boolean): Decimal`: Calculates the suggested payment discount amount to apply based on discount terms and timing. Evaluates payment discount eligibility using due dates, tolerance periods, and applied amounts.
- `GetDiscInfo(var PmtDiscDueDate: Date; var PmtDiscToleranceDate: Date; var RemPmtDiscPossible: Decimal)`: Retrieves payment discount information including due dates and remaining discount amounts. Populates payment discount details from customer or vendor ledger entries based on account type.
- `GetRemAmt(): Decimal`: Calculates the remaining amount available for application from the target ledger entry. Returns different amounts based on account type (Customer, Vendor, Employee, Bank Account) and entry status. For unassigned entries, returns the statement line remaining amount.
- `GetStmtLineRemAmtToApply(): Decimal`: Calculates the remaining amount available on the statement line for payment application. Considers the difference amount on the bank reconciliation line and any previously applied amounts. Returns zero if the line difference is already fully allocated.
- `GetLedgEntryInfo()`: Retrieves and populates ledger entry information based on the applied entry number and account type. Loads relevant details from customer, vendor, employee, or bank account ledger entries into the current applied payment entry record fields.
- `RunOnAfterGetLedgEntryInfo()` (internal)
- `GetAmtAppliedToOtherStmtLines(): Decimal`
- `FilterEntryAppliedToOtherStmtLines()`
- `FilterAppliedPmtEntry(BankAccReconLine: Record "Bank Acc. Reconciliation Line")`: Sets filters on the applied payment entry table to match a specific bank reconciliation line. Filters by statement type, bank account number, statement number, and statement line number to retrieve all payment applications for the specified reconciliation line.
- `AppliedPmtEntryLinesExist(BankAccReconLine: Record "Bank Acc. Reconciliation Line"): Boolean`: Checks if applied payment entry lines exist for a specific bank reconciliation line. Uses FilterAppliedPmtEntry to set appropriate filters and then checks for record existence.
- `TransferFromBankAccReconLine(BankAccReconLine: Record "Bank Acc. Reconciliation Line")`: Transfers key identification fields from a bank reconciliation line to this applied payment entry. Copies statement type, bank account number, statement number, and statement line number to establish the relationship between the payment entry and its source reconciliation line.
- `ApplyFromBankStmtMatchingBuf(BankAccReconLine: Record "Bank Acc. Reconciliation Line"; BankStmtMatchingBuffer: Record "Bank Statement Matching Buffer"; TextMapperAmount: Decimal; EntryNo: Integer)`: Creates an applied payment entry from bank statement matching buffer results and text mapper amounts. Initializes a new payment application based on automatic matching results, including account details, applied amounts, and quality scoring. Handles both regular matching and text-to-account mapping ...
- `GetTotalAppliedAmountInclPmtDisc(IsDelete: Boolean): Decimal`
- `UpdatePaymentDiscount(PaymentDiscountAmount: Decimal)`
- `SetPaymentDiscount(PaymentDiscountAmount: Decimal; DifferentLineThanCurrent: Boolean)`
- `RemovePaymentDiscount()`
- `CalcAmountToApply(PostingDate: Date): Decimal`

Plus 38 local procedures.

## Triggers

OnDelete, OnInsert, OnModify

## Relations

- lookup page [Page 1292 "Payment Application"](../page/1292.md)
- Account No.: TableRelation [Table 15 "G/L Account"](../table/15.md) (conditional)
- Applies-to Entry No.: TableRelation [Table 17 "G/L Entry"](../table/17.md) (conditional)
- Account No.: TableRelation [Table 18 "Customer"](../table/18.md) (conditional)
- Applies-to Entry No.: TableRelation [Table 21 "Cust. Ledger Entry"](../table/21.md) (conditional)
- Account No.: TableRelation [Table 23 "Vendor"](../table/23.md) (conditional)
- Applies-to Entry No.: TableRelation [Table 25 "Vendor Ledger Entry"](../table/25.md) (conditional)
- Account No.: TableRelation [Table 270 "Bank Account"](../table/270.md) (conditional)
- Bank Account No.: TableRelation [Table 270 "Bank Account"](../table/270.md)
- Statement No.: TableRelation [Table 273 "Bank Acc. Reconciliation"](../table/273.md)
- Currency Code: TableRelation [Table 4 "Currency"](../table/4.md)

## Referenced by

2 fields in 1 objects relate to this table (TableRelation or CalcFormula).

- [Table 274 "Bank Acc. Reconciliation Line"](../table/274.md): Match Confidence, Match Quality

## Pages and codeunits on this table

- [Page 1288 "Payment-to-Entry Match"](../page/1288.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 103 "Cust. Entry-Edit"](../codeunit/103.md) (1 call: `ClearCustApplicationData → (object)`)
- [Codeunit 113 "Vend. Entry-Edit"](../codeunit/113.md) (1 call: `ClearVendApplicationData → (object)`)
- [Codeunit 114 "Empl. Entry-Edit"](../codeunit/114.md) (1 call: `ClearEmployeeApplicationData → (object)`)
- [Codeunit 426 "Payment Tolerance Management"](../codeunit/426.md) (1 call: `InclPmtDisc → PmtTolPmtReconJnl`)

## Recent changes

- 2026-08-31 [#10819 [Pmt. Recon. Journal] Re-fire OnAfterGetLedgEntryInfo on proposal fast path](../../changes/bcapps/10819.md) (main, BC30, fix)

## Across versions

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

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: "Applied Payment Entry")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
