> ## Documentation Index
> Fetch the complete documentation index at: https://guides.saber.money/llms.txt
> Use this file to discover all available pages before exploring further.

# Transaction Object and Statuses

> Fields of the Unified Transaction object, client statuses, transitions and webhook behavior.

## Transaction object

Returned by all three endpoints and as `data` in every webhook.

| Field | Type | Description |
| - | - | - |
| `id` | string (UUID) | Transaction id |
| `client_reference_id` | string or null | As sent |
| `transaction_type` | string | `POOL_SELL` |
| `status` | string | Client status, see [Statuses](#statuses) |
| `reason_code` | string or null | Why the transaction is in `APPROVAL_REQUIRED` or `FAILED`, see [Asynchronous reasons](https://guides.saber.money/api-reference/unified-transaction/errors.md#asynchronous-reasons). `null` otherwise. |
| `reason_desc` | string or null | Human-readable text for `reason_code`. Informational. Do not parse. |
| `from_currency` | string | Upper-cased symbol |
| `to_currency` | string | Upper-cased symbol |
| `from_amount` | string | Amount debited, in `from_currency` |
| `to_amount` | string or null | Amount paid out, in `to_currency`. `null` until `COMPLETED`. |
| `exchange_rate` | string or null | `to_amount` / `from_amount`, up to 8 decimal places, fees included. `null` while `to_amount` is `null`. |
| `payment_method` | string | As sent |
| `purpose_code` | string or null | As sent |
| `quote_id` | string (UUID) or null | Quote the payout settled at. Set on `COMPLETED` when available. |
| `bank_transaction_id` | string or null | Bank reference (UTR) of the payout. Set on `COMPLETED` when available. In sandbox the value is a placeholder, not a real UTR. |
| `sender_id` | string (UUID) or null | Sender. Set once the sender is resolved. Reusable as `sender.id`. |
| `beneficiary_id` | string (UUID) or null | Beneficiary. Set once the beneficiary is resolved. Reusable as `beneficiary.id`. |
| `beneficiary_instrument_id` | string (UUID) or null | Bank account. Set once the account is registered. Reusable as `beneficiary_instrument.id`. |
| `beneficiary_instrument_type` | string | `BANK_ACCOUNT` |
| `beneficiary_relationship` | string or null | As sent, trimmed. `SELF` when defaulted. |
| `created_at` | integer | Epoch ms |
| `updated_at` | integer | Epoch ms. Changes on every status change. |

> [!NOTE]
>
> `sender_id`, `beneficiary_id` and `beneficiary_instrument_id` can be set while `status` still shows an earlier value.

## Statuses

| Status | Terminal | Webhook | Meaning |
| - | - | - | - |
| `CREATED` | No | No | Accepted. Sender being resolved and screened. |
| `SENDER_KYC_VERIFIED` | No | Yes | Sender KYC approved. Beneficiary being resolved and screened. |
| `BENEFICIARY_KYC_VERIFIED` | No | Yes | Beneficiary KYC approved. Bank account being verified. |
| `BENEFICIARY_INSTRUMENT_VERIFIED` | No | Yes | Bank account verified. Payout in progress. |
| `APPROVAL_REQUIRED` | No | No | Under compliance review. `reason_code` is `SENDER_KYC_PENDING` or `BENEFICIARY_KYC_PENDING`. Poll `GET` to observe changes. |
| `COMPLETED` | Yes | Yes | Paid out. `to_amount` and `exchange_rate` are set. `quote_id` and `bank_transaction_id` are set when available. |
| `FAILED` | Yes | Yes | Not paid out. `reason_code` says why. |

### Transitions

| From | To |
| - | - |
| `CREATED` | `SENDER_KYC_VERIFIED`, `APPROVAL_REQUIRED`, `FAILED` |
| `SENDER_KYC_VERIFIED` | `BENEFICIARY_KYC_VERIFIED`, `APPROVAL_REQUIRED`, `FAILED` |
| `BENEFICIARY_KYC_VERIFIED` | `BENEFICIARY_INSTRUMENT_VERIFIED`, `FAILED` |
| `BENEFICIARY_INSTRUMENT_VERIFIED` | `COMPLETED`, `FAILED` |

No duration is guaranteed for a non-terminal status.

## Related pages

> **[Webhooks](https://guides.saber.money/api-reference/unified-transaction/webhooks.md)**

> **[Error List](https://guides.saber.money/api-reference/unified-transaction/errors.md)**


## Related topics

- [Conventions and Authentication](https://guides.saber.money/api-reference/unified-transaction/conventions.md)
- [List EDD Requests](https://guides.saber.money/api-reference/kyc-and-edd-operations/edd/list-edd-requests.md)
- [List Transactions](https://guides.saber.money/api-reference/unified-transaction/list-transactions.md)
- [Get Transaction Details](https://guides.saber.money/api-reference/unified-transaction/get-transaction-details.md)
- [Create Payout](https://guides.saber.money/api-reference/unified-transaction/create-payout.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.