Skip to content

accounting

40 endpoints at a glance
MethodPathSummary
GET/accounting/accountsList Accounts
POST/accounting/accountsCreate Account
DELETE/accounting/accounts/{account_id}Delete Account
PATCH/accounting/accounts/{account_id}Update Account
POST/accounting/accounts/sync-defaultsSync Default Accounts
GET/accounting/btw-codesList Btw Codes
PATCH/accounting/btw-codes/{btw_id}Update Btw Code
GET/accounting/journalList Journal
POST/accounting/journalCreate Journal Entry
GET/accounting/journal/{entry_id}Get Journal Entry
POST/accounting/journal/{entry_id}/reverseReverse Journal Entry
GET/accounting/ledger/{account_id}Account Ledger
GET/accounting/profileGet Profile
PUT/accounting/profilePut Profile
GET/accounting/reports/balanceReport Balance
GET/accounting/reports/btwReport Btw
GET/accounting/reports/open-itemsReport Open Items
GET/accounting/reports/profit-lossReport Profit Loss
GET/accounting/reports/trial-balanceReport Trial Balance
GET/expensesList Expenses
POST/expensesCreate Expense
DELETE/expenses/{expense_id}Delete Expense
GET/expenses/{expense_id}Get Expense
PATCH/expenses/{expense_id}Update Expense
POST/expenses/{expense_id}/bookBook Expense
POST/expenses/{expense_id}/creditCredit Expense
POST/expenses/{expense_id}/paymentRegister Payment
POST/expenses/captureCapture Expense
POST/expenses/capture-from-emailCapture Expense From Email
GET/invoicesList Invoices
POST/invoicesCreate Invoice
DELETE/invoices/{invoice_id}Delete Invoice
GET/invoices/{invoice_id}Get Invoice
PATCH/invoices/{invoice_id}Update Invoice
POST/invoices/{invoice_id}/creditCredit Invoice
POST/invoices/{invoice_id}/emailEmail Invoice
POST/invoices/{invoice_id}/finalizeFinalize Invoice
POST/invoices/{invoice_id}/paymentRegister Payment
GET/invoices/{invoice_id}/pdfInvoice Pdf
GET/invoices/{invoice_id}/previewPreview Invoice

accounting


List Accounts

GET
/accounting/accounts

Parameters

Header Parameters

authorization

Query Parameters

category
active_only
Type
boolean
Default
false
q

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Create Account

POST
/accounting/accounts

Parameters

Header Parameters

authorization

Request Body

application/json
JSON
{
  
"code": "string",
  
"name": "string",
  
"type": "string",
  
"category": "string",
  
"btw_code_default": "string",
  
"rgs_code": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


Delete Account

DELETE
/accounting/accounts/{account_id}

Parameters

Header Parameters

authorization

Path Parameters

account_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Update Account

PATCH
/accounting/accounts/{account_id}

Parameters

Header Parameters

authorization

Path Parameters

account_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"code": "string",
  
"name": "string",
  
"type": "string",
  
"category": "string",
  
"btw_code_default": "string",
  
"rgs_code": "string",
  
"active": true
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Sync Default Accounts

POST
/accounting/accounts/sync-defaults

Add any default (template) accounts missing from the user's chart.

Idempotent — backfills newly-shipped default accounts (e.g. the IT-ZZP
cost accounts) into an already-seeded chart without touching existing ones.

Parameters

Header Parameters

authorization

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers

Samples


List Btw Codes

GET
/accounting/btw-codes

Parameters

Header Parameters

authorization

Query Parameters

active_only
Type
boolean
Default
false

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Update Btw Code

PATCH
/accounting/btw-codes/{btw_id}

Parameters

Header Parameters

authorization

Path Parameters

btw_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"label": "string",
  
"rate_bp": 0,
  
"aangifte_box": "string",
  
"payable_account_id": "string",
  
"deductible_account_id": "string",
  
"active": true
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Get Profile

GET
/accounting/profile

Parameters

Header Parameters

authorization

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers

Samples


Put Profile

PUT
/accounting/profile

Parameters

Header Parameters

authorization

Request Body

application/json
JSON
{
  
"legal_name": "string",
  
"address": "string",
  
"postal_code": "string",
  
"city": "string",
  
"country": "string",
  
"kvk_number": "string",
  
"btw_id": "string",
  
"iban": "string",
  
"email": "string",
  
"phone": "string",
  
"website": "string",
  
"invoice_number_format": "string",
  
"invoice_footer": "string",
  
"invoice_email_subject": "string",
  
"invoice_email_body": "string",
  
"default_revenue_account_id": "string",
  
"default_expense_account_id": "string",
  
"default_btw_code": "string",
  
"logo_attachment_id": "string",
  
"fiscal_year_start_month": 0
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


List Journal

GET
/accounting/journal

Parameters

Header Parameters

authorization

Query Parameters

dagboek
date_from
date_to
page
Type
integer
Default
1
limit
Type
integer
Default
50

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Create Journal Entry

POST
/accounting/journal

Post a manual journaalpost (a memoriaal booking by default).

Parameters

Header Parameters

authorization

Request Body

application/json
JSON
{
  
"date": "string",
  
"description": "",
  
"dagboek": "memoriaal",
  
"lines": [
  
  
{
  
  
  
"account_id": "string",
  
  
  
"debit_cents": 0,
  
  
  
"credit_cents": 0,
  
  
  
"description": "string",
  
  
  
"btw_code": "string"
  
  
}
  
]
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


Get Journal Entry

GET
/accounting/journal/{entry_id}

Parameters

Header Parameters

authorization

Path Parameters

entry_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Reverse Journal Entry

POST
/accounting/journal/{entry_id}/reverse

Post a reversing entry (correctie / creditnota) for a journaalpost.

Parameters

Header Parameters

authorization

Path Parameters

entry_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"date": "string",
  
"description": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Account Ledger

GET
/accounting/ledger/{account_id}

Every posting line touching an account, with a running saldo.

Parameters

Header Parameters

authorization

Path Parameters

account_id*
Type
string
Required

Query Parameters

date_from
date_to

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Report Btw

GET
/accounting/reports/btw

Quarterly BTW-aangifte figures (rubrieken 1a/1b/1e/4b, 5a, 5b).

Parameters

Header Parameters

authorization

Query Parameters

year*
Type
integer
Required
quarter*
Type
integer
Required
Maximum
4
Minimum
1

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Report Trial Balance

GET
/accounting/reports/trial-balance

Parameters

Header Parameters

authorization

Query Parameters

date_to

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Report Profit Loss

GET
/accounting/reports/profit-loss

Parameters

Header Parameters

authorization

Query Parameters

year*
Type
integer
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Report Balance

GET
/accounting/reports/balance

Parameters

Header Parameters

authorization

Query Parameters

date_to

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Report Open Items

GET
/accounting/reports/open-items

Parameters

Header Parameters

authorization

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers

Samples


List Invoices

GET
/invoices

Parameters

Header Parameters

authorization

Query Parameters

status
customer_id
q
page
Type
integer
Default
1
limit
Type
integer
Default
50

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Create Invoice

POST
/invoices

Parameters

Header Parameters

authorization

Request Body

application/json
JSON
{
  
"customer_ref": {
  
  
"type": "string",
  
  
"id": "string",
  
  
"ref": {
  
  
  
"additionalProperties": "string"
  
  
},
  
  
"label": "string"
  
},
  
"issue_date": "string",
  
"due_date": "string",
  
"reference": "string",
  
"notes": "string",
  
"deal_id": "string",
  
"lines": [
  
  
{
  
  
  
"description": "",
  
  
  
"quantity": 1,
  
  
  
"unit_price_cents": 0,
  
  
  
"btw_code": "string",
  
  
  
"revenue_account_id": "string"
  
  
}
  
]
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


Get Invoice

GET
/invoices/{invoice_id}

Parameters

Header Parameters

authorization

Path Parameters

invoice_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Delete Invoice

DELETE
/invoices/{invoice_id}

Parameters

Header Parameters

authorization

Path Parameters

invoice_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Update Invoice

PATCH
/invoices/{invoice_id}

Parameters

Header Parameters

authorization

Path Parameters

invoice_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"customer_ref": {
  
  
"type": "string",
  
  
"id": "string",
  
  
"ref": {
  
  
  
"additionalProperties": "string"
  
  
},
  
  
"label": "string"
  
},
  
"issue_date": "string",
  
"due_date": "string",
  
"reference": "string",
  
"notes": "string",
  
"lines": [
  
  
{
  
  
  
"description": "",
  
  
  
"quantity": 1,
  
  
  
"unit_price_cents": 0,
  
  
  
"btw_code": "string",
  
  
  
"revenue_account_id": "string"
  
  
}
  
]
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Preview Invoice

GET
/invoices/{invoice_id}/preview

Print-friendly HTML of the invoice (same template as the PDF).

Works on any host (no native deps) — the frontend embeds it and the browser
can print-to-PDF as a fallback. A draft resolves its bill-to on the fly.

Parameters

Header Parameters

authorization

Path Parameters

invoice_id*
Type
string
Required

Responses

Successful Response

text/html
JSON
"string"

Playground

Headers
Variables
Key
Value

Samples


Invoice Pdf

GET
/invoices/{invoice_id}/pdf

The invoice as a PDF (WeasyPrint). 501 if the host lacks the native libs
(production has them) — use the print-friendly preview in that case.

Parameters

Header Parameters

authorization

Path Parameters

invoice_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
[
]

Playground

Headers
Variables
Key
Value

Samples


Email Invoice

POST
/invoices/{invoice_id}/email

E-mail the invoice PDF to the customer via the user's own SMTP.

Only finalized invoices (status sent/paid) can be e-mailed — a
draft has no number and no booked journaalpost. Sending stamps
emailed_at/emailed_to (distinct from status sent, which means
finalized) and logs an activity on the customer's timeline. The
Sent-folder copy is best-effort.

Parameters

Header Parameters

authorization

Path Parameters

invoice_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"to": [
  
  
"string"
  
],
  
"cc": [
  
  
"string"
  
],
  
"subject": "string",
  
"body": "",
  
"account_id": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Finalize Invoice

POST
/invoices/{invoice_id}/finalize

Parameters

Header Parameters

authorization

Path Parameters

invoice_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Register Payment

POST
/invoices/{invoice_id}/payment

Parameters

Header Parameters

authorization

Path Parameters

invoice_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"amount_cents": 0,
  
"date": "string",
  
"account_id": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Credit Invoice

POST
/invoices/{invoice_id}/credit

Parameters

Header Parameters

authorization

Path Parameters

invoice_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"date": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


List Expenses

GET
/expenses

Parameters

Header Parameters

authorization

Query Parameters

status
supplier_id
q
page
Type
integer
Default
1
limit
Type
integer
Default
50

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Create Expense

POST
/expenses

Parameters

Header Parameters

authorization

Request Body

application/json
JSON
{
  
"supplier_ref": {
  
  
"type": "string",
  
  
"id": "string",
  
  
"ref": {
  
  
  
"additionalProperties": "string"
  
  
},
  
  
"label": "string"
  
},
  
"issue_date": "string",
  
"due_date": "string",
  
"supplier_invoice_number": "string",
  
"notes": "string",
  
"lines": [
  
  
{
  
  
  
"description": "",
  
  
  
"amount_cents": 0,
  
  
  
"incl_btw": false,
  
  
  
"btw_code": "string",
  
  
  
"expense_account_id": "string"
  
  
}
  
]
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


Capture Expense

POST
/expenses/capture

Upload a receipt (image or PDF) → prefilled draft expense with the receipt
attached. Digital PDFs read their text layer (no OCR); images/scans use
tesseract (501 when it's not installed).

Parameters

Header Parameters

authorization

Request Body

multipart/form-data

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


Capture Expense From Email

POST
/expenses/capture-from-email

Capture a receipt straight from an email attachment (PDF/image) — the
common path for emailed invoices — into a prefilled draft expense.

Parameters

Header Parameters

authorization

Request Body

application/json
JSON
{
  
"email_id": "string",
  
"part_id": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


Get Expense

GET
/expenses/{expense_id}

Parameters

Header Parameters

authorization

Path Parameters

expense_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Delete Expense

DELETE
/expenses/{expense_id}

Parameters

Header Parameters

authorization

Path Parameters

expense_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Update Expense

PATCH
/expenses/{expense_id}

Parameters

Header Parameters

authorization

Path Parameters

expense_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"supplier_ref": {
  
  
"type": "string",
  
  
"id": "string",
  
  
"ref": {
  
  
  
"additionalProperties": "string"
  
  
},
  
  
"label": "string"
  
},
  
"issue_date": "string",
  
"due_date": "string",
  
"supplier_invoice_number": "string",
  
"notes": "string",
  
"lines": [
  
  
{
  
  
  
"description": "",
  
  
  
"amount_cents": 0,
  
  
  
"incl_btw": false,
  
  
  
"btw_code": "string",
  
  
  
"expense_account_id": "string"
  
  
}
  
]
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Book Expense

POST
/expenses/{expense_id}/book

Parameters

Header Parameters

authorization

Path Parameters

expense_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Register Payment

POST
/expenses/{expense_id}/payment

Parameters

Header Parameters

authorization

Path Parameters

expense_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"amount_cents": 0,
  
"date": "string",
  
"account_id": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Credit Expense

POST
/expenses/{expense_id}/credit

Parameters

Header Parameters

authorization

Path Parameters

expense_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"date": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Kancil — one workspace for contacts, work and money.