curl --request POST \
--url https://sandbox.zapyd.com/pos/api/v1/prefunded/payout/quotation \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--header 'X-SIGNATURE: <api-key>' \
--header 'X-TIMESTAMP: <api-key>' \
--data '
{
"asset": "usdt",
"fiat": "inr",
"customer_id": "def8b740-99f9-4cba-bc9e-99de57e927b4",
"bank_id": "4e6f1b20-a73c-11ec-b909-0242ac120002",
"risk_parameters": {
"ip_address": "127.0.0.1",
"device_id": "<string>",
"suspicious_activity_report": false,
"law_enforcement_agency_report": false
},
"payment_method": "IMPS",
"sending_amount": "51",
"receiving_amount": "5100"
}
'import requests
url = "https://sandbox.zapyd.com/pos/api/v1/prefunded/payout/quotation"
payload = {
"asset": "usdt",
"fiat": "inr",
"customer_id": "def8b740-99f9-4cba-bc9e-99de57e927b4",
"bank_id": "4e6f1b20-a73c-11ec-b909-0242ac120002",
"risk_parameters": {
"ip_address": "127.0.0.1",
"device_id": "<string>",
"suspicious_activity_report": False,
"law_enforcement_agency_report": False
},
"payment_method": "IMPS",
"sending_amount": "51",
"receiving_amount": "5100"
}
headers = {
"X-API-KEY": "<api-key>",
"X-TIMESTAMP": "<api-key>",
"X-SIGNATURE": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-API-KEY': '<api-key>',
'X-TIMESTAMP': '<api-key>',
'X-SIGNATURE': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
asset: 'usdt',
fiat: 'inr',
customer_id: 'def8b740-99f9-4cba-bc9e-99de57e927b4',
bank_id: '4e6f1b20-a73c-11ec-b909-0242ac120002',
risk_parameters: {
ip_address: '127.0.0.1',
device_id: '<string>',
suspicious_activity_report: false,
law_enforcement_agency_report: false
},
payment_method: 'IMPS',
sending_amount: '51',
receiving_amount: '5100'
})
};
fetch('https://sandbox.zapyd.com/pos/api/v1/prefunded/payout/quotation', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.zapyd.com/pos/api/v1/prefunded/payout/quotation",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'asset' => 'usdt',
'fiat' => 'inr',
'customer_id' => 'def8b740-99f9-4cba-bc9e-99de57e927b4',
'bank_id' => '4e6f1b20-a73c-11ec-b909-0242ac120002',
'risk_parameters' => [
'ip_address' => '127.0.0.1',
'device_id' => '<string>',
'suspicious_activity_report' => false,
'law_enforcement_agency_report' => false
],
'payment_method' => 'IMPS',
'sending_amount' => '51',
'receiving_amount' => '5100'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>",
"X-SIGNATURE: <api-key>",
"X-TIMESTAMP: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.zapyd.com/pos/api/v1/prefunded/payout/quotation"
payload := strings.NewReader("{\n \"asset\": \"usdt\",\n \"fiat\": \"inr\",\n \"customer_id\": \"def8b740-99f9-4cba-bc9e-99de57e927b4\",\n \"bank_id\": \"4e6f1b20-a73c-11ec-b909-0242ac120002\",\n \"risk_parameters\": {\n \"ip_address\": \"127.0.0.1\",\n \"device_id\": \"<string>\",\n \"suspicious_activity_report\": false,\n \"law_enforcement_agency_report\": false\n },\n \"payment_method\": \"IMPS\",\n \"sending_amount\": \"51\",\n \"receiving_amount\": \"5100\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("X-TIMESTAMP", "<api-key>")
req.Header.Add("X-SIGNATURE", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.zapyd.com/pos/api/v1/prefunded/payout/quotation")
.header("X-API-KEY", "<api-key>")
.header("X-TIMESTAMP", "<api-key>")
.header("X-SIGNATURE", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"asset\": \"usdt\",\n \"fiat\": \"inr\",\n \"customer_id\": \"def8b740-99f9-4cba-bc9e-99de57e927b4\",\n \"bank_id\": \"4e6f1b20-a73c-11ec-b909-0242ac120002\",\n \"risk_parameters\": {\n \"ip_address\": \"127.0.0.1\",\n \"device_id\": \"<string>\",\n \"suspicious_activity_report\": false,\n \"law_enforcement_agency_report\": false\n },\n \"payment_method\": \"IMPS\",\n \"sending_amount\": \"51\",\n \"receiving_amount\": \"5100\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.zapyd.com/pos/api/v1/prefunded/payout/quotation")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["X-TIMESTAMP"] = '<api-key>'
request["X-SIGNATURE"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"asset\": \"usdt\",\n \"fiat\": \"inr\",\n \"customer_id\": \"def8b740-99f9-4cba-bc9e-99de57e927b4\",\n \"bank_id\": \"4e6f1b20-a73c-11ec-b909-0242ac120002\",\n \"risk_parameters\": {\n \"ip_address\": \"127.0.0.1\",\n \"device_id\": \"<string>\",\n \"suspicious_activity_report\": false,\n \"law_enforcement_agency_report\": false\n },\n \"payment_method\": \"IMPS\",\n \"sending_amount\": \"51\",\n \"receiving_amount\": \"5100\"\n}"
response = http.request(request)
puts response.read_body{
"status": true,
"message": "Success",
"data": {
"id": "59bf60c3-e9af-40a7-9d5c-2a1aa191e769",
"customer_id": "84737c7d-7b62-4204-80d6-80f6ecb3ceb4",
"bank_id": "cab47575-bbcb-4294-81a3-30774104f3b6",
"asset": "USDT",
"fiat": "INR",
"network": "tron",
"sending_amount": "60.00",
"rate": "85.00",
"receiving_amount": "5100.00",
"fees": {
"zapyd_fee": "0.00",
"client_fee": "0.00",
"client_gst": "0.00",
"tds": "0"
},
"wallet_address": "TXqH4MnDw46f3yyrRwau3JF92Y1ie3pAXf",
"created_at": "2026-09-30T10:00:00Z",
"expiry_time": "2026-09-30T10:10:00Z"
}
}{
"status": false,
"message": "Bad Request",
"data": null,
"err_code": "REQ_FIELD_MISSING",
"errors": {
"amount": [
"receiving_amount is required"
]
}
}{
"status": false,
"message": "Internal Server Error",
"data": null,
"err_code": "SYS_INTERNAL_ERROR",
"errors": "Unexpected error occurred. Please try again later."
}{
"status": false,
"message": "Service unavailable",
"data": null,
"err_code": "SYS_SERVICE_UNAVAILABLE",
"errors": "Unexpected error occurred. Please try again later."
}Create Quotation
Creates a payout quotation funded from your prefunded balance.
curl --request POST \
--url https://sandbox.zapyd.com/pos/api/v1/prefunded/payout/quotation \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--header 'X-SIGNATURE: <api-key>' \
--header 'X-TIMESTAMP: <api-key>' \
--data '
{
"asset": "usdt",
"fiat": "inr",
"customer_id": "def8b740-99f9-4cba-bc9e-99de57e927b4",
"bank_id": "4e6f1b20-a73c-11ec-b909-0242ac120002",
"risk_parameters": {
"ip_address": "127.0.0.1",
"device_id": "<string>",
"suspicious_activity_report": false,
"law_enforcement_agency_report": false
},
"payment_method": "IMPS",
"sending_amount": "51",
"receiving_amount": "5100"
}
'import requests
url = "https://sandbox.zapyd.com/pos/api/v1/prefunded/payout/quotation"
payload = {
"asset": "usdt",
"fiat": "inr",
"customer_id": "def8b740-99f9-4cba-bc9e-99de57e927b4",
"bank_id": "4e6f1b20-a73c-11ec-b909-0242ac120002",
"risk_parameters": {
"ip_address": "127.0.0.1",
"device_id": "<string>",
"suspicious_activity_report": False,
"law_enforcement_agency_report": False
},
"payment_method": "IMPS",
"sending_amount": "51",
"receiving_amount": "5100"
}
headers = {
"X-API-KEY": "<api-key>",
"X-TIMESTAMP": "<api-key>",
"X-SIGNATURE": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-API-KEY': '<api-key>',
'X-TIMESTAMP': '<api-key>',
'X-SIGNATURE': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
asset: 'usdt',
fiat: 'inr',
customer_id: 'def8b740-99f9-4cba-bc9e-99de57e927b4',
bank_id: '4e6f1b20-a73c-11ec-b909-0242ac120002',
risk_parameters: {
ip_address: '127.0.0.1',
device_id: '<string>',
suspicious_activity_report: false,
law_enforcement_agency_report: false
},
payment_method: 'IMPS',
sending_amount: '51',
receiving_amount: '5100'
})
};
fetch('https://sandbox.zapyd.com/pos/api/v1/prefunded/payout/quotation', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.zapyd.com/pos/api/v1/prefunded/payout/quotation",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'asset' => 'usdt',
'fiat' => 'inr',
'customer_id' => 'def8b740-99f9-4cba-bc9e-99de57e927b4',
'bank_id' => '4e6f1b20-a73c-11ec-b909-0242ac120002',
'risk_parameters' => [
'ip_address' => '127.0.0.1',
'device_id' => '<string>',
'suspicious_activity_report' => false,
'law_enforcement_agency_report' => false
],
'payment_method' => 'IMPS',
'sending_amount' => '51',
'receiving_amount' => '5100'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>",
"X-SIGNATURE: <api-key>",
"X-TIMESTAMP: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.zapyd.com/pos/api/v1/prefunded/payout/quotation"
payload := strings.NewReader("{\n \"asset\": \"usdt\",\n \"fiat\": \"inr\",\n \"customer_id\": \"def8b740-99f9-4cba-bc9e-99de57e927b4\",\n \"bank_id\": \"4e6f1b20-a73c-11ec-b909-0242ac120002\",\n \"risk_parameters\": {\n \"ip_address\": \"127.0.0.1\",\n \"device_id\": \"<string>\",\n \"suspicious_activity_report\": false,\n \"law_enforcement_agency_report\": false\n },\n \"payment_method\": \"IMPS\",\n \"sending_amount\": \"51\",\n \"receiving_amount\": \"5100\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("X-TIMESTAMP", "<api-key>")
req.Header.Add("X-SIGNATURE", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.zapyd.com/pos/api/v1/prefunded/payout/quotation")
.header("X-API-KEY", "<api-key>")
.header("X-TIMESTAMP", "<api-key>")
.header("X-SIGNATURE", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"asset\": \"usdt\",\n \"fiat\": \"inr\",\n \"customer_id\": \"def8b740-99f9-4cba-bc9e-99de57e927b4\",\n \"bank_id\": \"4e6f1b20-a73c-11ec-b909-0242ac120002\",\n \"risk_parameters\": {\n \"ip_address\": \"127.0.0.1\",\n \"device_id\": \"<string>\",\n \"suspicious_activity_report\": false,\n \"law_enforcement_agency_report\": false\n },\n \"payment_method\": \"IMPS\",\n \"sending_amount\": \"51\",\n \"receiving_amount\": \"5100\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.zapyd.com/pos/api/v1/prefunded/payout/quotation")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["X-TIMESTAMP"] = '<api-key>'
request["X-SIGNATURE"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"asset\": \"usdt\",\n \"fiat\": \"inr\",\n \"customer_id\": \"def8b740-99f9-4cba-bc9e-99de57e927b4\",\n \"bank_id\": \"4e6f1b20-a73c-11ec-b909-0242ac120002\",\n \"risk_parameters\": {\n \"ip_address\": \"127.0.0.1\",\n \"device_id\": \"<string>\",\n \"suspicious_activity_report\": false,\n \"law_enforcement_agency_report\": false\n },\n \"payment_method\": \"IMPS\",\n \"sending_amount\": \"51\",\n \"receiving_amount\": \"5100\"\n}"
response = http.request(request)
puts response.read_body{
"status": true,
"message": "Success",
"data": {
"id": "59bf60c3-e9af-40a7-9d5c-2a1aa191e769",
"customer_id": "84737c7d-7b62-4204-80d6-80f6ecb3ceb4",
"bank_id": "cab47575-bbcb-4294-81a3-30774104f3b6",
"asset": "USDT",
"fiat": "INR",
"network": "tron",
"sending_amount": "60.00",
"rate": "85.00",
"receiving_amount": "5100.00",
"fees": {
"zapyd_fee": "0.00",
"client_fee": "0.00",
"client_gst": "0.00",
"tds": "0"
},
"wallet_address": "TXqH4MnDw46f3yyrRwau3JF92Y1ie3pAXf",
"created_at": "2026-09-30T10:00:00Z",
"expiry_time": "2026-09-30T10:10:00Z"
}
}{
"status": false,
"message": "Bad Request",
"data": null,
"err_code": "REQ_FIELD_MISSING",
"errors": {
"amount": [
"receiving_amount is required"
]
}
}{
"status": false,
"message": "Internal Server Error",
"data": null,
"err_code": "SYS_INTERNAL_ERROR",
"errors": "Unexpected error occurred. Please try again later."
}{
"status": false,
"message": "Service unavailable",
"data": null,
"err_code": "SYS_SERVICE_UNAVAILABLE",
"errors": "Unexpected error occurred. Please try again later."
}Create Quotation
Authorizations
API Key for authentication
Current timestamp in seconds since epoch
HMAC SHA256 signature of the request encoded in Base64
Body
The cryptocurrency asset code
"usdt"
The fiat currency code
"inr"
Customer's unique identifier
"def8b740-99f9-4cba-bc9e-99de57e927b4"
Customer's Bank's unique identifier that receives the payout
"4e6f1b20-a73c-11ec-b909-0242ac120002"
Required. Send every key listed in required_risk_parameters for the fiat in Fetch Configuration. Send {} if that list is empty.
Hide child attributes
Hide child attributes
End user's IP address (IPv4 or IPv6).
"127.0.0.1"
End user's device identifier.
true if you have filed a suspicious activity report on this user.
false
true if a law enforcement agency has reported this user.
false
Payout payment method, valid for the fiat (see Fetch Configuration).
"IMPS"
Crypto amount to send. Send exactly one of sending_amount or receiving_amount.
"51"
Fiat amount the beneficiary should receive. Send exactly one of sending_amount or receiving_amount.
"5100"
Response
Quotation created successfully
true
"Success"
Hide child attributes
Hide child attributes
Quotation ID
"59bf60c3-e9af-40a7-9d5c-2a1aa191e769"
Customer ID
"84737c7d-7b62-4204-80d6-80f6ecb3ceb4"
Bank account ID
"cab47575-bbcb-4294-81a3-30774104f3b6"
Crypto asset
"USDT"
Fiat currency
"INR"
Network
"tron"
Crypto amount to send
"60.00"
Fee-inclusive rate
"85.00"
Fiat amount the beneficiary receives
"5100.00"
Fee breakdown
{ "zapyd_fee": "0.00", "client_fee": "0.00", "client_gst": "0.00", "tds": "0" }
Deposit address: send the crypto here
"TXqH4MnDw46f3yyrRwau3JF92Y1ie3pAXf"
"2026-09-30T10:00:00Z"
Quotation expiry
"2026-09-30T10:10:00Z"