Een Agent Skill voor debiteurenbeheer in Moneybird: openstaande posten opvragen, bankafschriften matchen en betalingen registreren — met een verplichte controle tegen dubbele boekingen.
Waarom die controle er is. Bij een eerdere opzet werden bestaande betalingen opnieuw toegevoegd, met dubbele betalingen in de administratie als gevolg. Er zat geen fout in de koppeling en geen fout in het model: de handeling deed exact wat er stond, maar wist niet dat hij al eerder was uitgevoerd.
Een vraag twee keer stellen is gratis. Een betaling twee keer registreren is dat niet.
Deze skill bestaat vooral om die fout niet nog eens te maken.
Dit project bestaat in twee smaken. Ze concurreren niet met elkaar; ze zitten op een andere laag.
| skill-moneybird (deze repo) | skill-moneybird-typescript | |
|---|---|---|
| Wat het is | een Claude Agent Skill: een set instructies in het Nederlands | broncode: TypeScript-functies die de Moneybird-API aanroepen |
| Wie doet het werk | een AI-assistent, via Moneybirds eigen AI-koppeling | jouw eigen programma |
| Hoe je het gebruikt | je vraagt in gewone taal: "welke klanten hebben een betalingsachterstand?" | je roept een functie aan: getOpenInvoicesWithDetails() |
| Nodig | Claude of ChatGPT, plus een Moneybird-koppeling | Node.js, TypeScript, en ergens om het te draaien |
| Programmeren | nee | ja |
| Draait vanzelf | nee — jij begint het gesprek | ja — cron, webhook of trigger naar keuze |
| Uitkomst | een antwoord in de chat, per keer net iets anders geformuleerd | dezelfde input geeft altijd dezelfde output |
| Installeren | map kopiëren naar ~/.claude/skills/ |
npm install in je eigen project |
Deze skill vertelt een AI hoe hij zich moet gedragen. De TypeScript-versie doet het werk zelf.
Daar volgt de rest uit. Een skill is tekst: hij bevat regels, volgorde en waarschuwingen, maar voert niets uit — dat doet het model, via een koppeling. Dat maakt hem flexibel (je kunt vragen stellen die niemand had voorzien) en tegelijk minder voorspelbaar dan code.
| Wat je wilt | Kies |
|---|---|
| Even weten wie er nog moet betalen | deze skill |
| Een bankafschrift verwerken terwijl je meekijkt en goedkeurt | deze skill |
| Vragen stellen die je vooraf niet had bedacht | deze skill |
| Geen code aanraken | deze skill |
| Elke maandagochtend automatisch een debiteurenoverzicht mailen | TypeScript |
| Direct reageren als er een betaling binnenkomt (webhooks) | TypeScript |
| Dit inbouwen in een eigen dashboard of portaal | TypeScript |
| Precies kunnen nalezen wat er gebeurt, regel voor regel | TypeScript |
Begin hier. Deze versie is in vijf minuten werkend en dekt verreweg de meeste situaties. Kom je iets tegen dat niet kan — plannen, herhalen, integreren — dan is de TypeScript-versie de volgende stap.
Je kunt ze ook naast elkaar gebruiken: deze skill voor de dagelijkse vragen, de code voor wat automatisch moet draaien.
- De duplicaatcontrole — dezelfde regel, dezelfde sleutel (bedrag + datum), dezelfde uitkomsten.
- De veiligheidsregels — read-only beginnen, goedkeuring per handeling, nooit een token in een bestand.
- De setup — beide hebben een administratie-ID en een API-token nodig, op dezelfde manier aangemaakt.
- De licentie — MIT.
Wat er niet hetzelfde is: alleen de TypeScript-versie kan webhooks ontvangen en kan als MCP-server worden aangeboden.
- Openstaande facturen en betalingsachterstanden opvragen en rapporteren
- Een bankafschrift matchen aan openstaande facturen
- Betalingen registreren — alleen na duplicaatcontrole en expliciete goedkeuring
- Een verwerkingslog bijhouden, zodat een volgende ronde weet wat er al gedaan is
Wat de skill bewust níét doet: facturen aanmaken of verwijderen, betalingen wijzigen of terugdraaien, herinneringen versturen zonder opdracht.
Voor elke betaling die geregistreerd zou worden:
| Situatie | Actie |
|---|---|
| Zelfde bedrag, zelfde datum al aanwezig | duplicaat → niet registreren |
| Zelfde bedrag, andere datum | mogelijk een echte tweede betaling → voorleggen aan de gebruiker |
total_unpaid is al 0 |
niets te registreren → overslaan |
De datum is wat het onderscheid maakt. Dedupliceer je alleen op bedrag en klant, dan gooi je legitieme tweede betalingen weg. Dedupliceer je niet, dan boek je dubbel.
Moneybird kent geen "ongedaan maken" voor geregistreerde betalingen. De skill vraagt daarom vóór elke batch de openstaande posten op en bewaart ze, en vergelijkt daar na afloop mee. Zo zie je precies wat er veranderd is in plaats van het te moeten reconstrueren.
Twee regels die dit samenvatten: altijd controleren, en zorgen voor een backup. Het gaat mis op de dag dat er haast is.
Kopieer de map moneybird-debiteuren/ naar je skills-map:
# persoonlijk, beschikbaar in elk project
cp -r moneybird-debiteuren ~/.claude/skills/
# of alleen voor dit project
cp -r moneybird-debiteuren .claude/skills/Claude laadt de skill zelf zodra een vraag erover gaat. Aanroepen kan ook expliciet met /moneybird-debiteuren.
Je hebt twee gegevens uit Moneybird nodig. Beide maak je zelf aan; ze bestaan niet vanzelf.
Log in en kijk naar de URL:
https://moneybird.com/1415161819/feed
└────────┘
dit is je administratie-ID
Instellingen → Externe en AI-koppelingen. Bij het aanmaken kies je:
- Rechten —
Read onlyof read-write. Kies read-only tenzij je echt betalingen moet registreren. - Onderdelen — geef alleen wat nodig is: facturen, plus bank als je afschriften verwerkt.
⚠️ Read-only of read-write kun je achteraf niet wijzigen. Wil je het omzetten, dan maak je een nieuw token aan en verwijder je het oude.
⚠️ Een read-only token kun je alleen aanmaken als je eigenaar van de administratie bent.
cp .env.example .env # en vul je gegevens inZet ze in omgevingsvariabelen — nooit in een bestand in de projectmap. Staat er ooit toch een token in je code of documentatie: het bestand aanpassen helpt niet. Trek het token in Moneybird in en maak een nieuw aan, want het blijft geldig en staat inmiddels ook in je versiegeschiedenis en backups.
Moneybird biedt zelf een AI-koppeling (MCP) voor ChatGPT, Claude, Cursor en Mistral, met een keuze tussen read-only en read-write en zonder verwijderacties. Gebruik je die, dan verloopt authenticatie meestal via OAuth en heb je alleen het administratie-ID nodig. Deze skill werkt met beide routes.
- Begin read-only. Vragen stellen over je administratie levert al veel op en kan niets kapotmaken. Geef pas schrijfrechten als je vertrouwt wat je ziet.
- Zet "altijd goedkeuren" niet aan. Laat je client per handeling om akkoord vragen — zeker bij geld.
- Anonimiseer klantnamen en bedragen in alles wat naar buiten gaat: screenshots, blogs, trainingsmateriaal.
- Controleer de eerste verwerkingen handmatig, en houd dat langer vol dan comfortabel voelt.
- Moneybird stelt expliciet dat configuratie en gebruik je eigen verantwoordelijkheid zijn.
Deze skill kan wijzigingen aanbrengen in je boekhouding. Controleer wat er gebeurt, zeker in het begin. De auteur is niet aansprakelijk voor onjuiste boekingen of gevolgschade — zie LICENSE.
- API-token aanmaken en beheren
- Read-only API-token aanmaken
- AI-koppeling (MCP)
- Zelf een koppeling maken
MIT — zie LICENSE.
Gemaakt door Eelco Wynia — AI-trainer en interim online marketeer. Bouw je liever zelf? → skill-moneybird-typescript