Import a bank or credit card statement as a PDF — every bank row checked against the printed balance
銀行及信用卡月結單可直接以 PDF 匯入——銀行交易逐行核對單上結餘
If your bank does not offer a CSV export, you can now drop the statement PDF straight into Statement input. Scanned statements work too — the kind your bank sends as an image rather than text. Before anything is charged, Booksaidso tells you what it thinks the document is: the bank, the account and the period, read from the first page. If it looks like a credit card statement and you picked bank, it says so and offers to switch in one click. What makes this different from reading a document by eye is that the figures are checked, not trusted. Every transaction is re-computed against the running balance the statement itself prints — previous balance, plus what went in, minus what went out, must equal the next line. A row that does not reconcile is held back and shown to you rather than imported, and if too much of a statement fails to add up nothing is imported at all and your credits are returned. Credit card statements are checked against their printed summary totals instead, since a card statement carries no running balance; if the totals disagree you are shown by how much, and if the statement prints no totals at all Booksaidso says the rows could not be checked rather than letting silence suggest they were. A consolidated statement covering several accounts is split automatically, so a savings account and a card on the same PDF become two separate imports, each with its own review. Reading costs 1 credit per page, quoted before you confirm; categorising the rows is then quoted separately as usual. Statements are read on zero-data-retention AI endpoints, and we keep credit card numbers as their last four digits only. Bank account numbers are kept in full, on purpose — a card number is a credential, while an account number is what tells your accounts apart and lets an accountant reconcile them.
若貴行未提供 CSV 匯出,現可直接將月結單 PDF 拖入「月結單匯入」。掃描版月結單同樣支援——即銀行以圖像而非文字形式發出的版本。在扣取任何點數之前,Booksaidso 會先說明它認為此文件是甚麼:銀行、戶口及期間,均讀自首頁。若文件看來是信用卡月結單而您選擇了銀行,系統會提示並可一鍵切換。此功能與一般「用眼睇」讀取文件的分別,在於數字經過核對,而非直接採信。每筆交易均會以月結單自行列印的結餘重新驗算——上期結餘加存入減提取,必須等於下一行的結餘。無法對帳的一行會予以保留並顯示給您,而不會匯入;若整份月結單有過多行數無法對帳,則不會匯入任何項目,並退回點數。信用卡並無逐行結餘,因此信用卡月結單改以單上的摘要總額核對;若總額不符,系統會顯示差額,而若月結單根本沒有列印總額,系統會明確說明各行無從核對,不會以沉默令人誤以為已經核實。涵蓋多個戶口的綜合月結單會自動拆分,因此同一份 PDF 上的儲蓄戶口與信用卡會成為兩筆獨立匯入,各自覆核。讀取費用為每頁 1 點,並在您確認前報價;其後的分類則如常另行報價。月結單以零數據保留(ZDR)的 AI 端點處理,而信用卡號碼只會保留最後四位數字。銀行戶口號碼則有意完整保留——信用卡號碼屬支付憑證,而戶口號碼是用來分辨戶口、供會計師對帳的識別碼。
New · 新功能
Tell the chat you moved money — and send up to 15 receipts at once
對話即可記錄資金調撥,並可一次過傳送 15 張收據
You can now record a transfer just by saying it: "moved $5,000 from the company account to my personal one", "repaid the company card", "Stripe paid out to the bank". Money moving between your own accounts, or between the business and its owner or staff, is not income or an expense, so it stays out of your P&L and lands on the Payment Method Summary where it belongs — the same as a transfer you enter by hand. You name the two sides in your own words and Booksaidso works out the rest, showing you the route (公司銀行 → 董事/東主往來) to confirm before anything is saved. Paying an outside party is still an expense, however you paid it: a bank transfer to a supplier is a supplier cost, not a transfer. Staff advances can also be recorded conversationally now — say an employee paid out of pocket and it is logged as money the company owes them back. Separately, a chat message now carries up to 15 receipts instead of 5, and large batches are prepared noticeably faster on a phone. Because one PDF can hold many invoices, a single message can now return up to 50 transactions — shown as compact rows so a long batch is still quick to check. If a message would run past that, Booksaidso says how many were left out instead of quietly showing you a shorter list, and if a batch is simply too large to read in one go it tells you so and charges nothing for the attempt.
Import your payment platform report — real margins, and payouts that match your bank
匯入收款平台報表——真實毛利,提款自動對上銀行紀錄
Bulk Upload now takes the report your payment platform exports — Stripe first, with other platforms in beta. Sales are booked at their gross amount with the platform's fees recorded as separate costs, so your margin is the real one rather than a net figure with the fees buried inside it; the per-sale processing fee and the platform's own billing fee land in different accounts. Each day's sales, refunds and fees become one entry per kind, and the report is attached to every entry as its audit evidence, so the per-transaction detail is always one click away. Reading the report costs a flat 1 credit however long it is: the AI reads the list of transaction types in the file once, and everything after that is arithmetic. Payouts to your bank are recognised as transfers, and when the same money appears on your bank statement it is offered as a link to the entry you already have — in either order of import, so nothing is counted twice. Importing the same period again warns you first and links rather than duplicates. If the platform's own balance summary is to hand, drop it in and the import checks that its closing balance ties to the rows on screen. A row the AI cannot place blocks the import instead of quietly landing in the wrong account.
Classifying an imported statement — bank, credit card or vendor CSV — now costs 1 credit per 5 rows instead of 1 per 2. A 100-row credit card statement that used to take 50 credits now takes 20. Nothing else changes: you still see the exact quote before anything is charged, confirming is still free, and failed rows are still refunded. Receipt and PDF uploads keep their current pricing.
Import your bank statement — income, expenses and transfers, sorted for you
匯入銀行月結單——收入、支出、轉賬自動分類
Bulk Upload now takes the CSV your bank exports. Whether each line is money in or money out is read from the statement itself — never guessed — and the AI proposes what every line is: income from a customer, a business expense, or a credit card repayment or payment-platform payout, which are movements rather than profit. You review everything in one table, adjust anything, and confirm the whole statement in one click. Every entry it creates carries the statement as its audit evidence, and lines that match transactions you already recorded are offered as attachments instead of duplicates. Name the account the statement came from and every entry is tagged with it. On Business, an opening balance printed on the statement flows straight into your bank summary. Importing the same period twice gets a clear warning before any credits are spent. Transfers the AI proposed are marked for your review — a bank line alone can't prove where the money went, so you stay in control. HKD accounts for now; the rows of bank and credit card statements are classified on zero-data-retention endpoints (see our Privacy Policy for the full AI data path).
「批量上載」現已支援銀行匯出的 CSV 月結單。每一行屬於存入還是支出,直接取自月結單本身,絕不推測;AI 會就每行提出建議:客戶收入、業務支出,或信用卡還款及支付平台過數(這些屬於資金調撥,不計入損益)。您可在同一個表格檢視及修改所有項目,一鍵確認整份月結單。每筆建立的交易都會附上該月結單作為審計證明;與已有紀錄相符的行,會建議附加為證明而非重複入帳。只要填上月結單所屬戶口,每筆交易都會標記該戶口。Business 方案下,月結單上印有的期初結餘會自動帶入銀行結餘總覽。重複匯入同一期間,系統會在扣除點數之前明確提示。由 AI 推測的轉賬會標示待覆核——單憑銀行一行紀錄無法證明資金去向,最終仍由您把關。現階段支援港幣戶口;銀行及信用卡月結單的逐行分類,只在零數據保留端點進行(完整 AI 數據流程詳見私隱政策)。
New · 新功能
Sort by amount — to catch the duplicates we can't
按金額排序——找出系統偵測不到的重複
Booksaidso flags duplicates automatically, but only when it's confident: the same amount on the same day, or within a few days of a statement line. Some real duplicates slip through — a receipt and its card line that landed weeks apart AND differ by a rounding cent, or a supplier's monthly total sitting beside the individual invoices that make it up. Nothing can match those reliably, so instead of guessing we've given you a way to see them. The Transactions page now sorts by amount, which puts entries of the same size next to each other where a double is obvious at a glance. It ignores whether something is income or an expense, so a payment accidentally recorded twice in opposite directions shows up too. Every sort — date, recently added, and amount — can now run either way: click the one you're using a second time to reverse it. Once you spot a pair, the Merge button handles the rest.
Editing a transaction's foreign currency now offers a list of the currencies a Hong Kong business actually meets, with RMB and USD first since those come up most. You are not limited to the list: the field is still free text, so you can type any currency code yourself and it will be saved and used as normal. You also no longer need to look up an exchange rate — enter the currency and the foreign amount, and the rate is worked out from the Hong Kong dollar total already on the transaction. A currency set by mistake can now be removed as well.
Foreign-currency receipts now record what actually left your account
外幣收據會記錄實際扣賬金額
When you uploaded a receipt in RMB, USD or another currency, Booksaidso used to convert the foreign amount at that day's market rate — even when the receipt itself printed the Hong Kong dollar total. A market rate can't include your card issuer's exchange margin or a handling fee, so the recorded amount came out slightly below what your bank actually charged. Small per receipt, but it understates your expenses and never reconciles against a statement. From now on, if the receipt shows a HKD total, that total is what gets recorded — fees included — and if the receipt prints its own exchange rate, that rate is used instead of the market one. Conversion is only used when the document gives no HKD figure at all. This also makes duplicate detection work properly on foreign-currency spending: the receipt and its card-statement line finally agree on the amount, so Booksaidso can match them. Receipts you uploaded before today are unchanged — open one and check the total against the receipt if you want to correct it.
Your card statement corrects how a transaction was paid
月結單會自動更正付款方式
A receipt rarely says how you paid, so when one is read by AI the payment method is often just a sensible guess. A credit card statement isn't a guess — it's proof. From now on, when you import a card statement and one of its lines is an exact match for a transaction you already have, that transaction's payment method is corrected to the card. Only exact matches (same amount, same date) count, only card statements do this (a supplier's own statement shows what you were charged, not how you paid), and anything you've marked as checked is left exactly as you set it. The review table tells you how many transactions will be re-assigned before you press Confirm All. Worth knowing: the correction applies to the transaction itself, so past months change too — your Payment Method Summary and bank reconciliation will shift to match what actually happened. If a balance moves after an import, this is why.
收據甚少列明付款方式,所以 AI 讀取收據時,付款方式往往只是一個合理推測。但信用卡月結單並非推測——而是憑證。由現在開始,當你匯入信用卡月結單,而其中一行與你已有的交易完全吻合,該筆交易的付款方式便會更正為信用卡。只有完全吻合(同金額、同日期)才會生效;只有信用卡月結單會這樣處理(供應商本身的月結單只顯示向你收取的金額,不代表你的付款方式);已標記「已核對」的交易一律保留你設定的內容。匯入前,覆核表會先告知有多少筆交易將被更正,你才按「全部確認」。請留意:更正的是交易本身,所以過往月份亦會一併改變——收支渠道總覽及銀行對數會隨之反映實際情況。如匯入後發現結餘有變動,原因即在於此。
New · 新功能
Resolve duplicates without losing the paperwork
重複交易可以合併,單據不會遺失
Re-uploading a receipt you'd already logged used to leave you two bad options: book it twice, or skip it and lose the file. There's now a third — "Attach to existing" puts the receipt onto the transaction you already have and fills in any details that were blank, never overwriting what you'd already entered. A whole batch can be handled at once with Attach All. Importing a card or vendor statement works the same way: when the spending is already recorded, Booksaidso keeps the statement and links it to the matching transactions as proof instead of dropping the rows and losing the file (you can still switch any line to create a new transaction, or skip it). On the Transactions page, Possible duplicates now shows matches as groups instead of a flat list, each with a Merge button: pick the row to keep and the others fold into it — receipts and missing details move across, and the leftover row goes to Trash clearly labelled as merged. Once you've checked a group and marked its rows as checked, it collapses out of the way. And you can now attach a bank or card statement as proof to any transaction — including transfers, which never have a receipt — either choosing one you've already imported or uploading a new PDF. None of this costs credits.
You can now record money movements that aren't income or expenses — moving cash between bank accounts, putting your own money into the company (or taking it back), repaying the company credit card, receiving a Stripe or PayPal payout, or settling a staff member's out-of-pocket expense. Just pick From and To; transfers stay out of your Profit & Loss automatically. You can also save your account names (e.g. "HSBC-157") in Settings and tag them on entries. The DCA & Bank page has become the Payment Method Summary: one view of every channel — bank, cash, credit card, platforms, director and staff balances — showing what came in, what went out, and who owes whom. Your audit export gains a payment-method statement CSV your accountant can pivot by channel, with every transfer shown on both sides so totals always net out cleanly.
Every AI-read transaction now carries a review state. Anything worth a second look shows an amber "Needs review" badge with the reason — possible duplicate, personal expense, handwritten receipt, unclear total — and the AI's confidence is shown in the editor, right beside the receipt. Open the row, check it, and press "Mark checked": it's stamped with the date and leaves the Needs review list (editing and saving counts too, and you can un-check anytime to re-audit). Your audit export gains Source, AI Confidence, Review Reason and Reviewed At columns, so your accountant can see exactly what was flagged and what you verified — sortable in Excel.
每筆由 AI 讀取的交易現在都有覆核狀態。值得再看一眼的交易會顯示琥珀色「待覆核」標記並註明原因——可能重複、私人開支、手寫收據、金額不清晰——編輯器內亦會在收據旁顯示 AI 信心度。開啟交易核對後按「標記已核對」,系統會記下核對日期,交易隨即離開「待覆核」清單(編輯並儲存同樣視作已核對;如需重新覆核可隨時取消)。核數匯出新增來源、AI 信心、覆核原因及核對日期欄位,會計師可在 Excel 中排序,清楚看到哪些曾被標記、哪些已由你核實。
Improvement · 改進
Finish a whole upload batch in one click
批量上傳一鍵完成整批
After a batch of receipts processes, Confirm All and Skip All now sit right in the top bar and cover every remaining item — including ones held back as possible duplicates, personal expenses or unreadable totals (an amber count reminds you how many). Held items you confirm land in the Transactions "Needs review" list automatically, so nothing slips through unchecked. Skips are reversible with a per-row Undo, rows show a saving indicator while the batch saves, and if the same receipt is dropped twice in one batch, the second copy is now caught and held instead of being booked twice.
If your documents live in your own Google Drive, they now preview right beside the transaction — the same zoom and PDF viewing as any other receipt, with a Drive ↗ link to the original. Moving files around your Drive never breaks the preview, and if a file was trashed you'll see a clear message with a link to restore it. The audit export's ledger also marks exactly which files are in your Drive (Drive Path / Drive Link columns), so your accountant can find every document.
文件儲存於你自己的 Google Drive 時,現可直接在交易旁邊預覽——與其他收據一樣支援縮放及 PDF 檢視,並附 Drive ↗ 連結開啟原檔。即使檔案在 Drive 內被移動,預覽仍然有效;若檔案已移至垃圾桶,亦會清楚提示並附回復連結。核數匯出的帳目表亦會清楚標示哪些檔案儲存於你的 Drive(Drive Path / Drive Link 欄位),方便會計師查找每份文件。
Improvement · 改進
A cleaner Bulk Upload queue
批量上傳更清晰易用
Bulk Upload now takes up much less room, keeping your documents front and centre. Receipt hints are open by default, file limits stay tucked away until needed, and processed receipts use a shorter, clearer hierarchy. CSV statement upload now shares the compact Add more bar, clearer detected-column fields, and a visible Undo button. Deleted transactions also remain understandable in upload history: soft-deleted entries are labelled, while permanently deleted entries are blurred and non-interactive.
Transactions are now grouped into cleaner ledger-style sections, with clearer category and sub-category labels and supporting details neatly underneath. In the editor, use the arrows or transaction drawer to review records, change the Month, Financial Year or custom review period without closing the detail, and see both added and transaction dates when reviewing Recently Added items. Saving keeps the detail open and refreshes its list entry, fields and newly uploaded documents immediately. Attached receipts remain on the left for quick cross-checking.
The Bookkeeper AI chat now feels quicker and steadier: your message appears the moment you send it, you can Stop a reply mid-answer or keep typing while it works, and the whole screen is now fully bilingual in English and Chinese.
When you open a transaction to review or edit it — from the Transactions list, Bookkeeper AI, or Bulk Upload — the receipt now shows right beside the form, so you can check every field against the document instead of flipping back and forth. Zoom and pan photos, read PDFs in place, and open any file full-size in a new tab. It also appears when you type an entry by hand, so you can copy the figures straight off the receipt. Works with photos (including iPhone HEIC), PDFs, and statement files.
當你開啟交易覆核或編輯(無論在交易列表、記帳 AI 或批量上傳),收據現會即時顯示於表單旁,讓你逐項對照文件核對,毋須來回切換。相片可縮放及拖移、PDF 可即時閱讀,亦可在新分頁開啟原尺寸檔案。手動輸入時同樣會顯示,方便你直接照單據抄寫數字。支援相片(包括 iPhone HEIC)、PDF 及月結單檔案。
Improvement · 改進
More reliable statement imports
月結單匯入更可靠
We've made CSV statement imports sturdier: the original statement file you import is now reliably kept and bundled with your transactions in the Audit Export, including in rare cases where it previously might not have been saved. And if any attached file ever can't be included in an export, the package now clearly lists it rather than leaving it out quietly — so what you hand your accountant is always complete and transparent.
Bulk upload now processes several receipts at once, so a big batch finishes much faster. It's also smarter about saving: clearly-readable receipts save on their own, and anything the AI is less sure about — a handwritten note, a blurry photo, or a document where income vs expense isn't obvious (like a bank deposit slip) — still saves, but with a clear flag to double-check rather than stopping to make you retype it. A new "Needs review" filter on the Transactions page gathers every flagged item in one place and clears each as you confirm it. Net result: far fewer receipts that stall waiting for you.
批量上傳現在會同時處理多張收據,大批單據可更快完成。儲存方式亦更聰明:清晰可讀的收據會自動儲存;而 AI 較不確定的項目 — 例如手寫單據、模糊相片,或收入與支出不明確的文件(如銀行入數紙)— 仍會自動儲存,只附上清晰標示提醒你覆核,而非停下來要你重新輸入。交易頁面新增「待覆核」篩選,將所有已標示的項目集中一處,並在你逐一確認後自動移除。結果是:需要你停下來處理的收據大幅減少。
Improvement · 改進
More reliable PDF uploads — now works on iPhone
PDF 上載更可靠 — iPhone 同樣適用
Attaching a PDF receipt or invoice now works reliably on every device — including iPhone and iPad — in both the Bookkeeper AI chat and Bulk Upload. Digital and scanned PDFs both come through, and you can tap any PDF to preview it. (Photo and image receipts are unchanged.)
現在於任何裝置(包括 iPhone 及 iPad)附加 PDF 收據或發票都能穩定運作 — 「記帳 AI」對話及「批量上傳」均適用。電子版及掃描版 PDF 都能順利讀取,並可點按任何 PDF 預覽。(相片及圖片收據維持不變。)
Improvement · 改進
Free plan: export your transactions + receipts
免費計劃:匯出交易紀錄連單據
The Audit Export page is now open to everyone — including the free plan. Free users can download a complete transactions.csv plus a zip of all attached receipts for any period, so you can hand a tidy package to your accountant or keep your own backup at no cost. The financial reports build on top: Profit & Loss, the fixed-asset register, and the invoice list + invoice PDFs come with Pro; bank reconciliation, DCA, and shop revenue detail with Business. Find it under Tools → Audit Export.
「審計匯出」頁面現已對所有人開放,包括免費計劃。免費用戶可下載完整的 transactions.csv,連同任何期間所有附加單據的壓縮檔,讓你免費整理一份齊備檔案交予會計師或自行備份。進階報表在此之上:Profit & Loss 損益表、固定資產登記冊、發票清單及發票 PDF 為 Pro 計劃;銀行對帳、DCA 及店舖營業額明細為 Business 計劃。可於「工具 → 審計匯出」找到。
Improvement · 改進
Sub-category breakdown in your Profit & Loss
損益表支援子類別明細
Your Profit & Loss now drills into sub-categories. On the P&L page, tap any category to expand it and see the split — e.g. how much of "Professional & Bank Fees" was Legal vs Audit vs Bank charges — with each sub-category's share of the parent. All default and custom sub-categories show, with an Expand all / Collapse all toggle; the headline P&L stays clean by default. The CSV export carries the detail too, splitting the amount into separate Category Total and Sub-category Amount columns so each adds up cleanly for your accountant.
When you download the audit pack with receipts, it now bundles a ready-to-file PDF of every issued invoice and quote, organised by date in an invoices/ folder — so your accountant gets the actual documents, not just a list. Each PDF is generated fresh at export time, so it always reflects the latest status and payments. We also polished a few export details, including clearer financial-year labelling on the downloaded file.
下載連附件的審計檔案時,現會一併包含每張已發出發票及報價單的 PDF,並按日期歸入 invoices/ 資料夾 — 讓會計師取得實際文件,而非僅一份清單。每份 PDF 於匯出時即時生成,故必定反映最新狀態及收款。我們亦優化了匯出的若干細節,包括下載檔案上更清晰的財政年度標示。
Improvement · 改進
Improved AI accuracy for receipts & statements
提升收據及月結單的 AI 準確度
We've upgraded the AI engine behind receipt reading and statement import for better accuracy, and smoothed out a number of edge cases in **CSV statement import** and **bulk receipt upload** so more of your documents go through cleanly the first time. And when something can't be read in full, the AI now keeps whatever it managed to extract and lets you review and complete it — no need to start over.
我們升級了負責收據辨識及月結單匯入的 AI 引擎,準確度進一步提升;同時修正了 **CSV 月結單匯入**及**批量收據上傳**的多項細節問題,讓更多文件能一次順利處理。當文件未能完整辨識時,AI 現會保留已成功讀取的內容,方便你檢查並補全,無需從頭再來。
Improvement · 改進
Spot possible duplicate transactions
找出可能重複的交易
A new **Possible duplicates** filter on the Transactions page helps you catch accidental double-entries. Tap it and the list collapses to just the transactions that look like duplicates of each other — the same amount on the same day, or the same invoice number. From there you can open them, compare, and delete any extras. It uses the same duplicate check that runs during receipt and statement import — now available on demand, whenever you want to tidy up. We also reorganised the filter bar into two rows — transaction type on top, the category / payment / receipt filters below — so it's easier to scan. **A tip for CSV imports:** vendor statements (like Uber or ad platforms) are brought in as monthly summaries, so if the same spending also appears on an imported card statement, give it a quick check for duplicates.
Every transaction now shows its attached files as small colour-coded chips right on the row — a blue **JPG**, a red **PDF**, a green **CSV** — so you can confirm "did I attach the right receipt?" without opening the transaction first. **Tap a chip to view:** images open in a full-screen preview, PDFs and CSVs open in a new tab. It works whether the file lives in Booksaidso or in your synced **Google Drive**, and read-only rows show their files too — invoice rows reveal the invoice link plus any payment slips, daily-revenue rows show the day's slip. It pairs with the existing amber "no receipt" reminder: rows with files show chips, rows still missing one keep the reminder — so what's there and what's missing are both visible at a glance.
Log capital purchases — computers, equipment, furniture, vehicles — as **fixed assets**, kept separate from everyday expenses and out of your Profit & Loss (capital, not an expense). Add and manage them right on the **Transactions page** (a new Fixed Assets tab with its own total card); **Bookkeeper AI** and **Bulk Upload** now recognise asset purchases and auto-suggest a useful life based on the category. A read-only **Fixed Asset Register** under Reports → Fixed Assets lets you browse by financial year, with By Item and Summary views. When it's time for your accountant, **export an auditor-ready register CSV** — item, date, cost, estimated useful life, a straight-line depreciation estimate, and a Hong Kong tax-treatment hint (s.16G / Schedule 4 pool). Booksaidso captures the facts; your accountant prepares the depreciation schedule.
When you edit a transaction and click Save, a confirmation now shows every change before it's applied — old value → new value for each modified field, plus added or removed attachments by filename. Changes that also update your **Google Drive** files (date, vendor, client, item name, description, attachment add/remove) are flagged with an amber ⚠ Drive marker so there are no silent side effects. **Why we shipped this:** the edit modal used to save silently — a typo on amount or date would quietly mutate your P&L. This closes that loop. Cancel keeps you in the edit modal; Confirm proceeds with the save.
Invoices, Daily Revenue & CSV Import marked as Beta
「發票」、「每日營業額」及「CSV 匯入」標記為測試版
Invoices and Daily Revenue now show a small Beta badge in the sidebar and a one-time banner on the page; the CSV Import mode on the Bulk Upload page is also tagged as Beta. **What this means:** these features are stable for everyday use, but UI and workflow may evolve as we iterate on feedback. **What stays unchanged:** your data is safe, tier limits still apply, and financial-correctness bugs remain top priority. Please email **hello@booksaidso.com** with any feedback — especially around invoice milestones, payment recording, revenue grid UX, or CSV statement classification.
Refine every transaction with an optional sub-category under its main category. **Defaults** are AI-aware: chat, bulk upload, and CSV import all auto-fill sub-categories like "SaaS Tools", "Legal Fees", or "Local Transport" — 27 defaults across 8 common parents, free for all plans. **Custom labels** (Pro & Business): add your own sub-labels under any of 13 categories — e.g. "Video Production" under Advertising, "Insurance" under Other Operating Expenses, "Wedding" under Sales & Service Revenue. AI never auto-fills customs; you stay in control. Manage everything from Settings → Sub-categories. Sub-categories show up in the transactions filter, CSV export (new "Sub-category" column), and audit zip layout.
Selected multiple transactions? You can now bulk-edit them in one click. Toggle Select mode, pick any number of rows, then use the Quick Edit bar to mass-update type, category, sub-category, or payment method — no more opening each transaction individually. Cap of 1,000 rows per update; daily-revenue and invoice-sourced rows are intentionally excluded to keep those flows authoritative. Also new: a sub-category filter dropdown in the filter row, derived from the current view.
Drop a credit card, Uber driver, or any vendor monthly statement CSV onto the Document AI page. The system auto-detects columns (date, amount, description), classifies every row into the right category, item name, and payment method, and converts foreign currencies to HKD using real market rates. Vendor statements are grouped by month × fee type before classification to save credits. ~0.5 credit per row, with batch review and one-click confirm. All resulting transactions share a single CSV attachment for a clean audit trail.
Business plan users can now connect Google Drive. Attachments from transactions, daily revenue, and invoice payments are automatically uploaded to your own Drive — organised by category, year, and month. Three storage modes: Supabase only (default), Both, or Drive-only (Supabase copy deleted immediately after a successful upload for maximum privacy). Connect from Settings → Attachment Storage.
Business 方案用戶現可連接 Google Drive。交易、每日營收及發票付款的附件,將自動上傳至您自己的 Drive,並按類別、年份及月份整理。三種儲存模式:僅 Supabase(預設)、兩者同時保留、或僅 Drive(上傳成功後立即刪除 Supabase 副本,最大程度保護隱私)。於「設定 → 附件儲存」連接。
Security · 安全
Privacy & Security Improvements
私隱及安全性改進
Error monitoring is now configured to strip IP addresses, cookies, request bodies, and financial field values from all error traces — nothing beyond an anonymous user ID is ever sent to Sentry. Privacy Policy updated to document subprocessors (Sentry, Resend, Google), all three attachment storage modes and their data flows, and your rights under PDPO DPP6.
錯誤監控系統現已設定移除所有錯誤追蹤中的 IP 位址、Cookie、請求內容及財務欄位數值——除匿名用戶 ID 外,不會向 Sentry 傳送任何個人資料。私隱政策已更新,列明次處理者(Sentry、Resend、Google)、三種附件儲存模式及其數據流程,以及個人資料(私隱)條例的用戶權利。
Improvement · 改進
Transaction Category & Payment Filters
交易類別及付款方式篩選
The transactions page now has two new filter dropdowns: filter by category (e.g. Software & Subscriptions, Staff Expenses) and by payment method (personal, company bank, cash, credit card). A running subtotal updates as you filter — handy for questions like "how much did I spend on software this month?"
You can now attach CSV files to transactions as supporting documents — useful for bank export files, payroll summaries, or any tabular data you want to keep alongside a transaction record.