Upload a CDS Statement of Account or Account Opening Notice — and receive normalized JSON: 15-digit account number, holder profile, ADA broker reference, stock holdings (with prices, balance units, and Shariah flag), and transaction history. Ready for broker onboarding, portfolio aggregation, KYC, or fund compliance.
The periodic Penyata Akaun / Statement of Account issued by Bursa Malaysia Depository to investors.
The one-time Notis Pembukaan Akaun issued when an investor opens a CDS account.
Anything that isn't a CDS document (bank statements, payslips, tax forms, etc.) is automatically rejected with HTTP 422 and never wastes an extraction call.
POST a multipart upload and receive a strict-schema JSON object with every CDS field, ready to drop into your pipeline.
Every stock holding row and every transaction row is extracted as a typed array — numbers as numbers, dates preserved, Shariah flag per holding.
The 15-digit CDS account number is returned without dashes — clean, hashable, ready to index.
If the upload isn't a Bursa Malaysia CDS document, the API responds with HTTP 422 and a clear error — no silent wrong-extraction.
10 requests / minute with per-request request_id correlation in every response — easy to debug and trace.
Uploads are processed in a private temp directory and removed after the request. Nothing retained on disk by default.
POST multipart/form-data with a single pdf field (≤ 20MB).
The service first confirms it's a CDS document, then extracts the right schema for Type A or Type B.
Receive a fixed-schema payload with typed numbers, a clean account number, and a request_id.
{
"result": {
"Document Type": "CDS Statement",
"CDS Account Number": "078004071479570",
"Account Holder Name": "AHMAD BIN ABDULLAH",
"Statement Period": "01.01.2024 - 31.12.2024",
"Account Status": "ACTIVE",
"Stock Holdings Summary": {
"Total Stocks Held": 3,
"Total Balance Units": 125000,
"Total Market Value MYR": 42850.00
},
"Stock Holdings": [
{
"Stock Code": "0259",
"Stock Name": "SNS NETWORK TECHNOLOGY BERHAD",
"Shariah Compliant": true,
"Balance Units": 100000,
"Last Price MYR": 0.245,
"Market Value MYR": 24500.00
}
],
"Transactions": [ /* … */ ]
},
"request_id": "a7b3c9d1e2f4"
}