⚡ Turn on AI invoice reading. Then you can drop in a PDF and it fills the details for you.
✨Powered by AI. Drop in an invoice or receipt — it reads the vendor, date and amount and fills the form for you. No document handy? Download a sample invoice and drop it back in.
🧠 CFO insights AI
A quick read of your numbers — cash, receivables, tax due, spending — in plain language.
Drag the cards, then click Done.
⠿ Income vs Expenses
last 12 months (net of VAT)
Revenue Expense
⠿ Tax position (THB)
VAT payable = output VAT − input VAT. WHT credit is tax withheld from you; WHT payable is tax you withheld from vendors and must remit.
Type a figure in the Year column to spread it evenly across 12 months, or edit any month directly. Each line rolls up into your P&L tiers on the Scorecard. Set the Tier so expenses land in the right place (Direct → gross profit, Operating → EBITDA, Finance, Depreciation).
Scorecard — Actual vs Budget vs Last year
Profitability — margin by channel & store
Read-only link for your accountant
Anyone with this link sees the dashboard but cannot edit.
Regenerate it to revoke the old one.
🌐 Countries & FX
Set this company's base (local) currency. Country instances keep their
books in local currency; the dashboard's ฿ THB toggle translates them for the group using the
monthly rates below. Consolidation across countries is done outside the app for now.
Monthly FX rates — local → THB
How many THB per 1 unit of local currency. Average is used for the P&L.
For the balance sheet, monetary items use different rates per accounting practice:
Buying rate for assets and Selling rate for liabilities.
Leave Buying/Selling equal if you use a single closing rate.
Month
Average · P&L
Buying · assets
Selling · liabilities
🧹 Clear demo data
Start this company on a clean slate for go-live. This permanently deletes
all transactions, payments, employees, payroll, documents, vendors, bank lines, expense reports, budgets,
recurring templates and uploaded files.
Kept: your users & logins, company profile, chart-of-accounts
structure, cost groups & business units, countries & FX rates, and the Google Drive connection.
⚠ This cannot be undone. Type the company name to confirm.
Issue 50 ทวิ
Check every field, fix anything wrong, then save & print. Edits to the payee are saved back to the vendor master; the amount/date are saved on the bill. Withholding tax is dated at payment, not the invoice date.
Payee (ผู้ถูกหักภาษี)
Payment & amounts
Certificate details
ℹ️ About
P
Virtual CFO
Version —
What's new
❓ User guide
☁️ Google Drive filing
Mirror uploaded source documents (invoices, receipts) to this company's own
Google Drive, filed as <Company> — Source documents / Year / Month. The local copy is
always kept; Drive is a backup/filing copy.
🔑 One-time setup — Google Cloud OAuth
Go to console.cloud.google.com → create a project.
APIs & Services → Library → enable Google Drive API.
OAuth consent screen → External → add yourself as a test user.
Credentials → Create credentials → OAuth client ID → Web application.
Under Authorized redirect URIs, add this exact URL:
…
Each member sees only the modules their role allows. Passwords are set by each person and never visible to anyone else.
➕ Add a team member
Name
Email
Role
Scope BU
Approver
HQ
Status
Last sign-in
Role cheat-sheet — Owner: everything · Management (function head): sees everything, owns the budget · Finance & Accounting (full): records & runs payments (small entities) · Accounts Payable: records vendor bills, cannot pay · Accounts Receivable: issues customer invoices & tracks collections · Treasury / Payments: runs payments & bank rec, cannot record bills · Operations: enter & reconcile spend · HR: payroll · Sales: issue documents · External Accountant: read-only. Everyone can file their own expense report. Adjust or add roles below.
💡 Segregation of duties: for a control, give one person Accounts Payable and a different person Treasury / Payments — so whoever records a bill can't also release the cash.
🔐 Roles & permissions — customise or create
Tick what each role can do. You can adjust a built-in role, or make your own (e.g. "Regional Controller"). Everyone can always file their own expense report. The Owner role can't be limited.
🕘 Activity log (who changed what)
When
Who
Action
On
Expense reports
Report
Submitted by
Status
Total
Date
Date
Category (cost element)
BU
Cost center
Description
Amount
Currency
Rate→THB
THB
Receipt
📥 Add receipts from inbox
Tick the captured expense receipts to add to this report.
Bank — for expense reimbursement & payroll transfer
Accounting tags (how this salary is booked)
Past runs
🧾 Tax filing — ภ.ง.ด.1 (PND1) · file to Revenue Dept (50 ทวิ certificates are under 🧾 Issue)
Recurring entries
➕ New recurring template
🏛 Company profile
Appears on your documents (quotations, invoices, receipts) and the 50 ทวิ certificate.
No logo
No signature
Shown on quotations, invoices & receipts
No stamp
Company seal — shown on the 50 ทวิ
Authorised signatories
— add your directors; tick up to 2 to sign the tax forms (ภ.พ.30, 50 ทวิ) jointly with the company seal
🏦 Bank accounts
— your company's own accounts, used for bank reconciliation. Saved separately (its own Save button below).
🧾 Issue
Description
Qty
Unit price
WHT
Amount
Set WHT per line — goods usually 0%, services 3%. Mixed goods/services on one invoice are fine.
The 50 ทวิ withholding tax certificate is the copy you hand to the vendor or employee you withheld tax from. (The ภ.ง.ด. schedule you file with the Revenue Department is under Reports.)
Payslips for each booked payroll run. Hand these to staff each pay period.
Financial statements
⚙️ Opening balances — continue from your 2026 statement
📑
Drop your 2026 financial statement — AI reads the closing balances
or type the figures below
Everything after this date builds on top of these figures.
🏢 Segmental P&L (by profit center)
Manage business units, cost centers, cost groups, and the L1/L2 hierarchy in
🗂 Reporting structure.
🗂 Reporting structure
Set up your business units, cost centers, P&L cost groups, and how the AI-recognized categories and units roll up (Level 1 → Level 2). Everything here shapes the management statements & segmental drill-down.
🌏 Group HQ — cascade structure to subsidiaries
This is the group HQ. Push this master structure to every subsidiary — each merges it in (adds what's missing, keeps its own local additions and account-code links). Always preview first.
🏢 Business units (profit centers)
🏷 Cost centers
Default allocation → profit centers
(a cost booked to a cost center — with no profit center of its own — is spread to the branches by these %. Set the split once here, not on every invoice.)
🧱 Cost structure — groups (L1) & elements (L2)
Your whole cost structure in one place. Each cost group (L1) sits in a tier — Direct (above gross profit), Operating (→ EBITDA) or Finance (interest) — and holds the cost elements (L2) that roll up into it. Reorder anything with ▲▼, and add an optional account code (for your chart of accounts). Everything saves as you go. Depreciation is added automatically between EBITDA and EBIT.
— proposes account codes for unmapped cost elements; you confirm before anything saves.
📒 Chart of accounts
The account codes your cost elements link to (in the dropdown above). Starts from a standard Thai chart — edit names, add your own accounts, or upload your accountant's chart. 🔒 marks system accounts the bookkeeping posts to: their code is locked and they can't be deleted, but you can rename their labels. Codes are fixed once created — to renumber, delete and re-add. Everything saves as you go.
Point each revenue category at an income account so your ledger breaks sales out by account (e.g. goods vs service), the same way cost elements map to expense accounts. Unmapped income posts to 4010 (Sales / service income).
— you confirm before anything saves.
🏦 Balance-sheet accounts
Point each asset, liability, and equity category at its account, so the ledger splits fixed assets (Land, Vehicles, Computers…), loans, and capital instead of lumping them. Unmapped ones post to 1610 / 2510 / 3010. These transaction types are less common than sales and costs, so this section is often short.
— you confirm before anything saves.
🗂 Profit-center & store hierarchy
Group profit centers under a parent
Roll smaller business units up under a parent for the drill-down.
Group stores under a channel (hierarchy: profit center → channel → store)
Assign each store to a sales channel (Retail, E-commerce…). The scorecard & profitability views roll stores up to their channel. Use ▲▼ to set the channel order.
✏️ Rename a name — safely (updates all transactions)
Renaming here cascades: every transaction, employee, allocation, and recurring template using the old name is updated to the new one — nothing is left orphaned. (To just add or remove names, use the boxes above.)
Reports for your accountant
Reports download as your chosen format. Thai text included. The journal & trial balance stay CSV (for import into accounting software).
Month applies to transaction-level reports; statements are period-to-date.
📚 Accounting-firm closing pack — the monthly hand-off
One ZIP with everything your firm needs to post the month: journal, trial balance, VAT/WHT, and the source documents (issued invoices + uploaded receipts).
🧾 Withholding tax — ภ.ง.ด. schedules to file (50 ทวิ certificates are under 🧾 Issue)
🧾 Tax filings — Thai monthly returns
Pick a month to see what's due to the Revenue Department, with figures pulled from your books. Download the schedule (Excel/CSV) or print the official-style form to file.
VAT & WHT are due by the 15th of the next month (23rd if you file online).
🔑 Change password
Set a new password for your own login. Minimum 8 characters.
✅ Approvals — bills waiting for sign-off
Set to 0 to turn approvals off. Only new bills are affected.
📥 To file — capture now, post when ready
Snap or drop a receipt/invoice — the AI reads it and it waits here until you post it to the books. Handy for capturing on the go from your phone.
📧 Or forward / BCC to — each emailed invoice lands here automatically.
🟢 LINE capture — send documents from LINE
Staff add the My Virtual CFO LINE Official Account, link once with a code, then just snap and send — invoices, receipts, documents, or bank statements. In the chat they type “invoice”, “expense”, “document”, or “statement” to pick the lane.
Add “My Virtual CFO” on LINE
Scan the QR, or on your phone tap the button. Then send your link code once and start snapping documents.
🔧 Platform setup — connect the shared “My Virtual CFO” OA
🔗 Webhook URL (paste into LINE → Messaging API): https://portal.my-virtual-cfo.net/api/inbox/line
Entered here once, for the whole group. The credentials go straight to the portal — not stored on this page.
🔑 Link code: — give this to one person. They add the My Virtual CFO OA and send it once (e.g. “link ABC123”). One code per person.
Advanced — connect your company's own LINE OA instead
For a fully separate account (e.g. a client on their own OA). Otherwise use the shared My Virtual CFO OA above.
🔗 Webhook URL:
💸 Payment run
Batch the bills due for payment, generate a bank-transfer file, then reconcile them when the statement arrives. Bills become Processed until the bank confirms them.
Upload KBank's Excel template; the app fills each run into it (macros kept) for a ready-to-upload file. Update it here whenever KBank changes the template.
Beta: the KBank file fill is still being validated — always open the generated file and check the totals and account numbers before uploading it to K‑Cash Connect.
🏷 Vendors
Your supplier master. Tax ID, Thai name & address flow to the 50 ทวิ withholding certificate; credit terms & bank feed the payment run. The invoice scanner fills these in for you.
Bank reconciliation
Filters the statements below by account, and sets the account for your next upload. Each statement folder can be reassigned too. The month is read automatically.
🏦
Drop your bank statement (PDF, CSV or image) or click to browse
AI reads every line and the statement month, then suggests matches to your recorded payments
Payments
Tax invoice / receipt
In Thailand, input VAT is claimed on the ใบกำกับภาษี / ใบเสร็จรับเงิน
(issued when you pay), not the original bill. Attach it here so it flows into your
PP30 input-VAT report and files to Drive.
ภ.พ.30 — VAT return
Review the figures pulled from your books, adjust the few the form can't
know, then download the official Revenue Department PDF ready to file. Amounts are in Baht.
An amended return reports only the additional amounts (current
books − what you originally filed). These are auto-suggested from your filed return —
check each figure before filing.
Taxpayer
Figures
Adjustments — the form can't read these; edit if they apply
ภ.ธ.40 — Specific Business Tax
Specific Business Tax is a tax on receipts (not VAT) for finance, lending, real-estate and similar businesses. Pick your business category, enter the month's SBT-liable receipts, and the tax is computed at the category's rate.
ภ.ง.ด.53
Monthly withholding-tax return. The payee count and totals are pulled from your books; the per-payee detail is filed on the ใบแนบ (schedule).
Connect AI invoice reading
Paste your Anthropic API key (it starts with
sk-ant-). It's saved only on this computer, in a file next to
the app — never sent anywhere except Anthropic to read your invoices.
Get a key ↗