KPL-5799

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.

Fixed action listLedger and VATDeduplicated contactsConfirm before writing
Set the automation up Free to start · 30 days unlimited
In practice

What that looks like

A bank transaction held against your open invoices. By default Schakel proposes and you book.
Schakel assistant Your dashboard
Today
Payment found. € 242.00 on 12 September. 07:12
Proposal Invoice 2026-0234 Customer Jan Janssen Reason Invoice number in the description Confidence 100 out of 100 Shall I book it? 07:12
Yes 07:20
Booked. Invoice 2026-0234 is marked paid in Moneybird. 07:20
A photo of a receipt becomes a purchase invoice, with the file attached.
Schakel assistant Your dashboard
Today
Verfhandel Rijnmond receipt 10:15
Verfhandel Rijnmond, 68.40 incl. 21% VAT, 3 September. Which project shall I book it on? 10:15
Duinzicht Schilderwerk 10:16
Booked as a purchase invoice with the photo attached. Shall I remember that Verfhandel Rijnmond is usually Duinzicht Schilderwerk? 10:16
Yes, do that 10:16
Remembered. It shows up as a knowledge card in your dashboard, and you can take it away again there. 10:17
The link

What the assistant does

What this automation does, and when.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Build it or switch it on

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?

Building it yourself

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.

Schakel

One fixed list, with sending and deleting deliberately last. What is not on it cannot be called.

Ledger account and VAT rate per line

Building it yourself

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.

Schakel

You settle which account and which rates you use during setup. That is the base every booking falls back on.

Contacts appearing twice

Building it yourself

An invoice hangs off a contact, so a slightly differently spelled name produces a second customer. Deduplicating afterwards is manual work.

Schakel

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

Building it yourself

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.

Schakel

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?

Building it yourself

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.

Schakel

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 you get out of it

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.
In four steps

Setting it up

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Free to start

Then from €10 a month billed yearly, or stay on free. See the tiers

Set the automation up
Another pair

Connect a different pair

Schakel also links two systems to each other directly. Pick two and see what travels between them.

Systems · 183
From
To

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.