Wiring a model to Moneybird is an afternoon. Making it trustworthy is not.
If you search for OpenAI and Moneybird, you usually mean the API rather than the chat window: can I wire a model to my bookkeeping myself. The answer is yes, you can, Moneybird has a decent API. We did it, only not with OpenAI: the Schakel assistant runs on DeepSeek and no OpenAI account is attached, yours included. What follows is what had to go around it in practice, so you can decide whether to build it or simply switch it on.
What that looks like
What the assistant does
What this automation does, and when.
-
Payments held against your open invoices
Every bank entry is scored against your open invoices, with the reason attached: invoice number in the description, name on the contra account, or an amount that fits only one invoice. By default you get a proposal and you book it.
-
The receipt behind a payment out
Money that left with no document cannot be booked as a cost and its VAT is never reclaimed. Schakel asks for it, reminds you exactly once and then stops. Say there is no receipt and it stops right away.
-
A photo becomes a purchase invoice
You send a photo or PDF, the supplier, amount, VAT and date are read from it and you are asked which project it belongs to. After your confirmation the booking sits in Moneybird with the file attached and tied to the bank entry.
-
Everything you normally click in Moneybird
Creating sales invoices and quotes, turning a quote into an invoice, logging hours and invoicing them, finding, creating and updating contacts, registering a payment and issuing a credit note.
What you still have to build once you have the model
Getting a model to talk to an API is the part that takes an afternoon. Everything below is the part that comes after, and it is exactly the part where a half working bookkeeping bot costs you money instead of saving you time.
Which actions may the model take?
Whatever tools you hand it. Give it the whole API and it can delete and send invoices too, which you find out the first time it gets enthusiastic.
One fixed list, with sending and deleting deliberately last. What is not on it cannot be called.
Ledger account and VAT rate per line
Moneybird wants to know per invoice line where it books and at which rate. Otherwise the model picks that itself, and one wrong account shows up only in your quarterly figures.
You settle which account and which rates you use during setup. That is the base every booking falls back on.
Contacts appearing twice
An invoice hangs off a contact, so a slightly differently spelled name produces a second customer. Deduplicating afterwards is manual work.
It first searches whether the contact already exists, and creating one is a separate action you see before it runs.
Matching bank entries to invoices
Sounds simple until you build it. A wrong match marks a customer paid who has not paid, and unpicking that in Moneybird is worse than never having matched at all.
Scores 0 to 100 and by default only proposes. Invoice number in the description with a matching amount is 100, a name on a unique amount 95, a unique amount alone 85. The threshold sits at 90.
What if the model gets it wrong?
Then it is in your books. You can undo it, but you have to spot it first, and spotting things was what the automation was for.
Anything that records something shows the draft first and waits for your yes. A misunderstanding is then a question rather than a correction.
If you do build it yourself, these are the four things we would solve first: a closed action list, a confirmation step, deduplication on contacts, and never booking automatically when in doubt.
What it saves you
- No key of your own, no hosting of your own, no token bill surprising you monthly.
- The edge cases are already solved: duplicate contacts, wrong matches, missing receipts.
- Books nothing when in doubt, and says why it doubts.
- You keep the Moneybird API in your own hands: you withdraw access there.
Setting it up
- 01
Authorise Schakel in Moneybird
You grant access once through Moneybird and pick the administration. No hand-made key in a .env file is involved.
- 02
Settle your ledger and VAT
Which account your revenue lands on, which rates you use and which projects are running. This is the part you would have had to do when building it yourself too, only then in code.
- 03
Leave payment matching on propose
By default the assistant proposes rather than books. Leave it that way for a few weeks, see whether the proposals hold up, and only tighten it afterwards if you want to.
- 04
Set the floor for receipt requests
A business account is full of bank charges and direct debits that will never have a receipt. With a minimum amount the assistant does not ask about those, and the rest stays worth answering.
What you need
- A Moneybird administration you administer
- A Schakel account for the chat and the settings
- Clarity on your ledger account, VAT rates and projects
Not sure how to get those keys? Step by step:
Where it runs
On app.schakel.app, with your own Schakel account. No webshop required.
Then from €10 a month billed yearly, or stay on free. See the tiers
Set the automation upRelated connections
Connect a different pair
Schakel also links two systems to each other directly. Pick two and see what travels between them.
Common questions
Does Schakel use the OpenAI API?
No. The assistant runs on DeepSeek. No OpenAI account is attached and you cannot put an OpenAI key of your own into it either.
Can I build against Moneybird with the OpenAI API myself?
Yes. Moneybird has an API and a model can call it. The comparison above names what still has to go around it before you dare point it at your real books.
What does running the model cost me?
Nothing separately. You pay the Schakel tier, not per conversation or per token. There is no separate bill from a model provider.
Can the model call the whole Moneybird API?
No. It gets one fixed list of actions and can do nothing outside it. That list is deliberately limited to what you want to be able to do in the chat.
Does it book a payment automatically?
Not by default. It proposes, with the confidence and the reason attached, and you say yes. Booking automatically is a setting you switch on, and it only acts above the threshold.
Does it keep working if Moneybird is briefly down?
The action fails at that moment and you see that, rather than something quietly going wrong. Nothing is lost.
Can you connect OpenAI to Moneybird?
Yes. Schakel connects through the official APIs of OpenAI and Moneybird, so you install nothing on your own server and nothing travels outside those two parties.
Which VAT rate do my sales get in Moneybird?
The rate is set per line: 21%, 9% or 0%. Sales to Belgium and other EU countries get the rate of the destination country, ready for your OSS return.