Skip to main content
POST
/
partners
/
orders
/
withdraw
{
  "amount": "100.00",
  "currency": "token",
  "token_symbol": "USDT",
  "payment_info": {
    "bank_id": 970423,
    "full_name": "NGUYEN VAN A",
    "account_type": 1,
    "account_number": "03815492701"
  },
  "callback": "https://yourapp.com/api/webhooks/payment",
  "reference_no": "WITHDRAW-001",
  "idempotency_key": "unique-idempotency-key-001"
}
{
  "message": "success",
  "data": {
    "success": true,
    "code": 0,
    "error": "",
    "order": {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "code": 200001,
      "order_type": 2,
      "state": 2,
      "processing_state": 23,
      "amount": "100.00",
      "outcome": "2575000",
      "currency": "token",
      "rate": "25750",
      "reference_no": "WITHDRAW-001",
      "callback": "https://yourapp.com/api/webhooks/payment",
      "created_at": { "seconds": 1700000000, "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.

Create a withdrawal/off-ramp order that debits a partner fund balance and locks in a confirmed quote (rate, outcome, fees). No VND is sent yet — the order stays in a pending-confirmation state for up to 15 minutes, after which it expires. To actually pay out VND, call Confirm Withdrawal with the returned order.id before the order expires. Use idempotency_key to ensure the order is not created twice.

Authentication

Partner-App-Key
string
required
Your partner app key.
X-HSPay-Signature
string
required
Base64-encoded Ed25519 signature of the sign data.
X-HSPay-Timestamp
string
required
Unix timestamp (seconds) of the request. Must be within 60 seconds of server time.

Body Parameters

amount
string
required
Amount to withdraw.
currency
string
required
Currency of the amount. Available values: vnd, token.
token_symbol
string
required
Token symbol for the withdrawal (e.g., USDT, USDC, USD1).
payment_info
object
required
Bank payment information for the withdrawal recipient.
callback
string
required
Callback URL for receiving withdrawal status updates.
reference_no
string
Optional. Use this to map the Holdstation Pay order to your internal order. Must be unique per partner.
idempotency_key
string
required
Idempotency key to ensure the withdrawal is not processed twice.
{
  "amount": "100.00",
  "currency": "token",
  "token_symbol": "USDT",
  "payment_info": {
    "bank_id": 970423,
    "full_name": "NGUYEN VAN A",
    "account_type": 1,
    "account_number": "03815492701"
  },
  "callback": "https://yourapp.com/api/webhooks/payment",
  "reference_no": "WITHDRAW-001",
  "idempotency_key": "unique-idempotency-key-001"
}
{
  "message": "success",
  "data": {
    "success": true,
    "code": 0,
    "error": "",
    "order": {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "code": 200001,
      "order_type": 2,
      "state": 2,
      "processing_state": 23,
      "amount": "100.00",
      "outcome": "2575000",
      "currency": "token",
      "rate": "25750",
      "reference_no": "WITHDRAW-001",
      "callback": "https://yourapp.com/api/webhooks/payment",
      "created_at": { "seconds": 1700000000, "nanos": 0 }
    }
  }
}