Your clients' books, without the shoebox
Brohns gives an accounting practice a real double-entry ledger per client, a bank reconciliation that proposes matches and bookings from the client's own history, a VAT return computed from the actual lines, and an XAF 3.2 audit file you can hand to a colleague or a tax inspector. You get your own workspace role: an accountant can post, reverse and close periods, and cannot send anything to the client's customers — those are deliberately two different permissions. Nothing is estimated by a model: every balance, bucket and return line is computed by code from rows you can click through to.
Sound familiar?
Before the team
The work that keeps not happening.
January is a shoebox, and so is July
Half your clients hand you a folder of receipts and a bank export three weeks before the deadline. The work isn't hard — it's that it all arrives at once, in the worst possible format, and you're the one who has to make it balance.
Chasing a client for one missing invoice
You email, they don't reply, you email again. The whole return waits on a single line nobody can identify, and the conversation about it lives in a mail thread that lost its context three messages ago.
Reconciling the bank line by line
Most of it is obvious — the same supplier, the same amount, the same category as last month — and you still click through every one of them, because the tools that guess are the tools you can't trust with someone else's books.
A client wants to leave and you can't hand anything over
Their history sits in a format only your package reads. Getting it out is a support ticket, and getting someone else's data in is a week of retyping. That's not lock-in you chose; it's lock-in you inherited.
A week with Brohns
With the team
What actually changes, day by day.
[01] of 05
Monday — your client list, sorted by what's waiting
Open Finance and a client picker appears above it, but only if you're actually an accountant on someone's workspace. Each client carries a real count: how many events still need posting, how many bank rows aren't matched, how many months have entries but aren't closed, and how many questions are open. It's a work queue, not a dashboard.
[02] of 05
Tuesday — the bank, in two passes
Import CSV, MT940 or CAMT.053 — the format is detected, and the rows are kept, not parsed-and-forgotten. The first pass matches payments to open invoices and expenses in both directions, and says why: exact amount plus an invoice number is certain, a unique amount without proof is likely. The second pass proposes a booking for the leftovers, and that proposal comes from what this client did with that supplier before — three times as travel at 21% is what it says, because that's what actually happened.
[03] of 05
Wednesday — the ledger, and it has to balance
Every invoice, expense, order and payment projects into a real double-entry ledger. An entry that doesn't balance is refused by the database at commit, not by a warning; a line is debit or credit, never both; and a closed month can't be written to at all, service role included. Corrections are reversals, never edits — which is exactly what you'd defend in a review.
Outreacher drafted an email
To: Sparkle Clean · sparkle-clean.nl
Hi — I noticed your booking page takes ~6s to load on mobile, which is where most of your customers are. I put together a couple of quick wins…
Why: opens on the site's weakest point, in your tone.
[04] of 05
Thursday — the return, and the question thread
The VAT return is computed from the actual lines with a code per line — high, low, zero, exempt, reverse-charge, EU, outside the EU — and each one lands in the rubric it belongs to. Reverse-charge purchases appear on both sides and net to nothing, because that's how it works. When something needs the client, you ask it on the journal entry itself, so the answer stays attached to the booking it's about instead of drifting away in email.
[05] of 05
Friday — close it, and be able to prove it
Close the year and the result moves to equity in a posting that balances by construction; if it wouldn't balance, it isn't written. Any entry can produce an evidence trail: the journal posting, the source document, the bank line that paid it, the audit log, and an honest list of what is not proven. Export XAF 3.2 for the file, or import one to take a new client on in a single upload.
The payoff
Numbers from the pricing page
Concrete, not hand-wavy.
14
days of free trial — no credit card
500
credits included in the trial
€39
per month for Brohns Pro
4000
credits included every month on Pro
An accountant seat is free
Team members are €10 per month each, and an accountant isn't one. That's a deliberate choice, not an oversight: charging you a tenner to look at your client's books would tax the person most likely to bring the next twenty clients. Your client pays for their own workspace; you don't pay to work in it.
The bookkeeping layer is one flat price
The ledger, VAT return, bank reconciliation, audit file and your access are the Bookkeeping pack: €39 per month on top of the client's plan. It's deterministic code, not model calls, so it costs the same whether the month is quiet or brutal — and reading is never gated. Taking your client's administration to their accountant can't depend on a live subscription.
Two permissions, on purpose
Acting outward — approving, sending, refunding — and correcting the books are separate rights on separate axes. An accountant has the second and not the first; a regular team member has the first and not the second. Trusting someone with your books isn't the same as trusting them with your customers, and merging those two is how a role becomes a liability.
Every outward move — each email, reply or post — waits for your approval first. That's not a setting; it's how Brohns is built. The full credit table lives on the pricing page.
Finance
Import invoices, let an agent draft age-escalating payment reminders you approve, scan receipts, reconcile your bank CSV, and read one honest P&L per month.
Get paid
Bro drafts the proposal in your voice, the client signs on a link, and one click issues a real Stripe invoice with a hosted payment page — totals computed, never guessed.
Dashboards & data
Ask Bro for a dashboard in plain language: import a spreadsheet, connect an API, and get live KPIs, trends and alerts — every number computed by code, never generated by AI.
Good to know.
Can an accountant send emails to my client's customers?
No. The accountant role can post to the ledger, reverse entries and close periods; it cannot approve outbound messages, send, or issue refunds. Those are two different permissions on two different axes, and the server enforces the split — a check in the interface would be a suggestion, not a rule. Whoever performed an action is recorded in the audit detail, so "the accountant closed March" stays findable later.
Is the bookkeeping done by AI?
The posting is not. Which journal entry follows from an invoice, an expense or a payment is decided by code, and the database refuses an entry that doesn't balance at commit time. A model may propose a VAT code or a category from what you booked before — you confirm it — and it may draft a payment reminder. Nothing about the arithmetic is a guess.
Can I get a client's administration out again?
Yes, and it isn't gated. Export an XAF 3.2 audit file per year: header, chart of accounts, periods and transactions grouped into the sales, purchase, bank and memorial day books an accountant expects. It's deterministic, so the same administration produces byte-identical files. What the file cannot contain is stated on the page rather than buried — we'd rather leave a section out than fill it with a subledger reconstructed from names.
Can I bring an existing client in from another package?
Upload their audit file. Entries come in with their own transaction key, so uploading the same file twice changes nothing, and the opening balance comes along — nobody retypes it. Three things are refused outright: an entry that doesn't balance in the file itself, a month already closed here, and a duplicate. All four counts come back afterwards, including what was skipped.
How does the bank reconciliation decide what matches?
The amount has to be exact within a cent — that's the hard requirement. A matching invoice number or counterparty name is the evidence on top, and a unique amount without evidence is proposed as likely rather than certain. No row is used twice, and the result doesn't depend on the order rows arrive in. No model runs in that path: it's the reliable floor the booking agent proposes on top of.
What happens if a client questions a booking a year later?
Open the entry and ask for its evidence: the posting with its lines, the source document with its real fields, the bank transaction that settled it, and the append-only audit trail — refusals included. The trail is labelled honestly as traced, booked or declared, so a chain that looks complete while the payment is unproven says so. Receipts and invoice PDFs aren't stored in Brohns, and the document says that too.
Put a team on it — built for accountants & bookkeepers.
Free 7-day trial with 500 credits. No credit card. Nothing goes out without your approval.