# Base class for all transaction types in the ledger service

## Properties

### event_type
- **Type:** `const`
- **Enum:** required  
The type of event that occurred.  
**Allowed:**  
`external_payment.created`

### status
- **Type:** `string`
- **Enum:** required  
The status of the transaction.  
**Allowed:**  
`PENDING`, `SETTLED`, `DECLINED`, `REVERSED`, `CANCELED`, `RETURNED`

### token
- **Type:** `uuid`
- **Required:**  
Unique identifier for the transaction.

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

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

### family
- **Type:** `const`
- **Enum:** required  
**Allowed:**  
`EXTERNAL_PAYMENT`

### result
- **Type:** `string`
- **Enum:** required  
**Allowed:**  
`APPROVED`, `DECLINED`

### category
- **Type:** `string`
- **Enum:** required  
**Allowed:**  
`EXTERNAL_WIRE`, `EXTERNAL_ACH`, `EXTERNAL_CHECK`, `EXTERNAL_FEDNOW`, `EXTERNAL_RTP`, `EXTERNAL_TRANSFER`

### settled_amount
- **Type:** `integer`
- **Required:**

### pending_amount
- **Type:** `integer`
- **Required:**

### currency
- **Type:** `string`
- **Required:**

### events
- **Type:** `array of objects`
- **Required:**  
- **events**
    - **Object:**  
        - user_defined_id: `string | null`
        - financial_account_token: `uuid`
        - payment_type: `string`
        - **Enum:** required  
        **Allowed:**  
        `DEPOSIT`, `WITHDRAWAL`

## Example Response

```json
{
  "status": "PENDING",
  "token": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "created": "2026-07-18T00:26:06.702Z",
  "updated": "2026-07-18T00:26:06.702Z",
  "event_type": "external_payment.created",
  "family": "EXTERNAL_PAYMENT",
  "result": "APPROVED",
  "category": "EXTERNAL_WIRE",
  "payment_type": "DEPOSIT"
}
```
