Skip to content
Download OpenAPI description
Languages
Servers
https://api.kanbert.com/api/v1
Operations
Operations
Operations
Operations
Operations
Webhooks
Operations
Webhooks
Operations
Operations
Webhooks
Operations
Operations
Operations

Request

Required scopes: incoming-invoice:read

Returns documents of type Invoice and Credit.

Security
http or oauth2
Query
sortstring

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.

Example: sort=sort=-created_at,title
page[size]integer

The number of results that will be returned per page.

Default 30
page[cursor]string

The cursor to start the pagination from.

filterstring

Allowed filter fields (with allowed operators):

FieldTypeOperators
external_idstringin, nin, notin, eq, ne, neq, contains, like, startswith, endswith, isnull, isnotnull, notnull
titlestringin, nin, notin, eq, ne, neq, contains, like, startswith, endswith, isnull, isnotnull, notnull
typeenumeq, ne, neq, in, nin, notin, isnull, isnotnull, notnull
statusenumeq, ne, neq, in, nin, notin, isnull, isnotnull, notnull
payment_statusenumeq, ne, neq, in, nin, notin, isnull, isnotnull, notnull
invoice_numberstringin, nin, notin, eq, ne, neq, contains, like, startswith, endswith, isnull, isnotnull, notnull
sum_netcurrencyeq, ne, neq, lt, lte, le, gt, gte, ge, in, nin, notin, contains, like, startswith, endswith, isnull, isnotnull, notnull
sum_taxcurrencyeq, ne, neq, lt, lte, le, gt, gte, ge, in, nin, notin, contains, like, startswith, endswith, isnull, isnotnull, notnull
sum_grosscurrencyeq, ne, neq, lt, lte, le, gt, gte, ge, in, nin, notin, contains, like, startswith, endswith, isnull, isnotnull, notnull
supplier.idid<SupplierData>eq, ne, neq, in, nin, notin, isnull, isnotnull, notnull
editor.idid<UserData>eq, ne, neq, in, nin, notin, isnull, isnotnull, notnull
date_of_invoicedateeq, ne, neq, lt, lte, le, gt, gte, ge, in, nin, notin, isnull, isnotnull, notnull
due_datedateeq, ne, neq, lt, lte, le, gt, gte, ge, in, nin, notin, isnull, isnotnull, notnull
created_atdatetimeeq, 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.
Example: filter=title contains "Acme" and (created_at >= "2024-01-01" or client.name contains "Corp")
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>'

Responses

The cursor paginated collection of IncomingInvoiceData

Bodyapplication/json
dataArray of objects(IncomingInvoiceData)required

The list of items

data[].​idstringrequired
data[].​external_idstring or nullrequired
data[].​external_originstring or nullrequired
data[].​typestring(IncomingInvoiceType)required
Invoice
Standard incoming invoice
Credit
Credit note
Enum"Invoice""Credit"
data[].​titlestringrequired
data[].​statusstringrequired
data[].​payment_statusstringrequired
data[].​invoice_numberstring or nullrequired
data[].​notesstring or nullrequired
data[].​sum_netnumberrequired
data[].​sum_taxnumberrequired
data[].​sum_grossnumberrequired
data[].​vatsArray of objects(IncomingInvoiceVatData)required

VAT breakdown

data[].​vats[].​vatnumberrequired

VAT rate in percent

data[].​vats[].​valuenumberrequired

Calculated VAT amount

data[].​supplierSupplierData (object) or nullrequired
Any of:
data[].​supplier.​idstringrequired
data[].​supplier.​namestringrequired
data[].​payment_accountIncomingInvoicePaymentAccountData (object) or nullrequired
Any of:

Assigned payment account

data[].​payment_account.​idstringrequired
data[].​payment_account.​titlestringrequired
data[].​date_of_invoicestring or null(date-time)required
data[].​due_datestring or null(date-time)required
data[].​date_of_startstring or null(date-time)required
data[].​date_of_endstring or null(date-time)required
data[].​editorUserData (object) or nullrequired
Any of:
data[].​editor.​idstringrequired
data[].​editor.​first_namestringrequired
data[].​editor.​last_namestringrequired
data[].​editor.​emailstringrequired
data[].​editor.​typestring(UserType)required
Enum"user""guest""tax_advisor""integration"
data[].​editor.​spaceobject(SpaceData)required
data[].​editor.​space.​idstringrequired
data[].​editor.​space.​namestringrequired
data[].​bookingsArray of objects(IncomingInvoiceBookingData)

Chart of account bookings

data[].​paymentsArray of objects(IncomingInvoicePaymentData)

Payments

data[].​created_atstring(date-time)required
data[].​updated_atstring or null(date-time)required
linksArray of stringsrequired
metaobjectrequired
meta.​pathstring or nullrequired

Base path for paginator generated URLs.

meta.​per_pageintegerrequired

Number of items shown per page.

meta.​next_cursorstring or nullrequired
meta.​next_cursor_urlstring or nullrequired
meta.​prev_cursorstring or nullrequired
meta.​prev_cursor_urlstring or nullrequired
Response
application/json
{ "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.

Security
http or oauth2
Bodymultipart/form-data
external_idstring or null<= 255 characters

Can be used to add an identifier from an external system, must be unique within integration

external_originstring<= 255 characters

If not set, integration's slug will be used as default

titlestring or null<= 255 characters
typestring or null

Invoice or Credit

Default "Invoice"
Enum"Invoice""Credit"
invoice_numberstring or null<= 255 characters

External invoice number

notesstring or null<= 10000 characters

Free-text notes / annotations

date_of_invoicestring or null(date-time)
due_datestring or null(date-time)
date_of_startstring or null(date-time)
date_of_endstring or null(date-time)
net_valuenumber or null
vat_valuenumber or null
supplier_idstring or null
editor_idstring or null
payment_account_idstring or null

Obfuscated payment account ID

file_was_preprocessedboolean or null

When true, the internal OCR workflow is skipped. Use this when the calling system has already extracted invoice data from the document.

Default false
filestring(binary)

PDF or image file to upload - Max: 15MB

tagsArray of strings or null
vatsArray of objects or null

VAT breakdown lines

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'

Responses

IncomingInvoiceData

Bodyapplication/json
idstringrequired
external_idstring or nullrequired
external_originstring or nullrequired
typestring(IncomingInvoiceType)required
Invoice
Standard incoming invoice
Credit
Credit note
Enum"Invoice""Credit"
titlestringrequired
statusstringrequired
payment_statusstringrequired
invoice_numberstring or nullrequired
notesstring or nullrequired
sum_netnumberrequired
sum_taxnumberrequired
sum_grossnumberrequired
vatsArray of objects(IncomingInvoiceVatData)required

VAT breakdown

vats[].​vatnumberrequired

VAT rate in percent

vats[].​valuenumberrequired

Calculated VAT amount

supplierSupplierData (object) or nullrequired
Any of:
supplier.​idstringrequired
supplier.​namestringrequired
payment_accountIncomingInvoicePaymentAccountData (object) or nullrequired
Any of:

Assigned payment account

payment_account.​idstringrequired
payment_account.​titlestringrequired
date_of_invoicestring or null(date-time)required
due_datestring or null(date-time)required
date_of_startstring or null(date-time)required
date_of_endstring or null(date-time)required
editorUserData (object) or nullrequired
Any of:
editor.​idstringrequired
editor.​first_namestringrequired
editor.​last_namestringrequired
editor.​emailstringrequired
editor.​typestring(UserType)required
Enum"user""guest""tax_advisor""integration"
editor.​spaceobject(SpaceData)required
editor.​space.​idstringrequired
editor.​space.​namestringrequired
bookingsArray of objects(IncomingInvoiceBookingData)

Chart of account bookings

paymentsArray of objects(IncomingInvoicePaymentData)

Payments

created_atstring(date-time)required
updated_atstring or null(date-time)required
Response
application/json
{ "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

Returns a single document of type Invoice or Credit.

Security
http or oauth2
Path
idstringrequired
curl -i -X GET \
  'https://api.kanbert.com/api/v1/incoming-invoices/{id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

IncomingInvoiceData

Bodyapplication/json
idstringrequired
external_idstring or nullrequired
external_originstring or nullrequired
typestring(IncomingInvoiceType)required
Invoice
Standard incoming invoice
Credit
Credit note
Enum"Invoice""Credit"
titlestringrequired
statusstringrequired
payment_statusstringrequired
invoice_numberstring or nullrequired
notesstring or nullrequired
sum_netnumberrequired
sum_taxnumberrequired
sum_grossnumberrequired
vatsArray of objects(IncomingInvoiceVatData)required

VAT breakdown

vats[].​vatnumberrequired

VAT rate in percent

vats[].​valuenumberrequired

Calculated VAT amount

supplierSupplierData (object) or nullrequired
Any of:
supplier.​idstringrequired
supplier.​namestringrequired
payment_accountIncomingInvoicePaymentAccountData (object) or nullrequired
Any of:

Assigned payment account

payment_account.​idstringrequired
payment_account.​titlestringrequired
date_of_invoicestring or null(date-time)required
due_datestring or null(date-time)required
date_of_startstring or null(date-time)required
date_of_endstring or null(date-time)required
editorUserData (object) or nullrequired
Any of:
editor.​idstringrequired
editor.​first_namestringrequired
editor.​last_namestringrequired
editor.​emailstringrequired
editor.​typestring(UserType)required
Enum"user""guest""tax_advisor""integration"
editor.​spaceobject(SpaceData)required
editor.​space.​idstringrequired
editor.​space.​namestringrequired
bookingsArray of objects(IncomingInvoiceBookingData)

Chart of account bookings

paymentsArray of objects(IncomingInvoicePaymentData)

Payments

created_atstring(date-time)required
updated_atstring or null(date-time)required
Response
application/json
{ "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.

Security
http or oauth2
Path
idstringrequired
Bodyapplication/json
titlestring<= 255 characters
typestring

Invoice or Credit

Enum"Invoice""Credit"
invoice_numberstring or null<= 255 characters

External invoice number

notesstring or null<= 10000 characters

Free-text notes / annotations

statusstring

open, ready_for_accounting or booked

Enum"open""ready_for_accounting"
payment_statusstring

open, paid or partial

Enum"open""paid""partial"
date_of_invoicestring or null(date-time)
due_datestring or null(date-time)
date_of_startstring or null(date-time)
date_of_endstring or null(date-time)
net_valuenumber or null
vat_valuenumber or null
supplier_idstring or null
editor_idstring or null
payment_account_idstring or null

Obfuscated payment account ID

tagsArray of strings or null
vatsArray of objects or null

VAT breakdown lines

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
      }
    ]
  }'

Responses

IncomingInvoiceData

Bodyapplication/json
idstringrequired
external_idstring or nullrequired
external_originstring or nullrequired
typestring(IncomingInvoiceType)required
Invoice
Standard incoming invoice
Credit
Credit note
Enum"Invoice""Credit"
titlestringrequired
statusstringrequired
payment_statusstringrequired
invoice_numberstring or nullrequired
notesstring or nullrequired
sum_netnumberrequired
sum_taxnumberrequired
sum_grossnumberrequired
vatsArray of objects(IncomingInvoiceVatData)required

VAT breakdown

vats[].​vatnumberrequired

VAT rate in percent

vats[].​valuenumberrequired

Calculated VAT amount

supplierSupplierData (object) or nullrequired
Any of:
supplier.​idstringrequired
supplier.​namestringrequired
payment_accountIncomingInvoicePaymentAccountData (object) or nullrequired
Any of:

Assigned payment account

payment_account.​idstringrequired
payment_account.​titlestringrequired
date_of_invoicestring or null(date-time)required
due_datestring or null(date-time)required
date_of_startstring or null(date-time)required
date_of_endstring or null(date-time)required
editorUserData (object) or nullrequired
Any of:
editor.​idstringrequired
editor.​first_namestringrequired
editor.​last_namestringrequired
editor.​emailstringrequired
editor.​typestring(UserType)required
Enum"user""guest""tax_advisor""integration"
editor.​spaceobject(SpaceData)required
editor.​space.​idstringrequired
editor.​space.​namestringrequired
bookingsArray of objects(IncomingInvoiceBookingData)

Chart of account bookings

paymentsArray of objects(IncomingInvoicePaymentData)

Payments

created_atstring(date-time)required
updated_atstring or null(date-time)required
Response
application/json
{ "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.

Security
http or oauth2
Bodymultipart/form-data
hashstring= 32 characters

Pre-computed MD5 hash of the file – mutually exclusive with file

filestring(binary)

PDF or image file to check – mutually exclusive with hash

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

Responses

Bodyapplication/json
hashstringrequired
existsbooleanrequired
duplicatesArray of objectsrequired
duplicates[].​idstringrequired
duplicates[].​titlestringrequired
duplicates[].​invoice_numberstring or nullrequired
duplicates[].​supplierobject or nullrequired
duplicates[].​supplier.​idstringrequired
duplicates[].​supplier.​namestringrequired
duplicates[].​statusstringrequired
Any of:
string
duplicates[].​booked_atstring or nullrequired
Response
application/json
{ "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.

Security
http or oauth2
Path
invoiceIdstringrequired
bookingIdstringrequired
Bodyapplication/json
valuenumber

Booking amount

titlestring or null<= 255 characters
typestring

account, reference, account_staff or account_other

Enum"account""reference""account_staff""account_other"
chart_of_account_idstring or null
position_idstring or null
project_idstring or null
client_idstring or null
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"
  }'

Responses

IncomingInvoiceBookingData

Bodyapplication/json
idstringrequired
typestringrequired
titlestring or nullrequired
valuenumberrequired
chart_of_account_idstring or nullrequired
position_idstring or nullrequired
project_idstring or nullrequired
client_idstring or nullrequired
chart_of_accountChartOfAccountData (object) or nullrequired
Any of:
chart_of_account.​idstringrequired
chart_of_account.​typeCostCenterType (string) or nullrequired
Any of:
string(CostCenterType)
Enum"accounts""discount""supplier_discount"
chart_of_account.​codestring or nullrequired
chart_of_account.​titlestring or nullrequired
chart_of_account.​descriptionstring or nullrequired
chart_of_account.​prioritystring or nullrequired
chart_of_account.​budgetsobject or nullrequired
chart_of_account.​budgets.​property name*numberadditional property
chart_of_account.​start_datestring or null(date-time)required
chart_of_account.​end_datestring or null(date-time)required
chart_of_account.​created_atstring(date-time)required
chart_of_account.​updated_atstring or null(date-time)required
chart_of_account.​positionsArray of PositionData (objects) or object
Any of:
outgoing_invoiceOutgoingInvoiceReferenceData (object) or nullrequired
Any of:
outgoing_invoice.​idstringrequired
outgoing_invoice.​invoice_numberstring or nullrequired
outgoing_invoice.​titlestringrequired
outgoing_invoice.​is_creditbooleanrequired
created_atstring(date-time)required
updated_atstring or null(date-time)required
Response
application/json
{ "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" }

Request

Required scopes: incoming-invoice:write, chart-of-accounts:write

Removes a single chart-of-account booking from the given incoming invoice.

Security
http or oauth2
Path
invoiceIdstringrequired
bookingIdstringrequired
curl -i -X DELETE \
  'https://api.kanbert.com/api/v1/incoming-invoices/{invoiceId}/bookings/{bookingId}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

No content

Response
No content
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Schemas