Skip to content

Card Binding & Deposit Authorization

About This Page

What: Bank card binding rules, how account_type determines available deposit channels, how BST/eDDA authorization enables corresponding deposit methods, Airstar online account opening three-in-one flow, and deposit-related bank card exception troubleshooting Audience: Product managers and operations staff who need to understand "why a user can't see a certain deposit option" Prerequisites: Deposit Methods OverviewReading time: 6 minutes Owner: Deposit Product Manager

Key Takeaways: Which deposit method a user can use depends on the bank card's account_type bitmap — after binding, only online banking deposit is available by default. Completing BST sign-up adds BST deposit, and completing eDDA authorization adds direct debit deposit. Understanding this chain is key to troubleshooting "user can't see a deposit option."


Quick Navigation — What you might want to do:

Card Binding is a Prerequisite for Deposits

Users must bind a bank card before initiating any deposit operation. When binding, the system creates a bank_card record with default account_type = 1 (Regular), which only allows online banking deposits.

To enable more deposit channels, the corresponding authorization must be completed:

account_type is a bitmap with independent bits that stack. A single card can have multiple capabilities — for example, account_type = 7 (Regular + BST + eDDA) means all three deposit methods are available.


Deposit Channel and Card Type Relationship

The bank card's account_type directly determines which deposit options are displayed in the App:

account_typeMeaningAvailable Deposit MethodsApp Display
1Regular (basic only)Online banking depositShows only "Online Banking Deposit"
3Regular + BSTOnline banking, BST depositShows "Online Banking" + "BST Deposit"
5Regular + eDDAOnline banking, eDDA direct debitShows "Online Banking" + "eDDA Deposit"
7Full capabilitiesOnline banking, BST, eDDA direct debitShows all three

Each card also carries a methods list, indicating the specific available deposit channels:

method ValueTypeMeaningCorresponding Bank
normalRegularOnline banking/FPS/ATM manual transferAll banks
bst_cmbhkBSTCMB BSTCMB (Hong Kong)
bst_cmbchkBSTMSB BSTMSB
bst_asbBSTAirstar BSTAirstar Bank
edda_haseeDDAHang Seng direct debitHang Seng Bank
edda_hsbceDDAHSBC direct debitHSBC

Operations Troubleshooting Key Points

When a user reports "can't see BST/eDDA deposit option," troubleshooting path:

  1. Check bank_card.account_type — values containing BST bit: 2, 3, 6, 7; values containing eDDA bit: 4, 5, 6, 7
  2. Check if methods list contains the corresponding method value
  3. If account_type is missing the corresponding bit -> authorization flow not completed, refer to the relevant section below

BST Authorization & Deposit

After successful BST (Bank-Securities Transfer) authorization, the card's account_type automatically gains the BST bit (|= 2), enabling the BST deposit channel. The three BST banks have different authorization methods:

DimensionCMB / MSBAirstar
Sign-up InitiatorBank-initiated (user operates in banking app)moomoo-initiated (user operates in moomoo)
Authorization Completion TimeInstant (SM2 Socket real-time push)Seconds~minutes (REST API polling)
Multi-marketSeparate sign-up per market (HK/US/HKCC)One authorization auto-maps to 3 markets
Post-authorization Change`account_type= 2, verify = 2`

Authorization Status Impact on Deposits

BST authorization must be in active status to use BST deposits:

Mandate StatusMeaningCan Use BST DepositOperations Focus
0 CLOSENot authorizedNoUser needs to initiate authorization
1 PROCESSINGAuthorizingNoWaiting for bank confirmation, typically seconds~minutes
2 OPENAuthorizedYesNormal state
3 WAITINGWaiting for first depositNoOnline account opening exclusive, needs to complete first deposit -> auto-transitions to OPEN
4 FAILAuthorization failedNoCheck reject_code
5 CANCELCancelledNoUser can re-initiate authorization

Only OPEN(2) enables BST deposit — this is the first step in troubleshooting "BST deposit unavailable."

CMB/MSB Sign-up Flow (Bank-initiated)
Airstar Authorization Flow (moomoo-initiated)

Full BST authorization technical details -> Bank Card & Authorization - BST Authorization BST implementation by bank -> BST Overview


eDDA Authorization & Deposit

After successful eDDA authorization, the card's account_type automatically gains the eDDA bit (|= 4), enabling the direct debit deposit channel. Currently supports Hang Seng and HSBC:

DimensionHang SengHSBC
Authorization ConfirmationSynchronous response (instant)Asynchronous SFTP report (T+0~T+1)
Post-authorization Change`account_type= 4, verify = 2, adds edda_hase`
Status Values0=Inactive / 2=Active0=Inactive / 1=Authorizing / 2=Active

eDDA Card Extension Fields

eDDA authorization information is bound to the bank card. The system checks these fields during deposit:

FieldMeaningDeposit Impact
limit_amountSingle/period limit capDebit fails when exceeded
limit_periodicityLimit period (Y/H/Q/M/P)Determines limit reset time
expiry_dateAuthorization validity periodDebit fails after expiry (9999999=permanent)
statusActive statusstatus=2 is required for debit — first step in deposit troubleshooting

eDDA is for Deposits Only

eDDA/eDDI is a direct debit channel, only usable for deposits (debiting from user's bank account to securities account). Hang Seng/HSBC withdrawals go through corporate online banking channels, unrelated to eDDA.

eDDA authorization flow and debit execution details -> eDDA Direct Debit Deposit eDDA authorization complete technical details -> Bank Card & Authorization - eDDA Authorization


Airstar Online Account Opening Three-in-One

Airstar Bank supports online account opening — new customers can complete the entire zero-to-tradeable flow within the moomoo App:

StepActionDescriptionData Change
1Open securities accountComplete KYC identity verification
2Mandate authorizationAuthorize Airstar for BSTBankCardAsbBst.status = 3 (WAITING), bank_card.status = 0 (Pending review)
3First depositComplete first deposit to securities accountbank_card.status 0->1 (Active), BankCardAsbBst.status 3->2 (OPEN)

Value: The traditional flow requires users to switch between multiple systems (moomoo account opening -> bank branch or online banking for sign-up -> back to moomoo for deposit). The three-in-one flow compresses these three steps into one continuous in-App flow, significantly reducing new customer drop-off.

Online Account Opening vs Standard Activation

DimensionOnline Account Opening (New User)Standard Activation (Existing Airstar Account)
PrerequisitesNo Airstar bank account neededMust already have Airstar bank account
Operation LocationEntirely within moomoo AppInitiated in moomoo App, may require bank-side confirmation
FlowAccount opening -> Sign-up -> First deposit, three-in-oneSign-up -> Deposit, two steps
Card Initial Statusstatus = 0 (Pending review)status = 1 (Active)
Mandate Initial Statusstatus = 3 (WAITING)status = 2 (OPEN)
Minimum DepositRequired (see table below)No minimum
Acquisition ValueHigh — lowers new customer entry barrierMedium — only for existing Airstar customers

First Deposit Requirements

The first deposit for online account opening has minimum amount requirements, higher than regular deposits:

CurrencyOnline Opening MinimumRegular MinimumBehavior When Not Met
HKD10,000No limitApp shows "First deposit requires >= 10,000 HKD"
USD1,500No limitApp shows "First deposit requires >= 1,500 USD"
CNH10,000No limitApp shows "First deposit requires >= 10,000 CNH"

The purpose is to ensure new customers have sufficient funds for trading, avoiding "open account but never trade" ineffective conversions.

Online Account Opening User Journey

Online Account Opening Exception Handling

#Exception ScenarioStuck AtData StateOperations Handling
1Account opened but authorization failedMandate authorizationbank_card.status=0, BankCardAsbBst.status=4(FAIL)Guide user to re-initiate authorization (no need to re-open account)
2Authorization succeeded but deposit failedFirst depositbank_card.status=0, BankCardAsbBst.status=3(WAITING)Guide user to re-initiate deposit (meet minimum amount)
3Deposit succeeded but card not activatedTakeEffectbank_card.status=0 (should be 1)Manual BatchTakeEffect or check TakeEffect interface
4Stuck in pending review for long timeUser didn't complete depositbank_card.status=0, BankCardAsbBst.status=3Contact user to remind them to complete first deposit

Airstar Only

CMB and MSB do not support the online account opening three-in-one flow — BST sign-up requires users to complete it on the bank side. Online account opening is an Airstar BST exclusive acquisition feature, particularly suitable for promotional campaigns (e.g., "deposit to get commission-free trading").


The following are bank card exception scenarios directly related to deposits — for withdrawal-related exceptions, see Bank Card & Authorization - Exception Scenarios.

#ScenarioSymptomTroubleshooting StepsOperations Handling
1eDDA debit failedDebit failure prompt during deposit1. Check eDDA status is 2 2. Check limit_amount not exceeded 3. Check expiry_date not expiredNot active -> guide re-authorization; Exceeded -> wait for limit reset or increase limit
2Deposit channel not appearing after bindingApp doesn't show BST/eDDA option after binding1. Check account_type value (BST needs 2/3/6/7, eDDA needs 4/5/6/7) 2. Check methods listaccount_type missing -> authorization flow not completed, guide user to complete authorization
3Online opening card cannot depositPending review card not usable for deposit1. Check status is 0 2. Check if first deposit succeeded 3. Check if TakeEffect executedDeposit succeeded but card not activated -> manual BatchTakeEffect
4Currency not supportedUser's selected currency cannot depositCheck currency_type bitmap (HKD=1, USD=2, CNH=4)Guide user to bind a card supporting that currency
5BST deposit unavailableUser reports BST deposit unavailable1. Check Mandate status is OPEN(2) 2. Check account_type contains BST bitNot OPEN -> guide re-authorization

After Reading

I want to...Go to
Understand 10 deposit methods and complete lifecycleDeposit Methods Overview
Dive deeper into eDDA debit execution floweDDA Direct Debit Deposit
See the complete bank card data model and all fieldsBank Card & Authorization
Understand BST implementation details by bankBST Overview
What to do when deposits have problemsDeposit Troubleshooting
Look up deposit status codes and limit rulesDeposit Quick Reference
Was this page helpful?

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