# Base Class for All Transaction Types in the Ledger Service

## Attributes

### event_type
- **Type:** const enum  
- **Required:** Yes  
- **Description:** The type of event that occurred.  
- **Allowed Values:**  `book_transfer_transaction.created`

### status
- **Type:** string enum  
- **Required:** Yes  
- **Description:** The status of the transaction  
- **Allowed Values:** `PENDING`, `SETTLED`, `DECLINED`, `REVERSED`, `CANCELED`, `RETURNED`

### token
- **Type:** uuid  
- **Required:** Yes  
- **Description:** Unique identifier for the transaction

### created
- **Type:** date-time  
- **Required:** Yes  
- **Description:** ISO 8601 timestamp of when the transaction was created

### updated
- **Type:** date-time  
- **Required:** Yes  
- **Description:** ISO 8601 timestamp of when the transaction was last updated

### family
- **Type:** const enum  
- **Required:** Yes  
- **Description:** Type of transaction  
- **Allowed Values:** `TRANSFER`

### result
- **Type:** string enum  
- **Required:** Yes  
- **Description:** Outcome of the transaction  
- **Allowed Values:** `APPROVED`, `DECLINED`

### category
- **Type:** string enum  
- **Required:** Yes  
- **Description:** Category of the transaction  
- **Allowed Values:** `ADJUSTMENT`, `BALANCE_OR_FUNDING`, `DERECOGNITION`, `DISPUTE`, `FEE`, `INTERNAL`, `REWARD_PROGRAM_FUNDING`, `TRANSFER`

### currency
- **Type:** string  
- **Required:** Yes  
- **Description:** 3-character alphabetic ISO 4217 code for the settling currency of the transaction

### settled_amount
- **Type:** integer  
- **Required:** Yes  
- **Description:** Amount of the transaction that has been settled in the currency's smallest unit (e.g., cents)

### pending_amount
- **Type:** integer  
- **Required:** Yes  
- **Description:** Pending amount of the transaction in the currency's smallest unit (e.g., cents), including any acquirer fees.

### events
- **Type:** array of objects  
- **Required:** Yes  
- **Description:** A list of all financial events that have modified this transfer
- **Event Object:**
  - **amount (integer):** Required. Amount of the financial event.
  - **type (string enum):** Required. Type of the book transfer.  
  - **Allowed Values:** `ATM_BALANCE_INQUIRY`, `ATM_WITHDRAWAL`...
  - **result (string enum):** Required. Status of the financial event.  
  - **Allowed Values:** `APPROVED`, `DECLINED`
  - **created (date-time):** Required. Event timestamp in UTC.
  - **token (uuid):** Required. Globally unique identifier.
  - **subtype (string):** Required. Program specific subtype code.
  - **memo (string):** Required. Memo for the transfer.
  - **detailed_results (array of strings):** Required. Detailed outcomes.

### from_financial_account_token
- **Type:** uuid  
- **Required:** Yes  
- **Description:** Identifier for the financial account sending funds.

### to_financial_account_token
- **Type:** uuid  
- **Required:** Yes  
- **Description:** Identifier for the financial account receiving funds.

### external_id
- **Type:** string  
- **Description:** External ID defined by the customer.

### transaction_series
- **Type:** object  
- **Description:** A series of transactions grouped together.
- **Fields:**
  - **type (string):** Type of the transaction series.
  - **related_transaction_token (uuid):** Identifier for related transaction.
  - **related_transaction_event_token (uuid):** Identifier for related transaction event.

### external_resource
- **Type:** object  
- **Description:** An external resource associated with the transfer.
- **Fields:**
  - **external_resource_type (string):** Type of the external resource.
  - **external_resource_token (string):** Identifier for the external resource.
  - **external_resource_sub_token (string):** Sub identifier for the external resource.

### Response Status
- **Status:** 200  
- **Description:** Indicates that the data was received successfully.
