Documentatie
Drie tools, één asynchroon patroon, een vaste reeks foutcodes.
Verbinden
Instructies per client staan op de installatiepagina's. Een aanvraag zonder sleutel krijgt 401 met een WWW-Authenticate-header; een sleutel boven de snelheidslimiet krijgt 429 met Retry-After.
Het asynchrone patroon
Een neerlegging ophalen betekent de Nationale Bank aanroepen, een neerlegging downloaden en XBRL verwerken — te traag om een tool-aanroep open te houden, en veel te traag wanneer de neerlegging een pdf is die een LLM nodig heeft. Daarom geeft get_annual_accounts een operatie terug die u polt.
- Roep
get_annual_accounts aan. Normaal krijgt u {"operation_id": "…", "status": "pending", "poll_after_seconds": 3}.
- Wacht
poll_after_seconds en roep dan get_operation aan met dat id. Herhaal zolang de status pending of processing is.
- Stop bij
completed (de jaarrekening staat in result) of failed (er is een error-object met een code uit de tabel hieronder).
Er zitten twee kortere wegen in. Een neerlegging die al in de cache zit, komt onmiddellijk terug uit get_annual_accounts met status: "completed" en cached: true — zonder pollen. Een neerlegging uit de cache waarvan de JSON te groot is om mee te sturen (meer dan 100 KB, wat gebeurt met raw: true) komt terug als operatie met cached: true, en de eerste poll antwoordt onmiddellijk.
Vraag niet opnieuw aan terwijl een operatie loopt.
Identieke aanvragen worden serverzijdig samengevoegd: opnieuw vragen geeft hetzelfde operation-id en kost nog een aanrekenbare aanroep voor niets.
Operaties horen bij de API-sleutel die ze aanmaakte. Het id van iemand anders pollen antwoordt precies zoals een onbestaand id pollen. Afgeronde operaties worden 30 dagen na hun einde opgeruimd.
Foutcodes
Een mislukte operatie draagt error.code, en die strings staan vast — een client mag erop vertakken.
Fouten die geen mislukte operatie zijn
Verkeerde invoer, een opgebruikt quotum en een onbekend operation-id komen terug als tool-fout (MCP isError: true) met een verklarende boodschap, en niet als een operatie die u kunt pollen — er loopt niets om te pollen.
Limieten
Quota gaan op de 1ste van elke maand terug op nul.
De result-JSON
Elk afgerond resultaat van get_annual_accounts heeft dezelfde vorm:
Talen
language aanvaardt nl, fr, de en en, en staat standaard op nl. De labels komen uit de taxonomielabellinkbases van de Nationale Bank zelf, niet uit een vertaalmachine, zodat ze overeenkomen met de woorden op de officiële formulieren.
Ontbreekt een label in de gevraagde taal, dan valt het antwoord terug in deze orde: gevraagde taal → de taal waarin de neerlegging is ingediend → nl → fr → en. De cijfers veranderen nooit met de taal, en meta.response_language zegt wat u werkelijk gekregen hebt.
De website zelf verschijnt in dezelfde vier talen; de taalkiezer staat in de navigatie en uw keuze wordt in een cookie bewaard.
Gegevensbronnen en voorbehouden
meta.data_source zegt hoe een resultaat tot stand kwam, en dat is het veld dat u leest voor u een getal vertrouwt:
Bekende voorbehouden
- Alleen neerleggingen die de Nationale Bank aanvaard heeft, worden geleverd. Een neerlegging die later gecorrigeerd is, leidt naar de correctie en niet naar het origineel.
- Het zoeken op naam gebruikt het opendatabestand met benamingen van de KBO/BCE, dat maandelijks vernieuwd wordt. Een bedrijf dat de laatste weken is opgericht, is misschien eerder op nummer dan op naam te vinden.
- Verschillende bedrijven kunnen dezelfde naam hebben.
search_company geeft kandidaten met een matchscore en verwacht dat de aanroeper kiest in plaats van dat wij gokken.
- Oudere neerleggingen gebruiken vroegere taxonomiegeneraties. Waar een generatie nog niet gekoppeld is, zegt het antwoord dat (
pdf_fallback_required) in plaats van gedeeltelijke cijfers te geven.
- Deze dienst is niet verbonden met de Nationale Bank van België en voegt geen interpretatie toe: wat neergelegd is, is wat u krijgt, met inbegrip van de fouten die de neerlegger maakte.