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
- Get deposit addresses — call List Deposit Addresses to retrieve the on-chain addresses assigned to you on each supported chain.
- 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.
- Check balance — use List Funds to view all balances, or Get Fund Balance for a single token.
- 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_keyto avoid duplicate orders. - Confirm disbursement — call Confirm Withdrawal with the
order_idfrom 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. - Balance Change History — use List Fund Logs to review every balance change (deposits, offramp debits, and compensations/refunds).
- 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_typevalues.
Change Types
Every balance change is recorded in the fund logs with achange_type:
Withdraw Order Flow
Processing States Flow
See the full processing state table in Order Flow → Withdraw Orders.Endpoints
Withdraw Error Codes
BothPOST /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.