---
id: object/table/232
type: object
title: Table 232 "Gen. Journal Batch"
summary: Table 232 "Gen. Journal Batch" in Base Application (Microsoft.Finance.GeneralLedger.Journal). 20 fields, 5 public procedures, 10 events. Present since at least BC23, still in BC30, changed in BC24, BC26, 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: 4a2e3791906e2ed6881140a03a6d63aeb132707dfc6d9721d0b15803df71c571
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalBatch.Table.al
    title: src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalBatch.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_customerpaymentjournal_create
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_customerpaymentjournal_delete
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_customerpaymentjournal_get
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_customerpaymentjournal_update
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/resources/dynamics_customerPaymentJournal
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_journal_create
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_journal_delete
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_journal_get
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_journal_update
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/resources/dynamics_journal
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_vendorpaymentjournal_create
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_vendorpaymentjournal_delete
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_vendorpaymentjournal_get
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_vendorpaymentjournal_update
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/resources/dynamics_vendorPaymentJournal
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v1.0/api/dynamics_journal_delete
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v1.0/api/dynamics_journal_get
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v1.0/api/dynamics_journal_update
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v1.0/resources/dynamics_journal
    - https://learn.microsoft.com/dynamics365/business-central/finance-how-post-transactions-directly
    - https://learn.microsoft.com/dynamics365/business-central/ui-let-system-suggest-values
    - https://learn.microsoft.com/dynamics365/business-central/ui-work-general-journals
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/finance/manage-payables/make-payments
    - topic/business-central/business-functionality/finance/work-with-the-chart-of-accounts-and-gene
    - topic/business-central/business-functionality/general-business-functionality
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 232
name: Gen. Journal Batch
namespace: Microsoft.Finance.GeneralLedger.Journal
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "26"
  - "28"
  - "29"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 20
  procedures: 19
  events: 10
  subscribers: 0
relations:
  out: 13
  referenced_by: 32
  pages: 7
  extended_by: 0
  event_subscribers: 7
  calls: 1
  called_by: 0
  implements: 0
---

# Table 232 "Gen. Journal Batch"

> Table 232 "Gen. Journal Batch" in Base Application (Microsoft.Finance.GeneralLedger.Journal). 20 fields, 5 public procedures, 10 events. Present since at least BC23, still in BC30, changed in BC24, BC26, BC28-29.

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

Learn documents this table through its pages: [Page 30013 "APIV2 - Cust. Paym. Journals"](../page/30013.md) (5 Learn pages), [Page 30016 "APIV2 - Journals"](../page/30016.md) (5), [Page 30061 "APIV2 - Vendor Paym. Journals"](../page/30061.md) (5), [Page 20016 "APIV1 - Journals"](../page/20016.md) (4), [Page 251 "General Journal Batches"](../page/251.md) (3).

## Properties

| Property | Value |
|---|---|
| Caption | Gen. Journal Batch |
| 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 | Journal Template Name | Code[10] | — | TableRelation [Table 80 "Gen. Journal Template"](../table/80.md) (Gen. Journal Template); NotBlank |
| 2 | Name | Code[10] | Specifies the name of the journal you are creating. | NotBlank |
| 3 | Description | Text[100] | Specifies a brief description of the journal batch you are creating. |  |
| 4 | Reason Code | Code[10] | Specifies the reason code, a supplementary source code that enables you to trace the entry. | TableRelation [Table 231 "Reason Code"](../table/231.md) (Reason Code) |
| 5 | Bal. Account Type | Enum "Gen. Journal Account Type" | Specifies the type of account that a balancing entry is posted to, such as BANK for a cash account. | enum [Enum 81 "Gen. Journal Account Type"](../enum/81.md) |
| 6 | Bal. Account No. | Code[20] | Specifies the number of the general ledger, customer, vendor, or bank account that the balancing entry is posted to, such as a cash account for cash purchases. | TableRelation [Table 15 "G/L Account"](../table/15.md), [Table 18 "Customer"](../table/18.md), [Table 23 "Vendor"](../table/23.md) (if ("Bal. Account Type" = const("G/L Account")) "G/L Account" else if ("Bal. Account Type" = const(Customer)) Customer else if ("Bal. Account Type" = const(Vendor)) Vendor else if ("Bal. Account Type" = const("Bank Account")) "Bank Account" else if ("Bal. Account Type" = const("Fixed Asset")) "Fixed...) |
| 7 | No. Series | Code[20] | Specifies the number series from which entry or record numbers are assigned to new entries or records. | TableRelation [Table 308 "No. Series"](../table/308.md) (No. Series) |
| 8 | Posting No. Series | Code[20] | Specifies the code for the number series that will be used to assign document numbers to ledger entries that are posted from this journal batch. | TableRelation [Table 308 "No. Series"](../table/308.md) (No. Series) |
| 9 | Copy VAT Setup to Jnl. Lines | Boolean | Specifies whether the program to calculate VAT for accounts and balancing accounts on the journal line of the selected journal batch. |  |
| 10 | Allow VAT Difference | Boolean | Specifies whether to allow the manual adjustment of VAT amounts in journal templates. |  |
| 11 | Allow Payment Export | Boolean | Specifies if you can export bank payment files from payment journal lines using this general journal batch. |  |
| 12 | Bank Statement Import Format | Code[20] | Specifies the format of the bank statement file that can be imported into this general journal batch. | TableRelation [Table 1200 "Bank Export/Import Setup"](../table/1200.md) ("Bank Export/Import Setup".Code where(Direction = const(Import))) |
| 21 | Template Type | Enum "Gen. Journal Template Type" | — | FlowField: lookup("Gen. Journal Template".Type where(Name = field("Journal Template Name"))); enum [Enum 89 "Gen. Journal Template Type"](../enum/89.md); not editable |
| 22 | Recurring | Boolean | — | FlowField: lookup("Gen. Journal Template".Recurring where(Name = field("Journal Template Name"))); not editable |
| 23 | Suggest Balancing Amount | Boolean | Specifies if the Amount field on journal lines for the same document number is automatically prefilled with the value that is required to balance the document. |  |
| 28 | Pending Approval | Boolean | — | not editable |
| 31 | Copy to Posted Jnl. Lines | Boolean | Specifies whether the journal lines to be copied to posted journal lines of the selected journal batch. |  |
| 40 | No. of Lines | Integer | Specifies the number of lines in this journal batch. | FlowField: count("Gen. Journal Line" where("Journal Template Name" = field("Journal Template Name"), "Journal Batch Name" = field(Name))); not editable |
| 8001 | Last Modified DateTime | DateTime | — |  |
| 8002 | BalAccountId | Guid | — | DataClassification SystemMetadata |

## Keys

- Key1: Journal Template Name, Name (clustered)

## Events published

- `OnGeneralJournalBatchBalanced()` (integration): Integration event that occurs when a general journal batch is balanced (total balance equals zero). Allows customization of behavior when journal batches achieve balance validation.
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnGeneralJournalBatchBalanced
- `OnGeneralJournalBatchNotBalanced()` (integration): Integration event that occurs when a general journal batch is not balanced (total balance is not zero). Allows customization of error handling or warnings when journal batches fail balance validation.
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnGeneralJournalBatchNotBalanced
- `OnCheckGenJournalLineExportRestrictions()` (integration)
  - subscribers: [Codeunit 1550 "Record Restriction Mgt."](../codeunit/1550.md) GenJournalBatchCheckGenJournalLineExportRestrictions
- `OnMoveGenJournalBatch(ToRecordID: RecordID)` (integration)
  - subscribers: [Codeunit 1535 "Approvals Mgmt."](../codeunit/1535.md) PostApprovalEntriesMoveGenJournalBatch
- `OnAfterSetupNewBatch(var GenJnlBatch: Record "Gen. Journal Batch")` (integration): Integration event raised after setting up a new journal batch with default configuration. Enables custom initialization of batch settings and default values.
- `OnBeforeCheckJnlIsNotRecurring(var GenJournalBatch: Record "Gen. Journal Batch"; var IsHandled: Boolean)` (integration): Integration event raised before checking if journal batch is not recurring type. Enables custom validation logic for recurring journal restrictions.
- `OnBeforeModifyLines(var GenJournalBatch: Record "Gen. Journal Batch"; i: Integer; var IsHandled: Boolean)` (integration): Integration event raised before modifying journal lines when batch settings change. Enables custom handling of line updates during batch modification.
- `OnBeforeNoSeriesValidate(var GenJournalBatch: Record "Gen. Journal Batch"; var IsHandled: Boolean)` (integration): Integration event raised before validating number series assignment on journal batch. Enables custom number series validation logic and assignment rules.
- `OnBeforeSetupNewBatch(GenJournalBatch: Record "Gen. Journal Batch"; var IsHandled: Boolean)` (integration): Integration event raised before setting up a new journal batch configuration. Enables custom batch creation logic and default value assignment.
- `OnGetBalanceOnAfterSetGenJournalLineFilters(var GenJournalLine: Record "Gen. Journal Line")` (integration): Integration event raised after setting filters on journal lines during balance calculation. Enables additional filtering criteria for balance computation.

## Trigger event subscribers

- OnAfterDeleteEvent: [Codeunit 1535 "Approvals Mgmt."](../codeunit/1535.md) DeleteApprovalEntriesAfterDeleteGenJournalBatch
- OnAfterRenameEvent: [Codeunit 1550 "Record Restriction Mgt."](../codeunit/1550.md) UpdateGenJournalBatchRestrictionsAfterRename
- OnBeforeDeleteEvent: [Codeunit 1550 "Record Restriction Mgt."](../codeunit/1550.md) RemoveGenJournalBatchRestrictionsBeforeDelete

## Procedures

- `SetupNewBatch()`: Sets up a new journal batch with default values from the journal template. Copies configuration settings like balancing account, number series, and reason codes from the template.
- `LinesExist(): Boolean`: Checks whether any journal lines exist for this journal batch. Used for validation before allowing batch deletion or modification.
- `GetBalance(): Decimal`: Calculates the total balance of all journal lines in this batch. Returns the sum of Balance (LCY) field for all lines in the batch.
- `CheckBalance(): Decimal`: Checks the balance of the journal batch and triggers appropriate events. Calls OnGeneralJournalBatchBalanced if balanced, OnGeneralJournalBatchNotBalanced if not.
- `UpdateBalAccountId()`: Updates the Bal. Account Id field based on the current balancing account number and type. Synchronizes the system ID field with the referenced G/L Account record.

Plus 4 local procedures.

## Triggers

OnDelete, OnInsert, OnModify, OnRename

## Relations

- lookup page [Page 251 "General Journal Batches"](../page/251.md)
- Bank Statement Import Format: TableRelation [Table 1200 "Bank Export/Import Setup"](../table/1200.md)
- Bal. Account No.: TableRelation [Table 15 "G/L Account"](../table/15.md) (conditional)
- Bal. Account No.: TableRelation [Table 18 "Customer"](../table/18.md) (conditional)
- Bal. Account No.: TableRelation [Table 23 "Vendor"](../table/23.md) (conditional)
- Reason Code: TableRelation [Table 231 "Reason Code"](../table/231.md)
- Bal. Account No.: TableRelation [Table 270 "Bank Account"](../table/270.md) (conditional)
- No. Series: TableRelation [Table 308 "No. Series"](../table/308.md)
- Posting No. Series: TableRelation [Table 308 "No. Series"](../table/308.md)
- Recurring: CalcFormula [Table 80 "Gen. Journal Template"](../table/80.md)
- Template Type: CalcFormula [Table 80 "Gen. Journal Template"](../table/80.md)
- Journal Template Name: TableRelation [Table 80 "Gen. Journal Template"](../table/80.md)
- No. of Lines: CalcFormula [Table 81 "Gen. Journal Line"](../table/81.md)

## Referenced by

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

- [Table 98 "General Ledger Setup"](../table/98.md): Adjust ARC Jnl. Batch Name, Apply Jnl. Batch Name, Bank Acc. Recon. Batch Name, Job WIP Jnl. Batch Name
- [Table 311 "Sales & Receivables Setup"](../table/311.md): Fin. Charge Jnl. Batch Name, Reminder Journal Batch Name
- [Table 81 "Gen. Journal Line"](../table/81.md): Journal Batch Id, Journal Batch Name
- [Table 109 "Net Balances Parameters"](../table/109.md): Journal Batch Name
- [Table 1104 "Cost Entry"](../table/1104.md): Batch Name
- [Table 1226 "Payment Export Data"](../table/1226.md): General Journal Batch Name
- [Table 1228 "Payment Jnl. Export Error Text"](../table/1228.md): Journal Batch Name
- [Table 131 "Incoming Documents Setup"](../table/131.md): General Journal Batch Name
- [Table 1523 "Workflow Step Argument"](../table/1523.md): General Journal Batch Name
- [Table 1660 "Payroll Setup"](../table/1660.md): General Journal Batch Name
- [Table 1690 "Bank Deposit Header"](../table/1690.md): Journal Batch Name
- [Table 1804 "Approval Workflow Wizard"](../table/1804.md): Journal Batch Name
- [Table 181 "Posted Gen. Journal Line"](../table/181.md): Journal Batch Id
- [Table 183 "Copy Gen. Journal Parameters"](../table/183.md): Journal Batch Name
- [Table 221 "Gen. Jnl. Allocation"](../table/221.md): Journal Batch Name
- [Table 313 "Inventory Setup"](../table/313.md): Invt. Cost Jnl. Batch Name
- [Table 357 "Gen. Jnl. Dim. Filter"](../table/357.md): Journal Batch Name
- [Table 443 "IC Setup"](../table/443.md): Default IC Gen. Jnl. Batch
- [Table 5466 "API Entities Setup"](../table/5466.md): Customer Payments Batch Name
- [Table 5605 "FA Journal Setup"](../table/5605.md): Gen. Jnl. Batch Name
- [Table 579 "Apply Unapply Parameters"](../table/579.md): Journal Batch Name
- [Table 6103 "E-Document Service"](../table/6103.md): General Journal Batch Name
- [Table 7250 "Bank Acc. Rec. AI Proposal"](../table/7250.md): Journal Batch Name
- [Table 7252 "Trans. to G/L Acc. Jnl. Batch"](../table/7252.md): Journal Batch Name
- [Table 8051 "Subscription Contract Setup"](../table/8051.md): Def. Rel. Jnl. Batch Name
- [Table 980 "Payment Registration Setup"](../table/980.md): Journal Batch Name
- [Table extension 6796 "Withholding Purch Setup Ext"](../tableextension/6796.md): WHT Post Dated Check Batch

## Pages and codeunits on this table

- [Page 20013 "APIV1 - Cust. Paym. Journals"](../page/20013.md) (source table)
- [Page 20016 "APIV1 - Journals"](../page/20016.md) (source table)
- [Page 251 "General Journal Batches"](../page/251.md) (source table)
- [Page 30013 "APIV2 - Cust. Paym. Journals"](../page/30013.md) (source table)
- [Page 30016 "APIV2 - Journals"](../page/30016.md) (source table)
- [Page 30061 "APIV2 - Vendor Paym. Journals"](../page/30061.md) (source table)
- [Page 6406 "Gen. Journal Batch Entity"](../page/6406.md) (source table)
- [Codeunit 233 "Gen. Jnl.-B.Post"](../codeunit/233.md) (codeunit runs on it)
- [Codeunit 234 "Gen. Jnl.-B.Post+Print"](../codeunit/234.md) (codeunit runs on it)

## 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 1535 "Approvals Mgmt."](../codeunit/1535.md) (3 calls: `OnDelete → PreventDeletingRecordWithOpenApprovalEntry`, `OnModify → PreventModifyRecIfOpenApprovalEntryExistForCurrentUser`, `OnRename → OnRenameRecordInApprovalRequest`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24, BC26, BC28-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: "Gen. Journal Batch")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
