> ## 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.

# Fetching Transaction Status

> GET the status and details of a crypto-to-fiat sell transaction (Pool Sell, regular Sell, or External Sell) via the v2 generic transaction endpoint, including status enums, exchange rate, amounts, and failure codes.

## Overview

Use the generic v2 transaction endpoint to track the current status of a sell transaction, no matter which offramp flow created it. This allows merchants to poll for completion, surface progress to users, and investigate failures.

***

## Endpoint

**URL**: `https://api.saber.money/api/v2/wallet/transaction` **Method**: `GET`

| Query Param        | Required | Description                                                                                 |
| ------------------ | -------- | ------------------------------------------------------------------------------------------- |
| `transaction_type` | Yes      | `POOL_SELL`, `SELL`, or `EXTERNAL_SELL` — must match the flow that created the transaction. |
| `transaction_id`   | Yes      | The transaction UUID (`id`) returned from the corresponding create call.                    |

### Request Headers

| **Header**     | **Description**                            |
| -------------- | ------------------------------------------ |
| `X-Api-Key`    | Your API key                               |
| `X-Signature`  | HMAC-SHA256 signature (auto-generated)     |
| `X-Timestamp`  | Unix timestamp in seconds (auto-generated) |
| `X-Request-Id` | Unique request identifier (auto-generated) |
| `X-User-Id`    | The user's UUID                            |

***

### Status values by transaction type

| Transaction Type    | Possible `status` values                                                                                                                                           |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `POOL_SELL`, `SELL` | `CREATED`, `PROCESSING`, `COMPLETED`, `FAILED`, `CANCELLED`, `APPROVAL_REQUIRED`, `SOURCE_INVALID`, `VERIFICATION_PENDING`, `REFUND_INITIATED`, `REFUND_COMPLETED` |
| `EXTERNAL_SELL`     | `CREATED`, `PAYMENT_INITIATED`, `FUNDS_RECEIVED`, `COMPLETED`, `FAILED`, `REFUND_INITIATED`, `REFUND_COMPLETED`, `REFUND_FAILED`                                   |

`PAYMENT_INITIATED` and `FUNDS_RECEIVED` reflect on-chain funding progress after calling Confirm External Sell On-chain Funding — see [Available Flows](/offramp/available-flows) for the full External Sell sequence, or the [INR Offramp Flow](/offramp/currencies/inr) walkthrough for the exact confirm call.

***

### Sample Request (Pool Sell)

```bash theme={null}
curl --location 'https://api.saber.money/api/v2/wallet/transaction?transaction_type=POOL_SELL&transaction_id=0195a3a6-62c2-766b-b984-7f9f1754b3f1' \
--header 'X-Api-Key: YOUR_API_KEY' \
--header 'X-Signature: GENERATED_SIGNATURE' \
--header 'X-Timestamp: 1732265171' \
--header 'X-Request-Id: unique-request-id' \
--header 'X-User-Id: USER_UUID_HERE'
```

### Sample Response

```json theme={null}
{
  "success": true,
  "data": {
    "transaction_type": "POOL_SELL",
    "status": "COMPLETED",
    "created_at": 1742207345000,
    "updated_at": 1742207346000,
    "id": "0195a3a6-62c2-766b-b984-7f9f1754b3f1",
    "crypto_symbol": "USDT",
    "fiat_symbol": "INR",
    "exchange_rate": 84.56973573047619,
    "crypto_amount": 21,
    "fiat_amount": 1775.96445034,
    "bank_transaction_id": "1234",
    "source_id": ""
  }
}
```

***

### Key Response Fields

| **Field**                       | **Description**                                                           | **Example Value**                      |
| ------------------------------- | ------------------------------------------------------------------------- | -------------------------------------- |
| `transaction_type`              | Echoes the queried type.                                                  | `POOL_SELL`                            |
| `status`                        | Current status — see the table above.                                     | `COMPLETED`                            |
| `exchange_rate`                 | The conversion rate used for the transaction.                             | `84.56973573047619`                    |
| `crypto_amount`                 | The amount of cryptocurrency sold.                                        | `21`                                   |
| `fiat_amount`                   | The amount of fiat currency delivered.                                    | `1775.96445034`                        |
| `fiat_symbol` / `crypto_symbol` | Currency/asset involved.                                                  | `INR` / `USDT`                         |
| `id`                            | Unique identifier for the transaction.                                    | `0195a3a6-62c2-766b-b984-7f9f1754b3f1` |
| `created_at` / `updated_at`     | Unix timestamp **in milliseconds**.                                       | `1742207345000`                        |
| `bank_transaction_id`           | Bank reference ID for the fiat transfer. Empty string until settled.      | `1234`                                 |
| `source_id`                     | Source instrument identifier. Empty string when not applicable.           | `""`                                   |
| `failure_code` / `failure_desc` | Present only if the transaction failed — omitted (key absent) on success. | `FIAT_PAYMENT_FAILED`                  |

***

## Use Cases

1. **Transaction Tracking** — Poll status until it reaches a terminal state, to confirm completion.
2. **User Notifications** — Reflect progress to end users based on status.
3. **Error Investigation** — Use `failure_code`/`failure_desc` to diagnose a failed transaction.

***

## Legacy (v1)

The original v1 endpoint remains available for existing integrations, but new integrations should use the v2 endpoint above.

**URL**: `https://api.saber.money/api/v1/wallet/conversion/fiat/transaction/{transaction_id}` **Method**: `GET`

| **Header**     | **Description**                                                 |
| -------------- | --------------------------------------------------------------- |
| `X-Timestamp`  | UNIX timestamp for the request.                                 |
| `X-Client-Id`  | Unique identifier for the merchant.                             |
| `X-Request-Id` | A unique identifier for the request (optional but recommended). |
| `X-Secret-Key` | API secret key for authenticating the request.                  |
| `X-User-Id`    | The unique ID of the user making the request.                   |

```bash theme={null}
curl --location 'https://api.saber.money/api/v1/wallet/conversion/fiat/transaction/a892dc4a-aecb-4a22-9de4-2990b4179b77' \
--header 'X-Timestamp: 1732265171' \
--header 'X-Client-Id: CLIENT_ID_HERE' \
--header 'X-Request-Id: CC' \
--header 'X-Secret-Key: SECRET_KEY_HERE' \
--header 'X-User-Id: USER_ID_HERE'
```


## Related topics

- [Fetching Transaction Status](/onramp/operations/fetch-status.md)
- [Frequently Asked Questions](/faq.md)
- [Fetching Quote](/onramp/operations/quote.md)
- [Overview](/offramp/overview.md)
