Endpoint
https://api.saber.money/api/v1/wallet/crypto/buy/
Sample Request
Sample request: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"
}'
{
"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).