4
3-2-2026
The Bookie stelt een API beschikbaar voor beperkte functionaliteiten.
Authenticatie gaat via OAuth2. Voordat je aan de slag kunt moet bij The Bookie een client_id en client_secret worden aangevraagd. Dit kan via het emailadres development@thebookie.nl. Wij hebben een naam nodig van de applicatie die toegang vraagt en een redirect url, waarnaar, na een succesvolle koppeling met een account, geredirect kan worden.
Om te beginnnen met de autorisatie flow ga je naar het volgende endpoint:
https://backend.thebookie.nl/nl/o/authorize/?response_type=code&client_id=e7ah0e13Plz9sIV4Aj9fLkL4saNDQdYIn1CPKVEa&redirect_uri=http://test.redirect.url/
Je zult nu het volgende scherm zien dat vraagt om autorisatie van de gebruiker. Wanneer de gebruiker toegang heeft tot meerdere administraties, wordt gevraagd voor welke administratie de gebruiker toegang wil verlenen.

Als redirect_url in dit voorbeeld hebben we http://test.redirect.url/ gebruikt. Na een succesvolle autorisatie zou je nu het volgende url moeten krijgen:
http://test.redirect.url/?code=uVqLxiHDKIirldDZQfSnDsmYW1Abj2&admin_id=3496
De autorisatie code is 60 seconden geldig.
Let op: De OAuth2 autorisatie van The Bookie wijkt af van standaard in de zin dat naast het teruggeven van een autorisatie code, ook een admin_id als parameter wordt teruggegeven. Dit admin_id is belangrijk omdat het in bijna alle requests worden gebruikt.
Nu kan een access token worden opgevraagd. Het volgende cURL command kan als voorbeeld worden gebruikt:
curl -X POST \
-H "Cache-Control: no-cache" \
-H "Content-Type: application/x-www-form-urlencoded" \
"https://backend.thebookie.nl/nl/o/token/" \
-d "client_id=e7ah0e13Plz9sIV4Aj9fLkL4saNDQdYIn1CPKVEa" \
-d "client_secret=jfOGDUhTSF8LaqwzqHZ3fMFVzf3YXpz8GQXXcJidWCX247WZnHk5hgYtrPkDFlbL8d1Clj4PzHFrezpy1lN5U2QO79vQnYJMfkpo0OLht3xepDZSD0PGgyIb4rdAQSVi" \
-d "code=uVqLxiHDKIirldDZQfSnDsmYW1Abj2" \
-d "redirect_uri=http://test.redirect.url/" \
-d "grant_type=authorization_code" \
-d "admin_id=3496"
Je zou nu de volgende response moeten krijgen:
{ "access_token": "jooqrnOrNa0BrNWlg68u9sl6SkdFZg", "expires_in": 36000, "token_type": "Bearer", "scope": "read write", "refresh_token": "HNvDQjjsnvDySaK0miwG4lttJEl9yD" }
Om toegang tot resources te krijgen gebruik je het access token. Bijvoorbeeld:
curl \
-H "Authorization: Bearer jooqrnOrNa0BrNWlg68u9sl6SkdFZg" \
-X GET https://backend.thebookie.nl/nl/api/e1/resource
curl -X POST \
-H "Cache-Control: no-cache" \
-H "Content-Type: application/x-www-form-urlencoded" \
"https://backend.thebookie.nl/nl/o/token/" \
-d "client_id=e7ah0e13Plz9sIV4Aj9fLkL4saNDQdYIn1CPKVEa" \
-d "client_secret=jfOGDUhTSF8LaqwzqHZ3fMFVzf3YXpz8GQXXcJidWCX247WZnHk5hgYtrPkDFlbL8d1Clj4PzHFrezpy1lN5U2QO79vQnYJMfkpo0OLht3xepDZSD0PGgyIb4rdAQSVi" \
-d "refresh_token=HNvDQjjsnvDySaK0miwG4lttJEl9yD" \
-d "redirect_uri=http://test.redirect.url/" \
-d "grant_type=refresh_token" \
-d "admin_id=3496"
Lijst
Endpoint:
GET https://backend.thebookie.nl/nl/api/e1/contacts/?admin_id=admin_id
Url parameters:
DETAIL / UPDATE / PATCH / DELETE
Endpoint:
GET https://backend.thebookie.nl/nl/api/e1/contacts/contact_id/
Url parameters:
response:
{
"id": 97645,
"organisation_name": "Gladiool Tuinarchitecten",
"street": "",
"street_number": "",
"street_number_addition": null,
"extra_address_line": "",
"postal_code": "",
"town": "",
"country": "",
"organisation_kvk_number": null,
"organisation_btw_number": null,
"is_supplier": true,
"is_client": true,
"email": null,
"telephone_number": null,
"mobile_number": null,
"status": 1,
"first_name": null,
"last_name": null,
"associated_ledger_account": [],
"btw_shifted_preset": "NONE",
"total_sales_amount_excl_btw": 0,
"total_sales_amount_payable": 0,
"total_purchase_amount_excl_btw": 0,
"total_purchase_amount_payable": 0,
"extra_info": ""
}
Aanmaken
Endpoint:
POST https://backend.thebookie.nl/nl/api/e1/contacts/create/
Voorbeeld:
{
"admin_id": 3496,
"organisation_name": "Gladiool Tuinarchitecten",
"street": "Waterstraat",
"street_number": "9999",
"street_number_addition": null,
"extra_address_line": null,
"postal_code": "3511BW",
"town": "Utrecht",
"country": null,
"organisation_kvk_number": null,
"organisation_btw_number": null,
"is_supplier": true,
"is_client": true,
"email": "ricky@gladiool.nl",
"telephone_number": null,
"mobile_number": null,
"first_name": "Ricky",
"last_name": "Gladiool",
"extra_info": ""
}
Lijst
Endpoint:
GET https://backend.thebookie.nl/nl/api/e1/sales-journals/?admin_id=admin_id
Url parameters:
Aanmaken
Endpoint:
POST https://backend.thebookie.nl/nl/api/e1/sales-journals/create/
Voorbeeld:
{
"admin_id": 3496,
"contact_id": 10689,
"invoice_number": 2021231,
"invoice_date": "2021-10-12",
"btw_shifted": "NONE",
"journal_entry_lines": [
{
"description": "Boekregel 1",
"btw_type": "PROCENT_21",
"amount": "1200.0",
"quantity": "2.00"
}
],
"attachment": null,
}
btw_shifted opties: ["NONE", "NON_EU", "EU"]
btw_type opties: ["PROCENT_9", "PROCENT_21", "PROCENT_0"]
Optioneel kan een PDF als bijlage meegestuurd worden. Dit gaat in de vorm van een Base64 encoded string. Meer info.
DETAIL / UPDATE / PATCH / DELETE
Endpoint:
https://backend.thebookie.nl/nl/api/e1/sales-journals/id/
Om boekregels aan te passen, moet het id worden meegegeven van de boekregel. Doe je dit niet, dan wordt een nieuwe boekregel aan de factuur toegevoegd. Wil je een boekregel van het verkoopfactuur verwijderen, dan moet "deleted": true worden toegevoegd. In het volgende voorbeeld wordt in een enkele call een regel aan het factuur toegevoegd en één verwijderd.
{
"journal_entry_lines": [
{
"id": 12312312,
"deleted": true
},
{
"description": "Boekregel 2",
"btw_type": "PROCENT_9",
"amount": "10.0",
"quantity": "1.00"
}
]
}
In feite wordt bij het betalen van een factuur een memoriaalboeking aangemaakt. Hier is voor het gemak een speciaal endpoint voor, die de request vergemakkelijkt.
GET https://backend.thebookie.nl/nl/api/e1/sales-journals/id/payments/
Geeft een lijst met betalingen (memoriaalboekingen) gekoppeld aan de factuur.
POST https://backend.thebookie.nl/nl/api/e1/sales-journals/id/payments/create/
Betaling registreren voor de verkoopfactuur
Voorbeeldrequest:
{
"amount": "120.00",
"date": "2021-10-13"
}
Response:
{ "status": "payment successfully created" }
Standaard wordt de betaling geboekt op grootboekrekening 1300 - Debiteuren. Optioneel kan een grootboekrekeningnummer aan de request worden toegevoegd om de boeking op een ander grootboekrekeningnummer te doen.
{
"amount": "120.00",
"date": "2021-10-13",
"ledger_account_number": 2110
}
Wanneer de het volledig openstaande bedrag van de factuur is voldaan, zal de status van de factuur automatisch veranderen naar "Voldaan".
Lijst
Endpoint:
GET https://backend.thebookie.nl/nl/api/e1/purchase-journals/?admin_id=admin_id
Url parameters:
Aanmaken
Endpoint:
POST https://backend.thebookie.nl/nl/api/e1/purchase-journals/create/
Voorbeeld:
{
"admin_id": 3496,
"contact_id": 10689,
"payment_ref": 2021231,
"invoice_date": "2021-10-12",
"btw_shifted": "NONE",
"journal_entry_lines": [
{
"description": "Boekregel 1",
"btw_type": "PROCENT_21",
"amount": "1200.0",
"amount_btw": "252.0",
"master_ledger_account": 4140,
}
],
"attachment": null
}
btw_shifted opties: ["NONE", "NON_EU", "EU"]
btw_type opties: ["PROCENT_9", "PROCENT_21", "PROCENT_0"]
Optioneel kan een PDF als bijlage meegestuurd worden. Dit gaat in de vorm van een Base64 encoded string. Meer info.
Reverse Billing
In het geval van Reverse Billing bevat de inkoopfactuur omzet. Er wordt dan een omzetrekening gekoppeld aan de boekregel, (8002: Verkopen 21%, 8001: Verkopen laag/9% of 8000 Verkopen vrijgesteld van btw)
Ook moet reverse_billing: true; worden meegegeven in de request body.
Voorbeeld:
{
"admin_id": 3496,
"contact_id": 10689,
"payment_ref": 2021231,
"invoice_date": "2021-10-12",
"btw_shifted": "NONE",
"reverse_billing": true,
"journal_entry_lines": [
{
"description": "Boekregel 1",
"btw_type": "PROCENT_21",
"amount": "1000.0",
"amount_btw": "210.0",
"master_ledger_account": 8002,
}
]
}
DETAIL / UPDATE / PATCH / DELETE
Endpoint:
https://backend.thebookie.nl/nl/api/e1/purchase-journals/id/
Om boekregels aan te passen, moet het id worden meegegeven van de boekregel. Doe je dit niet, dan wordt een nieuwe boekregel aan de factuur toegevoegd. Wil je een boekregel van het inkoopfactuur verwijderen, dan moet "deleted": true worden toegevoegd. In het volgende voorbeeld wordt in een enkele call een regel aan het factuur toegevoegd en één verwijderd.
{
"journal_entry_lines": [
{
"id": 12312312,
"deleted": true
},
{
"description": "Boekregel 2",
"btw_type": "PROCENT_9",
"amount": "10.0",
"amount_btw": "0.90",
"master_ledger_account": 4140,
}
]
}
Lijst
Endpoint:
GET https://backend.thebookie.nl/nl/api/e1/ledger/?admin_id=admin_id
Url parameters:
DETAIL
GET https://backend.thebookie.nl/nl/api/e1/ledger/id/
Lijst
Endpoint:
GET https://backend.thebookie.nl/nl/api/e1/general-journals/?admin_id=admin_id
Url parameters:
DETAIL
GET https://backend.thebookie.nl/nl/api/e1/general-journals/id/
Was dit artikel nuttig?
Bekijk meer help-artikelen