{
"amount": "100",
"currency": "usd",
"chain_id": 56,
"token_address": "0x55d398326f99059ff775485246999027b3197955",
"payment_info": {
"bank_id": 42,
"full_name": "NGUYEN VAN A",
"account_type": 1,
"account_number": "0123456789"
},
"callback": "https://yourapp.com/api/webhooks/payment",
"reference_no": "WITHDRAW-001",
"buffer": 0.005
}
{
"message": "success",
"data": {
"order": {
"id": "660e8400-e29b-41d4-a716-446655440001",
"code": 100002,
"order_type": 2,
"state": 2,
"processing_state": 20,
"amount": "100",
"outcome": "2575000",
"currency": "usd",
"rate": "25750",
"original_rate": "25500",
"token_address": "0x55d398326f99059ff775485246999027b3197955",
"chain_id": 56,
"recipient": "0xHPAY_WALLET_ADDRESS",
"reference_no": "WITHDRAW-001",
"external_id": "ext-001",
"partner_id": "partner-xyz",
"user_id": "user-abc",
"provider": 1,
"processing_time": 0,
"client_ip": "127.0.0.1",
"callback": "https://yourapp.com/api/webhooks/payment",
"fees": { "service_fee": 0.01, "min_fee": 5000 },
"total_fee_vnd": 25750,
"pay_data": null,
"payment_info": {
"bank_id": 42,
"full_name": "NGUYEN VAN A",
"account_type": 1,
"account_number": "0123456789"
},
"error": null,
"created_at": { "seconds": 1700000000, "nanos": 0 },
"updated_at": { "seconds": 1700000000, "nanos": 0 },
"expired_at": { "seconds": 1700003600, "nanos": 0 }
}
}
}
{
"error": "invalid request",
"error_code": "BAD_REQUEST",
"message": "Invalid parameters"
}
{
"error": "unauthorized",
"error_code": "UNAUTHORIZED",
"message": "Invalid or missing API key"
}
Orders
Create Withdrawal
Create a new offramp order for a user to sell tokens and receive VND via bank transfer.
POST
/
partners
/
orders
/
withdrawal
{
"amount": "100",
"currency": "usd",
"chain_id": 56,
"token_address": "0x55d398326f99059ff775485246999027b3197955",
"payment_info": {
"bank_id": 42,
"full_name": "NGUYEN VAN A",
"account_type": 1,
"account_number": "0123456789"
},
"callback": "https://yourapp.com/api/webhooks/payment",
"reference_no": "WITHDRAW-001",
"buffer": 0.005
}
{
"message": "success",
"data": {
"order": {
"id": "660e8400-e29b-41d4-a716-446655440001",
"code": 100002,
"order_type": 2,
"state": 2,
"processing_state": 20,
"amount": "100",
"outcome": "2575000",
"currency": "usd",
"rate": "25750",
"original_rate": "25500",
"token_address": "0x55d398326f99059ff775485246999027b3197955",
"chain_id": 56,
"recipient": "0xHPAY_WALLET_ADDRESS",
"reference_no": "WITHDRAW-001",
"external_id": "ext-001",
"partner_id": "partner-xyz",
"user_id": "user-abc",
"provider": 1,
"processing_time": 0,
"client_ip": "127.0.0.1",
"callback": "https://yourapp.com/api/webhooks/payment",
"fees": { "service_fee": 0.01, "min_fee": 5000 },
"total_fee_vnd": 25750,
"pay_data": null,
"payment_info": {
"bank_id": 42,
"full_name": "NGUYEN VAN A",
"account_type": 1,
"account_number": "0123456789"
},
"error": null,
"created_at": { "seconds": 1700000000, "nanos": 0 },
"updated_at": { "seconds": 1700000000, "nanos": 0 },
"expired_at": { "seconds": 1700003600, "nanos": 0 }
}
}
}
{
"error": "invalid request",
"error_code": "BAD_REQUEST",
"message": "Invalid parameters"
}
{
"error": "unauthorized",
"error_code": "UNAUTHORIZED",
"message": "Invalid or missing API key"
}
Overview
Partner uses this API to create a new withdrawal order. See Offramp Flow for the full integration guide.string
required
Amount to withdraw in USD (or VND if
currency=vnd).string
required
Currency of the amount:
vnd or usd.integer
required
Blockchain network ID. See List Tokens.
string
required
Token contract address. See List Tokens.
object
required
User’s bank account details to receive VND.
Show payment_info
Show payment_info
integer
required
Bank ID. See List Banks.
string
required
Full name of the account holder.
integer
required
1 = Bank account number, 2 = ATM card number.string
required
Bank account number.
string
required
HTTPS URL to receive order status webhook notifications.
string
Optional. Use this to map the Holdstation Pay order to your internal order. Must be unique per partner.
number
required
Optional buffer rate override (fractional). Effective buffer = max(override, configured). Example:
0.005 = 0.5%.{
"amount": "100",
"currency": "usd",
"chain_id": 56,
"token_address": "0x55d398326f99059ff775485246999027b3197955",
"payment_info": {
"bank_id": 42,
"full_name": "NGUYEN VAN A",
"account_type": 1,
"account_number": "0123456789"
},
"callback": "https://yourapp.com/api/webhooks/payment",
"reference_no": "WITHDRAW-001",
"buffer": 0.005
}
{
"message": "success",
"data": {
"order": {
"id": "660e8400-e29b-41d4-a716-446655440001",
"code": 100002,
"order_type": 2,
"state": 2,
"processing_state": 20,
"amount": "100",
"outcome": "2575000",
"currency": "usd",
"rate": "25750",
"original_rate": "25500",
"token_address": "0x55d398326f99059ff775485246999027b3197955",
"chain_id": 56,
"recipient": "0xHPAY_WALLET_ADDRESS",
"reference_no": "WITHDRAW-001",
"external_id": "ext-001",
"partner_id": "partner-xyz",
"user_id": "user-abc",
"provider": 1,
"processing_time": 0,
"client_ip": "127.0.0.1",
"callback": "https://yourapp.com/api/webhooks/payment",
"fees": { "service_fee": 0.01, "min_fee": 5000 },
"total_fee_vnd": 25750,
"pay_data": null,
"payment_info": {
"bank_id": 42,
"full_name": "NGUYEN VAN A",
"account_type": 1,
"account_number": "0123456789"
},
"error": null,
"created_at": { "seconds": 1700000000, "nanos": 0 },
"updated_at": { "seconds": 1700000000, "nanos": 0 },
"expired_at": { "seconds": 1700003600, "nanos": 0 }
}
}
}
{
"error": "invalid request",
"error_code": "BAD_REQUEST",
"message": "Invalid parameters"
}
{
"error": "unauthorized",
"error_code": "UNAUTHORIZED",
"message": "Invalid or missing API key"
}