Bank transactions

Bank transactions

A bank transaction is the cash movement you reconcile against invoices and post for non-invoice events such as fees, taxes, loan payments, and payment provider settlements. Bank transactions are a primary driver for automation because they confirm what actually happened in the bank account.

Ownership

Owner: bus bank. This module is responsible for implementing write operations for this object and is the only module that should directly change the canonical datasets for it.

Secondary read-only use cases are provided by these modules when they consume this object for validation, matching, posting, or reporting:

bus reconcile records matches and allocations that reference bank transaction identity. bus invoices is matched against payments for open-item workflows, and bus journal receives postings for non-invoice bank events.

Actions

Import bank transactions ingests statement feeds into normalized transactions suitable for reconciliation. Match a bank transaction links cash movement to invoices or journal entries so open items close deterministically. Classify a non-invoice bank transaction records target ledger account and VAT intent for fees, taxes, and other events.

Properties

Core properties are bank_transaction_id, bank_account_id, booking_date, value_date, amount, currency, reference, and rf_reference.

Counterparty fields include debtor_name, creditor_name, debtor_account, and creditor_account.

Matching and classification fields include matched_sale_invoice_id, matched_purchase_invoice_id, client_id, purchase_company_id, ledger_account_id, vat_treatment, and vat_deductible_percent.

Workflow metadata fields include accounting_status, booked_at, booked_by, and accounting_note.

Bank transactions belong to the workspace’s accounting entity and attach to a statement source via bank_account_id.

Relations

A bank transaction belongs to one bank account via bank_account_id. Its accounting scope is derived from the workspace root directory rather than from a per-row key.

A bank transaction can be linked to one or more reconciliations, which explain how the cash movement settles one or more targets such as a sales invoice, a purchase invoice, or a journal transaction.

When the bank transaction represents a direct, non-invoice bookkeeping event, it can reference one ledger account via ledger_account_id and one VAT treatment via vat_treatment.

A bank transaction can have zero or more documents (evidence) linked to it for audit navigation.