Quickstart
Welcome to the Saber Money Off-Ramp Integration Quickstart Guide. This guide will assist you in integrating Saber Money's fiat off-ramp solution into your application efficiently.
Overview
Through this guide, you will be able to sell crypto for fiat and have it deposited into a user's bank account.
Prerequisites
Before you can get started ensure:
- Register as a Saber merchant: In case you have not, get started by reaching out to our team.
- Setting up your keys: Keep your keys handy. Each API call requires an authentication signature. Create it using the guide Authentication: Configuring Your Keys
- Create a user: A user forms the base of operations. Create your user using the guide Guide
- Configure your webhooks: Saber sends a webhook for various important milestones in the flow. Set up your webhooks using the guide Webhook Configuration and IP
Implementation

Step 1: Deposit crypto into Saber
- Fetch a deposit address for a user using the fetch deposit API as shown below. (Alternatively, internal transfer can also be done)
curl --location 'https://mudrex.com/api/v1/wallet/user_deposit_address?symbol=BTC' \
--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}}'
{
"success": true,
"data": [
{
"network": "BNB",
"name": "Binance Chain (BEP2)",
"coin": "BTC",
"address": "bnb136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23",
"tag": "407410902",
"url": "https://explorer.binance.org/address/bnb136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23"
},
{
"network": "BSC",
"name": "Binance Smart Chain (BEP20)",
"coin": "BTC",
"address": "0xc37e9cbe6e1d481d9372585e1b91cb387853d352",
"tag": "",
"url": "https://bscscan.com/address/0xc37e9cbe6e1d481d9372585e1b91cb387853d352"
},
{
"network": "BTC",
"name": "Bitcoin",
"coin": "BTC",
"address": "1HTs5QzAfwfxjPBKWtKxTBNYkGmReMS36M",
"tag": "",
"url": "https://blockchair.com/bitcoin/address/1HTs5QzAfwfxjPBKWtKxTBNYkGmReMS36M"
},
{
"network": "ETH",
"name": "Ethereum (ERC20)",
"coin": "BTC",
"address": "0xc37e9cbe6e1d481d9372585e1b91cb387853d352",
"tag": "",
"url": "https://etherscan.io/address/0xc37e9cbe6e1d481d9372585e1b91cb387853d352"
},
{
"network": "SEGWITBTC",
"name": "BTC(SegWit)",
"coin": "BTC",
"address": "bc1q3mchv2exf8z2v577n8nlcmgduguw22ryxgyxlv",
"tag": "",
"url": "https://blockchain.coinmarketcap.com/zh/address/bitcoin/bc1q3mchv2exf8z2v577n8nlcmgduguw22ryxgyxlv"
}
]
}
Find more info on the API here
Step 2: Wait for a success callback
As soon as your crypto deposit hits our systems, we will send a webhook to your configured endpoint.
{
"transaction_type": "DEPOSIT",
"status": "COMPLETED",
"crypto_symbol": "USDT",
"network": "BSC",
"amount": "10.00000000",
"created_at": 1675171122000,
"tag": "",
"updated_at": 1675171203000,
"usd_value": "10.00",
"txn_hash": "Internal transfer xyz",
"id": "91994108-9eff-4999-8e8f-238df8bd4961",
"event": "deposit",
"address": "0x123xxxx",
"user_id": "user1234"
}
Once this webhook is received it will be visible on the transaction tab on the Saber dashboard.
Find more info about the webhook here
Step 3: Initiate a sell crypto transaction
- In this step, the user's KYC is checked for. If it is not complete, you will be required to complete it. Follow the guide here to complete a user's KYC
- A user must have a valid Indian bank account registered. If not, a bank account can be added for the user. Follow the guide here to add a bank account for a user.
- Use the sell API to initiate a sell transaction
Find more info on the API here
curl --location 'https://mudrex.com/api/v1/wallet/conversion/fiat/sell' \ --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}}' \ --data '{ "source_id": "65d246fc-6a5b-43d7-89bf-944e95ff2279", "fiat_symbol": "INR", "crypto_symbol": "USDT", "fiat_amount": 100, "crypto_amount": 1.14, "payment_method": "bank_transfer" }'
{ "success": true, "data": { "status": "CREATED", "fiat_amount": 100, "transaction_type": "SELL", "fiat_symbol": "INR", "failure_code": null, "exchange_rate": 82.56976, "id": "a892dc4a-aecb-4a22-9de4-2990b4179b77", "crypto_symbol": "USDT", "created_at": "2022-10-03 07:51:15", "bank_transaction_id": null, "source_id": "65d246fc-6a5b-43d7-89bf-944e95ff2279", "failure_desc": null, "crypto_amount": 1.14 } }
Step 4: Wait for a success callback
As soon as the fiat deposit is complete, we will send a webhook to your configured endpoint.
{
"event" : "SELL",
"user_id": "77c4562e-ce47-4054-9d4e-4df69ca11a11",
"client_id": "3a309275-5936-4c79-8375-0ebb897502f0",
"transaction_status": "COMPLETED",
"invested_at": "2022-11-16T09:30:13",
"transaction_id": "4f4d9561-b12f-4cdd-9726-d29333892fc9",
"transfer_type": "bank_transfer",
"bank_reference_id": "1176073620125",
"usd_amount": "1.21000000",
"fiat_amount": "100.00000000"
}
Once this webhook is received it will be visible on the transaction tab on the Saber dashboard.
Congratulations! ๐ฅณ You have completed the integration with Saber.
For more APIs relative to offramp, please read the API reference guide here
Updated 12 days ago