xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField SalesCRMRewardsClaimsInventoryProcurementWarehouse ManagementField ServiceServiceSupportTelephony & MessagingFinance & AccountingPayrollExpense ManagementCommercePortalsAnalytics & ReportingData StudioMobile AppSee all products →
PLATFORM
Platform overviewApp BuilderAutomationIntegrationsSecurity & GovernanceChange ManagementDevelopers
SENSE AI
Sense AI overviewSense AssistSense ControlSense VisionAI StudioTrust & governanceIn Claude & ChatGPTUse cases
SOLUTIONS
FMCG & DistributionManufacturing & Dealer NetworksAutomotive & DealershipsPharma & HealthcareConsumer DurablesAgri-InputsBuilding MaterialsService NetworksWarehousing & 3PLFinancial AccountingERP SoftwareIndia GST ComplianceUAE VAT & e-InvoicingSaudi ZATCA & VATAll solutions →
RESOURCES
Knowledge CenterDeveloper & CLIBlogGuidesWhat is xMatix?Company facts
COMPANY
AboutCareersPartnersEventsContactAuthorsLegal
Sign in Request demo
Home/Docs/Entity Reference/Bank Reconciliation — entity reference
REFERENCE · Last reviewed

Bank Reconciliation — entity reference

A reconciliation session header for one bank account as at a statement date, holding the closing balance per bank and per book plus the difference between them, and owning the BankReconciliationLine reconciling items. It is a manual worksheet rather than a computed one: nothing in the platform populates the two closing balances — the session summary reads whatever is stored on the header, stamps the difference as per-bank minus per-book, and flips the status to Completed when that difference is zero. Its server actions (match suggestions, confirm matches, list bank accounts) operate on bank statement lines and ledger journal lines, not on this session's own lines, so a session can be signed off independently of the matches actually recorded. Completing a session locks nothing: no period is closed, no journal is frozen and nothing is posted to the ledger.

Fields

FieldLabelTypeRequiredWhat it does
BankAccountIdBank AccountLookup → BankAccountThe bank account under reconciliation. Note that the match actions resolve the bank account from each statement line's own parent statement rather than from here, so a mismatch between this field and the linked statement's account is never detected.
BankStatementIdBank StatementLookup → BankStatementThe statement this session covers. The reconciliation-summary action refuses to run without it, since the statement supplies the bank-side closing balance and the lines to compare.
ClosingBalancePerBankClosing Balance Per BankCurrencyThe bank's closing balance for the session, entered by hand.
ClosingBalancePerBookClosing Balance Per BookCurrencyThe ledger closing balance for the session, entered by hand. Nothing recomputes it from posted journal lines on the bank's GL account, so it is a snapshot of what someone typed rather than a live figure.
CreatedByIdCreated ByLookup → UserAccountYes
CreatedDateTimeCreated OnDateAndTimeYes
DifferenceDifferenceCurrencyStamped by the session summary as closing balance per bank minus closing balance per book. Because both inputs are manually entered, a zero here proves only that the two typed figures agree — it does not prove the statement ties to the ledger.
IdIdGuidYes
ModifiedByIdModified ByLookup → UserAccountYes
NameNameTextYes
OpeningBalanceOpening BalanceCurrencyRecorded on the session header for reference only. No code reads it — the session summary works purely from the two closing balances.
OwnerIdOwnerLookup → UserAccountYes
PartnerAccountIdPartner AccountLookup → Account
RecordTypeIdRecord TypeGuid, hidden
StatementDateStatement DateDateAndTime
StatusStatusTextOpen or Completed. The session summary flips it to Completed once the difference is zero, but it never flips back, so a session completed and then edited to a non-zero difference stays Completed.
UIPropsUI PropsText
UpdatedDateTimeUpdated OnDateAndTimeYes

Actions

ActionLabelTypeWhat it does
CloneCloneServerAction (Clone)Create a copy of this record
ConfirmMatchesConfirm MatchesServerAction (ConfirmMatches)Persists a caller-supplied list of statement-line to journal-line pairs as reconciliation matches, marks each statement line Matched, and reports how many were confirmed against how many were requested. It applies no matching rules and performs no amount, date or direction check on the pairs it is handed, so it will record whatever pairing it is given — only the auto-match path enforces the rules.
GetBankAccountsGet Bank AccountsServerAction (GetBankAccounts)Lists the active bank accounts whose GL account is of type Bank, each with a book balance summed from posted journal lines on that GL account, a bank balance summed across the account's statements, and a count of its statement lines by reconciliation status. Scope precedence matters: an explicitly passed company or branch is honoured verbatim and suppresses the user's defaults, and only when neither is passed does it fall back to the signed-in user's default company and branch. Be careful with the bank balance — it adds up the closing balance of every statement on the account rather than taking the latest one, so an account with several statements reports an inflated figure.
GetMatchSuggestionsGet Match SuggestionsServerAction (GetMatchSuggestions)Takes a single bank statement line id and returns the posted ledger lines on that account's bank GL account which survive the whole matching-rule cascade, ranked best first by date proximity and reference overlap. Despite the name it is not read-only: if a rule in the cascade has auto-match on and its survivors have an unambiguous winner, the match is confirmed and the statement line flipped to Matched during this call, and only that one confirmed suggestion is returned. It returns nothing for a line that is not Unmatched, and fails outright when the bank account has no linked GL account.
GetUnmatchedAgeingGet Unmatched AgeingServerAction (GetUnmatchedAgeing)Age the unmatched statement and book transactions on a bank account.
NewNewNewNew

Lookup filters

FilterLookup fieldNotes
Partner Account FilterPartnerAccountId