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

# Initiating Transaction

> Initiates a fiat-to-crypto buy via /wallet/crypto/buy, sending crypto to an external wallet, with quote_id price-lock, parameters, and response fields.

Initiate a buy transaction converting fiat to cryptocurrency, withdrawn to an external wallet specified by the user/merchant.

### Endpoint

`https://api.saber.money/api/v1/wallet/crypto/buy/`

***

### Sample Request

**Sample request:**

```bash theme={null}
curl --location 'https://api.saber.money/api/v1/wallet/crypto/buy/' \
  --header 'X-Timestamp: {{timestamp}}' \
  --header 'X-Client-Id: •••••••' \
  --header 'X-Request-Id: qsfe' \
  --header 'X-User-Id: •••••••' \
  --header 'X-Secret-Key: •••••••' \
  --data '{
    "from_currency": "INR",
    "to_currency": "USDT",
    "to_amount": 10,
    "source_id": "c41f7d27-781c-41da-b74c-278fe7202af5",
    "payment_method": "bank_transfer",
    "crypto_wallet_address": "0xb84b44140b9c9d2a32707ba35332969c65bc918d",
    "network": "BSC"
  }'
```

**Sample response:**

```json theme={null}
{
  "success": true,
  "data": {
    "fiat_symbol": "INR",
    "crypto_amount": 10,
    "source_id": "c41f7d27-781c-41da-b74c-278fe7202af5",
    "id": "74cbe2f9-4e2a-4bd2-92d2-1a139e7cdcf9",
    "uuid": "74cbe2f9-4e2a-4bd2-92d2-1a139e7cdcf9",
    "crypto_symbol": "USDT",
    "crypto_wallet_address": "0xb84b44140b9c9d2a32707ba35332969c65bc918d",
    "network": "BSC",
    "created_at": 1684394172000,
    "bank_transaction_id": "",
    "fiat_amount": 976.11,
    "status": "INCOMING_PAYMENT_INITIATED",
    "payment_method": "bank_transfer",
    "exchange_rate": 97.61,
    "tag": ""
  }
}
```

### Required Parameters

| Parameter                    | Type     | Description                                                                                                                         |
| ---------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| `from_currency`              | `string` | The fiat currency symbol. Supported values: `INR`, `EUR`, `GBP`. Required unless `quote_id` is supplied.                            |
| `to_currency`                | `string` | The cryptocurrency symbol. Currently supported: `USDT` (other tokens supported on request). Required unless `quote_id` is supplied. |
| `crypto_wallet_address`      | `string` | The destination crypto wallet address where the purchased crypto will be sent.                                                      |
| `from_amount` or `to_amount` | `number` | Specify either the amount of fiat to convert (`from_amount`) or the desired crypto amount (`to_amount`).                            |
| `network`                    | `string` | The blockchain network. Example: `BSC` (Binance Smart Chain). Required unless `quote_id` is supplied.                               |

### Optional Parameters

| Parameter             | Type            | Description                                                                                                                                                                                                                                                                                                                                          |
| --------------------- | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `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"                                                                                                                                                                                                                         |
| `payment_method`      | `string`        | The payment method to be used. Example: `bank_transfer`. Required unless a `quote_id` (price-lock flow) is provided; if `quote_id` is omitted, an empty or missing `payment_method` returns a 400 "missing or invalid parameters" error.                                                                                                             |
| `uuid`                | `string`        | Merchant's custom transaction ID (must be a valid UUID). If provided, this value is used as the transaction's identifier; otherwise a UUID is auto-generated.                                                                                                                                                                                        |
| `tag`                 | `string`        | Additional metadata or tags to associate with the transaction for tracking or categorization.                                                                                                                                                                                                                                                        |
| `quote_id`            | `string` (UUID) | Optional. ID of a previously locked price quote. When provided, the request uses the price-lock flow: `from_currency`, `to_currency`, `payment_method`, and `network` become optional (they are taken from the locked quote) and are not validated at request time. `crypto_wallet_address` and one of `from_amount`/`to_amount` are still required. |

### 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`         | `number`  | The amount of cryptocurrency purchased.                                                                                                                                                                                                                                                                                                                                                                                            |
| `source_id`             | `string`  | Echoes the `source_id` from the request, if provided.                                                                                                                                                                                                                                                                                                                                                                              |
| `id`                    | `string`  | The unique identifier for the transaction generated by the system.                                                                                                                                                                                                                                                                                                                                                                 |
| `uuid`                  | `string`  | Duplicate of `id`, returned for backward compatibility. Always equals the `id` value.                                                                                                                                                                                                                                                                                                                                              |
| `crypto_symbol`         | `string`  | The symbol of the cryptocurrency purchased (e.g., `USDT`).                                                                                                                                                                                                                                                                                                                                                                         |
| `crypto_wallet_address` | `string`  | The wallet address where the purchased cryptocurrency will be sent.                                                                                                                                                                                                                                                                                                                                                                |
| `network`               | `string`  | The blockchain network used for the transaction (e.g., `BSC`).                                                                                                                                                                                                                                                                                                                                                                     |
| `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.                                                                                                                                                                                                                                                                                                                                              |
| `bank_transaction_id`   | `string`  | The identifier for the bank transaction, if applicable.                                                                                                                                                                                                                                                                                                                                                                            |
| `fiat_amount`           | `number`  | The amount of fiat currency used in the transaction.                                                                                                                                                                                                                                                                                                                                                                               |
| `status`                | `string`  | The current state of the transaction. A newly created order returns `INCOMING_PAYMENT_INITIATED` (transitioning to `INCOMING_PAYMENT_PROCESSING`). Possible values include `INCOMING_PAYMENT_INITIATED`, `INCOMING_PAYMENT_PROCESSING`, `INTERNAL_CONVERSION_COMPLETED`, `OUTGOING_PAYMENT_INITIATED`, `OUTGOING_PAYMENT_PROCESSING`, `COMPLETED` (terminal success), and `FAILED` / `OUTGOING_PAYMENT_FAILED` (terminal failure). |
| `payment_method`        | `string`  | The payment method used for the transaction (e.g., `bank_transfer`).                                                                                                                                                                                                                                                                                                                                                               |
| `failure_code`          | `string`  | A code indicating the reason for failure, if applicable.                                                                                                                                                                                                                                                                                                                                                                           |
| `exchange_rate`         | `number`  | The exchange rate applied for the transaction.                                                                                                                                                                                                                                                                                                                                                                                     |
| `tag`                   | `string`  | Any metadata or tags associated with the transaction, as provided in the request.                                                                                                                                                                                                                                                                                                                                                  |
| `payment_intent`        | `string`  | Payment intent link, returned only for payment flows that require it (omitted when empty).                                                                                                                                                                                                                                                                                                                                         |
| `eta`                   | `number`  | Estimated time (in seconds) for the transaction, returned only when applicable (omitted when empty).                                                                                                                                                                                                                                                                                                                               |
| `redirect_url`          | `string`  | Redirect URL the user must be sent to in order to complete payment, returned only for redirect-based flows (omitted when empty).                                                                                                                                                                                                                                                                                                   |
| `links`                 | `object`  | Map of related action links (e.g. for hosted payment flows), returned only when applicable (omitted when empty).                                                                                                                                                                                                                                                                                                                   |

## Key Notes

* Pass a custom transaction ID via `uuid` (must be a valid UUID) for tracking on your own systems.
* Supported fiat: INR, EUR, GBP. Supported crypto: USDT (others available on request).

**API Reference:** [Create Buy Transaction](https://saber-money.readme.io/reference/createbuytransaction)


## Related topics

- [Initiating Transaction](/offramp/operations/initiate-transaction.md)
- [Understanding the Platform](/getting-started/platform-intro.md)
- [Overview](/offramp/overview.md)
- [Traditional Rails](/offramp/currencies/inr-traditional.md)
