Namespace Microsoft.Bank.Check

Manages the complete lifecycle of physical and electronic checks within Business Central's banking system. Provides comprehensive check processing functionality including check creation, printing, voiding, financial reconciliation, and positive pay export capabilities.

Codeunit

Name Description
Codeunit Microsoft.Bank.Check.CheckManagement Manages check printing, voiding, and electronic payment processing for bank accounts. Handles complete check lifecycle from creation through financial voiding and positive pay export.

Table

Name Description
Table Microsoft.Bank.Check."Check Ledger Entry" Tracks the lifecycle and status of physical and electronic checks issued from bank accounts. Maintains complete audit trail from creation through voiding with bank reconciliation support.

Page

Name Description
Page Microsoft.Bank.Check."Apply Check Ledger Entries" Provides interface for applying check ledger entries to bank account reconciliation lines. Enables users to match checks with bank statement entries for accurate reconciliation.
Page Microsoft.Bank.Check."Check Ledger Entries" Displays comprehensive list of check ledger entries with filtering and navigation capabilities. Provides read-only view of check transactions for analysis and lookup purposes.
Page Microsoft.Bank.Check."Check Preview" Provides formatted preview of check layout and content before final printing. Displays payer information, payee details, and check amounts in standard check format.
Page Microsoft.Bank.Check."Confirm Financial Void" Provides confirmation dialog for financial voiding of posted checks with void date and type selection. Allows users to specify void date and choose between unapply+void or void-only operations.

Report

Name Description
Report Microsoft.Bank.Check.Check Generates formatted check documents with proper alignment and security features. Supports multiple check formats, void processing, and remittance stub generation.
Report Microsoft.Bank.Check."Delete Check Ledger Entries" Removes non-printed check ledger entries from the database to manage storage space. Maintains audit trail through date compression register while safely cleaning historical data.
Report Microsoft.Bank.Check."Void/Transmit Elec. Pmnts" Manages electronic payment transmission and voiding operations for exported payment files. Processes electronic payments through bank-specific transmission protocols and void procedures.

Events

Name
OnAfterCalcAmountToVoid Integration event raised after calculating the total amount to void for a check. Enables custom calculation logic or adjustments to the void amount.
OnAfterVoidCheck Integration event raised after successfully voiding a check entry. Enables custom processing or logging after the void operation completes.
OnAfterFinancialVoidCheck Integration event raised after completing a financial void operation on a check. Enables custom processing or notifications after the check has been financially voided.
OnAfterFinancialVoidCheckPreValidation Integration event raised after validating prerequisites for financial void operation. Enables additional validation or processing after standard void validation completes.
OnBeforeVoidCheck Integration event raised before starting a check void operation. Enables custom validation or processing before the void operation begins.
OnBeforeMarkCheckEntriesVoid Integration event raised before marking check ledger entries as void. Enables custom logic for handling check entry void marking.
OnBeforeFinancialVoidCheck Integration event raised before starting a financial void operation on a check. Enables custom validation or alternative void processing.
OnBeforeVoidCheckGenJnlLine2Modify Integration event raised before modifying a general journal line during check void operation. Enables custom field updates or validation before journal line modification.
OnMarkCheckEntriesVoidOnBeforeRelatedCheckLedgerEntry2Modify Integration event raised before modifying related check ledger entries during void operation. Enables custom processing of related check entries before they are marked as voided.
OnMarkCheckEntriesVoidOnBeforeOriginalCheckLedgerEntryModify Integration event raised before modifying the original check ledger entry during void operation. Enables custom field updates or validation before the original check entry is marked as voided.
OnVoidCheckOnAfterGenJnlLine2Modify Integration event raised after modifying a general journal line during check void operation. Enables custom processing or logging after journal line has been updated with void status.
OnVoidCheckOnAfterCheckLedgEntry2SetFilters Integration event raised after setting filters on check ledger entry during void operation. Enables custom filter modification or additional processing on filtered check entries.
OnFinancialVoidCheckOnBeforePostCust Integration event raised before posting customer entries during financial void operation. Enables custom processing or validation before customer ledger entries are posted.
OnFinancialVoidCheckOnBeforeCheckBalAccountType Integration event raised before checking balance account type during financial void operation. Enables custom validation or processing based on the balance account type.
OnFinancialVoidCheckOnBeforePostBankAccount Integration event raised before posting bank account entries during financial void operation. Enables custom processing or validation before bank account ledger entries are posted.
OnFinancialVoidCheckOnBeforePostFixedAsset Integration event raised before posting fixed asset entries during financial void operation. Enables custom processing or validation before fixed asset ledger entries are posted.
OnFinancialVoidCheckOnBeforePostVend Integration event raised before posting vendor entries during financial void operation. Enables custom processing or validation before vendor ledger entries are posted.
OnFinancialVoidCheckOnBeforePostEmp Integration event raised before posting employee entries during financial void operation. Enables custom processing or validation before employee ledger entries are posted.
OnFinancialVoidCheckOnAfterPostVoidCheckLine Integration event raised after posting a void check line during financial void operation. Enables custom processing or logging after void entries are posted.
OnFinancialVoidCheckOnAfterVendorLedgEntrySetFilters Integration event raised after setting filters on vendor ledger entries during financial void operation. Enables custom filter modification or additional processing on filtered vendor entries.
OnFinancialVoidCheckOnBeforePostVoidCheckLine Integration event raised before posting a void check line during financial void operation. Enables custom processing or validation before void entries are posted.
OnFinancialVoidCheckOnAfterPostBalAccLine Integration event raised after posting balance account line during financial void operation. Enables custom processing or logging after balance account entries are posted.
OnFinancialVoidCheckOnBeforePostBalAccLine Integration event raised before posting balance account line during financial void operation. Enables custom processing or validation before balance account entries are posted.
OnFinancialVoidPostGLAccountOnBeforeGLEntryLoop Integration event raised before processing G/L entries loop during financial void of G/L account. Enables custom processing or filtering of G/L entries before void operation.
OnInsertCheckOnAfterCheckLedgEntryInsert Integration event raised after inserting a new check ledger entry. Enables custom processing or additional field updates after check entry creation.
OnInsertCheckOnBeforeCheckLedgEntryInsert Integration event raised before inserting a new check ledger entry. Enables custom field updates or validation before check entry creation.
OnPostRoundingAmountOnAfterGenJnlPostLine Integration event raised after posting rounding amount entries during financial void operation. Enables custom processing or logging after currency rounding entries are posted.
OnProcessElectronicPaymentOnBeforeCheckLedgEntry3Modify Integration event raised before modifying check ledger entry during electronic payment processing. Enables custom field updates or validation before electronic payment status changes.
OnPostRoundingAmountOnBeforeGenJnlPostLine Integration event raised before posting rounding amount entries during financial void operation. Enables custom processing or validation before currency rounding entries are posted.
OnUnApplyCustInvoicesOnBeforePost Integration event raised before posting unapplication entries for customer invoices during void operation. Enables custom processing or validation before customer unapplication entries are posted.
OnUnApplyVendInvoicesOnBeforePost Integration event raised before posting unapplication entries for vendor invoices during void operation. Enables custom processing or validation before vendor unapplication entries are posted.
OnAfterIsElectronicBankPaymentType Integration event raised after determining if a bank payment type is electronic. Enables custom logic for identifying electronic payment types.
OnUnApplyCustInvoicesOnAfterCalcRemainingAmount Integration event raised after calculating remaining amount for customer entries during void operation. Enables custom processing or adjustments after remaining amount calculation for customer ledger entries.
OnUnApplyVendInvoicesOnAfterCalcRemainingAmount Integration event raised after calculating remaining amount for vendor entries during void operation. Enables custom processing or adjustments after remaining amount calculation for vendor ledger entries.
OnUnApplyVendInvoicesOnBeforeErrorNoAppliedEntry Integration event raised before showing error for missing applied entries during vendor invoice unapplication. Enables custom error handling or alternative processing when no applied entries are found.
OnBeforeSetGenJnlLine Integration event raised before setting general journal line fields during check operations. Enables custom field updates or validation before journal line field assignment.
OnAfterSetGenJnlLine Integration event raised after setting general journal line fields during check operations. Enables custom field updates or additional processing after journal line field assignment.
OnBeforeUnApplyVendInvoices Integration event raised before starting vendor invoice unapplication during void operation. Enables custom logic for handling vendor invoice unapplication or skipping standard processing.
OnFinancialVoidCheckOnBeforeConfirmFinancialVoid Integration event raised before confirming financial void operation on a check. Enables custom confirmation dialog or validation before financial void confirmation.
OnBeforePostRoundingAmount Integration event raised before posting rounding amount during financial void operation. Enables custom processing or validation before currency rounding entries are posted.
OnAfterCopyFromBankAccLedgEntry Integration event raised after copying data from bank account ledger entry to check ledger entry. Enables additional field initialization or custom processing during check entry creation.
OnAfterGetPayee Integration event raised after retrieving the payee name for a check. Enables custom logic for determining or modifying the payee name based on account type and number.
OnBeforeOnOpenPage Integration event raised before opening the Check Ledger Entries page. Enables custom initialization or setup before page display.
OnBeforeFormatTextFieldsForCheck Integration event raised before formatting text fields for check display. Enables custom formatting logic or field population before standard check formatting.
OnAfterFormatTextFieldsForCheck Integration event raised after formatting text fields for check display. Enables custom modifications to formatted check text fields.
OnBeforeOnOpenPage Integration event raised before opening the Confirm Financial Void page. Enables custom initialization or preprocessing before void confirmation dialog display.
OnAfterFormatNoText Integration event raised after formatting numeric amount to text for check printing. Enables custom formatting or modification of the text representation of check amounts.
OnAfterVendUpdateAmounts Integration event raised after updating vendor ledger entry amounts during check processing. Enables custom processing or field updates after vendor amount calculations.
OnGenJnlLineOnAfterGetRecordOnAfterBalancingTypeVendorCase Integration event raised after processing vendor record in general journal line context. Enables custom processing or field updates after vendor data retrieval for balancing account.
OnAfterAssignGenJnlLineDocumentNo Integration event raised after assigning document number to general journal line. Enables custom processing or logging after document number assignment.
OnAfterAssignGenJnlLineDocNoAndAccountType Integration event raised after assigning document number and account type to general journal line. Enables custom processing after document and account type assignment in specific apply methods.

Remarks

Architecture: The check management system is built on an event-driven architecture with the following key components:

Core Transaction Processing:

  • Check Ledger Entry: Central transaction record maintaining complete check audit trail
  • Check Management: Business logic codeunit orchestrating all check operations
  • Check Report: Formatted output generation with security features and void processing

User Interface Components:

  • Check Ledger Entries: Comprehensive transaction history and lookup interface
  • Apply Check Ledger Entries: Payment application and reconciliation interface
  • Check Preview: Visual verification before printing or processing

Administrative Tools:

  • Confirm Financial Void: Secure void operation confirmation interface
  • Delete Check Ledger Entries: Maintenance utility for entry cleanup
  • Void/Transmit Electronic Payments: Electronic payment processing interface

Key Workflows:

  1. **Check Creation and Printing:**Create payment journal entries with check payment methods, assign sequential check numbers, generate formatted check documents with security features
  2. **Check Voiding Operations:**Perform void operations (simple, financial, or transmit electronic), update check ledger status, handle reversing entries for financial voids
  3. **Check Application and Reconciliation:**Apply checks to invoices and payments, match bank statement entries to check ledger records, validate check clearing and settlement

Integration Points: Integrates with General Journal for payment entry creation, Bank Account management for check number sequencing, Purchase/Sales systems for payment application, and Positive Pay systems for fraud prevention and security validation.

Extensibility: Key extension points include OnBeforeFinancialVoidCheck for custom void validation, OnAfterInsertCheck for check creation hooks, and OnBeforeCheckReport for custom check formatting. Supports positive pay integration through OnAfterExportPositivePay.

Dependencies:
Required: Microsoft.Bank.BankAccount, Microsoft.Finance.GeneralLedger.Journal
Optional: Microsoft.Bank.PositivePay, Microsoft.Purchases.Payables, Microsoft.Bank.Reconciliation