Skip to content

Withdrawal Methods Overview

About This Page

What: Build a mental model of the withdrawal system in 5 minutes — what channels exist, how they're selected, how many steps, what statuses Audience: Product managers new to the withdrawal system Prerequisites: Newcomer GuideReading time: 2 minutes Owner: Withdrawal Product Manager

Key Takeaway: The core of withdrawal is approval, not matching — 12 channels ranked by automation level, BST (Bank-Securities Transfer) is fastest (seconds), cross-border wire transfer is slowest (days). From the moment a user clicks submit to seeing success, the request passes through 3-5 system nodes.


Withdrawal vs Deposit: The One-Sentence Difference

  • The core of deposit is "matching" — money has already arrived in the company account; the question is "whose money is this?"
  • The core of withdrawal is "approval" — money needs to leave the company account; the question is "can this payment be released?"

12 Withdrawal Channels

Ranked by automation level and arrival speed:

Channel KeyNameModeSupported BanksArrival TimeAutomation
auto_bsBSTBSTCMB, CMBC, AirstarSeconds~minutesFully auto
hsbcHSBC Online BankingOnline BankingHSBCMinutes~hoursSemi-auto
haseHang Seng Online BankingOnline BankingHang SengMinutes~hoursSemi-auto
boc_fpsBOC FPSFPSBOCMinutesSemi-auto
cgb_fps_apiCGB FPSFPSCGBMinutesSemi-auto
scStandard CharteredFPSSCBMinutesSemi-auto
bocBOC Same-bankTraditionalBOCHoursManual
manualICBC ManualTraditionalICBC AsiaHoursManual
chats_rtgsCHATS/RTGSTraditionalHK banksHoursManual
tele_transferCross-border WireTraditionalBOC (cross-border)1~3 daysManual
ewbEWB WireTraditionalEWB1~3 daysManual
checkChequeTraditional2~5 daysManual

Withdrawal Volume Distribution (Product Priority Reference)

Key Conclusions:

  • Same-bank transfer is the dominant channel (73%) — HSBC/Hang Seng online banking handles the highest withdrawal volume
  • BST accounts for 9% but has the lowest operational cost (fully automated); expanding BST coverage directly reduces ops headcount
  • FPS accounts for 17% and Futu bears a cost of 2.5 HKD per transaction — volume creates cost pressure
  • Only BST uses API-based withdrawal; all others are file-based (ops staff operate bank online banking / export files)

Core differences between the four modes:

ModeRepresentative ChannelHow System Communicates with BankWhat Ops Needs to Do
BSTauto_bsSocket dedicated line / REST APINothing (fully automated)
Online Bankinghsbc, haseOps operates corporate online bankingTransfer via bank online banking + CRM confirmation
FPSboc_fps, cgb_fps_api, scFPS real-time clearing interfaceTrigger submission + CRM confirmation
Traditionalboc, manual, chats_rtgs, etc.Manual online banking/file/chequeBank operation + CRM confirmation

How Channels Are Selected

The system automatically determines which channel to use via calcMethod():

Core principle: BST > Online Banking/FPS > Manual. Higher automation means better experience and lower operational cost.

Two branch explanations:

  • Bank-initiated withdrawal (user operates transfer-out in bank app) → goes directly through BST, not subject to CNH restriction
  • CMB/CMBC + offshore RMB CNH → does not use BST, left for ops to manually select. Reason: CMB/CMBC BST interfaces do not cover CNH currency automatic transfers at the protocol level. Airstar BST interface supports CNH and is not subject to this restriction

Fall-through Logic When method = null

When the system cannot automatically determine a channel (method = null), ops manually selects based on the following priority:

FPS limit: HKD / CNH amounts >= 1 million do not use FPS, upgraded to CHATS/RTGS (i.e., exactly 1 million goes through CHATS/RTGS, not FPS).

Same-bank Transfer: Bank × Currency Support

Receiving BankHKDUSDCNH
ICBC Asia
BOC Hong Kong
Hang Seng Bank
HSBC

Withdrawal Lifecycle

A withdrawal goes through 6 statuses:

StatusMeaning
PENDING (0)Task created, awaiting approval
PROCESSING (1)Approval in progress (includes Audit / Confirm / Remittance steps)
DONE (2)Withdrawal successful, funds remitted
REJECTED (3)Approval not passed or risk control intercept
CANCEL (4)User actively cancelled
REVERSE (5)Remitted funds have been reversed

"Processing" is the most complex status — it contains three approval steps and bank execution. See Withdrawal Lifecycle for details.


Common Misconceptions

MisconceptionFact
"BST is the most commonly used withdrawal channel"BST only accounts for 9% of withdrawal volume. Same-bank transfer (HSBC/Hang Seng online banking) accounts for 73% and is the dominant channel
"Withdrawal and deposit are symmetric processes"They are not. The core of deposit is "matching" (money arrived, find whose it is), the core of withdrawal is "approval" (money needs to leave, can it be released). The processes, systems, and channels are completely different
"method = null is a system error"It is not. This is the normal "system cannot auto-select channel" state; ops selects manually based on the user's bank card
"Only BST can do withdrawals"BST is the only fully automated channel, but there are 11 other channels (online banking, FPS, traditional). The others just require ops to manually operate on the bank side
"Withdrawal always charges a fee"Currently all withdrawals are fee-free. The code defines cross-border fee rates (HKD 105 / USD 15) but they are forced to 0

I want to...Go to
Understand how bank cards and authorization affect withdrawal channelsBank Cards and Withdrawal Authorization
See how a withdrawal flows end-to-endWithdrawal Lifecycle
Understand what a specific rule means and whether it can be changedWithdrawal Rules Manual
See technical execution details for a specific channelChannel Execution Manual
Troubleshoot a withdrawal issueWithdrawal Troubleshooting
Look up what a status code/field meansWithdrawal Data Dictionary
See detailed comparison of the three BST banksBST Overview
Was this page helpful?

内部业务文档 · 仅限 moomoo 团队使用