Skip to main content
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 }
    }
  }
}

Documentation Index

Fetch the complete documentation index at: https://pay-docs.holdstation.com/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Partner uses this API to create a new withdrawal order. See Offramp Flow for the full integration guide.
amount
string
required
Amount to withdraw in USD (or VND if currency=vnd).
currency
string
required
Currency of the amount: vnd or usd.
chain_id
integer
required
Blockchain network ID. See List Tokens.
token_address
string
required
Token contract address. See List Tokens.
payment_info
object
required
User’s bank account details to receive VND.
callback
string
required
HTTPS URL to receive order status webhook notifications.
reference_no
string
Optional. Use this to map the Holdstation Pay order to your internal order. Must be unique per partner.
buffer
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 }
    }
  }
}