# Shared

## Domain Types

### Transaction

- `type Transaction struct{…}`

  - `ID string`

  - `AccountID string`

  - `Amount string`

  - `BalanceAfter string`

  - `CreatedAt Time`

  - `Currency string`

  - `Status TransactionStatus`

    - `const TransactionStatusPending TransactionStatus = "pending"`

    - `const TransactionStatusCompleted TransactionStatus = "completed"`

    - `const TransactionStatusFailed TransactionStatus = "failed"`

    - `const TransactionStatusCancelled TransactionStatus = "cancelled"`

  - `TransactionType TransactionTransactionType`

    - `const TransactionTransactionTypeDeposit TransactionTransactionType = "deposit"`

    - `const TransactionTransactionTypeWithdrawal TransactionTransactionType = "withdrawal"`

    - `const TransactionTransactionTypeTransfer TransactionTransactionType = "transfer"`

    - `const TransactionTransactionTypeRecurringPayment TransactionTransactionType = "recurring_payment"`

    - `const TransactionTransactionTypeSavingsWithdraw TransactionTransactionType = "savings_withdraw"`

  - `UpdatedAt Time`

  - `Description string`

  - `ExternalRecipientID string`

  - `RecipientAccountID string`

  - `ReferenceID string`
