Finance
An unbalanced journal entry cannot be written to this database.
Oneop Finance is a real double-entry general ledger. Debits must equal credits — checked in the posting service, then checked again by a PostgreSQL trigger that raises an exception and aborts the write if the two totals differ. Application bugs do not get a second chance at your books.
Finance ships in every workspace, on every plan, including Free. Invoicing is free from day one; payables, expenses, tax and bank reconciliation start on Pro; multi-currency is Business. There is no module to switch on.
No credit card. Free plan, 2 seats.
Three things the ledger does that spreadsheets and light bookkeeping tools don't
Debits equal credits, enforced twice
The posting service sums every line and refuses the entry if debits and credits differ by more than a ten-thousandth. Then, independently, a database trigger fires on the transition to posted, re-sums the lines straight from the table, and raises Journal entry % is unbalanced if they do not tie. The second check does not trust the first. That is the point.
Periods lock, and a locked period stays locked
Fiscal years and twelve monthly periods are created for you. Closing a period reverses accruals, prepaids and deferred revenue into the next one automatically. Once a period is locked, nothing posts into it. Locking and unlocking are restricted to owners and admins. An entry dated outside its own period is rejected with a specific error rather than quietly filed into the wrong month.
Corrections are reversals, never edits
You cannot edit a posted entry away. A correction posts a linked mirror-image entry — every debit becomes a credit and vice versa — flagged isReversal and joined back to the original. The same entry cannot be reversed twice; the second attempt is refused outright. Your audit trail is the record, not a version of it.
Invoicing, and what double-entry means here
Every financial event in Oneop posts a balanced journal entry, and every number in every report is read back from those posted rows. Invoices are the clearest example.
New workspaces come with a default chart of accounts, four journals — General, Accounts Receivable, Accounts Payable and Banking — and a fiscal year of twelve monthly periods, already open. You do not "sync" events to accounting; they are the accounting. Pick an event to see exactly what it posts:
INV-00284 · Northbridge Ltd · $18,400.00
| Dr · Accounts Receivable | 18,400.00 | |
| Cr · Revenue | 17,000.00 | |
| Cr · Sales Tax Payable | 1,400.00 |
| Aug 09 | AR — Northbridge | $18,400.00 | |
| Aug 22 | Cash | $18,400.00 | |
| Aug 22 | AR — Northbridge | $18,400.00 |
Record full or partial payments, allocate one payment across several invoices, put a customer on credit hold, and log promise-to-pay commitments. Any invoice can repeat daily through annually, with a crash-safe scheduler re-resolving its own exchange rate on every run.
4
journals seeded on day one
12
monthly periods, already open
5
AR aging buckets, computed at read time
1
atomic transaction per invoice — receivable, revenue and tax together
Bank feeds and reconciliation
Plaid is the working bank-feed path. Connect an account and transactions and balances pull on a daily background sync.
Imported transactions are deduplicated against what you already hold. Auto-match scores candidates against posted ledger lines — amounts matched to the cent, dates within five days either side — and each suggestion carries its own confidence score. You confirm, unmatch or exclude individual lines, then finalize a reconciliation.
Payables, expenses and multi-currency
Bills run a real lifecycle: draft → pending approval → approved → partially paid → paid → void. Set an approval threshold and anything under it approves and posts automatically while larger bills wait for a person, using the same aging buckets as AR.
Employee expenses run submit → approve → reimburse, posting to accrued liabilities and then cash, with receipt images stored against the workspace quota.
Multi-currency (Business plan) accepts any valid ISO-4217 currency from the runtime's own CLDR list. If there is no exchange rate on file for a document's own date, Oneop refuses to create the document rather than assuming parity.
A bill that has received any payment cannot be voided.
Tax — exactly which countries, exactly how far
Oneop's tax layer is a statutory engine, not a rate field: jurisdictions, codes, rules and exemptions resolve per line and write to an append-only tax posting ledger, and tax periods lock once filed. Tax localization is a Pro-and-above plan feature.Live filing submission to a tax authority is a separate,Opt-in switch — see below.
Real seeded statutory rates ship for four places:
| Where | What ships |
|---|---|
| Pakistan | The deepest pack: 13 federal codes (GST 18%, GST 0% export, FED I/II/III, WHT 153A/153B/154, Further Tax 3%, Advance Tax 236G, Extra Tax 3%) plus four provincial authorities — Punjab PRA 16%, Sindh SRB 13%, KPRA, BRA — with sector rules, HS/PCT codes, ATL status and Minimum Tax s.113 |
| EU — 27 member states | Standard, reduced and super-reduced rates per state with effective dating, reverse charge Art.196, IC supply Art.138, digital MOSS, OSS €10,000 threshold tracking and 27 VAT-number formats |
| Canada | 12 codes, federal plus nine provinces, with a real composition engine — HST replaces GST, PST/QST are additive on the pre-GST base |
| Egypt | VAT 14%, VAT 5% machinery, VAT 0% export |
Live filing submission exists for two: the UK, to HMRC Making Tax Digital — OAuth2, obligations retrieval, VAT return submission and a sandbox mode — and Pakistan, to FBR via PRAL, with an offline retry queue.
Everything else exports a ready-to-file return: the UAE (FTA return XML), Bahrain (NBR return XML), the US (CSV) and EU OSS.
Saudi Arabia
UBL 2.1 XML generation and TLV QR encoding.
United States
Nexus-state and $100,000 economic-nexus tracking, exemption certificates, per-product taxability.
Reporting and documents
Profit & Loss, Balance Sheet, Trial Balance, Cash Flow Statement, GL detail and AR/AP aging all read from posted ledger rows — no placeholder numbers. The Trial Balance returns a computed balanced flag rather than assuming it ties, and the Balance Sheet derives retained earnings from real activity, handling contra and debit-natured accounts correctly.
Reads and exports
- Direct-method cash flowClassification derived from each entry's own source type
- Report engine handoffCSV, XLSX and PDF export off the same posted rows — see reporting
- Two-way QuickBooks Online syncCustomers, invoices, bills, payments, chart of accounts — signature-verified webhooks, run on demand
Documents
- Real PDFsYour logo, brand colours, A4 or Letter, switchable header/line-item/totals/footer/signature blocks
- Properly localizedRecipient's language, embedded IBM Plex Sans Arabic for Arabic and Urdu with contextual shaping
- Mirrored right-to-leftReaches into the invoice PDF itself, not just the interface, with locale-correct money and number formatting
What is actually AI here, and what isn't
Two things in Finance use a language model. Two things people expect to be AI are not, and we label them accordingly.
Genuinely AI, metered against your credit balance
- Document parsing. Photograph or upload an invoice, bill, receipt, bank statement or purchase order and Gemini vision extracts header and line detail. File type is verified by inspecting the actual bytes, not the declared MIME type.
- Expense categorization. The model proposes a GL account code with a confidence rating, a reason and alternatives. You decide.
Google Gemini is the only model provider Oneop uses. Not a router, not a choice of models — one provider, named.
Not AI, and we will not sell them as AI
- Cash-flow forecasting and scenario modelling. A deterministic projection of open receivables and payables against their due dates, with clamped scenario multipliers. Useful. Not a model.
- Duplicate bill detection. A SQL comparison over supplier, amount and date. Also useful. Also not a model.
Both are genuinely good features. Calling them AI would be the kind of small lie that makes you doubt the large truths on this page. More on how we govern model calls: AI governance.
What it costs
Invoicing is on every plan, including Free. Accounting depth — payables, expenses, tax and bank reconciliation — is Pro and above. Multi-currency is Business.
Annual billing is two months free; extra seats are $5 per seat per month. These are plan limits published as plan limits. See pricing for the full ladder, generated from the product's own plan catalogue.
See full pricing| Capability | Free | Starter $19 | Pro $59 | Business $129 |
|---|---|---|---|---|
| Invoicing | 5/month | ✓ | ✓ | ✓ |
| Financial reports | — | ✓ | ✓ | ✓ |
| Payables, expenses, tax, bank reconciliation | — | — | ✓ | ✓ |
| Multi-currency | — | — | — | ✓ |
Frequently asked
Do I have to ask for Finance?
No. Finance ships in every workspace, on every plan, including Free — invoicing works from the day you sign up, with a seeded chart of accounts, a fiscal year and twelve periods already open. What is plan-gated, not ask-for-it, is depth: payables, expenses, tax and bank reconciliation start on Pro; multi-currency starts on Business. The one genuinely separate opt-in is live tax filing submission to a tax authority — see the tax section on this page.
What exactly stops an unbalanced entry from being saved?
Two independent checks. The posting service sums the entry’s debit and credit lines and throws UNBALANCED if they differ. Separately, a PostgreSQL trigger fires on the update that sets an entry to posted, re-sums the lines directly from the lines table, and raises an exception that aborts the transaction if the totals differ. The database check does not trust the application check.
Can I edit or delete a posted journal entry?
No. Corrections post a linked reversal — every debit mirrored to a credit — marked as a reversal and joined back to the original entry. The same entry cannot be reversed twice. Closed periods reject new postings entirely, and only owners and admins can lock or unlock a period.
Which countries have real tax support?
Real seeded statutory rates ship for Pakistan, the 27 EU member states, Canada and Egypt. Live filing submission exists for the UK (HMRC Making Tax Digital) and Pakistan (FBR via PRAL). The UAE, Bahrain, the US and EU OSS produce an export file you upload yourself. Saudi Arabia ships UBL 2.1 XML and TLV QR generation. The US layer tracks nexus states, $100,000 economic-nexus thresholds, exemption certificates and per-product taxability.
Is the cash-flow forecast AI?
No. It is a deterministic projection of your open receivables and payables against their due dates, with scenario multipliers you can adjust. Duplicate bill detection is likewise a SQL comparison, not a model. The two genuinely AI features in Finance are document parsing and expense categorization, both running on Google Gemini and both metered against your AI credit balance.
Does Oneop connect to my bank?
Through Plaid, yes — connect an account and transactions and balances pull on a daily background sync, then auto-match scores them against posted ledger lines to the cent.
Start invoicing today. Grow into the rest.
Finance is already in your workspace — invoicing free from day one, deeper accounting on Pro, multi-currency on Business. Tell us what you need to file and we will tell you what is real for your country before you commit.
No credit card. Free plan, 2 seats.