# Shared

## Domain Types

### Transaction

- `class Transaction:`

  - `id: String`

  - `accountId: String`

  - `amount: String`

  - `balanceAfter: String`

  - `createdAt: LocalDateTime`

  - `currency: String`

  - `status: Status`

    - `PENDING("pending")`

    - `COMPLETED("completed")`

    - `FAILED("failed")`

    - `CANCELLED("cancelled")`

  - `transactionType: TransactionType`

    - `DEPOSIT("deposit")`

    - `WITHDRAWAL("withdrawal")`

    - `TRANSFER("transfer")`

    - `RECURRING_PAYMENT("recurring_payment")`

    - `SAVINGS_WITHDRAW("savings_withdraw")`

  - `updatedAt: LocalDateTime`

  - `description: Optional<String>`

  - `externalRecipientId: Optional<String>`

  - `recipientAccountId: Optional<String>`

  - `referenceId: Optional<String>`
