Skip to main content
Prefund a stablecoin balance with Holdstation Pay and create offramp orders instantly — no need to wait for on-chain confirmation on every order. You top up your balance with on-chain deposits once, then debit it directly whenever you create an offramp order, and Holdstation Pay pays out VND to the recipient’s bank account.
Contact the Holdstation team to enable this feature for your account.
All prefunding endpoints require signed authentication. See Request Signing for how to sign requests.

Workflow

  1. Get deposit addresses — call List Deposit Addresses to retrieve the on-chain addresses assigned to you on each supported chain.
  2. Deposit on-chain — send supported tokens (e.g., USDT, USDC) to one of those addresses. Holdstation Pay credits the received amount to your balance once the deposit is detected.
  3. Check balance — use List Funds to view all balances, or Get Fund Balance for a single token.
  4. Create offramp order — call Create Withdrawal from Fund to create an order with a confirmed quote (rate, outcome, fees). No VND is sent yet — the order is held for up to 15 minutes awaiting confirmation. Always include an idempotency_key to avoid duplicate orders.
  5. Confirm disbursement — call Confirm Withdrawal with the order_id from step 4 to release the payout. Holdstation Pay debits your balance and sends VND to the recipient bank account using the details on the order. If not confirmed within 15 minutes, the order expires and must be recreated.
  6. Balance Change History — use List Fund Logs to review every balance change (deposits, offramp debits, and compensations/refunds).
  7. Balance Change Webhook — to get notified the moment your prefund balance changes, configure a partner-level webhook URL via Set Partner Webhook URL. See Balance Change Webhook for the event headers, payload, and change_type values.

Change Types

Every balance change is recorded in the fund logs with a change_type:

Withdraw Order Flow

Processing States Flow

See the full processing state table in Order Flow → Withdraw Orders.

Endpoints

Withdraw Error Codes

Both POST /partners/orders/withdraw and POST /partners/orders/{order_id}/confirm-withdraw return a numeric code in the response body when the operation cannot be completed. Use this code to drive retries and partner-side error handling.