Authenticatie
Maak een sleutel in je account. Verstuur die uitsluitend vanaf je server in de Authorization-header. Elke sleutel kan direct worden ingetrokken.
Authorization: Bearer YOUR_REKENBOX_API_KEY
Content-Type: application/jsonKengetallen en berekeningen met credits
Gebruik GET /api/v1/calculations/tools voor alle ondersteunde rekentools, velden en het tarief. De uitkomst bevat formules, waarschuwingen en bij kengetallen alle 21 ratio’s. POST /api/v1/calculations/credits kost 6 credits per geslaagde berekening. De losse webberekening blijft gratis.
POST /api/v1/calculations/credits
{ "requestId": "550e8400-e29b-41d4-a716-446655440100",
"calculation": {
"tool": "kengetallen",
"input": { "company": "Example BV", "fiscalYear": "2026",
"previousYear": "false", "profitMode": "calculate",
"fixed": "60000", "stock": "20000", "debtors": "15000",
"cash": "10000", "otherAssets": "5000", "equity": "50000",
"longDebt": "30000", "creditors": "15000", "taxPayable": "5000",
"otherDebt": "10000", "revenue": "240000", "purchases": "100000",
"staff": "65000", "depreciation": "10000", "otherCosts": "30000",
"interest": "3000", "tax": "6000", "netProfit": "26000",
"capex": "15000", "shortBorrowings": "0", "nonOperatingAssets": "0" },
"options": { "locale": "en", "version": "2026.1" }
}
}Voorbeeldbedragen: vervang alle posten door de eigen administratie. Bedragen zijn strings in euro’s; nul wordt expliciet als "0" aangeleverd. Alle verplichte huidige velden en previousYear zijn vereist. Bij previousYear "true" zijn ook de velden met previous_ verplicht. Gebruik de actuele versie uit de catalogus. Maximaal 120 aanroepen per minuut, achtereenvolgens. Bij 429 of 503 wacht je en probeer je opnieuw met hetzelfde requestId en dezelfde invoer. Binnen 24 uur wordt een geslaagd verzoek teruggegeven zonder tweede afschrijving; andere invoer onder hetzelfde ID geeft 409. Een fout kost geen credits. Het responseveld result bevat de uitkomst, creditCost het tarief en usage.balance het gedeelde saldo.
Financiële plannen gebruiken tool financieel-plan, exploitatiebegroting, investeringsbegroting of liquiditeitsbegroting. Lever ieder veld uit de catalogus expliciet aan, inclusief actuals en de btw-keuze. Het budget-object bevat 12 tot 36 maanden; geldbedragen zijn strings in centen. Rapporten blijven indicatief.
EORI en bulkcontroles
De onderstaande routes gebruiken dezelfde persoonlijke API-sleutel en hetzelfde creditsaldo als VIES. De 10 gratis dagelijkse registercontroles worden gedeeld tussen VIES, EORI en losse leverancierscontroles. Bulk kost altijd 6 credits per afgeronde regel.
POST /api/v1/eori/check
{ "eori": "YOUR_PARTNER_EORI", "requestId": "550e8400-e29b-41d4-a716-446655440000" }
POST /api/v1/eori/bulk/check
{ "eori": "YOUR_PARTNER_EORI", "requestId": "550e8400-e29b-41d4-a716-446655440001" }
POST /api/v1/inspections/check
{ "requestId": "550e8400-e29b-41d4-a716-446655440002",
"input": { "kind": "iban", "iban": "YOUR_PARTNER_IBAN" } }
POST /api/v1/inspections/check
{ "requestId": "550e8400-e29b-41d4-a716-446655440003",
"input": { "kind": "ubl", "file": "<Invoice ...>...</Invoice>" } }
POST /api/v1/inspections/check
{ "requestId": "550e8400-e29b-41d4-a716-446655440004",
"input": { "kind": "suppliers", "supplier": "Your reference",
"vatId": "YOUR_PARTNER_VAT_ID", "eori": "YOUR_PARTNER_EORI", "iban": "YOUR_PARTNER_IBAN" } }
POST /api/v1/inspections/check
{ "requestId": "550e8400-e29b-41d4-a716-446655440005",
"input": { "kind": "invoices", "supplier": "Example supplier", "number": "INV-001",
"date": "2026-09-01", "net": "100", "vat": "21", "gross": "121",
"rate": "21", "currency": "EUR", "iban": "" } }Verwerk één regel per verzoek, na elkaar, maximaal 30 verzoeken per minuut. Voor EORI geldt EU + XI; GB geeft HTTP 422. Een leveranciersregel kan één of meerdere nummers bevatten en kost in totaal 6 credits. Lege, niet-beschikbare velden laat je weg. UBL is maximaal 1 MB per bestand. Factuur-CSV ondersteunt EUR; gebruik 0, 9, 21 of mixed als btw-tarief.
EORI geeft source EU-EORI, status valid of invalid, eori, checkedAt, requestDate (JJJJ-MM-DD) en optionele naam/adresvelden met null bij ontbrekende gegevens. Technische controles geven source Rekenbox, status clear of attention, findings en details. Beide bevatten charged, replayed, requestId en usage. IBAN bevestigt uitsluitend formaat en controlegetal. HTTP 503 betekent geen uitslag en geen afschrijving.
Gebruik voor één leverancierscontrole met gratis dagtegoed /api/v1/inspections/single/check met kind suppliers. De batch-API controleert ieder document op zichzelf. Vergelijk identity-velden in je eigen software om dubbelen of verschillende IBAN’s tussen documenten te vinden; de website doet die vergelijking in haar bulkoverzicht. Maandelijkse bewaking stel je in via de website.
Btw-nummer controleren
Maak gratis een API-sleutel in je persoonlijke account. Voor btw-controles is geen API-abonnement nodig. Je hebt 10 gratis controles per dag; daarna gebruikt iedere afgeronde controle 6 credits. Je account en IP-adres bepalen samen het gratis dagtegoed. Een nieuwe sleutel vernieuwt het tegoed niet.
POST https://www.rekenbox.com/api/v1/vat/check
{
"vatId": "YOUR_CUSTOMER_VAT_NUMBER",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}Gebruik een nieuwe UUID als requestId voor iedere nieuwe controle. Herhaal bij een verbindingsfout dezelfde requestId en hetzelfde nummer. Tot 24 uur krijg je dezelfde uitslag zonder een tweede afschrijving. Een ander nummer bij dezelfde requestId geeft HTTP 409. Het controlemoment blijft dat van de oorspronkelijke uitslag.
{
"source": "VIES",
"vatId": "YOUR_CUSTOMER_VAT_NUMBER",
"status": "valid",
"name": "EXAMPLE BUSINESS",
"address": null,
"checkedAt": "2026-09-06T09:00:00.000Z",
"requestDate": "2026-09-06T09:00:00.000Z",
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"charged": "free",
"replayed": false,
"usage": {
"freeLimit": 10, "freeUsed": 1, "freeRemaining": 9,
"creditsRemaining": 50, "creditsSpent": 0,
"balance": { "remaining": 300, "spent": 0, "granted": 300 },
"resetsAt": "2026-09-06T22:00:00.000Z", "timeZone": "Europe/Amsterdam"
}
}Bovenstaande response is een fictief documentatievoorbeeld. Naam en adres kunnen ontbreken. Zowel valid als invalid telt als afgeronde controle. Een VIES-storing, verkeerde invoer of geblokkeerd verzoek kost geen tegoed.
GET https://www.rekenbox.com/api/v1/vat/usagebalance.remaining toont je globale creditsaldo. De bestaande velden creditsRemaining en creditsSpent blijven aantallen btw-controles, voor compatibiliteit. Deze route schrijft niets af. Het dagtegoed vernieuwt om 00:00 uur in Europe/Amsterdam. Gekochte credits verlopen niet. Bij onvoldoende tegoed volgt HTTP 402 (vat_credits_required); bij een storing HTTP 503 (vies_unavailable). HTTP 429 is een tijdelijke verzoeklimiet, geen betaalopdracht. Wacht de Retry-After-tijd af. Maximaal 30 controleverzoeken per account per minuut; de gedeelde VIES-capaciteit kan eerder een tijdelijke limiet geven.
Een betaalde lijst controleren
POST https://www.rekenbox.com/api/v1/vat/bulk/checkStuur één btw-nummer en een unieke requestId per verzoek met dezelfde JSON als hierboven. Deze route gebruikt altijd 6 credits per afgeronde controle; gratis dagtegoed blijft onaangeroerd. Zonder gekochte credits volgt HTTP 402, ook met ongebruikt dagtegoed. Ontdubbel je lijst vooraf, verwerk de nummers na elkaar en bewaar per nummer dezelfde requestId bij opnieuw proberen. De website ondersteunt plakken en CSV/TSV tot 250 regels. Pauzeren stopt na het huidige verzoek.
Bestaande reken-API: een berekening uitvoeren
De overige reken- en bulkendpoints hieronder blijven onderdeel van eerder gekochte API-licenties. Credits geven daar geen toegang toe.
POST https://www.rekenbox.com/api/v1/calculate
{
"tool": "btw",
"input": { "amount": "100", "rate": "21", "mode": "add" },
"options": { "year": 2026, "version": "2026.1", "locale": "nl" }
}Alle invoervelden zijn strings. Geldbedragen in de invoer zijn euro’s; resultaatvelden van het type money zijn gehele centen als string. De response bevat result en usage.
Tools en velddefinities
GET https://www.rekenbox.com/api/v1/toolsDit geeft de ondersteunde tool-ID’s, velden, selectiewaarden, grenzen, jaren, versies, bronnen en uitgangspunten. Een onbekend jaar of een onbekende versie wordt afgewezen; Rekenbox vervangt die niet stilzwijgend.
Bulk
POST https://www.rekenbox.com/api/v1/bulk
{ "calculations": [
{ "tool": "btw", "input": { "amount": "100" } },
{ "tool": "iban", "input": { "iban": "NL91ABNA0417164300" } }
] }Maximaal tien berekeningen per verzoek en 10 MB aan bronbestanden. Iedere uitkomst heeft ok en result of error. Fouten tellen niet mee voor het quotum. De verwerking stopt wanneer de tijdslimiet is bereikt; onbewerkte onderdelen melden bulk_time_limit.
Quota en fouten
| HTTP | Betekenis |
|---|---|
| 400 / 422 | Controleer invoer, tool, jaar of formaat. |
| 401 | Ongeldige of ingetrokken sleutel. |
| 402 | Licentie niet actief voor deze functie. |
| 429 | Maandlimiet of verzoeklimiet bereikt. |
| 503 | Dienst bezet of tijdelijk niet bereikbaar; probeer later opnieuw. |
Quota worden per betalend account en kalendermaand in UTC gedeeld door alle sleutels en bulkcontroles. Maximaal 120 verzoeken per sleutel per minuut. Geen automatische meerkosten. Bronbestanden gaan in input.file als XML- of CSV-tekst; ze worden na verwerking niet bewaard. Bewaar zelf de resultaatversie bij je toepassing.