List Orders
curl --request GET \
--url https://pay-api.holdstation.com/partners/ordersimport requests
url = "https://pay-api.holdstation.com/partners/orders"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://pay-api.holdstation.com/partners/orders', 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://pay-api.holdstation.com/partners/orders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://pay-api.holdstation.com/partners/orders"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://pay-api.holdstation.com/partners/orders")
.asString();require 'uri'
require 'net/http'
url = URI("https://pay-api.holdstation.com/partners/orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"message": "success",
"data": {
"orders": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"code": 100001,
"order_type": 1,
"state": 3,
"processing_state": 14,
"amount": "2575000",
"outcome": "100",
"currency": "vnd",
"rate": "25750",
"original_rate": "25500",
"token_address": "0x55d398326f99059ff775485246999027b3197955",
"chain_id": 56,
"recipient": "0xUSER_WALLET_ADDRESS",
"reference_no": "DEPOSIT-001",
"external_id": "ext-001",
"partner_id": "partner-xyz",
"user_id": "user-abc",
"provider": 1,
"processing_time": 12400,
"client_ip": "127.0.0.1",
"callback": "https://yourapp.com/api/webhooks/payment",
"fees": { "service_fee": 5000, "min_fee": 2000 },
"total_fee_vnd": 5000,
"pay_data": {
"bank_account_name": "CONG TY HOLDSTATION",
"bank_account_number": "9876543210",
"bank_bin_code": "970423",
"bank_name": "Tien Phong Bank",
"bank_short_code": "TPBank",
"payment_link": "https://dl.vietqr.io/pay?...",
"qr_code": "00020101021238...",
"qr_image": "data:image/png;base64,...",
"external_id": "hpay-ext-001"
},
"payment_info": null,
"reference": {
"hs_rate": 25000,
"usdt_rate": 25500,
"token_rate": 1.0,
"partner_rate": 25750,
"spread": 0.02,
"buffer_rate": 0.005,
"buffered_rate_usdt": 25628,
"buffered_rate_partner": 25750,
"addition_share_rate": 0,
"partner_override_revenue": 0,
"sim_webhook_id": ""
},
"body": {},
"error": null,
"created_at": { "seconds": 1700000000, "nanos": 0 },
"updated_at": { "seconds": 1700012400, "nanos": 0 },
"expired_at": { "seconds": 1700003600, "nanos": 0 }
}
],
"total_count": 1
}
}
{
"error": "invalid request",
"error_code": "BAD_REQUEST",
"message": "Invalid parameters"
}
{
"error": "unauthorized",
"error_code": "UNAUTHORIZED",
"message": "Invalid or missing API key"
}
Orders
List Orders
Query a paginated list of payment orders with optional filtering.
GET
/
partners
/
orders
List Orders
curl --request GET \
--url https://pay-api.holdstation.com/partners/ordersimport requests
url = "https://pay-api.holdstation.com/partners/orders"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://pay-api.holdstation.com/partners/orders', 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://pay-api.holdstation.com/partners/orders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://pay-api.holdstation.com/partners/orders"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://pay-api.holdstation.com/partners/orders")
.asString();require 'uri'
require 'net/http'
url = URI("https://pay-api.holdstation.com/partners/orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"message": "success",
"data": {
"orders": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"code": 100001,
"order_type": 1,
"state": 3,
"processing_state": 14,
"amount": "2575000",
"outcome": "100",
"currency": "vnd",
"rate": "25750",
"original_rate": "25500",
"token_address": "0x55d398326f99059ff775485246999027b3197955",
"chain_id": 56,
"recipient": "0xUSER_WALLET_ADDRESS",
"reference_no": "DEPOSIT-001",
"external_id": "ext-001",
"partner_id": "partner-xyz",
"user_id": "user-abc",
"provider": 1,
"processing_time": 12400,
"client_ip": "127.0.0.1",
"callback": "https://yourapp.com/api/webhooks/payment",
"fees": { "service_fee": 5000, "min_fee": 2000 },
"total_fee_vnd": 5000,
"pay_data": {
"bank_account_name": "CONG TY HOLDSTATION",
"bank_account_number": "9876543210",
"bank_bin_code": "970423",
"bank_name": "Tien Phong Bank",
"bank_short_code": "TPBank",
"payment_link": "https://dl.vietqr.io/pay?...",
"qr_code": "00020101021238...",
"qr_image": "data:image/png;base64,...",
"external_id": "hpay-ext-001"
},
"payment_info": null,
"reference": {
"hs_rate": 25000,
"usdt_rate": 25500,
"token_rate": 1.0,
"partner_rate": 25750,
"spread": 0.02,
"buffer_rate": 0.005,
"buffered_rate_usdt": 25628,
"buffered_rate_partner": 25750,
"addition_share_rate": 0,
"partner_override_revenue": 0,
"sim_webhook_id": ""
},
"body": {},
"error": null,
"created_at": { "seconds": 1700000000, "nanos": 0 },
"updated_at": { "seconds": 1700012400, "nanos": 0 },
"expired_at": { "seconds": 1700003600, "nanos": 0 }
}
],
"total_count": 1
}
}
{
"error": "invalid request",
"error_code": "BAD_REQUEST",
"message": "Invalid parameters"
}
{
"error": "unauthorized",
"error_code": "UNAUTHORIZED",
"message": "Invalid or missing API key"
}
Overview
Partners can query a list of their payment orders with optional filtering by state, type, and date range.Filter by order type.
1 = Deposit, 2 = Withdrawal.Filter by order state.
1 = New, 2 = Processing, 3 = Completed, 4 = Failed, 5 = Closed.Filter by processing state. Deposit:
10–16. Withdrawal: 20–25. See table below.Page number for pagination.
Number of results per page.
Sort field. Available values:
created_at, expired_at, amount.If
true, sort in descending order.Filter orders created after this Unix timestamp (seconds).
Filter orders created before this Unix timestamp (seconds).
Filter orders expiring after this Unix timestamp (seconds).
Filter orders expiring before this Unix timestamp (seconds).
Filter by token recipient wallet address.
Filter by a list of partner reference numbers.
Processing State Values
| Value | Name | Description |
|---|---|---|
10 | DepositFiatPending | Waiting for user to deposit fiat |
11 | DepositFiatConfirmed | Fiat deposit confirmed |
12 | DepositFiatFailed | Fiat deposit failed |
13 | DepositCryptoPending | Waiting for USDT transfer on-chain |
14 | DepositCryptoConfirmed | USDT transfer confirmed |
15 | DepositCryptoFailed | USDT transfer failed |
16 | DepositFiatWaitingForApproval | Fiat payment pending manual approval |
20 | WithdrawCryptoPending | Waiting for user to transfer USDT |
21 | WithdrawCryptoConfirmed | USDT transfer confirmed on-chain |
22 | WithdrawCryptoFailed | USDT transfer failed |
23 | WithdrawFiatPending | Waiting for VND bank transfer |
24 | WithdrawFiatConfirmed | VND bank transfer confirmed |
25 | WithdrawFiatFailed | VND bank transfer failed |
{
"message": "success",
"data": {
"orders": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"code": 100001,
"order_type": 1,
"state": 3,
"processing_state": 14,
"amount": "2575000",
"outcome": "100",
"currency": "vnd",
"rate": "25750",
"original_rate": "25500",
"token_address": "0x55d398326f99059ff775485246999027b3197955",
"chain_id": 56,
"recipient": "0xUSER_WALLET_ADDRESS",
"reference_no": "DEPOSIT-001",
"external_id": "ext-001",
"partner_id": "partner-xyz",
"user_id": "user-abc",
"provider": 1,
"processing_time": 12400,
"client_ip": "127.0.0.1",
"callback": "https://yourapp.com/api/webhooks/payment",
"fees": { "service_fee": 5000, "min_fee": 2000 },
"total_fee_vnd": 5000,
"pay_data": {
"bank_account_name": "CONG TY HOLDSTATION",
"bank_account_number": "9876543210",
"bank_bin_code": "970423",
"bank_name": "Tien Phong Bank",
"bank_short_code": "TPBank",
"payment_link": "https://dl.vietqr.io/pay?...",
"qr_code": "00020101021238...",
"qr_image": "data:image/png;base64,...",
"external_id": "hpay-ext-001"
},
"payment_info": null,
"reference": {
"hs_rate": 25000,
"usdt_rate": 25500,
"token_rate": 1.0,
"partner_rate": 25750,
"spread": 0.02,
"buffer_rate": 0.005,
"buffered_rate_usdt": 25628,
"buffered_rate_partner": 25750,
"addition_share_rate": 0,
"partner_override_revenue": 0,
"sim_webhook_id": ""
},
"body": {},
"error": null,
"created_at": { "seconds": 1700000000, "nanos": 0 },
"updated_at": { "seconds": 1700012400, "nanos": 0 },
"expired_at": { "seconds": 1700003600, "nanos": 0 }
}
],
"total_count": 1
}
}
{
"error": "invalid request",
"error_code": "BAD_REQUEST",
"message": "Invalid parameters"
}
{
"error": "unauthorized",
"error_code": "UNAUTHORIZED",
"message": "Invalid or missing API key"
}
⌘I