CCB Asia
About This Page
What: CCB Asia's API statement collection, CcbasiaMatch matching rules, and BOCO date processing mechanism Audience: PMs needing to understand CCB integration details Prerequisites: Bank Capability MatrixReading time: 3 minutes Owner: Deposit Product Manager
Key takeaway: CCB Asia collects statements via API. Its matching engine has a unique BOCO date processing mechanism — attention needed for cross-day statement attribution.
Capability Overview
| Capability | Supported | Protocol/Channel | Core Service |
|---|---|---|---|
| Deposit Statement Collection | ✅ | API scheduled pull | Standard BankFlow collection |
| Withdrawal | ❌ | — | — |
| Sub-account | ❌ | — | — |
| eDDA/eDDI | ❌ | — | — |
| FPS | ❌ | — | — |
| BST | ❌ | — | — |
CCB Asia is a deposit-only bank — it only collects statements and matches deposit applications, with no withdrawal support. Its matching rules are among the strictest of all banks, requiring all four conditions to be met.
Channel Interface Overview
| Dimension | Description |
|---|---|
| Protocol | API |
| Data Collection | Scheduled pull |
| IMPORT_BANK_ID | 15 (CCBASIA) |
| TransType | 206 |
| Matching Engine | CcbasiaMatch |
Deposit: API Statement Collection
Collection Method
CCB provides statement data through a standard API interface. The system pulls on a schedule and writes to the unified BankFlow format.
Data Flow
API Interface Fields
CCB's statement data is based on the generic BankFlow format, containing the following key fields:
| Field | Description | Purpose |
|---|---|---|
| transaction_id | Transaction unique identifier | Deduplication key |
| transaction_date | Transaction date | Date window matching |
| value_date | Value date | Auxiliary date reference |
| currency | Currency | Currency matching condition |
| amount | Transaction amount | Amount tolerance matching |
| payer_name | Payer name | Exact name matching |
| payer_account | Payer account | Auxiliary identification |
| beneficiary_account | Beneficiary account | moomoo receiving account identifier |
| transaction_type | Transaction type | Distinguish credit/debit |
| remarks | Transaction remarks | Supplementary information |
Statement Status Processing
CCB statements follow the standard statement disposition flow:
| Status | Meaning |
|---|---|
| 0 | Pending |
| 1 | Matched |
| 2 | Credited |
| 3 | Ignored |
| 4 | Abnormal |
Matching Rules (CcbasiaMatch)
Core Characteristics
CCB's matching rules are among the strictest of all banks — all four conditions must be met simultaneously; failure of any one means no match.
| Dimension | Rule | Description |
|---|---|---|
| Auto-deposit | ❌ Not supported | Assisted match recommendation only, requires manual confirmation |
| Currency Match | Must be identical | Statement currency = Application currency |
| Name Match | English exact match (nameUsEqual) | No fuzzy/similar matching supported |
| Amount Match | Standard tolerance (see table below) | Allows small fee deductions |
| Date Match | BOCO date rule (daySimilarBoc) | -3 ~ +4 days, 2 days more than standard |
Amount Tolerance
| Currency | Tolerance Range | Compared to BOCHK Local |
|---|---|---|
| HKD | CRM - 20 ≤ Statement ≤ CRM | Same as BOCHK local (-20) |
| USD | CRM - 3 ≤ Statement ≤ CRM | Same as BOCHK local (-3) |
Why is the tolerance the same as BOCHK local? CCB deposits are primarily local transfers with low and predictable fees, so the standard tolerance is sufficient.
BOCO Date Window
CCB uses the daySimilarBoc date rule with a window of -3 ~ +4 days, which is 2 days more than the standard -3 ~ +2 days:
| Date Rule | Window Range | Used By |
|---|---|---|
daySimilar (Standard) | -3 ~ +2 days | DBS, Hang Seng, and most other banks |
daySimilarBoc (BOCO) | -3 ~ +4 days | CCB, BOCHK cross-border |
Why 2 extra days? CCB and BOCHK cross-border share the BOCO date rule. Cross-border transfers may be delayed due to holidays or timezone differences, and the +4 day forward window covers more delay scenarios. Although CCB is primarily local, it uses the same rule.
Complete Matching Logic
Matching Conditions Summary
| Condition | Check Method | Requirement | Result if Missing |
|---|---|---|---|
| Currency | Direct comparison | Statement currency = Application currency | No match |
| Name | nameUsEqual | English name exact match (case-insensitive) | No match |
| Amount | amountSimilar | HKD: -20~0 / USD: -3~0 | No match |
| Date | daySimilarBoc | Statement date within application date -3~+4 days | No match |
Difference from Other Banks
Most banks return "standard match" when amount tolerance is met, and may downgrade to "suggested match" if some conditions fail. CCB has no downgrade mechanism — either all four conditions pass and return standard match, or it's a direct no-match.
Scheduled Tasks
| Task | Frequency | Description |
|---|---|---|
| Statement Collection | Scheduled pull | Fetch latest statements from CCB API |
| match:ccbasia | Every 3 minutes | Execute CCB statement matching |
Follow-up time: 1 day — after CCB matching results are recommended to operations, staff must complete manual review within 1 day.
Comparison with Similar Banks
| Dimension | CCB | BOCHK Local | ICBC |
|---|---|---|---|
| Deposit Protocol | API pull | B2E XML API | Bank-Enterprise Direct API |
| Withdrawal | ❌ | ✅ FTS/FPS/Wire | ❌ |
| HKD Tolerance | -20 | -20 | -20 |
| USD Tolerance | -3 | -3 | -3 |
| Date Window | -3~+4 days (BOCO) | -15~+15 days | Standard |
| Name Rule | Exact (nameUsEqual) | Exact or similar | Standard |
| Auto-deposit | ❌ | ✅ | ❌ |
| Strictness | Most strict | Medium | Medium |
Change Guide
| Change Requirement | Modification Location | Description |
|---|---|---|
| Modify amount tolerance | CcbasiaMatch.php → amountSimilar() | Adjust HKD -20 / USD -3 thresholds |
| Modify date window | CcbasiaMatch.php → daySimilarBoc() | Adjust -3~+4 day range |
| Relax name matching | CcbasiaMatch.php → change to nameSimilar() | From exact match to similar match |
| Enable auto-deposit | CcbasiaMatch.php → add depositInstance return logic | Currently not supported, enabling requires risk assessment |
| Add supported currency | CcbasiaMatch.php → currency check | Add new currency tolerance configuration |
| Modify matching frequency | deposit/doc/crontab.sh → match:ccbasia | Adjust cron interval |
| Modify collection frequency | Statement collection service cron config | Adjust scheduled pull interval |
Monitoring & Alerts
| Alert Item | Trigger Condition | Severity | Handling Steps |
|---|---|---|---|
| API connection timeout | CCB API unresponsive | Medium | Check network, confirm CCB-side service status |
| High English name match failure rate | Many statements rejected due to name mismatch | Medium | Check name format requirements (exact match), guide users to verify |
| BOCO date offset | Statement date deviates from expected | Medium | Confirm timezone processing logic, check BOCO date conversion |
API Interface Field Details
Statement Query Request
| Field | Type | Required | Description |
|---|---|---|---|
account_no | string | ✅ | CCB account number |
start_date | string | ✅ | Query start date. Format YYYYMMDD |
end_date | string | ✅ | Query end date. Format YYYYMMDD |
page_no | int | ❌ | Page number, default 1 |
page_size | int | ❌ | Items per page, default 50 |
Statement Query Response
| Field | Type | Description |
|---|---|---|
trans_date | string | Transaction date (BOCO format) |
trans_amount | decimal | Transaction amount |
balance | decimal | Balance after transaction |
trans_type | string | Transaction type |
counterparty_name | string | Counterparty name (used for name matching) |
counterparty_account | string | Counterparty account |
remark | string | Transaction remarks |
English Name Matching Details
CCB is the only bank requiring exact English name matching. Matching rules:
| Dimension | Rule | Description |
|---|---|---|
| Match method | Exact match | counterparty_name in statement must exactly match the English name in CRM application |
| Case sensitivity | Case-insensitive | JOHN DOE and John Doe are considered a match |
| Space handling | Ignores extra spaces | JOHN DOE and JOHN DOE are considered a match |
| Common failure cause | Name order | Bank-side DOE JOHN vs moomoo-side JOHN DOE |
| Common failure cause | Middle name | Bank-side includes middle name while moomoo-side doesn't |
| Common failure cause | Special characters | Bank-side contains - or ' (e.g., O'BRIEN) |
Name mismatch is the most common matching failure for CCB
Operations staff performing manual matching should pay special attention to comparing name order and spelling. If confirmed to be the same person, manual match confirmation is acceptable.
After Reading
| I want to... | Go to |
|---|---|
| See CCB's position among all banks | Bank Capability Matrix |
| Understand the full matching engine logic | Matching & Auto-Deposit |
| Compare with another strict matching bank | ICBC |
| See detailed date window rules | Deposit Reference |
| Look up TransType and Bank ID reference | Deposit Reference |