The number of results that will be returned per page.
Kanbert (v1)
Available sorts are title, date_of_invoice, due_date, sum_net, sum_tax, sum_gross, created_at.
You can sort by multiple options by separating them with a comma. To sort in descending order, use - sign in front of the sort, for example: -title.
Allowed filter fields (with allowed operators):
| Field | Type | Operators |
|---|---|---|
external_id | string | in, nin, notin, eq, ne, neq, contains, like, startswith, endswith, isnull, isnotnull, notnull |
title | string | in, nin, notin, eq, ne, neq, contains, like, startswith, endswith, isnull, isnotnull, notnull |
type | enum | eq, ne, neq, in, nin, notin, isnull, isnotnull, notnull |
status | enum | eq, ne, neq, in, nin, notin, isnull, isnotnull, notnull |
payment_status | enum | eq, ne, neq, in, nin, notin, isnull, isnotnull, notnull |
invoice_number | string | in, nin, notin, eq, ne, neq, contains, like, startswith, endswith, isnull, isnotnull, notnull |
sum_net | currency | eq, ne, neq, lt, lte, le, gt, gte, ge, in, nin, notin, contains, like, startswith, endswith, isnull, isnotnull, notnull |
sum_tax | currency | eq, ne, neq, lt, lte, le, gt, gte, ge, in, nin, notin, contains, like, startswith, endswith, isnull, isnotnull, notnull |
sum_gross | currency | eq, ne, neq, lt, lte, le, gt, gte, ge, in, nin, notin, contains, like, startswith, endswith, isnull, isnotnull, notnull |
supplier.id | id<SupplierData> | eq, ne, neq, in, nin, notin, isnull, isnotnull, notnull |
editor.id | id<UserData> | eq, ne, neq, in, nin, notin, isnull, isnotnull, notnull |
date_of_invoice | date | eq, ne, neq, lt, lte, le, gt, gte, ge, in, nin, notin, isnull, isnotnull, notnull |
due_date | date | eq, ne, neq, lt, lte, le, gt, gte, ge, in, nin, notin, isnull, isnotnull, notnull |
created_at | datetime | eq, ne, neq, lt, lte, le, gt, gte, ge, in, nin, notin, isnull, isnotnull, notnull |
Filtering expression. Accepts either JSON (array/tree of conditions) or a readable string DSL.
You can check the full syntax at Docs Filtering section.
Special values:
- me.id — current authenticated user id (usable on fields of type id). Example:
id eq me.id - now — current date-time. Example:
dueOn lt now - sow/eow — start/end of week. Examples:
dueOn gt sow,dueOn lt eow - som/eom — start/end of month. Examples:
dueOn gt som,dueOn lt eom - today — special date for today; with eq it expands to the whole day range. Example:
dueOn eq today - today±Nd — relative day offset. Examples:
today-30d,today+5d.
- https://api.kanbert.com/api/v1/incoming-invoices
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://api.kanbert.com/api/v1/incoming-invoices?sort=sort%3D-created_at%2Ctitle&page%5Bsize%5D=30&page%5Bcursor%5D=string&filter=title+contains+%22Acme%22+and+%28created_at+%3E%3D+%222024-01-01%22+or+client.name+contains+%22Corp%22%29' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'{ "data": [ { … } ], "links": [ "string" ], "meta": { "path": "string", "per_page": 0, "next_cursor": "string", "next_cursor_url": "string", "prev_cursor": "string", "prev_cursor_url": "string" } }
Request
Required scopes: incoming-invoice:write
Creates a new incoming invoice document and optionally attaches an uploaded file. When a file is uploaded and file_was_preprocessed is not set (or false), the system will automatically run OCR to extract invoice data from the document. Fields explicitly provided in the request always take precedence over OCR results. Optionally, cost-center bookings can be created inline.
Can be used to add an identifier from an external system, must be unique within integration
When true, the internal OCR workflow is skipped. Use this when the calling system has already extracted invoice data from the document.
- https://api.kanbert.com/api/v1/incoming-invoices
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api.kanbert.com/api/v1/incoming-invoices \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: multipart/form-data' \
-F external_id=string \
-F external_origin=string \
-F title=string \
-F type=Invoice \
-F invoice_number=string \
-F notes=string \
-F date_of_invoice=2019-08-24T14:15:22Z \
-F due_date=2019-08-24T14:15:22Z \
-F date_of_start=2019-08-24T14:15:22Z \
-F date_of_end=2019-08-24T14:15:22Z \
-F net_value=0 \
-F vat_value=0 \
-F supplier_id=string \
-F editor_id=string \
-F payment_account_id=string \
-F file_was_preprocessed=false \
-F file=string \
-F tags=string \
-F 'vats[0][vat]=20' \
-F 'vats[0][value]=0'{ "id": "string", "external_id": "string", "external_origin": "string", "type": "Invoice", "title": "string", "status": "string", "payment_status": "string", "invoice_number": "string", "notes": "string", "sum_net": 0, "sum_tax": 0, "sum_gross": 0, "vats": [ { … } ], "supplier": { "id": "string", "name": "string" }, "payment_account": { "id": "string", "title": "string" }, "date_of_invoice": "2019-08-24T14:15:22Z", "due_date": "2019-08-24T14:15:22Z", "date_of_start": "2019-08-24T14:15:22Z", "date_of_end": "2019-08-24T14:15:22Z", "editor": { "id": "string", "first_name": "string", "last_name": "string", "email": "string", "type": "user", "space": { … } }, "bookings": [ { … } ], "payments": [ { … } ], "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" }
- https://api.kanbert.com/api/v1/incoming-invoices/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://api.kanbert.com/api/v1/incoming-invoices/{id}' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'{ "id": "string", "external_id": "string", "external_origin": "string", "type": "Invoice", "title": "string", "status": "string", "payment_status": "string", "invoice_number": "string", "notes": "string", "sum_net": 0, "sum_tax": 0, "sum_gross": 0, "vats": [ { … } ], "supplier": { "id": "string", "name": "string" }, "payment_account": { "id": "string", "title": "string" }, "date_of_invoice": "2019-08-24T14:15:22Z", "due_date": "2019-08-24T14:15:22Z", "date_of_start": "2019-08-24T14:15:22Z", "date_of_end": "2019-08-24T14:15:22Z", "editor": { "id": "string", "first_name": "string", "last_name": "string", "email": "string", "type": "user", "space": { … } }, "bookings": [ { … } ], "payments": [ { … } ], "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" }
Request
Required scopes: incoming-invoice:write
Updates the document fields of an incoming invoice. Bookings and payments are not touched by this endpoint – use the dedicated booking endpoints instead.
- https://api.kanbert.com/api/v1/incoming-invoices/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PATCH \
'https://api.kanbert.com/api/v1/incoming-invoices/{id}' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"title": "string",
"type": "Invoice",
"invoice_number": "string",
"notes": "string",
"status": "open",
"payment_status": "open",
"date_of_invoice": "2019-08-24T14:15:22Z",
"due_date": "2019-08-24T14:15:22Z",
"date_of_start": "2019-08-24T14:15:22Z",
"date_of_end": "2019-08-24T14:15:22Z",
"net_value": 0,
"vat_value": 0,
"supplier_id": "string",
"editor_id": "string",
"payment_account_id": "string",
"tags": [
"string"
],
"vats": [
{
"vat": 20,
"value": 0
}
]
}'{ "id": "string", "external_id": "string", "external_origin": "string", "type": "Invoice", "title": "string", "status": "string", "payment_status": "string", "invoice_number": "string", "notes": "string", "sum_net": 0, "sum_tax": 0, "sum_gross": 0, "vats": [ { … } ], "supplier": { "id": "string", "name": "string" }, "payment_account": { "id": "string", "title": "string" }, "date_of_invoice": "2019-08-24T14:15:22Z", "due_date": "2019-08-24T14:15:22Z", "date_of_start": "2019-08-24T14:15:22Z", "date_of_end": "2019-08-24T14:15:22Z", "editor": { "id": "string", "first_name": "string", "last_name": "string", "email": "string", "type": "user", "space": { … } }, "bookings": [ { … } ], "payments": [ { … } ], "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" }
Request
Required scopes: incoming-invoice:read
Verifies whether a file has already been uploaded by comparing its MD5 hash against existing document hashes. You may either upload the file directly (the server computes the hash) or provide a pre-computed MD5 hash string.
- https://api.kanbert.com/api/v1/incoming-invoices/check-duplicate
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api.kanbert.com/api/v1/incoming-invoices/check-duplicate \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: multipart/form-data' \
-F hash=stringstringstringstringstringst \
-F file=string{ "hash": "string", "exists": true, "duplicates": [ { … } ] }
Request
Required scopes: incoming-invoice:write, chart-of-accounts:write
Updates a single chart-of-account booking on the given incoming invoice.
account, reference, account_staff or account_other
- https://api.kanbert.com/api/v1/incoming-invoices/{invoiceId}/bookings/{bookingId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PATCH \
'https://api.kanbert.com/api/v1/incoming-invoices/{invoiceId}/bookings/{bookingId}' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"value": 0,
"title": "string",
"type": "account",
"chart_of_account_id": "string",
"position_id": "string",
"project_id": "string",
"client_id": "string"
}'{ "id": "string", "type": "string", "title": "string", "value": 0, "chart_of_account_id": "string", "position_id": "string", "project_id": "string", "client_id": "string", "chart_of_account": { "id": "string", "type": "accounts", "code": "string", "title": "string", "description": "string", "priority": "string", "budgets": { … }, "start_date": "2019-08-24T14:15:22Z", "end_date": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "positions": [ … ] }, "outgoing_invoice": { "id": "string", "invoice_number": "string", "title": "string", "is_credit": true }, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" }
- https://api.kanbert.com/api/v1/incoming-invoices/{invoiceId}/bookings/{bookingId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
'https://api.kanbert.com/api/v1/incoming-invoices/{invoiceId}/bookings/{bookingId}' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'