curl --request POST \
--url https://openplatform.gateapi.io/withdraw/open/institution/otc/api/order/list \
--header 'Content-Type: application/json' \
--header 'X-GatePay-Certificate-ClientId: <x-gatepay-certificate-clientid>' \
--header 'X-GatePay-Nonce: <x-gatepay-nonce>' \
--header 'X-GatePay-On-Behalf-Of: <x-gatepay-on-behalf-of>' \
--header 'X-GatePay-Signature: <x-gatepay-signature>' \
--header 'X-GatePay-Timestamp: <x-gatepay-timestamp>' \
--data '
{
"status": "<string>",
"type": "<string>",
"cryptoCurrency": "<string>",
"fiatCurrency": "<string>",
"startTime": "<string>",
"endTime": "<string>",
"page": 123,
"pageSize": 123,
"clientOrderId": "<string>"
}
'import requests
url = "https://openplatform.gateapi.io/withdraw/open/institution/otc/api/order/list"
payload = {
"status": "<string>",
"type": "<string>",
"cryptoCurrency": "<string>",
"fiatCurrency": "<string>",
"startTime": "<string>",
"endTime": "<string>",
"page": 123,
"pageSize": 123,
"clientOrderId": "<string>"
}
headers = {
"X-GatePay-Certificate-ClientId": "<x-gatepay-certificate-clientid>",
"X-GatePay-Signature": "<x-gatepay-signature>",
"X-GatePay-Timestamp": "<x-gatepay-timestamp>",
"X-GatePay-Nonce": "<x-gatepay-nonce>",
"X-GatePay-On-Behalf-Of": "<x-gatepay-on-behalf-of>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-GatePay-Certificate-ClientId': '<x-gatepay-certificate-clientid>',
'X-GatePay-Signature': '<x-gatepay-signature>',
'X-GatePay-Timestamp': '<x-gatepay-timestamp>',
'X-GatePay-Nonce': '<x-gatepay-nonce>',
'X-GatePay-On-Behalf-Of': '<x-gatepay-on-behalf-of>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
status: '<string>',
type: '<string>',
cryptoCurrency: '<string>',
fiatCurrency: '<string>',
startTime: '<string>',
endTime: '<string>',
page: 123,
pageSize: 123,
clientOrderId: '<string>'
})
};
fetch('https://openplatform.gateapi.io/withdraw/open/institution/otc/api/order/list', 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://openplatform.gateapi.io/withdraw/open/institution/otc/api/order/list",
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([
'status' => '<string>',
'type' => '<string>',
'cryptoCurrency' => '<string>',
'fiatCurrency' => '<string>',
'startTime' => '<string>',
'endTime' => '<string>',
'page' => 123,
'pageSize' => 123,
'clientOrderId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-GatePay-Certificate-ClientId: <x-gatepay-certificate-clientid>",
"X-GatePay-Nonce: <x-gatepay-nonce>",
"X-GatePay-On-Behalf-Of: <x-gatepay-on-behalf-of>",
"X-GatePay-Signature: <x-gatepay-signature>",
"X-GatePay-Timestamp: <x-gatepay-timestamp>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.post("https://openplatform.gateapi.io/withdraw/open/institution/otc/api/order/list")
.header("X-GatePay-Certificate-ClientId", "<x-gatepay-certificate-clientid>")
.header("X-GatePay-Signature", "<x-gatepay-signature>")
.header("X-GatePay-Timestamp", "<x-gatepay-timestamp>")
.header("X-GatePay-Nonce", "<x-gatepay-nonce>")
.header("X-GatePay-On-Behalf-Of", "<x-gatepay-on-behalf-of>")
.header("Content-Type", "application/json")
.body("{\n \"status\": \"<string>\",\n \"type\": \"<string>\",\n \"cryptoCurrency\": \"<string>\",\n \"fiatCurrency\": \"<string>\",\n \"startTime\": \"<string>\",\n \"endTime\": \"<string>\",\n \"page\": 123,\n \"pageSize\": 123,\n \"clientOrderId\": \"<string>\"\n}")
.asString();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://openplatform.gateapi.io/withdraw/open/institution/otc/api/order/list"
payload := strings.NewReader("{\n \"status\": \"<string>\",\n \"type\": \"<string>\",\n \"cryptoCurrency\": \"<string>\",\n \"fiatCurrency\": \"<string>\",\n \"startTime\": \"<string>\",\n \"endTime\": \"<string>\",\n \"page\": 123,\n \"pageSize\": 123,\n \"clientOrderId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-GatePay-Certificate-ClientId", "<x-gatepay-certificate-clientid>")
req.Header.Add("X-GatePay-Signature", "<x-gatepay-signature>")
req.Header.Add("X-GatePay-Timestamp", "<x-gatepay-timestamp>")
req.Header.Add("X-GatePay-Nonce", "<x-gatepay-nonce>")
req.Header.Add("X-GatePay-On-Behalf-Of", "<x-gatepay-on-behalf-of>")
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))
}require 'uri'
require 'net/http'
url = URI("https://openplatform.gateapi.io/withdraw/open/institution/otc/api/order/list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-GatePay-Certificate-ClientId"] = '<x-gatepay-certificate-clientid>'
request["X-GatePay-Signature"] = '<x-gatepay-signature>'
request["X-GatePay-Timestamp"] = '<x-gatepay-timestamp>'
request["X-GatePay-Nonce"] = '<x-gatepay-nonce>'
request["X-GatePay-On-Behalf-Of"] = '<x-gatepay-on-behalf-of>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"status\": \"<string>\",\n \"type\": \"<string>\",\n \"cryptoCurrency\": \"<string>\",\n \"fiatCurrency\": \"<string>\",\n \"startTime\": \"<string>\",\n \"endTime\": \"<string>\",\n \"page\": 123,\n \"pageSize\": 123,\n \"clientOrderId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"code": "<string>",
"status": "<string>",
"errorMessage": "<string>",
"data": {
"page": 123,
"pageSize": 123,
"total": 123,
"data": [
{
"orderId": "<string>",
"status": "<string>",
"cryptoCurrency": "<string>",
"fiatCurrency": "<string>",
"cryptoAmount": "<string>",
"fiatAmount": "<string>",
"fiatRate": "<string>",
"bankAccountId": "<string>",
"clientOrderId": "<string>",
"type": "<string>",
"createTime": 123,
"updateTime": 123,
"errMsg": "<string>",
"tradeFee": "<string>",
"finalFiatAmount": "<string>",
"bankSlipInfo": "<string>",
"promCode": "<string>"
}
]
}
}Withdrawal List
Query OTC withdrawal orders in batch.
curl --request POST \
--url https://openplatform.gateapi.io/withdraw/open/institution/otc/api/order/list \
--header 'Content-Type: application/json' \
--header 'X-GatePay-Certificate-ClientId: <x-gatepay-certificate-clientid>' \
--header 'X-GatePay-Nonce: <x-gatepay-nonce>' \
--header 'X-GatePay-On-Behalf-Of: <x-gatepay-on-behalf-of>' \
--header 'X-GatePay-Signature: <x-gatepay-signature>' \
--header 'X-GatePay-Timestamp: <x-gatepay-timestamp>' \
--data '
{
"status": "<string>",
"type": "<string>",
"cryptoCurrency": "<string>",
"fiatCurrency": "<string>",
"startTime": "<string>",
"endTime": "<string>",
"page": 123,
"pageSize": 123,
"clientOrderId": "<string>"
}
'import requests
url = "https://openplatform.gateapi.io/withdraw/open/institution/otc/api/order/list"
payload = {
"status": "<string>",
"type": "<string>",
"cryptoCurrency": "<string>",
"fiatCurrency": "<string>",
"startTime": "<string>",
"endTime": "<string>",
"page": 123,
"pageSize": 123,
"clientOrderId": "<string>"
}
headers = {
"X-GatePay-Certificate-ClientId": "<x-gatepay-certificate-clientid>",
"X-GatePay-Signature": "<x-gatepay-signature>",
"X-GatePay-Timestamp": "<x-gatepay-timestamp>",
"X-GatePay-Nonce": "<x-gatepay-nonce>",
"X-GatePay-On-Behalf-Of": "<x-gatepay-on-behalf-of>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-GatePay-Certificate-ClientId': '<x-gatepay-certificate-clientid>',
'X-GatePay-Signature': '<x-gatepay-signature>',
'X-GatePay-Timestamp': '<x-gatepay-timestamp>',
'X-GatePay-Nonce': '<x-gatepay-nonce>',
'X-GatePay-On-Behalf-Of': '<x-gatepay-on-behalf-of>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
status: '<string>',
type: '<string>',
cryptoCurrency: '<string>',
fiatCurrency: '<string>',
startTime: '<string>',
endTime: '<string>',
page: 123,
pageSize: 123,
clientOrderId: '<string>'
})
};
fetch('https://openplatform.gateapi.io/withdraw/open/institution/otc/api/order/list', 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://openplatform.gateapi.io/withdraw/open/institution/otc/api/order/list",
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([
'status' => '<string>',
'type' => '<string>',
'cryptoCurrency' => '<string>',
'fiatCurrency' => '<string>',
'startTime' => '<string>',
'endTime' => '<string>',
'page' => 123,
'pageSize' => 123,
'clientOrderId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-GatePay-Certificate-ClientId: <x-gatepay-certificate-clientid>",
"X-GatePay-Nonce: <x-gatepay-nonce>",
"X-GatePay-On-Behalf-Of: <x-gatepay-on-behalf-of>",
"X-GatePay-Signature: <x-gatepay-signature>",
"X-GatePay-Timestamp: <x-gatepay-timestamp>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.post("https://openplatform.gateapi.io/withdraw/open/institution/otc/api/order/list")
.header("X-GatePay-Certificate-ClientId", "<x-gatepay-certificate-clientid>")
.header("X-GatePay-Signature", "<x-gatepay-signature>")
.header("X-GatePay-Timestamp", "<x-gatepay-timestamp>")
.header("X-GatePay-Nonce", "<x-gatepay-nonce>")
.header("X-GatePay-On-Behalf-Of", "<x-gatepay-on-behalf-of>")
.header("Content-Type", "application/json")
.body("{\n \"status\": \"<string>\",\n \"type\": \"<string>\",\n \"cryptoCurrency\": \"<string>\",\n \"fiatCurrency\": \"<string>\",\n \"startTime\": \"<string>\",\n \"endTime\": \"<string>\",\n \"page\": 123,\n \"pageSize\": 123,\n \"clientOrderId\": \"<string>\"\n}")
.asString();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://openplatform.gateapi.io/withdraw/open/institution/otc/api/order/list"
payload := strings.NewReader("{\n \"status\": \"<string>\",\n \"type\": \"<string>\",\n \"cryptoCurrency\": \"<string>\",\n \"fiatCurrency\": \"<string>\",\n \"startTime\": \"<string>\",\n \"endTime\": \"<string>\",\n \"page\": 123,\n \"pageSize\": 123,\n \"clientOrderId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-GatePay-Certificate-ClientId", "<x-gatepay-certificate-clientid>")
req.Header.Add("X-GatePay-Signature", "<x-gatepay-signature>")
req.Header.Add("X-GatePay-Timestamp", "<x-gatepay-timestamp>")
req.Header.Add("X-GatePay-Nonce", "<x-gatepay-nonce>")
req.Header.Add("X-GatePay-On-Behalf-Of", "<x-gatepay-on-behalf-of>")
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))
}require 'uri'
require 'net/http'
url = URI("https://openplatform.gateapi.io/withdraw/open/institution/otc/api/order/list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-GatePay-Certificate-ClientId"] = '<x-gatepay-certificate-clientid>'
request["X-GatePay-Signature"] = '<x-gatepay-signature>'
request["X-GatePay-Timestamp"] = '<x-gatepay-timestamp>'
request["X-GatePay-Nonce"] = '<x-gatepay-nonce>'
request["X-GatePay-On-Behalf-Of"] = '<x-gatepay-on-behalf-of>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"status\": \"<string>\",\n \"type\": \"<string>\",\n \"cryptoCurrency\": \"<string>\",\n \"fiatCurrency\": \"<string>\",\n \"startTime\": \"<string>\",\n \"endTime\": \"<string>\",\n \"page\": 123,\n \"pageSize\": 123,\n \"clientOrderId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"code": "<string>",
"status": "<string>",
"errorMessage": "<string>",
"data": {
"page": 123,
"pageSize": 123,
"total": 123,
"data": [
{
"orderId": "<string>",
"status": "<string>",
"cryptoCurrency": "<string>",
"fiatCurrency": "<string>",
"cryptoAmount": "<string>",
"fiatAmount": "<string>",
"fiatRate": "<string>",
"bankAccountId": "<string>",
"clientOrderId": "<string>",
"type": "<string>",
"createTime": 123,
"updateTime": 123,
"errMsg": "<string>",
"tradeFee": "<string>",
"finalFiatAmount": "<string>",
"bankSlipInfo": "<string>",
"promCode": "<string>"
}
]
}
}Overview
This page documents thePOST /withdraw/open/institution/otc/api/order/list endpoint. The full schema, parameters, and examples are rendered from the linked OpenAPI definition above.
Notes
- Authentication uses the standard GatePay signed headers.
- This page documents the standard merchant endpoint.
- For shared signing rules, see /api-reference/version/100/en/common/securityAndSignature.
Headers
Merchant application client ID used to identify the calling app.
HMAC signature generated from the request according to GatePay signing rules.
Millisecond timestamp; the difference from server time must not exceed 30 seconds.
Random nonce used together with the timestamp to prevent replay attacks.
Required delegated-subject header. Provide the initiating account ID for this request. For institution merchant APIs, this is typically the target sub-account ID; for institution charge and transfer APIs, it can be either an institution account ID or a sub-account ID.
Body
Filter by order status. Available values: PROCESSING (in processing), DISPATCHED (payout dispatched), DONE (completed), FAIL (failed).
Filter by OTC order type.
Filter by cryptocurrency code.
Filter by fiat currency code.
Start of the query time range.
End of the query time range.
Page number.
Number of records per page.
Filter by merchant-defined order ID.

