banking
Connect Your Malaysian Bank Account
Step-by-step guide for connecting your Maybank, CIMB, Public Bank, RHB, Hong Leong, Bank Islam, Ambank, or OCBC account to IntBooks for automatic statement imports.
Last updated:
IntBooks supports direct bank feeds for the 8 largest Malaysian banks. Once connected, your bank statements import overnight and automatically match against existing invoices and bills. This article covers the connection process for each supported bank plus the manual upload fallback for unsupported banks.
Supported banks
| Bank | Connection type | Refresh frequency |
|---|---|---|
| Maybank | Direct API (M2U Biz) | Daily |
| CIMB | Direct API (BizChannel@CIMB) | Daily |
| Public Bank | Direct API (PB enterprise) | Daily |
| RHB | Direct API (Reflex Premium Plus) | Daily |
| Hong Leong | Direct API (HLB Connect First) | Daily |
| Bank Islam | Direct API (BIMB Biz) | Daily |
| Ambank | Direct API (AmAccess Biz) | Daily |
| OCBC | Direct API (Velocity@OCBC) | Daily |
For other banks (Bank Rakyat, MBSB, Affin, Standard Chartered, HSBC, UOB) we support manual upload of MT940 or CSV statements.
Step 1: Add the bank account record
- Go to Banking → Bank Accounts → Add Account.
- Pick your bank from the dropdown.
- Enter the account number and account name as they appear on your bank statement (this is what the matching engine uses).
- Select the currency (typically MYR).
- Pick the General Ledger account this bank account maps to. The default Malaysian chart of accounts has separate GL accounts for each bank — use the matching one (e.g.,
1102 — Maybank Current Account). - Set as default deposit account if it’s where customer payments land.
- Click Save.
The bank account now exists in IntBooks but is not yet connected to your bank.
Step 2: Authorize the bank feed
After saving the bank account record, click Connect Bank Feed. IntBooks redirects you to your bank’s authorization portal:
- Sign in to your bank’s online business banking portal with your normal credentials.
- Confirm the connection request from IntBooks.
- Set the read-only access scope — IntBooks only requests the ability to read transactions and balances, never to initiate payments.
- Approve the connection.
Your bank redirects you back to IntBooks with a green confirmation. The first statement sync starts immediately and imports the last 90 days of transactions.
Step 3: Verify the imported transactions
After the first sync (typically 30 to 60 seconds), go to Banking → Bank Accounts → [your account] → Transactions. You’ll see a list of imported transactions with these columns:
- Date
- Description (the bank’s narrative)
- Reference (the bank’s transaction reference)
- Debit / Credit
- Match status (auto-matched / manual / unmatched)
Auto-matched transactions are linked to existing invoices, bills, or journal entries by amount + date + reference. Look at the auto-matches first to confirm they look right.
Step 4: Match the unmatched transactions
For transactions the system couldn’t auto-match, click each one and pick from the suggested matches in the right panel. Common scenarios:
- Customer payment — match to one or more open invoices for that customer
- Supplier payment — match to one or more open bills
- Bank fee — categorize to the Bank Charges GL account
- Interest — categorize to the Interest Income GL account
- Owner contribution — categorize to Owner’s Equity
- Petty cash withdrawal — split into multiple expense categories
For repeated transactions (e.g., monthly Astro subscription, Adobe Creative Cloud), set up a bank rule so future transactions match automatically. Bank rules use a description regex + amount range to identify repeating patterns.
Step 5: Set up DuitNow QR on invoices
Once your bank account is connected, you can enable DuitNow QR codes on every invoice you issue. Go to Settings → Payments → DuitNow and:
- Toggle Enable DuitNow QR on invoices.
- Pick the bank account that should receive payments.
- Confirm the merchant ID — this is your business registration number with PayNet.
Every invoice PDF will now include a DuitNow QR that customers can scan with any Malaysian banking app to pay you instantly. The payment lands in your bank account and IntBooks auto-matches it to the source invoice.
Manual upload fallback
If your bank isn’t in the supported list, you can still import statements manually:
- Download a MT940 file or a CSV statement from your bank’s portal.
- Go to Banking → Bank Accounts → [your account] → Import Statements.
- Drag the file onto the upload area.
- The wizard parses the file and shows a preview.
- Click Import to commit.
The same auto-matching engine runs against manually imported transactions, so the rest of the workflow is identical to the direct feed case.
Common issues
”Connection failed — please re-authorize”
Bank connection tokens expire after 90 days for most Malaysian banks (a regulatory requirement). When this happens, IntBooks sends an in-app notification. Click the notification, then re-authorize from the bank account screen. The re-authorization takes about 30 seconds.
Imported transactions are missing recent days
Direct bank feeds run overnight (typically between 02:00 and 04:00 MYT). Today’s transactions appear tomorrow morning. If you need real-time visibility, use a manual statement upload to fill the gap.
Auto-matching is matching the wrong invoices
Open the affected transaction, click Unmatch, then pick the correct invoice from the suggestions. If the same wrong match keeps happening, edit the bank rule that’s causing it under Banking → Bank Rules.
My bank statement has Chinese characters in the description
That’s fine — IntBooks stores the description in UTF-8 and the matching engine handles multi-byte characters correctly. The PDF and email rendering also handle them.
What’s next?
- Reconcile bank statements — month-end reconciliation walkthrough
- Create your first invoice — issue invoices that auto-match incoming payments
- Run monthly payroll — payroll posts directly to the connected bank account