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

# Initiate Transaction (Pool Wallet)

> Initiate a fiat-to-crypto buy at /v2/wallet/transaction/pool/buy, depositing crypto to the merchant pool wallet, with quote_id price-lock support.

Initiate a buy transaction converting fiat to cryptocurrency, deposited into the merchant's pool wallet.

### Endpoint

`https://api.saber.money/api/v2/wallet/transaction/pool/buy`

***

### Sample Request

**Sample request:**

```bash theme={null}
curl --location '{{BASE_URL}}/api/v2/wallet/transaction/pool/buy' \
  --header 'X-Timestamp: {{timestamp}}' \
  --header 'X-Client-Id: {{CLIENT_ID}}' \
  --header 'X-Request-Id: {{request_id}}' \
  --header 'X-User-Id: {{user_id}}' \
  --header 'X-Secret-Key: {{SECRET_KEY}}' \
  --header 'Content-Type: application/json' \
  --data '{
    "from_currency": "EUR",
    "to_currency": "USDT",
    "from_amount": 12,
    "payment_method": "open_banking"
  }'
```

**Sample response:**

```json theme={null}
{
  "success": true,
  "data": {
    "id": "01963e1c-77a0-7acc-b5d3-44e5e67dac8f",
    "transaction_type": "POOL_BUY",
    "status": "PROCESSING",
    "fiat_amount": "12",
    "crypto_amount": "12.670109",
    "fiat_symbol": "EUR",
    "crypto_symbol": "USDT",
    "exchange_rate": "0.9471110311679244",
    "failure_code": "",
    "failure_desc": "",
    "created_at": 1744798775000,
    "redirect_url": "https://checkout.sand.getivy.de/?session=67ff843b1a71cb27e7c7f0d6&ivyAuthCode=01JRZ1S1W5GP0B2GPQHY9GJV59"
  }
}
```

### Required Parameters

| Parameter        | Type     | Description                                                                                                                                |
| ---------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `from_currency`  | `string` | The fiat currency symbol. Supported values: `INR`, `EUR`, `GBP`. Required only when `quote_id` is not supplied.                            |
| `to_currency`    | `string` | The cryptocurrency symbol. Currently supported: `USDT` (other tokens supported on request). Required only when `quote_id` is not supplied. |
| `from_amount`    | `number` | Amount of fiat to convert. Provide exactly one of `from_amount` or `to_amount` (providing both, or neither, is rejected).                  |
| `payment_method` | `string` | The payment method to be used. Example: `bank_transfer`. Required only when `quote_id` is not supplied.                                    |

### Optional Parameters

| Parameter             | Type     | Description                                                                                                                                                                                            |
| --------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `to_amount`           | `number` | Desired crypto amount to receive. Provide exactly one of `from_amount` or `to_amount` (providing both, or neither, is rejected).                                                                       |
| `quote_id`            | `string` | UUID of a locked price quote (price-lock flow). When provided, `from_currency`, `to_currency`, `payment_method` and the amount are taken from the locked quote and become optional.                    |
| `source_id`           | `string` | IBAN of sender in case of "sepa\_transfer" payment method                                                                                                                                              |
| `bank_transaction_id` | `string` | UTR of transaction in case of "upi\_transfer" and "bank\_transfer"; "IBAN\_Transaction-Reference" in case of "sepa\_transfer"                                                                          |
| `uuid`                | `string` | Merchant's custom transaction ID. Must be a valid UUID string. If provided, it is used as the transaction identifier and returned as `id` in the response (an invalid UUID is rejected with an error). |

### Response Details

| Item             | Type      | Description                                                                                  |
| ---------------- | --------- | -------------------------------------------------------------------------------------------- |
| `success`        | `boolean` | Indicates whether the API call was successful or not.                                        |
| `fiat_symbol`    | `string`  | The symbol of the fiat currency used in the transaction (e.g., `INR`, `EUR`, `GBP`).         |
| `crypto_amount`  | `string`  | The amount of cryptocurrency purchased (decimal string, e.g. `"12.670109"`).                 |
| `redirect_url`   | `string`  | applicable for openbanking (URL for payment)                                                 |
| `id`             | `string`  | The unique identifier for the transaction generated by the system.                           |
| `crypto_symbol`  | `string`  | The symbol of the cryptocurrency purchased (e.g., `USDT`).                                   |
| `failure_desc`   | `string`  | A description of the failure if the transaction was unsuccessful.                            |
| `created_at`     | `number`  | The timestamp when the transaction was created, in milliseconds since the Unix epoch.        |
| `fiat_amount`    | `string`  | The amount of fiat currency used in the transaction (decimal string, e.g. `"12"`).           |
| `status`         | `string`  | The status of the transaction (e.g., `PROCESSING`, `COMPLETED`, `FAILED`).                   |
| `failure_code`   | `string`  | A code indicating the reason for failure, if applicable.                                     |
| `exchange_rate`  | `string`  | The exchange rate applied for the transaction (decimal string, e.g. `"0.9471110311679244"`). |
| `payment_intent` | `string`  | Payment intent link returned for the transaction, when applicable.                           |
| `eta`            | `number`  | Estimated time (in ms) associated with the transaction, when applicable.                     |

## Key Notes

* Pass a custom transaction ID via `uuid` for tracking on your own systems.
* Supported fiat: INR, EUR, GBP. Supported crypto: USDT (others available on request).
* Requires a configured [pool account](/client/pool-account/overview).

**API Reference:** [Pool Buy Transaction](https://saber-money.readme.io/reference/post_api-v2-wallet-transaction-pool-buy)


## Related topics

- [Initiating Transaction](/offramp/operations/initiate-transaction.md)
- [Available Flows](/offramp/available-flows.md)
- [Quick Start Guide](/docs/quick-start-guide.md)
- [Crypto Internal Transfer](/docs/internal-transfer.md)
