One imported bank statement for a bank account — its as-at date and the bank's opening and closing balances — owning the statement lines that the reconciliation engine matches against posted ledger lines on the bank's GL account. Save-time rules reject a second statement for the same bank account and date, and reject an opening balance that does not equal the closing balance of that account's most recent earlier statement. Its status is stamped Imported on creation and is never advanced by any code path, so it does not indicate reconciliation progress; read the per-line reconciliation status or run the reconciliation summary instead.
Fields
| Field | Label | Type | Required | What it does |
BankAccountId | Bank Account | Lookup → BankAccount | Yes | The account being reported. It also resolves the GL account the ledger side is read from, so a statement whose bank account has no linked GL account cannot produce any match suggestions. |
ClosingBalance | Closing Balance | Calculated (calculated) | | The bank's closing balance, used as the bank side of the reconciliation: the summary reports the difference between the posted ledger balance on the bank's GL account and this value, and it treats the statement as internally consistent only when the opening balance plus the net of all its lines equals it. |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created On | DateAndTime | Yes | |
Id | Id | Guid | Yes | |
Label | Label | Text | | |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Name | Text, unique | Yes | |
OpeningBalance | Opening Balance | Currency | | The bank's opening balance for the period. It is validated on save against the closing balance of the same account's most recent earlier statement and the save is rejected when they differ, so back-dating or correcting one statement can block saving another. |
OwnerId | Owner | Lookup → UserAccount | Yes | |
PartnerAccountId | Partner Account | Lookup → Account | | |
RecordTypeId | Record Type | Guid, hidden | | |
StatementDate | Statement Date | Date | Yes | The as-at date of the statement and the key for both save-time rules — at most one statement per bank account per date, and the previous-statement lookup for the opening-balance check takes the latest statement dated strictly before it. |
Status | Status | PickList | | Stamped Imported when the statement is created and never advanced by any code path; the Reconciling and Reconciled values that exist in the underlying vocabulary are not even offered in the picklist. It therefore does not track reconciliation progress — use the per-line reconciliation status or the reconciliation summary. Values: Imported. |
UIProps | UI Props | Text | | |
UpdatedDateTime | Updated On | DateAndTime | Yes | |
Actions
| Action | Label | Type | What it does |
AutoReconcile | Auto Reconcile | ServerAction (AutoReconcile) | Declared as a server action but nothing implements it — the bank statement handler only validates saves and supports no server actions at all, so invoking this runs no matching. Automatic matching happens on the bank reconciliation entity's match-suggestion action, driven by matching rules that have auto-match enabled. |
BulkDelete | Delete | Delete | Delete the selected records. |
Clone | Clone | ServerAction (Clone) | Create a copy of this record |
Delete | Delete | Delete | Delete |
DeleteInList | Delete | Delete | Delete in a list page |
Edit | Edit | Edit | Edit |
EditListRow | Edit | Edit | EditListRow |
New | New | New | New |
SuggestMatches | Suggest Matches | ServerAction (SuggestMatches) | The working equivalent is the match-suggestion action on the bank reconciliation entity, which takes a single bank statement line id. |
Validations
| Validation | Applies to | Error message | Notes |
| XM_BankStatementFutureDateValidation | StatementDate, Error | Future-date is not allowed. | Future-dated bank statement validation. |
Lookup filters
| Filter | Lookup field | Notes |
| Bank Account Filter | BankAccountId | |