# BankReconciliationItem

## Description

BankReconciliationItem is one participant in a BankReconciliation group. `sourceType + sourceId` is a polymorphic logical reference. Only `bankReconciliationId` is a physical foreign key.

## Domain Model Definitions

### Model type

AppendOnly

### Command Definitions

- [reconcileBankTransactions](../command/ReconcileBankTransactions.md) - Add source participation to a confirmed group
- [reverseBankReconciliation](../command/ReverseBankReconciliation.md) - Copy participation into a reversing group

### Query Definitions

- None

### Models

- BankReconciliationItem

### Invariants

- `sourceType` is BANK_STATEMENT_LINE, INCOMING_PAYMENT, or OUTGOING_PAYMENT
- `sourceId` resolves to an existing eligible source of the declared type
- `clearedAmount` is positive
- The same source can appear only once within a reconciliation group
- Payment effective cleared amount is RECONCILE items minus UNRECONCILE items
- A BANK_STATEMENT_LINE item always records the source line's full amount

### Relationships

- Belongs to BankReconciliation through a physical FK
- Logically references BankStatementLine, IncomingPayment, or OutgoingPayment
