Een koppeling met jortt bouwen voor je eigen software
Heb je een eigen SaaS-product, webshopplatform, urenregistratie of branchepakket, dan lopen je gebruikers vroeg of laat tegen dezelfde vraag aan: hoe krijg ik dit in mijn boekhouding? Met de jortt API bouw je die brug één keer, waarna al je gebruikers hem kunnen aanzetten.
Deze pagina is voor softwareontwikkelaars en producteigenaren. Gebruik je zelf jortt en wil je weten hoe je een koppeling aanzet, kijk dan bij De jortt API en koppelingen bouwen.
Waarom een koppeling met jortt loont
- Je bereikt een grote groep ondernemers. 110.000+ ondernemers doen hun boekhouding in jortt, van zzp’er tot mkb-bedrijf.
- Je haalt dubbel werk weg. Uren, orders, werkbonnen en betalingen die al in jouw software staan, hoeven niet nog een keer te worden overgetypt. Dat is voor de meeste gebruikers precies de reden om voor een pakket met koppeling te kiezen.
- Een koppeling is een koopargument. Ondernemers zoeken actief op de combinatie van hun pakket en hun boekhoudprogramma. Een werkende koppeling is vaak het verschil tussen wel en niet op de shortlist staan.
- Je koppeling blijft zichtbaar. Je komt in het overzicht met kant-en-klare koppelingen en in het App-center, de twee plekken waar ondernemers kijken of hun software met jortt praat.
Wat je krijgt
Je hoeft geen partnerprogramma te doorlopen en geen certificering te halen. Wat er beschikbaar is:
- Openbare documentatie op developer.jortt.nl, zonder inloggen.
- Een OpenAPI-specificatie (Swagger 2.0) op api.jortt.nl/swagger_doc, waaruit je met standaardgereedschap een client genereert in je eigen taal.
- Een Postman-collectie, zodat je binnen een uur je eerste klant en factuur via de API hebt aangemaakt.
- Een vermelding in het koppelingenoverzicht en in het App-center zodra je koppeling werkt.
Twee soorten koppelingen
De jortt API ondersteunt twee OAuth 2.0-varianten. Welke je nodig hebt, hangt af van voor wie je bouwt:
- Authorization code. Voor een koppeling die door andere jortt-gebruikers wordt gebruikt, bijvoorbeeld een webshop, een urenregistratie of een branchepakket. Je gebruiker logt bij jortt in, geeft toestemming, en jouw applicatie krijgt toegang tot díé administratie. Dit is de variant die je nodig hebt als je iets voor je klanten bouwt.
- Client credentials. Voor een applicatie die je alleen voor je eigen administratie maakt. Die applicatie is vast verbonden aan de administratie die hem heeft aangemaakt.
Zo meld je je applicatie aan
Voor de authorization code-flow is er geen selfservice-registratie. Je meldt je applicatie aan per e-mail:
- Bepaal welke scopes je nodig hebt. Vraag er niet meer aan dan je gebruikt; je gebruiker ziet ze op het toestemmingsscherm.
- Stuur een e-mail naar support@jortt.nl met de naam van je applicatie, je redirect-URL en de scopes die je nodig hebt.
- Je ontvangt daarna je client ID en client secret.
Bouw je alleen iets voor je eigen administratie, dan registreer je de applicatie zelf in jortt onder Instellingen, Koppelingen.
Zo werkt de koppeling technisch
De API is een REST-API op https://api.jortt.nl met JSON als formaat. De actuele versie is v3; het versienummer staat in het pad, bijvoorbeeld https://api.jortt.nl/v3/customers.
De autorisatie loopt via app.jortt.nl:
Autorisatie https://app.jortt.nl/oauth-provider/oauth/authorize
Token https://app.jortt.nl/oauth-provider/oauth/token
De flow in het kort:
- Stuur je gebruiker naar de autorisatie-URL met je
client_id, jeredirect_uri,response_type=code, de gevraagdescope(meerdere scopes gescheiden door een spatie) en een willekeurigestate. - Je gebruiker geeft toestemming en komt terug op je
redirect_urimet eencodeen dezelfdestate. Controleer diestateen gooi alles weg wat niet klopt. De code is 10 minuten geldig. - Wissel de code in bij de token-URL. Je client ID en secret stuur je mee via Basic Authentication, en de
redirect_urimoet exact dezelfde zijn als in stap 1. - Je krijgt een
access_tokendat 2 uur geldig is, plus eenrefresh_token. Bij het verversen krijg je zowel een nieuw access token als een nieuw refresh token terug. - Roep de API aan met de header
Authorization: Bearer <access_token>.
De redirect_uri moet er precies een zijn die je bij de aanmelding hebt doorgegeven, en je mag nooit meer scopes vragen dan je hebt laten registreren.
Wat je kunt koppelen
Je vraagt per onderdeel toegang aan, apart voor lezen en voor schrijven:
- Klanten (
customers:read,customers:write): klanten aanmaken, bijwerken, archiveren en btw-percentages ophalen. - Facturen (
invoices:read,invoices:write): facturen aanmaken en in dezelfde aanroep versturen, crediteren, kopiëren, labelen en de pdf ophalen. Projecten en projectregels vallen ook onder deze scopes. - Offertes (
estimates:read,estimates:write): offertes aanmaken, versturen, accepteren, afwijzen en met één aanroep omzetten in een factuur. - Uitgaven (
expenses:read,expenses:write): uitgaven aanmaken en bijwerken, en er een bon aan koppelen. - Bonnen (
inbox:write): afbeeldingen naar de Inbox uploaden, zodat de Boekhoudbot ze verwerkt. - Rapporten (
reports:read): samenvattingen van facturen, btw, balans, winst-en-verlies en liquide middelen, bedoeld voor een dashboard. - Salaris (
payroll:read,payroll:write): loonjournaalposten lezen en wegschrijven. - Bankgegevens (
financing:read): bankrekeningen en banktransacties lezen. - Organisatie (
organizations:read,organizations:write): bedrijfsgegevens, handelsnamen en labels.
Twee dingen die vaak net het verschil maken in een koppeling:
- Versturen zit in de aanroep. Bij het aanmaken van een factuur of offerte geef je optioneel een verzendmethode mee:
email,peppolofself. Laat je die weg, dan blijft het een concept dat je gebruiker zelf nog controleert. Verzenden via Peppol werkt alleen op v3. - Categorieën zijn opvraagbaar. Via de ledger accounts-endpoints haal je de categorieën op die je gebruiker in zijn eigen administratie kan kiezen, zodat je niets hoeft te raden of hard te coderen.
Goed om te weten voor je begint
Vier dingen die je beter vooraf weet dan halverwege:
- Je gebruiker heeft jortt MKB of jortt Plus nodig. Een administratie op jortt Starter of jortt ZZP krijgt bij een API-verzoek de fout
organization.requires_mkb_plan. Vang die netjes af en leg in je eigen interface uit wat je gebruiker moet doen. - Er zijn geen webhooks. De documentatie beschrijft geen callbacks. Wil je weten of er iets is veranderd, dan haal je de resource opnieuw op.
- De limiet is 10 verzoeken per seconde, en je krijgt maximaal 100 resultaten per pagina. Bouw je een synchronisatie over veel administraties, houd daar dan rekening mee. Bij overschrijding krijg je een
429metrequest.throttled. - Er is geen aparte testomgeving. Je test tegen een gewone administratie. Een gratis account aanmaken kan via jortt proberen.
Liever geen koppeling bouwen
Wil je je gebruikers wel een koppeling bieden zonder er zelf een te onderhouden, dan zijn er twee routes:
- Via een koppelplatform. Partner APIcenter.io maakt en beheert koppelingen tussen jortt en tientallen pakketten. Zie Meer dan 50 apps koppelen via APIcenter.io.
- Via MCP. Voor rapportages en losse vragen kan een AI-assistent rechtstreeks bij een administratie, zonder dat er iets gebouwd wordt. Zie De jortt MCP-koppeling voor AI-assistenten.
Aanmelden
Klaar om te beginnen? Stuur een e-mail naar support@jortt.nl met de naam van je applicatie, je redirect-URL en de scopes die je nodig hebt. Vermeld erbij dat je in het koppelingenoverzicht wilt komen, dan regelen we dat zodra je koppeling werkt.
De volledige technische documentatie staat op developer.jortt.nl.