---
id: object/table/302
type: object
title: Table 302 "Finance Charge Memo Header"
summary: Table 302 "Finance Charge Memo Header" in Base Application (Microsoft.Sales.FinanceCharge). 43 fields, 15 public procedures, 26 events. Present since at least BC23, still in BC30, changed in BC24, BC28.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "28"
  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: 83cce070690aacec9b62efa5be60d8ccc2f778a8633ab69ac1d00bc27e52df75
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Sales/FinanceCharge/FinanceChargeMemoHeader.Table.al
    title: src/Layers/W1/BaseApp/Sales/FinanceCharge/FinanceChargeMemoHeader.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/receivables-collect-outstanding-balances
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/finance/manage-payables
    - topic/business-central/business-functionality/finance/manage-receivables
  localizations:
    - localization/be
    - localization/it
    - localization/no
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 302
name: Finance Charge Memo Header
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"
source_major: "29"
obsolete: null
countries:
  - be
  - it
  - "no"
ms_search_form_ids: []
counts:
  fields: 43
  procedures: 55
  events: 26
  subscribers: 0
relations:
  out: 26
  referenced_by: 2
  pages: 3
  extended_by: 0
  event_subscribers: 0
  calls: 7
  called_by: 0
  implements: 0
---

# Table 302 "Finance Charge Memo Header"

> Table 302 "Finance Charge Memo Header" in Base Application (Microsoft.Sales.FinanceCharge). 43 fields, 15 public procedures, 26 events. Present since at least BC23, still in BC30, changed in BC24, BC28.

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

Learn documents this table through its pages: [Page 448 "Finance Charge Memo List"](../page/448.md) (1 Learn page).

## Properties

| Property | Value |
|---|---|
| Caption | Finance Charge Memo Header |
| 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 | No. | Code[20] | Specifies the number of the involved entry or record, according to the specified number series. |  |
| 2 | Customer No. | Code[20] | Specifies the number of the customer you want to create a finance charge memo for. | TableRelation [Table 18 "Customer"](../table/18.md) |
| 3 | Name | Text[100] | Specifies the name of the customer the finance charge memo is for. |  |
| 4 | Name 2 | Text[50] | — |  |
| 5 | Address | Text[100] | Specifies the address of the customer the finance charge memo is for. |  |
| 6 | Address 2 | Text[50] | Specifies additional address information. |  |
| 7 | Post Code | Code[20] | Specifies the postal code. | TableRelation [Table 225 "Post Code"](../table/225.md) (if ("Country/Region Code" = const('')) "Post Code" else if ("Country/Region Code" = filter(<> '')) "Post Code" where("Country/Region Code" = field("Country/Region Code"))) |
| 8 | City | Text[30] | Specifies the city name of the customer the finance charge memo is for. | TableRelation [Table 225 "Post Code"](../table/225.md) (if ("Country/Region Code" = const('')) "Post Code".City else if ("Country/Region Code" = filter(<> '')) "Post Code".City where("Country/Region Code" = field("Country/Region Code"))) |
| 9 | County | Text[30] | — |  |
| 10 | Country/Region Code | Code[10] | — | TableRelation [Table 9 "Country/Region"](../table/9.md) (Country/Region) |
| 11 | Language Code | Code[10] | — | TableRelation [Table 8 "Language"](../table/8.md) |
| 12 | Currency Code | Code[10] | Specifies the currency code of the finance charge memo. | TableRelation [Table 4 "Currency"](../table/4.md) |
| 13 | Contact | Text[100] | Specifies the name of the person you regularly contact when you communicate with the customer the finance charge memo is for. |  |
| 14 | Your Reference | Text[35] | Specifies the customer's reference. The content will be printed on the related document. |  |
| 15 | Shortcut Dimension 1 Code | Code[20] | Specifies the code for Shortcut Dimension 1, which is one of two global dimension codes that you set up in the General Ledger Setup window. | TableRelation [Table 349 "Dimension Value"](../table/349.md) ("Dimension Value".Code where("Global Dimension No." = const(1), Blocked = const(false))) |
| 16 | Shortcut Dimension 2 Code | Code[20] | Specifies the code for Shortcut Dimension 2, which is one of two global dimension codes that you set up in the General Ledger Setup window. | TableRelation [Table 349 "Dimension Value"](../table/349.md) ("Dimension Value".Code where("Global Dimension No." = const(2), Blocked = const(false))) |
| 17 | Customer Posting Group | Code[20] | Specifies the customer's market type to link business transactions to. | TableRelation [Table 92 "Customer Posting Group"](../table/92.md) (Customer Posting Group) |
| 18 | Gen. Bus. Posting Group | Code[20] | — | TableRelation [Table 250 "Gen. Business Posting Group"](../table/250.md) (Gen. Business Posting Group); not editable |
| 19 | VAT Registration No. | Text[20] | — |  |
| 20 | Reason Code | Code[10] | — | TableRelation [Table 231 "Reason Code"](../table/231.md) (Reason Code) |
| 21 | Posting Date | Date | Specifies the date when the finance charge memo should be issued. |  |
| 22 | Document Date | Date | Specifies the date when the related document was created. |  |
| 23 | Due Date | Date | Specifies when payment of the amount on the finance charge memo is due. |  |
| 25 | Fin. Charge Terms Code | Code[10] | Specifies the code for the involved finance charges in case of late payment. | TableRelation [Table 5 "Finance Charge Terms"](../table/5.md) (Finance Charge Terms) |
| 26 | Post Interest | Boolean | — |  |
| 27 | Post Additional Fee | Boolean | — |  |
| 29 | Posting Description | Text[100] | — |  |
| 30 | Comment | Boolean | — | FlowField: exist("Fin. Charge Comment Line" where(Type = const("Finance Charge Memo"), "No." = field("No."))); not editable |
| 31 | Remaining Amount | Decimal | — | FlowField: sum("Finance Charge Memo Line"."Remaining Amount" where("Finance Charge Memo No." = field("No."), "Detailed Interest Rates Entry" = const(false))); not editable |
| 32 | Interest Amount | Decimal | Specifies the total of the interest amounts on the finance charge memo lines. | FlowField: sum("Finance Charge Memo Line".Amount where("Finance Charge Memo No." = field("No."), Type = const("Customer Ledger Entry"), "Detailed Interest Rates Entry" = const(false))); not editable |
| 33 | Additional Fee | Decimal | Specifies the total of the additional fee amounts on the finance charge memo lines. | FlowField: sum("Finance Charge Memo Line".Amount where("Finance Charge Memo No." = field("No."), Type = const("G/L Account"))); not editable |
| 34 | VAT Amount | Decimal | — | FlowField: sum("Finance Charge Memo Line"."VAT Amount" where("Finance Charge Memo No." = field("No."), "Detailed Interest Rates Entry" = const(false))); not editable |
| 37 | No. Series | Code[20] | — | TableRelation [Table 308 "No. Series"](../table/308.md) (No. Series); not editable |
| 38 | Issuing No. Series | Code[20] | — | TableRelation [Table 308 "No. Series"](../table/308.md) (No. Series) |
| 39 | Issuing No. | Code[20] | — |  |
| 41 | Tax Area Code | Code[20] | — | TableRelation [Table 318 "Tax Area"](../table/318.md) (Tax Area) |
| 42 | Tax Liable | Boolean | — |  |
| 43 | VAT Bus. Posting Group | Code[20] | — | TableRelation [Table 323 "VAT Business Posting Group"](../table/323.md) (VAT Business Posting Group) |
| 44 | VAT Reporting Date | Date | Specifies the date used to include entries on VAT reports in a VAT period. This is either the date that the document was created or posted, depending on your setting on the General Ledger Setup page. | not editable |
| 54 | Format Region | Text[80] | — | TableRelation "Language Selection"."Language Tag" |
| 163 | Company Bank Account Code | Code[20] | Specifies the bank account to use for bank information when the document is printed. | TableRelation [Table 270 "Bank Account"](../table/270.md) ("Bank Account" where("Currency Code" = field("Currency Code"))) |
| 480 | Dimension Set ID | Integer | — | TableRelation [Table 480 "Dimension Set Entry"](../table/480.md) (Dimension Set Entry); not editable |
| 9000 | Assigned User ID | Code[50] | Specifies the ID of the user who is responsible for the document. | TableRelation [Table 91 "User Setup"](../table/91.md) (User Setup); DataClassification EndUserIdentifiableInformation |

## Keys

- Key1: No. (clustered)
- Key2: Customer No., Currency Code

## Events published

- `OnAfterInitDefaultDimensionSources(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; var DefaultDimSource: List of [Dictionary of [Integer, Code[20]]])` (integration): Raised after the default dimension sources are initialized from the customer.
- `OnAfterCreateDimProcedure(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; CurrFieldNo: Integer; DefaultDimSource: List of [Dictionary of [Integer, Code[20]]])` (integration): Raised after dimensions are created for the finance charge memo.
- `OnAfterGetNoSeriesCode(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; SalesSetup: Record "Sales & Receivables Setup"; var NoSeriesCode: Code[20])` (integration): Raised after the number series code is retrieved for finance charge memos.
- `OnAfterGetIssuingNoSeriesCode(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; var IssuingNos: Code[20])` (integration): Raised after the issuing number series code is retrieved.
- `OnAfterShowDocDim(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header")` (integration): Raised after the document dimensions page is shown.
- `OnAfterTestNoSeries(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header")` (integration): Raised after the number series validation completes.
- `OnAfterSetCompanyBankAccount(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; xFinanceChargeMemoHeader: Record "Finance Charge Memo Header")` (integration): Raised after the company bank account is set based on the currency code.
- `OnAfterValidateShortcutDimCode(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; var xFinanceChargeMemoHeader: Record "Finance Charge Memo Header"; FieldNumber: Integer; var ShortcutDimCode: Code[20])` (integration): Raised after the shortcut dimension code is validated.
- `OnBeforeGetNoSeriesCode(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; SalesSetup: Record "Sales & Receivables Setup"; var NoSeriesCode: Code[20]; var IsHandled: Boolean)` (integration): Raised before the number series code is retrieved, allowing customization of the number series.
- `OnBeforeGetIssuingNoSeriesCode(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; SalesSetup: Record "Sales & Receivables Setup"; var IssuingNos: Code[20]; var IsHandled: Boolean)` (integration): Raised before the issuing number series code is retrieved.
- `OnBeforeInsertFinChrgMemoLine(var FinChrgMemoLine: Record "Finance Charge Memo Line")` (integration): Raised before a finance charge memo line is inserted during the InsertLines procedure.
- `OnBeforeValidateCustomerNo(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header")` (integration): Raised before the customer number is validated on the finance charge memo header.
- `OnBeforeTestNoSeries(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; var IsHandled: Boolean)` (integration): Raised before the number series is validated.
- `OnBeforeValidateShortcutDimCode(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; var xFinanceChargeMemoHeader: Record "Finance Charge Memo Header"; FieldNumber: Integer; var ShortcutDimCode: Code[20])` (integration): Raised before the shortcut dimension code is validated.
- `OnAfterFinanceChargeRounding(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header")` (integration): Raised after the finance charge rounding line is updated.
- `OnValidateCustomerNoOnAfterAssignCustomerValues(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; Customer: Record "Customer")` (integration): Raised after customer values are assigned to the finance charge memo header during customer number validation.
- `OnBeforeValidateCity(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; var PostCode: Record "Post Code"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration): Raised before the city field is validated.
- `OnBeforeValidatePostCode(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; var PostCode: Record "Post Code"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration): Raised before the post code field is validated.
- `OnBeforePrintConfirmation(var FinChargeMemoHeader: Record "Finance Charge Memo Header"; var IssuedFinChrgMemoHdr: Record "Issued Fin. Charge Memo Header"; var IsHandled: Boolean)` (integration): Raised before the print confirmation dialog is displayed after issuing.
- `OnBeforeCheckCustomerPostingGroupChange(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; var xFinanceChargeMemoHeader: Record "Finance Charge Memo Header"; var IsHandled: Boolean)` (integration): Raised before checking if the customer posting group can be changed.
- `OnBeforeCreateDim(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; CallingFieldNo: Integer; DefaultDimSource: List of [Dictionary of [Integer, Code[20]]]; var IsHandled: Boolean)` (integration): Raised before dimensions are created for the finance charge memo.
- `OnFinanceChargeRoundingOnBeforeInsertFinanceMemoHeader(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; var FinanceChargeMemoLine: Record "Finance Charge Memo Line")` (integration): Raised before the rounding line is inserted during finance charge rounding.
- `OnInsertTextLinesOnAfterFinChrgTermsGetOrInit(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; var FinanceChargeTerms: Record "Finance Charge Terms")` (integration): Raised after finance charge terms are retrieved during text line insertion.
- `OnValidateFinChrgTermsCodeOnAfterFinChrgTermsGet(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; var FinanceChargeTerms: Record "Finance Charge Terms")` (integration): Raised after finance charge terms are retrieved during terms code validation.
- `OnInsertLinesOnAfterFinChrgTermsGet(var FinChargeMemoHeader: Record "Finance Charge Memo Header"; var FinChrgTerms: Record "Finance Charge Terms")` (integration): Raised after finance charge terms are retrieved during the InsertLines procedure.
- `OnInsertOnBeforeInitNoSeries(var FinanceChargeMemoHeader: Record "Finance Charge Memo Header"; var xFinanceChargeMemoHeader: Record "Finance Charge Memo Header"; var IsHandled: Boolean)` (integration): Raised before the number series is initialized during record insertion.

## Procedures

- `AssistEdit(OldFinChrgMemoHeader: Record "Finance Charge Memo Header"): Boolean`: Assists with editing the document number by allowing selection from related number series.
- `TestNoSeries()`: Validates that required number series are configured in sales and receivables setup.
- `GetNoSeriesCode(): Code[20]`: Retrieves the number series code for finance charge memos from sales and receivables setup.
- `InsertLines()`: Inserts standard fee lines and beginning and ending text lines based on the finance charge terms.
- `UpdateLines(FinChrgMemoHeader2: Record "Finance Charge Memo Header")`: Updates the finance charge memo lines by removing empty text lines, recalculating rounding, and reinserting text lines.
- `PrintRecords()`: Prints the finance charge memo test report for the current record.
- `ConfirmDeletion(): Boolean`: Confirms with the user whether to delete the finance charge memo when it would create a gap in the number series.
- `CreateDim(DefaultDimSource: List of [Dictionary of [Integer, Code[20]]])`: Creates dimension set entries from the specified default dimension sources.
- `ValidateShortcutDimCode(FieldNumber: Integer; var ShortcutDimCode: Code[20])`: Validates and updates the shortcut dimension code and updates the dimension set accordingly.
- `GetInvoiceRoundingAmount(): Decimal`: Calculates the invoice rounding amount based on the currency rounding precision.
- `UpdateFinanceChargeRounding(FinanceChargeHeader: Record "Finance Charge Memo Header")`: Updates the rounding line on the finance charge memo to reflect the current total amount.
- `SetAllowSelectNoSeries()`: Enables the option to select from related number series when getting a document number.
- `ShowDocDim()`: Opens the dimension set entry page to view and edit dimensions for this document.
- `SetCustomerFromFilter()`: Sets the customer number from the current filter if a single customer is filtered.
- `CreateDimFromDefaultDim()`: Creates dimensions for this document using the default dimensions from the customer.

Plus 14 local procedures.

## Triggers

OnDelete, OnInsert

## Relations

- drill-down page [Page 448 "Finance Charge Memo List"](../page/448.md)
- lookup page [Page 448 "Finance Charge Memo List"](../page/448.md)
- Customer No.: TableRelation [Table 18 "Customer"](../table/18.md)
- City: TableRelation [Table 225 "Post Code"](../table/225.md) (conditional)
- Post Code: TableRelation [Table 225 "Post Code"](../table/225.md) (conditional)
- Reason Code: TableRelation [Table 231 "Reason Code"](../table/231.md)
- Gen. Bus. Posting Group: TableRelation [Table 250 "Gen. Business Posting Group"](../table/250.md)
- Company Bank Account Code: TableRelation [Table 270 "Bank Account"](../table/270.md)
- Additional Fee: CalcFormula [Table 303 "Finance Charge Memo Line"](../table/303.md)
- Interest Amount: CalcFormula [Table 303 "Finance Charge Memo Line"](../table/303.md)
- Remaining Amount: CalcFormula [Table 303 "Finance Charge Memo Line"](../table/303.md)
- VAT Amount: CalcFormula [Table 303 "Finance Charge Memo Line"](../table/303.md)
- Comment: CalcFormula [Table 306 "Fin. Charge Comment Line"](../table/306.md)
- Issuing No. Series: TableRelation [Table 308 "No. Series"](../table/308.md)
- No. Series: TableRelation [Table 308 "No. Series"](../table/308.md)
- Tax Area Code: TableRelation [Table 318 "Tax Area"](../table/318.md)
- VAT Bus. Posting Group: TableRelation [Table 323 "VAT Business Posting Group"](../table/323.md)
- Shortcut Dimension 1 Code: TableRelation [Table 349 "Dimension Value"](../table/349.md)
- Shortcut Dimension 2 Code: TableRelation [Table 349 "Dimension Value"](../table/349.md)
- Currency Code: TableRelation [Table 4 "Currency"](../table/4.md)
- Dimension Set ID: TableRelation [Table 480 "Dimension Set Entry"](../table/480.md)
- Fin. Charge Terms Code: TableRelation [Table 5 "Finance Charge Terms"](../table/5.md)
- Language Code: TableRelation [Table 8 "Language"](../table/8.md)
- Country/Region Code: TableRelation [Table 9 "Country/Region"](../table/9.md)
- Assigned User ID: TableRelation [Table 91 "User Setup"](../table/91.md)
- Customer Posting Group: TableRelation [Table 92 "Customer Posting Group"](../table/92.md)

## Referenced by

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

- [Table 303 "Finance Charge Memo Line"](../table/303.md): Finance Charge Memo No.
- [Table 306 "Fin. Charge Comment Line"](../table/306.md): No.

## Pages and codeunits on this table

- [Page 446 "Finance Charge Memo"](../page/446.md) (source table)
- [Page 448 "Finance Charge Memo List"](../page/448.md) (source table)
- [Page 449 "Finance Charge Memo Statistics"](../page/449.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 408 "DimensionManagement"](../codeunit/408.md) (6 calls: `CreateDim → GetRecDefaultDimID`, `CreateDim → UpdateGlobalDimFromDimSetID`, `InitDefaultDimensionSources → AddDimSource`, …)
- [Page 456 "No. Series"](../page/456.md) (3 calls: `AssistEdit → (object)`, `GetNoSeriesCode → (object)`, `OnInsert → (object)`)
- [Codeunit 378 "Transfer Extended Text"](../codeunit/378.md) (2 calls: `InsertLines → FinChrgMemoCheckIfAnyExtText`, `InsertLines → InsertFinChrgMemoExtText`)
- [Codeunit 395 "FinChrgMemo-Issue"](../codeunit/395.md) (2 calls: `ConfirmDeletion → TestDeleteHeader`, `OnDelete → DeleteHeader`)
- [Codeunit 27 "Confirm Management"](../codeunit/27.md) (1 call: `PrintConfirmation → GetResponse`)
- [Codeunit 45 "Auto Format"](../codeunit/45.md) (1 call: `InsertTextLines → ResolveAutoFormat`)
- [Codeunit 53 "Translation Helper"](../codeunit/53.md) (1 call: `InsertLines → GetTranslatedFieldCaption`)

## Across versions

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

## Countries that replace it

[BE](../../localizations/be.md), [IT](../../localizations/it.md), [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 Header")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
