OCBC
Verified against 5 monthly statements · balance chain reconciles.
Drop a bank CSV or PDF on the page. Kiira parses it, dedupes the rows, and matches every line to an existing invoice, expense, or daily sales summary. The unreconciled pile gets smaller every week, not bigger.
Matching cheap before matching clever. We try the fast, certain checks first — and only fall back to AI for the rows nothing else can place. Costs stay low, trust stays high.
Same amount, within three days, same supplier or payer name. 60–70% of OCBC rows land here on the first upload. No AI. Under a second per statement.
When dates don't quite line up — say you sent an invoice on the 10th and the bank dates it the 13th — Kiira looks 14 days either way and pairs them by amount and supplier. Catches the late payments and the rows the bank put out of order.
Every manual match teaches Kiira. Third time you tag "FACEBK ADS" as Marketing, the fourth statement auto-drafts it — with your category, ready to review.
The last 5–10%, the ones that never repeat. Kiira asks the model for a category and supplier suggestion — only if you're not over the month's AI spend cap, and never as a silent post.
Three banks have purpose-built parsers today. Every other Malaysian bank's PDF goes through a document-extraction model that reads prose tables and image-only scans. Either way, the rows come out the same shape.
Verified against 5 monthly statements · balance chain reconciles.
Verified against 6 monthly statements · current + business accounts.
Current + savings account statements. Scanned PDFs route to AI extract.
Document-extraction model. Sample CSVs welcome — we'll write a direct parser.
Same model path. Drop a statement and we'll tell you if it parses.
Prose-layout statements read by the fallback. MYR rows book normally.
Don't see yours? Email a sample statement to [email protected] — we'll add the parser if there's enough of a pattern to be worth it.
Kiira works out which rows it has already seen, so overlapping uploads sort themselves out. You can't accidentally double-count a transaction. You can't accidentally skip one either.
Same file = same import. Re-uploading shows "already imported" with a link to the original statement — no second row gets written.
Kiira fingerprints each row from its date, amount, description, balance, and position in the statement. Stack overlapping months and only genuinely new rows get added.
Two RM 9.72 Facebook Ads charges on the same day? They sit on different lines of the statement, so both book and both show up for review — neither gets dropped as a "duplicate".
We keep a copy of every row exactly as the bank sent it. If a parser ever reads a column wrong later, we can replay the import without asking you for the file again.
No 200-line reconciliation sheet. Kiira surfaces the rows that need a call — auto-matches for spot-checking at the top, decisions in the middle, ignored at the bottom. One row at a time.
Every auto-draft waits in the review queue until you approve it. Every AI call has a spend cap and gets logged. The cheap matching does the heavy lifting; AI stays on a short leash — your books stay your books.
Auto-drafts attach to the bank row as a link — they don't quietly turn into an expense behind your back. One click unlinks the draft and rolls it back cleanly.
Pattern memory eats most of the "unknown" rows by month two. The fallback only fires on genuine first-encounters, and every call counts against your AI spend budget.
Pattern seen 3+ times, or AI confidence ≥0.85. Anything below that sits in the queue — we'd rather leave a row unmatched than guess wrong.
Malaysia doesn\'t have a usable bank-connect API for SMEs yet. Upload is slower, but your credentials never leave your bank.
0 new · 90 duplicates so you see what happened.
Where the matched rows roll up into P&L, cash flow, and SST.
The other half of what feeds the match — forward a receipt, we book it.
The invoices the bank import reconciles against.
Your accountant sees the same review queue you do.
Import, dedup, algorithmic matching, pattern memory, and review queue all ship on the free tier. AI fallback counts against your shared monthly spend budget — same one WhatsApp capture uses.