Compatibility

Ekwo and QuickBooks Online

Ekwo works on top of QuickBooks Online — or keeps the books on its own.

Both keep double-entry books. Ekwo reads what QuickBooks Online exports and works from it to the chart of accounts and the standards of each country pack: it collects, checks, prepares what the country asks for, and lets an agent do the work. It can also keep the books by itself.

With QuickBooks Online

Your team keeps the books in QuickBooks Online. Ekwo reads its exports and works on top of them: a copy in your own database, the reports and files the country asks for, the checks, and an agent on all of it.

What works today

Ekwo on its own

Ekwo keeps the books by itself: invoices and e-invoices, bank statements, returns and financial statements. The history kept in QuickBooks Online comes in with one import, whole or not at all.

How Ekwo keeps them

What Ekwo does.

The same five things, whatever software the books come from. Each links to the file of Ekwo OS that makes it true.

Collects

Reads the exports of other ledgers and the bank statements in the formats the packs name, and keeps the invoices it issues itself.

The file: packages/cli/src/commands/import.ts

Brings the data to the standards

Maps every account to the country’s chart and writes the files the country expects: e-invoices to the profile the pack declares, the FEC where the country asks for it, the XBRL of the annual accounts where the pack names a taxonomy.

The file: packages/formats/README.md

Checks

Refuses books that do not balance, rehearses every import before it writes, and checks that posted entries balance and that statements tie to their lines.

The file: packages/cli/src/doctor.ts

Prepares the obligations

Prepares the VAT return from the books it keeps, the financial statements on the country’s scheme and the list of what falls due. It files nothing on its own.

The file: packages/mcp/src/server.ts

Works with your agents

Each of these is a tool of its MCP server: an agent can run it, show you the result and ask you before it writes.

The file: packages/mcp/README.md

The standards, read from the country packs.

Nothing in this list is written by hand: it is what the 44 country packs declare, at this build of the site.

E-invoicing profiles
factur-x-en16931ksef-fa3peppol-bis-3pint-aepint-aunzpint-jppint-sgxrechnung
Bank statements read
camt.053cfonb120coda
XBRL taxonomies
nbb-cbso:26.0
Financial statements
89 schemes
Charts of accounts
45 charts, in 44 countries

What Ekwo reads from QuickBooks Online.

One export, one command. Nothing is written until you have read what Ekwo proposes.

  1. 1In QuickBooks Online, open the Journal report. Where the company uses account numbers, add the Account # column among the report’s columns; otherwise each account is found by its name.
  2. 2Export the report to Excel, open it and save it as CSV. For the types of the accounts, export the Account List and save it as CSV the same way. Each file is recognised by its header.
  3. 3Where the report writes dates in digits, give their order with --date-order dmy, mdy or ymd: the file does not say it, and a date in digits is refused without it.
  4. 4The report prints amounts in the company’s currency without naming it: no amount in another currency is read. This reader was written from the export as Intuit documents it: rehearse the import first, and read what Ekwo reports before the real one.

Official documentation: Print a journal entry report · Export reports to Excel · Export your QuickBooks Online data

Rehearse first. Nothing is written: Ekwo shows the correspondence of accounts it proposes, each suggestion with its reason, and saves it for you to complete.

ekwo import quickbooks-online journal.csv accounts.csv --dry-run --save-mapping mapping.json

Then import for real, with the correspondence completed. Everything is written in one transaction, or nothing is.

ekwo import quickbooks-online journal.csv accounts.csv --mapping mapping.json

From an agent, the same import is the MCP tool import_books, with the source quickbooks-online: a dry run first, and the agent asks you before the real call.

What comes in

  • Every posted entry, with its journal, its date, its lines and their labels.
  • The accounts, each mapped to an account of the company’s chart — proposed by Ekwo, confirmed by you.
  • The partners, found by their code or their name, or created.
  • The old entry number, kept as the reference.

What does not

  • Tax. An imported line carries an account and an amount, not the tax that produced it: it feeds the ledger and the statements, not a VAT return.
  • Reconciliation marks. They are read, not re-applied: an open item is matched again in Ekwo.
  • Accounts the chart does not have. Each old account is mapped to one that exists; none is created.
  • Documents. Invoices and bills arrive as the entries they were posted as, not as documents that can be sent again.

With QuickBooks Online

With QuickBooks Online, today.

What works now, from the exports Ekwo reads.

A copy of the books in your own database

Each import brings the posted entries into an Ekwo company, on your country’s chart. The copy is as recent as the last export imported: nothing is synchronised continuously, and the same files twice are refused.

The file: docs/import.md

The reports and files, from that copy

General ledger, trial balance, financial statements on the country’s scheme, and the FEC with the checks an inspector applies first, where the country asks for it.

The file: packages/mcp/src/tools/read.ts

Bank statements, in the standard formats

Statements in camt.053, cfonb120, and coda are read into Ekwo as lines waiting to be matched.

The file: packages/cli/src/commands/import.ts

An agent on all of it

The import, the trial balance, the statements and the FEC are tools of the MCP server. An agent rehearses the import, shows you the correspondence and asks you before it writes.

The file: packages/mcp/src/tools/import-books.ts

Not from that copy: the VAT return, since imported lines carry no tax, and e-invoices, since invoices arrive as entries rather than as documents.

Ekwo on its own

Ekwo on its own.

Ekwo can keep the books by itself. The history comes in with the import above; from then on, everything is kept in Ekwo.

Invoices and e-invoices

Invoices and credit notes are issued in Ekwo and posted by the database. The format libraries write a posted invoice to the e-invoicing profile the pack declares, with every published rule it breaks; sending it goes through the access point you choose.

The file: packages/formats/peppol-ubl/README.md

Bank statements and payments

Statements in camt.053, cfonb120, and coda come in as lines; each is matched to the invoice it pays, and the payment is booked.

The file: packages/cli/README.md

Returns and financial statements

The VAT return is prepared from the tax each posted line carries, the financial statements follow the country’s scheme, and a return that has been filed keeps the proof of it.

The file: docs/filing.md

Leave whenever you want

ekwo company export writes the whole company in a format that needs nothing of Ekwo to be read. The trial balance and the FEC are one call away.

The file: docs/company-archive.md

What Ekwo is.

Open source

The whole engine is public, under AGPL-3.0: the schema, the command line, the MCP server and every country pack.

Your data, in your own database

The books live in a Postgres database you own, on your own Supabase project.

Driven by AI

An MCP server with 56 tools: an agent reads and keeps the books with you.

Country packs you can read

44 country packs, made of files anybody can open, each citing the texts it was written from.

Several countries, one installation

A company per country, each on its own pack, side by side.

Or hosted

Ekwo Cloud is the hosted edition, for those who would rather not run it themselves.

Compatibility

Try it on your own books.

Open an Ekwo Cloud account and import an export of QuickBooks Online, or install Ekwo on your own project with one command.

Or install it yourself

npx ekwo-os init