Jortt API

Version 1.0.0

Introduction

Welcome to the Jortt API. This API is meant for applications that want to connect to the Jortt application.

This API is designed around the REST principles.

OAuth 2.0 is used for authentication and authorization.

The Jortt API supports Open API version 2.0 (formerly known as Swagger) for describing the API interface. Check openapi.tools for handy tooling (such a generating client libraries).

You can also download the API specification.

Test with Postman app

The Run in Postman button imports and opens the Jortt collection of API endpoints directly in your Postman app. Ready to create your first customer and invoice via the API.

Run in Postman

To get an Access token, edit the Jortt API collection, go to the Authorization tab and use the Get New Access Token button.

Connecting

Connecting your application with the Jortt API requires you to register your application as a client in our authorization server. We support the following OAuth 2.0 grant types:

After successful registration you will receive the necessary credentials (client ID and secret) to initiate the OAuth 2.0 flow to gain access.

When retrieving the initial access_token you need to pass the client_id and client_secret in the Authorization header.

Authorization code grant type

The authorization_code grant type should be used by third party applications (for example a webshop) that can be used by any Jortt administration. If you are developing an application just for your own administration, you must use the client credentials grant type.

The following links describe the authorization_code grant type in detail:

For the authorization_code grant type, you don't necessarily need access to a Jortt account (although it may be handy for testing). You can always sign up for a free Jortt account.

In order to use the authorization_code grant type, please send an e-mail to support@jortt.nl to register your application and provide the following information:

  • Application name
  • Redirect URL
  • Required scopes

Getting a Jortt adminstration's (read: user's) consent

Your application first needs to decide which permissions it is requesting, then send the user to a browser to get their permission. To begin the authorization flow, the application constructs a URL like the following and open a browser to that URL.

curl https://app.jortt.nl/oauth-provider/oauth/authorize?client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&response_type=code&scope=YOUR_SCOPES&state=RANDOM_STRING

When the user visits this URL, it will present them with a prompt asking if they would like to authorize your application's request.

If the user approves the request, Jortt will redirect the browser back to the redirect_uri specified by your application, adding a code to the query string along with the provided state parameter.

Obtaining an access token

For example:

curl -X POST -u "YOUR_CLIENT_ID:YOUR_CLIENT_SECRET" -d "grant_type=authorization_code&code=YOUR_AUTHORIZATION_CODE&redirect_uri=YOUR_REDIRECT_URI" https://app.jortt.nl/oauth-provider/oauth/token

Would respond with:

{
  "access_token": "YOUR_ACCESS_TOKEN",
  "token_type": "Bearer",
  "expires_in": 7200,
  "refresh_token": "YOUR_REFRESH_TOKEN",
  "scope": "YOUR_SCOPES",
  "created_at": 1587717832
}

Refreshing a token

For example:

curl -X POST -u "YOUR_CLIENT_ID:YOUR_CLIENT_SECRET" -d "grant_type=refresh_token&refresh_token=YOUR_REFRESH_TOKEN" https://app.jortt.nl/oauth-provider/oauth/token

Would respond with:

{
  "access_token": "YOUR_NEW_ACCESS_TOKEN",
  "token_type": "Bearer",
  "expires_in": 7200,
  "refresh_token": "YOUR_NEW_REFRESH_TOKEN",
  "scope": "YOUR_SCOPES",
  "created_at": 1587717832
}

Client credentials grant type

The client_credentials grant type should be used by applications that you've built solely for your own administration (the application is bound to the administration that created it). If you are developing an application that should be accessible for all Jortt administrations (for example a webshop), you must use the authorization code grant type.

The following links describe the client_credentials grant type in detail:

You will need to have access to a Jortt account, and register your application.

Obtaining an access token

For example:

curl -X POST -u "YOUR_CLIENT_ID:YOUR_CLIENT_SECRET" -d "grant_type=client_credentials&scope=YOUR_SCOPES" https://app.jortt.nl/oauth-provider/oauth/token

Would respond with:

{
  "access_token": "YOUR_ACCESS_TOKEN",
  "token_type": "Bearer",
  "expires_in": 7200,
  "scope": "YOUR_SCOPES",
  "created_at": 1588331418
}

Making requests

Whenever you make an HTTP request to the Jortt API, the response will contain a JSON object with (at least) either a data key (a success response) or an error key (an error response).

Please check the documentation of endpoints for the details of responses.

The access_token must be provided as an HTTP header: Authorization: Bearer YOUR_ACCESS_TOKEN.

Success response

An HTTP response with status code 200 OK or 201 Created indicates the request was successful.

Request example

curl -X GET https://api.jortt.nl/customers/c4075eb6-2028-457e-817f-a6a8d4703fbb -H "Authorization: Bearer czZCaGRSa3F0MzpnWDFmQmF0M2JW"

Response example

HTTP/1.1 200 OK
Content-Type: application/json

{
  "data": [
    {
      "id": "c4075eb6-2028-457e-817f-a6a8d4703fbb",
      ... more properties
    }
  ]
}

Error response

An HTTP response with status code 4xx or 5xx indicates there was an error while processing the request. The response body will contain extra information about the error.

Request example

curl -X POST https://api.jortt.nl/customers -H "Authorization: Bearer czZCaGRSa3F0MzpnWDFmQmF0M2JW"

Response example

HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json

{
  "error": {
    "code": 422,
    "key": "invalid_params",
    "message": "The parameters are invalid (either missing, not of the correct type or incorrect format).",
    "details": [
      {
        "param": "customer_id",
        "key": "is_missing",
        "message": "is missing"
      }
    ]
  }
}

Errors

The following table describes the errors found in responses.

Code Key Description
401 access_token.invalid The access_token is either missing or invalid.
401 access_token.expired The access_token has expired. Use refresh_token to get a new access_token.
401 access_token.revoked The access_token has been revoked.
401 scopes.insufficient Insufficient permissions (read: missing scopes) to access resource. Your application probably needs more scopes.
401 organization.non_existing The corresponding organization for your access token does not exist.
401 organization.requires_mkb_plan The corresponding organization for your access token does not have a jortt MKB or jortt Plus plan.
401 user.non_existing The corresponding user for your access token does not exist.
401 user.invalid_credentials The corresponding user for your credentials does not exist.
401 two_factor_code.invalid Invalid code supplied.
401 two_factor_code.missing_secret Two-step verification code
404 endpoint.not_found Invalid or non existing endpoint.
404 resource.not_found Requested resource cannot be found.
405 resource.method_not_allowed The method is not allowed on this resource.
409 resource.conflict A conflict occurred while processing the request. This can happen when two processes are trying to modify the same resource simultaneously.
422 params.invalid The parameters are invalid (either missing, not of the correct type or incorrect format).
422 params.invalid_format The parameters could not be parsed (as specified by the Content-Type header). Please either specify the correct Content-Type or fix the parameters formatting.
422 params.invalid_encoding The parameters contain invalid UTF-8 characters and could not be parsed.
422 operation.invalid The operation could not be executed on the resource.
422 operation.year_closed The operation could not be executed because it affects a closed financial year: %{closed_year}. To execute the operation, please open the financial year in your jortt administration first.
429 request.throttled The request has been throttled, please try again later.
500 server.internal_error Internal server error. Sorry, we screwed up :-( Please try again later.
503 server.maintenance API is temporarily offline for maintenance. Please try again later.
503 integration.outage An integration has an outage. Please try again later.

Rate limiting

In order to ensure fair performance of our API we have rate limits in place. This limit is set to 10 requests per second.

Pagination

Fetching all objects of a resource can be convenient. At the same time, returning too many objects at once can be unpractical from a performance perspective.

Doing so might be too much work for the Jortt API to generate, or for your system to process.

For this reason in the case of a request that should return a list of objects, the Jortt API only returns a subset of the requested set of objects. In other words, the Jortt API chops the result of a certain API method call into pages you are able to programmatically scroll through.

The maximum number of objects returned per page is 100.

In those cases, a successful response body will contain a data key and a _links key with extra information to be able to paginate. links

For example:

curl -X GET https://api.jortt.nl/customers?query=bob -H "Authorization: Bearer czZCaGRSa3F0MzpnWDFmQmF0M2JW"

Would respond with:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "data": [
    {
      "id": "c4075eb6-2028-457e-817f-a6a8d4703fbb",
      ... more properties
    }
    {
      "id": "d453034d-6a33-44b3-8d5f-f962beeeb956",
      ... more properties
    }
    ... more objects
  ]
  "_links": {
      "self": {
        "href": "https://api.jortt.nl/customers?query=bob?page=1",
        "type": "application/json"
      },
      "previous": null,
      "next": {
        "href": "https://api.jortt.nl/customers?query=bob?page=2",
        "type": "application/json"
      },
      "documentation": {
        "href": "https://developer.jortt.nl/#pagination",
        "type": "application/json"
      },
  }
}
Base URL
https://api.jortt.nl
Format
application/json
Rate Limit
10 requests / second
Pagination
Max 100 per page

Response format

Successful responses wrap the result in a data key. Errors use an error key. Paginated responses include a _links key.

{
  "data": { ... },
  "_links": {
    "self":  { "href": "https://api.jortt.nl/v1/customers?page=2" },
    "next":  { "href": "https://api.jortt.nl/v1/customers?page=3" },
    "prev":  { "href": "https://api.jortt.nl/v1/customers?page=1" }
  }
}

Authentication

All API requests require a Bearer token in the Authorization header.

Authorization: Bearer YOUR_ACCESS_TOKEN

OAuth 2.0 grant types

Authorization Code

For third-party applications acting on behalf of a user.

Authorization URLhttps://app.jortt.nl/oauth-provider/oauth/authorize
Token URLhttps://app.jortt.nl/oauth-provider/oauth/token
Client Credentials

For your own applications connecting directly to your Jortt account.

Token URLhttps://app.jortt.nl/oauth-provider/oauth/token

Available scopes

ScopeDescription
customers:readRead customer data
customers:writeCreate and update customers
invoices:readRead invoice data
invoices:writeCreate and update invoices
estimates:readRead estimate data
estimates:writeCreate and update estimates
expenses:readRead expense data
expenses:writeCreate and update expenses
organizations:readRead organization details
organizations:writeUpdate organization details
reports:readRead financial reports
payroll:readRead payroll data
payroll:writeCreate payroll postings
inbox:writeUpload receipts to inbox
financing:readRead financing data

v3 latest

Customers

Customers
GET /v3/customers/{customer_id}/vat-percentages v2
Returns vats that are valid on today's date for a Customer by ID
NameTypeInDescription
customer_idrequired string path Resource identifier (UUID)
StatusDescription
200 Customer vat percentages
curl -X GET "https://api.jortt.nl/v3/customers/{customer_id}/vat-percentages" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
GET /v3/customers v1 Returns a list of Customers
A Customer can be either a private person or a company.

If the query is null (e.g GET /customers), it will retrieve all Customers in alphabetical order of customer_name.

Otherwise if a query is passed (e.g GET /customers?query=foo), it will search and list only the Customers matching the query, ordered alphabetically on `customer_name``.

NameTypeInDescription
query string query Search query (at least 3 characters)
page integer query Page of the response (minimum 1)
StatusDescription
200 Customers
curl -X GET "https://api.jortt.nl/v3/customers" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

# Optional query params: ?query=<value>&page=<value>
POST /v3/customers v1 Creates a Customer
A Customer can either be a private person (set is_private to true) or a company (set is_private to false).

The required attributes are different for a private person than a company. See parameters documentation below for details.

NameTypeInDescription
CreateCustomerrequired object body
is_privaterequired boolean body Whether this Customer is a private person (true) or a company (false)
customer_namerequired string body Either a company name (when is_private is false) or a private person's full name (when is_private is true)
address_street string body Street and house number of the address of a Customer (required when is_private is false)
address_postal_code string body Postal code of the address of a Customer (required when is_private is false)
address_city string body City of the address of a Customer (required when is_private is false)
address_country_code string body Country code of a Customer in ISO 3166-1 alpha-2 format (required when is_private is false, defaults to NL)
address_extra_information string body Extra line of Customer address information
shift_vat boolean body Whether or not to shift the VAT for a Customer (applicable when is_private is false)
vat_number string body The VAT number (BTW-nummer) of a Customer (applicable when is_private is false and shift_vat is true)
coc_number string body The Chamber of Commerce number (KvK-nummer) of a Customer (applicable when is_private is false)
salutation string body The way a Customer is addressed (applicable when is_private is true)
initials string body Initials of a Customer (applicable when is_private is true)
first_name string body First name of a Customer (applicable when is_private is true)
last_name string body Last name of a Customer (applicable when is_private is true)
date_of_birth string body Date of birth of a Customer (applicable when is_private is true)
citizen_service_number string body Citizen service number (BSN-nummer) of a Customer (applicable when is_private is true)
attn string body To the attention of
phonenumber string body A Customer's phone number
website string body A Customer's website
email string body E-mail address to send the Invoice to
cc_emails array[string] body An array of e-mail addresses to CC when the Invoice is sent
email_salutation string body Salutation used in the e-mail (template) when sending an Invoice
additional_information string body Extra Customer information
payment_term integer body Payment term for Invoices (in days, defaults to 30)
invoice_language string body The language in which the Invoice will be translated
payment_method_invoice string body How the Invoice can be paid. Determines the payment instructions printed on the Invoice. Choose from:

  • already_paid when the Invoice has already been paid. No payment instructions will be printed on the Invoice.
  • pay_later will print payment instructions on the Invoice.
  • direct_debit requires a connection with Mollie. Only for Jortt Plus users.

The default is pay_later.

reference string body Custom reference (for example the ID of a customer in an external CRM)
default_label_id string body Resource identifier (UUID) of the label to be set as default for a customer, which will automatically be applied to their invoices & estimates.
default_ledger_account_id string body Resource identifier (UUID) of the ledger account to be set as default for a customer, which will automatically be applied to their invoices.
default_discount_description string body Description a default discount to apply to any invoices or estimates created for this customer
default_discount_percentage integer body The default discount to apply expressed as a percentage
peppol_scheme_code integer body Prefix describing the scheme of the peppol identifier. Used when sending invoices via Peppol
peppol_identifier integer body Code used to identify a Peppol legal entity. Used when sending invoices via Peppol
StatusDescription
201 Created
curl -X POST "https://api.jortt.nl/v3/customers" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "is_private": true,
    "customer_name": "Jortt",
    "address_street": "Rozengracht 75a",
    "address_postal_code": "1012 AB",
    "address_city": "Amsterdam",
    "address_country_code": "NL",
    "address_extra_information": "2nd floor",
    "shift_vat": false,
    "vat_number": "NL000099998B57",
    "coc_number": "41202536",
    "salutation": "madam",
    "initials": "FL",
    "first_name": "Jane",
    "last_name": "Doe",
    "date_of_birth": "1985-04-29",
    "citizen_service_number": "123456789",
    "attn": "Finance Department",
    "phonenumber": "+31658798654",
    "website": "www.example.com",
    "email": "example@email.com",
    "cc_emails": [
        "example@email.com",
        "example2@email.com"
    ],
    "email_salutation": "Geachte mevrouw,",
    "additional_information": "this is extra info",
    "payment_term": 30,
    "invoice_language": "nl",
    "payment_method_invoice": "pay_later",
    "reference": "BX123-123",
    "default_label_id": "57aab2d0-16b8-013d-3d2c-42742b204134",
    "default_ledger_account_id": "61a5b600-16bc-013d-3d2d-42742b204134",
    "default_discount_description": "this is a description example",
    "default_discount_percentage": 21,
    "peppol_scheme_code": "KVK",
    "peppol_identifier": "12345677"
}'
GET /v3/customers/{customer_id} v1
Returns a Customer by ID
NameTypeInDescription
customer_idrequired string path Resource identifier (UUID)
StatusDescription
200 Customer
curl -X GET "https://api.jortt.nl/v3/customers/{customer_id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
PUT /v3/customers/{customer_id} v1 Updates a Customer
A Customer can either be a private person (set is_private to true) or a company (set is_private to false).

The required attributes are different for a private person than a company. See parameters documentation below for details.

NameTypeInDescription
customer_idrequired integer path
UpdateCustomerrequired object body
is_privaterequired boolean body Whether this Customer is a private person (true) or a company (false)
customer_namerequired string body Either a company name (when is_private is false) or a private person's full name (when is_private is true)
address_street string body Street and house number of the address of a Customer (required when is_private is false)
address_postal_code string body Postal code of the address of a Customer (required when is_private is false)
address_city string body City of the address of a Customer (required when is_private is false)
address_country_code string body Country code of a Customer in ISO 3166-1 alpha-2 format (required when is_private is false, defaults to NL)
address_extra_information string body Extra line of Customer address information
shift_vat boolean body Whether or not to shift the VAT for a Customer (applicable when is_private is false)
vat_number string body The VAT number (BTW-nummer) of a Customer (applicable when is_private is false and shift_vat is true)
coc_number string body The Chamber of Commerce number (KvK-nummer) of a Customer (applicable when is_private is false)
salutation string body The way a Customer is addressed (applicable when is_private is true)
initials string body Initials of a Customer (applicable when is_private is true)
first_name string body First name of a Customer (applicable when is_private is true)
last_name string body Last name of a Customer (applicable when is_private is true)
date_of_birth string body Date of birth of a Customer (applicable when is_private is true)
citizen_service_number string body Citizen service number (BSN-nummer) of a Customer (applicable when is_private is true)
attn string body To the attention of
phonenumber string body A Customer's phone number
website string body A Customer's website
email string body E-mail address to send the Invoice to
cc_emails array[string] body An array of e-mail addresses to CC when the Invoice is sent
email_salutation string body Salutation used in the e-mail (template) when sending an Invoice
additional_information string body Extra Customer information
payment_term integer body Payment term for Invoices (in days, defaults to 30)
invoice_language string body The language in which the Invoice will be translated
payment_method_invoice string body How the Invoice can be paid. Determines the payment instructions printed on the Invoice. Choose from:

  • already_paid when the Invoice has already been paid. No payment instructions will be printed on the Invoice.
  • pay_later will print payment instructions on the Invoice.
  • direct_debit requires a connection with Mollie. Only for Jortt Plus users.

The default is pay_later.

reference string body Custom reference (for example the ID of a customer in an external CRM)
default_label_id string body Resource identifier (UUID) of the label to be set as default for a customer, which will automatically be applied to their invoices & estimates.
default_ledger_account_id string body Resource identifier (UUID) of the ledger account to be set as default for a customer, which will automatically be applied to their invoices.
default_discount_description string body Description a default discount to apply to any invoices or estimates created for this customer
default_discount_percentage integer body The default discount to apply expressed as a percentage
peppol_scheme_code integer body Prefix describing the scheme of the peppol identifier. Used when sending invoices via Peppol
peppol_identifier integer body Code used to identify a Peppol legal entity. Used when sending invoices via Peppol
StatusDescription
204 No Content
curl -X PUT "https://api.jortt.nl/v3/customers/{customer_id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "is_private": true,
    "customer_name": "Jortt",
    "address_street": "Rozengracht 75a",
    "address_postal_code": "1012 AB",
    "address_city": "Amsterdam",
    "address_country_code": "NL",
    "address_extra_information": "2nd floor",
    "shift_vat": false,
    "vat_number": "NL000099998B57",
    "coc_number": "41202536",
    "salutation": "madam",
    "initials": "FL",
    "first_name": "Jane",
    "last_name": "Doe",
    "date_of_birth": "1985-04-29",
    "citizen_service_number": "123456789",
    "attn": "Finance Department",
    "phonenumber": "+31658798654",
    "website": "www.example.com",
    "email": "example@email.com",
    "cc_emails": [
        "example@email.com",
        "example2@email.com"
    ],
    "email_salutation": "Geachte mevrouw,",
    "additional_information": "this is extra info",
    "payment_term": 30,
    "invoice_language": "nl",
    "payment_method_invoice": "pay_later",
    "reference": "BX123-123",
    "default_label_id": "57aab2d0-16b8-013d-3d2c-42742b204134",
    "default_ledger_account_id": "61a5b600-16bc-013d-3d2d-42742b204134",
    "default_discount_description": "this is a description example",
    "default_discount_percentage": 21,
    "peppol_scheme_code": "KVK",
    "peppol_identifier": "12345677"
}'
DELETE /v3/customers/{customer_id} v1 Delete a Customer
No required attributes to be passed.

This call will delete a customer. Then the Customer deleted attribute will be true.

NameTypeInDescription
customer_idrequired string path Resource identifier (UUID)
StatusDescription
204 No Content
curl -X DELETE "https://api.jortt.nl/v3/customers/{customer_id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
GET /v3/customers/{customer_id}/extra_details v1
Returns a Customer's details by ID
NameTypeInDescription
customer_idrequired string path Resource identifier (UUID)
StatusDescription
200 CustomerDetails
curl -X GET "https://api.jortt.nl/v3/customers/{customer_id}/extra_details" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
POST /v3/customers/{customer_id}/direct_debit_mandate v1 Send direct debit authorization to a Customer
No required attributes to be passed.

This call will send an e-mail to the customer with a request for an authorization payment, typically 1 or 2 cents, in order to be able to direct debit the customer. Only when the customer pays the authorization payment the direct debit for this customer is enabled. If so the Customer mollie_direct_debit_status will be mollie_direct_debit_accepted and it will have a mollie_mandate_id.

NameTypeInDescription
customer_idrequired integer path
StatusDescription
204 No Content
curl -X POST "https://api.jortt.nl/v3/customers/{customer_id}/direct_debit_mandate" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json"
PUT /v3/customers/{customer_id}/set_archived v1 Sets the archived status for a customer
This call will set the archived status on a customer. Archived customers act as though deleted, but can be unarchived at a later point
NameTypeInDescription
customer_idrequired string path Resource identifier (UUID)
SetCustomerArchivedrequired object body
archivedrequired boolean body Whether or not the item has been archived.
StatusDescription
204 No Content
curl -X PUT "https://api.jortt.nl/v3/customers/{customer_id}/set_archived" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "archived": false
}'

Invoices

Invoices
POST /v3/invoices Creates (and optionally sends) an Invoice V3 with invoice-level VAT

When the optional send_method is not provided, the Invoice will be created as a Draft.

When the optional send_method parameter is provided, the Invoice will also be scheduled for sending.

By polling the GET /invoices/{id} endpoint you can check if the Invoice has been sent (the returned Invoice's invoice_status attribute is then set to sent otherwise it will be draft).

V3 Differences:

  • This endpoint creates invoices with vat_calculation_method set to invoice_level_vat.
  • Supports all send methods including peppol, email, and self.
  • Note: peppol send method is only available in v3. Use v3 if you need to send invoices via peppol.
NameTypeInDescription
CreateInvoiceV3required object body
customer_id string body Resource identifier (UUID)
invoice_date string body Date of the Invoice (determines the VAT period)
tradename_id string body The ID of the Tradename used for this Invoice. It should a resource identifier (UUID). If not set the default Organization will be used.
label_ids array[string] body An array of label ids for example['e508ba44-f8a9-4aa9-b4e8-8d071a3454c4', 'c2ea9b6d-dc5f-4af0-b1ec-46daa4d7a37b']
delivery_period string body Determines the profit and loss period start date of this Invoice. If delivery_period_end is not present the period is one month. Required if delivery_period_end is present.
delivery_period_end string body Determines the profit and loss period end date of this Invoice
payment_term integer body

Optional payment term for the Invoice. Defaults to the following first present value:

  • The payment_term configured on the Customer (referenced by the customer_id param).
  • The payment_term configured on the Organization (referenced by the access_token).
  • The global default payment term (30 days).
net_amounts boolean body Whether or not VAT is included in the amount_per_unit in the line item (this is typically used when invoicing a private person rather than a company)
send_method string body How the Invoice should be sent
introduction string body Comments printed on the Invoice (above the line items)
remarks string body Remarks printed on the Invoice (under the line items)
payment_method string body How the Invoice can be paid. Determines the payment instructions printed on the Invoice. Choose from:

  • already_paid when the Invoice has already been paid. No payment instructions will be printed on the Invoice.
  • pay_later will print payment instructions on the Invoice.
  • direct_debit requires a connection with Mollie. Only for Jortt Plus users.

The default is pay_later.

line_items array[object] body The line items of an Invoice
discounts array[object] body Discounts applied to the invoice
reference string body Custom reference (for example an order ID)
sold_via_platform boolean body Whether or not an Invoice is marked as having goods that are sold via a platform such as Amazon
StatusDescription
201 Created
curl -X POST "https://api.jortt.nl/v3/invoices" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "f8fd3e4e-da1c-43a7-892f-1410ac13e38a",
    "invoice_date": "2020-02-23",
    "tradename_id": "f8fd3e4e-da1c-43a7-892f-1410ac13e38a",
    "label_ids": [],
    "delivery_period": "2020-02-01",
    "delivery_period_end": "2020-02-01",
    "payment_term": 14,
    "net_amounts": false,
    "send_method": "email",
    "introduction": "example",
    "remarks": "example",
    "payment_method": "pay_later",
    "line_items": [],
    "discounts": [],
    "reference": "123",
    "sold_via_platform": false
}'
GET /v3/invoices/peppol-scheme-catalog v2
Returns valid peppol scheme options by country code
StatusDescription
200 Peppol scheme catalog
curl -X GET "https://api.jortt.nl/v3/invoices/peppol-scheme-catalog" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
GET /v3/invoices v2 Returns a list of Invoices
If the query is null (e.g GET /invoices), it will retrieve all Invoices ordered by created_at. Otherwise if a query is passed (e.g GET /invoices?query=foo), it will search and list only the Invoices matching the query, ordered by created_at. If the invoice_status is null (e.g GET /invoices), it will retrieve all Invoices ordered by created_at. Otherwise if a invoice_status is passed (e.g GET /invoices?invoice_status=draft), it will search and list only the Invoices matching the invoice_status with status draft, ordered by created_at.
NameTypeInDescription
query string query Search query (at least 3 characters)
invoice_status string query invoice_status options [sent draft unpaid late paid]
page integer query Page of the response (minimum 1)
StatusDescription
200 Invoices
curl -X GET "https://api.jortt.nl/v3/invoices" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

# Optional query params: ?query=<value>&invoice_status=<value>&page=<value>
GET /v3/invoices/{id} v2
Returns an Invoice by ID
NameTypeInDescription
idrequired string path Resource identifier (UUID)
StatusDescription
200 Invoice
curl -X GET "https://api.jortt.nl/v3/invoices/{id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
PUT /v3/invoices/{id} v2 Edits an Invoice V2
Edits an invoice, provided said invoice has not been finalized. NOTE: You may receive unexpected errors if any data on the invoice is invalid. When correcting invalid data only the relevant fields should be filled.
NameTypeInDescription
idrequired string path Resource identifier (UUID)
EditInvoiceV2required object body
customer_id string body Resource identifier (UUID)
invoice_date string body Date of the Invoice (determines the VAT period)
tradename_id string body The ID of the Tradename used for this Invoice. It should a resource identifier (UUID). If not set the default Organization will be used.
label_ids array[string] body An array of label ids for example['e508ba44-f8a9-4aa9-b4e8-8d071a3454c4', 'c2ea9b6d-dc5f-4af0-b1ec-46daa4d7a37b']
delivery_period string body Determines the profit and loss period start date of this Invoice. If delivery_period_end is not present the period is one month. Required if delivery_period_end is present.
delivery_period_end string body Determines the profit and loss period end date of this Invoice
payment_term integer body

Optional payment term for the Invoice. Defaults to the following first present value:

  • The payment_term configured on the Customer (referenced by the customer_id param).
  • The payment_term configured on the Organization (referenced by the access_token).
  • The global default payment term (30 days).
net_amounts boolean body Whether or not VAT is included in the amount_per_unit in the line item (this is typically used when invoicing a private person rather than a company)
send_method string body How the Invoice should be sent
introduction string body Comments printed on the Invoice (above the line items)
remarks string body Remarks printed on the Invoice (under the line items)
payment_method string body How the Invoice can be paid. Determines the payment instructions printed on the Invoice. Choose from:

  • already_paid when the Invoice has already been paid. No payment instructions will be printed on the Invoice.
  • pay_later will print payment instructions on the Invoice.
  • direct_debit requires a connection with Mollie. Only for Jortt Plus users.

The default is pay_later.

line_items array[object] body The line items of an Invoice
discounts array[object] body Discounts applied to the invoice
reference string body Custom reference (for example an order ID)
StatusDescription
200 No Content
curl -X PUT "https://api.jortt.nl/v3/invoices/{id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "f8fd3e4e-da1c-43a7-892f-1410ac13e38a",
    "invoice_date": "2020-02-23",
    "tradename_id": "f8fd3e4e-da1c-43a7-892f-1410ac13e38a",
    "label_ids": [],
    "delivery_period": "2020-02-01",
    "delivery_period_end": "2020-02-01",
    "payment_term": 14,
    "net_amounts": false,
    "send_method": "email",
    "introduction": "example",
    "remarks": "example",
    "payment_method": "pay_later",
    "line_items": [],
    "discounts": [],
    "reference": "123"
}'
GET /v3/invoices/{id}/line_item_suggestions v2 Returns a list of suggested line items
Returns a list of suggested line items for a given invoice based on the given query. The invoice must have an associated customer or 404 is returned.
NameTypeInDescription
idrequired string path Resource identifier (UUID)
queryrequired string query Query string to search for suggestions with
StatusDescription
200 Invoice Line Item Suggestions
curl -X GET "https://api.jortt.nl/v3/invoices/{id}/line_item_suggestions" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

# Optional query params: ?query=<value>
DELETE /v3/invoices/{id} v1
Deletes an Invoice by ID
NameTypeInDescription
idrequired string path Resource identifier (UUID)
StatusDescription
204 No Content
curl -X DELETE "https://api.jortt.nl/v3/invoices/{id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
PUT /v3/invoices/{id}/set_labels v1 Sets the labels for a given invoice
Sets the labels for a given invoice
NameTypeInDescription
idrequired integer path
SetLabelsrequired array[object] body
StatusDescription
204 No Content
curl -X PUT "https://api.jortt.nl/v3/invoices/{id}/set_labels" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json"
POST /v3/invoices/{id}/credit v1 Creates (and optionally sends) a credit Invoice
When the optional send_method is not provided, the Invoice will be created as a Draft.

When the optional send_method parameter is provided, the Invoice will also be scheduled for sending.

By polling the GET /invoices/{id} endpoint you can check if the Invoice been sent (the returned Invoice's invoice_status attribute is then set to sent otherwise it will be draft).

NameTypeInDescription
idrequired string path Resource identifier (UUID) of the invoice you want to credit
CreateCreditInvoicerequired object body
send_method string body How the Invoice should be sent
StatusDescription
201 Created
curl -X POST "https://api.jortt.nl/v3/invoices/{id}/credit" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "send_method": "email"
}'
GET /v3/invoices/{id}/download v1 Returns a URL from which the invoice PDF can be downloaded.
Only returns a URL for sent invoices. Will fail otherwise.

Note: The returned URL expires after 10 minutes.

NameTypeInDescription
idrequired string path Resource identifier (UUID)
StatusDescription
200 URL to download invoice PDF created
curl -X GET "https://api.jortt.nl/v3/invoices/{id}/download" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
GET /v3/invoices/{id}/next_possible_invoice_number v1
Returns the next possible invoice number
NameTypeInDescription
idrequired string path Resource identifier (UUID)
StatusDescription
200 Next possible invoice number
curl -X GET "https://api.jortt.nl/v3/invoices/{id}/next_possible_invoice_number" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
POST /v3/invoices/{id}/send v1 Sends an Invoice
              Sends an invoice by the method indicated in the params.

If email is selected additional parameters must be provided as indicated.

NameTypeInDescription
idrequired string path Resource identifier (UUID)
SendInvoicerequired object body
send_methodrequired string body How the Invoice should be sent
email_address_customer string body The email address to send the invoice too. Required if sending by email.
mail_subject string body Subject of the email that will be sent with the invoice. Required if sending by email.
mail_body string body Body of the email that will be sent with the invoice. Required if sending by email.
send_copy_to_me boolean body If true a copy of the invoice email will be sent to the users registered email.
cc_addresses array[string] body Extra email addresses to CC when sending the invoice by email.
attachment_ids array[string] body The attachments to send with the email
attachment_mime_types array[string] body The MIME types of the attachments to send with the email
peppol_scheme_code string body The Code that described the given Peppol identifier. Required if sending by Peppol.
peppol_identifier string body The Peppol identifier of the recipient. Required if sending by Peppol.
StatusDescription
200 No Content
curl -X POST "https://api.jortt.nl/v3/invoices/{id}/send" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "send_method": "email",
    "email_address_customer": "<email_address_customer>",
    "mail_subject": "<mail_subject>",
    "mail_body": "<mail_body>",
    "send_copy_to_me": false,
    "cc_addresses": [],
    "attachment_ids": [],
    "attachment_mime_types": [],
    "peppol_scheme_code": "<peppol_scheme_code>",
    "peppol_identifier": "<peppol_identifier>"
}'
GET /v3/invoices/{id}/send_settings v1
Returns the current send settings for the invoice
NameTypeInDescription
idrequired string path Resource identifier (UUID)
StatusDescription
200 Invoice
curl -X GET "https://api.jortt.nl/v3/invoices/{id}/send_settings" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
POST /v3/invoices/{id}/copy v1 Copies an Invoice
Creates an unsent copy of a sent invoice.
NameTypeInDescription
idrequired string path Resource identifier (UUID)
StatusDescription
201 Created
curl -X POST "https://api.jortt.nl/v3/invoices/{id}/copy" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json"

Estimates

Operations about estimates
GET /v3/estimates v2 Returns a list of Estimates
If the query is null (e.g GET /estimates), it will retrieve all Estimates ordered by created_at. Otherwise if a query is passed (e.g GET /estimates?query=foo), it will search and list only the Estimates matching the query, ordered by created_at. Optionally filter by estimate_status (lifecycle status): draft, sent, expired, invoiced. Optionally filter by acceptance_status: accepted, rejected, signed.
NameTypeInDescription
page integer query
query string query
estimate_status string query
acceptance_status string query
StatusDescription
200 Estimates
curl -X GET "https://api.jortt.nl/v3/estimates" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

# Optional query params: ?page=<value>&query=<value>&estimate_status=<value>
POST /v3/estimates v2 Creates (and optionally sends) an Estimate
When the optional send_method is not provided, the Estimate will be created as a Draft.

When the optional send_method parameter is provided, the Estimate will also be scheduled for sending.

When sending by email, you can optionally provide email_address_customer to override the customer's default email address.

By polling the GET /estimates/{id} endpoint you can check if the Estimate has been sent (the returned Estimate's estimate_status attribute is then set to sent otherwise it will be draft).

NameTypeInDescription
CreateEstimateV2required object body
customer_id string body Resource identifier (UUID)
tradename_id string body The ID of the Tradename used for this Invoice. It should a resource identifier (UUID). If not set the default Organization will be used.
valid_until string body The date until which the Estimate is valid.
net_amounts boolean body Whether or not VAT is included in the amount_per_unit in the line item (this is typically used when invoicing a private person rather than a company)
send_method string body How the Invoice should be sent
email_address_customer string body The email address to send the estimate to. Overrides the customer's default email. Only used when send_method is email.
introduction string body Comments printed on the Invoice (above the line items)
remarks string body Remarks printed on the Invoice (under the line items)
reference string body Custom reference (for example an order ID)
line_items array[object] body The line items of an Invoice
discounts array[object] body Discounts applied to the invoice
StatusDescription
201 Created
curl -X POST "https://api.jortt.nl/v3/estimates" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "f8fd3e4e-da1c-43a7-892f-1410ac13e38a",
    "tradename_id": "f8fd3e4e-da1c-43a7-892f-1410ac13e38a",
    "valid_until": "<valid_until>",
    "net_amounts": false,
    "send_method": "email",
    "email_address_customer": "<email_address_customer>",
    "introduction": "example",
    "remarks": "example",
    "reference": "123",
    "line_items": [],
    "discounts": []
}'
GET /v3/estimates/{id} v2
Returns an Estimate by ID
NameTypeInDescription
idrequired string path Resource identifier (UUID)
StatusDescription
200 Estimate
curl -X GET "https://api.jortt.nl/v3/estimates/{id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
PUT /v3/estimates/{id} v2 Edits an Estimate
Edits an estimate, provided said estimate has not been accepted, signed, or invoiced.
NameTypeInDescription
idrequired string path Resource identifier (UUID)
EditEstimateV2required object body
customer_id string body Resource identifier (UUID)
tradename_id string body The ID of the Tradename used for this Invoice. It should a resource identifier (UUID). If not set the default Organization will be used.
valid_until string body The date until which the Estimate is valid.
net_amounts boolean body Whether or not VAT is included in the amount_per_unit in the line item (this is typically used when invoicing a private person rather than a company)
introduction string body Comments printed on the Invoice (above the line items)
remarks string body Remarks printed on the Invoice (under the line items)
reference string body Custom reference (for example an order ID)
line_items array[object] body The line items of an Invoice
discounts array[object] body Discounts applied to the invoice
StatusDescription
200 No Content
curl -X PUT "https://api.jortt.nl/v3/estimates/{id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "f8fd3e4e-da1c-43a7-892f-1410ac13e38a",
    "tradename_id": "f8fd3e4e-da1c-43a7-892f-1410ac13e38a",
    "valid_until": "<valid_until>",
    "net_amounts": false,
    "introduction": "example",
    "remarks": "example",
    "reference": "123",
    "line_items": [],
    "discounts": []
}'
POST /v3/estimates/{id}/send v2 Sends an Estimate
Sends an estimate to the linked customer. The estimate must have a customer, line items, and a valid creditor (organization) to be sent.

The send_method parameter determines how the estimate is delivered:

  • email: Sends the estimate via email to the customer's email address.
  • self: Marks the estimate as sent (for manual delivery / printing).

When sending by email, you can optionally provide email_address_customer to override the customer's default email address.

NameTypeInDescription
idrequired string path Resource identifier (UUID)
SendEstimateV2required object body
send_methodrequired string body How the Invoice should be sent
email_address_customer string body The email address to send the estimate to. Overrides the customer's default email. Only used when send_method is email.
StatusDescription
200 Sent
curl -X POST "https://api.jortt.nl/v3/estimates/{id}/send" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "send_method": "email",
    "email_address_customer": "<email_address_customer>"
}'
GET /v3/estimates/{id}/send_settings v2
Returns the current send settings for the estimate
NameTypeInDescription
idrequired string path Resource identifier (UUID)
StatusDescription
200 Estimate send settings
curl -X GET "https://api.jortt.nl/v3/estimates/{id}/send_settings" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

Expenses

Expenses
GET /v3/expenses List Expenses
Returns a paginated list of Expenses for the current organization. Results are ordered by expense number by default.

Use vat_date_from and vat_date_till to filter by VAT date range. Use delivery_date_from and delivery_date_till to filter by delivery period. Use expense_type to filter by type (cost, income, or balance).

NameTypeInDescription
page integer query Page number (starting at 1)
vat_date_from string query Filter expenses with vat_date on or after this date
vat_date_till string query Filter expenses with vat_date on or before this date
delivery_date_from string query Filter expenses with delivery_period on or after this date
delivery_date_till string query Filter expenses with delivery_period on or before this date
expense_type string query Filter by expense type
StatusDescription
200 OK
curl -X GET "https://api.jortt.nl/v3/expenses" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

# Optional query params: ?page=<value>&vat_date_from=<value>&vat_date_till=<value>
POST /v3/expenses Create an Expense
Creates a new Expense for the current organization.

The expense_type field accepts cost, income, or balance. Note: bedrijfsmiddel type is not supported via this API.

The delivery_period is required for cost and income expense types.

NameTypeInDescription
CreateExpenserequired object body
approved boolean body Whether the expense is approved
descriptionrequired string body Description of the expense
ledger_account_idrequired string body Ledger account identifier
expense_typerequired string body Type of expense. One of: cost, income, balance
vat_daterequired string body VAT date of the expense
delivery_periodrequired string body Delivery period start date (required for cost and income)
delivery_period_end string body Delivery period end date
vat_typerequired string body VAT type of the expense
raw_total_amountrequired object body
raw_total_amount.amountrequired string body
raw_total_amount.currencyrequired string body
vat_line_items array[object] body VAT line items
StatusDescription
201 Created
curl -X POST "https://api.jortt.nl/v3/expenses" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "approved": false,
    "description": "<description>",
    "ledger_account_id": "<ledger_account_id>",
    "expense_type": "<expense_type>",
    "vat_date": "<vat_date>",
    "delivery_period": "<delivery_period>",
    "delivery_period_end": "<delivery_period_end>",
    "vat_type": "<vat_type>",
    "raw_total_amount": {
        "amount": "22.00",
        "currency": "EUR"
    },
    "vat_line_items": []
}'
GET /v3/expenses/id/{id} Get Expense by ID
Returns a single Expense for the given id.
NameTypeInDescription
idrequired string path Resource identifier (UUID)
StatusDescription
200 OK
404 Not Found
curl -X GET "https://api.jortt.nl/v3/expenses/id/{id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
POST /v3/expenses/id/{id} Update an Expense
Updates an existing Expense with new expense data.
NameTypeInDescription
idrequired string path Resource identifier (UUID)
UpdateExpenserequired object body
approved boolean body Whether the expense is approved
descriptionrequired string body Description of the expense
ledger_account_idrequired string body Ledger account identifier
expense_typerequired string body Type of expense. One of: cost, income, balance
vat_daterequired string body VAT date of the expense
delivery_periodrequired string body Delivery period start date (required for cost and income)
delivery_period_end string body Delivery period end date
vat_typerequired string body VAT type of the expense
raw_total_amountrequired object body
raw_total_amount.amountrequired string body
raw_total_amount.currencyrequired string body
vat_line_items array[object] body VAT line items
StatusDescription
200 OK
404 Not Found
curl -X POST "https://api.jortt.nl/v3/expenses/id/{id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "approved": false,
    "description": "<description>",
    "ledger_account_id": "<ledger_account_id>",
    "expense_type": "<expense_type>",
    "vat_date": "<vat_date>",
    "delivery_period": "<delivery_period>",
    "delivery_period_end": "<delivery_period_end>",
    "vat_type": "<vat_type>",
    "raw_total_amount": {
        "amount": "22.00",
        "currency": "EUR"
    },
    "vat_line_items": []
}'
POST /v3/expenses/id/{id}/receipt Attach a Receipt to an Expense
Attaches an existing Receipt to an Expense. Fails if the receipt is already attached to another expense.
NameTypeInDescription
idrequired string path Expense identifier (UUID)
AttachReceiptToExpenserequired object body
receipt_idrequired string body Receipt identifier (UUID)
StatusDescription
200 OK
404 Not Found
422 Unprocessable Entity
curl -X POST "https://api.jortt.nl/v3/expenses/id/{id}/receipt" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "receipt_id": "<receipt_id>"
}'

Projects

Projects
GET /v3/projects v1 Returns a list of Projects
Returns a paginated list of projects ordered by creation date. 10 items are provided per page
NameTypeInDescription
page integer query Page of the response (minimum 1)
StatusDescription
200 Projects
curl -X GET "https://api.jortt.nl/v3/projects" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

# Optional query params: ?page=<value>
POST /v3/projects v1 Creates a Project
Creates a Project
NameTypeInDescription
CreateProjectrequired object body
namerequired string body The name of the project.
description string body A string describing the project.
reference string body Custom reference (for example an order ID)
is_internal boolean body Whether or not the project is an internal project. Internal projects are not attributed to customer.
default_registration_description string body A string that can be used to prefill project registrations.
default_hourly_rate object body
default_hourly_rate.valuerequired number body Amount per unit of the line item
default_hourly_rate.currencyrequired string body Currency of the line item
customer_id string body Resource identifier (UUID) for the project customer. Required if is_internal is false.
StatusDescription
201 Created
curl -X POST "https://api.jortt.nl/v3/projects" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Jortt Logo Design",
    "description": "This project is fun",
    "reference": "123",
    "is_internal": false,
    "default_registration_description": "This project is fun",
    "default_hourly_rate": {
        "value": "10.10",
        "currency": "EUR"
    },
    "customer_id": "500fda8f-2c95-46b7-983b-f12df4f75b21"
}'
GET /v3/projects/{id} v1 Returns a Project
Returns a Projects wrapped in a data object
NameTypeInDescription
idrequired string path Resource identifier (UUID) for the owning Project
StatusDescription
200 Project
curl -X GET "https://api.jortt.nl/v3/projects/{id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
PUT /v3/projects/{id} v1 Updates a Project
Updates a project
NameTypeInDescription
idrequired string path Resource identifier (UUID) for the owning Project
UpdateProjectrequired object body
name string body The name of the project.
description string body A string describing the project.
reference string body Custom reference (for example an order ID)
is_internal boolean body Whether or not the project is an internal project. Internal projects are not attributed to customer.
default_registration_description string body A string that can be used to prefill project registrations.
default_hourly_rate object body
default_hourly_rate.valuerequired number body Amount per unit of the line item
default_hourly_rate.currencyrequired string body Currency of the line item
customer_id string body Resource identifier (UUID) for the project customer. Required if is_internal is false.
StatusDescription
200 No Content
curl -X PUT "https://api.jortt.nl/v3/projects/{id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Jortt Logo Design",
    "description": "This project is fun",
    "reference": "123",
    "is_internal": false,
    "default_registration_description": "This project is fun",
    "default_hourly_rate": {
        "value": "10.10",
        "currency": "EUR"
    },
    "customer_id": "500fda8f-2c95-46b7-983b-f12df4f75b21"
}'
DELETE /v3/projects/{id} v1 Deletes a Project
Deletes a project
NameTypeInDescription
idrequired string path Resource identifier (UUID) for the owning Project
StatusDescription
204 No Content
curl -X DELETE "https://api.jortt.nl/v3/projects/{id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
POST /v3/projects/{id}/invoice v1 Creates an invoice based on project line items
Creates an invoice based on the given project line items for the customer associated with said project. Invoiced line items will be marked as invoiced under the created invoice. Returns the resource ID for the newly created invoice.
NameTypeInDescription
idrequired string path Resource identifier (UUID) for the owning Project
InvoiceProjectrequired array[object] body
StatusDescription
201 Created
curl -X POST "https://api.jortt.nl/v3/projects/{id}/invoice" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json"
GET /v3/projects/{id}/line_items v1 Returns a list of Project Line Items
Returns a paginated list of line items for the given project id ordered by creation date. 100 items are provided per page
NameTypeInDescription
idrequired string path Resource identifier (UUID)
page integer query Page of the response (minimum 1)
start_date string query date to fetch data from (inclusive)
end_date string query date to fetch data until (exclusive)
status_filter string query status used to filter project line items
StatusDescription
200 Project Line Items
curl -X GET "https://api.jortt.nl/v3/projects/{id}/line_items" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

# Optional query params: ?page=<value>&start_date=<value>&end_date=<value>
POST /v3/projects/{id}/line_items v1 Creates a Project Line Item
Add a project line item to given project.
NameTypeInDescription
idrequired string path Resource identifier (UUID) for the owning Project
V1ProjectsIdLineItemsrequired object body
description string body A string describing line item.
date string body The date that the line item was logged on.
amount object body
amount.valuerequired number body Amount per unit of the line item
amount.currencyrequired string body Currency of the line item
status string body String indicating the line item's billing status. Can be one of [billable, invoiced, concept, nonbillable]
line_item_type string body String representing the type of line item this is, can either be time_registration or cost.
quantity object body Quantity for this time registration. Only for cost registrations
minutes integer body Minutes for this time registration. Only for time registrations
user_id string body ID for the user associated with this line item. Uses token owner if not specified
StatusDescription
201 Project Line Item Created
curl -X POST "https://api.jortt.nl/v3/projects/{id}/line_items" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Work done today",
    "date": "2020-02-23T00:00:00.000+01:00",
    "amount": {
        "value": "10.10",
        "currency": "EUR"
    },
    "status": "billable",
    "line_item_type": "time_registration",
    "quantity": {},
    "minutes": 0,
    "user_id": "<user_id>"
}'
GET /v3/projects/{id}/line_items/summary v1 Returns a list of Project Line Item summaries
Returns a list of monthly summaries for project line items.
NameTypeInDescription
idrequired string path Resource identifier (UUID) for the Project
period string query period of the summaries you wish to fetch. one of [year, month, day]. Defaults to month
start_date string query date to fetch data from (inclusive)
end_date string query date to fetch data until (inclusive)
StatusDescription
200 Project Line Item Summary
curl -X GET "https://api.jortt.nl/v3/projects/{id}/line_items/summary" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

# Optional query params: ?period=<value>&start_date=<value>&end_date=<value>
GET /v3/projects/{id}/line_items/{line_item_id} v1 Returns a Project Line Item
Returns a given Project Line Item wrapped in a data object.
NameTypeInDescription
idrequired string path Resource identifier (UUID) for the owning Project
line_item_idrequired integer path ID of the line item to update
StatusDescription
200 Project Line Item
curl -X GET "https://api.jortt.nl/v3/projects/{id}/line_items/{line_item_id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
PUT /v3/projects/{id}/line_items/{line_item_id} v1 Updates a Project Line item
Update the given project line item.
NameTypeInDescription
idrequired string path Resource identifier (UUID) for the Project
line_item_idrequired integer path ID of the line item to update
V1ProjectsIdLineItemsrequired object body
description string body A string describing line item.
date string body The date that the line item was logged on.
amount object body
amount.valuerequired number body Amount per unit of the line item
amount.currencyrequired string body Currency of the line item
status string body String indicating the line item's billing status. Can be one of [billable, invoiced, concept, nonbillable]
line_item_type string body String representing the type of line item this is, can either be time_registration or cost.
quantity object body Quantity for this time registration. Only for cost registrations
minutes integer body Minutes for this time registration. Only for time registrations
user_id string body ID for the user associated with this line item. Uses token owner if not specified
StatusDescription
201 Project Updated
curl -X PUT "https://api.jortt.nl/v3/projects/{id}/line_items/{line_item_id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Work done today",
    "date": "2020-02-23T00:00:00.000+01:00",
    "amount": {
        "value": "10.10",
        "currency": "EUR"
    },
    "status": "billable",
    "line_item_type": "time_registration",
    "quantity": {},
    "minutes": 0,
    "user_id": "<user_id>"
}'
DELETE /v3/projects/{id}/line_items/{line_item_id} v1 Deletes a Project Line item
Delete the given project line item.
NameTypeInDescription
idrequired string path Resource identifier (UUID) for the owning Project
line_item_idrequired integer path ID of the line item to update
StatusDescription
204 No Content
curl -X DELETE "https://api.jortt.nl/v3/projects/{id}/line_items/{line_item_id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

Labels

Labels
GET /v3/labels v1 Returns a list of labels
GET /labels will retrieve all Labels in alphabetical order of description.
StatusDescription
200 labels
curl -X GET "https://api.jortt.nl/v3/labels" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
POST /v3/labels v1 Create a label
POST /labels Will create a label and return a representative uuid.
NameTypeInDescription
CreateLabelrequired object body
descriptionrequired string body The description of a Label
StatusDescription
201 Created
curl -X POST "https://api.jortt.nl/v3/labels" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "My Label"
}'

Ledger Accounts

Ledger Accounts
GET /v3/ledger_accounts/expenses/cost
StatusDescription
200 get Cost(s)
curl -X GET "https://api.jortt.nl/v3/ledger_accounts/expenses/cost" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
GET /v3/ledger_accounts/expenses/income
StatusDescription
200 get Income(s)
curl -X GET "https://api.jortt.nl/v3/ledger_accounts/expenses/income" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
GET /v3/ledger_accounts/expenses/balance
StatusDescription
200 get Balance(s)
curl -X GET "https://api.jortt.nl/v3/ledger_accounts/expenses/balance" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
GET /v3/ledger_accounts/invoices v1
Returns the list of Ledger Accounts that can be used to categorize Line Items on an Invoice for in your Profit and Loss report.
StatusDescription
200 List of Ledger Accounts retrieved
curl -X GET "https://api.jortt.nl/v3/ledger_accounts/invoices" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
GET /v3/ledger_accounts/invoices/default v1
Returns the default Ledger Account that can be used to categorize Line Items.
StatusDescription
200 The Ledger Account
curl -X GET "https://api.jortt.nl/v3/ledger_accounts/invoices/default" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

Loonjournaalposten

Loonjournaalposten
GET /v3/loonjournaalposten v1 Returns a list of Loonjournaalposten
If the year is null (e.g GET /payroll/loonjournaalposten), it will retrieve all Loonjournaalposten ordered by period_date.

Otherwise if a year is passed (e.g GET /payroll/loonjournaalposten?year=2022), it will search and list only the Loonjournaalposten matching the year, ordered by period_date.

NameTypeInDescription
year string query The year to get the Loonjournaalposten for
StatusDescription
200 Loonjournaalposten
curl -X GET "https://api.jortt.nl/v3/loonjournaalposten" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

# Optional query params: ?year=<value>
POST /v3/loonjournaalposten v1 Create a Loonjournaalpost
POST /loonjournaalposten Will create a Loonjournaalpost and return a representative uuid.
NameTypeInDescription
CreateLoonjournaalpostrequired object body
period_daterequired string body Date of the Loonjournaalpost period, must be the first day of the month
bruto_loon object body
bruto_loon.valuerequired number body Amount per unit of the line item
bruto_loon.currencyrequired string body Currency of the line item
werkgeversdeel_sociale_lasten object body
werkgeversdeel_sociale_lasten.valuerequired number body Amount per unit of the line item
werkgeversdeel_sociale_lasten.currencyrequired string body Currency of the line item
werkgeversdeel_pensioenkosten object body
werkgeversdeel_pensioenkosten.valuerequired number body Amount per unit of the line item
werkgeversdeel_pensioenkosten.currencyrequired string body Currency of the line item
reservering_vakantiegeld object body
reservering_vakantiegeld.valuerequired number body Amount per unit of the line item
reservering_vakantiegeld.currencyrequired string body Currency of the line item
reservering_eindejaarsuitkering object body
reservering_eindejaarsuitkering.valuerequired number body Amount per unit of the line item
reservering_eindejaarsuitkering.currencyrequired string body Currency of the line item
onbelaste_reiskostenvergoedingen object body
onbelaste_reiskostenvergoedingen.valuerequired number body Amount per unit of the line item
onbelaste_reiskostenvergoedingen.currencyrequired string body Currency of the line item
onbelaste_vergoedingen_gericht_vrijgesteld object body
onbelaste_vergoedingen_gericht_vrijgesteld.valuerequired number body Amount per unit of the line item
onbelaste_vergoedingen_gericht_vrijgesteld.currencyrequired string body Currency of the line item
onbelaste_vergoedingen_wkr object body
onbelaste_vergoedingen_wkr.valuerequired number body Amount per unit of the line item
onbelaste_vergoedingen_wkr.currencyrequired string body Currency of the line item
declaraties_algemeen object body
declaraties_algemeen.valuerequired number body Amount per unit of the line item
declaraties_algemeen.currencyrequired string body Currency of the line item
declaraties_kantoorkosten object body
declaraties_kantoorkosten.valuerequired number body Amount per unit of the line item
declaraties_kantoorkosten.currencyrequired string body Currency of the line item
declaraties_lunch_en_diner_representatiekosten object body
declaraties_lunch_en_diner_representatiekosten.valuerequired number body Amount per unit of the line item
declaraties_lunch_en_diner_representatiekosten.currencyrequired string body Currency of the line item
declaraties_reiskosten object body
declaraties_reiskosten.valuerequired number body Amount per unit of the line item
declaraties_reiskosten.currencyrequired string body Currency of the line item
declaraties_auto_en_transportkosten object body
declaraties_auto_en_transportkosten.valuerequired number body Amount per unit of the line item
declaraties_auto_en_transportkosten.currencyrequired string body Currency of the line item
declaraties_verkoopkosten object body
declaraties_verkoopkosten.valuerequired number body Amount per unit of the line item
declaraties_verkoopkosten.currencyrequired string body Currency of the line item
eindheffing_wkr object body
eindheffing_wkr.valuerequired number body Amount per unit of the line item
eindheffing_wkr.currencyrequired string body Currency of the line item
netto_inhoudingen object body
netto_inhoudingen.valuerequired number body Amount per unit of the line item
netto_inhoudingen.currencyrequired string body Currency of the line item
afdrachtvermindering_speur_en_ontwikkelingswerk object body
afdrachtvermindering_speur_en_ontwikkelingswerk.valuerequired number body Amount per unit of the line item
afdrachtvermindering_speur_en_ontwikkelingswerk.currencyrequired string body Currency of the line item
te_betalen_nettolonen object body
te_betalen_nettolonen.valuerequired number body Amount per unit of the line item
te_betalen_nettolonen.currencyrequired string body Currency of the line item
te_betalen_sociale_lasten_loonbelasting object body
te_betalen_sociale_lasten_loonbelasting.valuerequired number body Amount per unit of the line item
te_betalen_sociale_lasten_loonbelasting.currencyrequired string body Currency of the line item
te_betalen_pensioenpremies object body
te_betalen_pensioenpremies.valuerequired number body Amount per unit of the line item
te_betalen_pensioenpremies.currencyrequired string body Currency of the line item
te_betalen_vakantiegeld object body
te_betalen_vakantiegeld.valuerequired number body Amount per unit of the line item
te_betalen_vakantiegeld.currencyrequired string body Currency of the line item
te_betalen_eindejaarsuitkering object body
te_betalen_eindejaarsuitkering.valuerequired number body Amount per unit of the line item
te_betalen_eindejaarsuitkering.currencyrequired string body Currency of the line item
te_betalen_loonbeslag object body
te_betalen_loonbeslag.valuerequired number body Amount per unit of the line item
te_betalen_loonbeslag.currencyrequired string body Currency of the line item
StatusDescription
201 Created
curl -X POST "https://api.jortt.nl/v3/loonjournaalposten" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "period_date": "2023-10-01",
    "bruto_loon": {
        "value": "10.10",
        "currency": "EUR"
    },
    "werkgeversdeel_sociale_lasten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "werkgeversdeel_pensioenkosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "reservering_vakantiegeld": {
        "value": "10.10",
        "currency": "EUR"
    },
    "reservering_eindejaarsuitkering": {
        "value": "10.10",
        "currency": "EUR"
    },
    "onbelaste_reiskostenvergoedingen": {
        "value": "10.10",
        "currency": "EUR"
    },
    "onbelaste_vergoedingen_gericht_vrijgesteld": {
        "value": "10.10",
        "currency": "EUR"
    },
    "onbelaste_vergoedingen_wkr": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_algemeen": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_kantoorkosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_lunch_en_diner_representatiekosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_reiskosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_auto_en_transportkosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_verkoopkosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "eindheffing_wkr": {
        "value": "10.10",
        "currency": "EUR"
    },
    "netto_inhoudingen": {
        "value": "10.10",
        "currency": "EUR"
    },
    "afdrachtvermindering_speur_en_ontwikkelingswerk": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_nettolonen": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_sociale_lasten_loonbelasting": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_pensioenpremies": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_vakantiegeld": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_eindejaarsuitkering": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_loonbeslag": {
        "value": "10.10",
        "currency": "EUR"
    }
}'
PUT /v3/loonjournaalposten/{loonjournaalpost_id} v1 Update a Loonjournaalpost
Update a Loonjournaalpost by ID
NameTypeInDescription
loonjournaalpost_idrequired string path Resource identifier (UUID)
UpdateLoonjournaalpostrequired object body
bruto_loon object body
bruto_loon.valuerequired number body Amount per unit of the line item
bruto_loon.currencyrequired string body Currency of the line item
werkgeversdeel_sociale_lasten object body
werkgeversdeel_sociale_lasten.valuerequired number body Amount per unit of the line item
werkgeversdeel_sociale_lasten.currencyrequired string body Currency of the line item
werkgeversdeel_pensioenkosten object body
werkgeversdeel_pensioenkosten.valuerequired number body Amount per unit of the line item
werkgeversdeel_pensioenkosten.currencyrequired string body Currency of the line item
reservering_vakantiegeld object body
reservering_vakantiegeld.valuerequired number body Amount per unit of the line item
reservering_vakantiegeld.currencyrequired string body Currency of the line item
reservering_eindejaarsuitkering object body
reservering_eindejaarsuitkering.valuerequired number body Amount per unit of the line item
reservering_eindejaarsuitkering.currencyrequired string body Currency of the line item
onbelaste_reiskostenvergoedingen object body
onbelaste_reiskostenvergoedingen.valuerequired number body Amount per unit of the line item
onbelaste_reiskostenvergoedingen.currencyrequired string body Currency of the line item
onbelaste_vergoedingen_gericht_vrijgesteld object body
onbelaste_vergoedingen_gericht_vrijgesteld.valuerequired number body Amount per unit of the line item
onbelaste_vergoedingen_gericht_vrijgesteld.currencyrequired string body Currency of the line item
onbelaste_vergoedingen_wkr object body
onbelaste_vergoedingen_wkr.valuerequired number body Amount per unit of the line item
onbelaste_vergoedingen_wkr.currencyrequired string body Currency of the line item
declaraties_algemeen object body
declaraties_algemeen.valuerequired number body Amount per unit of the line item
declaraties_algemeen.currencyrequired string body Currency of the line item
declaraties_kantoorkosten object body
declaraties_kantoorkosten.valuerequired number body Amount per unit of the line item
declaraties_kantoorkosten.currencyrequired string body Currency of the line item
declaraties_lunch_en_diner_representatiekosten object body
declaraties_lunch_en_diner_representatiekosten.valuerequired number body Amount per unit of the line item
declaraties_lunch_en_diner_representatiekosten.currencyrequired string body Currency of the line item
declaraties_reiskosten object body
declaraties_reiskosten.valuerequired number body Amount per unit of the line item
declaraties_reiskosten.currencyrequired string body Currency of the line item
declaraties_auto_en_transportkosten object body
declaraties_auto_en_transportkosten.valuerequired number body Amount per unit of the line item
declaraties_auto_en_transportkosten.currencyrequired string body Currency of the line item
declaraties_verkoopkosten object body
declaraties_verkoopkosten.valuerequired number body Amount per unit of the line item
declaraties_verkoopkosten.currencyrequired string body Currency of the line item
eindheffing_wkr object body
eindheffing_wkr.valuerequired number body Amount per unit of the line item
eindheffing_wkr.currencyrequired string body Currency of the line item
netto_inhoudingen object body
netto_inhoudingen.valuerequired number body Amount per unit of the line item
netto_inhoudingen.currencyrequired string body Currency of the line item
afdrachtvermindering_speur_en_ontwikkelingswerk object body
afdrachtvermindering_speur_en_ontwikkelingswerk.valuerequired number body Amount per unit of the line item
afdrachtvermindering_speur_en_ontwikkelingswerk.currencyrequired string body Currency of the line item
te_betalen_nettolonen object body
te_betalen_nettolonen.valuerequired number body Amount per unit of the line item
te_betalen_nettolonen.currencyrequired string body Currency of the line item
te_betalen_sociale_lasten_loonbelasting object body
te_betalen_sociale_lasten_loonbelasting.valuerequired number body Amount per unit of the line item
te_betalen_sociale_lasten_loonbelasting.currencyrequired string body Currency of the line item
te_betalen_pensioenpremies object body
te_betalen_pensioenpremies.valuerequired number body Amount per unit of the line item
te_betalen_pensioenpremies.currencyrequired string body Currency of the line item
te_betalen_vakantiegeld object body
te_betalen_vakantiegeld.valuerequired number body Amount per unit of the line item
te_betalen_vakantiegeld.currencyrequired string body Currency of the line item
te_betalen_eindejaarsuitkering object body
te_betalen_eindejaarsuitkering.valuerequired number body Amount per unit of the line item
te_betalen_eindejaarsuitkering.currencyrequired string body Currency of the line item
te_betalen_loonbeslag object body
te_betalen_loonbeslag.valuerequired number body Amount per unit of the line item
te_betalen_loonbeslag.currencyrequired string body Currency of the line item
StatusDescription
204 No Content
curl -X PUT "https://api.jortt.nl/v3/loonjournaalposten/{loonjournaalpost_id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "bruto_loon": {
        "value": "10.10",
        "currency": "EUR"
    },
    "werkgeversdeel_sociale_lasten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "werkgeversdeel_pensioenkosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "reservering_vakantiegeld": {
        "value": "10.10",
        "currency": "EUR"
    },
    "reservering_eindejaarsuitkering": {
        "value": "10.10",
        "currency": "EUR"
    },
    "onbelaste_reiskostenvergoedingen": {
        "value": "10.10",
        "currency": "EUR"
    },
    "onbelaste_vergoedingen_gericht_vrijgesteld": {
        "value": "10.10",
        "currency": "EUR"
    },
    "onbelaste_vergoedingen_wkr": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_algemeen": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_kantoorkosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_lunch_en_diner_representatiekosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_reiskosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_auto_en_transportkosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_verkoopkosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "eindheffing_wkr": {
        "value": "10.10",
        "currency": "EUR"
    },
    "netto_inhoudingen": {
        "value": "10.10",
        "currency": "EUR"
    },
    "afdrachtvermindering_speur_en_ontwikkelingswerk": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_nettolonen": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_sociale_lasten_loonbelasting": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_pensioenpremies": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_vakantiegeld": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_eindejaarsuitkering": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_loonbeslag": {
        "value": "10.10",
        "currency": "EUR"
    }
}'
DELETE /v3/loonjournaalposten/{loonjournaalpost_id} v1 Delete a Loonjournaalpost
No required attributes to be passed.

This call will delete a loonjournaalpost.

NameTypeInDescription
loonjournaalpost_idrequired string path Resource identifier (UUID)
StatusDescription
204 No Content
curl -X DELETE "https://api.jortt.nl/v3/loonjournaalposten/{loonjournaalpost_id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

Organizations

Organizations
GET /v3/organizations/me v1
Get the current Organization
StatusDescription
200 Organizations
curl -X GET "https://api.jortt.nl/v3/organizations/me" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

Tradenames

Tradenames
GET /v3/tradenames v1 Returns a list of tradenames
A tradename is the name under which your business trades. The tradename is often the same as the name in your company's deed of incorporation, but it can also be different. A business can, for instance, use different tradenames for different activities.

GET /tradenames it will retrieve all Tradenames in alphabetical order of company_name.

StatusDescription
200 tradenames
curl -X GET "https://api.jortt.nl/v3/tradenames" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

Inbox

Operations about inboxes
POST /v3/inbox/images v1 Upload images to jortt
A simple endpoint where one can upload images to jortt, typically used to upload receipts. The response will contain the uuids of the uploaded images in the same order as they were supplied in the request.
NameTypeInDescription
UploadReceiptrequired array[object] body
StatusDescription
201 Created
curl -X POST "https://api.jortt.nl/v3/inbox/images" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json"

Reports

Reports
GET /v3/reports/summaries/invoices v1 Returns a summary of invoices for the current year
Gets summarized Invoice data intended for dashboard display. Summaries reflect invoices for the current year, grouped by payment status.
StatusDescription
200 Invoices summary
curl -X GET "https://api.jortt.nl/v3/reports/summaries/invoices" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
GET /v3/reports/summaries/btw v1 Returns a list of summarized btw periods
Gets a list summarized BTW period data intended for dashboard display.
StatusDescription
200 Btw summaries
curl -X GET "https://api.jortt.nl/v3/reports/summaries/btw" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
GET /v3/reports/summaries/balance v1 Returns key organization balances for the current date
Return organization balances for dashboard display. Balances presented are reflective of the current date.
StatusDescription
200 Balances
curl -X GET "https://api.jortt.nl/v3/reports/summaries/balance" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
GET /v3/reports/summaries/profit_and_loss v1 Returns a summary of profit and loss for the current year
Gets a summarized report for profit and loss this year up until the current date.
StatusDescription
200 Profit and loss summary
curl -X GET "https://api.jortt.nl/v3/reports/summaries/profit_and_loss" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
GET /v3/reports/summaries/cash_and_bank v1 Returns a summary of bank accounts, cash and liquid assets
Returns summaries of all organization bank accounts, liquid assets and cash balances intended for dashboard display.
StatusDescription
200 Cash and bank summary
curl -X GET "https://api.jortt.nl/v3/reports/summaries/cash_and_bank" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

Files

Operations about files
GET /v3/files/put_url v1 Request an upload URL for attachments
Returns an upload URL that can be used to upload attachments to be sent with invoice emails though the attachment_ids parameter.
NameTypeInDescription
idrequired string query Resource identifier (UUID)
namerequired string query The name of the file to be uploaded
mime_typerequired string query The MIME type of the file to be uploaded
content_lengthrequired integer query The content length of the file to be uploaded
StatusDescription
200 Attachments
curl -X GET "https://api.jortt.nl/v3/files/put_url" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

# Optional query params: ?id=<value>&name=<value>&mime_type=<value>

Bank Accounts

Banking
GET /v3/bank-accounts
List all Bank Accounts
StatusDescription
200 Bank accounts
curl -X GET "https://api.jortt.nl/v3/bank-accounts" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
GET /v3/bank-accounts/{id}/bank-transactions
List Bank Transactions for a Bank Account
NameTypeInDescription
idrequired string path Bank account resource identifier (UUID)
page integer query Page of the response (minimum 1)
StatusDescription
200 Bank transactions
404 Bank account not found
curl -X GET "https://api.jortt.nl/v3/bank-accounts/{id}/bank-transactions" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

# Optional query params: ?page=<value>

v2

Customers

Customers
GET /v2/customers/{customer_id}/vat-percentages
Returns vats that are valid on today's date for a Customer by ID
NameTypeInDescription
customer_idrequired string path Resource identifier (UUID)
StatusDescription
200 Customer vat percentages
curl -X GET "https://api.jortt.nl/v2/customers/{customer_id}/vat-percentages" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
GET /v2/customers v1 Returns a list of Customers
A Customer can be either a private person or a company.

If the query is null (e.g GET /customers), it will retrieve all Customers in alphabetical order of customer_name.

Otherwise if a query is passed (e.g GET /customers?query=foo), it will search and list only the Customers matching the query, ordered alphabetically on `customer_name``.

NameTypeInDescription
query string query Search query (at least 3 characters)
page integer query Page of the response (minimum 1)
StatusDescription
200 Customers
curl -X GET "https://api.jortt.nl/v2/customers" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

# Optional query params: ?query=<value>&page=<value>
POST /v2/customers v1 Creates a Customer
A Customer can either be a private person (set is_private to true) or a company (set is_private to false).

The required attributes are different for a private person than a company. See parameters documentation below for details.

NameTypeInDescription
CreateCustomerrequired object body
is_privaterequired boolean body Whether this Customer is a private person (true) or a company (false)
customer_namerequired string body Either a company name (when is_private is false) or a private person's full name (when is_private is true)
address_street string body Street and house number of the address of a Customer (required when is_private is false)
address_postal_code string body Postal code of the address of a Customer (required when is_private is false)
address_city string body City of the address of a Customer (required when is_private is false)
address_country_code string body Country code of a Customer in ISO 3166-1 alpha-2 format (required when is_private is false, defaults to NL)
address_extra_information string body Extra line of Customer address information
shift_vat boolean body Whether or not to shift the VAT for a Customer (applicable when is_private is false)
vat_number string body The VAT number (BTW-nummer) of a Customer (applicable when is_private is false and shift_vat is true)
coc_number string body The Chamber of Commerce number (KvK-nummer) of a Customer (applicable when is_private is false)
salutation string body The way a Customer is addressed (applicable when is_private is true)
initials string body Initials of a Customer (applicable when is_private is true)
first_name string body First name of a Customer (applicable when is_private is true)
last_name string body Last name of a Customer (applicable when is_private is true)
date_of_birth string body Date of birth of a Customer (applicable when is_private is true)
citizen_service_number string body Citizen service number (BSN-nummer) of a Customer (applicable when is_private is true)
attn string body To the attention of
phonenumber string body A Customer's phone number
website string body A Customer's website
email string body E-mail address to send the Invoice to
cc_emails array[string] body An array of e-mail addresses to CC when the Invoice is sent
email_salutation string body Salutation used in the e-mail (template) when sending an Invoice
additional_information string body Extra Customer information
payment_term integer body Payment term for Invoices (in days, defaults to 30)
invoice_language string body The language in which the Invoice will be translated
payment_method_invoice string body How the Invoice can be paid. Determines the payment instructions printed on the Invoice. Choose from:

  • already_paid when the Invoice has already been paid. No payment instructions will be printed on the Invoice.
  • pay_later will print payment instructions on the Invoice.
  • direct_debit requires a connection with Mollie. Only for Jortt Plus users.

The default is pay_later.

reference string body Custom reference (for example the ID of a customer in an external CRM)
default_label_id string body Resource identifier (UUID) of the label to be set as default for a customer, which will automatically be applied to their invoices & estimates.
default_ledger_account_id string body Resource identifier (UUID) of the ledger account to be set as default for a customer, which will automatically be applied to their invoices.
default_discount_description string body Description a default discount to apply to any invoices or estimates created for this customer
default_discount_percentage integer body The default discount to apply expressed as a percentage
peppol_scheme_code integer body Prefix describing the scheme of the peppol identifier. Used when sending invoices via Peppol
peppol_identifier integer body Code used to identify a Peppol legal entity. Used when sending invoices via Peppol
StatusDescription
201 Created
curl -X POST "https://api.jortt.nl/v2/customers" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "is_private": true,
    "customer_name": "Jortt",
    "address_street": "Rozengracht 75a",
    "address_postal_code": "1012 AB",
    "address_city": "Amsterdam",
    "address_country_code": "NL",
    "address_extra_information": "2nd floor",
    "shift_vat": false,
    "vat_number": "NL000099998B57",
    "coc_number": "41202536",
    "salutation": "madam",
    "initials": "FL",
    "first_name": "Jane",
    "last_name": "Doe",
    "date_of_birth": "1985-04-29",
    "citizen_service_number": "123456789",
    "attn": "Finance Department",
    "phonenumber": "+31658798654",
    "website": "www.example.com",
    "email": "example@email.com",
    "cc_emails": [
        "example@email.com",
        "example2@email.com"
    ],
    "email_salutation": "Geachte mevrouw,",
    "additional_information": "this is extra info",
    "payment_term": 30,
    "invoice_language": "nl",
    "payment_method_invoice": "pay_later",
    "reference": "BX123-123",
    "default_label_id": "57aab2d0-16b8-013d-3d2c-42742b204134",
    "default_ledger_account_id": "61a5b600-16bc-013d-3d2d-42742b204134",
    "default_discount_description": "this is a description example",
    "default_discount_percentage": 21,
    "peppol_scheme_code": "KVK",
    "peppol_identifier": "12345677"
}'
GET /v2/customers/{customer_id} v1
Returns a Customer by ID
NameTypeInDescription
customer_idrequired string path Resource identifier (UUID)
StatusDescription
200 Customer
curl -X GET "https://api.jortt.nl/v2/customers/{customer_id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
PUT /v2/customers/{customer_id} v1 Updates a Customer
A Customer can either be a private person (set is_private to true) or a company (set is_private to false).

The required attributes are different for a private person than a company. See parameters documentation below for details.

NameTypeInDescription
customer_idrequired integer path
UpdateCustomerrequired object body
is_privaterequired boolean body Whether this Customer is a private person (true) or a company (false)
customer_namerequired string body Either a company name (when is_private is false) or a private person's full name (when is_private is true)
address_street string body Street and house number of the address of a Customer (required when is_private is false)
address_postal_code string body Postal code of the address of a Customer (required when is_private is false)
address_city string body City of the address of a Customer (required when is_private is false)
address_country_code string body Country code of a Customer in ISO 3166-1 alpha-2 format (required when is_private is false, defaults to NL)
address_extra_information string body Extra line of Customer address information
shift_vat boolean body Whether or not to shift the VAT for a Customer (applicable when is_private is false)
vat_number string body The VAT number (BTW-nummer) of a Customer (applicable when is_private is false and shift_vat is true)
coc_number string body The Chamber of Commerce number (KvK-nummer) of a Customer (applicable when is_private is false)
salutation string body The way a Customer is addressed (applicable when is_private is true)
initials string body Initials of a Customer (applicable when is_private is true)
first_name string body First name of a Customer (applicable when is_private is true)
last_name string body Last name of a Customer (applicable when is_private is true)
date_of_birth string body Date of birth of a Customer (applicable when is_private is true)
citizen_service_number string body Citizen service number (BSN-nummer) of a Customer (applicable when is_private is true)
attn string body To the attention of
phonenumber string body A Customer's phone number
website string body A Customer's website
email string body E-mail address to send the Invoice to
cc_emails array[string] body An array of e-mail addresses to CC when the Invoice is sent
email_salutation string body Salutation used in the e-mail (template) when sending an Invoice
additional_information string body Extra Customer information
payment_term integer body Payment term for Invoices (in days, defaults to 30)
invoice_language string body The language in which the Invoice will be translated
payment_method_invoice string body How the Invoice can be paid. Determines the payment instructions printed on the Invoice. Choose from:

  • already_paid when the Invoice has already been paid. No payment instructions will be printed on the Invoice.
  • pay_later will print payment instructions on the Invoice.
  • direct_debit requires a connection with Mollie. Only for Jortt Plus users.

The default is pay_later.

reference string body Custom reference (for example the ID of a customer in an external CRM)
default_label_id string body Resource identifier (UUID) of the label to be set as default for a customer, which will automatically be applied to their invoices & estimates.
default_ledger_account_id string body Resource identifier (UUID) of the ledger account to be set as default for a customer, which will automatically be applied to their invoices.
default_discount_description string body Description a default discount to apply to any invoices or estimates created for this customer
default_discount_percentage integer body The default discount to apply expressed as a percentage
peppol_scheme_code integer body Prefix describing the scheme of the peppol identifier. Used when sending invoices via Peppol
peppol_identifier integer body Code used to identify a Peppol legal entity. Used when sending invoices via Peppol
StatusDescription
204 No Content
curl -X PUT "https://api.jortt.nl/v2/customers/{customer_id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "is_private": true,
    "customer_name": "Jortt",
    "address_street": "Rozengracht 75a",
    "address_postal_code": "1012 AB",
    "address_city": "Amsterdam",
    "address_country_code": "NL",
    "address_extra_information": "2nd floor",
    "shift_vat": false,
    "vat_number": "NL000099998B57",
    "coc_number": "41202536",
    "salutation": "madam",
    "initials": "FL",
    "first_name": "Jane",
    "last_name": "Doe",
    "date_of_birth": "1985-04-29",
    "citizen_service_number": "123456789",
    "attn": "Finance Department",
    "phonenumber": "+31658798654",
    "website": "www.example.com",
    "email": "example@email.com",
    "cc_emails": [
        "example@email.com",
        "example2@email.com"
    ],
    "email_salutation": "Geachte mevrouw,",
    "additional_information": "this is extra info",
    "payment_term": 30,
    "invoice_language": "nl",
    "payment_method_invoice": "pay_later",
    "reference": "BX123-123",
    "default_label_id": "57aab2d0-16b8-013d-3d2c-42742b204134",
    "default_ledger_account_id": "61a5b600-16bc-013d-3d2d-42742b204134",
    "default_discount_description": "this is a description example",
    "default_discount_percentage": 21,
    "peppol_scheme_code": "KVK",
    "peppol_identifier": "12345677"
}'
DELETE /v2/customers/{customer_id} v1 Delete a Customer
No required attributes to be passed.

This call will delete a customer. Then the Customer deleted attribute will be true.

NameTypeInDescription
customer_idrequired string path Resource identifier (UUID)
StatusDescription
204 No Content
curl -X DELETE "https://api.jortt.nl/v2/customers/{customer_id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
GET /v2/customers/{customer_id}/extra_details v1
Returns a Customer's details by ID
NameTypeInDescription
customer_idrequired string path Resource identifier (UUID)
StatusDescription
200 CustomerDetails
curl -X GET "https://api.jortt.nl/v2/customers/{customer_id}/extra_details" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
POST /v2/customers/{customer_id}/direct_debit_mandate v1 Send direct debit authorization to a Customer
No required attributes to be passed.

This call will send an e-mail to the customer with a request for an authorization payment, typically 1 or 2 cents, in order to be able to direct debit the customer. Only when the customer pays the authorization payment the direct debit for this customer is enabled. If so the Customer mollie_direct_debit_status will be mollie_direct_debit_accepted and it will have a mollie_mandate_id.

NameTypeInDescription
customer_idrequired integer path
StatusDescription
204 No Content
curl -X POST "https://api.jortt.nl/v2/customers/{customer_id}/direct_debit_mandate" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json"
PUT /v2/customers/{customer_id}/set_archived v1 Sets the archived status for a customer
This call will set the archived status on a customer. Archived customers act as though deleted, but can be unarchived at a later point
NameTypeInDescription
customer_idrequired string path Resource identifier (UUID)
SetCustomerArchivedrequired object body
archivedrequired boolean body Whether or not the item has been archived.
StatusDescription
204 No Content
curl -X PUT "https://api.jortt.nl/v2/customers/{customer_id}/set_archived" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "archived": false
}'

Estimates

Operations about estimates
GET /v2/estimates Returns a list of Estimates
If the query is null (e.g GET /estimates), it will retrieve all Estimates ordered by created_at. Otherwise if a query is passed (e.g GET /estimates?query=foo), it will search and list only the Estimates matching the query, ordered by created_at. Optionally filter by estimate_status (lifecycle status): draft, sent, expired, invoiced. Optionally filter by acceptance_status: accepted, rejected, signed.
NameTypeInDescription
page integer query
query string query
estimate_status string query
acceptance_status string query
StatusDescription
200 Estimates
curl -X GET "https://api.jortt.nl/v2/estimates" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

# Optional query params: ?page=<value>&query=<value>&estimate_status=<value>
POST /v2/estimates Creates (and optionally sends) an Estimate
When the optional send_method is not provided, the Estimate will be created as a Draft.

When the optional send_method parameter is provided, the Estimate will also be scheduled for sending.

When sending by email, you can optionally provide email_address_customer to override the customer's default email address.

By polling the GET /estimates/{id} endpoint you can check if the Estimate has been sent (the returned Estimate's estimate_status attribute is then set to sent otherwise it will be draft).

NameTypeInDescription
CreateEstimateV2required object body
customer_id string body Resource identifier (UUID)
tradename_id string body The ID of the Tradename used for this Invoice. It should a resource identifier (UUID). If not set the default Organization will be used.
valid_until string body The date until which the Estimate is valid.
net_amounts boolean body Whether or not VAT is included in the amount_per_unit in the line item (this is typically used when invoicing a private person rather than a company)
send_method string body How the Invoice should be sent
email_address_customer string body The email address to send the estimate to. Overrides the customer's default email. Only used when send_method is email.
introduction string body Comments printed on the Invoice (above the line items)
remarks string body Remarks printed on the Invoice (under the line items)
reference string body Custom reference (for example an order ID)
line_items array[object] body The line items of an Invoice
discounts array[object] body Discounts applied to the invoice
StatusDescription
201 Created
curl -X POST "https://api.jortt.nl/v2/estimates" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "f8fd3e4e-da1c-43a7-892f-1410ac13e38a",
    "tradename_id": "f8fd3e4e-da1c-43a7-892f-1410ac13e38a",
    "valid_until": "<valid_until>",
    "net_amounts": false,
    "send_method": "email",
    "email_address_customer": "<email_address_customer>",
    "introduction": "example",
    "remarks": "example",
    "reference": "123",
    "line_items": [],
    "discounts": []
}'
GET /v2/estimates/{id}
Returns an Estimate by ID
NameTypeInDescription
idrequired string path Resource identifier (UUID)
StatusDescription
200 Estimate
curl -X GET "https://api.jortt.nl/v2/estimates/{id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
PUT /v2/estimates/{id} Edits an Estimate
Edits an estimate, provided said estimate has not been accepted, signed, or invoiced.
NameTypeInDescription
idrequired string path Resource identifier (UUID)
EditEstimateV2required object body
customer_id string body Resource identifier (UUID)
tradename_id string body The ID of the Tradename used for this Invoice. It should a resource identifier (UUID). If not set the default Organization will be used.
valid_until string body The date until which the Estimate is valid.
net_amounts boolean body Whether or not VAT is included in the amount_per_unit in the line item (this is typically used when invoicing a private person rather than a company)
introduction string body Comments printed on the Invoice (above the line items)
remarks string body Remarks printed on the Invoice (under the line items)
reference string body Custom reference (for example an order ID)
line_items array[object] body The line items of an Invoice
discounts array[object] body Discounts applied to the invoice
StatusDescription
200 No Content
curl -X PUT "https://api.jortt.nl/v2/estimates/{id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "f8fd3e4e-da1c-43a7-892f-1410ac13e38a",
    "tradename_id": "f8fd3e4e-da1c-43a7-892f-1410ac13e38a",
    "valid_until": "<valid_until>",
    "net_amounts": false,
    "introduction": "example",
    "remarks": "example",
    "reference": "123",
    "line_items": [],
    "discounts": []
}'
POST /v2/estimates/{id}/send Sends an Estimate
Sends an estimate to the linked customer. The estimate must have a customer, line items, and a valid creditor (organization) to be sent.

The send_method parameter determines how the estimate is delivered:

  • email: Sends the estimate via email to the customer's email address.
  • self: Marks the estimate as sent (for manual delivery / printing).

When sending by email, you can optionally provide email_address_customer to override the customer's default email address.

NameTypeInDescription
idrequired string path Resource identifier (UUID)
SendEstimateV2required object body
send_methodrequired string body How the Invoice should be sent
email_address_customer string body The email address to send the estimate to. Overrides the customer's default email. Only used when send_method is email.
StatusDescription
200 Sent
curl -X POST "https://api.jortt.nl/v2/estimates/{id}/send" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "send_method": "email",
    "email_address_customer": "<email_address_customer>"
}'
GET /v2/estimates/{id}/send_settings
Returns the current send settings for the estimate
NameTypeInDescription
idrequired string path Resource identifier (UUID)
StatusDescription
200 Estimate send settings
curl -X GET "https://api.jortt.nl/v2/estimates/{id}/send_settings" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

v1

Projects

Projects
GET /v1/projects Returns a list of Projects
Returns a paginated list of projects ordered by creation date. 10 items are provided per page
NameTypeInDescription
page integer query Page of the response (minimum 1)
StatusDescription
200 Projects
curl -X GET "https://api.jortt.nl/v1/projects" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

# Optional query params: ?page=<value>
POST /v1/projects Creates a Project
Creates a Project
NameTypeInDescription
CreateProjectrequired object body
namerequired string body The name of the project.
description string body A string describing the project.
reference string body Custom reference (for example an order ID)
is_internal boolean body Whether or not the project is an internal project. Internal projects are not attributed to customer.
default_registration_description string body A string that can be used to prefill project registrations.
default_hourly_rate object body
default_hourly_rate.valuerequired number body Amount per unit of the line item
default_hourly_rate.currencyrequired string body Currency of the line item
customer_id string body Resource identifier (UUID) for the project customer. Required if is_internal is false.
StatusDescription
201 Created
curl -X POST "https://api.jortt.nl/v1/projects" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Jortt Logo Design",
    "description": "This project is fun",
    "reference": "123",
    "is_internal": false,
    "default_registration_description": "This project is fun",
    "default_hourly_rate": {
        "value": "10.10",
        "currency": "EUR"
    },
    "customer_id": "500fda8f-2c95-46b7-983b-f12df4f75b21"
}'
GET /v1/projects/{id} Returns a Project
Returns a Projects wrapped in a data object
NameTypeInDescription
idrequired string path Resource identifier (UUID) for the owning Project
StatusDescription
200 Project
curl -X GET "https://api.jortt.nl/v1/projects/{id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
PUT /v1/projects/{id} Updates a Project
Updates a project
NameTypeInDescription
idrequired string path Resource identifier (UUID) for the owning Project
UpdateProjectrequired object body
name string body The name of the project.
description string body A string describing the project.
reference string body Custom reference (for example an order ID)
is_internal boolean body Whether or not the project is an internal project. Internal projects are not attributed to customer.
default_registration_description string body A string that can be used to prefill project registrations.
default_hourly_rate object body
default_hourly_rate.valuerequired number body Amount per unit of the line item
default_hourly_rate.currencyrequired string body Currency of the line item
customer_id string body Resource identifier (UUID) for the project customer. Required if is_internal is false.
StatusDescription
200 No Content
curl -X PUT "https://api.jortt.nl/v1/projects/{id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Jortt Logo Design",
    "description": "This project is fun",
    "reference": "123",
    "is_internal": false,
    "default_registration_description": "This project is fun",
    "default_hourly_rate": {
        "value": "10.10",
        "currency": "EUR"
    },
    "customer_id": "500fda8f-2c95-46b7-983b-f12df4f75b21"
}'
DELETE /v1/projects/{id} Deletes a Project
Deletes a project
NameTypeInDescription
idrequired string path Resource identifier (UUID) for the owning Project
StatusDescription
204 No Content
curl -X DELETE "https://api.jortt.nl/v1/projects/{id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
POST /v1/projects/{id}/invoice Creates an invoice based on project line items
Creates an invoice based on the given project line items for the customer associated with said project. Invoiced line items will be marked as invoiced under the created invoice. Returns the resource ID for the newly created invoice.
NameTypeInDescription
idrequired string path Resource identifier (UUID) for the owning Project
InvoiceProjectrequired array[object] body
StatusDescription
201 Created
curl -X POST "https://api.jortt.nl/v1/projects/{id}/invoice" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json"
GET /v1/projects/{id}/line_items Returns a list of Project Line Items
Returns a paginated list of line items for the given project id ordered by creation date. 100 items are provided per page
NameTypeInDescription
idrequired string path Resource identifier (UUID)
page integer query Page of the response (minimum 1)
start_date string query date to fetch data from (inclusive)
end_date string query date to fetch data until (exclusive)
status_filter string query status used to filter project line items
StatusDescription
200 Project Line Items
curl -X GET "https://api.jortt.nl/v1/projects/{id}/line_items" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

# Optional query params: ?page=<value>&start_date=<value>&end_date=<value>
POST /v1/projects/{id}/line_items Creates a Project Line Item
Add a project line item to given project.
NameTypeInDescription
idrequired string path Resource identifier (UUID) for the owning Project
V1ProjectsIdLineItemsrequired object body
description string body A string describing line item.
date string body The date that the line item was logged on.
amount object body
amount.valuerequired number body Amount per unit of the line item
amount.currencyrequired string body Currency of the line item
status string body String indicating the line item's billing status. Can be one of [billable, invoiced, concept, nonbillable]
line_item_type string body String representing the type of line item this is, can either be time_registration or cost.
quantity object body Quantity for this time registration. Only for cost registrations
minutes integer body Minutes for this time registration. Only for time registrations
user_id string body ID for the user associated with this line item. Uses token owner if not specified
StatusDescription
201 Project Line Item Created
curl -X POST "https://api.jortt.nl/v1/projects/{id}/line_items" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Work done today",
    "date": "2020-02-23T00:00:00.000+01:00",
    "amount": {
        "value": "10.10",
        "currency": "EUR"
    },
    "status": "billable",
    "line_item_type": "time_registration",
    "quantity": {},
    "minutes": 0,
    "user_id": "<user_id>"
}'
GET /v1/projects/{id}/line_items/summary Returns a list of Project Line Item summaries
Returns a list of monthly summaries for project line items.
NameTypeInDescription
idrequired string path Resource identifier (UUID) for the Project
period string query period of the summaries you wish to fetch. one of [year, month, day]. Defaults to month
start_date string query date to fetch data from (inclusive)
end_date string query date to fetch data until (inclusive)
StatusDescription
200 Project Line Item Summary
curl -X GET "https://api.jortt.nl/v1/projects/{id}/line_items/summary" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

# Optional query params: ?period=<value>&start_date=<value>&end_date=<value>
GET /v1/projects/{id}/line_items/{line_item_id} Returns a Project Line Item
Returns a given Project Line Item wrapped in a data object.
NameTypeInDescription
idrequired string path Resource identifier (UUID) for the owning Project
line_item_idrequired integer path ID of the line item to update
StatusDescription
200 Project Line Item
curl -X GET "https://api.jortt.nl/v1/projects/{id}/line_items/{line_item_id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
PUT /v1/projects/{id}/line_items/{line_item_id} Updates a Project Line item
Update the given project line item.
NameTypeInDescription
idrequired string path Resource identifier (UUID) for the Project
line_item_idrequired integer path ID of the line item to update
V1ProjectsIdLineItemsrequired object body
description string body A string describing line item.
date string body The date that the line item was logged on.
amount object body
amount.valuerequired number body Amount per unit of the line item
amount.currencyrequired string body Currency of the line item
status string body String indicating the line item's billing status. Can be one of [billable, invoiced, concept, nonbillable]
line_item_type string body String representing the type of line item this is, can either be time_registration or cost.
quantity object body Quantity for this time registration. Only for cost registrations
minutes integer body Minutes for this time registration. Only for time registrations
user_id string body ID for the user associated with this line item. Uses token owner if not specified
StatusDescription
201 Project Updated
curl -X PUT "https://api.jortt.nl/v1/projects/{id}/line_items/{line_item_id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Work done today",
    "date": "2020-02-23T00:00:00.000+01:00",
    "amount": {
        "value": "10.10",
        "currency": "EUR"
    },
    "status": "billable",
    "line_item_type": "time_registration",
    "quantity": {},
    "minutes": 0,
    "user_id": "<user_id>"
}'
DELETE /v1/projects/{id}/line_items/{line_item_id} Deletes a Project Line item
Delete the given project line item.
NameTypeInDescription
idrequired string path Resource identifier (UUID) for the owning Project
line_item_idrequired integer path ID of the line item to update
StatusDescription
204 No Content
curl -X DELETE "https://api.jortt.nl/v1/projects/{id}/line_items/{line_item_id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

Labels

Labels
GET /v1/labels Returns a list of labels
GET /labels will retrieve all Labels in alphabetical order of description.
StatusDescription
200 labels
curl -X GET "https://api.jortt.nl/v1/labels" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
POST /v1/labels Create a label
POST /labels Will create a label and return a representative uuid.
NameTypeInDescription
CreateLabelrequired object body
descriptionrequired string body The description of a Label
StatusDescription
201 Created
curl -X POST "https://api.jortt.nl/v1/labels" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "My Label"
}'

Loonjournaalposten

Loonjournaalposten
GET /v1/loonjournaalposten Returns a list of Loonjournaalposten
If the year is null (e.g GET /payroll/loonjournaalposten), it will retrieve all Loonjournaalposten ordered by period_date.

Otherwise if a year is passed (e.g GET /payroll/loonjournaalposten?year=2022), it will search and list only the Loonjournaalposten matching the year, ordered by period_date.

NameTypeInDescription
year string query The year to get the Loonjournaalposten for
StatusDescription
200 Loonjournaalposten
curl -X GET "https://api.jortt.nl/v1/loonjournaalposten" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

# Optional query params: ?year=<value>
POST /v1/loonjournaalposten Create a Loonjournaalpost
POST /loonjournaalposten Will create a Loonjournaalpost and return a representative uuid.
NameTypeInDescription
CreateLoonjournaalpostrequired object body
period_daterequired string body Date of the Loonjournaalpost period, must be the first day of the month
bruto_loon object body
bruto_loon.valuerequired number body Amount per unit of the line item
bruto_loon.currencyrequired string body Currency of the line item
werkgeversdeel_sociale_lasten object body
werkgeversdeel_sociale_lasten.valuerequired number body Amount per unit of the line item
werkgeversdeel_sociale_lasten.currencyrequired string body Currency of the line item
werkgeversdeel_pensioenkosten object body
werkgeversdeel_pensioenkosten.valuerequired number body Amount per unit of the line item
werkgeversdeel_pensioenkosten.currencyrequired string body Currency of the line item
reservering_vakantiegeld object body
reservering_vakantiegeld.valuerequired number body Amount per unit of the line item
reservering_vakantiegeld.currencyrequired string body Currency of the line item
reservering_eindejaarsuitkering object body
reservering_eindejaarsuitkering.valuerequired number body Amount per unit of the line item
reservering_eindejaarsuitkering.currencyrequired string body Currency of the line item
onbelaste_reiskostenvergoedingen object body
onbelaste_reiskostenvergoedingen.valuerequired number body Amount per unit of the line item
onbelaste_reiskostenvergoedingen.currencyrequired string body Currency of the line item
onbelaste_vergoedingen_gericht_vrijgesteld object body
onbelaste_vergoedingen_gericht_vrijgesteld.valuerequired number body Amount per unit of the line item
onbelaste_vergoedingen_gericht_vrijgesteld.currencyrequired string body Currency of the line item
onbelaste_vergoedingen_wkr object body
onbelaste_vergoedingen_wkr.valuerequired number body Amount per unit of the line item
onbelaste_vergoedingen_wkr.currencyrequired string body Currency of the line item
declaraties_algemeen object body
declaraties_algemeen.valuerequired number body Amount per unit of the line item
declaraties_algemeen.currencyrequired string body Currency of the line item
declaraties_kantoorkosten object body
declaraties_kantoorkosten.valuerequired number body Amount per unit of the line item
declaraties_kantoorkosten.currencyrequired string body Currency of the line item
declaraties_lunch_en_diner_representatiekosten object body
declaraties_lunch_en_diner_representatiekosten.valuerequired number body Amount per unit of the line item
declaraties_lunch_en_diner_representatiekosten.currencyrequired string body Currency of the line item
declaraties_reiskosten object body
declaraties_reiskosten.valuerequired number body Amount per unit of the line item
declaraties_reiskosten.currencyrequired string body Currency of the line item
declaraties_auto_en_transportkosten object body
declaraties_auto_en_transportkosten.valuerequired number body Amount per unit of the line item
declaraties_auto_en_transportkosten.currencyrequired string body Currency of the line item
declaraties_verkoopkosten object body
declaraties_verkoopkosten.valuerequired number body Amount per unit of the line item
declaraties_verkoopkosten.currencyrequired string body Currency of the line item
eindheffing_wkr object body
eindheffing_wkr.valuerequired number body Amount per unit of the line item
eindheffing_wkr.currencyrequired string body Currency of the line item
netto_inhoudingen object body
netto_inhoudingen.valuerequired number body Amount per unit of the line item
netto_inhoudingen.currencyrequired string body Currency of the line item
afdrachtvermindering_speur_en_ontwikkelingswerk object body
afdrachtvermindering_speur_en_ontwikkelingswerk.valuerequired number body Amount per unit of the line item
afdrachtvermindering_speur_en_ontwikkelingswerk.currencyrequired string body Currency of the line item
te_betalen_nettolonen object body
te_betalen_nettolonen.valuerequired number body Amount per unit of the line item
te_betalen_nettolonen.currencyrequired string body Currency of the line item
te_betalen_sociale_lasten_loonbelasting object body
te_betalen_sociale_lasten_loonbelasting.valuerequired number body Amount per unit of the line item
te_betalen_sociale_lasten_loonbelasting.currencyrequired string body Currency of the line item
te_betalen_pensioenpremies object body
te_betalen_pensioenpremies.valuerequired number body Amount per unit of the line item
te_betalen_pensioenpremies.currencyrequired string body Currency of the line item
te_betalen_vakantiegeld object body
te_betalen_vakantiegeld.valuerequired number body Amount per unit of the line item
te_betalen_vakantiegeld.currencyrequired string body Currency of the line item
te_betalen_eindejaarsuitkering object body
te_betalen_eindejaarsuitkering.valuerequired number body Amount per unit of the line item
te_betalen_eindejaarsuitkering.currencyrequired string body Currency of the line item
te_betalen_loonbeslag object body
te_betalen_loonbeslag.valuerequired number body Amount per unit of the line item
te_betalen_loonbeslag.currencyrequired string body Currency of the line item
StatusDescription
201 Created
curl -X POST "https://api.jortt.nl/v1/loonjournaalposten" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "period_date": "2023-10-01",
    "bruto_loon": {
        "value": "10.10",
        "currency": "EUR"
    },
    "werkgeversdeel_sociale_lasten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "werkgeversdeel_pensioenkosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "reservering_vakantiegeld": {
        "value": "10.10",
        "currency": "EUR"
    },
    "reservering_eindejaarsuitkering": {
        "value": "10.10",
        "currency": "EUR"
    },
    "onbelaste_reiskostenvergoedingen": {
        "value": "10.10",
        "currency": "EUR"
    },
    "onbelaste_vergoedingen_gericht_vrijgesteld": {
        "value": "10.10",
        "currency": "EUR"
    },
    "onbelaste_vergoedingen_wkr": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_algemeen": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_kantoorkosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_lunch_en_diner_representatiekosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_reiskosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_auto_en_transportkosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_verkoopkosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "eindheffing_wkr": {
        "value": "10.10",
        "currency": "EUR"
    },
    "netto_inhoudingen": {
        "value": "10.10",
        "currency": "EUR"
    },
    "afdrachtvermindering_speur_en_ontwikkelingswerk": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_nettolonen": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_sociale_lasten_loonbelasting": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_pensioenpremies": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_vakantiegeld": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_eindejaarsuitkering": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_loonbeslag": {
        "value": "10.10",
        "currency": "EUR"
    }
}'
PUT /v1/loonjournaalposten/{loonjournaalpost_id} Update a Loonjournaalpost
Update a Loonjournaalpost by ID
NameTypeInDescription
loonjournaalpost_idrequired string path Resource identifier (UUID)
UpdateLoonjournaalpostrequired object body
bruto_loon object body
bruto_loon.valuerequired number body Amount per unit of the line item
bruto_loon.currencyrequired string body Currency of the line item
werkgeversdeel_sociale_lasten object body
werkgeversdeel_sociale_lasten.valuerequired number body Amount per unit of the line item
werkgeversdeel_sociale_lasten.currencyrequired string body Currency of the line item
werkgeversdeel_pensioenkosten object body
werkgeversdeel_pensioenkosten.valuerequired number body Amount per unit of the line item
werkgeversdeel_pensioenkosten.currencyrequired string body Currency of the line item
reservering_vakantiegeld object body
reservering_vakantiegeld.valuerequired number body Amount per unit of the line item
reservering_vakantiegeld.currencyrequired string body Currency of the line item
reservering_eindejaarsuitkering object body
reservering_eindejaarsuitkering.valuerequired number body Amount per unit of the line item
reservering_eindejaarsuitkering.currencyrequired string body Currency of the line item
onbelaste_reiskostenvergoedingen object body
onbelaste_reiskostenvergoedingen.valuerequired number body Amount per unit of the line item
onbelaste_reiskostenvergoedingen.currencyrequired string body Currency of the line item
onbelaste_vergoedingen_gericht_vrijgesteld object body
onbelaste_vergoedingen_gericht_vrijgesteld.valuerequired number body Amount per unit of the line item
onbelaste_vergoedingen_gericht_vrijgesteld.currencyrequired string body Currency of the line item
onbelaste_vergoedingen_wkr object body
onbelaste_vergoedingen_wkr.valuerequired number body Amount per unit of the line item
onbelaste_vergoedingen_wkr.currencyrequired string body Currency of the line item
declaraties_algemeen object body
declaraties_algemeen.valuerequired number body Amount per unit of the line item
declaraties_algemeen.currencyrequired string body Currency of the line item
declaraties_kantoorkosten object body
declaraties_kantoorkosten.valuerequired number body Amount per unit of the line item
declaraties_kantoorkosten.currencyrequired string body Currency of the line item
declaraties_lunch_en_diner_representatiekosten object body
declaraties_lunch_en_diner_representatiekosten.valuerequired number body Amount per unit of the line item
declaraties_lunch_en_diner_representatiekosten.currencyrequired string body Currency of the line item
declaraties_reiskosten object body
declaraties_reiskosten.valuerequired number body Amount per unit of the line item
declaraties_reiskosten.currencyrequired string body Currency of the line item
declaraties_auto_en_transportkosten object body
declaraties_auto_en_transportkosten.valuerequired number body Amount per unit of the line item
declaraties_auto_en_transportkosten.currencyrequired string body Currency of the line item
declaraties_verkoopkosten object body
declaraties_verkoopkosten.valuerequired number body Amount per unit of the line item
declaraties_verkoopkosten.currencyrequired string body Currency of the line item
eindheffing_wkr object body
eindheffing_wkr.valuerequired number body Amount per unit of the line item
eindheffing_wkr.currencyrequired string body Currency of the line item
netto_inhoudingen object body
netto_inhoudingen.valuerequired number body Amount per unit of the line item
netto_inhoudingen.currencyrequired string body Currency of the line item
afdrachtvermindering_speur_en_ontwikkelingswerk object body
afdrachtvermindering_speur_en_ontwikkelingswerk.valuerequired number body Amount per unit of the line item
afdrachtvermindering_speur_en_ontwikkelingswerk.currencyrequired string body Currency of the line item
te_betalen_nettolonen object body
te_betalen_nettolonen.valuerequired number body Amount per unit of the line item
te_betalen_nettolonen.currencyrequired string body Currency of the line item
te_betalen_sociale_lasten_loonbelasting object body
te_betalen_sociale_lasten_loonbelasting.valuerequired number body Amount per unit of the line item
te_betalen_sociale_lasten_loonbelasting.currencyrequired string body Currency of the line item
te_betalen_pensioenpremies object body
te_betalen_pensioenpremies.valuerequired number body Amount per unit of the line item
te_betalen_pensioenpremies.currencyrequired string body Currency of the line item
te_betalen_vakantiegeld object body
te_betalen_vakantiegeld.valuerequired number body Amount per unit of the line item
te_betalen_vakantiegeld.currencyrequired string body Currency of the line item
te_betalen_eindejaarsuitkering object body
te_betalen_eindejaarsuitkering.valuerequired number body Amount per unit of the line item
te_betalen_eindejaarsuitkering.currencyrequired string body Currency of the line item
te_betalen_loonbeslag object body
te_betalen_loonbeslag.valuerequired number body Amount per unit of the line item
te_betalen_loonbeslag.currencyrequired string body Currency of the line item
StatusDescription
204 No Content
curl -X PUT "https://api.jortt.nl/v1/loonjournaalposten/{loonjournaalpost_id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "bruto_loon": {
        "value": "10.10",
        "currency": "EUR"
    },
    "werkgeversdeel_sociale_lasten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "werkgeversdeel_pensioenkosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "reservering_vakantiegeld": {
        "value": "10.10",
        "currency": "EUR"
    },
    "reservering_eindejaarsuitkering": {
        "value": "10.10",
        "currency": "EUR"
    },
    "onbelaste_reiskostenvergoedingen": {
        "value": "10.10",
        "currency": "EUR"
    },
    "onbelaste_vergoedingen_gericht_vrijgesteld": {
        "value": "10.10",
        "currency": "EUR"
    },
    "onbelaste_vergoedingen_wkr": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_algemeen": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_kantoorkosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_lunch_en_diner_representatiekosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_reiskosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_auto_en_transportkosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "declaraties_verkoopkosten": {
        "value": "10.10",
        "currency": "EUR"
    },
    "eindheffing_wkr": {
        "value": "10.10",
        "currency": "EUR"
    },
    "netto_inhoudingen": {
        "value": "10.10",
        "currency": "EUR"
    },
    "afdrachtvermindering_speur_en_ontwikkelingswerk": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_nettolonen": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_sociale_lasten_loonbelasting": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_pensioenpremies": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_vakantiegeld": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_eindejaarsuitkering": {
        "value": "10.10",
        "currency": "EUR"
    },
    "te_betalen_loonbeslag": {
        "value": "10.10",
        "currency": "EUR"
    }
}'
DELETE /v1/loonjournaalposten/{loonjournaalpost_id} Delete a Loonjournaalpost
No required attributes to be passed.

This call will delete a loonjournaalpost.

NameTypeInDescription
loonjournaalpost_idrequired string path Resource identifier (UUID)
StatusDescription
204 No Content
curl -X DELETE "https://api.jortt.nl/v1/loonjournaalposten/{loonjournaalpost_id}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

Organizations

Organizations
GET /v1/organizations/me
Get the current Organization
StatusDescription
200 Organizations
curl -X GET "https://api.jortt.nl/v1/organizations/me" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

Tradenames

Tradenames
GET /v1/tradenames Returns a list of tradenames
A tradename is the name under which your business trades. The tradename is often the same as the name in your company's deed of incorporation, but it can also be different. A business can, for instance, use different tradenames for different activities.

GET /tradenames it will retrieve all Tradenames in alphabetical order of company_name.

StatusDescription
200 tradenames
curl -X GET "https://api.jortt.nl/v1/tradenames" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

Inbox

Operations about inboxes
POST /v1/inbox/images Upload images to jortt
A simple endpoint where one can upload images to jortt, typically used to upload receipts. The response will contain the uuids of the uploaded images in the same order as they were supplied in the request.
NameTypeInDescription
UploadReceiptrequired array[object] body
StatusDescription
201 Created
curl -X POST "https://api.jortt.nl/v1/inbox/images" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json"

Reports

Reports
GET /v1/reports/summaries/invoices Returns a summary of invoices for the current year
Gets summarized Invoice data intended for dashboard display. Summaries reflect invoices for the current year, grouped by payment status.
StatusDescription
200 Invoices summary
curl -X GET "https://api.jortt.nl/v1/reports/summaries/invoices" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
GET /v1/reports/summaries/btw Returns a list of summarized btw periods
Gets a list summarized BTW period data intended for dashboard display.
StatusDescription
200 Btw summaries
curl -X GET "https://api.jortt.nl/v1/reports/summaries/btw" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
GET /v1/reports/summaries/balance Returns key organization balances for the current date
Return organization balances for dashboard display. Balances presented are reflective of the current date.
StatusDescription
200 Balances
curl -X GET "https://api.jortt.nl/v1/reports/summaries/balance" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
GET /v1/reports/summaries/profit_and_loss Returns a summary of profit and loss for the current year
Gets a summarized report for profit and loss this year up until the current date.
StatusDescription
200 Profit and loss summary
curl -X GET "https://api.jortt.nl/v1/reports/summaries/profit_and_loss" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
GET /v1/reports/summaries/cash_and_bank Returns a summary of bank accounts, cash and liquid assets
Returns summaries of all organization bank accounts, liquid assets and cash balances intended for dashboard display.
StatusDescription
200 Cash and bank summary
curl -X GET "https://api.jortt.nl/v1/reports/summaries/cash_and_bank" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

Files

Operations about files
GET /v1/files/put_url Request an upload URL for attachments
Returns an upload URL that can be used to upload attachments to be sent with invoice emails though the attachment_ids parameter.
NameTypeInDescription
idrequired string query Resource identifier (UUID)
namerequired string query The name of the file to be uploaded
mime_typerequired string query The MIME type of the file to be uploaded
content_lengthrequired integer query The content length of the file to be uploaded
StatusDescription
200 Attachments
curl -X GET "https://api.jortt.nl/v1/files/put_url" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

# Optional query params: ?id=<value>&name=<value>&mime_type=<value>