---
id: object/table/303
type: object
title: Table 303 "Finance Charge Memo Line"
summary: Table 303 "Finance Charge Memo Line" in Base Application (Microsoft.Sales.FinanceCharge). 27 fields, 7 public procedures, 17 events. Present since at least BC23, still in BC30, changed in BC24, BC28-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: a0f13b03f369b3d9369ef570613008ef086e917f7482adcdfc6eecb2cf33b933
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Sales/FinanceCharge/FinanceChargeMemoLine.Table.al
    title: src/Layers/W1/BaseApp/Sales/FinanceCharge/FinanceChargeMemoLine.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations:
    - localization/no
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 303
name: Finance Charge Memo Line
namespace: Microsoft.Sales.FinanceCharge
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "28"
  - "29"
source_major: "29"
obsolete: null
countries:
  - "no"
ms_search_form_ids: []
counts:
  fields: 27
  procedures: 35
  events: 17
  subscribers: 0
relations:
  out: 9
  referenced_by: 5
  pages: 1
  extended_by: 0
  event_subscribers: 0
  calls: 2
  called_by: 0
  implements: 0
---

# Table 303 "Finance Charge Memo Line"

> Table 303 "Finance Charge Memo Line" in Base Application (Microsoft.Sales.FinanceCharge). 27 fields, 7 public procedures, 17 events. Present since at least BC23, still in BC30, changed in BC24, BC28-29.

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

## Properties

| Property | Value |
|---|---|
| Caption | Finance Charge Memo Line |
| 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 | Finance Charge Memo No. | Code[20] | — | TableRelation [Table 302 "Finance Charge Memo Header"](../table/302.md) (Finance Charge Memo Header) |
| 2 | Line No. | Integer | — | NotBlank |
| 3 | Attached to Line No. | Integer | — | TableRelation [Table 303 "Finance Charge Memo Line"](../table/303.md) ("Finance Charge Memo Line"."Line No." where("Finance Charge Memo No." = field("Finance Charge Memo No."))); not editable |
| 4 | Type | Option | Specifies the line type. | OptionCaption: ,G/L Account,Customer Ledger Entry |
| 5 | Entry No. | Integer | — | TableRelation [Table 21 "Cust. Ledger Entry"](../table/21.md) (Cust. Ledger Entry) |
| 7 | Posting Date | Date | Specifies the posting date of the customer ledger entry that this finance charge memo line is for. | not editable |
| 8 | Document Date | Date | Specifies the date when the related document was created. | not editable |
| 9 | Due Date | Date | Specifies the due date of the customer ledger entry this finance charge memo line is for. | not editable |
| 10 | Document Type | Enum "Gen. Journal Document Type" | Specifies the document type of the customer ledger entry this finance charge memo line is for. | enum [Enum 6 "Gen. Journal Document Type"](../enum/6.md) |
| 11 | Document No. | Code[20] | Specifies the document number of the customer ledger entry this finance charge memo line is for. |  |
| 12 | Description | Text[100] | Specifies an entry description, based on the contents of the Type field. |  |
| 13 | Original Amount | Decimal | Specifies the original amount of the customer ledger entry that this finance charge memo line is for. | not editable |
| 14 | Remaining Amount | Decimal | Specifies the remaining amount of the customer ledger entry this finance charge memo line is for. | not editable |
| 15 | No. | Code[20] | Specifies the number of the involved entry or record, according to the specified number series. | TableRelation [Table 15 "G/L Account"](../table/15.md), [Table 7 "Standard Text"](../table/7.md) (if (Type = const(" ")) "Standard Text" else if (Type = const("G/L Account")) "G/L Account") |
| 16 | Amount | Decimal | Specifies the amount in the currency that is represented by the currency code on the finance charge memo header. |  |
| 17 | Interest Rate | Decimal | — |  |
| 18 | Gen. Prod. Posting Group | Code[20] | — | TableRelation [Table 251 "Gen. Product Posting Group"](../table/251.md) (Gen. Product Posting Group) |
| 19 | VAT % | Decimal | — | not editable |
| 20 | VAT Calculation Type | enum "Tax Calculation Type" | — | enum [Enum 254 "Tax Calculation Type"](../enum/254.md); not editable |
| 21 | VAT Amount | Decimal | — | not editable |
| 22 | Tax Group Code | Code[20] | — | TableRelation [Table 321 "Tax Group"](../table/321.md) (Tax Group) |
| 23 | VAT Prod. Posting Group | Code[20] | — | TableRelation [Table 324 "VAT Product Posting Group"](../table/324.md) (VAT Product Posting Group) |
| 24 | VAT Identifier | Code[20] | — | not editable |
| 25 | Line Type | Option | — | OptionCaption: Finance Charge Memo Line,Beginning Text,Ending Text,Rounding |
| 26 | VAT Clause Code | Code[20] | — | TableRelation [Table 560 "VAT Clause"](../table/560.md) (VAT Clause) |
| 30 | Detailed Interest Rates Entry | Boolean | — |  |
| 101 | System-Created Entry | Boolean | — | not editable |

## Keys

- Key1: Finance Charge Memo No., Line No. (clustered)
- Key2: Finance Charge Memo No., Type, Detailed Interest Rates Entry
- Key3: Finance Charge Memo No., Detailed Interest Rates Entry

## Events published

- `OnAfterCalcFinCharge(var FinanceChargeMemoLine: Record "Finance Charge Memo Line"; var FinanceChargeMemoHeader: Record "Finance Charge Memo Header")` (integration): Raised after the finance charge is calculated for the line.
- `OnBeforeCalcFinChrgProcedure(var FinanceChargeMemoLine: Record "Finance Charge Memo Line"; var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; var IsHandled: Boolean)` (integration): Raised before the finance charge calculation procedure executes.
- `OnAfterCalcFinanceChargeInterestRate(FinanceChargeMemoLine: Record "Finance Charge Memo Line"; CustLedgerEntry: Record "Cust. Ledger Entry"; FinanceChargeTerms: Record "Finance Charge Terms"; var UseCalcDate: Date)` (integration): Raised after the finance charge interest rate is calculated.
- `OnBeforeCreateMulitplyInterestRateEntries(var FinanceChargeMemoLine: Record "Finance Charge Memo Line"; var InsertedLines: Boolean; var IsHandled: Boolean)` (integration): Raised before creating multiple interest rate entries for varying interest rates.
- `OnBeforeCalcClosedatDate(CustLedgerEntry: Record "Cust. Ledger Entry"; var ClosedAtDate: Date; var IsHandled: Boolean)` (integration): Raised before the closed at date is calculated for the customer ledger entry.
- `OnCalcFinChrgOnAfterFinChrgTermsInterestCalculationMethodCase(var FinanceChargeMemoLine: Record "Finance Charge Memo Line"; FinanceChargeTerms: Record "Finance Charge Terms"; FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; var FinanceChargeMemoLineSender: Record "Finance Charge Memo Line")` (integration): Raised after the interest calculation method case is evaluated in the finance charge calculation.
- `OnCalcFinChrgOnAfterCalcSkipBecauseEntryOnHold(CustLedgerEntry: Record "Cust. Ledger Entry"; FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; var SkipBecauseEntryOnHold: Boolean)` (integration): Raised after determining whether to skip a customer ledger entry because it is on hold.
- `OnCalcFinChrgOnBeforeCheckNrOfLinesToInsert(var FinanceChargeMemoLine: Record "Finance Charge Memo Line"; NrOfDays: Integer)` (integration): Raised before checking the number of lines to insert for multiple interest rates.
- `OnBeforeEnsureNotOnHold(var CustLedgerEntry: Record "Cust. Ledger Entry"; var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; var IsHandled: Boolean)` (integration): Raised before validating that the customer ledger entry is not on hold.
- `OnValidateVATProdPostingGroupOnAfterVATPostingSetupGet(var VATPostingSetup: Record "VAT Posting Setup"; FinanceChargeMemoLine: Record "Finance Charge Memo Line")` (integration): Raised after the VAT posting setup is retrieved during VAT product posting group validation.
- `OnAfterSetCustLedgEntryView(var CustLedgEntry: Record "Cust. Ledger Entry"; FinChrgTerms: Record "Finance Charge Terms"; FinChrgMemoHeader: Record "Finance Charge Memo Header")` (integration): Raised after the customer ledger entry view filters are set.
- `OnValidateNoOnAfterAssignGLAccountValues(var FinanceChargeMemoLine: Record "Finance Charge Memo Line"; FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; GLAccount: Record "G/L Account")` (integration): Raised after G/L account values are assigned when validating the No. field.
- `OnValidateVATProdPostingGroupOnBeforeVATPostingSetupGet(var FinanceChargeMemoLine: Record "Finance Charge Memo Line"; xFinanceChargeMemoLine: Record "Finance Charge Memo Line"; var IsHandled: Boolean)` (integration): Raised before the VAT posting setup is retrieved during VAT product posting group validation.
- `OnCreateMulitplyInterestRateEntriesOnBeforeBuildDescription(var FinanceChargeMemoLine: Record "Finance Charge Memo Line"; UseCalcDate: Date; UseDueDate: Date)` (integration): Raised before building the description for multiple interest rate entries.
- `OnAfterCumulateDetailedEntries(var FinanceChargeMemoLine: Record "Finance Charge Memo Line"; var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; ClosedAtDate: Date; var CumAmount: Decimal)` (integration): Raised after cumulating detailed customer ledger entries for interest calculation.
- `OnProcessFinChrgMemoHeaderOnAfterFinChrgTermsGet(var FinanceChargeMemoLine: Record "Finance Charge Memo Line"; var FinanceChargeTerms: Record "Finance Charge Terms")` (integration): Raised after finance charge terms are retrieved when processing the finance charge memo header.
- `OnCalcFinChargeOnAfterCalcFinanceChargeInterestRate(var FinanceChargeMemoLine: Record "Finance Charge Memo Line"; var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; var IsHandled: Boolean)` (integration): Raised after the finance charge interest rate is calculated during the finance charge calculation.

## Procedures

- `CheckAttachedLines(): Boolean`: Checks whether any lines are attached to this finance charge memo line.
- `UpdateAttachedLines()`: Deletes all lines that are attached to this finance charge memo line.
- `SetFinChrgMemoHeader(var NewFinChrgMemoHeader: Record "Finance Charge Memo Header")`: Sets the finance charge memo header for processing line calculations.
- `GetCurrencyCode(): Code[10]`: Retrieves the currency code from the parent finance charge memo header.
- `CalcClosedatDate(): Date`: Calculates the closed at date for the customer ledger entry based on closing entries.
- `SetCheckingMode(DoChecking: Boolean)`: Sets the checking mode to enable validation without inserting records.
- `LookupDocNo()`: Opens the customer ledger entries lookup page filtered by the current document number.

Plus 11 local procedures.

## Triggers

OnDelete, OnInsert, OnModify

## Relations

- No.: TableRelation [Table 15 "G/L Account"](../table/15.md) (conditional)
- Entry No.: TableRelation [Table 21 "Cust. Ledger Entry"](../table/21.md)
- Gen. Prod. Posting Group: TableRelation [Table 251 "Gen. Product Posting Group"](../table/251.md)
- Finance Charge Memo No.: TableRelation [Table 302 "Finance Charge Memo Header"](../table/302.md)
- Attached to Line No.: TableRelation [Table 303 "Finance Charge Memo Line"](../table/303.md)
- Tax Group Code: TableRelation [Table 321 "Tax Group"](../table/321.md)
- VAT Prod. Posting Group: TableRelation [Table 324 "VAT Product Posting Group"](../table/324.md)
- VAT Clause Code: TableRelation [Table 560 "VAT Clause"](../table/560.md)
- No.: TableRelation [Table 7 "Standard Text"](../table/7.md) (conditional)

## Referenced by

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

- [Table 302 "Finance Charge Memo Header"](../table/302.md): Additional Fee, Interest Amount, Remaining Amount, VAT Amount
- [Table 303 "Finance Charge Memo Line"](../table/303.md): Attached to Line No.

## Pages and codeunits on this table

- [Page 447 "Finance Charge Memo Lines"](../page/447.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 45 "Auto Format"](../codeunit/45.md) (2 calls: `BuildDescription → ResolveAutoFormat`, `BuildMultiDescription → ResolveAutoFormat`)
- [Page 25 "Customer Ledger Entries"](../page/25.md) (1 call: `LookupCustLedgEntry → (object)`)

## Across versions

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

## Countries that replace it

[NO](../../localizations/no.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: "table", object_name: "Finance Charge Memo Line")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
