Safe writes
Nothing is written without --allow-writes, a delete also needs --yes, and --dry-run shows the validated request first. A profile can be read-only, or allowed to write to one division only.
Read every resource of the API, book entries and invoices with typed commands, and keep production safe: writes stay off until you ask, and a profile can lock to one test division.
npm install -g @wavyx/exactcli| Account | Label | Debit | Credit |
|---|---|---|---|
| 400000 | Acme NV | 1 350,00 | - |
| 700000 | Consulting | - | 1 350,00 |
| Total | 1 350,00 | 1 350,00 |
Every write below was run on a real Exact Online administration before it shipped.
Accountants, finance teams and the developers who script for them, in a terminal, a CI job or an AI agent.
Nothing is written without --allow-writes, a delete also needs --yes, and --dry-run shows the validated request first. A profile can be read-only, or allowed to write to one division only.
Name customers, ledger accounts and journals by their codes. Entries, invoices, orders, quotations and their lines, master data and receivables all have their own commands.
An MCP server exposes the reads as tools, read-only by default. JSON when piped, a jq filter on every command, and exit codes a script can trust.
backup copies a division to JSON files, one per sync feed, then reads only the changes and the deletions. Sync and bulk feeds page by 1000.
The work you do in the web screens, as commands you can repeat, script and review.
Exact Online signs you in with OAuth. exactcli runs the callback for you and keeps the tokens in your system keychain, never in a file.
With npm on Node 22 or later, or with Homebrew on macOS and Linux.
$ npm install -g @wavyx/exactcli
$ brew install wavyx/tap/exactcliauth login prints the redirect URI. Register an app with it in Exact Online (Import/Export, App registrations), paste its Client ID and secret, and sign in in the browser.
$ exactcli auth login
Redirect URI: https://acme.ngrok-free.app/callbackChoose the division to work in, then read. Writes stay off until you add --allow-writes.
$ exactcli division use 123456
$ exactcli receivable list --status 20$ exactcli config set read_only true --profile prodFour checks run before one request leaves your machine. A refused write costs no API call at all.
Method allowed, mandatory fields present, no unknown or read-only field. Exit 64 otherwise.
--allow-writes, and --yes for a delete. A read-only profile refuses whatever the flags say.
write_divisions keeps writes on the administrations you allow, also for raw api calls and MCP tools.
A POST is never sent twice. Without an answer, exactcli says the write may have landed, so nothing is booked double.