Airstar Bank
About This Page
What: Airstar Bank BST channel-side REST API specification + moomoo-side adaptation logic Audience: PMs understanding integration details / developers locating code / operations understanding bank characteristics Prerequisites: BST Banks Overview, Bank Capability MatrixReading time: 10 minutes Owner: Deposit & Withdrawal Product Team
Key takeaway: Airstar is the only BST bank using REST API (not Socket). The polling model means response time is in minutes rather than seconds, but integration complexity is lower than CMB/CMBC.
Capability Overview
| Capability | Supported | Protocol/Channel | Core Service |
|---|---|---|---|
| BST Deposit | ✅ | REST API (RSA-OAEP encryption) | airstar_service (Go) |
| BST Withdrawal | ✅ | auto_bs automated BST withdrawal | airstar_service (Go) |
| Mandate Authorization | ✅ | REST API | airstar_service (Go) |
| Online Account Opening | ✅ | Three-in-one flow (open account + authorize + first deposit) | airstar_service (Go) |
| eDDA Authorization | ❌ | — | — |
| eDDI Direct Debit | ❌ | — | — |
| FPS | ❌ | — | — |
Airstar Bank is the only virtual bank BST channel integrated with moomoo — unlike CMB/CMBC's traditional binary dedicated lines, Airstar uses modern REST API architecture, supports moomoo-initiated operations for all functions, and is the only BST bank fully supporting CNH.
Core Identifiers
| Identifier | Value | Description |
|---|---|---|
| IMPORT_BANK_ID | 55 | System internal bank unique number |
| TransType | 304 (ASB_BST) | Airstar BST dedicated type |
| AUTO_SETTING_ID | 3 | Auto-withdrawal configuration ID |
| Service Name | airstar_service | Core BST service |
| Proto File | airstar_service/proto/airstar_service.proto | Interface definition |
| Code Language | Go | Different from CMB/CMBC's Python |
Channel Interface Overview
| Dimension | Description |
|---|---|
| Protocol Type | HTTP REST API |
| Encryption | RSA-OAEP (SHA1, 200-byte blocks, Base64 encoding) |
| Data Format | JSON (encrypted: {"messageBody": "base64..."}) |
| Communication Mode | HTTP request-response + polling |
| Encoding | UTF-8 |
| Authentication | RSA key pair (not certificates) |
Why Does Airstar Use REST Instead of Socket?
Airstar is a Hong Kong licensed virtual bank (licensed in 2019) with a fully cloud-native technical architecture. Traditional banks (CMB/CMBC) use Socket dedicated line communication for historical reasons; Airstar directly provides standard REST API — more developer-friendly, but requires moomoo-side to implement polling mechanism for async results.
Channel-Side Interface Details — 11 Bank-Side REST APIs + 14 Internal RPC Methods
Airstar provides 11 bank-side REST APIs + 14 internal RPC methods, covering the full lifecycle of authorization, deposit, and withdrawal:
Authorization Interfaces (4)
| API Name | Endpoint | Direction | Purpose |
|---|---|---|---|
| CreateAuth | /authorization/apply | moomoo → Bank | Create eDDA authorization (Mandate) |
| QueryAuth | /authorization/status | moomoo → Bank | Query authorization status |
| CancelAuth | /authorization/cancel | moomoo → Bank | Cancel authorization |
| NotifyAuthResult | /authorization/result | moomoo → Bank | Notify authorization approval result |
Deposit Interfaces (2)
| API Name | Endpoint | Direction | Purpose |
|---|---|---|---|
| CreateTransfer (direction=deposit) | /transfer/init | moomoo → Bank | Initiate deposit request |
| QueryTransfer (direction=deposit) | /transfer/status | moomoo → Bank | Query deposit status (for polling) |
Unified Transfer Interface
Airstar API uses a unified Transfer interface, distinguishing deposit and withdrawal via the transfer_direction field, rather than separate deposit/withdrawal endpoints.
Withdrawal/Refund Interfaces (2)
| API Name | Endpoint | Direction | Purpose |
|---|---|---|---|
| CreateWithdrawRefund | /transfer/withdraw/reversal | moomoo → Bank | Create withdrawal refund |
| QueryRefund | /transfer/withdraw/reversal/status | moomoo → Bank | Query refund status |
Account Interfaces (2)
| API Name | Endpoint | Direction | Purpose |
|---|---|---|---|
| QuerySecAccount | /account/info | moomoo → Bank | Query securities account info (balance, etc.) |
| NotifyDepositApproval | /transfer/approval | moomoo → Bank | Notify deposit approval result |
All Interfaces Are moomoo-Initiated
Unlike CMBC (bank proactively pushes data to moomoo), Airstar's bank-side interfaces are all initiated by moomoo. This means moomoo has full process control, but also needs to handle polling, timeout handling, and other additional logic.
Core Interface Field Details
CreateAuthReq — Create Authorization Request
Request parameters when user initiates Mandate authorization from moomoo App:
| Field | Type | Required | Description |
|---|---|---|---|
| request_id | string(16-50) | ✅ | Unique request ID. Idempotency guarantee, cannot be duplicated |
| cid | uint64 | ✅ | Customer ID. moomoo UID |
| bank_card_number | string(12) | ✅ | Bank card number. Airstar bank card fixed 12 digits |
| id_card_type | string | ✅ | ID document type. Values "HKID" or "CNID" |
| id_card_number | string(1-35) | ✅ | ID document number. HKID/Home Return Permit number |
| en_name | string(1-127) | ✅ | English name. Must match bank-registered name |
| phone_number | string | ✅ | Phone number. Format "+86-1XXX" or "+852-XXX" |
Bank Card Number Fixed 12 Digits
Airstar bank card numbers are uniformly 12-digit numbers. Unlike traditional banks' 16-19 digit card numbers, developers must note length validation rules.
CreateAuthRsp — Authorization Response
| Field | Type | Description |
|---|---|---|
| code | uint32 | 200 = Success, other = Failure |
| total | uint32 | Total associated UIDs |
| securities_client_nos | array[uint64] | UID list |
Note Response Direction
Note: CreateAuthRsp here are response fields for when the bank initiates authorization on the moomoo side, not the return after moomoo initiates authorization. The response for moomoo-initiated authorization creation is empty (no additional fields).
CreateDepositReq — Initiate Deposit Request
| Field | Type | Required | Description |
|---|---|---|---|
| request_id | string(16-50) | ✅ | Request ID. Idempotency guarantee |
| cid | uint64 | ✅ | Customer ID. moomoo UID |
| market_id | uint32 | ✅ | Market ID. Values 1=HK, 2=US |
| account_id | uint32 | ✅ | Account ID. Securities account ID |
| currency | string | ✅ | Currency. Values HKD / USD / CNH |
| amount | string | ✅ | Amount. String format, e.g. "50000.00" |
| bank_card_number | string(12) | ✅ | Bank card number. 12-digit Airstar card |
| en_name | string(1-127) | ✅ | English name. Must match Mandate authorization |
QueryDepositRsp — Deposit Query Response
Complete information returned when polling deposit status:
| Field | Type | Description |
|---|---|---|
| deposit_id | uint64 | Deposit task ID (system-unique) |
| request_id | string | Request ID (corresponds to CreateDepositReq) |
| cid | uint64 | Customer ID |
| currency | string | Currency |
| amount | string | Amount |
| bank_card_number | string | Bank card number |
| en_name | string | Customer name |
| ref_id | string | moomoo-side reference number |
| bank_ref_id | string | Bank-side reference number (key for reconciliation) |
| status | string | Deposit status (see table below) |
| fail_code | string | Failure code (only has value on failure) |
| fail_reason | string | Failure reason description |
| source | string | Source: 1=moomoo-side, 2=bank-side |
Deposit Status Values
| Status | Meaning | Description | Terminal |
|---|---|---|---|
| new | New | Just initiated deposit request | ❌ |
| pending | Processing | Bank is processing | ❌ |
| success | Success | Deposit complete, funds credited | ✅ |
| failed | Failed | Bank rejected (insufficient balance/limit, etc.) | ✅ |
| refunded | Refunded | Airstar-unique — bank refunds after successful deposit | ✅ |
QuerySecuritiesAccountRsp — Securities Account Query Response
Complete securities account information under Airstar authorization:
| Field | Type | Description |
|---|---|---|
| code | uint32 | 200 = Success |
| status | string | Authorization status (Mandate status) |
| deposit | object | Deposit limit information |
| withdraw | object | Withdrawal limit information |
| securities_accounts | array | Securities account list |
| bankcard_info | object | Bank card information |
SecuritiesAccount — Securities Account Details
| Field | Type | Description |
|---|---|---|
| market_id | uint32 | Market ID (1=HK, 2=US) |
| account_number | string | Securities account number (16 digits) |
| capital_infos | array[CapitalInfo] | Capital information per currency |
| account_name_en | string | English account name |
| account_name_cn | string | Chinese account name (Simplified) |
| account_name_hk | string | Traditional Chinese account name |
CapitalInfo — Capital Information
| Field | Type | Description | Unit |
|---|---|---|---|
| currency | string | Currency | HKD/USD/CNH |
| cash_withdrawal_amount | uint64 | Withdrawable cash | Cents (divide by 100) |
| max_withdrawal_amount | uint64 | Maximum withdrawable amount | Cents (divide by 100) |
Amount Unit is Cents
Amount fields in CapitalInfo are in cents, not yuan. For example, cash_withdrawal_amount = 5000000 means 50,000.00 yuan. Development and operations must note unit conversion to avoid amount errors.
Key Differences from CMB/CMBC
| Dimension | CMB/CMBC | Airstar |
|---|---|---|
| Protocol | SM2 encrypted Socket / Protobuf | REST API + RSA-OAEP |
| Communication Mode | Socket bidirectional link (bank push) | HTTP request-response + polling |
| CNH Support | Limited / completely unsupported | Full support HKD + USD + CNH |
| Processing Session | 08:40 ~ 15:59 | 08:30 ~ 15:59 (10 minutes earlier) |
| Deposit Result Retrieval | Socket real-time push | Up to 60 polls |
| Withdrawal Result Retrieval | Socket real-time push | Up to 10 polls + 2h fallback sync |
| Refund Mechanism | None | Has REFUNDED status (requires reversal) |
| Authorization Model | BST agreement (2 states) | Mandate authorization (6 states) |
| Online Account Opening | Not supported | Supports three-in-one flow |
| Initiator | moomoo only / Bank only (varies by interface) | moomoo + bank bidirectional |
| Code Language | Python | Go |
| Interface Count | 9 RPC | 11 bank-side REST APIs + 14 internal RPC methods |
| Data Format | Binary / Protobuf | JSON |
One-line summary: CMB/CMBC is bank-dominated dedicated line communication (push model); Airstar is moomoo-dominated API calling (polling model).
RSA-OAEP Encryption Scheme
Encryption Parameters
| Parameter | Value | Description |
|---|---|---|
| Algorithm | RSA-OAEP | Asymmetric encryption + OAEP padding |
| Hash Function | SHA1 | OAEP padding uses SHA1 |
| Block Size | 200 bytes/block | Plaintext exceeding 200 bytes needs block encryption |
| Encoding | Base64 | Base64-encoded after encryption |
Encryption Flow
Request/Response Format
Encrypted request body:
{
"messageBody": "dGhpcyBpcyBhIGJhc2U2NCBlbmNvZGVkIGVuY3J5cHRlZCBtZXNzYWdl..."
}Decryption flow (after receiving response):
- Extract Base64 string from
messageBody - Base64 decode to get ciphertext
- Block RSA-OAEP decrypt
- Concatenate plaintext → parse JSON
Security Comparison with CMBC SM2
| Dimension | CMBC SM2 | Airstar RSA-OAEP |
|---|---|---|
| Algorithm type | National crypto elliptic curve | RSA asymmetric |
| Key length | 256 bits | 2048+ bits |
| Compliance requirement | Mandatory for Chinese domestic banks | International standard |
| Block processing | Not needed | 200 bytes/block |
| Performance | Faster | Slower (large keys) |
| Airstar, as a Hong Kong virtual bank, is not subject to Chinese national crypto algorithm compliance requirements and thus uses the internationally standard RSA scheme. |
Polling Strategy
Airstar doesn't support Socket push; all async operation results are obtained via polling. This is the most critical technical detail in Airstar integration.
Deposit Polling
| Job Name | Responsibility | Poll Limit | Follow-up Action |
|---|---|---|---|
| AsbBstCreateJob | Send deposit request to Airstar | — | Enter polling after successful creation |
| AsbBstCreateResultJob | Poll deposit result | Max 60 times | Success→credit / Failed→notify / Timeout→manual |
| AsbBstDepositJob | Execute crediting after confirmation | — | Create deposit flow, update balance |
Withdrawal Polling
| Job Name | Responsibility | Poll Limit | Follow-up Action |
|---|---|---|---|
| AsbBstTransfer | Withdrawal instruction + result polling | Max 10 times | Success/Failed→process / Timeout→fallback |
| SyncAsbBstWithdraw | Fallback sync after timeout | 2-hour window | Result within window→process / Timeout→manual |
Polling Timeout ≠ Transaction Failure
Polling timeout only means moomoo-side didn't get the bank-side result within expected time. The transaction may still be processing on the bank side. Operations encountering this situation should proactively contact Airstar to confirm transaction status; do not directly determine it as failed.
Limit System
Three-Tier Limit Configuration
Airstar uses the same three-tier limit system as CMB/CMBC, but with different specific values:
| Currency | Per-transaction Max | Cumulative Alarm | Daily Circuit Breaker |
|---|---|---|---|
| HKD | 3,000,000 | 40,000,000 | 15,000,000 |
| USD | 500,000 | 10,000,000 | 3,000,000 |
| CNH | 0 (no limit) | 0 (no alarm) | 0 (no circuit breaker) |
CNH No Limits
Airstar's CNH limits are all set to 0, meaning no restrictions. This aligns with CNH being Airstar's exclusive advantage positioning — encouraging RMB deposits/withdrawals. However, actual operations are still subject to bank-side internal limits.
Circuit Breaker Mechanism
Circuit breaker trigger condition: Daily cumulative amount - Withdrawal amount < stop_amount
| Circuit Breaker Phase | System Action |
|---|---|
| Trigger | Automatically close that currency's auto-withdrawal for the day |
| Alert | Feishu message notifies operations team |
| Recovery | Operations manually restores after confirming risk is controllable, or auto-resets next day |
Online Account Opening Minimum Deposit
| Currency | Minimum Deposit | Description |
|---|---|---|
| HKD | 10,000 | Ensure new clients have sufficient trading capital |
| USD | 1,500 | — |
| CNH | 10,000 | — |
Regular deposits have no minimum amount requirement; this limit only applies to the first deposit in the online account opening three-in-one flow.
REFUNDED Status (Airstar-Unique)
REFUNDED is Airstar's unique status distinguishing it from all other BST banks — the bank initiates a refund after successful deposit.
REFUNDED vs FAILED Comparison
| Dimension | FAILED | REFUNDED |
|---|---|---|
| Meaning | Bank rejects deposit request | Bank refunds after successful deposit |
| Funds | Never reached securities account | Credited then returned |
| Balance Impact | None (never increased) | Increased then must be deducted |
| Reversal Operation | Not needed | Must execute (auto-reversal) |
| User Experience | Deposit failed notification | Deposit success then refund notification |
| Prevalence | All banks have this | Airstar only |
Reversal Flow
REFUNDED Trigger Scenarios
| Scenario | Description |
|---|---|
| Bank anti-fraud | Bank's risk control system detects abnormal transaction after deposit |
| Compliance requirements | Regulator requires specific transactions to be returned |
| User complaint | User disputes unauthorized transaction at bank |
| System error | Bank-side double credit correction |
Insufficient Balance During Reversal
If the user has already used deposited funds for trading (buying stocks, etc.) after successful deposit, there may be insufficient balance during reversal to deduct the full amount. This requires operations manual intervention — this is the most complex exception scenario for REFUNDED status.
Security Check (Airstar-Unique)
Airstar Bank adds risk level assessment to authorization and deposit flows — a mechanism traditional BST banks don't have:
Risk Level Handling
| Risk Level | Level Value | System Action | Description |
|---|---|---|---|
| Level 0-2 | APPROVE | Normal pass | Low-risk transaction, auto-approved |
| Level 3 | MANUAL | Route to manual review | Medium risk, operations decides after manual review |
| Level 4 | REJECT | Direct rejection | High risk, auto-reject transaction |
| VERIFY | — | Additional verification needed | Require user to complete extra identity verification |
Risk Level Source
Risk levels are returned by the Airstar bank-side; moomoo-side decides handling based on them. The bank-side risk control model considers:
- Whether transaction amount is abnormal
- Whether transaction frequency is abnormal
- Customer historical behavior
- Device/IP risk
- Anti-money laundering (AML) rules
Coordination with moomoo-Side Risk Control
Dual risk control means: A transaction may pass moomoo-side risk control (not on blacklist, not over limit) but be blocked by Airstar-side risk control (Level 3/4). Operations troubleshooting deposit/withdrawal failures should check risk control logs on both sides.
Deposit Flow
Two Deposit Sources
| Source | source Value | Description |
|---|---|---|
| moomoo-initiated | 1 | User taps deposit in moomoo App |
| Bank-initiated | 2 | User initiates transfer to securities account in Airstar Bank App |
Bank-initiated (source=2) is Airstar-unique — CMB/CMBC BST deposits can only be initiated from the moomoo side.
Complete Deposit Flow
Deposit Trading Session
| Session | Time Range | Description |
|---|---|---|
| Normal trading session | 08:30 ~ 15:59 | 10 minutes earlier than CMB/CMBC |
| Non-trading session | 16:00 ~ next day 08:29 | Does not accept new requests |
Withdrawal Flow
Complete Withdrawal Flow
auto_bs Auto-Withdrawal Conditions
Airstar withdrawal uses auto_bs auto-withdrawal channel, AUTO_SETTING_ID = 3:
| Condition | Description |
|---|---|
| Mandate status = OPEN | Authorization relationship valid |
| Account status normal | Not frozen, not closed |
| Not on withdrawal blacklist | Blacklist check passed |
| Per-transaction within limit | HKD ≤ 3M / USD ≤ 500K |
| Daily not circuit-broken | Today's cumulative hasn't triggered stop threshold |
| Within trading session | 08:30 ~ 15:59 |
| Risk level ≤ Level 2 | Airstar-side risk control passed |
If any condition is not met, routes to manual approval. Note condition 7 (risk level) is an auto-withdrawal prerequisite unique to Airstar.
Online Account Opening (Airstar-Unique)
Airstar supports three-in-one online account opening — new customers complete everything within moomoo App:
Three-in-one vs Traditional Flow
| Step | Traditional Flow (CMB/CMBC) | Three-in-one (Airstar) |
|---|---|---|
| Account opening | Complete in moomoo App | Complete in moomoo App |
| Authorization | Go to bank counter/online banking to sign | Complete Mandate within moomoo App |
| Deposit | Return to moomoo App to deposit | Complete first deposit immediately |
| Total time | 1~3 days (including bank signing) | A few minutes |
First Deposit Limits
| Currency | Minimum Deposit | Regular Deposit Minimum | Multiple |
|---|---|---|---|
| HKD | 10,000 | No requirement | — |
| USD | 1,500 | No requirement | — |
| CNH | 10,000 | No requirement | — |
The higher minimum limit for first deposits ensures new customers have sufficient funds to trade, avoiding "register but don't trade" inactive users.
Exception Scenarios Handbook
Authorization Exceptions (5 Types)
| # | Exception | Symptom | Cause | Handling |
|---|---|---|---|---|
| 1 | Authorization stuck at PROCESSING | Mandate has no status change for extended time | Bank processing delay | Query QueryAuth to confirm status |
| 2 | Authorization FAIL | CreateAuth returns failure | Name/ID mismatch | Verify user information, guide retry |
| 3 | Authorization CANCEL | User cancelled at bank | User's deliberate action | Confirm user intent |
| 4 | Partial market mapping failure | Some of 3 markets have binding exceptions | Market configuration issue | Manually supplement binding relationship |
| 5 | CancelAuth failure | Cancel authorization request rejected | Mandate not in OPEN state | Check current status then retry |
Deposit Exceptions (7 Types)
| # | Exception | Symptom | Cause | Handling |
|---|---|---|---|---|
| 1 | Deposit creation failure | CreateDeposit returns error | Parameter exception/Mandate not OPEN | Check parameters and Mandate status |
| 2 | 60-poll timeout | Status stays pending | Bank processing exception | Manually contact Airstar to confirm |
| 3 | Deposit failure | status=failed | Bank rejected | Check fail_code/fail_reason |
| 4 | Deposit refund | status=refunded | Bank initiated refund | Execute reversal, notify user |
| 5 | Reversal insufficient balance | REFUNDED but deduction fails | User already spent deposited funds | Operations manual intervention |
| 6 | Bank-initiated deposit not synced | source=2 but moomoo didn't receive | API call lost | Manually query Airstar API to supplement |
| 7 | Duplicate deposit | Same deposit creates multiple records | request_id dedup failure | Investigate via request_id/bank_ref_id |
Withdrawal Exceptions (5 Types)
| # | Exception | Symptom | Cause | Handling |
|---|---|---|---|---|
| 1 | Withdrawal instruction failure | AsbBstTransfer error | Parameter exception/bank rejection | Check error code, release freeze |
| 2 | 10-poll timeout | AsbBstTransfer exhausted | Bank processing slowly | Enter SyncAsbBstWithdraw |
| 3 | 2h fallback timeout | SyncAsbBstWithdraw window ends | Bank processing exception | Manually contact Airstar to confirm |
| 4 | Freeze not released | Withdrawal failed but funds still frozen | Release flow exception | Manually release frozen funds |
| 5 | Bank-side withdrawal not synced | User initiated withdrawal from Airstar App | Callback lost | Manually query API to execute deduction |
Common Customer Complaints Top 3
| # | User Feedback | Cause | CS Script |
|---|---|---|---|
| 1 | "Insufficient balance, can't deposit" | 140630005 bank balance insufficient | "Please confirm your Airstar Bank account has sufficient balance and try again" |
| 2 | "Authorization still processing" | Mandate stuck at PendingAuthorise | "The bank is reviewing your authorization application, usually completed within 1-2 business days" |
| 3 | "Funds returned after successful deposit" | REFUNDED status | "The bank returned this deposit for compliance reasons, please contact customer service for details" |
Monitoring & Alerts
Airstar 13 Key Alerts
| # | Alert Item | Trigger Condition | Severity | Handling |
|---|---|---|---|---|
| 1 | Authorization creation timeout | Mandate in PROCESSING exceeds threshold | High | Check Airstar API connectivity |
| 2 | Authorization failure rate spike | FAIL count exceeds limit per time unit | High | Investigate bank-side exceptions |
| 3 | Deposit creation failure | AsbBstCreateJob consecutive failures | High | Check request parameters and API status |
| 4 | Deposit polling timeout | 60 polls exhausted | High | Manually contact Airstar to confirm |
| 5 | Deposit refund (REFUNDED) | REFUNDED status received | Critical | Immediately reverse, notify user and operations |
| 6 | Withdrawal polling timeout | 10 polls exhausted | High | Enter SyncAsbBstWithdraw |
| 7 | Withdrawal fallback timeout | 2h window ends still pending | Critical | Manually confirm bank-side status |
| 8 | Freeze not released | Withdrawal failed but freeze not rolled back | Critical | Manually release freeze |
| 9 | Daily circuit breaker triggered | Today's cumulative reaches stop threshold | Medium | Operations decides whether to restore |
| 10 | Cumulative alarm triggered | Cumulative reaches alarm threshold | Medium | Operations monitors, assess risk |
| 11 | Duplicate transaction detected | request_id duplicate | High | Check dedup logic |
| 12 | API connectivity exception | Airstar API timeout or error rate increase | Critical | Contact Airstar Bank tech support |
| 13 | Bank-initiated volume anomaly | source=2 transaction volume spike | Medium | Investigate if normal business fluctuation |
Code Location & Service Deployment
| Dimension | Description |
|---|---|
| Service Name | airstar_service |
| Code Language | Go |
| Proto File | airstar_service/proto/airstar_service.proto |
| Dependencies | RSA encryption library, HTTP client, JSON serialization |
Key Code Modules
| Module | Responsibility |
|---|---|
airstar_service/api/ | 11 bank-side REST API request/response handling |
airstar_service/crypto/ | RSA-OAEP encryption/decryption (200-byte blocks) |
airstar_service/job/ | Polling Jobs (CreateResult/Transfer/Sync) |
airstar_service/mandate/ | Mandate authorization state machine |
airstar_service/deposit/ | Deposit logic (including REFUNDED reversal) |
airstar_service/withdraw/ | Withdrawal logic (including circuit breaker check) |
airstar_service/proto/ | Protobuf interface definitions |
airstar_service/config/ | Bank connection config, RSA keys, limit parameters |
Change Guide
| Change Requirement | Modification Location | Description |
|---|---|---|
| Modify limits | SQL seed + config | HKD/USD/CNH three-tier limits |
| Modify polling count | job/ polling logic | Adjust 60/10 attempt limits |
| Modify processing session | Session validation logic | Currently starts at 08:30 |
| Add supported currency | CreateDepositReq + limit config | Requires Airstar-side simultaneous support |
| Modify RSA keys | config/ + crypto/ | Requires coordination with Airstar for key rotation |
| Adjust risk level strategy | Security check handling logic | e.g., change Level 3 to auto-reject |
| Modify reversal logic | deposit/ REFUNDED handling | Adjust reversal failure fallback strategy |
| Modify auto-withdrawal conditions | auto_bs config + AUTO_SETTING_ID=3 | Reference Withdrawal Rules Manual |
| Add new API interface | Airstar provides new API docs → implement handler | Requires Airstar-side to publish interface first |
| Adjust alert thresholds | Monitoring configuration | Adjust sensitivity based on business volume |
After Reading
| I want to... | Go to |
|---|---|
| See comparison of all three BST banks | BST Banks Overview |
| Understand CMBC's Protobuf/SRPC scheme | CMBC |
| See withdrawal auto-approval conditions and three-tier limits | Withdrawal Rules Manual |
| Check Airstar error codes (140630xxx / 140670xxx) | Unified Error Code Center |
| See BST task schedules and alerts | Scheduled Tasks & Monitoring |
| See all banks capability comparison | Bank Capability Matrix |
| Understand SBA fund orchestration freeze-release mechanism | SBA Service Architecture |