# Base class for all transaction types in the ledger service

## Fields

### event_type  
**Type:** const enum  
**Required:** Yes  
The type of event that occurred.  
**Allowed values:** `external_payment.updated`

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

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

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

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

### family  
**Type:** const enum  
**Required:** Yes  
**Allowed values:** `EXTERNAL_PAYMENT`

### result  
**Type:** string enum  
**Required:** Yes  
**Allowed values:** `APPROVED`, `DECLINED`

### category  
**Type:** string enum  
**Required:** Yes  
**Allowed values:** `EXTERNAL_WIRE`, `EXTERNAL_ACH`, `EXTERNAL_CHECK`, `EXTERNAL_FEDNOW`, `EXTERNAL_RTP`, `EXTERNAL_TRANSFER`

### settled_amount  
**Type:** integer  
**Required:** Yes

### pending_amount  
**Type:** integer  
**Required:** Yes

### currency  
**Type:** string  
**Required:** Yes

### events  
**Type:** array of objects  
**Required:** Yes  
*`events`
  
### user_defined_id  
**Type:** string | null

### financial_account_token  
**Type:** uuid  
**Required:** Yes

### payment_type  
**Type:** string enum  
**Required:** Yes  
**Allowed values:** `DEPOSIT`, `WITHDRAWAL`

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