Table 1294 "Applied Payment Entry"
Base Application · Microsoft.Bank.Reconciliation
Across versions
- BC23present
- BC244 events added
- BC252 events added
- BC261 events added
- BC271 events added
- BC281 fields changed
- BC291 procedures added
- BC30unchanged
Neighbourhood 16 connected objects and pages
Base Application · Microsoft.Bank.Reconciliation · BC23-30 · source at ea08af5e · 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” (Bank Account) |
| 2 | Statement No. | Code[20] | — | TableRelation Table 273 “Bank Acc. Reconciliation” (“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” |
| 21 | Account Type | Enum “Gen. Journal Account Type” | — | enum Enum 81 “Gen. Journal Account Type” |
| 22 | Account No. | Code[20] | — | TableRelation Table 15 “G/L Account”, Table 18 “Customer”, Table 23 “Vendor” (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 21 “Cust. Ledger Entry”, Table 25 “Vendor Ledger Entry” (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 Δ BC28 | 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” |
| 33 | Document No. | Code[20] | — | |
| 34 | Description | Text[100] | — | |
| 35 | Currency Code | Code[10] | — | TableRelation Table 4 “Currency” |
| 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”; 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")+ BC24 (integration): Event raised after filtering applied payment entries when getting the total applied amount including payment discount.OnAfterFilterEntryAppliedToOtherStmtLines(var AppliedPaymentEntry: Record "Applied Payment Entry")+ BC24 (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)+ BC24 (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")+ BC24 (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)+ BC25 (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)+ BC25 (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)+ BC26 (integration)OnBeforeAppliesToEntryNoLookup(var AppliedPaymentEntry: Record "Applied Payment Entry"; var IsHandled: boolean)+ BC27 (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()+ BC29 (internal)GetAmtAppliedToOtherStmtLines(): DecimalFilterEntryAppliedToOtherStmtLines()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): DecimalUpdatePaymentDiscount(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”
- Account No.: TableRelation Table 15 “G/L Account” (conditional)
- Applies-to Entry No.: TableRelation Table 17 “G/L Entry” (conditional)
- Account No.: TableRelation Table 18 “Customer” (conditional)
- Applies-to Entry No.: TableRelation Table 21 “Cust. Ledger Entry” (conditional)
- Account No.: TableRelation Table 23 “Vendor” (conditional)
- Applies-to Entry No.: TableRelation Table 25 “Vendor Ledger Entry” (conditional)
- Account No.: TableRelation Table 270 “Bank Account” (conditional)
- Bank Account No.: TableRelation Table 270 “Bank Account”
- Statement No.: TableRelation Table 273 “Bank Acc. Reconciliation”
- Currency Code: TableRelation Table 4 “Currency”
Referenced by
2 fields in 1 objects relate to this table (TableRelation or CalcFormula).
- Table 274 “Bank Acc. Reconciliation Line”: Match Confidence, Match Quality
Pages and codeunits on this table
- Page 1288 “Payment-to-Entry Match” (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” (1 call:
ClearCustApplicationData → (object)) - Codeunit 113 “Vend. Entry-Edit” (1 call:
ClearVendApplicationData → (object)) - Codeunit 114 “Empl. Entry-Edit” (1 call:
ClearEmployeeApplicationData → (object)) - Codeunit 426 “Payment Tolerance Management” (1 call:
InclPmtDisc → PmtTolPmtReconJnl)
Recent changes
- 2026-08-31 #10819 [Pmt. Recon. Journal] Re-fire OnAfterGetLedgEntryInfo on proposal fast path (main, BC30, fix)
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.