# BankAccount

## Description

BankAccount represents one company-owned bank account in one currency. It maps the operational account to an actual bank GL account and, when indirect recognition is used, to incoming and outgoing clearing accounts.

## Domain Model Definitions

### Model type

Standard

### Command Definitions

- [createBankAccount](../command/CreateBankAccount.md) - Create an ACTIVE bank account

### Query Definitions

- None

### Models

- BankAccount

### Invariants

- Company, currency, and cash account are required
- Every configured GL account is ACTIVE and belongs to the same company
- Clearing accounts are optional
- Status is ACTIVE or INACTIVE

### Relationships

- References Company and Currency
- References one cash Account and optional incoming/outgoing clearing Accounts
- Has many BankStatements and BankReconciliations
