bexio API (3.0.0)

Stay up-to-date

Subscribe to our status page to get informed about short term issues with the API. Subscribe to our API developer newsletter to get the latest news and updates around our API platform.

Overview

The bexio API uses HTTPS methods and RESTful endpoints to create, edit, and manage documents in the bexio system. JSON is used as the data interchange format.

First steps

In order to use the bexio API, you need to follow the following steps in order:

  1. Create a bexio account by signing up for a trial account at https://www.bexio.com and complete the onboarding process. If you already have a bexio account, you can skip this step.
  2. Go to the developer portal at https://developer.bexio.com and log in using your bexio credentials.
  3. Read and accept the terms and conditions
  4. Create a new app and make sure that you define a valid site for the "Allowed redirect URL" field(s)
  5. By clicking on the section "App Details" you can reveal the Client ID and Client Secret
  6. Initiate the Authorization Code Flow to obtain an access token.
  7. Use the access token to create a request to the bexio API. The example below fetches a list of contacts (make sure to request the scope contact_show in the authorization code flow)
    curl -X GET \
       https://api.bexio.com/2.0/contact \
       -H 'Accept: application/json' \
       -H 'Authorization: Bearer {access-token}'
    

    Make sure to replace {access-token} with the token you received in Step 6.

Reporting a problem

If you've encountered a bug, we're here to help. Before you begin, ensure you can reproduce the issue using a tool for testing APIs, such as Postman. To report the problem, please use the form provided below. Be sure to include detailed steps allowing us to reproduce the issue. However, do not include any credentials in your report.

Report a problem

Please do note that the API is provided as is based on this very documentation, there is no guided implementation or code support available.

Changelog

We will list any changes to the current version of the API here.

Date Details of changes
2024-02-14
  • Removed legacy API documentation.
2023-12-11
  • receiver_house_no marked as required for IBAN and QR payments on purchase outgoing payment endpoint.
2023-10-25
  • New optional payment street and payment house number fields added to purchase bill endpoints to allow storing of structured payment address.
2023-10-09
  • Change in create Purchase Order endpoint - contact_id has to be an integer.
2023-08-28
2023-08-02
  • Purchase scopes have been added to the API Scopes section
  • Required scopes have been updated for all relevant purchase endpoints (there is no change in the required scopes - only the documentation is updated with missing information).
2023-05-16
  • Updated guide to migrate clients away from the legacy API to cover all possible scenarios.
  • Announce 30.11.2023 as the shutdown date of the legacy API.
2023-04-25
2023-04-13
  • bill_id has been removed from the documentation for creating and updating QR and IBAN payments as it is unused
2023-01-31
  • Draft QR payments can be added to purchase bills in EUR currency
  • Outgoing QR payments can be created for purchase bills in EUR currency
2022-10-10
2022-09-21
  • Bill status update endpoint - validation rules for booking account updated.
  • Expense status update endpoint - validation rules for booking account updated.
2022-08-26
  • IS payment endpoints have been removed as only QR payments are valid after 30.09.2022
  • ISR payment endpoints have been removed as only QR payments are valid after 30.09.2022
  • ISR fields in bank account endpoints have been deprecated as only QR payments are valid after 30.09.2022
  • IS/ISR payment types have been removed from bill and outgoing payments endpoints as only QR payments are valid after 30.09.2022
2022-04-19
  • Fixed the language of the recipient’s country field in the sales documents.
2022-03-22
2022-03-08
  • Added new restore endpoint which allows to restore archived contacts.
  • Added new query parameter to show archived contacts for contact search, list and fetch.
2021-12-02
2021-10-18
  • Corrected the limit for all API endpoints (max limit is enforced to 2000).
  • Changed the default limit of GET requests to 500 (instead of 1000).
2021-07-23
  • Added the field ref_uuid to the report endpoint. This field is read only and can not be changed through the API.
2021-01-08
  • Added the field uuid to the project endpoints. This field is read only and can not be changed through the API.
2020-12-16
  • Adjusted the timesheet endpoints so that it includes the stopwatch information in the attribute tracking
2020-12-08
  • Added the section purchase that contains bills, expenses and purchase orders. Please note that Purchase APIs for Bills, Expenses and Outgoing Payments are available only for users already using the new purchase module https://www.bexio.com/en-CH/purchase.
  • Updated the files endpoints to include all attributes in the response
  • Added all search parameters to the Search files endpoint
  • Significantly improved the response time of all API endpoints. For some endpoints the average response time is reduced by up to 40%.
2020-11-02
  • The documentation for creating a purchase order was updated because the sample payload and response of the request were wrong
2020-09-24
2020-09-21
  • Added new endpoint List document templates to retrieve the list of document templates
  • Added the field template_slug to the Quotes, Orders and Invoices endpoints
  • The field logopaper_id used in above mentioned endpoints has been deprecated in favor of the new field template_slug
2020-09-09
2020-07-07
2020-07-07
2020-06-30
2020-06-25
2020-06-10
2020-06-04
2020-05-28
2020-04-20
  • Added 201 response for the endpoint Create IS payment to the documentation.
  • Changed the name of the parameter unique_id to instruction_id in the documentation for all IS payment endpoints (was always returned as instruction_id through the API).
2020-04-16
  • Added the section API Tokens that details how server-to-server connections without the consent flow can be established.
2020-03-31
  • A more detailed description explaining how to retrieve all valid sales taxes from the API has been added to the tax_id parameter for line items on quotes, orders and invoices.
2020-02-20
  • Fixed 404 access errors for the Accounts and Account Groups endpoints
  • Fixed 404 access errors on a handful of POST requests (e.g. edit contact, edit invoice, edit project, etc.)
  • Fixed issue within the creation of projects when the value of the field pr_budget_type_amount was not saved when the field pr_budget_type_id was set to the value of 1
2020-02-05
  • Fixed access issues to PDF endpoints for quotes, orders and invoices
  • Added the info that the field bill_id can not be used for all create payment endpoints
2019-12-16 First version published

Authentication

OpenID Connect

OpenID Connect 1.0 is a simple identity layer on top of the OAuth 2.0 protocol. It allows Clients to verify the identity of the End-User based on the authentication performed by an Authorization Server, as well as to obtain basic profile information about the End-User in an interoperable and REST-like manner.

Key Value
OpenID Configuration URL https://idp.bexio.com/.well-known/openid-configuration
Authorization endpoint https://idp.bexio.com/authorize
Token endpoint https://idp.bexio.com/token
Userinfo endpoint https://idp.bexio.com/userinfo
JWK endpoint https://idp.bexio.com/jwk

API Scopes

Scope is a mechanism in OAuth 2.0 / OpenID Connect to limit an application's access to a user's account. An application can request one or more scopes, this information is then presented to the user in the consent screen, and the access token issued to the application will be limited to the scopes granted.

Please only request the scopes that you need for your application. You are allowed to request multiple scopes per request. Multiple scopes have to be separated by a whitespace. As an example, write access to quotes and invoices can be requested with the following scopes: kb_offer_edit kb_invoice_edit.

Read access is granted automatically when a write scope is requested for a resource. This means that by requesting the scope contact_edit the scope contact_show is not needed in order to get read access to contacts.

The scope offline_access is required to obtain a refresh token to keep the api connection alive.

Scope Description
accounting Write access to accounting data
article_show Read access to items / products
article_edit Write access to items / products
bank_account_show Show bank accounts
bank_payment_show Show bank payments
bank_payment_edit Show and edit bank payments
contact_show Read access to contacts
contact_edit Write access to contacts
email Read access to the email address of the signed in user
file Read and write access to the inbox (file upload)
kb_invoice_show Read access to invoices
kb_invoice_edit Write access to invoices
kb_offer_show Read access to quotes
kb_offer_edit Write access to quotes
kb_order_show Read access to orders
kb_order_edit Write access to orders
monitoring_show Read access to timesheets
monitoring_edit Write access to timesheets
note_show Read access to contact notes
note_edit Write access to contact notes
offline_access Offline access. This scope is needed to obtain a refresh token.
openid Standard OpenID Connect (OIDC) scope. Required to indicate that the application intends to use OIDC to verify the user's identity
kb_article_order_show Read access to purchase orders
kb_article_order_edit Write access to purchase orders
profile Read access to the user's name
project_show Read access to projects
project_edit Write access to projects
stock_edit Write access to item stock
task_show Read access to tasks
task_edit Write access to tasks
kb_bill_show Read access to supplier bills
kb_expense_show Read access to Purchase Expenses

Authorization Code Flow

bexio supports the "Authorization Code Grant" as defined in OAuth 2.0 RFC 6749, section 4.1 to obtain an Access Token. Your app must be server-side because during this exchange, you must also pass along your application's Client Secret, which must always be kept secure, and you will have to store it in your client.

How it works

UserWeb Appbexio OpenID Connectbexio API1. Click on "connect with bexio" link2. Authorization Code Request to / authorize3. Redirect to login screen4. Sign in and give consent5. Return authorization code6. Token request7. Validate  token request8. Return Access & ID token9. Access bexio API with Access Token10. Response

  1. The user clicks Login within the regular web application.
  2. The web application redirects the user to the /authorize endpoint of the bexio OpenID Connect service.
  3. The bexio OpenID Connect Service displays the login page.
  4. The user authenticates and sees a consent page listing the permissions bexio will give to the web application.
  5. The user is redirected back to the web application with an Authorization Code.
  6. The web application sends this code to the bexio OpenID Connect service (/token endpoint) along with the application's Client ID and Client Secret.
  7. bexio verifies the code, Client ID, and Client Secret.
  8. An ID Token and Access Token (and optionally, a Refresh Token) is returned to the web application.
  9. The web application uses the Access Token to call the bexio API.
  10. The bexio API responds with requested data.

Code example (PHP)

The following example showcases the usage of OpenID Connect (PHP example uses the OpenID-Connect-PHP library). The library uses OpenID Connect Discovery to automatically configure the application.

<?php
require __DIR__ . '/vendor/autoload.php';
use Jumbojett\OpenIDConnectClient;

$oidc = new OpenIDConnectClient("https://idp.bexio.com", "client_id", "client_secret");
$oidc->setRedirectURL("https://www.example.com/oidc_callback");
$oidc->addScope(array("openid", "profile", "contact_show", "offline_access"));
$oidc->authenticate();

echo $oidc->getAccessToken();

The consent screen shown to the user will look like this:

Refresh Token Flow

Web Appbexio OpenID Connectbexio API1. Exchange Refresh Token for Access Token2. New Access Token3. API Request with the new Access Token4. Response

The scope offline_access is required to obtain a refresh token to keep the api connection alive.

  1. POST a request to the endpoint “/token”. Make sure you use the grant type “refresh_token”. This is implemented according to the standards of OAuth 2.0 RFC 6749
  2. The response contains a new access token. Please note that the requested scopes do not change when refreshing a token. Acquiring new scopes is only possible by going through the initial authorization process again.
  3. The new access token can be used to authorize requests and execute API requests
  4. The bexio API responds with the requested data.

Redirect URL(s)

Redirect URLs are a critical part of the OAuth flow. After a user successfully authorizes an application, the authorization server will redirect the user back to the application with either an authorization code or access token in the URL. Because the redirect URL will contain sensitive information, it is critical that the service doesn’t redirect the user to arbitrary locations.

The best way to ensure the user will only be directed to appropriate locations is to require the developer to register one or more redirect URLs when they create the application.

Source https://www.oauth.com/oauth2-servers/redirect-uris/

The new bexio API platform requires to define redirect URLs during the app registration in the developer portal. Unknown URLs will not be accepted during the Authorization and the user will receive an error message.

Up to 10 different redirect URLs can be defined for an app, e.g. to support multiple test environments and mobile apps with custom schemes

JWT (JSON Web Tokens)

In its compact form, JSON Web Tokens consist of three parts separated by dots (.), which are:

  • Header
  • Payload
  • Signature

Therefore, a JWT typically looks like the following: xxxxx.yyyyy.zzzzz

JWT Payload

A typical access token (JWT) looks like the following:

{
  "sub": "peter.smith@bexio.com", #the email address of the user
  "login_id": "620603d3-4221-46e5-a109-47b492e691b8", #this is a unique user identifier (format UUID)
  "company_id": "4ubk32lc2ss0", #this is a unique company identifier
  "azp": "8ad0e25d-1e8d-47c1-8613-8a28a9bee452", #this is the client ID of the app (format UUID)
  "scope": "openid contact_edit offline_access", #the requested scope
  "iss": "https://idp.bexio.com", #the issuer of the token
  "exp": 1574882663, #the expiration date of the token
  "iat": 1574868263, #the date on which the token was issued
  "user_id": 7295, #legacy user id, please use the uuid in the field "login_id"
  "company_user_id": 1, #legacy user id, please use the uuid in the field "login_id"
  "jti": "5ffe7bfc-cdd0-4c19-8e28-361891546045" #unique identifier for the JWT
}

As a user can be part of multiple companies (bexio accounts), using the login_id to identify the user is not enough. A combination of the fields company_id and login_id can be used to uniquely identify a user that belongs to a bexio account.

As an example, the user Peter Smith (login_id 620603d3-4221-46e5-a109-47b492e691b8) belongs to the companies "Peter Smith Photography" (company_id 4ubk32lc2ss0) and "Peter Smith Video Productions" (company_id zk34nc55bc4f).

API Tokens

API Tokens are a simplified method of acquiring an access token, for those use cases where the OAuth flow will not work. Good examples of those are scripts running periodically in the background or development phase of any integration with bexio API.

Using an API Token is the easiest way to gain access to your own bexio data or that of a client of yours. The token is a unique code that grants access to the data and you need to manage these integrations on an individual basis. Personal API Tokens can be created by super admin users directly in bexio by visiting https://office.bexio.com/index.php/admin/apiTokens. The scope of access of the token is determined by the scope of the super admin’s access that creates the token. The token is valid almost indefinitely with a set validity period of 50 years.

To use a Personal API Token to authorise a request, it must be added to the Authorization header of every request:

Authorization: Bearer eyJraWQiOiI2ZGM2YmJlOC1iMjZjLTExZTgtOGUwZC0w...

API basics

API routes

Each API endpoint is available on our API host https://api.bexio.com.

Endpoints are usually defined with a relative path, as seen in the following example:

Each relative path must be combined with the API platform URL. For the example this would result in the endpoint https://api.bexio.com/2.0/contact

HTTP Verbs

Where possible, bexio tries to use the appropriate HTTP verb for its operations

Verb Description
GET Used for retrieving resources
POST Used for creating resources
PATCH Used for updating resources with partial data
PUT Used for updating resources with full data
DELETE Used for deleting resources. Please note that delete actions permanently delete resources. It cannot be undone.

HTTP Headers

HTTP headers let the client and the server pass additional information with an HTTP request or response. An HTTP header consists of its case-insensitive name followed by a colon (:), then by its value.

Request Headers

The following headers must be used for every request:

  • Accept: application/json
  • Authorization: Bearer <token>

Additionally, the header Content-Length: <length> must be specified for requests with a payload.

Response Headers

The API will always indicate the return type with a Content-Type header. Normally the header value is set to application/json, but can vary (e.g. for PDF exports).

Response Codes Actions and errors yield different HTTP response codes. Please have a look at the expected response codes in the following list:

Code Description
200 Request OK
201 New resource created
304 The resource has not been changed
400 The request parameters are invalid
401 The bearer token or the provided api key is invalid
403 You do not possess the required rights to access this resource
404 The resource could not be found / is unknown
411 Length Required
415 The data could not be processed or the accept header is invalid
422 Could not save the entity
429 Too many requests
500 An unexpected condition was encountered
503 The server is not available (maintenance work)

Errors

Error responses contain an HTTP status code and a JSON response body that is structured as follows:

{
    "error_code": 404,
    "message": "Page not found"
}

Search

Some older endpoints implement search methods. Searching for these endpoint works by sending a POST request to the resource (e.g.: POST /contact/search or POST /country/search). The search parameters must be provided in the body of the POST request.

Please have a look at the resource documentation to see a list of available search parameters.

Criterias

You can use different criterias for the search. The criteria “like” will be used by default if you do not define a criteria.

Criteria Description
= Exact match
equal Exact match (synonyme for =)
!= Not equal
not_equal Not equal (synonyme for !=)
> Greather than
greater_than Greather than (synonyme for >)
< Less than
less_than Less than (synonyme for <)
>= Greater or equal then
greater_equal Greater or equal then (synonyme for >=)
<= Lesser or equal then
less_equal Lesser or equal then (synonyme for <=)
like Partial match
not_like Does not partial match
is_null Value is NULL
not_null Value is not NULL
in Having multiple results which matche, value must be an array e.g. [1, 2]
not_in Having multiple results which do not match, value must be an array e.g. [1, 2]

Code example (PHP)

The following example shows how the search for the contacts API can be used. The last name of the contact must be “Meyer” and the contact number must be greater than 10.

Define the search array

$data = array(
  array(
    'field' => 'name_1',
    'value' => 'Meyer',
    'criteria' => '=',
  ),
  array(
    'field' => 'nr',
    'value' => 10,
    'criteria' => '>',
  ),
);

Transform the array to JSON

json_encode($data);

POST-Body for the search

[
  {
    "field" : "name_1",
    "value" : "Meyer",
    "criteria" : "="
  },
  {
    "field" : "nr",
    "value" : 10,
    "criteria" : ">"
  }
]

Rate Limiting

The bexio API enforces a rate limit that limits the number of requests a company can make per minute.

If this limit is reached, the API will return a 429 status code to the client.

HTTP Headers

The table below describes the relevant headers regarding the API rate-limit.

Header Description
RateLimit-Limit The current limit for this time period.
RateLimit-Remaining The remaining amount of requests allowed for this time period.
RateLimit-Reset The remaining time until the next time period starts (seconds).

FAQ

Is an OpenAPI (Swagger) definition available?

No, we currently do not provide an OpenAPI definition but we have plans to put it online.

Why is «insert business process here» not available as an API endpoint?

We are continously working on a product that makes our customers more successful. Unfortunately we are not able to support every use case via API yet. Please let us know what endpoints/use cases you are missing by submitting the API Platform Survey

Contacts

Fetch a list of contacts

This action fetches a list of all contacts

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "nr" "name_1" "updated_at"
Example: order_by=name_1

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

show_archived
boolean
Default: false
Example: show_archived=true

Show archived elements only

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/contact \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create contact

This action creates a new contact

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
contact_type_id
required
integer

Please use the value 1 for companies or 2 for persons

name_1
required
string

This field is used as the company name if the field contact_type_id is set to 1. Otherwise, the field is used as the last name of the person

name_2
string or null

This field is used as the company addition if the field contact_type_id is set to 1. Otherwise, the field is used as the first name of the person

salutation_id
integer or null

References a salutation object

salutation_form
integer or null
titel_id
integer or null

References a title object

birthday
string or null <date>
address
string or null
postcode
string or null
city
string or null
country_id
integer or null

References a country object

mail
string or null <email>
mail_second
string or null <email>
phone_fixed
string or null
phone_fixed_second
string or null
phone_mobile
string or null
fax
string or null
url
string or null
skype_name
string or null
remarks
string or null
language_id
integer or null

References a language object

contact_group_ids
string or null

References one ore multiple contact group objects

contact_branch_ids
string or null

References one ore multiple contact sector objects

user_id
required
integer

References a user object

owner_id
required
integer

Responses

Request samples

Content type
application/json
{
  • "contact_type_id": 1,
  • "name_1": "Example Company",
  • "name_2": null,
  • "salutation_id": 2,
  • "salutation_form": null,
  • "titel_id": null,
  • "birthday": null,
  • "address": "Smith Street 22",
  • "postcode": 8004,
  • "city": "Zurich",
  • "country_id": 1,
  • "mail": "contact@example.org",
  • "mail_second": "",
  • "phone_fixed": "",
  • "phone_fixed_second": "",
  • "phone_mobile": "",
  • "fax": "",
  • "url": "",
  • "skype_name": "",
  • "remarks": "",
  • "language_id": null,
  • "contact_group_ids": "1,2",
  • "contact_branch_ids": null,
  • "user_id": 1,
  • "owner_id": 1
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "nr": "000001",
  • "contact_type_id": 1,
  • "name_1": "Example Company",
  • "name_2": null,
  • "salutation_id": 2,
  • "salutation_form": null,
  • "title_id": null,
  • "birthday": null,
  • "address": "Smith Street 22",
  • "postcode": 8004,
  • "city": "Zurich",
  • "country_id": 1,
  • "mail": "contact@example.org",
  • "mail_second": "",
  • "phone_fixed": "",
  • "phone_fixed_second": "",
  • "phone_mobile": "",
  • "fax": "",
  • "url": "",
  • "skype_name": "",
  • "remarks": "",
  • "language_id": null,
  • "is_lead": false,
  • "contact_group_ids": "1,2",
  • "contact_branch_ids": null,
  • "user_id": 1,
  • "owner_id": 1,
  • "updated_at": "2019-04-08 13:17:32",
  • "profile_image": "R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="
}

Search contacts

Search contacts via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • id
  • name_1
  • name_2
  • nr
  • address
  • mail
  • mail_second
  • postcode
  • city
  • country_id
  • contact_group_ids
  • contact_type_id
  • updated_at
  • user_id
  • phone_fixed
  • phone_mobile
  • fax
Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "nr" "name_1" "updated_at"
Example: order_by=name_1

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

show_archived
boolean
Default: false
Example: show_archived=true

Show archived elements only

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a contact

This action fetches a single contact

Authorizations:
bearerAuth
path Parameters
contact_id
required
integer <int32>
Example: 1

the id of the contact

query Parameters
show_archived
boolean
Default: false
Example: show_archived=true

Show archived elements only

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/contact/{contact_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 4,
  • "nr": "000001",
  • "contact_type_id": 1,
  • "name_1": "Example Company",
  • "name_2": null,
  • "salutation_id": 2,
  • "salutation_form": null,
  • "title_id": null,
  • "birthday": null,
  • "address": "Smith Street 22",
  • "postcode": 8004,
  • "city": "Zurich",
  • "country_id": 1,
  • "mail": "contact@example.org",
  • "mail_second": "",
  • "phone_fixed": "",
  • "phone_fixed_second": "",
  • "phone_mobile": "",
  • "fax": "",
  • "url": "",
  • "skype_name": "",
  • "remarks": "",
  • "language_id": null,
  • "is_lead": false,
  • "contact_group_ids": "1,2",
  • "contact_branch_ids": null,
  • "user_id": 1,
  • "owner_id": 1,
  • "updated_at": "2019-04-08 13:17:32",
  • "profile_image": "R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="
}

Edit a contact

This action edits a single contact

Authorizations:
bearerAuth
path Parameters
contact_id
required
integer <int32>
Example: 1

the id of the contact

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
contact_type_id
required
integer

Please use the value 1 for companies or 2 for persons

name_1
required
string

This field is used as the company name if the field contact_type_id is set to 1. Otherwise, the field is used as the last name of the person

name_2
string or null

This field is used as the company addition if the field contact_type_id is set to 1. Otherwise, the field is used as the first name of the person

salutation_id
integer or null

References a salutation object

salutation_form
integer or null
titel_id
integer or null

References a title object

birthday
string or null <date>
address
string or null
postcode
string or null
city
string or null
country_id
integer or null

References a country object

mail
string or null <email>
mail_second
string or null <email>
phone_fixed
string or null
phone_fixed_second
string or null
phone_mobile
string or null
fax
string or null
url
string or null
skype_name
string or null
remarks
string or null
language_id
integer or null

References a language object

contact_group_ids
string or null

References one ore multiple contact group objects

contact_branch_ids
string or null

References one ore multiple contact sector objects

user_id
required
integer

References a user object

owner_id
required
integer

Responses

Request samples

Content type
application/json
{
  • "contact_type_id": 1,
  • "name_1": "Example Company",
  • "name_2": null,
  • "salutation_id": 2,
  • "salutation_form": null,
  • "titel_id": null,
  • "birthday": null,
  • "address": "Smith Street 22",
  • "postcode": 8004,
  • "city": "Zurich",
  • "country_id": 1,
  • "mail": "contact@example.org",
  • "mail_second": "",
  • "phone_fixed": "",
  • "phone_fixed_second": "",
  • "phone_mobile": "",
  • "fax": "",
  • "url": "",
  • "skype_name": "",
  • "remarks": "",
  • "language_id": null,
  • "contact_group_ids": "1,2",
  • "contact_branch_ids": null,
  • "user_id": 1,
  • "owner_id": 1
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "nr": "000001",
  • "contact_type_id": 1,
  • "name_1": "Example Company",
  • "name_2": null,
  • "salutation_id": 2,
  • "salutation_form": null,
  • "title_id": null,
  • "birthday": null,
  • "address": "Smith Street 22",
  • "postcode": 8004,
  • "city": "Zurich",
  • "country_id": 1,
  • "mail": "contact@example.org",
  • "mail_second": "",
  • "phone_fixed": "",
  • "phone_fixed_second": "",
  • "phone_mobile": "",
  • "fax": "",
  • "url": "",
  • "skype_name": "",
  • "remarks": "",
  • "language_id": null,
  • "is_lead": false,
  • "contact_group_ids": "1,2",
  • "contact_branch_ids": null,
  • "user_id": 1,
  • "owner_id": 1,
  • "updated_at": "2019-04-08 13:17:32",
  • "profile_image": "R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="
}

Delete a contact

This action deletes a contact. Please note that a contact is marked as deleted and can still be accessed by using the "show deleted contacts" filter.

Authorizations:
bearerAuth
path Parameters
contact_id
required
integer <int32>
Example: 1

the id of the contact

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/contact/{contact_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Bulk create contacts

This action creates multiple contacts in one request

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
Array
contact_type_id
required
integer

Please use the value 1 for companies or 2 for persons

name_1
required
string

This field is used as the company name if the field contact_type_id is set to 1. Otherwise, the field is used as the last name of the person

name_2
string or null

This field is used as the company addition if the field contact_type_id is set to 1. Otherwise, the field is used as the first name of the person

salutation_id
integer or null

References a salutation object

salutation_form
integer or null
titel_id
integer or null

References a title object

birthday
string or null <date>
address
string or null
postcode
string or null
city
string or null
country_id
integer or null

References a country object

mail
string or null <email>
mail_second
string or null <email>
phone_fixed
string or null
phone_fixed_second
string or null
phone_mobile
string or null
fax
string or null
url
string or null
skype_name
string or null
remarks
string or null
language_id
integer or null

References a language object

contact_group_ids
string or null

References one ore multiple contact group objects

contact_branch_ids
string or null

References one ore multiple contact sector objects

user_id
required
integer

References a user object

owner_id
required
integer

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Restore a contact

This action restores an archived contact.

Authorizations:
bearerAuth
path Parameters
contact_id
required
integer <int32>
Example: 1

the id of the contact

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X PATCH \
  https://api.bexio.com/2.0/contact/{contact_id}/restore \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Contact Relations

Fetch a list of contact relations

This action fetches a list of all contact relations

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "contact_id" "contact_sub_id" "updated_at"
Example: order_by=contact_id

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/contact_relation \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create contact relation

This action creates a new contact relation

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
contact_id
required
integer or null

References a contact object

contact_sub_id
required
integer or null

References a contact object

description
string or null

Responses

Request samples

Content type
application/json
{
  • "contact_id": 2,
  • "contact_sub_id": 3,
  • "description": ""
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "nr": "000001",
  • "contact_type_id": 1,
  • "name_1": "Example Company",
  • "name_2": null,
  • "salutation_id": 2,
  • "salutation_form": null,
  • "title_id": null,
  • "birthday": null,
  • "address": "Smith Street 22",
  • "postcode": 8004,
  • "city": "Zurich",
  • "country_id": 1,
  • "mail": "contact@example.org",
  • "mail_second": "",
  • "phone_fixed": "",
  • "phone_fixed_second": "",
  • "phone_mobile": "",
  • "fax": "",
  • "url": "",
  • "skype_name": "",
  • "remarks": "",
  • "language_id": null,
  • "is_lead": false,
  • "contact_group_ids": "1,2",
  • "contact_branch_ids": null,
  • "user_id": 1,
  • "owner_id": 1,
  • "updated_at": "2019-04-08 13:17:32",
  • "profile_image": "R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="
}

Search contact relations

Search contact relations via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • contact_id
  • contact_sub_id
  • updated_at
Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "contact_id" "contact_sub_id" "updated_at"
Example: order_by=contact_id

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a contact relation

This action fetches a single contact relation

Authorizations:
bearerAuth
path Parameters
contact_relation_id
required
integer <int32>
Example: 1

the id of the contact relation

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/contact_relation/{contact_relation_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "contact_id": 2,
  • "contact_sub_id": 3,
  • "description": "",
  • "updated_at": "2019-04-08 13:17:32"
}

Edit a contact relation

This action edits a single contact relation

Authorizations:
bearerAuth
path Parameters
contact_relation_id
required
integer <int32>
Example: 1

the id of the contact relation

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
contact_id
required
integer or null

References a contact object

contact_sub_id
required
integer or null

References a contact object

description
string or null

Responses

Request samples

Content type
application/json
{
  • "contact_id": 2,
  • "contact_sub_id": 3,
  • "description": ""
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "contact_id": 2,
  • "contact_sub_id": 3,
  • "description": "",
  • "updated_at": "2019-04-08 13:17:32"
}

Delete a contact relation

This action permanently deletes a contact relation. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
contact_relation_id
required
integer <int32>
Example: 1

the id of the contact relation

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/contact_relation/{contact_relation_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Contact Groups

Fetch a list of contact groups

This action fetches a list of all contact groups

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/contact_group \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create contact group

This action creates a new contact group

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
name
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "Suppliers"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Suppliers"
}

Search contact groups

Search contact groups via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • name
Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a contact group

This action fetches a single contact group

Authorizations:
bearerAuth
path Parameters
contact_group_id
required
integer <int32>
Example: 1

the id of the contact group

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/contact_group/{contact_group_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Suppliers"
}

Edit a contact group

This action edits a single contact group

Authorizations:
bearerAuth
path Parameters
contact_group_id
required
integer <int32>
Example: 1

the id of the contact group

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
name
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "Suppliers"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Suppliers"
}

Delete a contact group

This action permanently deletes a contact group. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
contact_group_id
required
integer <int32>
Example: 1

the id of the contact group

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/contact_group/{contact_group_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Contact Sectors

Fetch a list of contact sectors

This action fetches a list of all contact sectors

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/contact_branch \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Search contact sectors

Search contact sectors via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • name
Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Additional Addresses

Fetch a list of additional addresses

This action fetches a list of all additional addresses for a given contact

Authorizations:
bearerAuth
path Parameters
contact_id
required
integer <int32>
Example: 1

the id of the contact

query Parameters
order_by
string
Default: "id"
Enum: "id" "name" "postcode" "country_id"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/contact/{contact_id}/additional_address \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create additional address

This action creates a new additional address

Authorizations:
bearerAuth
path Parameters
contact_id
required
integer <int32>
Example: 1

the id of the contact

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
name
string
address
string or null
postcode
string or null
city
string or null
country_id
integer or null

References a country object

subject
string
description
string

Responses

Request samples

Content type
application/json
{
  • "name": "My new address",
  • "address": "Walter Street 22",
  • "postcode": 9000,
  • "city": "St. Gallen",
  • "country_id": 1,
  • "subject": "Additional address",
  • "description": "This is an internal description"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "My new address",
  • "address": "Walter Street 22",
  • "postcode": 9000,
  • "city": "St. Gallen",
  • "country_id": 1,
  • "subject": "Additional address",
  • "description": "This is an internal description"
}

Search additional addresses

Search additional addresses via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • name
  • address
  • postcode
  • city
  • country_id
  • subject
  • email
Authorizations:
bearerAuth
path Parameters
contact_id
required
integer <int32>
Example: 1

the id of the contact

query Parameters
order_by
string
Default: "id"
Enum: "id" "name" "postcode" "country_id"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Fetch an additional address

This action fetches an additional address for a given contact

Authorizations:
bearerAuth
path Parameters
contact_id
required
integer <int32>
Example: 1

the id of the contact

additional_address_id
required
integer <int32>
Example: 1

the id of the additional address

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/contact/{contact_id}/additional_address/{additional_address_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "My new address",
  • "address": "Walter Street 22",
  • "postcode": 9000,
  • "city": "St. Gallen",
  • "country_id": 1,
  • "subject": "Additional address",
  • "description": "This is an internal description"
}

Edit an additional address

This action edits an additional address

Authorizations:
bearerAuth
path Parameters
contact_id
required
integer <int32>
Example: 1

the id of the contact

additional_address_id
required
integer <int32>
Example: 1

the id of the additional address

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
name
string
address
string or null
postcode
string or null
city
string or null
country_id
integer or null

References a country object

subject
string
description
string

Responses

Request samples

Content type
application/json
{
  • "name": "My new address",
  • "address": "Walter Street 22",
  • "postcode": 9000,
  • "city": "St. Gallen",
  • "country_id": 1,
  • "subject": "Additional address",
  • "description": "This is an internal description"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "My new address",
  • "address": "Walter Street 22",
  • "postcode": 9000,
  • "city": "St. Gallen",
  • "country_id": 1,
  • "subject": "Additional address",
  • "description": "This is an internal description"
}

Delete an additional address

This action permanently deletes an additional address. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
contact_id
required
integer <int32>
Example: 1

the id of the contact

additional_address_id
required
integer <int32>
Example: 1

the id of the additional address

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/contact/{contact_id}/additional_address/{additional_address_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Salutations

Fetch a list of salutations

This action fetches a list of all salutations

Authorizations:
bearerAuth
query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/salutation \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create salutation

This action creates a new salutation

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
name
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "Herr"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Herr"
}

Search salutations

Search salutations via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • name
Authorizations:
bearerAuth
query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a salutation

This action fetches a single salutation

Authorizations:
bearerAuth
path Parameters
salutation_id
required
integer <int32>
Example: 1

the id of the salutation

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/salutation/{salutation_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Herr"
}

Edit a salutation

This action edits a single salutation

Authorizations:
bearerAuth
path Parameters
salutation_id
required
integer <int32>
Example: 1

the id of the salutation

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
name
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "Herr"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Herr"
}

Delete a salutation

This action permanently deletes a salutation. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
salutation_id
required
integer <int32>
Example: 1

the id of the salutation

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/salutation/{salutation_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Titles

Fetch a list of titles

This action fetches a list of all titles

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/title \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create title

This action creates a new title

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
name
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "Dr."
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Dr."
}

Search titles

Search titles via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • name
Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a title

This action fetches a single title

Authorizations:
bearerAuth
path Parameters
title_id
required
integer <int32>
Example: 1

the id of the title

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/title/{title_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Dr."
}

Edit a title

This action edits a single title

Authorizations:
bearerAuth
path Parameters
title_id
required
integer <int32>
Example: 1

the id of the title

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
name
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "Dr."
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Dr."
}

Delete a title

This action permanently deletes a title. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
title_id
required
integer <int32>
Example: 1

the id of the title

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/title/{title_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Quotes

Fetch a list of quotes

This action fetches a list of all quotes

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "total" "total_net" "total_gross" "updated_at"
Example: order_by=total

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/kb_offer \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create quote

This action creates a new quote

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
title
string or null
contact_id
integer or null

References a contact object

contact_sub_id
integer or null

References a contact object

user_id
integer

References a user object

pr_project_id
integer or null

References a project object

logopaper_id
integer
Deprecated
language_id
integer

References a language object

bank_account_id
integer

References a bank account object

currency_id
integer

References a currency object

payment_type_id
integer

References a payment type object

header
string
footer
string
mwst_type
integer
Enum: 0 1 2
value description
0 including taxes
1 excluding taxes
2 exempt from taxes
mwst_is_net
boolean

This value affects the total if the field mwst_type has been set to 0.
false = Taxes are included in the total
true = Taxes will be added to the total

show_position_taxes
boolean
is_valid_from
string <date>
is_valid_until
string <date>
delivery_address_type
integer
api_reference
string or null

This field can only be read and edited by the api. It can be used to save references to other systems.

viewed_by_client_at
string or null
kb_terms_of_payment_template_id
integer or null
template_slug
string or null
Array of PositionCustomExtended (object) or PositionArticleExtended (object) or PositionTextExtended (object) or PositionSubtotalExtended (object) or PositionPagebreakExtended (object) or PositionDiscountExtended (object)

Please note that you can combine multiple positions. This means that an array containing KbPositionCustom and KbPositionArticle positions is valid.

Responses

Request samples

Content type
application/json
{
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "pr_project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "is_valid_until": "2019-07-24",
  • "delivery_address_type": 0,
  • "api_reference": null,
  • "viewed_by_client_at": null,
  • "kb_terms_of_payment_template_id": null,
  • "template_slug": "581a8010821e01426b8b456b",
  • "positions": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "document_nr": "AN-00001",
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "total_gross": "17.800000",
  • "total_net": "17.800000",
  • "total_taxes": "1.3706",
  • "total": "19.150000",
  • "total_rounding_difference": -0.02,
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "is_valid_until": "2019-07-24",
  • "contact_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "delivery_address_type": 0,
  • "delivery_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "kb_item_status_id": 3,
  • "api_reference": null,
  • "viewed_by_client_at": null,
  • "kb_terms_of_payment_template_id": null,
  • "show_total": true,
  • "updated_at": "2019-04-08 13:17:32",
  • "template_slug": "581a8010821e01426b8b456b",
  • "taxs": [
    ],
  • "network_link": "",
  • "positions": [
    ]
}

Search quotes

Search quotes via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • id
  • kb_item_status_id
  • document_nr
  • title
  • contact_id
  • contact_sub_id
  • user_id
  • currency_id
  • total_gross
  • total_net
  • total
  • is_valid_from
  • is_valid_to
  • is_valid_until
  • updated_at
Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "total" "total_net" "total_gross" "updated_at"
Example: order_by=total

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a quote

This action fetches a single quote

Authorizations:
bearerAuth
path Parameters
quote_id
required
integer <int32>
Example: 1

the id of the quote

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/kb_offer/{quote_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 4,
  • "document_nr": "AN-00001",
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "total_gross": "17.800000",
  • "total_net": "17.800000",
  • "total_taxes": "1.3706",
  • "total": "19.150000",
  • "total_rounding_difference": -0.02,
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "is_valid_until": "2019-07-24",
  • "contact_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "delivery_address_type": 0,
  • "delivery_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "kb_item_status_id": 3,
  • "api_reference": null,
  • "viewed_by_client_at": null,
  • "kb_terms_of_payment_template_id": null,
  • "show_total": true,
  • "updated_at": "2019-04-08 13:17:32",
  • "template_slug": "581a8010821e01426b8b456b",
  • "taxs": [
    ],
  • "network_link": "",
  • "positions": [
    ]
}

Edit a quote

This action edits a single quote

Authorizations:
bearerAuth
path Parameters
quote_id
required
integer <int32>
Example: 1

the id of the quote

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
title
string or null
contact_id
integer or null

References a contact object

contact_sub_id
integer or null

References a contact object

user_id
integer

References a user object

pr_project_id
integer or null

References a project object

logopaper_id
integer
Deprecated
language_id
integer

References a language object

bank_account_id
integer

References a bank account object

currency_id
integer

References a currency object

payment_type_id
integer

References a payment type object

header
string
footer
string
mwst_type
integer
Enum: 0 1 2
value description
0 including taxes
1 excluding taxes
2 exempt from taxes
mwst_is_net
boolean

This value affects the total if the field mwst_type has been set to 0.
false = Taxes are included in the total
true = Taxes will be added to the total

show_position_taxes
boolean
is_valid_from
string <date>
is_valid_until
string <date>
delivery_address_type
integer
api_reference
string or null

This field can only be read and edited by the api. It can be used to save references to other systems.

viewed_by_client_at
string or null
kb_terms_of_payment_template_id
integer or null
template_slug
string or null

Responses

Request samples

Content type
application/json
{
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "pr_project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "is_valid_until": "2019-07-24",
  • "delivery_address_type": 0,
  • "api_reference": null,
  • "viewed_by_client_at": null,
  • "kb_terms_of_payment_template_id": null,
  • "template_slug": "581a8010821e01426b8b456b"
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "document_nr": "AN-00001",
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "total_gross": "17.800000",
  • "total_net": "17.800000",
  • "total_taxes": "1.3706",
  • "total": "19.150000",
  • "total_rounding_difference": -0.02,
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "is_valid_until": "2019-07-24",
  • "contact_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "delivery_address_type": 0,
  • "delivery_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "kb_item_status_id": 3,
  • "api_reference": null,
  • "viewed_by_client_at": null,
  • "kb_terms_of_payment_template_id": null,
  • "show_total": true,
  • "updated_at": "2019-04-08 13:17:32",
  • "template_slug": "581a8010821e01426b8b456b",
  • "taxs": [
    ],
  • "network_link": "",
  • "positions": [
    ]
}

Delete a quote

This action permanently deletes a quote. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
quote_id
required
integer <int32>
Example: 1

the id of the quote

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/kb_offer/{quote_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Issue a quote

This action issues a quote. The quote must be in the draft status.

Authorizations:
bearerAuth
path Parameters
quote_id
required
integer <int32>
Example: 1

the id of the quote

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X POST \
  https://api.bexio.com/2.0/kb_offer/{quote_id}/issue \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Revert issue a quote

This action reverts a quote to the draft status

Authorizations:
bearerAuth
path Parameters
quote_id
required
integer <int32>
Example: 1

the id of the quote

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X POST \
  https://api.bexio.com/2.0/kb_offer/{quote_id}/revertIssue \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Accept a quote

This action accepts a quote. The value kb_item_status_id must be 2 in this case.

Authorizations:
bearerAuth
path Parameters
quote_id
required
integer <int32>
Example: 1

the id of the quote

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X POST \
  https://api.bexio.com/2.0/kb_offer/{quote_id}/accept \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Decline a quote

This action declines a quote. The value kb_item_status_id must be 2 in this case.

Authorizations:
bearerAuth
path Parameters
quote_id
required
integer <int32>
Example: 1

the id of the quote

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X POST \
  https://api.bexio.com/2.0/kb_offer/{quote_id}/reject \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Reissue a quote

This action re-issues a quote. Meaning the status is changed to pending from either accepted or declined.

Authorizations:
bearerAuth
path Parameters
quote_id
required
integer <int32>
Example: 1

the id of the quote

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X POST \
  https://api.bexio.com/2.0/kb_offer/{quote_id}/reissue \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Mark quote as sent

This action marks a quote as sent

Authorizations:
bearerAuth
path Parameters
quote_id
required
integer <int32>
Example: 1

the id of the quote

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X POST \
  https://api.bexio.com/2.0/kb_offer/{quote_id}/mark_as_sent \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Show PDF

This action returns a pdf document of the quote.

Authorizations:
bearerAuth
path Parameters
quote_id
required
integer <int32>
Example: 1

the id of the quote

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/kb_offer/{quote_id}/pdf \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "name": "document-00005.pdf",
  • "size": 9768,
  • "mime": "application/pdf",
  • "content": "R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="
}

Send a quote

This action sends a quote by email.

Authorizations:
bearerAuth
path Parameters
quote_id
required
integer <int32>
Example: 1

the id of the quote

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
recipient_email
required
string <email>

During the trial period, the recipient is limited to the email address associated to the access token provided.

subject
required
string
message
required
string

The placeholder "[Network Link]" must be part of the text.

mark_as_open
required
boolean
attach_pdf
boolean

Attach PDF directly to the email

Responses

Request samples

Content type
application/json
{
  • "recipient_email": "example@bexio.com",
  • "subject": "Your new document",
  • "message": "Please find the document at [Network Link]",
  • "mark_as_open": true,
  • "attach_pdf": true
}

Response samples

Content type
application/json
{
  • "success": true
}

Copy a quote

This action copies a quote.

Authorizations:
bearerAuth
path Parameters
quote_id
required
integer <int32>
Example: 1

the id of the quote

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
contact_id
required
integer or null

References a contact object

contact_sub_id
integer or null

References a contact object

is_valid_from
string <date>
pr_project_id
integer or null

References a project object

title
string or null

Responses

Request samples

Content type
application/json
{
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "is_valid_from": "2019-06-27",
  • "pr_project_id": null,
  • "title": null
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "document_nr": "AN-00001",
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "total_gross": "17.800000",
  • "total_net": "17.800000",
  • "total_taxes": "1.3706",
  • "total": "19.150000",
  • "total_rounding_difference": -0.02,
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "is_valid_until": "2019-07-24",
  • "contact_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "delivery_address_type": 0,
  • "delivery_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "kb_item_status_id": 3,
  • "api_reference": null,
  • "viewed_by_client_at": null,
  • "kb_terms_of_payment_template_id": null,
  • "show_total": true,
  • "updated_at": "2019-04-08 13:17:32",
  • "template_slug": "581a8010821e01426b8b456b",
  • "taxs": [
    ],
  • "network_link": "",
  • "positions": [
    ]
}

Create order from quote

This action creates an order from a quote.

Authorizations:
bearerAuth
path Parameters
quote_id
required
integer <int32>
Example: 1

the id of the quote

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
Array of objects

Please note that the positions array can be omitted to create a document with all positions from the source document.

Responses

Request samples

Content type
application/json
{
  • "positions": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "document_nr": "AU-00001",
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "total_gross": "17.800000",
  • "total_net": "17.800000",
  • "total_taxes": "1.3706",
  • "total": "19.150000",
  • "total_rounding_difference": -0.02,
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "contact_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "delivery_address_type": 0,
  • "delivery_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "kb_item_status_id": 5,
  • "is_recurring": false,
  • "api_reference": null,
  • "viewed_by_client_at": null,
  • "updated_at": "2019-04-08 13:17:32",
  • "template_slug": "581a8010821e01426b8b456b",
  • "taxs": [
    ],
  • "network_link": "",
  • "positions": [
    ]
}

Create invoice from quote

This action creates an invoice from a quote.

Authorizations:
bearerAuth
path Parameters
quote_id
required
integer <int32>
Example: 1

the id of the quote

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
Array of objects

Please note that the positions array can be omitted to create a document with all positions from the source document.

Responses

Request samples

Content type
application/json
{
  • "positions": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "document_nr": "RE-00001",
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "total_gross": "17.800000",
  • "total_net": "17.800000",
  • "total_taxes": "1.3706",
  • "total_received_payments": "0.000000",
  • "total_credit_vouchers": "0.000000",
  • "total_remaining_payments": "19.150000",
  • "total": "19.150000",
  • "total_rounding_difference": -0.02,
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "is_valid_to": "2019-07-24",
  • "contact_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "kb_item_status_id": 3,
  • "reference": null,
  • "api_reference": null,
  • "viewed_by_client_at": null,
  • "updated_at": "2019-04-08 13:17:32",
  • "esr_id": 1,
  • "qr_invoice_id": 1,
  • "template_slug": "581a8010821e01426b8b456b",
  • "taxs": [
    ],
  • "network_link": "",
  • "positions": [
    ]
}

Orders

Fetch a list of orders

This action fetches a list of all orders

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "total" "total_net" "total_gross" "updated_at"
Example: order_by=total

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/kb_order \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create order

This action creates a new order

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
title
string or null
contact_id
integer or null

References a contact object

contact_sub_id
integer or null

References a contact object

user_id
integer

References a user object

pr_project_id
integer or null

References a project object

logopaper_id
integer
Deprecated
language_id
integer

References a language object

bank_account_id
integer

References a bank account object

currency_id
integer

References a currency object

payment_type_id
integer

References a payment type object

header
string
footer
string
mwst_type
integer
Enum: 0 1 2
value description
0 including taxes
1 excluding taxes
2 exempt from taxes
mwst_is_net
boolean

This value affects the total if the field mwst_type has been set to 0.
false = Taxes are included in the total
true = Taxes will be added to the total

show_position_taxes
boolean
is_valid_from
string <date>
delivery_address_type
integer
api_reference
string or null

This field can only be read and edited by the api. It can be used to save references to other systems.

template_slug
string or null
Array of PositionCustomExtended (object) or PositionArticleExtended (object) or PositionTextExtended (object) or PositionSubtotalExtended (object) or PositionPagebreakExtended (object) or PositionDiscountExtended (object)

Please note that you can combine multiple positions. This means that an array containing KbPositionCustom and KbPositionArticle positions is valid.

Responses

Request samples

Content type
application/json
{
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "pr_project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "delivery_address_type": 0,
  • "api_reference": null,
  • "template_slug": "581a8010821e01426b8b456b",
  • "positions": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "document_nr": "AU-00001",
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "total_gross": "17.800000",
  • "total_net": "17.800000",
  • "total_taxes": "1.3706",
  • "total": "19.150000",
  • "total_rounding_difference": -0.02,
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "contact_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "delivery_address_type": 0,
  • "delivery_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "kb_item_status_id": 5,
  • "is_recurring": false,
  • "api_reference": null,
  • "viewed_by_client_at": null,
  • "updated_at": "2019-04-08 13:17:32",
  • "template_slug": "581a8010821e01426b8b456b",
  • "taxs": [
    ],
  • "network_link": "",
  • "positions": [
    ]
}

Search orders

Search orders via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • id
  • kb_item_status_id
  • document_nr
  • title
  • contact_id
  • contact_sub_id
  • user_id
  • currency_id
  • total_gross
  • total_net
  • total
  • is_valid_from
  • is_valid_to
  • updated_at
Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "total" "total_net" "total_gross" "updated_at"
Example: order_by=total

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Fetch an order

This action fetches a single order

Authorizations:
bearerAuth
path Parameters
order_id
required
integer <int32>
Example: 1

the id of the order

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/kb_order/{order_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 4,
  • "document_nr": "AU-00001",
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "total_gross": "17.800000",
  • "total_net": "17.800000",
  • "total_taxes": "1.3706",
  • "total": "19.150000",
  • "total_rounding_difference": -0.02,
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "contact_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "delivery_address_type": 0,
  • "delivery_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "kb_item_status_id": 5,
  • "is_recurring": false,
  • "api_reference": null,
  • "viewed_by_client_at": null,
  • "updated_at": "2019-04-08 13:17:32",
  • "template_slug": "581a8010821e01426b8b456b",
  • "taxs": [
    ],
  • "network_link": "",
  • "positions": [
    ]
}

Edit an order

This action edits a single order

Authorizations:
bearerAuth
path Parameters
order_id
required
integer <int32>
Example: 1

the id of the order

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
title
string or null
contact_id
integer or null

References a contact object

contact_sub_id
integer or null

References a contact object

user_id
integer

References a user object

pr_project_id
integer or null

References a project object

logopaper_id
integer
Deprecated
language_id
integer

References a language object

bank_account_id
integer

References a bank account object

currency_id
integer

References a currency object

payment_type_id
integer

References a payment type object

header
string
footer
string
mwst_type
integer
Enum: 0 1 2
value description
0 including taxes
1 excluding taxes
2 exempt from taxes
mwst_is_net
boolean

This value affects the total if the field mwst_type has been set to 0.
false = Taxes are included in the total
true = Taxes will be added to the total

show_position_taxes
boolean
is_valid_from
string <date>
delivery_address_type
integer
api_reference
string or null

This field can only be read and edited by the api. It can be used to save references to other systems.

template_slug
string or null

Responses

Request samples

Content type
application/json
{
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "pr_project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "delivery_address_type": 0,
  • "api_reference": null,
  • "template_slug": "581a8010821e01426b8b456b"
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "document_nr": "AU-00001",
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "total_gross": "17.800000",
  • "total_net": "17.800000",
  • "total_taxes": "1.3706",
  • "total": "19.150000",
  • "total_rounding_difference": -0.02,
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "contact_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "delivery_address_type": 0,
  • "delivery_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "kb_item_status_id": 5,
  • "is_recurring": false,
  • "api_reference": null,
  • "viewed_by_client_at": null,
  • "updated_at": "2019-04-08 13:17:32",
  • "template_slug": "581a8010821e01426b8b456b",
  • "taxs": [
    ],
  • "network_link": "",
  • "positions": [
    ]
}

Delete an order

This action permanently deletes an order. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
order_id
required
integer <int32>
Example: 1

the id of the order

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/kb_order/{order_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Create delivery from order

This action creates a delivery from an order.

Authorizations:
bearerAuth
path Parameters
order_id
required
integer <int32>
Example: 1

the id of the order

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
Array of objects

Please note that the positions array can be omitted to create a document with all positions from the source document.

Responses

Request samples

Content type
application/json
{
  • "positions": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "document_nr": "LS-00001",
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "header": "Thank you very much for your inquiry.:",
  • "footer": "We hope that our delivery meets your expectations and will be happy to answer your questions.",
  • "total_gross": "17.800000",
  • "total_net": "17.800000",
  • "total_taxes": "1.3706",
  • "total": "19.150000",
  • "total_rounding_difference": -0.02,
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "is_valid_from": "2019-06-24",
  • "contact_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "delivery_address_type": 0,
  • "delivery_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "kb_item_status_id": 10,
  • "api_reference": null,
  • "viewed_by_client_at": null,
  • "updated_at": "2019-04-08 13:17:32",
  • "taxs": [
    ],
  • "positions": [
    ]
}

Create invoice from order

This action creates an invoice from an order.

Authorizations:
bearerAuth
path Parameters
order_id
required
integer <int32>
Example: 1

the id of the order

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
Array of objects

Please note that the positions array can be omitted to create a document with all positions from the source document.

Responses

Request samples

Content type
application/json
{
  • "positions": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "document_nr": "RE-00001",
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "total_gross": "17.800000",
  • "total_net": "17.800000",
  • "total_taxes": "1.3706",
  • "total_received_payments": "0.000000",
  • "total_credit_vouchers": "0.000000",
  • "total_remaining_payments": "19.150000",
  • "total": "19.150000",
  • "total_rounding_difference": -0.02,
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "is_valid_to": "2019-07-24",
  • "contact_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "kb_item_status_id": 3,
  • "reference": null,
  • "api_reference": null,
  • "viewed_by_client_at": null,
  • "updated_at": "2019-04-08 13:17:32",
  • "esr_id": 1,
  • "qr_invoice_id": 1,
  • "template_slug": "581a8010821e01426b8b456b",
  • "taxs": [
    ],
  • "network_link": "",
  • "positions": [
    ]
}

Show PDF

This action returns a pdf document of the order.

Authorizations:
bearerAuth
path Parameters
order_id
required
integer <int32>
Example: 1

the id of the order

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/kb_order/{order_id}/pdf \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "name": "document-00005.pdf",
  • "size": 9768,
  • "mime": "application/pdf",
  • "content": "R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="
}

Show repetition

This action fetches an order repetition

Authorizations:
bearerAuth
path Parameters
order_id
required
integer <int32>
Example: 1

the id of the order

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/kb_order/{order_id}/repetition \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "start": "2019-01-01",
  • "end": "2019-12-31",
  • "repetition": {
    }
}

Edit a repetition

This action edits an order repetition

Authorizations:
bearerAuth
path Parameters
order_id
required
integer <int32>
Example: 1

the id of the order

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
start
string <date>
end
string or null <date>

Date until the repetition is supposed to run. If empty indefinite repetition is assumed.

OrderRepetitionDaily (object) or OrderRepetitionWeekly (object) or OrderRepetitionMonthly (object) or OrderRepetitionYearly (object)

Four different formats can be used to define the repetition. Either type daily, weekly, monthly or type yearly.

Responses

Request samples

Content type
application/json
{
  • "start": "2019-01-01",
  • "end": "2019-12-31",
  • "repetition": {
    }
}

Response samples

Content type
application/json
{
  • "start": "2019-01-01",
  • "end": "2019-12-31",
  • "repetition": {
    }
}

Delete a repetition

This action permanently deletes an order repetition. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
order_id
required
integer <int32>
Example: 1

the id of the order

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/kb_order/{order_id}/repetition \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Deliveries

Fetch a list of deliveries

This action fetches a list of all deliveries

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "total" "total_net" "total_gross" "updated_at"
Example: order_by=total

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/kb_delivery \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a delivery

This action fetches a single delivery

Authorizations:
bearerAuth
path Parameters
delivery_id
required
integer <int32>
Example: 1

the id of the delivery

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/kb_delivery/{delivery_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 4,
  • "document_nr": "LS-00001",
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "header": "Thank you very much for your inquiry.:",
  • "footer": "We hope that our delivery meets your expectations and will be happy to answer your questions.",
  • "total_gross": "17.800000",
  • "total_net": "17.800000",
  • "total_taxes": "1.3706",
  • "total": "19.150000",
  • "total_rounding_difference": -0.02,
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "is_valid_from": "2019-06-24",
  • "contact_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "delivery_address_type": 0,
  • "delivery_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "kb_item_status_id": 10,
  • "api_reference": null,
  • "viewed_by_client_at": null,
  • "updated_at": "2019-04-08 13:17:32",
  • "taxs": [
    ],
  • "positions": [
    ]
}

Issue a delivery

This action issues a delivery. The delivery must be in the draft status.

Authorizations:
bearerAuth
path Parameters
delivery_id
required
integer <int32>
Example: 1

the id of the delivery

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X POST \
  https://api.bexio.com/2.0/kb_delivery/{delivery_id}/issue \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Invoices

Fetch a list of invoices

This action fetches a list of all invoices

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "total" "total_net" "total_gross" "updated_at"
Example: order_by=total

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/kb_invoice \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create invoice

This action creates a new invoice

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
title
string or null
contact_id
integer or null

References a contact object

contact_sub_id
integer or null

References a contact object

user_id
integer

References a user object

pr_project_id
integer or null

References a project object

logopaper_id
integer
Deprecated
language_id
integer

References a language object

bank_account_id
integer

References a bank account object

currency_id
integer

References a currency object

payment_type_id
integer

References a payment type object

header
string
footer
string
mwst_type
integer
Enum: 0 1 2
value description
0 including taxes
1 excluding taxes
2 exempt from taxes
mwst_is_net
boolean

This value affects the total if the field mwst_type has been set to 0.
false = Taxes are included in the total
true = Taxes will be added to the total

show_position_taxes
boolean
is_valid_from
string <date>
is_valid_to
string <date>
reference
string or null
api_reference
string or null

This field can only be read and edited by the api. It can be used to save references to other systems.

template_slug
string or null
Array of PositionCustomExtended (object) or PositionArticleExtended (object) or PositionTextExtended (object) or PositionSubtotalExtended (object) or PositionPagebreakExtended (object) or PositionDiscountExtended (object)

Please note that you can combine multiple positions. This means that an array containing KbPositionCustom and KbPositionArticle positions is valid.

Responses

Request samples

Content type
application/json
{
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "pr_project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "is_valid_to": "2019-07-24",
  • "reference": null,
  • "api_reference": null,
  • "template_slug": "581a8010821e01426b8b456b",
  • "positions": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "document_nr": "RE-00001",
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "total_gross": "17.800000",
  • "total_net": "17.800000",
  • "total_taxes": "1.3706",
  • "total_received_payments": "0.000000",
  • "total_credit_vouchers": "0.000000",
  • "total_remaining_payments": "19.150000",
  • "total": "19.150000",
  • "total_rounding_difference": -0.02,
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "is_valid_to": "2019-07-24",
  • "contact_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "kb_item_status_id": 3,
  • "reference": null,
  • "api_reference": null,
  • "viewed_by_client_at": null,
  • "updated_at": "2019-04-08 13:17:32",
  • "esr_id": 1,
  • "qr_invoice_id": 1,
  • "template_slug": "581a8010821e01426b8b456b",
  • "taxs": [
    ],
  • "network_link": "",
  • "positions": [
    ]
}

Search invoices

Search invoices via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • id
  • kb_item_status_id
  • document_nr
  • title
  • api_reference
  • contact_id
  • contact_sub_id
  • user_id
  • currency_id
  • total_gross
  • total_net
  • total
  • is_valid_from
  • is_valid_to
  • updated_at
Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "total" "total_net" "total_gross" "updated_at"
Example: order_by=total

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Fetch an invoice

This action fetches a single invoice

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/kb_invoice/{invoice_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 4,
  • "document_nr": "RE-00001",
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "total_gross": "17.800000",
  • "total_net": "17.800000",
  • "total_taxes": "1.3706",
  • "total_received_payments": "0.000000",
  • "total_credit_vouchers": "0.000000",
  • "total_remaining_payments": "19.150000",
  • "total": "19.150000",
  • "total_rounding_difference": -0.02,
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "is_valid_to": "2019-07-24",
  • "contact_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "kb_item_status_id": 3,
  • "reference": null,
  • "api_reference": null,
  • "viewed_by_client_at": null,
  • "updated_at": "2019-04-08 13:17:32",
  • "esr_id": 1,
  • "qr_invoice_id": 1,
  • "template_slug": "581a8010821e01426b8b456b",
  • "taxs": [
    ],
  • "network_link": "",
  • "positions": [
    ]
}

Edit an invoice

This action edits a single invoice

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
title
string or null
contact_id
integer or null

References a contact object

contact_sub_id
integer or null

References a contact object

user_id
integer

References a user object

pr_project_id
integer or null

References a project object

logopaper_id
integer
Deprecated
language_id
integer

References a language object

bank_account_id
integer

References a bank account object

currency_id
integer

References a currency object

payment_type_id
integer

References a payment type object

header
string
footer
string
mwst_type
integer
Enum: 0 1 2
value description
0 including taxes
1 excluding taxes
2 exempt from taxes
mwst_is_net
boolean

This value affects the total if the field mwst_type has been set to 0.
false = Taxes are included in the total
true = Taxes will be added to the total

show_position_taxes
boolean
is_valid_from
string <date>
is_valid_to
string <date>
reference
string or null
api_reference
string or null

This field can only be read and edited by the api. It can be used to save references to other systems.

template_slug
string or null

Responses

Request samples

Content type
application/json
{
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "pr_project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "is_valid_to": "2019-07-24",
  • "reference": null,
  • "api_reference": null,
  • "template_slug": "581a8010821e01426b8b456b"
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "document_nr": "RE-00001",
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "total_gross": "17.800000",
  • "total_net": "17.800000",
  • "total_taxes": "1.3706",
  • "total_received_payments": "0.000000",
  • "total_credit_vouchers": "0.000000",
  • "total_remaining_payments": "19.150000",
  • "total": "19.150000",
  • "total_rounding_difference": -0.02,
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "is_valid_to": "2019-07-24",
  • "contact_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "kb_item_status_id": 3,
  • "reference": null,
  • "api_reference": null,
  • "viewed_by_client_at": null,
  • "updated_at": "2019-04-08 13:17:32",
  • "esr_id": 1,
  • "qr_invoice_id": 1,
  • "template_slug": "581a8010821e01426b8b456b",
  • "taxs": [
    ],
  • "network_link": "",
  • "positions": [
    ]
}

Delete an invoice

This action permanently deletes an invoice. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/kb_invoice/{invoice_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Show PDF

This action returns a pdf document of the invoice.

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/kb_invoice/{invoice_id}/pdf \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "name": "document-00005.pdf",
  • "size": 9768,
  • "mime": "application/pdf",
  • "content": "R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="
}

Copy a invoice

This action copies a invoice.

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
contact_id
required
integer or null

References a contact object

contact_sub_id
integer or null

References a contact object

is_valid_from
string <date>
pr_project_id
integer or null

References a project object

title
string or null

Responses

Request samples

Content type
application/json
{
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "is_valid_from": "2019-06-27",
  • "pr_project_id": null,
  • "title": null
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "document_nr": "RE-00001",
  • "title": null,
  • "contact_id": 14,
  • "contact_sub_id": null,
  • "user_id": 1,
  • "project_id": null,
  • "logopaper_id": 1,
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency_id": 1,
  • "payment_type_id": 1,
  • "header": "Thank you very much for your inquiry. We would be pleased to make you the following offer:",
  • "footer": "We hope that our offer meets your expectations and will be happy to answer your questions.",
  • "total_gross": "17.800000",
  • "total_net": "17.800000",
  • "total_taxes": "1.3706",
  • "total_received_payments": "0.000000",
  • "total_credit_vouchers": "0.000000",
  • "total_remaining_payments": "19.150000",
  • "total": "19.150000",
  • "total_rounding_difference": -0.02,
  • "mwst_type": 0,
  • "mwst_is_net": true,
  • "show_position_taxes": false,
  • "is_valid_from": "2019-06-24",
  • "is_valid_to": "2019-07-24",
  • "contact_address": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
  • "kb_item_status_id": 3,
  • "reference": null,
  • "api_reference": null,
  • "viewed_by_client_at": null,
  • "updated_at": "2019-04-08 13:17:32",
  • "esr_id": 1,
  • "qr_invoice_id": 1,
  • "template_slug": "581a8010821e01426b8b456b",
  • "taxs": [
    ],
  • "network_link": "",
  • "positions": [
    ]
}

Issue an invoice

This action issues an invoice. The invoice must be in the draft status.

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X POST \
  https://api.bexio.com/2.0/kb_invoice/{invoice_id}/issue \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Sets issued invoice to draft

This action set an already issued invoice to state draft.

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X POST \
  https://api.bexio.com/2.0/kb_invoice/{invoice_id}/revert_issue \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Cancel an invoice

This action cancels an already issued invoice.

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X POST \
  https://api.bexio.com/2.0/kb_invoice/{invoice_id}/cancel \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Mark invoice as sent

This action marks an invoice as sent

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X POST \
  https://api.bexio.com/2.0/kb_invoice/{invoice_id}/mark_as_sent \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Send an invoice

This action sends an invoice by email.

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
recipient_email
required
string <email>

During the trial period, the recipient is limited to the email address associated to the access token provided.

subject
required
string
message
required
string

The placeholder "[Network Link]" must be part of the text.

mark_as_open
required
boolean
attach_pdf
boolean

Attach PDF directly to the email

Responses

Request samples

Content type
application/json
{
  • "recipient_email": "example@bexio.com",
  • "subject": "Your new document",
  • "message": "Please find the document at [Network Link]",
  • "mark_as_open": true,
  • "attach_pdf": true
}

Response samples

Content type
application/json
{
  • "success": true
}

Fetch a list of payments

This action fetches a list of all payments for the invoice

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/kb_invoice/{invoice_id}/payment \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create payment

This action creates a new payment for an invoice

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

Request Body schema: application/json
required
date
string <date>
value
required
string
bank_account_id
integer or null

References a bank account object

payment_service_id
integer or null

Responses

Request samples

Content type
application/json
{
  • "date": "2019-06-29",
  • "value": "10.0000",
  • "bank_account_id": 1,
  • "payment_service_id": null
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "date": "2019-06-29",
  • "value": "10.0000",
  • "bank_account_id": 1,
  • "title": "Received Payment",
  • "payment_service_id": null,
  • "is_client_account_redemption": false,
  • "is_cash_discount": false,
  • "kb_invoice_id": 1,
  • "kb_credit_voucher_id": null,
  • "kb_bill_id": null,
  • "kb_credit_voucher_text": ""
}

Fetch a payment

This action fetches a payment

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

payment_id
required
integer <int32>
Example: 1

the id of the payment

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/kb_invoice/{invoice_id}/payment/{payment_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 4,
  • "date": "2019-06-29",
  • "value": "10.0000",
  • "bank_account_id": 1,
  • "title": "Received Payment",
  • "payment_service_id": null,
  • "is_client_account_redemption": false,
  • "is_cash_discount": false,
  • "kb_invoice_id": 1,
  • "kb_credit_voucher_id": null,
  • "kb_bill_id": null,
  • "kb_credit_voucher_text": ""
}

Delete a payment

This action permanently deletes a payment. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

payment_id
required
integer <int32>
Example: 1

the id of the payment

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/kb_invoice/{invoice_id}/payment/{payment_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Fetch a list of reminders

This action fetches a list of all reminders for the invoice

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/kb_invoice/{invoice_id}/kb_reminder \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create reminder

This action creates a new reminder for an invoice

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X POST \
  https://api.bexio.com/2.0/kb_invoice/{invoice_id}/kb_reminder \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 4,
  • "kb_invoice_id": 1,
  • "title": "First reminder",
  • "is_valid_from": "2019-06-24",
  • "is_valid_to": "2019-07-24",
  • "reminder_period_in_days": 14,
  • "reminder_level": 1,
  • "show_positions": true,
  • "remaining_price": "17.8000",
  • "received_total": "0.0000",
  • "is_sent": false,
  • "header": null,
  • "footer": null
}

Search invoice reminders

Search invoice reminders via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • title
  • reminder_level
  • is_sent
  • is_valid_from
  • is_valid_to
Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a reminder

This action deletes the most recent reminder

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

reminder_id
required
integer <int32>
Example: 1

the id of the reminder

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/kb_invoice/{invoice_id}/kb_reminder/{reminder_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 4,
  • "kb_invoice_id": 1,
  • "title": "First reminder",
  • "is_valid_from": "2019-06-24",
  • "is_valid_to": "2019-07-24",
  • "reminder_period_in_days": 14,
  • "reminder_level": 1,
  • "show_positions": true,
  • "remaining_price": "17.8000",
  • "received_total": "0.0000",
  • "is_sent": false,
  • "header": null,
  • "footer": null
}

Delete a reminder

This action permanently deletes the most recent reminder. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

reminder_id
required
integer <int32>
Example: 1

the id of the reminder

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/kb_invoice/{invoice_id}/kb_reminder/{reminder_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Mark reminder as sent

This action marks an invoice reminder as sent

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

reminder_id
required
integer <int32>
Example: 1

the id of the reminder

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X POST \
  https://api.bexio.com/2.0/kb_invoice/{invoice_id}/kb_reminder/{reminder_id}/mark_as_sent \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Mark reminder as unsent

This action marks an invoice reminder as unsent

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

reminder_id
required
integer <int32>
Example: 1

the id of the reminder

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X POST \
  https://api.bexio.com/2.0/kb_invoice/{invoice_id}/kb_reminder/{reminder_id}/mark_as_unsent \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Send a reminder

This action sends an invoice reminder by email.

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

reminder_id
required
integer <int32>
Example: 1

the id of the reminder

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
recipient_email
required
string <email>

During the trial period, the recipient is limited to the email address associated to the access token provided.

subject
required
string
message
required
string

The placeholder "[Network Link]" must be part of the text.

Responses

Request samples

Content type
application/json
{
  • "recipient_email": "example@bexio.com",
  • "subject": "Your new document",
  • "message": "Please find the document at [Network Link]"
}

Response samples

Content type
application/json
{
  • "success": true
}

Show reminder PDF

This action returns a pdf document of the invoice reminder.

Authorizations:
bearerAuth
path Parameters
invoice_id
required
integer <int32>
Example: 1

the id of the invoice

reminder_id
required
integer <int32>
Example: 1

the id of the reminder

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/kb_invoice/{invoice_id}/kb_reminder/{reminder_id}/pdf \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "name": "document-00005.pdf",
  • "size": 9768,
  • "mime": "application/pdf",
  • "content": "R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="
}

Document Settings

Fetch a list of document settings

This action fetches a list of all document settings

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "text"
Example: order_by=id

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/kb_item_setting \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Comments

Fetch a list of comments

This action fetches a list of all comments for a document.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Item positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/comment \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[]

Create a comment

This action creates a new comment for a document

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Comments can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
text
required
string
user_id
required
integer or null

References a user object

user_email
string or null <email>
user_name
required
string or null
is_public
boolean

Responses

Request samples

Content type
application/json
{
  • "text": "Sample comment",
  • "user_id": 1,
  • "user_email": null,
  • "user_name": "Peter Smith",
  • "is_public": false
}

Response samples

Content type
application/json
{}

Fetch a comment

This action fetches a single comment for a document.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Comments can be used in quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

comment_id
required
integer <int32>
Example: 1

the id of the comment

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/comment/{comment_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{}

Default positions

Fetch a list of default positions

This action fetches a list of all default positions for a document.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Default positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_custom \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create a default position

This action creates a new default position for a document

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Default positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
amount
string
unit_id
integer

References a unit object

account_id
integer

References an account object

tax_id
integer

References a tax object

Please note that only active sales taxes can be used as references on the document types quote, order and invoice. An easy way to retrieve all valid taxes is by calling the taxes endpoint with the query parameters types=sales_tax&scope=active (this would result in the path /3.0/taxes?types=sales_tax&scope=active).

text
string
unit_price
string
discount_in_percent
string

Responses

Request samples

Content type
application/json
{
  • "amount": "5.000000",
  • "unit_id": 1,
  • "account_id": 1,
  • "tax_id": 4,
  • "text": "Apples",
  • "unit_price": "3.560000",
  • "discount_in_percent": "0.000000"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "amount": "5.000000",
  • "unit_id": 1,
  • "account_id": 1,
  • "unit_name": "kg",
  • "tax_id": 4,
  • "tax_value": "7.70",
  • "text": "Apples",
  • "unit_price": "3.560000",
  • "discount_in_percent": "0.000000",
  • "position_total": "17.800000",
  • "pos": 1,
  • "internal_pos": 1,
  • "is_optional": false,
  • "type": "KbPositionCustom",
  • "parent_id": null
}

Fetch a default position

This action fetches a single default position for a document.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Default positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_custom/{position_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "amount": "5.000000",
  • "unit_id": 1,
  • "account_id": 1,
  • "unit_name": "kg",
  • "tax_id": 4,
  • "tax_value": "7.70",
  • "text": "Apples",
  • "unit_price": "3.560000",
  • "discount_in_percent": "0.000000",
  • "position_total": "17.800000",
  • "pos": 1,
  • "internal_pos": 1,
  • "is_optional": false,
  • "type": "KbPositionCustom",
  • "parent_id": null
}

Edit a default position

This action edits a single default position for a document

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Default positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
amount
string
unit_id
integer

References a unit object

account_id
integer

References an account object

tax_id
integer

References a tax object

Please note that only active sales taxes can be used as references on the document types quote, order and invoice. An easy way to retrieve all valid taxes is by calling the taxes endpoint with the query parameters types=sales_tax&scope=active (this would result in the path /3.0/taxes?types=sales_tax&scope=active).

text
string
unit_price
string
discount_in_percent
string

Responses

Request samples

Content type
application/json
{
  • "amount": "5.000000",
  • "unit_id": 1,
  • "account_id": 1,
  • "tax_id": 4,
  • "text": "Apples",
  • "unit_price": "3.560000",
  • "discount_in_percent": "0.000000"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "amount": "5.000000",
  • "unit_id": 1,
  • "account_id": 1,
  • "unit_name": "kg",
  • "tax_id": 4,
  • "tax_value": "7.70",
  • "text": "Apples",
  • "unit_price": "3.560000",
  • "discount_in_percent": "0.000000",
  • "position_total": "17.800000",
  • "pos": 1,
  • "internal_pos": 1,
  • "is_optional": false,
  • "type": "KbPositionCustom",
  • "parent_id": null
}

Delete a default position

This action permanently deletes a default position for a document. It cannot be undone.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Default positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_custom/{position_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Item positions

Fetch a list of item positions

This action fetches a list of all item positions for a document.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Item positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_article \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create an item position

This action creates a new item position for a document

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Item positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
amount
string
unit_id
integer

References a unit object

account_id
integer

References an account object

tax_id
integer

References a tax object

Please note that only active sales taxes can be used as references on the document types quote, order and invoice. An easy way to retrieve all valid taxes is by calling the taxes endpoint with the query parameters types=sales_tax&scope=active (this would result in the path /3.0/taxes?types=sales_tax&scope=active).

text
string
unit_price
string
discount_in_percent
string
article_id
integer

References an item object

Responses

Request samples

Content type
application/json
{
  • "amount": "5.000000",
  • "unit_id": 1,
  • "account_id": 1,
  • "tax_id": 4,
  • "text": "Apples",
  • "unit_price": "3.560000",
  • "discount_in_percent": "0.000000",
  • "article_id": 3
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "amount": "5.000000",
  • "unit_id": 1,
  • "account_id": 1,
  • "unit_name": "kg",
  • "tax_id": 4,
  • "tax_value": "7.70",
  • "text": "Apples",
  • "unit_price": "3.560000",
  • "discount_in_percent": "0.000000",
  • "position_total": "17.800000",
  • "pos": 1,
  • "internal_pos": 1,
  • "is_optional": false,
  • "article_id": 3,
  • "type": "KbPositionArticle",
  • "parent_id": null
}

Fetch an item position

This action fetches a single item position for a document.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Item positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_article/{position_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "amount": "5.000000",
  • "unit_id": 1,
  • "account_id": 1,
  • "unit_name": "kg",
  • "tax_id": 4,
  • "tax_value": "7.70",
  • "text": "Apples",
  • "unit_price": "3.560000",
  • "discount_in_percent": "0.000000",
  • "position_total": "17.800000",
  • "pos": 1,
  • "internal_pos": 1,
  • "is_optional": false,
  • "article_id": 3,
  • "type": "KbPositionArticle",
  • "parent_id": null
}

Edit an item position

This action edits a single item position for a document

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Item positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
amount
string
unit_id
integer

References a unit object

account_id
integer

References an account object

tax_id
integer

References a tax object

Please note that only active sales taxes can be used as references on the document types quote, order and invoice. An easy way to retrieve all valid taxes is by calling the taxes endpoint with the query parameters types=sales_tax&scope=active (this would result in the path /3.0/taxes?types=sales_tax&scope=active).

text
string
unit_price
string
discount_in_percent
string
article_id
integer

References an item object

Responses

Request samples

Content type
application/json
{
  • "amount": "5.000000",
  • "unit_id": 1,
  • "account_id": 1,
  • "tax_id": 4,
  • "text": "Apples",
  • "unit_price": "3.560000",
  • "discount_in_percent": "0.000000",
  • "article_id": 3
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "amount": "5.000000",
  • "unit_id": 1,
  • "account_id": 1,
  • "unit_name": "kg",
  • "tax_id": 4,
  • "tax_value": "7.70",
  • "text": "Apples",
  • "unit_price": "3.560000",
  • "discount_in_percent": "0.000000",
  • "position_total": "17.800000",
  • "pos": 1,
  • "internal_pos": 1,
  • "is_optional": false,
  • "article_id": 3,
  • "type": "KbPositionArticle",
  • "parent_id": null
}

Delete a item position

This action permanently deletes an item position for a document. It cannot be undone.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Item positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_article/{position_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Text positions

Fetch a list of text positions

This action fetches a list of all text positions for a document.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Text positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_text \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create a text position

This action creates a new text position for a document

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Text positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
text
string
show_pos_nr
boolean

Responses

Request samples

Content type
application/json
{
  • "text": "This position type allows to add free text to a document",
  • "show_pos_nr": false
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "text": "This position type allows to add free text to a document",
  • "show_pos_nr": false,
  • "pos": null,
  • "internal_pos": 1,
  • "is_optional": false,
  • "type": "KbPositionText",
  • "parent_id": null
}

Fetch a text position

This action fetches a single text position for a document.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Text positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_text/{position_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "text": "This position type allows to add free text to a document",
  • "show_pos_nr": false,
  • "pos": null,
  • "internal_pos": 1,
  • "is_optional": false,
  • "type": "KbPositionText",
  • "parent_id": null
}

Edit a text position

This action edits a single text position for a document

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Text positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
text
string
show_pos_nr
boolean

Responses

Request samples

Content type
application/json
{
  • "text": "This position type allows to add free text to a document",
  • "show_pos_nr": false
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "text": "This position type allows to add free text to a document",
  • "show_pos_nr": false,
  • "pos": null,
  • "internal_pos": 1,
  • "is_optional": false,
  • "type": "KbPositionText",
  • "parent_id": null
}

Delete a text position

This action permanently deletes a text position for a document. It cannot be undone.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Text positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_text/{position_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Subtotal positions

Fetch a list of subtotal positions

This action fetches a list of all subtotal positions for a document.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Subtotal positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_subtotal \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create a subtotal position

This action creates a new subtotal position for a document

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Subtotal positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
text
string

Responses

Request samples

Content type
application/json
{
  • "text": "Subtotal"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "text": "Subtotal",
  • "value": "17.800000",
  • "internal_pos": 1,
  • "is_optional": false,
  • "type": "KbPositionSubtotal",
  • "parent_id": null
}

Fetch a subtotal position

This action fetches a single subtotal position for a document.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Subtotal positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_subtotal/{position_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "text": "Subtotal",
  • "value": "17.800000",
  • "internal_pos": 1,
  • "is_optional": false,
  • "type": "KbPositionSubtotal",
  • "parent_id": null
}

Edit a subtotal position

This action edits a single subtotal position for a document

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Subtotal positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
text
string

Responses

Request samples

Content type
application/json
{
  • "text": "Subtotal"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "text": "Subtotal",
  • "value": "17.800000",
  • "internal_pos": 1,
  • "is_optional": false,
  • "type": "KbPositionSubtotal",
  • "parent_id": null
}

Delete a subtotal position

This action permanently deletes a subtotal position for a document. It cannot be undone.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Subtotal positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_subtotal/{position_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Discount positions

Fetch a list of discount positions

This action fetches a list of all discount positions for a document.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Discount positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_discount \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create a discount position

This action creates a new discount position for a document

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Discount positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
text
string
is_percentual
boolean
value
string

Responses

Request samples

Content type
application/json
{
  • "text": "Partner discount",
  • "is_percentual": true,
  • "value": "10.000000"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "text": "Partner discount",
  • "is_percentual": true,
  • "value": "10.000000",
  • "discount_total": "1.780000",
  • "type": "KbPositionDiscount"
}

Fetch a discount position

This action fetches a single discount position for a document.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Discount positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_discount/{position_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "text": "Partner discount",
  • "is_percentual": true,
  • "value": "10.000000",
  • "discount_total": "1.780000",
  • "type": "KbPositionDiscount"
}

Edit a discount position

This action edits a single discount position for a document

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Discount positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
text
string
is_percentual
boolean
value
string

Responses

Request samples

Content type
application/json
{
  • "text": "Partner discount",
  • "is_percentual": true,
  • "value": "10.000000"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "text": "Partner discount",
  • "is_percentual": true,
  • "value": "10.000000",
  • "discount_total": "1.780000",
  • "type": "KbPositionDiscount"
}

Delete a discount position

This action permanently deletes a discount position for a document. It cannot be undone.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Discount positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_discount/{position_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Pagebreak positions

Fetch a list of pagebreak positions

This action fetches a list of all pagebreak positions for a document.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Pagebreak positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_pagebreak \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create a pagebreak position

This action creates a new pagebreak position for a document

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Pagebreak positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
pagebreak
boolean

Responses

Request samples

Content type
application/json
{
  • "pagebreak": true
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "internal_pos": 1,
  • "is_optional": false,
  • "type": "KbPositionPagebreak",
  • "parent_id": null
}

Fetch a pagebreak position

This action fetches a single pagebreak position for a document.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Pagebreak positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_pagebreak/{position_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "internal_pos": 1,
  • "is_optional": false,
  • "type": "KbPositionPagebreak",
  • "parent_id": null
}

Edit a pagebreak position

This action edits a single pagebreak position for a document

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Pagebreak positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
pagebreak
boolean

Responses

Request samples

Content type
application/json
{
  • "pagebreak": true
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "internal_pos": 1,
  • "is_optional": false,
  • "type": "KbPositionPagebreak",
  • "parent_id": null
}

Delete a pagebreak position

This action permanently deletes a pagebreak position for a document. It cannot be undone.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Pagebreak positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_pagebreak/{position_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Sub positions

Fetch a list of sub positions

This action fetches a list of all sub positions for a document.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Sub positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_subposition \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create a sub position

This action creates a new sub position for a document

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Sub positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
text
string
show_pos_nr
boolean

Responses

Request samples

Content type
application/json
{
  • "text": "This is a container to group other position types",
  • "show_pos_nr": true
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "text": "This is a container to group other position types",
  • "pos": 1,
  • "internal_pos": 1,
  • "show_pos_nr": true,
  • "is_optional": false,
  • "total_sum": "17.800000",
  • "show_pos_prices": true,
  • "type": "KbPositionSubposition",
  • "parent_id": null
}

Fetch a sub position

This action fetches a single sub position for a document.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Sub positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_subposition/{position_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "text": "This is a container to group other position types",
  • "pos": 1,
  • "internal_pos": 1,
  • "show_pos_nr": true,
  • "is_optional": false,
  • "total_sum": "17.800000",
  • "show_pos_prices": true,
  • "type": "KbPositionSubposition",
  • "parent_id": null
}

Edit a sub position

This action edits a single sub position for a document

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Sub positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
text
string
show_pos_nr
boolean

Responses

Request samples

Content type
application/json
{
  • "text": "This is a container to group other position types",
  • "show_pos_nr": true
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "text": "This is a container to group other position types",
  • "pos": 1,
  • "internal_pos": 1,
  • "show_pos_nr": true,
  • "is_optional": false,
  • "total_sum": "17.800000",
  • "show_pos_prices": true,
  • "type": "KbPositionSubposition",
  • "parent_id": null
}

Delete a sub position

This action permanently deletes a sub position for a document. It cannot be undone.

If you have an invoice with ID 4 you should replace the path parameter kb_document_type with kb_invoice and replace the path parameter document_id with 4.

Authorizations:
bearerAuth
path Parameters
kb_document_type
required
string
Enum: "kb_offer" "kb_order" "kb_invoice"
Example: kb_invoice

The type of the document. Sub positions can be added to quotes, orders and invoices

document_id
required
integer <int32>
Example: 1

the id of the document. E.g. if the kb_document_type is set to kb_invoice the document_id must be set to the ID of the invoice

position_id
required
integer <int32>
Example: 1

the id of the position

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/{kb_document_type}/{document_id}/kb_position_subposition/{position_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Document templates

List document templates

This action fetches a list of document templates

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/document_templates \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Bills

Get Bills

Endpoint for retrieving Bills

Authorizations:
bearerAuth
query Parameters
limit
integer
Default: 100
Example: limit=45

Limit the number of results (max is 500)

page
integer
Default: 1
Example: page=2

current page

order
string
Default: "asc"
Example: order=asc&order=desc

sorting order

sort
string
Example: sort=document_no

field to sort by

search_term
string [ 3 .. 255 ] characters
Example: search_term=term

term for which application will look for (minimum 3 signs, maximum 255 signs)

fields[]
Array of strings
Items Enum: "firstname_suffix" "lastname_company" "vendor_ref" "currency_code" "document_no" "title"

fields for which search will be run (if no 'fields[]' is specified than searching will be done for all allowed fields)

status
string
Enum: "DRAFTS" "TODO" "PAID" "OVERDUE"
Example: status=TODO

filter for Bill 'status' (DRAFTS: [DRAFT], TODO: [BOOKED, PARTIALLY_CREATED, CREATED, PARTIALLY_SENT, SENT, PARTIALLY_DOWNLOADED, DOWNLOADED, PARTIALLY_PAID, PARTIALLY_FAILED, FAILED], PAID: [PAID], OVERDUE: [BOOKED, PARTIALLY_CREATED, CREATED, PARTIALLY_SENT, SENT, PARTIALLY_DOWNLOADED, DOWNLOADED, PARTIALLY_PAID, PARTIALLY_FAILED, FAILED]) and for 'onlyOverdue' (DRAFTS: [FALSE], TODOS: [FALSE], PAID: [FALSE], OVERDUE: [TRUE]). Choosing OVERDUE means that only Bills with 'due_date' before now will be shown

bill_date_start
string <date>
Example: bill_date_start=2019-04-19

filter for Bill 'bill_date', the earliest accepted date

bill_date_end
string <date>
Example: bill_date_end=2019-04-27

filter for Bill 'bill_date', the latest accepted date

due_date_start
string <date>
Example: due_date_start=2019-05-19

filter for Bill 'due_date', the earliest accepted date

due_date_end
string <date>
Example: due_date_end=2019-05-27

filter for Bill 'due_date', the latest accepted date

vendor_ref
string
Example: vendor_ref=reference

filter for Bill 'vendor_ref', text containing in field

title
string
Example: title=Some Title

filter for Bill 'title', text containing in field

currency_code
string
Example: currency_code=CHF

filter for Bill 'currency_code', text containing in field

pending_amount_min
number <double>
Example: pending_amount_min=438.32

filter for Bill 'pending_amount', the lowest accepted value

pending_amount_max
number <double>
Example: pending_amount_max=465.75

filter for Bill 'pending_amount', the greatest accepted value

vendor
string
Example: vendor=bexio ag

filter for Bill 'vendor', text containing in fields lastname_company and firstname_suffix

gross_min
number <double>
Example: gross_min=438.32

filter for Bill 'gross', the lowest accepted value

gross_max
number <double>
Example: gross_max=465.75

filter for Bill 'gross', the greatest accepted value

net_min
number <double>
Example: net_min=438.32

filter for Bill 'net', the lowest accepted value

net_max
number <double>
Example: net_max=465.75

filter for Bill 'net', the greatest accepted value

document_no
string
Example: document_no=DC-123

filter for Bill 'document_no', text containing in field

supplier_id
integer
Example: supplier_id=1234

filter for Bill 'supplier_id'

Responses

Request samples

curl -X GET \
  https://api.bexio.com/4.0/purchase/bills \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "paging": {
    }
}

Create new Bill

Endpoint for creating Bill

Authorizations:
bearerAuth
Request Body schema: application/json
required
supplier_id
required
integer <int32>
vendor_ref
string [ 1 .. 255 ] characters
title
string [ 1 .. 80 ] characters
contact_partner_id
required
integer <int32>
bill_date
required
string <date>
due_date
required
string <date>
amount_man
number <double>

Required when 'manual_amount' is true. Maximum of 17 digits and maximum of 2 decimal digits.

amount_calc
number <double>

Required when 'manual_amount' is false. Maximum of 17 digits and maximum of 2 decimal digits.

manual_amount
required
boolean

indicates whether 'amount_man' or 'amount_calc' is required and considered as bill amount

currency_code
required
string [ 1 .. 20 ] characters
exchange_rate
number <double>

Required when 'currency_code' is different from 'base_currency_code' (taken from settings). Maximum of 5 digits and maximum of 10 decimal digits.

base_currency_amount
number <double> >= 0

Required when 'currency_code' is different from 'base_currency_code' (taken from settings). Maximum of 17 digits and maximum of 2 decimal digits.

item_net
required
boolean

Indicates whether 'amount' in 'line_items' is net or gross.

purchase_order_id
integer <int32>
qr_bill_information
string [ 1 .. 255 ] characters
attachment_ids
required
Array of strings <uuid> [ items <uuid > ]
required
object (address)

Address

required
Array of objects (createlineItem) [ 1 .. 100 ] items
required
Array of objects (discount) [ 0 .. 100 ] items
object (payment)

Responses

Request samples

Content type
application/json
{
  • "supplier_id": 1323,
  • "vendor_ref": "Reference text",
  • "title": "Bill 42",
  • "contact_partner_id": 647,
  • "bill_date": "2019-02-12",
  • "due_date": "2019-03-14",
  • "amount_man": 23.8,
  • "amount_calc": 32.08,
  • "manual_amount": true,
  • "currency_code": "CHF",
  • "exchange_rate": 2.3455347621,
  • "base_currency_amount": 212.78,
  • "item_net": false,
  • "purchase_order_id": 637,
  • "qr_bill_information": "//S1/10/10201409/11/190512/20/1400.000-53/30/106017086/31/180508/32/7.7/40/2:10;0:30",
  • "address": {
    },
  • "line_items": [
    ],
  • "discounts": [
    ],
  • "payment": {
    },
  • "attachment_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "64bf865d-988a-496d-a24f-bab2d52e4b4a",
  • "document_no": "LR-12345",
  • "title": "Bill 42",
  • "status": "DRAFT",
  • "firstname_suffix": "LeSS",
  • "lastname_company": "Organisation",
  • "created_at": "2019-02-12T09:53:49",
  • "supplier_id": 1323,
  • "vendor_ref": "Reference text",
  • "contact_partner_id": 647,
  • "bill_date": "2019-02-12",
  • "due_date": "2019-03-14",
  • "pending_amount": 65.23,
  • "amount_man": 23.87,
  • "amount_calc": 23.9,
  • "manual_amount": true,
  • "currency_code": "USD",
  • "exchange_rate": 2.3455365492,
  • "base_currency_code": "USD",
  • "item_net": false,
  • "split_into_line_items": true,
  • "purchase_order_id": 637,
  • "base_currency_amount": 75.23,
  • "overdue": true,
  • "qr_bill_information": "//S1/10/10201409/11/190512/20/1400.000-53/30/106017086/31/180508/32/7.7/40/2:10;0:30",
  • "address": {
    },
  • "line_items": [
    ],
  • "discounts": [
    ],
  • "payment": {
    },
  • "attachment_ids": [
    ]
}

Get Bill

Endpoint for retrieving Bill by id

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Example: 7572f70e-6bf5-47be-9a28-466423d8e3b1

id of Bill to retrieve

Responses

Request samples

curl -X GET \
  https://api.bexio.com/4.0/purchase/bills/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": "64bf865d-988a-496d-a24f-bab2d52e4b4a",
  • "document_no": "LR-12345",
  • "title": "Bill 42",
  • "status": "DRAFT",
  • "firstname_suffix": "LeSS",
  • "lastname_company": "Organisation",
  • "created_at": "2019-02-12T09:53:49",
  • "supplier_id": 1323,
  • "vendor_ref": "Reference text",
  • "contact_partner_id": 647,
  • "bill_date": "2019-02-12",
  • "due_date": "2019-03-14",
  • "pending_amount": 65.23,
  • "amount_man": 23.87,
  • "amount_calc": 23.9,
  • "manual_amount": true,
  • "currency_code": "USD",
  • "exchange_rate": 2.3455365492,
  • "base_currency_code": "USD",
  • "item_net": false,
  • "split_into_line_items": true,
  • "purchase_order_id": 637,
  • "base_currency_amount": 75.23,
  • "overdue": true,
  • "qr_bill_information": "//S1/10/10201409/11/190512/20/1400.000-53/30/106017086/31/180508/32/7.7/40/2:10;0:30",
  • "address": {
    },
  • "line_items": [
    ],
  • "discounts": [
    ],
  • "payment": {
    },
  • "attachment_ids": [
    ]
}

Update Bill

Endpoint for updating Bill

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Example: 1d204702-00ba-447b-ad48-aefbfb1bf984

id of Bill to update

Request Body schema: application/json
required
document_no
string [ 1 .. 255 ] characters
title
string [ 1 .. 80 ] characters
supplier_id
required
integer <int32>
vendor_ref
string [ 1 .. 255 ] characters
amount_man
number <double>

Required when 'manual_amount' is true. Maximum of 17 digits and maximum of 2 decimal digits.

amount_calc
number <double>

Required when 'manual_amount' is false. Maximum of 17 digits and maximum of 2 decimal digits.

manual_amount
required
boolean

Indicates whether 'amount_man' or 'amount_calc' is required and considered as bill amount

contact_partner_id
required
integer <int32>
bill_date
required
string <date>
due_date
required
string <date>
currency_code
required
string [ 1 .. 20 ] characters
exchange_rate
number <double>

Required when 'currency_code' is different from 'base_currency_code' (taken from settings). Maximum of 5 digits and maximum of 10 decimal digits.

item_net
required
boolean
split_into_line_items
required
boolean

Indicates whether Bill has multiple items (true) or single item (false). By items it means 'line_items' and 'discounts'.

base_currency_amount
number <double>

Maximum of 17 digits and maximum of 2 decimal digits.

attachment_ids
required
Array of strings <uuid> [ items <uuid > ]
required
object (address)

Address

required
Array of objects (updatelineItem) [ 1 .. 100 ] items

Each of Line Item's 'id' must be unique (no duplicates) and already existing on the Bill or it should be null for creating new Line Item. When 'split_into_line_items' is false then there must be only 1 Line Item.

required
Array of objects (discount) [ 0 .. 100 ] items

Each of Discount's 'id' must be unique (no duplicates) and already existing on the Bill or it should be null for creating new Discount. When 'split_into_line_items' is false then there must 0 Discounts.

object (payment)

Responses

Request samples

Content type
application/json
{
  • "document_no": "LR-12345",
  • "title": "Bill 42",
  • "supplier_id": 1323,
  • "vendor_ref": "Reference text",
  • "contact_partner_id": 647,
  • "bill_date": "2019-02-12",
  • "due_date": "2019-03-14",
  • "amount_man": 23.8,
  • "amount_calc": 23.83,
  • "manual_amount": true,
  • "currency_code": "CHF",
  • "exchange_rate": 2.3455354632,
  • "item_net": false,
  • "split_into_line_items": true,
  • "base_currency_amount": 63.23,
  • "attachment_ids": [
    ],
  • "address": {
    },
  • "line_items": [
    ],
  • "discounts": [
    ],
  • "payment": {
    }
}

Response samples

Content type
application/json
{
  • "id": "64bf865d-988a-496d-a24f-bab2d52e4b4a",
  • "document_no": "LR-12345",
  • "title": "Bill 42",
  • "status": "DRAFT",
  • "firstname_suffix": "LeSS",
  • "lastname_company": "Organisation",
  • "created_at": "2019-02-12T09:53:49",
  • "supplier_id": 1323,
  • "vendor_ref": "Reference text",
  • "contact_partner_id": 647,
  • "bill_date": "2019-02-12",
  • "due_date": "2019-03-14",
  • "pending_amount": 65.23,
  • "amount_man": 23.87,
  • "amount_calc": 23.9,
  • "manual_amount": true,
  • "currency_code": "USD",
  • "exchange_rate": 2.3455365492,
  • "base_currency_code": "USD",
  • "item_net": false,
  • "split_into_line_items": true,
  • "purchase_order_id": 637,
  • "base_currency_amount": 75.23,
  • "overdue": true,
  • "qr_bill_information": "//S1/10/10201409/11/190512/20/1400.000-53/30/106017086/31/180508/32/7.7/40/2:10;0:30",
  • "address": {
    },
  • "line_items": [
    ],
  • "discounts": [
    ],
  • "payment": {
    },
  • "attachment_ids": [
    ]
}

Delete Bill

Endpoint for deleting Bill by id. Bill can be removed when it is in status DRAFT only.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Example: 047e0179-89ea-499c-a427-62b1b9adbe7d

id of Bill to delete

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/4.0/purchase/bills/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "error_code": 401,
  • "message": "Invalid access token"
}

Update Bill status

Changing status to BOOKED

When changing status to BOOKED there are specific validations triggered:

  1. Bill must be in status DRAFT.
  2. 'amount_man' is required and must be greater than 0 when 'manual_amount' is true.
  3. 'amount_calc' is required and must be greater than 0 when 'manual_amount' is false.
  4. 'exchange_rate' is required and must be greater than 0 when 'curency_code' does not equal 'base_currency_code'.
  5. 'base_currency_amount' is required and must be greater than 0 when 'curency_code' does not equal 'base_currency_code'.
  6. 'bill_date' must be in existing Business Year that is not Closed and not Locked.
  7. 'due_date' must be after or equal to 'bill_date'.
  8. 'document_no' cannot be blank and must be unique across all existing Bills in status other than DRAFT.
  9. 'item_net' cannot be set to 'true' when any of 'line_items' 'tax_id' is one of tax types that is ignorig vat:
    • pre_regards_tax_material
    • pre_regards_tax_investment
    • pre_customs_tax_material
    • pre_customs_tax_investment
  10. 'line_tems' total amount must be greater than 0.
  11. 'booking_account_id' is required for each 'line_item'. And this Booking Account:
    • Cannot be a system asset account (account type ID 3, is_locked true)
    • Cannot be a system liability account (account type ID 4, is_locked true) with the exception of account 2201
    • Cannot be a system complete account (account type ID 5, is_locked true)
  12. 'line_item' amount cannot be less or equal to 0 when 'tax_id' is one of types:
    • pre_customs_tax_investment
    • pre_customs_tax_material
    • pre_regards_tax_investment
    • pre_regards_tax_material
  13. 'line_item' 'tax_id' validation:
    • when Bill is not subject to Vat then 'tax_id' must be null
    • Tax cannot have 'digit' set to one of:
      • 415
      • 420
    • when Bill's Calendar Year has Effective Vat accounting method then Tax type must be one of:
      • pre_tax_material
      • pre_tax_investment
      • pre_customs_tax_investment
      • pre_customs_tax_material
      • pre_regards_tax_material
      • pre_regards_tax_investment
    • when Bill's Calendar Year does not have Effective Vat accounting method then 'tax_id' is not required
    • when Bill's Calendar Year does not have Effective Vat accounting method then Tax type must be one of:
      • pre_regards_tax_material
      • pre_regards_tax_investment
  14. 'discounts' total amount must be less than 'line_items' total amount.
  15. Each 'discount' amount must be greater than 0.
  16. 'discounts' must be empty when there is 'line_item' with amount less or equal to 0.
  17. 'discounts' must be empty when there is 'line_item' with 'tax_id' being one of types rejecting discounts:
    • pre_customs_tax_material
    • pre_customs_tax_investment
  18. 'address.lastname_company' cannot be null or empty

Changing status to DRAFT

When changing status to DRAFT there are specific validations triggered:

  1. Bill must be in status BOOKED.
  2. 'bill_date' must be in existing Business Year that is not Closed and not Locked.
Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Example: 166dcef6-91c8-487f-b135-64dbf9d395a7

id of Bill to update

status
required
string
Enum: "DRAFT" "BOOKED"
Example: BOOKED

Bill status to update to

Responses

Request samples

curl -X PUT \
  https://api.bexio.com/4.0/purchase/bills/{id}/bookings/{status} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": "64bf865d-988a-496d-a24f-bab2d52e4b4a",
  • "document_no": "LR-12345",
  • "title": "Bill 42",
  • "status": "DRAFT",
  • "firstname_suffix": "LeSS",
  • "lastname_company": "Organisation",
  • "created_at": "2019-02-12T09:53:49",
  • "supplier_id": 1323,
  • "vendor_ref": "Reference text",
  • "contact_partner_id": 647,
  • "bill_date": "2019-02-12",
  • "due_date": "2019-03-14",
  • "pending_amount": 65.23,
  • "amount_man": 23.87,
  • "amount_calc": 23.9,
  • "manual_amount": true,
  • "currency_code": "USD",
  • "exchange_rate": 2.3455365492,
  • "base_currency_code": "USD",
  • "item_net": false,
  • "split_into_line_items": true,
  • "purchase_order_id": 637,
  • "base_currency_amount": 75.23,
  • "overdue": true,
  • "qr_bill_information": "//S1/10/10201409/11/190512/20/1400.000-53/30/106017086/31/180508/32/7.7/40/2:10;0:30",
  • "address": {
    },
  • "line_items": [
    ],
  • "discounts": [
    ],
  • "payment": {
    },
  • "attachment_ids": [
    ]
}

Execute Bill action

Endpoint for executing actions for Bill

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Example: 96c5e76f-8b85-487b-bcfb-b9d2ebf92fcf

Id of a Bill for which action will be executed

Request Body schema: application/json
action
required
string
Value: "DUPLICATE"

Responses

Request samples

Content type
application/json
{
  • "action": "DUPLICATE"
}

Response samples

Content type
application/json
{
  • "id": "64bf865d-988a-496d-a24f-bab2d52e4b4a",
  • "document_no": "LR-12345",
  • "title": "Bill 42",
  • "status": "DRAFT",
  • "firstname_suffix": "LeSS",
  • "lastname_company": "Organisation",
  • "created_at": "2019-02-12T09:53:49",
  • "supplier_id": 1323,
  • "vendor_ref": "Reference text",
  • "contact_partner_id": 647,
  • "bill_date": "2019-02-12",
  • "due_date": "2019-03-14",
  • "pending_amount": 65.23,
  • "amount_man": 23.87,
  • "amount_calc": 23.9,
  • "manual_amount": true,
  • "currency_code": "USD",
  • "exchange_rate": 2.3455365492,
  • "base_currency_code": "USD",
  • "item_net": false,
  • "split_into_line_items": true,
  • "purchase_order_id": 637,
  • "base_currency_amount": 75.23,
  • "overdue": true,
  • "qr_bill_information": "//S1/10/10201409/11/190512/20/1400.000-53/30/106017086/31/180508/32/7.7/40/2:10;0:30",
  • "address": {
    },
  • "line_items": [
    ],
  • "discounts": [
    ],
  • "payment": {
    },
  • "attachment_ids": [
    ]
}

Validate whether document number is available or not

Endpoint for retrieving validation for document number

Authorizations:
bearerAuth
query Parameters
document_no
required
string <= 255 characters
Example: document_no=AB-1234

document number to validate

Responses

Request samples

curl -X GET \
  https://api.bexio.com/4.0/purchase/documentnumbers/bills \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "valid": false,
  • "next_available_no": "AB-1235"
}

Expenses

Get Expenses

Endpoint for retrieving Expenses

Authorizations:
bearerAuth
query Parameters
limit
integer
Default: 100
Example: limit=45

results per page

page
integer
Default: 1
Example: page=2

current page

order
string
Default: "asc"
Example: order=asc&order=desc

sorting order

sort
string
Example: sort=document_no

field to sort by

vendor
string
Example: vendor=bexio ag

filter for Expense 'vendor', text containing in fields lastname_company and firstname_suffix

gross_min
number <double>
Example: gross_min=438.32

filter for Expense 'gross', the lowest accepted value

gross_max
number <double>
Example: gross_max=465.75

filter for Expense 'gross', the greatest accepted value

net_min
number <double>
Example: net_min=438.32

filter for Expense 'net', the lowest accepted value

net_max
number <double>
Example: net_max=465.75

filter for Expense 'net', the greatest accepted value

paid_on_start
string <date>
Example: paid_on_start=2019-04-19

filter for Expense 'paid_on', the earliest accepted date

paid_on_end
string <date>
Example: paid_on_end=2019-04-27

filter for Expense 'paid_on', the latest accepted date

created_at_start
string <date-time>
Example: created_at_start=2020-01-24T13:08:01+0000

filter for Expense 'created_at', the earliest accepted date

created_at_end
string <date-time>
Example: created_at_end=2020-01-27T13:08:01+0000

filter for Expense 'created_at', the latest accepted date

title
string
Example: title=Some Title

filter for Expense 'title', text containing in field

currency_code
string
Example: currency_code=CHF

filter for Expense 'currency_code', text containing in field

document_no
string
Example: document_no=DC-123

filter for Expense 'document_no', text containing in field

supplier_id
integer
Example: supplier_id=1234

filter for Expense 'supplier_id'

project_id
string <uuid>
Example: project_id=1a1864c0-ba80-46a8-ad89-ffd128db9456

filter for Expense 'project_id'

Responses

Request samples

curl -X GET \
  https://api.bexio.com/4.0/expenses \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "paging": {
    }
}

Create new Expense

Endpoint for creating Expense

Authorizations:
bearerAuth
Request Body schema: application/json
required
paid_on
required
string <date>
currency_code
required
string [ 1 .. 20 ] characters
supplier_id
integer <int32>
title
string [ 1 .. 80 ] characters
bank_account_id
integer <int32>
booking_account_id
integer <int32>
amount
required
number <double> >= 0

Maximum of 17 digits and maximum of 2 decimal digits.

tax_id
integer <int32>
exchange_rate
number <double>

Required when 'currency_code' is different from 'base_currency_code' (taken from settings). Maximum of 5 digits and maximum of 10 decimal digits.

base_currency_amount
number <double> >= 0

Required when 'currency_code' is different from 'base_currency_code' (taken from settings). Maximum of 17 digits and maximum of 2 decimal digits.

attachment_ids
required
Array of strings <uuid> [ items <uuid > ]

List of file ids that should be attached to this Expense. Cannot have duplicates.

object (address)

Address

Responses

Request samples

Content type
application/json
{
  • "paid_on": "2019-03-20",
  • "currency_code": "CHF",
  • "exchange_rate": 1.5243546497,
  • "supplier_id": 123,
  • "title": "Expense 42",
  • "bank_account_id": 5,
  • "booking_account_id": 16,
  • "amount": 80.54,
  • "tax_id": 15,
  • "base_currency_amount": 167.87,
  • "attachment_ids": [
    ],
  • "address": {
    }
}

Response samples

Content type
application/json
{
  • "id": "759b0915-4787-4151-9a81-6e7499d26bee",
  • "document_no": "123",
  • "title": "Some Title",
  • "status": "DRAFT",
  • "firstname_suffix": "Less",
  • "lastname_company": "Organisation",
  • "created_at": "2019-03-23T09:53:49+0000",
  • "supplier_id": null,
  • "paid_on": "2019-03-20",
  • "bank_account_id": 3,
  • "booking_account_id": 4,
  • "currency_code": "CHF",
  • "base_currency_code": "USD",
  • "exchange_rate": 1.4123567431,
  • "amount": 30.9,
  • "tax_man": 1.14,
  • "tax_calc": 3.45,
  • "tax_id": 6,
  • "base_currency_amount": 24.84,
  • "transaction_id": null,
  • "invoice_id": null,
  • "project_id": null,
  • "attachment_ids": [
    ],
  • "address": {
    }
}

Get Expense

Endpoint for retrieving Expense by id

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Example: 170a3a1e-df4d-4153-abdf-3a8670efd0e7

id of Expense to retrieve

Responses

Request samples

curl -X GET \
  https://api.bexio.com/4.0/expenses/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": "1355499f-aa07-4382-887e-acaf0323e6f6",
  • "document_no": "123",
  • "title": "Some Title",
  • "status": "DRAFT",
  • "firstname_suffix": "Less",
  • "lastname_company": "Organisation",
  • "created_at": "2019-03-23T09:53:49+0000",
  • "supplier_id": 1,
  • "paid_on": "2019-03-20",
  • "bank_account_id": 3,
  • "booking_account_id": 4,
  • "currency_code": "CHF",
  • "base_currency_code": "USD",
  • "exchange_rate": 1.4355684751,
  • "amount": 30.9,
  • "tax_man": 1.14,
  • "tax_calc": 3.45,
  • "tax_id": 6,
  • "base_currency_amount": 24.84,
  • "transaction_id": "b4229af3-a20f-4f68-b513-db651dd2c2ea",
  • "invoice_id": "9d47155f-eac4-491e-96d0-8e187c5a7ab6",
  • "project_id": "1a1864c0-ba80-46a8-ad89-ffd128db9456",
  • "attachment_ids": [
    ],
  • "address": {
    }
}

Update Expense

Endpoint for updating Expense

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Example: b057613b-ba1a-4f4d-a55c-d88eb605c922

id of Expense to update

Request Body schema: application/json
required
paid_on
required
string <date>
currency_code
required
string [ 1 .. 20 ] characters
exchange_rate
number <double>

Required when 'currency_code' is different from 'base_currency_code' (taken from settings). Maximum of 5 digits and maximum of 10 decimal digits.

supplier_id
integer <int32>
document_no
string [ 1 .. 255 ] characters
title
string [ 1 .. 80 ] characters
bank_account_id
integer <int32>
booking_account_id
integer <int32>
amount
required
number <double> >= 0

Maximum of 17 digits and maximum of 2 decimal digits.

tax_id
integer <int32>
base_currency_amount
number <double>

Maximum of 17 digits and maximum of 2 decimal digits.

attachment_ids
required
Array of strings <uuid> [ items <uuid > ]

List of file ids that should be attached to this Expense. Cannot have duplicates.

object (address)

Address

Responses

Request samples

Content type
application/json
{
  • "currency_code": "CHF",
  • "exchange_rate": 1.5497651324,
  • "paid_on": "2019-03-20",
  • "supplier_id": 123,
  • "document_no": "LR-12345",
  • "title": "Expense 42",
  • "bank_account_id": 5,
  • "booking_account_id": 16,
  • "amount": 80.54,
  • "tax_id": 15,
  • "base_currency_amount": 167.87,
  • "attachment_ids": [
    ],
  • "address": {
    }
}

Response samples

Content type
application/json
{
  • "id": "1355499f-aa07-4382-887e-acaf0323e6f6",
  • "document_no": "123",
  • "title": "Some Title",
  • "status": "DRAFT",
  • "firstname_suffix": "Less",
  • "lastname_company": "Organisation",
  • "created_at": "2019-03-23T09:53:49+0000",
  • "supplier_id": 1,
  • "paid_on": "2019-03-20",
  • "bank_account_id": 3,
  • "booking_account_id": 4,
  • "currency_code": "CHF",
  • "base_currency_code": "USD",
  • "exchange_rate": 1.4355684751,
  • "amount": 30.9,
  • "tax_man": 1.14,
  • "tax_calc": 3.45,
  • "tax_id": 6,
  • "base_currency_amount": 24.84,
  • "transaction_id": "b4229af3-a20f-4f68-b513-db651dd2c2ea",
  • "invoice_id": "9d47155f-eac4-491e-96d0-8e187c5a7ab6",
  • "project_id": "1a1864c0-ba80-46a8-ad89-ffd128db9456",
  • "attachment_ids": [
    ],
  • "address": {
    }
}

Delete Expense

Endpoint for deleting Expense by id. Expense cannot be removed when it is DONE.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Example: d00b2005-a52f-4d7b-ad72-217d549d9734

id of Expense to delete

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/4.0/expenses/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "error_code": 401,
  • "message": "Invalid access token"
}

Update Expense status

Changing status from DRAFT to DONE

When changing status to DONE there are specific validations triggered:

  1. 'bank_account_id' is required.
  2. 'base_currency_amount' is required when 'curency_code' does not equal 'base_currency_code' and must be greater than 0.
  3. 'booking_account_id' is required. And this Booking Account:
    • Cannot be a system asset account (account type ID 3, is_locked true)
    • Cannot be a system liability account (account type ID 4, is_locked true)
    • Cannot be a system complete account (account type ID 5, is_locked true)
  4. 'document_no' cannot be blank and must be unique across all existing Expenses in DONE status.
  5. 'exchange_rate' is required when 'curency_code' does not equal 'base_currency_code' and must be greater than 0.
  6. 'amount' must be greater than 0.
  7. 'tax_id' validation:
    • when Expense is not subject to Vat then 'tax_id' must be null
    • Tax cannot have 'digit' set to one of:
      • 415
      • 420
    • when Expense's Calendar Year has Effective Vat accounting method then Tax type must be one of:
      • pre_tax_material
      • pre_tax_investment
      • pre_customs_tax_investment
      • pre_customs_tax_material
      • pre_regards_tax_material
      • pre_regards_tax_investment
    • when Expense's Calendar Year does not have Effective Vat accounting method then 'tax_id' is not required
    • when Expense's Calendar Year does not have Effective Vat accounting method then Tax type must be one of:
      • pre_regards_tax_material
      • pre_regards_tax_investment
  8. 'paid_on' must be in existing Business Year that is not Closed and not Locked.
  9. If 'supplier_id' is set then 'address' cannot be null.
  10. If 'aupplier_id' is not set then 'address' must be null.
  11. If 'address' is set then 'address.lastname_company' cannot be null or empty

Changing status from DONE to DRAFT

When changing status to DRAFT there are specific validations triggered:

  1. 'paid_on' date must be in existing Business Year that is not Closed and not Locked.
  2. Expense cannot be linked to an Invoice ('invoice_id' must be null).
  3. Expense cannot be reconciled with any Transaction ('transaction_id' must be null).
Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Example: f0cc58cb-3b71-42c7-b28b-aeed4aa0493f

Id of Expense to update

status
required
string
Enum: "DRAFT" "DONE"
Example: DONE

Expense status to update to

Responses

Request samples

curl -X PUT \
  https://api.bexio.com/4.0/expenses/{id}/bookings/{status} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": "1355499f-aa07-4382-887e-acaf0323e6f6",
  • "document_no": "123",
  • "title": "Some Title",
  • "status": "DRAFT",
  • "firstname_suffix": "Less",
  • "lastname_company": "Organisation",
  • "created_at": "2019-03-23T09:53:49+0000",
  • "supplier_id": 1,
  • "paid_on": "2019-03-20",
  • "bank_account_id": 3,
  • "booking_account_id": 4,
  • "currency_code": "CHF",
  • "base_currency_code": "USD",
  • "exchange_rate": 1.4355684751,
  • "amount": 30.9,
  • "tax_man": 1.14,
  • "tax_calc": 3.45,
  • "tax_id": 6,
  • "base_currency_amount": 24.84,
  • "transaction_id": "b4229af3-a20f-4f68-b513-db651dd2c2ea",
  • "invoice_id": "9d47155f-eac4-491e-96d0-8e187c5a7ab6",
  • "project_id": "1a1864c0-ba80-46a8-ad89-ffd128db9456",
  • "attachment_ids": [
    ],
  • "address": {
    }
}

Execute Expense action

Endpoint for executing actions for Expense

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Example: 96c5e76f-8b85-487b-bcfb-b9d2ebf92fcf

id of Expense for which action will be executed

Request Body schema: application/json
action
required
string
Value: "DUPLICATE"

Responses

Request samples

Content type
application/json
{
  • "action": "DUPLICATE"
}

Response samples

Content type
application/json
{
  • "id": "1355499f-aa07-4382-887e-acaf0323e6f6",
  • "document_no": "123",
  • "title": "Some Title",
  • "status": "DRAFT",
  • "firstname_suffix": "Less",
  • "lastname_company": "Organisation",
  • "created_at": "2019-03-23T09:53:49+0000",
  • "supplier_id": 1,
  • "paid_on": "2019-03-20",
  • "bank_account_id": 3,
  • "booking_account_id": 4,
  • "currency_code": "CHF",
  • "base_currency_code": "USD",
  • "exchange_rate": 1.4355684751,
  • "amount": 30.9,
  • "tax_man": 1.14,
  • "tax_calc": 3.45,
  • "tax_id": 6,
  • "base_currency_amount": 24.84,
  • "transaction_id": "b4229af3-a20f-4f68-b513-db651dd2c2ea",
  • "invoice_id": "9d47155f-eac4-491e-96d0-8e187c5a7ab6",
  • "project_id": "1a1864c0-ba80-46a8-ad89-ffd128db9456",
  • "attachment_ids": [
    ],
  • "address": {
    }
}

Validate whether document number is available or not

Endpoint for retrieving validation for document number

Authorizations:
bearerAuth
query Parameters
document_no
required
string <= 255 characters
Example: document_no=AB-1234

document number to validate

Responses

Request samples

curl -X GET \
  https://api.bexio.com/4.0/expenses/documentnumbers \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "valid": false,
  • "next_available_no": "AB-1235"
}

Purchase Orders

Fetch a list of purchase orders

This action fetches a list of article orders

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "total" "total_net" "total_gross" "updated_at"
Example: order_by=total

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/purchase_orders \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create a purchase order

This action creates a new purchase order

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
id
integer <int32>

The id of the purchase order

document_nr
string
kb_payment_template_id
integer or null
payment_type_id
integer

References a payment type object

title
string or null
contact_id
integer

References a contact object

contact_sub_id
integer or null

References a contact object

template_slug
string or null
user_id
integer

References a user object

project_id
integer or null

References a project object

logopaper_id
integer
object (Language)
language_id
integer

References a language object

bank_account_id
integer

References a bank account object

object (Currency)
currency_id
integer

References a currency object

header
string or null
footer
string or null
mwst_type
string
Enum: "included" "excluded" "exempt"

Possible values are

  • included - included means that the tax is included in the total price
  • excluded - excluded means that the tax is excluded from the total price
  • exempt - exempt means that no tax is charged
mwst_is_net
boolean

This value affects the total if the field mwst_type has been set to 0.
false = Taxes are included in the total
true = Taxes will be added to the total

is_compact_view
boolean
show_position_taxes
boolean
salesman_user_id
integer or null

References a user object

is_valid_from
string <date>
is_valid_to
string <date>
delivery_address_type
string
Enum: "contact_address" "manual"
contact_address_manual
string <= 1000 characters

The contact address for the document. Newlines are in the format \n

delivery_address_manual
string <= 1000 characters

The delivery address for order. Newlines are in the format \n

nb_decimals_amount
integer <int32>
Default: 2

The maximum number of decimal digits to display for amounts (number of items).

nb_decimals_price
integer <int32>
Default: 2

The maximum number of decimal digits to display for prices (line item prices, totals, etc.).

terms_of_payment_text
string or null <= 255 characters

Additional text which is displayed below the terms of payment

reference
string or null <= 1000 characters

A reference which can be added to the document by the client.

api_reference
string or null

This field can only be read and edited by the api. It can be used to save references to other systems.

mail
string or null <= 80 characters

The mail address of the company

is_valid_until
string <date>
created_at
string <date>

Creation date of the purchase order

updated_at
string <date>

Last time when purchase order was updated

custom_translations
object
date_format
string
object

A purchase order can have multiple line items (positions). Please note that the line items must be grouped by required, optional and discount positions.

Responses

Request samples

Content type
application/json
{
  • "id": 1,
  • "document_nr": "RE-00001",
  • "kb_payment_template_id": 1,
  • "payment_type_id": 1,
  • "title": "purchase order example title",
  • "contact_id": 14,
  • "contact_sub_id": 1,
  • "template_slug": "581a8010821e01426b8b456b",
  • "user_id": 1,
  • "project_id": 1,
  • "logopaper_id": 1,
  • "language": {
    },
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency": {
    },
  • "currency_id": 1,
  • "header": "We would like to order the following products:",
  • "footer": "Many thanks for the fast processing of our order.",
  • "mwst_type": "included",
  • "mwst_is_net": true,
  • "is_compact_view": false,
  • "show_position_taxes": false,
  • "salesman_user_id": 1,
  • "is_valid_from": "2019-06-24",
  • "is_valid_to": "2019-07-24",
  • "delivery_address_type": "contact_address",
  • "contact_address_manual": "bexio AG\\nReinluftweg 1\\nCH - 9630 Wattwil",
  • "delivery_address_manual": "bexio AG\\nReinluftweg 1\\nCH - 9630 Wattwil",
  • "nb_decimals_amount": 2,
  • "nb_decimals_price": 2,
  • "terms_of_payment_text": "Payable within 30 days",
  • "reference": "Based on Quote Q-3860",
  • "api_reference": null,
  • "mail": "support@bexio.com",
  • "is_valid_until": "2019-07-24",
  • "created_at": "2020-04-28T19:58:58+00:00",
  • "updated_at": "2020-04-30T19:58:58+00:00",
  • "custom_translations": { },
  • "date_format": "d.m.Y",
  • "positions": {
    }
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "document_nr": "RE-00001",
  • "kb_payment_template_id": 1,
  • "payment_type_id": 1,
  • "title": "purchase order example title",
  • "contact_id": 14,
  • "contact_sub_id": 1,
  • "template_slug": "581a8010821e01426b8b456b",
  • "user_id": 1,
  • "project_id": 1,
  • "logopaper_id": 1,
  • "language": {
    },
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency": {
    },
  • "currency_id": 1,
  • "header": "We would like to order the following products:",
  • "footer": "Many thanks for the fast processing of our order.",
  • "total_rounding_difference": -0.02,
  • "mwst_type": "included",
  • "mwst_is_net": true,
  • "is_compact_view": false,
  • "show_position_taxes": false,
  • "salesman_user_id": 1,
  • "is_valid_from": "2019-06-24",
  • "is_valid_to": "2019-07-24",
  • "delivery_address_type": "contact_address",
  • "contact_address_manual": "bexio AG\\nReinluftweg 1\\nCH - 9630 Wattwil",
  • "delivery_address_manual": "bexio AG\\nReinluftweg 1\\nCH - 9630 Wattwil",
  • "nb_decimals_amount": 2,
  • "nb_decimals_price": 2,
  • "kb_item_status_id": 22,
  • "terms_of_payment_text": "Payable within 30 days",
  • "reference": "Based on Quote Q-3860",
  • "api_reference": null,
  • "mail": "support@bexio.com",
  • "viewed_by_client_at": "2020-07-24",
  • "is_valid_until": "2019-07-24",
  • "created_at": "2020-04-28T19:58:58+00:00",
  • "updated_at": "2020-04-30T19:58:58+00:00",
  • "custom_translations": { },
  • "date_format": "d.m.Y",
  • "positions": {
    }
}

Fetch a single purchase order

This action fetches a single purchase order

Authorizations:
bearerAuth
path Parameters
purchase_order_id
required
integer <int32>
Example: 1

the id of the purchase order

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/purchase_orders/{purchase_order_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "document_nr": "RE-00001",
  • "kb_payment_template_id": 1,
  • "payment_type_id": 1,
  • "title": "purchase order example title",
  • "contact_id": 14,
  • "contact_sub_id": 1,
  • "template_slug": "581a8010821e01426b8b456b",
  • "user_id": 1,
  • "project_id": 1,
  • "logopaper_id": 1,
  • "language": {
    },
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency": {
    },
  • "currency_id": 1,
  • "header": "We would like to order the following products:",
  • "footer": "Many thanks for the fast processing of our order.",
  • "total_rounding_difference": -0.02,
  • "mwst_type": "included",
  • "mwst_is_net": true,
  • "is_compact_view": false,
  • "show_position_taxes": false,
  • "salesman_user_id": 1,
  • "is_valid_from": "2019-06-24",
  • "is_valid_to": "2019-07-24",
  • "delivery_address_type": "contact_address",
  • "contact_address_manual": "bexio AG\\nReinluftweg 1\\nCH - 9630 Wattwil",
  • "delivery_address_manual": "bexio AG\\nReinluftweg 1\\nCH - 9630 Wattwil",
  • "nb_decimals_amount": 2,
  • "nb_decimals_price": 2,
  • "kb_item_status_id": 22,
  • "terms_of_payment_text": "Payable within 30 days",
  • "reference": "Based on Quote Q-3860",
  • "api_reference": null,
  • "mail": "support@bexio.com",
  • "viewed_by_client_at": "2020-07-24",
  • "is_valid_until": "2019-07-24",
  • "created_at": "2020-04-28T19:58:58+00:00",
  • "updated_at": "2020-04-30T19:58:58+00:00",
  • "custom_translations": { },
  • "date_format": "d.m.Y"
}

Update a single purchase order

This action updates a purchase order.

Authorizations:
bearerAuth
path Parameters
purchase_order_id
required
integer <int32>
Example: 1

the id of the purchase order

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
id
integer <int32>

The id of the purchase order

document_nr
string
kb_payment_template_id
integer or null
payment_type_id
integer

References a payment type object

title
string or null
contact_id
integer

References a contact object

contact_sub_id
integer or null

References a contact object

template_slug
string or null
user_id
integer

References a user object

project_id
integer or null

References a project object

logopaper_id
integer
object (Language)
language_id
integer

References a language object

bank_account_id
integer

References a bank account object

object (Currency)
currency_id
integer

References a currency object

header
string or null
footer
string or null
mwst_type
string
Enum: "included" "excluded" "exempt"

Possible values are

  • included - included means that the tax is included in the total price
  • excluded - excluded means that the tax is excluded from the total price
  • exempt - exempt means that no tax is charged
mwst_is_net
boolean

This value affects the total if the field mwst_type has been set to 0.
false = Taxes are included in the total
true = Taxes will be added to the total

is_compact_view
boolean
show_position_taxes
boolean
salesman_user_id
integer or null

References a user object

is_valid_from
string <date>
is_valid_to
string <date>
delivery_address_type
string
Enum: "contact_address" "manual"
contact_address_manual
string <= 1000 characters

The contact address for the document. Newlines are in the format \n

delivery_address_manual
string <= 1000 characters

The delivery address for order. Newlines are in the format \n

nb_decimals_amount
integer <int32>
Default: 2

The maximum number of decimal digits to display for amounts (number of items).

nb_decimals_price
integer <int32>
Default: 2

The maximum number of decimal digits to display for prices (line item prices, totals, etc.).

terms_of_payment_text
string or null <= 255 characters

Additional text which is displayed below the terms of payment

reference
string or null <= 1000 characters

A reference which can be added to the document by the client.

api_reference
string or null

This field can only be read and edited by the api. It can be used to save references to other systems.

mail
string or null <= 80 characters

The mail address of the company

is_valid_until
string <date>
created_at
string <date>

Creation date of the purchase order

updated_at
string <date>

Last time when purchase order was updated

custom_translations
object
date_format
string

Responses

Request samples

Content type
application/json
{
  • "id": 1,
  • "document_nr": "RE-00001",
  • "kb_payment_template_id": 1,
  • "payment_type_id": 1,
  • "title": "purchase order example title",
  • "contact_id": 14,
  • "contact_sub_id": 1,
  • "template_slug": "581a8010821e01426b8b456b",
  • "user_id": 1,
  • "project_id": 1,
  • "logopaper_id": 1,
  • "language": {
    },
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency": {
    },
  • "currency_id": 1,
  • "header": "We would like to order the following products:",
  • "footer": "Many thanks for the fast processing of our order.",
  • "mwst_type": "included",
  • "mwst_is_net": true,
  • "is_compact_view": false,
  • "show_position_taxes": false,
  • "salesman_user_id": 1,
  • "is_valid_from": "2019-06-24",
  • "is_valid_to": "2019-07-24",
  • "delivery_address_type": "contact_address",
  • "contact_address_manual": "bexio AG\\nReinluftweg 1\\nCH - 9630 Wattwil",
  • "delivery_address_manual": "bexio AG\\nReinluftweg 1\\nCH - 9630 Wattwil",
  • "nb_decimals_amount": 2,
  • "nb_decimals_price": 2,
  • "terms_of_payment_text": "Payable within 30 days",
  • "reference": "Based on Quote Q-3860",
  • "api_reference": null,
  • "mail": "support@bexio.com",
  • "is_valid_until": "2019-07-24",
  • "created_at": "2020-04-28T19:58:58+00:00",
  • "updated_at": "2020-04-30T19:58:58+00:00",
  • "custom_translations": { },
  • "date_format": "d.m.Y"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "document_nr": "RE-00001",
  • "kb_payment_template_id": 1,
  • "payment_type_id": 1,
  • "title": "purchase order example title",
  • "contact_id": 14,
  • "contact_sub_id": 1,
  • "template_slug": "581a8010821e01426b8b456b",
  • "user_id": 1,
  • "project_id": 1,
  • "logopaper_id": 1,
  • "language": {
    },
  • "language_id": 1,
  • "bank_account_id": 1,
  • "currency": {
    },
  • "currency_id": 1,
  • "header": "We would like to order the following products:",
  • "footer": "Many thanks for the fast processing of our order.",
  • "total_rounding_difference": -0.02,
  • "mwst_type": "included",
  • "mwst_is_net": true,
  • "is_compact_view": false,
  • "show_position_taxes": false,
  • "salesman_user_id": 1,
  • "is_valid_from": "2019-06-24",
  • "is_valid_to": "2019-07-24",
  • "delivery_address_type": "contact_address",
  • "contact_address_manual": "bexio AG\\nReinluftweg 1\\nCH - 9630 Wattwil",
  • "delivery_address_manual": "bexio AG\\nReinluftweg 1\\nCH - 9630 Wattwil",
  • "nb_decimals_amount": 2,
  • "nb_decimals_price": 2,
  • "kb_item_status_id": 22,
  • "terms_of_payment_text": "Payable within 30 days",
  • "reference": "Based on Quote Q-3860",
  • "api_reference": null,
  • "mail": "support@bexio.com",
  • "viewed_by_client_at": "2020-07-24",
  • "is_valid_until": "2019-07-24",
  • "created_at": "2020-04-28T19:58:58+00:00",
  • "updated_at": "2020-04-30T19:58:58+00:00",
  • "custom_translations": { },
  • "date_format": "d.m.Y",
  • "positions": {
    }
}

Delete a purchase order

This action permanently deletes a purchase order. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
purchase_order_id
required
integer <int32>
Example: 1

the id of the purchase order

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/3.0/purchase_orders/{purchase_order_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Outgoing Payment

Retrieve Outgoing Payments

Authorizations:
bearerAuth
query Parameters
bill_id
required
string <uuid>
Example: bill_id=5d035f66-8217-433a-b01f-cf0d211c50b1

id of Bill for which Outgoing Payments were created

limit
integer >= 1
Default: 100
Example: limit=15

results per page

page
integer >= 1
Default: 1
Example: page=2

current page

order
string
Default: "asc"
Enum: "asc" "desc"
Example: order=desc

sorting order

sort
string
Example: sort=payment_type

field to sort by

Responses

Request samples

curl -X GET \
  https://api.bexio.com/4.0/purchase/outgoing-payments \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "paging": {
    }
}

Create new Outgoing Payment

Endpoint for creating Outgoing Payment

Authorizations:
bearerAuth
Request Body schema: application/json

New Outgoing Payment

bill_id
required
string <uuid>

Payment can be created only for Bill that is not in status DRAFT.

payment_type
required
string
Enum: "IBAN" "MANUAL" "CASH_DISCOUNT" "QR"

Bill's amount cannot be covered only by CASH_DISCOUNT payments.

execution_date
required
string <date>

Must be after or equal to Bill's 'bill_date'. Cannot be in CLOSED or LOCKED Business Year. Must be in existing Business Year. For IBAN and QR must be in present or future and cannot be on the weekend.

amount
required
number <double> > 0

Must be less or equal to Bill's 'pending_amount'. Maximum of 17 digits and maximum of 2 decimal digits.

currency_code
required
string [ 1 .. 20 ] characters

Must be equal to Bill's 'currency_code'. Only 'CHF' and 'EUR' is allowed for QR.

exchange_rate
required
number <double>

Maximum of 5 digits and maximum of 10 decimal digits.

note
string [ 1 .. 80 ] characters

Not allowed for IBAN, QR.

sender_bank_account_id
required
integer <int32>

Required for IBAN, MANUAL, QR. Not allowed for CASH_DISCOUNT. For [IBAN, QR] it must be Bank Account with type 'bank'. For MANUAL it could be Bank Account with type 'bank' or 'cash'.

sender_iban
string [ 1 .. 100 ] characters

Required for IBAN, QR. Not allowed for CASH_DISCOUNT.

sender_name
string [ 1 .. 100 ] characters

Required for IBAN, QR. Not allowed for CASH_DISCOUNT.

sender_street
string [ 1 .. 255 ] characters

Required for IBAN, QR. Not allowed for CASH_DISCOUNT.

sender_house_no
string [ 1 .. 10 ] characters

Not allowed for CASH_DISCOUNT.

sender_city
string [ 1 .. 50 ] characters

Required for IBAN, QR. Not allowed for CASH_DISCOUNT.

sender_postcode
string [ 1 .. 10 ] characters

Required for IBAN, QR. Not allowed for CASH_DISCOUNT.

sender_country_code
string [ 1 .. 4 ] characters

Not allowed for CASH_DISCOUNT.

sender_bc_no
string [ 1 .. 20 ] characters

Not allowed for CASH_DISCOUNT.

sender_bank_no
string [ 1 .. 50 ] characters

Not allowed for CASH_DISCOUNT.

sender_bank_name
string [ 1 .. 80 ] characters

Not allowed for CASH_DISCOUNT.

receiver_account_no
string [ 1 .. 100 ] characters
Deprecated

Not allowed for IBAN, QR, MANUAL, CASH_DISCOUNT.

receiver_iban
string [ 1 .. 100 ] characters

Required for IBAN, QR. Not allowed for MANUAL, CASH_DISCOUNT. Must be valid Iban for IBAN Payment or must be valid QR Iban for QR Payment.

receiver_name
string [ 1 .. 70 ] characters

Required for IBAN, QR. Not allowed for MANUAL, CASH_DISCOUNT.

receiver_street
string [ 1 .. 255 ] characters

Required for IBAN, QR. Not allowed for MANUAL, CASH_DISCOUNT.

receiver_house_no
string [ 1 .. 10 ] characters

Required for IBAN, QR. Not allowed for MANUAL, CASH_DISCOUNT.

receiver_city
string [ 1 .. 50 ] characters

Required for IBAN, QR. Not allowed for MANUAL, CASH_DISCOUNT.

receiver_postcode
string [ 1 .. 10 ] characters

Required for IBAN, QR. Not allowed for MANUAL, CASH_DISCOUNT.

receiver_country_code
string [ 1 .. 4 ] characters

Required for IBAN, QR. Not allowed for MANUAL, CASH_DISCOUNT.

receiver_bc_no
string [ 1 .. 20 ] characters

Not allowed for MANUAL, CASH_DISCOUNT.

receiver_bank_no
string [ 1 .. 50 ] characters

Not allowed for MANUAL, CASH_DISCOUNT.

receiver_bank_name
string [ 1 .. 80 ] characters

Not allowed for MANUAL, CASH_DISCOUNT.

fee_type
string
Enum: "BY_SENDER" "BY_RECEIVER" "BREAKDOWN" "NO_FEE"

Required for IBAN. Not allowed for QR, MANUAL, CASH_DISCOUNT. Must be set to NO_FEE when 'receiver_iban' is a domestic IBAN (same country as 'sender_bank_account_id' Bank Account IBAN country). Cannot be set to NO_FEE when 'receiver_iban' is not a domestic IBAN.

is_salary_payment
required
boolean

Allowed to be set to true only for IBAN.

reference_no
string [ 1 .. 27 ] characters [a-zA-Z0-9]+

Not allowed for IBAN, MANUAL, CASH_DISCOUNT. For QR, when 'receiver_iban' is QR Iban then 'reference_no' must be valid Isr Account number. For QR, when 'receiver_iban' is not QR Iban then 'reference_no' must be valid Creaditor Reference.

message
string [ 1 .. 140 ] characters

Not allowed for QR, MANUAL, CASH_DISCOUNT.

booking_text
string [ 1 .. 35 ] characters

Not allowed for MANUAL, CASH_DISCOUNT.

Responses

Request samples

Content type
application/json
Example
{
  • "bill_id": "13e24b2d-355a-424f-9c80-f457c7ddd555",
  • "payment_type": "IBAN",
  • "execution_date": "2020-11-13",
  • "amount": 78.64,
  • "currency_code": "EUR",
  • "exchange_rate": 1.211,
  • "is_salary_payment": true,
  • "fee_type": "BY_SENDER",
  • "sender_bank_account_id": 2,
  • "sender_iban": "CH5604835012345678009",
  • "sender_name": "Muster Hans",
  • "sender_city": "London",
  • "sender_postcode": "6723",
  • "sender_street": "address no 2",
  • "receiver_iban": "DE91100000000123456789",
  • "receiver_name": "bexio ag",
  • "receiver_street": "Reinluftweg 1",
  • "receiver_city": "Wattwil",
  • "receiver_postcode": "9630",
  • "receiver_country_code": "CH"
}

Response samples

Content type
application/json
{
  • "id": "f68e87e0-fa2d-4576-91c6-15f7b6876003",
  • "status": "DOWNLOADED",
  • "created_at": "2019-06-27T10:25:50+0200",
  • "bill_id": "22c306ad-c158-4792-b557-72340df816f5",
  • "payment_type": "IBAN",
  • "execution_date": "2019-10-15",
  • "amount": 45.98,
  • "currency_code": "CHF",
  • "exchange_rate": 1.0000000032,
  • "note": "Some notes",
  • "sender_bank_account_id": 2,
  • "sender_iban": "DE684734567812345678900",
  • "sender_name": "Sender name",
  • "sender_street": "Good Street",
  • "sender_house_no": "45",
  • "sender_city": "Warsaw",
  • "sender_postcode": "6723",
  • "sender_country_code": "PL",
  • "sender_bc_no": "238747349095789",
  • "sender_bank_no": "80759758235723820983",
  • "sender_bank_name": "Name of the Bank",
  • "receiver_iban": "CH121234567812345678900",
  • "receiver_name": "Receiver name",
  • "receiver_street": "Mega street",
  • "receiver_house_no": "10/20",
  • "receiver_city": "London",
  • "receiver_postcode": "3781",
  • "receiver_country_code": "CH",
  • "receiver_bc_no": "98364949095789",
  • "receiver_bank_no": "26597585382673",
  • "receiver_bank_name": "Some Bank name",
  • "fee_type": "BREAKDOWN",
  • "is_salary_payment": false,
  • "reference_no": "9568345675321984798456",
  • "message": "Some message",
  • "booking_text": "Swimming lessons",
  • "banking_payment_id": "f35d39a3-dfc4-43d1-bf38-387f821c0ed0",
  • "banking_payment_entry_id": "27c0d66a-8ea2-4b51-9ce0-372d3e0a4117",
  • "transaction_id": "b4f1e277-8424-48a7-a0b0-100646e82d25"
}

Get Outgoing Payment

Endpoint for retrieving Outgoing Payment by id

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Example: 8f276cb8-9220-452c-a649-6877207f47bb

id of Outgoing Payment to retrieve

Responses

Request samples

curl -X GET \
  https://api.bexio.com/4.0/purchase/outgoing-payments/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": "f68e87e0-fa2d-4576-91c6-15f7b6876003",
  • "status": "DOWNLOADED",
  • "created_at": "2019-06-27T10:25:50+0200",
  • "bill_id": "22c306ad-c158-4792-b557-72340df816f5",
  • "payment_type": "IBAN",
  • "execution_date": "2019-10-15",
  • "amount": 45.98,
  • "currency_code": "CHF",
  • "exchange_rate": 1.0000000032,
  • "note": "Some notes",
  • "sender_bank_account_id": 2,
  • "sender_iban": "DE684734567812345678900",
  • "sender_name": "Sender name",
  • "sender_street": "Good Street",
  • "sender_house_no": "45",
  • "sender_city": "Warsaw",
  • "sender_postcode": "6723",
  • "sender_country_code": "PL",
  • "sender_bc_no": "238747349095789",
  • "sender_bank_no": "80759758235723820983",
  • "sender_bank_name": "Name of the Bank",
  • "receiver_iban": "CH121234567812345678900",
  • "receiver_name": "Receiver name",
  • "receiver_street": "Mega street",
  • "receiver_house_no": "10/20",
  • "receiver_city": "London",
  • "receiver_postcode": "3781",
  • "receiver_country_code": "CH",
  • "receiver_bc_no": "98364949095789",
  • "receiver_bank_no": "26597585382673",
  • "receiver_bank_name": "Some Bank name",
  • "fee_type": "BREAKDOWN",
  • "is_salary_payment": false,
  • "reference_no": "9568345675321984798456",
  • "message": "Some message",
  • "booking_text": "Swimming lessons",
  • "banking_payment_id": "f35d39a3-dfc4-43d1-bf38-387f821c0ed0",
  • "banking_payment_entry_id": "27c0d66a-8ea2-4b51-9ce0-372d3e0a4117",
  • "transaction_id": "b4f1e277-8424-48a7-a0b0-100646e82d25"
}

Delete Outgoing Payment

Payment cannot be removed when it is RECONCILED (transaction_id is not null). Payment cannot be removed when it's Business Year is Closed or Locked.

Authorizations:
bearerAuth
path Parameters
id
required
string <uuid>
Example: 9bcf8181-2843-4726-b023-d38261c56ca8

Outgoing Payment id

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/4.0/purchase/outgoing-payments/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "error_code": 400,
  • "message": "Parameters are invalid"
}

Accounts

Fetch a list of accounts

This action fetches a list of all accounts

Authorizations:
bearerAuth
query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/accounts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Search Accounts

Search accounts via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • account_no
  • fibu_account_group_id
  • name
  • account_type
Authorizations:
bearerAuth
query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Account Groups

Fetch a list of account groups

This action fetches a list of all account groups

Authorizations:
bearerAuth
query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/account_groups \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Calendar Years

Fetch a list of calendar years

This action fetches a list of all calendar years

Authorizations:
bearerAuth
query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/accounting/calendar_years \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create calendar year.

This action creates a calendar year. If only year parameter is passed to request the next year is created with the same settings as the year before other way all parameters must be pass to request.

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
year
string

The year for which we want to create an entry. It is possible to create years 10 years ahead and higher than 2016 year. If it is a future year, we generate all in between with the settings the user has chosen.

is_vat_subject
boolean

Determines if the calendar year is vat subjected or not.

vat_accounting_method
string
Enum: "effective" "net_tax"

Vat accounting method.

vat_accounting_type
string
Enum: "agreed" "collected"

Vat accounting type.

default_tax_income_id
integer

Determine default tax ID for income. References a tax object

default_tax_expense_id
integer

Determine default tax ID for expense. Tax ID is not required if the client has the plan bexio mini. In this case, the year is created with the tax ID from the previous year. References a tax object.

Responses

Request samples

Content type
application/json
{
  • "year": "2018",
  • "is_vat_subject": true,
  • "vat_accounting_method": "effective",
  • "vat_accounting_type": "agreed",
  • "default_tax_income_id": 1,
  • "default_tax_expense_id": 2
}

Response samples

Content type
application/json
[
  • {
    }
]

Search calendar years

This action fetches a list of all calendar years which matches the search criteria. If you want to search for end date use "like" instead of "=" cause if you search for equality, you will have to provide the date in the following format: "2018-12-31 23:59:59"

Authorizations:
bearerAuth
query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (SearchCriteria)
Default: "like"
Enum: "=" "==" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a calendar year

This action fetches a single calendar year

Authorizations:
bearerAuth
path Parameters
calendar_year_id
required
integer <int32>
Example: 1

the id of the calendar_year

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/accounting/calendar_years/{calendar_year_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "start": "2018-01-01",
  • "end": "2018-12-31",
  • "is_vat_subject": true,
  • "created_at": "2017-04-28T19:58:58+00:00",
  • "updated_at": "2018-04-30T19:58:58+00:00",
  • "vat_accounting_method": "effective",
  • "vat_accounting_type": "agreed"
}

Business Years

Fetch a list of business years

This action fetches a list of all business years

Authorizations:
bearerAuth
query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/accounting/business_years \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a business year

This action fetches a single business year

Authorizations:
bearerAuth
path Parameters
business_year_id
required
integer <int32>
Example: 1

the id of the business_year

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/accounting/business_years/{business_year_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "start": "2018-01-01",
  • "end": "2018-12-31",
  • "status": "open",
  • "closed_at": "2019-04-28"
}

Currencies

Fetch a list of currencies

This action fetches a list of all currencies

Authorizations:
bearerAuth
query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/currencies \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create a currency

This action creates a new currency

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
name
required
string <= 80 characters

A name of the currency. Must be in the format "ISO 4217" and must be unique.

round_factor
required
number

The round factor of the currency. E.g.: In order to round CHF to 5 Rp. the round_factor must be set to 0.05

Responses

Request samples

Content type
application/json
{
  • "name": "CHF",
  • "round_factor": 0.05
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "CHF",
  • "round_factor": 0.05
}

Fetch a currency

This action fetches a single currency

Authorizations:
bearerAuth
path Parameters
currency_id
required
integer <int32>
Example: 1

the id of the currency

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/currencies/{currency_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "CHF",
  • "round_factor": 0.05
}

Delete a currency

This action permanently deletes a currency. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
currency_id
required
integer <int32>
Example: 1

the id of the currency

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/3.0/currencies/{currency_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Update a currency

This action updates an existing currency

Authorizations:
bearerAuth
path Parameters
currency_id
required
integer <int32>
Example: 1

the id of the currency

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Any of
round_factor
number

The round factor of the currency. E.g.: In order to round CHF to 5 Rp. the round_factor must be set to 0.05

Responses

Request samples

Content type
application/json
{
  • "round_factor": 0.05
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "CHF",
  • "round_factor": 0.05
}

Fetch exchange rates for currencies

This action fetches all configured exchange rates for a given currency

Authorizations:
bearerAuth
path Parameters
currency_id
required
integer <int32>

the id of the currency

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/currencies/{currency_id}/exchange_rates \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Fetch all possible currency codes

This endpoint can be used to retrieve all available currency codes (in the format CHF, EUR, etc.)

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/currencies/codes \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • [
    ]
]

Manual Entries

Fetch a list of manual entries

This action fetches a list of all manual entries which have been added in the accounting module

Authorizations:
bearerAuth
query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/accounting/manual_entries \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create manual entry

This action creates a new manual entry for the account ledger

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
type
required
string (ManualEntryType)
Enum: "manual_single_entry" "manual_compound_entry" "manual_group_entry"

Choose one of the following three types:

manual_single_entry
Can be used to create a simple one line booking such as:

debit account credit account amount
1020 3200 13600

manual_compound_entry
Can be used to create a more complex booking where the total amount can be distributed among multiple accounts. The following example shows how a received bank transaction can be booked on multiple accounts:

debit account credit account amount
1020 25000
3200 10000
3201 8000
3202 7000

manual_group_entry
Can be used to create multiple one line bookings in one group entry. This means that the bookings will have the same reference_nr but can differ in accounts, currencies, etc. The following example shows how two received bank transaction can be booked on different accounts:

debit account credit account amount
1020 3200 13600
1021 3201 7230
date
string <date>

the booking date

reference_nr
string <= 80 characters

A reference number for the booking

required
Array of objects (ManualEntry)

Responses

Request samples

Content type
application/json
{
  • "type": "manual_single_entry",
  • "date": "2019-11-17",
  • "reference_nr": "Booking BA-22",
  • "entries": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "type": "manual_single_entry",
  • "date": "2019-11-17",
  • "reference_nr": "Booking BA-22",
  • "created_by_user_id": 1,
  • "edited_by_user_id": 1,
  • "entries": [
    ],
  • "is_locked": false,
  • "locked_info": "closed_business_year"
}

Get next reference number

This action can be used to get the next reference number for a manual entry

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/accounting/manual_entries/next_ref_nr \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "next_ref_nr": "Booking BA-22"
}

Fetch files of accounting entry line

This action fetches a list of all files associated to a specific manual entry line

Authorizations:
bearerAuth
path Parameters
manual_entry_id
required
integer <int32>
Example: 1

the id of the manual_entry

entry_id
required
integer <int32>
Example: 1

the id of a single entry in the manual_entry object

query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/accounting/manual_entries/{manual_entry_id}/entries/{entry_id}/files \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Add file to accounting entry line

This action upload one or multiple files and attaches the files to an existing accounting entry line

Please note that you must set the content-type to multipart/form-data. You can upload multiple files with one request by providing different identifiers (e.g. fileName1 and fileName2)

Authorizations:
bearerAuth
path Parameters
manual_entry_id
required
integer <int32>
Example: 1

the id of the manual_entry

entry_id
required
integer <int32>
Example: 1

the id of a single entry in the manual_entry object

header Parameters
Accept
required
string
Example: application/json
Request Body schema: multipart/form-data
required
fileName
Array of strings <binary> [ items <binary > ]

Please note that the same request parameter can only be used once. Please use different request parameter for multiple files.

Responses

Request samples

curl -X POST \
  https://api.bexio.com/3.0/accounting/manual_entries/{manual_entry_id}/entries/{entry_id}/files \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Fetch file of accounting entry line

This action fetches a file associated to a specific manual entry line

Authorizations:
bearerAuth
path Parameters
manual_entry_id
required
integer <int32>
Example: 1

the id of the manual_entry

entry_id
required
integer <int32>
Example: 1

the id of a single entry in the manual_entry object

file_id
required
integer <int32>
Example: 1

the id of the file

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/accounting/manual_entries/{manual_entry_id}/entries/{entry_id}/files/{file_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "uuid": "474cc93a-2d6f-47e9-bd3f-a5b5a1941314",
  • "name": "screenshot",
  • "size_in_bytes": 218476,
  • "extension": "png",
  • "mime_type": "image/png",
  • "uploader_email": "contact@example.org",
  • "user_id": 1,
  • "is_archived": false,
  • "source_id": 2,
  • "source_type": "web",
  • "is_referenced": false,
  • "created_at": "2018-06-09T08:52:10+00:00",
  • "data": "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAACXBIWXMAAABIAAAASABGyWs+AAACu0lEQVR42u3TAQkAMBDEsHuYf80T0oRa6G07qdrbDbIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYA0A5BmANIMQJoBSDMAaQYgzQCkGYC0DxplBfxP7XIvAAAAAElFTkSuQmCC"
}

Delete file of accounting entry line

This action permanently deletes a file associated to a specific manual entry line. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
manual_entry_id
required
integer <int32>
Example: 1

the id of the manual_entry

entry_id
required
integer <int32>
Example: 1

the id of a single entry in the manual_entry object

file_id
required
integer <int32>
Example: 1

the id of the currency

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/3.0/accounting/manual_entries/{manual_entry_id}/entries/{entry_id}/files/{file_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Reports

Journal

This action fetches a list of all accounting journal bookings

Authorizations:
bearerAuth
query Parameters
from
string <date>
Example: from=2019-01-01

Can be used to filter for entries after this date

to
string <date>
Example: to=2019-12-31

Can be used to filter for entries until this date

account_uuid
string <uuid>
Example: account_uuid=d591c997-5e88-486b-8fca-48dfd984d45d

Can be used to filter for entries with account with uuid

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/accounting/journal \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Taxes

Fetch a list of taxes

This action fetches a list of all taxes

Authorizations:
bearerAuth
query Parameters
scope
string
Enum: "active" "inactive"
Example: scope=active

Can be used to filter for active or inactive taxes

date
string <date>
Example: date=2018-03-17

Displays all taxes which are active at the date given

types
string
Enum: "sales_tax" "pre_tax"
Example: types=sales_tax

Filter the types of the tax

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/taxes \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a tax

This action fetches a single tax

Authorizations:
bearerAuth
path Parameters
tax_id
required
integer <int32>
Example: 1

the id of the tax

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/taxes/{tax_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "uuid": "8078b1f3-f85b-4adf-aaa8-c3eeea964927",
  • "name": "lib.model.tax.ch.sales_7_7.name",
  • "code": "UN77",
  • "digit": "302",
  • "type": "sales_tax",
  • "account_id": 98,
  • "tax_settlement_type": "none",
  • "value": 7.7,
  • "net_tax_value": null,
  • "start_year": 2017,
  • "end_year": 2018,
  • "is_active": true,
  • "display_name": "ZOLLM - Import Mat/SV 100.00%"
}

Delete a tax

This action permanently deletes a tax. It cannot be undone. Please note that taxes which are used and/or referenced within bexio can not be deleted. In that case, the API will throw a 409 error.

Authorizations:
bearerAuth
path Parameters
tax_id
required
integer <int32>
Example: 1

the id of the tax

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/3.0/taxes/{tax_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Vat Periods

Fetch a list of vat periods

This action fetches a list of all vat periods

Authorizations:
bearerAuth
query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/accounting/vat_periods \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a vat period

This action fetches a single vat period

Authorizations:
bearerAuth
path Parameters
vat_period_id
required
integer <int32>
Example: 1

the id of the vat_period

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/accounting/vat_periods/{vat_period_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "start": "2018-01-01",
  • "end": "2018-03-31",
  • "type": "quarter",
  • "status": "closed",
  • "closed_at": "2018-04-28"
}

Bank Accounts

Fetch a list of bank accounts

This action fetches a list of all bank accounts which are shown on the banking component page

Authorizations:
bearerAuth
query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/banking/accounts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a single bank account

This action fetches a single bank account which is shown on the banking component page

Authorizations:
bearerAuth
path Parameters
bank_account_id
required
integer <int32>

ID of bank account to return

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/banking/accounts/{bank_account_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 4,
  • "name": "UBS",
  • "owner": "Metzgerei Schneider",
  • "owner_address": "Alte Jonastrasse 10",
  • "owner_zip": 8640,
  • "owner_city": "Rapperswil",
  • "bc_nr": 250,
  • "bank_name": "UBS Switzerland AG",
  • "bank_nr": "UBSWCHZH86M",
  • "bank_account_nr": "25010367101Y",
  • "iban_nr": "CH560025025010367101Y",
  • "currency_id": 1,
  • "account_id": 77,
  • "remarks": "This is an additional description",
  • "invoice_mode": "qr_invoice",
  • "qr_invoice_iban": "CH4431999123000889012",
  • "type": "bank"
}

IBAN Payments

Create IBAN payment

This action creates a new payment for the selected bank account

Authorizations:
bearerAuth
path Parameters
bank_account_id
required
integer <int32>

the id of the bank account

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
optional

Payment that needs to be added for the selected bank account

required
object (BankPaymentAmount)
required
object (BankPaymentRecipient)
iban
required
string <= 50 characters

The IBAN of the bank account

execution_date
required
string <date>

The execution date of the payment. The bank holds back the payment until this date is reached. Format (Y-m-d).

is_salary_payment
required
boolean

Describes whether the payment is a salary payment or not

is_editing_restricted
boolean

If this value is set to true, the payment can be edited only by the initial creator. This means that the payment can not be edited within the frontend and by other API clients.

message
string <= 140 characters

This is a free text field where the user can add an additional information for a bank payment

allowance_type
string (AllowanceType)
Enum: "fee_paid_by_sender" "fee_paid_by_recipient" "fee_split" "no_fee"

Can either be

  • "fee_paid_by_sender" (payment initiator has to pay all fees related to the transaction)
  • "fee_paid_by_recipient" (payment recipient has to pay all fees related to the transaction)
  • "fee_split" (fee is split between payment initiator and payment recipient)
  • "no_fee" for domestic payments

The value must always be set for SEPA payments

Responses

Request samples

Content type
application/json
{
  • "instructed_amount": {
    },
  • "recipient": {
    },
  • "iban": "CH8100700110005554634",
  • "execution_date": "2018-03-17",
  • "is_salary_payment": false,
  • "is_editing_restricted": false,
  • "message": "Payment for invoice IV-1202842",
  • "allowance_type": "fee_paid_by_sender"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "uuid": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
  • "type": "iban",
  • "bank_account": {
    },
  • "payment": {
    },
  • "instruction_id": "5a335fe3345a96.14999616",
  • "status": "open",
  • "created_at": "2018-04-09T07:44:10+00:00"
}

Get IBAN payment

This action fetches an IBAN payment which is associated to the specified bank account

Authorizations:
bearerAuth
path Parameters
bank_account_id
required
integer <int32>

the id of the bank account

required
string or integer

ID or UUID of the IBAN payment

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/banking/bank_accounts/{bank_account_id}/iban_payments/{payment_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "uuid": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
  • "type": "iban",
  • "bank_account": {
    },
  • "payment": {
    },
  • "instruction_id": "5a335fe3345a96.14999616",
  • "status": "open",
  • "created_at": "2018-04-09T07:44:10+00:00"
}

Update IBAN payment

This action updates an existing payment for the selected bank account. Please note that a payment can only be edited, when the status is "open".

Please note that you do not have to provide all fields to update a payment.

Authorizations:
bearerAuth
path Parameters
bank_account_id
required
string
required
string or integer

ID or UUID of the IBAN payment

query Parameters
iban
required
integer <int32>

IBAN of the payment bank account

id
required
integer <int32>

ID of the IBAN payment

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required

Payment that needs to be added for the selected bank account

required
object (BankPaymentAmount)
required
object (BankPaymentRecipient)
iban
required
string <= 50 characters

The IBAN of the bank account

execution_date
required
string <date>

The execution date of the payment. The bank holds back the payment until this date is reached. Format (Y-m-d).

is_salary_payment
required
boolean

Describes whether the payment is a salary payment or not

is_editing_restricted
boolean

If this value is set to true, the payment can be edited only by the initial creator. This means that the payment can not be edited within the frontend and by other API clients.

message
string <= 140 characters

This is a free text field where the user can add an additional information for a bank payment

allowance_type
string (AllowanceType)
Enum: "fee_paid_by_sender" "fee_paid_by_recipient" "fee_split" "no_fee"

Can either be

  • "fee_paid_by_sender" (payment initiator has to pay all fees related to the transaction)
  • "fee_paid_by_recipient" (payment recipient has to pay all fees related to the transaction)
  • "fee_split" (fee is split between payment initiator and payment recipient)
  • "no_fee" for domestic payments

The value must always be set for SEPA payments

Responses

Request samples

Content type
application/json
{
  • "instructed_amount": {
    },
  • "recipient": {
    },
  • "iban": "CH8100700110005554634",
  • "execution_date": "2018-03-17",
  • "is_salary_payment": false,
  • "is_editing_restricted": false,
  • "message": "Payment for invoice IV-1202842",
  • "allowance_type": "fee_paid_by_sender"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "uuid": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
  • "type": "iban",
  • "bank_account": {
    },
  • "payment": {
    },
  • "instruction_id": "5a335fe3345a96.14999616",
  • "status": "open",
  • "created_at": "2018-04-09T07:44:10+00:00"
}

QR Payments

Create QR payment

This action creates a new payment for the selected bank account

Authorizations:
bearerAuth
path Parameters
bank_account_id
required
integer <int32>

the id of the bank account

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
optional

Payment that needs to be added for the selected bank account

required
object (BankPaymentAmount)
required
object (BankPaymentRecipient)
iban
string <= 50 characters

The IBAN of the bank account

qr_reference_nr
string <= 27 characters

A QR reference number or creditor reference number

additional_information
string <= 255 characters

Additional information on the payment slip

is_editing_restricted
boolean

If this value is set to true, the payment can be edited only by the initial creator. This means that the payment can not be edited within the frontend and by other API clients.

execution_date
required
string <date>

The execution date of the payment. The bank holds back the payment until this date is reached. Format (Y-m-d).

Responses

Request samples

Content type
application/json
{
  • "instructed_amount": {
    },
  • "recipient": {
    },
  • "iban": "CH8100700110005554634",
  • "qr_reference_nr": "998877000000000000000000634",
  • "additional_information": "//S1/10/5541/11/191210/20/1235/31/191220200108/32/2.5:337.5;3.7:3807.5/40/0:30",
  • "is_editing_restricted": false,
  • "execution_date": "2018-03-17"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "uuid": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
  • "type": "qr",
  • "bank_account": {
    },
  • "payment": {
    },
  • "instruction_id": "5a335fe3345a96.14999616",
  • "status": "open",
  • "created_at": "2018-04-09T07:44:10+00:00"
}

Get QR payment

This action fetches an IBAN payment which is associated to the specified bank account

Authorizations:
bearerAuth
path Parameters
bank_account_id
required
integer <int32>

the id of the bank account

required
string or integer

ID or UUID of the IBAN payment

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/banking/bank_accounts/{bank_account_id}/qr_payments/{payment_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "uuid": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
  • "type": "qr",
  • "bank_account": {
    },
  • "payment": {
    },
  • "instruction_id": "5a335fe3345a96.14999616",
  • "status": "open",
  • "created_at": "2018-04-09T07:44:10+00:00"
}

Update QR payment

This action updates an existing payment for the selected bank account. Please note that a payment can only be edited, when the status is "open".

Please note that you do not have to provide all fields to update a payment.

Authorizations:
bearerAuth
path Parameters
bank_account_id
required
string
required
string or integer

ID or UUID of the IBAN payment

query Parameters
iban
required
integer <int32>

IBAN of the payment bank account

id
required
integer <int32>

ID of the IBAN payment

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required

Payment that needs to be added for the selected bank account

required
object (BankPaymentAmount)
required
object (BankPaymentRecipient)
iban
string <= 50 characters

The IBAN of the bank account

qr_reference_nr
string <= 27 characters

A QR reference number or creditor reference number

additional_information
string <= 255 characters

Additional information on the payment slip

is_editing_restricted
boolean

If this value is set to true, the payment can be edited only by the initial creator. This means that the payment can not be edited within the frontend and by other API clients.

execution_date
required
string <date>

The execution date of the payment. The bank holds back the payment until this date is reached. Format (Y-m-d).

Responses

Request samples

Content type
application/json
{
  • "instructed_amount": {
    },
  • "recipient": {
    },
  • "iban": "CH8100700110005554634",
  • "qr_reference_nr": "998877000000000000000000634",
  • "additional_information": "//S1/10/5541/11/191210/20/1235/31/191220200108/32/2.5:337.5;3.7:3807.5/40/0:30",
  • "is_editing_restricted": false,
  • "execution_date": "2018-03-17"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "uuid": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
  • "type": "qr",
  • "bank_account": {
    },
  • "payment": {
    },
  • "instruction_id": "5a335fe3345a96.14999616",
  • "status": "open",
  • "created_at": "2018-04-09T07:44:10+00:00"
}

Payments

Fetch a list of payments

This action fetches all payments

Authorizations:
bearerAuth
query Parameters
from
string <date>

Filter payments by their date starting from the specified date (Format: Y-m-d)

to
string <date>

Filter payments by their date ranging to the specified date (Format: Y-m-d)

string or integer

Filter payments by the referenced bill

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/banking/payments \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "uuid": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
  • "type": "iban",
  • "bank_account": {
    },
  • "payment": {
    },
  • "instruction_id": "5a335fe3345a96.14999616",
  • "status": "open",
  • "created_at": "2018-04-09T07:44:10+00:00"
}

Cancel a payment

This action cancels an existing payment. Please note that a payment can only be cancelled when the status is "downloaded", "transferred" or "error".

Authorizations:
bearerAuth
path Parameters
required
string or integer

ID or UUID of the payment

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X POST \
  https://api.bexio.com/3.0/banking/payments/{payment_id}/cancel \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "uuid": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
  • "type": "iban",
  • "bank_account": {
    },
  • "payment": {
    },
  • "instruction_id": "5a335fe3345a96.14999616",
  • "status": "open",
  • "created_at": "2018-04-09T07:44:10+00:00"
}

Delete a payment

This action permanently deletes an existing payment. It cannot be undone. Please note that a payment can only be deleted when the status is "open".

Authorizations:
bearerAuth
path Parameters
required
string or integer

ID or UUID of the payment

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/3.0/banking/payments/{payment_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Items

Fetch a list of items

This action fetches a list of all items / products

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "intern_name"
Example: order_by=intern_name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/article \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create item

This action creates a new item

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
user_id
integer

References a user object

article_type_id
integer

Please use the value 1 for physical products or 2 for services

contact_id
integer or null

References a contact object

deliverer_code
string or null
deliverer_name
string or null
deliverer_description
string or null
intern_code
string
intern_name
string
intern_description
string or null
purchase_price
number or null
sale_price
number or null
purchase_total
number or null
sale_total
number or null
currency_id
integer or null

References a currency object

tax_income_id
integer or null

References a tax object

tax_expense_id
integer or null

References a tax object

unit_id
integer or null

References a unit object

is_stock
boolean
stock_id
integer or null

References a stock location object

stock_place_id
integer or null

References a stock area object

stock_nr
integer

Please note that the stock number can only be set if no bookings for this product have been made.

stock_min_nr
integer
width
integer or null
height
integer or null
weight
integer or null
volume
integer or null
html_text
string or null
Deprecated
remarks
string or null
delivery_price
number or null
article_group_id
integer or null

Responses

Request samples

Content type
application/json
{
  • "user_id": 1,
  • "article_type_id": 1,
  • "contact_id": 14,
  • "deliverer_code": null,
  • "deliverer_name": null,
  • "deliverer_description": null,
  • "intern_code": "wh-2019",
  • "intern_name": "Webhosting",
  • "intern_description": null,
  • "purchase_price": null,
  • "sale_price": null,
  • "purchase_total": null,
  • "sale_total": null,
  • "currency_id": null,
  • "tax_income_id": null,
  • "tax_expense_id": null,
  • "unit_id": null,
  • "is_stock": false,
  • "stock_id": null,
  • "stock_place_id": null,
  • "stock_nr": 0,
  • "stock_min_nr": 0,
  • "width": null,
  • "height": null,
  • "weight": null,
  • "volume": null,
  • "html_text": null,
  • "remarks": null,
  • "delivery_price": null,
  • "article_group_id": null
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "user_id": 1,
  • "article_type_id": 1,
  • "contact_id": 14,
  • "deliverer_code": null,
  • "deliverer_name": null,
  • "deliverer_description": null,
  • "intern_code": "wh-2019",
  • "intern_name": "Webhosting",
  • "intern_description": null,
  • "purchase_price": null,
  • "sale_price": null,
  • "purchase_total": null,
  • "sale_total": null,
  • "currency_id": null,
  • "tax_income_id": null,
  • "tax_id": null,
  • "tax_expense_id": null,
  • "unit_id": null,
  • "is_stock": false,
  • "stock_id": null,
  • "stock_place_id": null,
  • "stock_nr": 0,
  • "stock_min_nr": 0,
  • "stock_reserved_nr": 0,
  • "stock_available_nr": 0,
  • "stock_picked_nr": 0,
  • "stock_disposed_nr": 0,
  • "stock_ordered_nr": 0,
  • "width": null,
  • "height": null,
  • "weight": null,
  • "volume": null,
  • "html_text": null,
  • "remarks": null,
  • "delivery_price": null,
  • "article_group_id": null
}

Search items

Search items via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • intern_name
  • intern_code
Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "intern_name"
Example: order_by=intern_name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Fetch an item

This action fetches a single item

Authorizations:
bearerAuth
path Parameters
article_id
required
integer <int32>
Example: 1

the id of the item

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/article/{article_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 4,
  • "user_id": 1,
  • "article_type_id": 1,
  • "contact_id": 14,
  • "deliverer_code": null,
  • "deliverer_name": null,
  • "deliverer_description": null,
  • "intern_code": "wh-2019",
  • "intern_name": "Webhosting",
  • "intern_description": null,
  • "purchase_price": null,
  • "sale_price": null,
  • "purchase_total": null,
  • "sale_total": null,
  • "currency_id": null,
  • "tax_income_id": null,
  • "tax_id": null,
  • "tax_expense_id": null,
  • "unit_id": null,
  • "is_stock": false,
  • "stock_id": null,
  • "stock_place_id": null,
  • "stock_nr": 0,
  • "stock_min_nr": 0,
  • "stock_reserved_nr": 0,
  • "stock_available_nr": 0,
  • "stock_picked_nr": 0,
  • "stock_disposed_nr": 0,
  • "stock_ordered_nr": 0,
  • "width": null,
  • "height": null,
  • "weight": null,
  • "volume": null,
  • "html_text": null,
  • "remarks": null,
  • "delivery_price": null,
  • "article_group_id": null
}

Edit an item

This action edits a single item

Authorizations:
bearerAuth
path Parameters
article_id
required
integer <int32>
Example: 1

the id of the item

Request Body schema: application/json
user_id
integer

References a user object

article_type_id
integer

Please use the value 1 for physical products or 2 for services

contact_id
integer or null

References a contact object

deliverer_code
string or null
deliverer_name
string or null
deliverer_description
string or null
intern_code
string
intern_name
string
intern_description
string or null
purchase_price
number or null
sale_price
number or null
purchase_total
number or null
sale_total
number or null
currency_id
integer or null

References a currency object

tax_income_id
integer or null

References a tax object

tax_expense_id
integer or null

References a tax object

unit_id
integer or null

References a unit object

is_stock
boolean
stock_id
integer or null

References a stock location object

stock_place_id
integer or null

References a stock area object

stock_nr
integer

Please note that the stock number can only be set if no bookings for this product have been made.

stock_min_nr
integer
width
integer or null
height
integer or null
weight
integer or null
volume
integer or null
html_text
string or null
Deprecated
remarks
string or null
delivery_price
number or null
article_group_id
integer or null

Responses

Request samples

Content type
application/json
{
  • "user_id": 1,
  • "article_type_id": 1,
  • "contact_id": 14,
  • "deliverer_code": null,
  • "deliverer_name": null,
  • "deliverer_description": null,
  • "intern_code": "wh-2019",
  • "intern_name": "Webhosting",
  • "intern_description": null,
  • "purchase_price": null,
  • "sale_price": null,
  • "purchase_total": null,
  • "sale_total": null,
  • "currency_id": null,
  • "tax_income_id": null,
  • "tax_expense_id": null,
  • "unit_id": null,
  • "is_stock": false,
  • "stock_id": null,
  • "stock_place_id": null,
  • "stock_nr": 0,
  • "stock_min_nr": 0,
  • "width": null,
  • "height": null,
  • "weight": null,
  • "volume": null,
  • "html_text": null,
  • "remarks": null,
  • "delivery_price": null,
  • "article_group_id": null
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "user_id": 1,
  • "article_type_id": 1,
  • "contact_id": 14,
  • "deliverer_code": null,
  • "deliverer_name": null,
  • "deliverer_description": null,
  • "intern_code": "wh-2019",
  • "intern_name": "Webhosting",
  • "intern_description": null,
  • "purchase_price": null,
  • "sale_price": null,
  • "purchase_total": null,
  • "sale_total": null,
  • "currency_id": null,
  • "tax_income_id": null,
  • "tax_id": null,
  • "tax_expense_id": null,
  • "unit_id": null,
  • "is_stock": false,
  • "stock_id": null,
  • "stock_place_id": null,
  • "stock_nr": 0,
  • "stock_min_nr": 0,
  • "stock_reserved_nr": 0,
  • "stock_available_nr": 0,
  • "stock_picked_nr": 0,
  • "stock_disposed_nr": 0,
  • "stock_ordered_nr": 0,
  • "width": null,
  • "height": null,
  • "weight": null,
  • "volume": null,
  • "html_text": null,
  • "remarks": null,
  • "delivery_price": null,
  • "article_group_id": null
}

Delete an item

This action permanently deletes an item. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
article_id
required
integer <int32>
Example: 1

the id of the item

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/article/{article_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Stock locations

Fetch a list of stock locations

This action fetches a list of all stock locations

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/stock \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Search stock locations

Search stock locations via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • name
Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Stock Areas

Fetch a list of stock areas

This action fetches a list of all stock areas

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/stock_place \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Search stock areas

Search stock areas via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • name
  • stock_id
Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Projects

Fetch a list of projects

This action fetches a list of all projects

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/pr_project \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create project

This action creates a new project

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
name
required
string
start_date
string or null <date-time>
end_date
string or null <date-time>
comment
string
pr_state_id
required
integer

References a project status object

pr_project_type_id
required
integer

References a project type object

contact_id
required
integer

References a contact object

contact_sub_id
integer or null

References a contact object

pr_invoice_type_id
integer or null

The following invoice types are available:

Id Name Description
1 type_hourly_rate_service Hourly rate for client services
2 type_hourly_rate_employee Hourly rate for employee
3 type_hourly_rate_project Hourly rate for project
4 type_fix Fix price for project
pr_invoice_type_amount
string

This field can only be edited if the pr_invoice_type is set. (Only supported for invoice types: type_hourly_rate_project and type_fix)

pr_budget_type_id
number or null

The following budget types are available:

Id Name Description
1 type_budgeted_costs Total budget costs
2 type_budgeted_hours Total budget hours
3 type_service_budget Budget for each client services
4 type_service_employees Budget for each employee
pr_budget_type_amount
string

This field can only be edited if the pr_budget_type is set. (Only supported for budget types: type_budgeted_costs and type_budgeted_hours)

user_id
required
integer

References a user object

Responses

Request samples

Content type
application/json
{
  • "name": "Villa Kunterbunt",
  • "start_date": "2019-07-12 00:00:00",
  • "end_date": null,
  • "comment": "",
  • "pr_state_id": 2,
  • "pr_project_type_id": 2,
  • "contact_id": 2,
  • "contact_sub_id": null,
  • "pr_invoice_type_id": 3,
  • "pr_invoice_type_amount": "230.00",
  • "pr_budget_type_id": 1,
  • "pr_budget_type_amount": "200.00",
  • "user_id": 1
}

Response samples

Content type
application/json
{
  • "id": 2,
  • "uuid": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
  • "nr": "000002",
  • "name": "Villa Kunterbunt",
  • "start_date": "2019-07-12 00:00:00",
  • "end_date": null,
  • "comment": "",
  • "pr_state_id": 2,
  • "pr_project_type_id": 2,
  • "contact_id": 2,
  • "contact_sub_id": null,
  • "pr_invoice_type_id": 3,
  • "pr_invoice_type_amount": "230.00",
  • "pr_budget_type_id": 1,
  • "pr_budget_type_amount": "200.00"
}

Search projects

Search projects via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • name
  • contact_id
  • pr_state_id
Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a project

This action fetches a single project

Authorizations:
bearerAuth
path Parameters
project_id
required
integer <int32>
Example: 1

the id of the project

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/pr_project/{project_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 2,
  • "uuid": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
  • "nr": "000002",
  • "name": "Villa Kunterbunt",
  • "start_date": "2019-07-12 00:00:00",
  • "end_date": null,
  • "comment": "",
  • "pr_state_id": 2,
  • "pr_project_type_id": 2,
  • "contact_id": 2,
  • "contact_sub_id": null,
  • "pr_invoice_type_id": 3,
  • "pr_invoice_type_amount": "230.00",
  • "pr_budget_type_id": 1,
  • "pr_budget_type_amount": "200.00"
}

Edit a project

This action edits a single project

Authorizations:
bearerAuth
path Parameters
project_id
required
integer <int32>
Example: 1

the id of the project

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
name
required
string
start_date
string or null <date-time>
end_date
string or null <date-time>
comment
string
pr_state_id
required
integer

References a project status object

pr_project_type_id
required
integer

References a project type object

contact_id
required
integer

References a contact object

contact_sub_id
integer or null

References a contact object

pr_invoice_type_id
integer or null

The following invoice types are available:

Id Name Description
1 type_hourly_rate_service Hourly rate for client services
2 type_hourly_rate_employee Hourly rate for employee
3 type_hourly_rate_project Hourly rate for project
4 type_fix Fix price for project
pr_invoice_type_amount
string

This field can only be edited if the pr_invoice_type is set. (Only supported for invoice types: type_hourly_rate_project and type_fix)

pr_budget_type_id
number or null

The following budget types are available:

Id Name Description
1 type_budgeted_costs Total budget costs
2 type_budgeted_hours Total budget hours
3 type_service_budget Budget for each client services
4 type_service_employees Budget for each employee
pr_budget_type_amount
string

This field can only be edited if the pr_budget_type is set. (Only supported for budget types: type_budgeted_costs and type_budgeted_hours)

user_id
required
integer

References a user object

Responses

Request samples

Content type
application/json
{
  • "name": "Villa Kunterbunt",
  • "start_date": "2019-07-12 00:00:00",
  • "end_date": null,
  • "comment": "",
  • "pr_state_id": 2,
  • "pr_project_type_id": 2,
  • "contact_id": 2,
  • "contact_sub_id": null,
  • "pr_invoice_type_id": 3,
  • "pr_invoice_type_amount": "230.00",
  • "pr_budget_type_id": 1,
  • "pr_budget_type_amount": "200.00",
  • "user_id": 1
}

Response samples

Content type
application/json
{
  • "id": 2,
  • "uuid": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
  • "nr": "000002",
  • "name": "Villa Kunterbunt",
  • "start_date": "2019-07-12 00:00:00",
  • "end_date": null,
  • "comment": "",
  • "pr_state_id": 2,
  • "pr_project_type_id": 2,
  • "contact_id": 2,
  • "contact_sub_id": null,
  • "pr_invoice_type_id": 3,
  • "pr_invoice_type_amount": "230.00",
  • "pr_budget_type_id": 1,
  • "pr_budget_type_amount": "200.00"
}

Delete a project

This action permanently deletes a project. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
project_id
required
integer <int32>
Example: 1

the id of the project

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/pr_project/{project_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Archive a project

This action archives a project

Authorizations:
bearerAuth
path Parameters
project_id
required
integer <int32>
Example: 1

the id of the project

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X POST \
  https://api.bexio.com/2.0/pr_project/{project_id}/archive \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Unarchive a project

This action unarchives an archived project

Authorizations:
bearerAuth
path Parameters
project_id
required
integer <int32>
Example: 1

the id of the project

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X POST \
  https://api.bexio.com/2.0/pr_project/{project_id}/reactivate \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Project status

This action fetches a list of project status

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/pr_project_state \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Project types

This action fetches a list of project types

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/pr_project_type \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a list of milestones

This action fetches a list of all milestones for a given project

Authorizations:
bearerAuth
path Parameters
project_id
required
integer <int32>
Example: 1

the id of the project

query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/projects/{project_id}/milestones \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create milestone

This action creates a new milestone

Authorizations:
bearerAuth
path Parameters
project_id
required
integer <int32>
Example: 1

the id of the project

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
name
required
string <= 255 characters

The name of the milestone

end_date
string <date>

The end date for the milestone

comment
string <= 10000 characters

Description for milestone

pr_parent_milestone_id
integer <int32>

Higher level milestone

Responses

Request samples

Content type
application/json
{
  • "name": "project documentation",
  • "end_date": "2018-05-18",
  • "comment": "Finish project documentation.",
  • "pr_parent_milestone_id": 3
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "name": "project documentation",
  • "end_date": "2018-05-18",
  • "comment": "Finish project documentation.",
  • "pr_parent_milestone_id": 3
}

Fetch a milestone

This action fetches a single milestone

Authorizations:
bearerAuth
path Parameters
project_id
required
integer <int32>
Example: 1

the id of the project

milestone_id
required
integer <int32>
Example: 3

the id of the milestone

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/projects/{project_id}/milestones/{milestone_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 4,
  • "name": "project documentation",
  • "end_date": "2018-05-18",
  • "comment": "Finish project documentation.",
  • "pr_parent_milestone_id": 3
}

Edit a milestone

This action edits a single milestone

Authorizations:
bearerAuth
path Parameters
project_id
required
integer <int32>
Example: 1

the id of the project

milestone_id
required
integer <int32>
Example: 3

the id of the milestone

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
name
required
string <= 255 characters

The name of the milestone

end_date
string <date>

The end date for the milestone

comment
string <= 10000 characters

Description for milestone

pr_parent_milestone_id
integer <int32>

Higher level milestone

Responses

Request samples

Content type
application/json
{
  • "name": "project documentation",
  • "end_date": "2018-05-18",
  • "comment": "Finish project documentation.",
  • "pr_parent_milestone_id": 3
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "name": "project documentation",
  • "end_date": "2018-05-18",
  • "comment": "Finish project documentation.",
  • "pr_parent_milestone_id": 3
}

Delete a milestone

This action permanently deletes a milestone. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
project_id
required
integer <int32>
Example: 1

the id of the project

milestone_id
required
integer <int32>
Example: 3

the id of the milestone

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/3.0/projects/{project_id}/milestones/{milestone_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Fetch a list of work packages

This action fetches a list of all work packages for a given project

Authorizations:
bearerAuth
path Parameters
project_id
required
integer <int32>
Example: 1

the id of the project

query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/projects/{project_id}/packages \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create work package

This action creates a new work package

Authorizations:
bearerAuth
path Parameters
project_id
required
integer <int32>
Example: 1

the id of the project

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
name
required
string <= 255 characters

The name of the work package

spent_time_in_hours
number

time spent on work package

estimated_time_in_hours
number

estimated time on work package

comment
string <= 10000 characters

Description for work package

pr_milestone_id
integer <int32>

References a milestone object

Responses

Request samples

Content type
application/json
{
  • "name": "Documentation",
  • "spent_time_in_hours": 0.5,
  • "estimated_time_in_hours": 1.75,
  • "comment": "Crete project documentation",
  • "pr_milestone_id": 3
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "name": "Documentation",
  • "spent_time_in_hours": 0.5,
  • "estimated_time_in_hours": 1.75,
  • "comment": "Crete project documentation",
  • "pr_milestone_id": 3
}

Fetch a work package

This action fetches a single work package

Authorizations:
bearerAuth
path Parameters
project_id
required
integer <int32>
Example: 1

the id of the project

package_id
required
integer <int32>
Example: 3

the id of the work package

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/projects/{project_id}/packages/{package_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 4,
  • "name": "Documentation",
  • "spent_time_in_hours": 0.5,
  • "estimated_time_in_hours": 1.75,
  • "comment": "Crete project documentation",
  • "pr_milestone_id": 3
}

Delete a work package

This action permanently deletes a work package. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
project_id
required
integer <int32>
Example: 1

the id of the project

package_id
required
integer <int32>
Example: 3

the id of the work package

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/3.0/projects/{project_id}/packages/{package_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Edit a work package

This action edits a single work package

Authorizations:
bearerAuth
path Parameters
project_id
required
integer <int32>
Example: 1

the id of the project

package_id
required
integer <int32>
Example: 3

the id of the work package

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
name
required
string <= 255 characters

The name of the work package

spent_time_in_hours
number

time spent on work package

estimated_time_in_hours
number

estimated time on work package

comment
string <= 10000 characters

Description for work package

pr_milestone_id
integer <int32>

References a milestone object

Responses

Request samples

Content type
application/json
{
  • "name": "Documentation",
  • "spent_time_in_hours": 0.5,
  • "estimated_time_in_hours": 1.75,
  • "comment": "Crete project documentation",
  • "pr_milestone_id": 3
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "name": "Documentation",
  • "spent_time_in_hours": 0.5,
  • "estimated_time_in_hours": 1.75,
  • "comment": "Crete project documentation",
  • "pr_milestone_id": 3
}

Timesheets

Fetch a list of timesheets

This action fetches a list of all timesheets

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "date"
Example: order_by=date

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/timesheet \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create timesheet

This action creates a new timesheet

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
user_id
required
integer

References a user object

status_id
integer
client_service_id
required
integer
text
string
allowable_bill
required
boolean
charge
string or null
contact_id
integer or null

References a contact object

sub_contact_id
integer or null

References a contact object

pr_project_id
integer or null

References a project object

pr_package_id
integer or null
pr_milestone_id
integer or null
estimated_time
string or null
required
TimesheetDuration (object) or TimesheetRange (object)

Two different formats can be used to submit the tracked time. Either type range or type duration.

Responses

Request samples

Content type
application/json
{
  • "user_id": 1,
  • "status_id": 4,
  • "client_service_id": 1,
  • "text": "",
  • "allowable_bill": true,
  • "charge": null,
  • "contact_id": 2,
  • "sub_contact_id": null,
  • "pr_project_id": null,
  • "pr_package_id": null,
  • "pr_milestone_id": null,
  • "estimated_time": "02:30",
  • "tracking": {
    }
}

Response samples

Content type
application/json
{
  • "id": 2,
  • "user_id": 1,
  • "status_id": 4,
  • "client_service_id": 1,
  • "text": "",
  • "allowable_bill": true,
  • "charge": null,
  • "contact_id": 2,
  • "sub_contact_id": null,
  • "pr_project_id": null,
  • "pr_package_id": null,
  • "pr_milestone_id": null,
  • "travel_time": null,
  • "travel_charge": null,
  • "travel_distance": 0,
  • "estimated_time": "02:30",
  • "date": "2019-05-20",
  • "duration": "01:40",
  • "running": false,
  • "tracking": {
    }
}

Search timesheets

Search timesheets via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • id
  • client_service_id
  • contact_id
  • user_id
  • pr_project_id
  • status_id
Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "date"
Example: order_by=date

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a timesheet

This action fetches a single timesheet

Authorizations:
bearerAuth
path Parameters
timesheet_id
required
integer <int32>
Example: 1

the id of the timesheet

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/timesheet/{timesheet_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 2,
  • "user_id": 1,
  • "status_id": 4,
  • "client_service_id": 1,
  • "text": "",
  • "allowable_bill": true,
  • "charge": null,
  • "contact_id": 2,
  • "sub_contact_id": null,
  • "pr_project_id": null,
  • "pr_package_id": null,
  • "pr_milestone_id": null,
  • "travel_time": null,
  • "travel_charge": null,
  • "travel_distance": 0,
  • "estimated_time": "02:30",
  • "date": "2019-05-20",
  • "duration": "01:40",
  • "running": false,
  • "tracking": {
    }
}

Edit a timesheet

This action edits a single timesheet

Authorizations:
bearerAuth
path Parameters
timesheet_id
required
integer <int32>
Example: 1

the id of the timesheet

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
user_id
required
integer

References a user object

status_id
integer
client_service_id
required
integer
text
string
allowable_bill
required
boolean
charge
string or null
contact_id
integer or null

References a contact object

sub_contact_id
integer or null

References a contact object

pr_project_id
integer or null

References a project object

pr_package_id
integer or null
pr_milestone_id
integer or null
estimated_time
string or null
required
TimesheetDuration (object) or TimesheetRange (object)

Two different formats can be used to submit the tracked time. Either type range or type duration.

Responses

Request samples

Content type
application/json
{
  • "user_id": 1,
  • "status_id": 4,
  • "client_service_id": 1,
  • "text": "",
  • "allowable_bill": true,
  • "charge": null,
  • "contact_id": 2,
  • "sub_contact_id": null,
  • "pr_project_id": null,
  • "pr_package_id": null,
  • "pr_milestone_id": null,
  • "estimated_time": "02:30",
  • "tracking": {
    }
}

Response samples

Content type
application/json
{
  • "id": 2,
  • "user_id": 1,
  • "status_id": 4,
  • "client_service_id": 1,
  • "text": "",
  • "allowable_bill": true,
  • "charge": null,
  • "contact_id": 2,
  • "sub_contact_id": null,
  • "pr_project_id": null,
  • "pr_package_id": null,
  • "pr_milestone_id": null,
  • "travel_time": null,
  • "travel_charge": null,
  • "travel_distance": 0,
  • "estimated_time": "02:30",
  • "date": "2019-05-20",
  • "duration": "01:40",
  • "running": false,
  • "tracking": {
    }
}

Delete a timesheet

This action permanently deletes a timesheet. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
timesheet_id
required
integer <int32>
Example: 1

the id of the timesheet

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/timesheet/{timesheet_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Timesheet status

This action fetches a list of all timesheet Status

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/timesheet_status \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Business Activities

Fetch a list of business activities

This action fetches a list of all business activities

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/client_service \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create business activity

This action creates a new business activity

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
name
required
string
default_is_billable
boolean or null
default_price_per_hour
number or null
account_id
integer or null

References an account object

Responses

Request samples

Content type
application/json
{
  • "name": "Project Management",
  • "default_is_billable": false,
  • "default_price_per_hour": null,
  • "account_id": null
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Project Management",
  • "default_is_billable": false,
  • "default_price_per_hour": null,
  • "account_id": null
}

Search business activities

Search business activities via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • name
Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Communication Types

Fetch a list of communication types

This action fetches a list of all communication types

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/communication_kind \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Search communication types

Search communication types via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • name
Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Files

Fetch a list of files

This action provides a list of files which are uploaded to a certain company

Authorizations:
bearerAuth
query Parameters
archived_state
string
Example: archived_state=all

Include/Exclude archived files via filter (all, archived, not_archived)

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/files \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create new file

Creates a new file from payload

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: multipart/form-data
required

Upload file

file
required
string <binary> <= 255 characters

Input path to file

Responses

Request samples

Content type
multipart/form-data
{
  "name": "form-data",
  "value": "@\"/path-to-your-file\""
}

Response samples

Content type
application/json
[
  • {
    }
]

Search files

Search files via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • id
  • uuid
  • created_at
  • name
  • extension
  • size_in_bytes
  • mime_type
  • user_id
  • is_archived
  • source_id
Authorizations:
bearerAuth
query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (SearchCriteria)
Default: "like"
Enum: "=" "==" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Get single file

Tries to query the requested file from the backend

Authorizations:
bearerAuth
path Parameters
file_id
required
integer <int32>
Example: 1

File ID to show

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/files/{file_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "uuid": "474cc93a-2d6f-47e9-bd3f-a5b5a1941314",
  • "name": "screenshot",
  • "size_in_bytes": 218476,
  • "extension": "png",
  • "mime_type": "image/png",
  • "uploader_email": "contact@example.org",
  • "user_id": 1,
  • "is_archived": false,
  • "source_id": 2,
  • "source_type": "web",
  • "is_referenced": false,
  • "created_at": "2018-06-09T08:52:10+00:00"
}

Delete a existing file

Sets state of a file to deleted. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
file_id
required
integer <int32>
Example: 1

File ID to show

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/3.0/files/{file_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Update existing file

Updates a existing file with provided properties

Authorizations:
bearerAuth
path Parameters
file_id
required
integer <int32>
Example: 1

File ID to show

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required

Update file

name
string <= 255 characters

The name of the file

is_archived
boolean

Define archived state

source_type
string or null
Enum: "web" "email" "mobile"

type of the source (web, mobile, etc.) this file has been uploaded from

Responses

Request samples

Content type
application/json
{
  • "name": "screenshot",
  • "is_archived": true,
  • "source_type": "web"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "uuid": "474cc93a-2d6f-47e9-bd3f-a5b5a1941314",
  • "name": "screenshot",
  • "size_in_bytes": 218476,
  • "extension": "png",
  • "mime_type": "image/png",
  • "uploader_email": "contact@example.org",
  • "user_id": 1,
  • "is_archived": false,
  • "source_id": 2,
  • "source_type": "web",
  • "is_referenced": false,
  • "created_at": "2018-06-09T08:52:10+00:00"
}

Download file

Provides requested file from backend as stream

Authorizations:
bearerAuth
path Parameters
file_id
required
integer <int32>
Example: 1

File ID to show

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/files/{file_id}/download \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
"string"

Get file preview

Provides requested preview for file from backend as stream

Authorizations:
bearerAuth
path Parameters
file_id
required
integer <int32>
Example: 1

File ID to get preview file

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/files/{file_id}/preview \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
"string"

Show file usage

Tries to query the requested file from the backend

Authorizations:
bearerAuth
path Parameters
file_id
required
integer <int32>
Example: 1

File ID to show

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/files/{file_id}/usage \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "ref_class": "KbInvoice",
  • "title": "RE-00001",
  • "document_nr": "RE-00001"
}

Company Profile

Fetch a list of company profiles

Please note that each account currently has only one company profile.

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/company_profile \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Show company profile

This action fetches a single company profile

Authorizations:
bearerAuth
path Parameters
profile_id
required
integer <int32>
Example: 1

the id of the company profile

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/company_profile/{profile_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "bexio AG",
  • "address": "Alte Jonastrasse 24",
  • "address_nr": "",
  • "postcode": 8640,
  • "city": "Rapperswil",
  • "country_id": 1,
  • "legal_form": "association",
  • "country_name": "Switzerland",
  • "mail": "info@bexio.com",
  • "phone_fixed": "+41 (0)71 552 00 60",
  • "phone_mobile": "+41 (0)79 123 45 67",
  • "fax": "",
  • "skype_name": "",
  • "facebook_name": "",
  • "twitter_name": "",
  • "description": "",
  • "ust_id_nr": "CHE-322.646.985",
  • "mwst_nr": "CHE-322.646.985 MWST",
  • "trade_register_nr": "",
  • "has_own_logo": true,
  • "is_public_profile": false,
  • "is_logo_public": false,
  • "is_address_public": false,
  • "is_phone_public": false,
  • "is_mobile_public": false,
  • "is_fax_public": false,
  • "is_mail_public": false,
  • "is_url_public": false,
  • "is_skype_public": false,
  • "logo_base64": "R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="
}

Countries

Fetch a list of countries

This action fetches a list of all countries

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name" "name_short"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/country \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create country

This action creates a new country

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
name
required
string
name_short
required
string
iso3166_alpha2
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "Kiribati",
  • "name_short": "KI",
  • "iso3166_alpha2": "KI"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Kiribati",
  • "name_short": "KI",
  • "iso3166_alpha2": "KI"
}

Search countries

Search countries via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • name
  • name_short
Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name" "name_short"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a country

This action fetches a single country

Authorizations:
bearerAuth
path Parameters
country_id
required
integer <int32>
Example: 1

the id of the country

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/country/{country_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Kiribati",
  • "name_short": "KI",
  • "iso3166_alpha2": "KI"
}

Edit a country

This action edits a single country

Authorizations:
bearerAuth
path Parameters
country_id
required
integer <int32>
Example: 1

the id of the country

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
name
required
string
name_short
required
string
iso3166_alpha2
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "Kiribati",
  • "name_short": "KI",
  • "iso3166_alpha2": "KI"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Kiribati",
  • "name_short": "KI",
  • "iso3166_alpha2": "KI"
}

Delete a country

This action permanently deletes a country. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
country_id
required
integer <int32>
Example: 1

the id of the country

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/country/{country_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Languages

Fetch a list of languages

This action fetches a list of all languages

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/language \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Search languages

Search languages via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • name
  • iso_639_1
Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Notes

Fetch a list of notes

This action fetches a list of all notes

Authorizations:
bearerAuth
query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/note \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create note

This action creates a new note

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
user_id
required
integer

References a user object

event_start
required
string <date-time>
subject
required
string
info
string
contact_id
integer or null

References a contact object

pr_project_id
integer or null

References a project object

entry_id
integer or null
module_id
integer or null

Responses

Request samples

Content type
application/json
{
  • "user_id": 1,
  • "event_start": "2019-01-16 14:20:00",
  • "subject": "API conception",
  • "info": "string",
  • "contact_id": 14,
  • "pr_project_id": null,
  • "entry_id": null,
  • "module_id": null
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "user_id": 1,
  • "event_start": "2019-01-16 14:20:00",
  • "subject": "API conception",
  • "info": "string",
  • "contact_id": 14,
  • "project_id": null,
  • "entry_id": null,
  • "module_id": null
}

Search notes

Search notes via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • event_start
  • contact_id
  • user_id
  • subject
  • module_id
  • entry_id
Authorizations:
bearerAuth
query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a note

This action fetches a single note

Authorizations:
bearerAuth
path Parameters
note_id
required
integer <int32>
Example: 1

the id of the note

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/note/{note_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 4,
  • "user_id": 1,
  • "event_start": "2019-01-16 14:20:00",
  • "subject": "API conception",
  • "info": "string",
  • "contact_id": 14,
  • "project_id": null,
  • "entry_id": null,
  • "module_id": null
}

Edit a note

This action edits a single note

Authorizations:
bearerAuth
path Parameters
note_id
required
integer <int32>
Example: 1

the id of the note

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
user_id
required
integer

References a user object

event_start
required
string <date-time>
subject
required
string
info
string
contact_id
integer or null

References a contact object

pr_project_id
integer or null

References a project object

entry_id
integer or null
module_id
integer or null

Responses

Request samples

Content type
application/json
{
  • "user_id": 1,
  • "event_start": "2019-01-16 14:20:00",
  • "subject": "API conception",
  • "info": "string",
  • "contact_id": 14,
  • "pr_project_id": null,
  • "entry_id": null,
  • "module_id": null
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "user_id": 1,
  • "event_start": "2019-01-16 14:20:00",
  • "subject": "API conception",
  • "info": "string",
  • "contact_id": 14,
  • "project_id": null,
  • "entry_id": null,
  • "module_id": null
}

Delete a note

This action permanently deletes a note. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
note_id
required
integer <int32>
Example: 1

the id of the note

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/note/{note_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Payment Types

Fetch a list of payment types

This action fetches a list of all payment types

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name" "name_short"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/payment_type \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Search payment types

Search payment types via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • name
Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name" "name_short"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Permissions

Get access information of logged in user

Get components and user permissions of logged in user

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/permissions \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "components": [
    ],
  • "permissions": {
    }
}

Tasks

Fetch a list of tasks

This action fetches a list of all tasks

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "finish_date"
Example: order_by=finish_date

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/task \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create task

This action creates a new task

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
user_id
required
integer <int32>

References a user object

finish_date
string or null <date-time>
subject
required
string
info
string
contact_id
integer <int32>

References a contact object

sub_contact_id
integer or null

References a contact object

pr_project_id
integer or null

References a project object

entry_id
integer or null
module_id
integer or null
todo_status_id
integer <int32>
todo_priority_id
integer or null
have_remember
boolean
remember_type_id
integer <nullable>

Is required if have_remember is set to true.

remember_time_id
integer or null

Is required if have_remember is set to true.

communication_kind_id
integer or null

Responses

Request samples

Content type
application/json
{
  • "user_id": 1,
  • "finish_date": "2018-04-09T07:44:10+00:00",
  • "subject": "Unterlagen versenden",
  • "info": "so schnell wie möglich.",
  • "contact_id": 1,
  • "sub_contact_id": null,
  • "pr_project_id": null,
  • "entry_id": null,
  • "module_id": null,
  • "todo_status_id": 1,
  • "todo_priority_id": null,
  • "have_remember": false,
  • "remember_type_id": null,
  • "remember_time_id": null,
  • "communication_kind_id": null
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "user_id": 1,
  • "finish_date": "2018-04-09T07:44:10+00:00",
  • "subject": "Unterlagen versenden",
  • "place": 0,
  • "info": "so schnell wie möglich.",
  • "contact_id": 1,
  • "sub_contact_id": null,
  • "project_id": null,
  • "entry_id": null,
  • "module_id": null,
  • "todo_status_id": 1,
  • "todo_priority_id": null,
  • "has_reminder": false,
  • "remember_type_id": null,
  • "remember_time_id": null,
  • "communication_kind_id": null
}

Search tasks

Search tasks via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • subject
  • updated_at
  • user_id
  • contact_id
  • todo_status_id
  • module_id
  • entry_id
Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "finish_date"
Example: order_by=finish_date

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a task

This action fetches a single task

Authorizations:
bearerAuth
path Parameters
task_id
required
integer <int32>
Example: 1

the id of the task

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/task/{task_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "user_id": 1,
  • "finish_date": "2018-04-09T07:44:10+00:00",
  • "subject": "Unterlagen versenden",
  • "place": 0,
  • "info": "so schnell wie möglich.",
  • "contact_id": 1,
  • "sub_contact_id": null,
  • "project_id": null,
  • "entry_id": null,
  • "module_id": null,
  • "todo_status_id": 1,
  • "todo_priority_id": null,
  • "has_reminder": false,
  • "remember_type_id": null,
  • "remember_time_id": null,
  • "communication_kind_id": null
}

Edit a task

This action edits a single task

Authorizations:
bearerAuth
path Parameters
task_id
required
integer <int32>
Example: 1

the id of the task

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
user_id
required
integer <int32>

References a user object

finish_date
string or null <date-time>
subject
required
string
info
string
contact_id
integer <int32>

References a contact object

sub_contact_id
integer or null

References a contact object

pr_project_id
integer or null

References a project object

entry_id
integer or null
module_id
integer or null
todo_status_id
integer <int32>
todo_priority_id
integer or null
have_remember
boolean
remember_type_id
integer <nullable>

Is required if have_remember is set to true.

remember_time_id
integer or null

Is required if have_remember is set to true.

communication_kind_id
integer or null

Responses

Request samples

Content type
application/json
{
  • "user_id": 1,
  • "finish_date": "2018-04-09T07:44:10+00:00",
  • "subject": "Unterlagen versenden",
  • "info": "so schnell wie möglich.",
  • "contact_id": 1,
  • "sub_contact_id": null,
  • "pr_project_id": null,
  • "entry_id": null,
  • "module_id": null,
  • "todo_status_id": 1,
  • "todo_priority_id": null,
  • "have_remember": false,
  • "remember_type_id": null,
  • "remember_time_id": null,
  • "communication_kind_id": null
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "user_id": 1,
  • "finish_date": "2018-04-09T07:44:10+00:00",
  • "subject": "Unterlagen versenden",
  • "place": 0,
  • "info": "so schnell wie möglich.",
  • "contact_id": 1,
  • "sub_contact_id": null,
  • "project_id": null,
  • "entry_id": null,
  • "module_id": null,
  • "todo_status_id": 1,
  • "todo_priority_id": null,
  • "has_reminder": false,
  • "remember_type_id": null,
  • "remember_time_id": null,
  • "communication_kind_id": null
}

Delete a task

This action permanently deletes a task. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
task_id
required
integer <int32>
Example: 1

the id of the task

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/task/{task_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Task priorities

This action fetches a list of all task priorities

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/todo_priority \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Task status

This action fetches a list of all task status

Authorizations:
bearerAuth
query Parameters
order_by
string
Default: "id"
Enum: "id" "name"
Example: order_by=name

Defines the order of the results. Multiple sort parameters can be combined by using a comma separator. _asc and _desc can be appended to any parameter to either sort ascending (default) or descending.

limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/todo_status \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Units

Fetch a list of units

This action fetches a list of all units

Authorizations:
bearerAuth
query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/unit \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create unit

This action creates a new unit

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
name
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "h"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "h"
}

Search units

Search units via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:

  • name
Authorizations:
bearerAuth
query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
Array
field
required
string <= 255 characters

Field which should be search over

value
required
string <= 255 characters

Value to search for

criteria
string (v2SearchCriteria)
Default: "like"
Enum: "=" "equal" "!=" "not_equal" ">" "greater_than" ">=" "greater_equal" "<" "less_than" "<=" "less_equal" "like" "not_like" "is_null" "not_null" "in" "not_in"

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a unit

This action fetches a single unit

Authorizations:
bearerAuth
path Parameters
unit_id
required
integer <int32>
Example: 1

the id of the unit

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/2.0/unit/{unit_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "h"
}

Edit a unit

This action edits a single unit

Authorizations:
bearerAuth
path Parameters
unit_id
required
integer <int32>
Example: 1

the id of the unit

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
name
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "h"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "h"
}

Delete a unit

This action permanently deletes a unit. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
unit_id
required
integer <int32>
Example: 1

the id of the unit

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/2.0/unit/{unit_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

User Management

Fetch a list of users

This action fetches a list of all users

Authorizations:
bearerAuth
query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/users \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Fetch a user

This action fetches a single user

Authorizations:
bearerAuth
path Parameters
user_id
required
integer <int32>
Example: 4

the id of the user

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/users/{user_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 4,
  • "salutation_type": "male",
  • "firstname": "Rudolph",
  • "lastname": "Smith",
  • "email": "rudolph.smith@example.com",
  • "is_superadmin": true,
  • "is_accountant": false
}

Fetch the authenticated user

This action fetches the user authenticated by the bearer token.

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/users/me \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 4,
  • "salutation_type": "male",
  • "firstname": "Rudolph",
  • "lastname": "Smith",
  • "email": "rudolph.smith@example.com",
  • "is_superadmin": true,
  • "is_accountant": false
}

Fetch a list of fictional users

This action fetches a list of all fictional users. These fictional users can be used in dropdowns but can not log in to the application

Authorizations:
bearerAuth
query Parameters
limit
integer <int32>
Default: 500
Example: limit=20

Limit the number of results (max is 2000)

offset
integer <int32>
Default: 0
Example: offset=0

Skip over a number of elements by specifying an offset value for the query

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/fictional_users \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
[
  • {
    }
]

Create a fictional user

This action creates a new fictional user

Authorizations:
bearerAuth
header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
salutation_type
required
string
Enum: "male" "female"
firstname
required
string <= 80 characters

The first name of the fictional user

lastname
required
string <= 80 characters

The last name of the fictional user

email
required
string <email>

The email address of the fictional user. Please note that an email address can only be used once for both regular and fictional users.

title_id
integer

A reference to a title

Responses

Request samples

Content type
application/json
{
  • "salutation_type": "male",
  • "firstname": "Rudolph",
  • "lastname": "Smith",
  • "email": "rudolph.smith@bexio.com",
  • "title_id": null
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "salutation_type": "male",
  • "firstname": "Rudolph",
  • "lastname": "Smith",
  • "email": "rudolph.smith@bexio.com",
  • "title_id": null
}

Fetch a fictional User

This action fetches a single fictional user

Authorizations:
bearerAuth
path Parameters
fictional_user_id
required
integer <int32>
Example: 4

the id of the fictional user

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X GET \
  https://api.bexio.com/3.0/fictional_users/{fictional_user_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "id": 4,
  • "salutation_type": "male",
  • "firstname": "Rudolph",
  • "lastname": "Smith",
  • "email": "rudolph.smith@bexio.com",
  • "title_id": null
}

Delete a fictional user

This action permanently deletes a fictional user. It cannot be undone.

Authorizations:
bearerAuth
path Parameters
fictional_user_id
required
integer <int32>
Example: 4

the id of the fictional user

header Parameters
Accept
required
string
Example: application/json

Responses

Request samples

curl -X DELETE \
  https://api.bexio.com/3.0/fictional_users/{fictional_user_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Response samples

Content type
application/json
{
  • "success": true
}

Update a fictional User

This action updates an existing fictional user

Authorizations:
bearerAuth
path Parameters
fictional_user_id
required
integer <int32>
Example: 4

the id of the fictional user

header Parameters
Accept
required
string
Example: application/json
Request Body schema: application/json
required
salutation_type
required
string
Enum: "male" "female"
firstname
required
string <= 80 characters

The first name of the fictional user

lastname
required
string <= 80 characters

The last name of the fictional user

email
required
string <email>

The email address of the fictional user. Please note that an email address can only be used once for both regular and fictional users.

title_id
integer

A reference to a title

Responses

Request samples

Content type
application/json
{
  • "salutation_type": "male",
  • "firstname": "Rudolph",
  • "lastname": "Smith",
  • "email": "rudolph.smith@bexio.com",
  • "title_id": null
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "salutation_type": "male",
  • "firstname": "Rudolph",
  • "lastname": "Smith",
  • "email": "rudolph.smith@bexio.com",
  • "title_id": null
}