Appearance
accounting
40 endpoints at a glance
| Method | Path | Summary |
|---|---|---|
GET | /accounting/accounts | List Accounts |
POST | /accounting/accounts | Create Account |
DELETE | /accounting/accounts/{account_id} | Delete Account |
PATCH | /accounting/accounts/{account_id} | Update Account |
POST | /accounting/accounts/sync-defaults | Sync Default Accounts |
GET | /accounting/btw-codes | List Btw Codes |
PATCH | /accounting/btw-codes/{btw_id} | Update Btw Code |
GET | /accounting/journal | List Journal |
POST | /accounting/journal | Create Journal Entry |
GET | /accounting/journal/{entry_id} | Get Journal Entry |
POST | /accounting/journal/{entry_id}/reverse | Reverse Journal Entry |
GET | /accounting/ledger/{account_id} | Account Ledger |
GET | /accounting/profile | Get Profile |
PUT | /accounting/profile | Put Profile |
GET | /accounting/reports/balance | Report Balance |
GET | /accounting/reports/btw | Report Btw |
GET | /accounting/reports/open-items | Report Open Items |
GET | /accounting/reports/profit-loss | Report Profit Loss |
GET | /accounting/reports/trial-balance | Report Trial Balance |
GET | /expenses | List Expenses |
POST | /expenses | Create Expense |
DELETE | /expenses/{expense_id} | Delete Expense |
GET | /expenses/{expense_id} | Get Expense |
PATCH | /expenses/{expense_id} | Update Expense |
POST | /expenses/{expense_id}/book | Book Expense |
POST | /expenses/{expense_id}/credit | Credit Expense |
POST | /expenses/{expense_id}/payment | Register Payment |
POST | /expenses/capture | Capture Expense |
POST | /expenses/capture-from-email | Capture Expense From Email |
GET | /invoices | List Invoices |
POST | /invoices | Create Invoice |
DELETE | /invoices/{invoice_id} | Delete Invoice |
GET | /invoices/{invoice_id} | Get Invoice |
PATCH | /invoices/{invoice_id} | Update Invoice |
POST | /invoices/{invoice_id}/credit | Credit Invoice |
POST | /invoices/{invoice_id}/email | Email Invoice |
POST | /invoices/{invoice_id}/finalize | Finalize Invoice |
POST | /invoices/{invoice_id}/payment | Register Payment |
GET | /invoices/{invoice_id}/pdf | Invoice Pdf |
GET | /invoices/{invoice_id}/preview | Preview Invoice |
accounting
List Accounts
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"
{
}
Delete Account
Update Account
PATCH
/accounting/accounts/{account_id}
Parameters
Header Parameters
authorization
Path Parameters
account_id*
Type
Requiredstring
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"
{
}
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"
{
}
List Btw Codes
Update Btw Code
PATCH
/accounting/btw-codes/{btw_id}
Parameters
Header Parameters
authorization
Path Parameters
btw_id*
Type
Requiredstring
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"
{
}
Get Profile
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"
{
}
List Journal
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"
{
}
Get Journal Entry
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
Requiredstring
Request Body
application/json
JSON "date": "string", "description": "string"
{
}
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Account Ledger
Report Btw
Report Trial Balance
Report Profit Loss
Report Balance
Report Open Items
List Invoices
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"
{
}
Get Invoice
Delete Invoice
Update Invoice
PATCH
/invoices/{invoice_id}
Parameters
Header Parameters
authorization
Path Parameters
invoice_id*
Type
Requiredstring
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"
{
}
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
Requiredstring
Responses
Successful Response
text/html
JSON
"string"
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
Requiredstring
Responses
Successful Response
application/json
JSON
[
]
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
Requiredstring
Request Body
application/json
JSON "to": [ "string" ], "cc": [ "string" ], "subject": "string", "body": "", "account_id": "string"
{
}
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Finalize Invoice
Register Payment
Credit Invoice
List Expenses
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"
{
}
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"
{
}
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"
{
}
Get Expense
Delete Expense
Update Expense
PATCH
/expenses/{expense_id}
Parameters
Header Parameters
authorization
Path Parameters
expense_id*
Type
Requiredstring
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"
{
}