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.
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.
In order to use the bexio API, you need to follow the following steps in order:
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.
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.
Please do note that the API is provided as is based on this very documentation, there is no guided implementation or code support available.
We will list any changes to the current version of the API here.
Date | Details of changes |
---|---|
2024-08-06 |
|
2024-07-15 |
|
2024-07-15 |
|
2024-06-14 |
|
2024-05-29 |
|
2024-02-14 |
|
2023-12-11 |
|
2023-10-25 |
|
2023-10-09 |
|
2023-08-28 |
|
2023-08-02 |
|
2023-05-16 |
|
2023-04-25 |
|
2023-04-13 |
|
2023-01-31 |
|
2022-10-10 |
|
2022-09-21 |
|
2022-08-26 |
|
2022-04-19 |
|
2022-03-22 |
|
2022-03-08 | |
2021-12-02 |
|
2021-10-18 |
|
2021-07-23 |
|
2021-01-08 |
|
2020-12-16 |
|
2020-12-08 |
|
2020-11-02 |
|
2020-09-24 |
|
2020-09-21 |
|
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 |
|
2020-04-16 |
|
2020-03-31 |
|
2020-02-20 |
|
2020-02-05 |
|
2019-12-16 | First version published |
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 |
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 |
kb_delivery_show |
Read access to deliveries |
kb_delivery_edit |
Write access to deliveries |
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 |
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.
/authorize
endpoint of the bexio OpenID Connect service./token
endpoint) along with the application's Client ID and Client Secret.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:
The scope offline_access
is required to obtain a refresh token to keep the api connection alive.
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.
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
In its compact form, JSON Web Tokens consist of three parts separated by dots (.), which are:
Therefore, a JWT typically looks like the following: xxxxx.yyyyy.zzzzz
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 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...
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
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 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.
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.
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) |
Error responses contain an HTTP status code and a JSON response body that is structured as follows:
{
"error_code": 404,
"message": "Page not found"
}
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.
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] |
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" : ">"
}
]
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.
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). |
No, we currently do not provide an OpenAPI definition but we have plans to put it online.
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.
No, currently Credit Notes are not available but we have plans to put it online.
This action fetches a list of all contacts
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/contact \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 4,
- "nr": null,
- "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"
}
]
This action creates a new contact
Accept required | string Example: application/json |
nr | string or null If set to null, the number will be assigned automatically. Must be a number, can also be used as integer |
contact_type_id required | integer Please use the value |
name_1 required | string This field is used as the company name if the field |
name_2 | string or null This field is used as the company addition if the field |
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 |
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 |
{- "nr": null,
- "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
}
{- "id": 4,
- "nr": null,
- "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 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
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "id": 4,
- "nr": null,
- "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"
}
]
This action fetches a single contact
contact_id required | integer <int32> Example: 1 the id of the contact |
show_archived | boolean Default: false Example: show_archived=true Show archived elements only |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/contact/{contact_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "id": 4,
- "nr": null,
- "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="
}
This action edits a single contact
contact_id required | integer <int32> Example: 1 the id of the contact |
Accept required | string Example: application/json |
nr | string or null If set to null, the number will be assigned automatically. Must be a number, can also be used as integer |
contact_type_id required | integer Please use the value |
name_1 required | string This field is used as the company name if the field |
name_2 | string or null This field is used as the company addition if the field |
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 |
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 |
{- "nr": null,
- "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
}
{- "id": 4,
- "nr": null,
- "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="
}
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.
contact_id required | integer <int32> Example: 1 the id of the contact |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/2.0/contact/{contact_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action creates multiple contacts in one request
Accept required | string Example: application/json |
nr | string or null If set to null, the number will be assigned automatically. Must be a number, can also be used as integer |
contact_type_id required | integer Please use the value |
name_1 required | string This field is used as the company name if the field |
name_2 | string or null This field is used as the company addition if the field |
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 |
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 |
[- {
- "nr": null,
- "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
}
]
[- {
- "id": 4,
- "nr": null,
- "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"
}
]
This action restores an archived contact.
contact_id required | integer <int32> Example: 1 the id of the contact |
Accept required | string Example: application/json |
curl -X PATCH \ https://api.bexio.com/2.0/contact/{contact_id}/restore \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action fetches a list of all contact relations
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/contact_relation \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "contact_id": 2,
- "contact_sub_id": 3,
- "description": "",
- "updated_at": "2019-04-08 13:17:32"
}
]
This action creates a new contact relation
Accept required | string Example: 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 |
{- "contact_id": 2,
- "contact_sub_id": 3,
- "description": ""
}
{- "id": 4,
- "nr": null,
- "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 via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:
contact_id
contact_sub_id
updated_at
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "id": 1,
- "contact_id": 2,
- "contact_sub_id": 3,
- "description": "",
- "updated_at": "2019-04-08 13:17:32"
}
]
This action fetches a single contact relation
contact_relation_id required | integer <int32> Example: 1 the id of the contact relation |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/contact_relation/{contact_relation_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "id": 1,
- "contact_id": 2,
- "contact_sub_id": 3,
- "description": "",
- "updated_at": "2019-04-08 13:17:32"
}
This action edits a single contact relation
contact_relation_id required | integer <int32> Example: 1 the id of the contact relation |
Accept required | string Example: 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 |
{- "contact_id": 2,
- "contact_sub_id": 3,
- "description": ""
}
{- "id": 1,
- "contact_id": 2,
- "contact_sub_id": 3,
- "description": "",
- "updated_at": "2019-04-08 13:17:32"
}
This action permanently deletes a contact relation. It cannot be undone.
contact_relation_id required | integer <int32> Example: 1 the id of the contact relation |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/2.0/contact_relation/{contact_relation_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action fetches a list of all contact groups
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/contact_group \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "name": "Suppliers"
}
]
This action creates a new contact group
Accept required | string Example: application/json |
name required | string |
{- "name": "Suppliers"
}
{- "id": 1,
- "name": "Suppliers"
}
Search contact groups via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:
name
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "id": 1,
- "name": "Suppliers"
}
]
This action fetches a single contact group
contact_group_id required | integer <int32> Example: 1 the id of the contact group |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/contact_group/{contact_group_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "id": 1,
- "name": "Suppliers"
}
This action edits a single contact group
contact_group_id required | integer <int32> Example: 1 the id of the contact group |
Accept required | string Example: application/json |
name required | string |
{- "name": "Suppliers"
}
{- "id": 1,
- "name": "Suppliers"
}
This action permanently deletes a contact group. It cannot be undone.
contact_group_id required | integer <int32> Example: 1 the id of the contact group |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/2.0/contact_group/{contact_group_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action fetches a list of all contact sectors
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/contact_branch \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "name": "Photography"
}
]
Search contact sectors via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:
name
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "id": 1,
- "name": "Photography"
}
]
This action fetches a list of all additional addresses for a given contact
contact_id required | integer <int32> Example: 1 the id of the contact |
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/contact/{contact_id}/additional_address \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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"
}
]
This action creates a new additional address
contact_id required | integer <int32> Example: 1 the id of the contact |
Accept required | string Example: 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 |
{- "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"
}
{- "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 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
contact_id required | integer <int32> Example: 1 the id of the contact |
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "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"
}
]
This action fetches an additional address for a given contact
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 |
Accept required | string Example: application/json |
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}'
{- "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"
}
This action edits an additional address
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 |
Accept required | string Example: 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 |
{- "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"
}
{- "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"
}
This action permanently deletes an additional address. It cannot be undone.
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 |
Accept required | string Example: application/json |
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}'
{- "success": true
}
This action fetches a list of all salutations
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/salutation \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "name": "Herr"
}
]
This action creates a new salutation
Accept required | string Example: application/json |
name required | string |
{- "name": "Herr"
}
{- "id": 1,
- "name": "Herr"
}
Search salutations via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:
name
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "id": 1,
- "name": "Herr"
}
]
This action fetches a single salutation
salutation_id required | integer <int32> Example: 1 the id of the salutation |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/salutation/{salutation_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "id": 1,
- "name": "Herr"
}
This action edits a single salutation
salutation_id required | integer <int32> Example: 1 the id of the salutation |
Accept required | string Example: application/json |
name required | string |
{- "name": "Herr"
}
{- "id": 1,
- "name": "Herr"
}
This action permanently deletes a salutation. It cannot be undone.
salutation_id required | integer <int32> Example: 1 the id of the salutation |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/2.0/salutation/{salutation_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action fetches a list of all titles
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/title \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "name": "Dr."
}
]
This action creates a new title
Accept required | string Example: application/json |
name required | string |
{- "name": "Dr."
}
{- "id": 1,
- "name": "Dr."
}
Search titles via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:
name
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "id": 1,
- "name": "Dr."
}
]
This action fetches a single title
title_id required | integer <int32> Example: 1 the id of the title |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/title/{title_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "id": 1,
- "name": "Dr."
}
This action edits a single title
title_id required | integer <int32> Example: 1 the id of the title |
Accept required | string Example: application/json |
name required | string |
{- "name": "Dr."
}
{- "id": 1,
- "name": "Dr."
}
This action permanently deletes a title. It cannot be undone.
title_id required | integer <int32> Example: 1 the id of the title |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/2.0/title/{title_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action fetches a list of all quotes
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/kb_offer \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": ""
}
]
This action creates a new quote
Accept required | string Example: application/json |
document_nr | string Can not be used if “automatic numbering” is activated in frontend-settings. Required if “automatic numbering” deactivated. https://help.bexio.com/s/article/000001784 | ||||||||
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
| ||||||||
mwst_is_net | boolean This value affects the total if the field | ||||||||
show_position_taxes | boolean | ||||||||
is_valid_from | string <date> | ||||||||
is_valid_until | string <date> | ||||||||
contact_address_manual | string or null This field can be used to set a contact address manually. If not in use or | ||||||||
delivery_address_type | integer Enum: 0 1
| ||||||||
delivery_address_manual | string or null This field can be used to set a delivery address manually if | ||||||||
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 References a document template slug | ||||||||
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 |
{- "document_nr": "AN-00001",
- "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",
- "contact_address_manual": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
- "delivery_address_type": 0,
- "delivery_address_manual": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
- "api_reference": null,
- "viewed_by_client_at": null,
- "kb_terms_of_payment_template_id": null,
- "template_slug": "581a8010821e01426b8b456b",
- "positions": [
- {
- "amount": "5.000000",
- "unit_id": 1,
- "account_id": 1,
- "tax_id": 4,
- "text": "Apples",
- "unit_price": "3.560000",
- "discount_in_percent": "0.000000",
- "type": "KbPositionCustom",
- "parent_id": null
}
]
}
{- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": "",
- "positions": [
- {
- "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
}
]
}
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
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": ""
}
]
This action fetches a single quote
quote_id required | integer <int32> Example: 1 the id of the quote |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/kb_offer/{quote_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": "",
- "positions": [
- {
- "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
}
]
}
This action edits a single quote
quote_id required | integer <int32> Example: 1 the id of the quote |
Accept required | string Example: application/json |
document_nr | string Can not be used if “automatic numbering” is activated in frontend-settings. Required if “automatic numbering” deactivated. https://help.bexio.com/s/article/000001784 | ||||||||
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
| ||||||||
mwst_is_net | boolean This value affects the total if the field | ||||||||
show_position_taxes | boolean | ||||||||
is_valid_from | string <date> | ||||||||
is_valid_until | string <date> | ||||||||
contact_address_manual | string or null This field can be used to set a contact address manually. If not in use or | ||||||||
delivery_address_type | integer Enum: 0 1
| ||||||||
delivery_address_manual | string or null This field can be used to set a delivery address manually if | ||||||||
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 References a document template slug |
{- "document_nr": "AN-00001",
- "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",
- "contact_address_manual": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
- "delivery_address_type": 0,
- "delivery_address_manual": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
- "api_reference": null,
- "viewed_by_client_at": null,
- "kb_terms_of_payment_template_id": null,
- "template_slug": "581a8010821e01426b8b456b"
}
{- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": "",
- "positions": [
- {
- "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
}
]
}
This action permanently deletes a quote. It cannot be undone.
quote_id required | integer <int32> Example: 1 the id of the quote |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/2.0/kb_offer/{quote_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action issues a quote. The quote must be in the draft status.
quote_id required | integer <int32> Example: 1 the id of the quote |
Accept required | string Example: application/json |
curl -X POST \ https://api.bexio.com/2.0/kb_offer/{quote_id}/issue \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action reverts a quote to the draft status
quote_id required | integer <int32> Example: 1 the id of the quote |
Accept required | string Example: application/json |
curl -X POST \ https://api.bexio.com/2.0/kb_offer/{quote_id}/revertIssue \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action accepts a quote. The value kb_item_status_id
must be 2
in this case.
quote_id required | integer <int32> Example: 1 the id of the quote |
Accept required | string Example: application/json |
curl -X POST \ https://api.bexio.com/2.0/kb_offer/{quote_id}/accept \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action declines a quote. The value kb_item_status_id
must be 2
in this case.
quote_id required | integer <int32> Example: 1 the id of the quote |
Accept required | string Example: application/json |
curl -X POST \ https://api.bexio.com/2.0/kb_offer/{quote_id}/reject \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action re-issues a quote. Meaning the status is changed to pending from either accepted or declined.
quote_id required | integer <int32> Example: 1 the id of the quote |
Accept required | string Example: application/json |
curl -X POST \ https://api.bexio.com/2.0/kb_offer/{quote_id}/reissue \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action marks a quote as sent
quote_id required | integer <int32> Example: 1 the id of the quote |
Accept required | string Example: application/json |
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}'
{- "success": true
}
This action returns a pdf document of the quote.
quote_id required | integer <int32> Example: 1 the id of the quote |
logopaper | integer <int32> Enum: 0 1 Example: 1 Whether the PDF should be generated using the letterhead, or not. |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/kb_offer/{quote_id}/pdf \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "name": "document-00005.pdf",
- "size": 9768,
- "mime": "application/pdf",
- "content": "R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="
}
This action sends a quote by email.
quote_id required | integer <int32> Example: 1 the id of the quote |
Accept required | string Example: 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 |
{- "recipient_email": "example@bexio.com",
- "subject": "Your new document",
- "message": "Please find the document at [Network Link]",
- "mark_as_open": true,
- "attach_pdf": true
}
{- "success": true
}
This action copies a quote.
quote_id required | integer <int32> Example: 1 the id of the quote |
Accept required | string Example: 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 |
{- "contact_id": 14,
- "contact_sub_id": null,
- "is_valid_from": "2019-06-27",
- "pr_project_id": null,
- "title": null
}
{- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": "",
- "positions": [
- {
- "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
}
]
}
This action creates an order from a quote.
quote_id required | integer <int32> Example: 1 the id of the quote |
Accept required | string Example: 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. |
{- "positions": [
- {
- "id": 1,
- "type": "KbPositionArticle",
- "amount": 5
}
]
}
{- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": "",
- "positions": [
- {
- "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
}
]
}
This action creates an invoice from a quote.
quote_id required | integer <int32> Example: 1 the id of the quote |
Accept required | string Example: 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. |
{- "positions": [
- {
- "id": 1,
- "type": "KbPositionArticle",
- "amount": 5
}
]
}
{- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": "",
- "positions": [
- {
- "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
}
]
}
This action fetches a list of all orders
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/kb_order \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": ""
}
]
This action creates a new order
Accept required | string Example: application/json |
document_nr | string Can not be used if “automatic numbering” is activated in frontend-settings. Required if “automatic numbering” deactivated. https://help.bexio.com/s/article/000001784 | ||||||||
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
| ||||||||
mwst_is_net | boolean This value affects the total if the field | ||||||||
show_position_taxes | boolean | ||||||||
is_valid_from | string <date> | ||||||||
contact_address_manual | string or null This field can be used to set a contact address manually. If not in use or | ||||||||
delivery_address_type | integer Enum: 0 1
| ||||||||
delivery_address_manual | string or null This field can be used to set a delivery address manually if | ||||||||
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 References a document template slug | ||||||||
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 |
{- "document_nr": "AU-00001",
- "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",
- "contact_address_manual": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
- "delivery_address_type": 0,
- "delivery_address_manual": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
- "api_reference": null,
- "template_slug": "581a8010821e01426b8b456b",
- "positions": [
- {
- "amount": "5.000000",
- "unit_id": 1,
- "account_id": 1,
- "tax_id": 4,
- "text": "Apples",
- "unit_price": "3.560000",
- "discount_in_percent": "0.000000",
- "type": "KbPositionCustom",
- "parent_id": null
}
]
}
{- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": "",
- "positions": [
- {
- "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
}
]
}
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
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": ""
}
]
This action fetches a single order
order_id required | integer <int32> Example: 1 the id of the order |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/kb_order/{order_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": "",
- "positions": [
- {
- "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
}
]
}
This action edits a single order
order_id required | integer <int32> Example: 1 the id of the order |
Accept required | string Example: application/json |
document_nr | string Can not be used if “automatic numbering” is activated in frontend-settings. Required if “automatic numbering” deactivated. https://help.bexio.com/s/article/000001784 | ||||||||
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
| ||||||||
mwst_is_net | boolean This value affects the total if the field | ||||||||
show_position_taxes | boolean | ||||||||
is_valid_from | string <date> | ||||||||
contact_address_manual | string or null This field can be used to set a contact address manually. If not in use or | ||||||||
delivery_address_type | integer Enum: 0 1
| ||||||||
delivery_address_manual | string or null This field can be used to set a delivery address manually if | ||||||||
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 References a document template slug |
{- "document_nr": "AU-00001",
- "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",
- "contact_address_manual": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
- "delivery_address_type": 0,
- "delivery_address_manual": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
- "api_reference": null,
- "template_slug": "581a8010821e01426b8b456b"
}
{- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": "",
- "positions": [
- {
- "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
}
]
}
This action permanently deletes an order. It cannot be undone.
order_id required | integer <int32> Example: 1 the id of the order |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/2.0/kb_order/{order_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action creates a delivery from an order.
order_id required | integer <int32> Example: 1 the id of the order |
Accept required | string Example: 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. |
{- "positions": [
- {
- "id": 1,
- "type": "KbPositionArticle",
- "amount": 5
}
]
}
{- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "positions": [
- {
- "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
}
]
}
This action creates an invoice from an order.
order_id required | integer <int32> Example: 1 the id of the order |
Accept required | string Example: 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. |
{- "positions": [
- {
- "id": 1,
- "type": "KbPositionArticle",
- "amount": 5
}
]
}
{- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": "",
- "positions": [
- {
- "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
}
]
}
This action returns a pdf document of the order.
order_id required | integer <int32> Example: 1 the id of the order |
logopaper | integer <int32> Enum: 0 1 Example: 1 Whether the PDF should be generated using the letterhead, or not. |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/kb_order/{order_id}/pdf \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "name": "document-00005.pdf",
- "size": 9768,
- "mime": "application/pdf",
- "content": "R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="
}
This action fetches an order repetition
order_id required | integer <int32> Example: 1 the id of the order |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/kb_order/{order_id}/repetition \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "start": "2019-01-01",
- "end": "2019-12-31",
- "repetition": {
- "type": "daily",
- "interval": 1
}
}
This action edits an order repetition
order_id required | integer <int32> Example: 1 the id of the order |
Accept required | string Example: 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 |
{- "start": "2019-01-01",
- "end": "2019-12-31",
- "repetition": {
- "type": "daily",
- "interval": 1
}
}
{- "start": "2019-01-01",
- "end": "2019-12-31",
- "repetition": {
- "type": "daily",
- "interval": 1
}
}
This action permanently deletes an order repetition. It cannot be undone.
order_id required | integer <int32> Example: 1 the id of the order |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/2.0/kb_order/{order_id}/repetition \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action fetches a list of all deliveries
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/kb_delivery \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
]
}
]
This action fetches a single delivery
delivery_id required | integer <int32> Example: 1 the id of the delivery |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/kb_delivery/{delivery_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "positions": [
- {
- "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
}
]
}
This action issues a delivery. The delivery must be in the draft status.
delivery_id required | integer <int32> Example: 1 the id of the delivery |
Accept required | string Example: application/json |
curl -X POST \ https://api.bexio.com/2.0/kb_delivery/{delivery_id}/issue \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action fetches a list of all invoices
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/kb_invoice \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": ""
}
]
This action creates a new invoice
Accept required | string Example: application/json |
document_nr | string Can not be used if “automatic numbering” is activated in frontend-settings. Required if “automatic numbering” deactivated. https://help.bexio.com/s/article/000001784 | ||||||||
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
| ||||||||
mwst_is_net | boolean This value affects the total if the field | ||||||||
show_position_taxes | boolean | ||||||||
is_valid_from | string <date> | ||||||||
is_valid_to | string <date> | ||||||||
contact_address_manual | string or null This field can be used to set a contact address manually. If not in use or | ||||||||
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 References a document template slug | ||||||||
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 |
{- "document_nr": "RE-00001",
- "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",
- "contact_address_manual": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
- "reference": null,
- "api_reference": null,
- "template_slug": "581a8010821e01426b8b456b",
- "positions": [
- {
- "amount": "5.000000",
- "unit_id": 1,
- "account_id": 1,
- "tax_id": 4,
- "text": "Apples",
- "unit_price": "3.560000",
- "discount_in_percent": "0.000000",
- "type": "KbPositionCustom",
- "parent_id": null
}
]
}
{- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": "",
- "positions": [
- {
- "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
}
]
}
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
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": ""
}
]
This action fetches a single invoice
invoice_id required | integer <int32> Example: 1 the id of the invoice |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/kb_invoice/{invoice_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": "",
- "positions": [
- {
- "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
}
]
}
This action edits a single invoice
invoice_id required | integer <int32> Example: 1 the id of the invoice |
Accept required | string Example: application/json |
document_nr | string Can not be used if “automatic numbering” is activated in frontend-settings. Required if “automatic numbering” deactivated. https://help.bexio.com/s/article/000001784 | ||||||||
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
| ||||||||
mwst_is_net | boolean This value affects the total if the field | ||||||||
show_position_taxes | boolean | ||||||||
is_valid_from | string <date> | ||||||||
is_valid_to | string <date> | ||||||||
contact_address_manual | string or null This field can be used to set a contact address manually. If not in use or | ||||||||
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 References a document template slug |
{- "document_nr": "RE-00001",
- "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",
- "contact_address_manual": "UTA Immobilien AG\nStadtturmstrasse 15\n5400 Baden",
- "reference": null,
- "api_reference": null,
- "template_slug": "581a8010821e01426b8b456b"
}
{- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": "",
- "positions": [
- {
- "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
}
]
}
This action permanently deletes an invoice. It cannot be undone.
invoice_id required | integer <int32> Example: 1 the id of the invoice |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/2.0/kb_invoice/{invoice_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action returns a pdf document of the invoice.
invoice_id required | integer <int32> Example: 1 the id of the invoice |
logopaper | integer <int32> Enum: 0 1 Example: 1 Whether the PDF should be generated using the letterhead, or not. |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/kb_invoice/{invoice_id}/pdf \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "name": "document-00005.pdf",
- "size": 9768,
- "mime": "application/pdf",
- "content": "R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="
}
This action copies a invoice.
invoice_id required | integer <int32> Example: 1 the id of the invoice |
Accept required | string Example: 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 |
{- "contact_id": 14,
- "contact_sub_id": null,
- "is_valid_from": "2019-06-27",
- "pr_project_id": null,
- "title": null
}
{- "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": [
- {
- "percentage": "7.70",
- "value": "1.3706"
}
], - "network_link": "",
- "positions": [
- {
- "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
}
]
}
This action issues an invoice. The invoice must be in the draft status.
invoice_id required | integer <int32> Example: 1 the id of the invoice |
Accept required | string Example: application/json |
curl -X POST \ https://api.bexio.com/2.0/kb_invoice/{invoice_id}/issue \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action set an already issued invoice to state draft.
invoice_id required | integer <int32> Example: 1 the id of the invoice |
Accept required | string Example: application/json |
curl -X POST \ https://api.bexio.com/2.0/kb_invoice/{invoice_id}/revert_issue \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action cancels an already issued invoice.
invoice_id required | integer <int32> Example: 1 the id of the invoice |
Accept required | string Example: application/json |
curl -X POST \ https://api.bexio.com/2.0/kb_invoice/{invoice_id}/cancel \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action marks an invoice as sent
invoice_id required | integer <int32> Example: 1 the id of the invoice |
Accept required | string Example: application/json |
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}'
{- "success": true
}
This action sends an invoice by email.
invoice_id required | integer <int32> Example: 1 the id of the invoice |
Accept required | string Example: 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 |
{- "recipient_email": "example@bexio.com",
- "subject": "Your new document",
- "message": "Please find the document at [Network Link]",
- "mark_as_open": true,
- "attach_pdf": true
}
{- "success": true
}
This action fetches a list of all payments for the invoice
invoice_id required | integer <int32> Example: 1 the id of the invoice |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/kb_invoice/{invoice_id}/payment \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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": ""
}
]
This action creates a new payment for an invoice
invoice_id required | integer <int32> Example: 1 the id of the invoice |
date | string <date> |
value required | string |
bank_account_id | integer or null References a bank account object |
payment_service_id | integer or null |
{- "date": "2019-06-29",
- "value": "10.0000",
- "bank_account_id": 1,
- "payment_service_id": null
}
{- "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": ""
}
This action fetches a payment
invoice_id required | integer <int32> Example: 1 the id of the invoice |
payment_id required | integer <int32> Example: 1 the id of the payment |
Accept required | string Example: application/json |
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}'
{- "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": ""
}
This action permanently deletes a payment. It cannot be undone.
invoice_id required | integer <int32> Example: 1 the id of the invoice |
payment_id required | integer <int32> Example: 1 the id of the payment |
Accept required | string Example: application/json |
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}'
{- "success": true
}
This action fetches a list of all reminders for the invoice
invoice_id required | integer <int32> Example: 1 the id of the invoice |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/kb_invoice/{invoice_id}/kb_reminder \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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
}
]
This action creates a new reminder for an invoice
invoice_id required | integer <int32> Example: 1 the id of the invoice |
Accept required | string Example: application/json |
curl -X POST \ https://api.bexio.com/2.0/kb_invoice/{invoice_id}/kb_reminder \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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 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
invoice_id required | integer <int32> Example: 1 the id of the invoice |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "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
}
]
This action deletes the most recent reminder
invoice_id required | integer <int32> Example: 1 the id of the invoice |
reminder_id required | integer <int32> Example: 1 the id of the reminder |
Accept required | string Example: application/json |
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}'
{- "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
}
This action permanently deletes the most recent reminder. It cannot be undone.
invoice_id required | integer <int32> Example: 1 the id of the invoice |
reminder_id required | integer <int32> Example: 1 the id of the reminder |
Accept required | string Example: application/json |
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}'
{- "success": true
}
This action marks an invoice reminder as sent
invoice_id required | integer <int32> Example: 1 the id of the invoice |
reminder_id required | integer <int32> Example: 1 the id of the reminder |
Accept required | string Example: application/json |
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}'
{- "success": true
}
This action marks an invoice reminder as unsent
invoice_id required | integer <int32> Example: 1 the id of the invoice |
reminder_id required | integer <int32> Example: 1 the id of the reminder |
Accept required | string Example: application/json |
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}'
{- "success": true
}
This action sends an invoice reminder by email.
invoice_id required | integer <int32> Example: 1 the id of the invoice |
reminder_id required | integer <int32> Example: 1 the id of the reminder |
Accept required | string Example: 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. |
{- "recipient_email": "example@bexio.com",
- "subject": "Your new document",
- "message": "Please find the document at [Network Link]"
}
{- "success": true
}
This action returns a pdf document of the invoice reminder.
invoice_id required | integer <int32> Example: 1 the id of the invoice |
reminder_id required | integer <int32> Example: 1 the id of the reminder |
logopaper | integer <int32> Enum: 0 1 Example: 1 Whether the PDF should be generated using the letterhead, or not. |
Accept required | string Example: application/json |
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}'
{- "name": "document-00005.pdf",
- "size": 9768,
- "mime": "application/pdf",
- "content": "R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="
}
This action fetches a list of all document settings
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. |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/kb_item_setting \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "text": "Quote",
- "kb_item_class": "KbOffer",
- "enumeration_format": "AN-%nummer%",
- "use_automatic_enumeration": true,
- "use_yearly_enumeration": false,
- "next_nr": 1,
- "nr_min_length": 5,
- "default_time_period_in_days": 14,
- "default_logopaper_id": 1,
- "default_language_id": 1,
- "default_client_bank_account_new_id": 1,
- "default_currency_id": 1,
- "default_mwst_type": 0,
- "default_mwst_is_net": true,
- "default_nb_decimals_amount": 2,
- "default_nb_decimals_price": 2,
- "default_show_position_taxes": false,
- "default_title": "Angebot",
- "default_show_esr_on_same_page": false,
- "default_payment_type_id": 1,
- "kb_terms_of_payment_template_id": 1,
- "default_show_total": true
}
]
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
.
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 |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/{kb_document_type}/{document_id}/comment \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 4,
- "text": "Sample comment",
- "user_id": 1,
- "user_email": null,
- "user_name": "Peter Smith",
- "date": "2019-07-18 15:41:53",
- "is_public": false,
- "image": "R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=",
}
]
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
.
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 |
Accept required | string Example: application/json |
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 |
{- "text": "Sample comment",
- "user_id": 1,
- "user_email": null,
- "user_name": "Peter Smith",
- "is_public": false
}
{- "id": 4,
- "text": "Sample comment",
- "user_id": 1,
- "user_email": null,
- "user_name": "Peter Smith",
- "date": "2019-07-18 15:41:53",
- "is_public": false,
- "image": "R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=",
}
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
.
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 |
comment_id required | integer <int32> Example: 1 the id of the comment |
Accept required | string Example: application/json |
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}'
{- "id": 4,
- "text": "Sample comment",
- "user_id": 1,
- "user_email": null,
- "user_name": "Peter Smith",
- "date": "2019-07-18 15:41:53",
- "is_public": false,
- "image": "R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=",
}
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
.
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 |
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 |
Accept required | string Example: application/json |
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}'
[- {
- "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
}
]
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
.
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 |
Accept required | string Example: 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 |
text | string |
unit_price | string |
discount_in_percent | string |
{- "amount": "5.000000",
- "unit_id": 1,
- "account_id": 1,
- "tax_id": 4,
- "text": "Apples",
- "unit_price": "3.560000",
- "discount_in_percent": "0.000000"
}
{- "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
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: application/json |
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}'
{- "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
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: 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 |
text | string |
unit_price | string |
discount_in_percent | string |
{- "amount": "5.000000",
- "unit_id": 1,
- "account_id": 1,
- "tax_id": 4,
- "text": "Apples",
- "unit_price": "3.560000",
- "discount_in_percent": "0.000000"
}
{- "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
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: application/json |
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}'
{- "success": true
}
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
.
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 |
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 |
Accept required | string Example: application/json |
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}'
[- {
- "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
}
]
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
.
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 |
Accept required | string Example: 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 |
text | string |
unit_price | string |
discount_in_percent | string |
article_id | integer References an item object |
{- "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
}
{- "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
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: application/json |
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}'
{- "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
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: 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 |
text | string |
unit_price | string |
discount_in_percent | string |
article_id | integer References an item object |
{- "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
}
{- "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
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: application/json |
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}'
{- "success": true
}
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
.
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 |
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 |
Accept required | string Example: application/json |
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}'
[- {
- "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
}
]
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
.
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 |
Accept required | string Example: application/json |
text | string |
show_pos_nr | boolean |
{- "text": "This position type allows to add free text to a document",
- "show_pos_nr": false
}
{- "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
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: application/json |
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}'
{- "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
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: application/json |
text | string |
show_pos_nr | boolean |
{- "text": "This position type allows to add free text to a document",
- "show_pos_nr": false
}
{- "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
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: application/json |
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}'
{- "success": true
}
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
.
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 |
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 |
Accept required | string Example: application/json |
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}'
[- {
- "id": 1,
- "text": "Subtotal",
- "value": "17.800000",
- "internal_pos": 1,
- "is_optional": false,
- "type": "KbPositionSubtotal",
- "parent_id": null
}
]
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
.
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 |
Accept required | string Example: application/json |
text | string |
{- "text": "Subtotal"
}
{- "id": 1,
- "text": "Subtotal",
- "value": "17.800000",
- "internal_pos": 1,
- "is_optional": false,
- "type": "KbPositionSubtotal",
- "parent_id": null
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: application/json |
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}'
{- "id": 1,
- "text": "Subtotal",
- "value": "17.800000",
- "internal_pos": 1,
- "is_optional": false,
- "type": "KbPositionSubtotal",
- "parent_id": null
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: application/json |
text | string |
{- "text": "Subtotal"
}
{- "id": 1,
- "text": "Subtotal",
- "value": "17.800000",
- "internal_pos": 1,
- "is_optional": false,
- "type": "KbPositionSubtotal",
- "parent_id": null
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: application/json |
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}'
{- "success": true
}
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
.
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 |
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 |
Accept required | string Example: application/json |
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}'
[- {
- "id": 1,
- "text": "Partner discount",
- "is_percentual": true,
- "value": "10.000000",
- "discount_total": "1.780000",
- "type": "KbPositionDiscount"
}
]
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
.
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 |
Accept required | string Example: application/json |
text | string |
is_percentual | boolean |
value | string |
{- "text": "Partner discount",
- "is_percentual": true,
- "value": "10.000000"
}
{- "id": 1,
- "text": "Partner discount",
- "is_percentual": true,
- "value": "10.000000",
- "discount_total": "1.780000",
- "type": "KbPositionDiscount"
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: application/json |
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}'
{- "id": 1,
- "text": "Partner discount",
- "is_percentual": true,
- "value": "10.000000",
- "discount_total": "1.780000",
- "type": "KbPositionDiscount"
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: application/json |
text | string |
is_percentual | boolean |
value | string |
{- "text": "Partner discount",
- "is_percentual": true,
- "value": "10.000000"
}
{- "id": 1,
- "text": "Partner discount",
- "is_percentual": true,
- "value": "10.000000",
- "discount_total": "1.780000",
- "type": "KbPositionDiscount"
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: application/json |
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}'
{- "success": true
}
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
.
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 |
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 |
Accept required | string Example: application/json |
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}'
[- {
- "id": 1,
- "internal_pos": 1,
- "is_optional": false,
- "type": "KbPositionPagebreak",
- "parent_id": null
}
]
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
.
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 |
Accept required | string Example: application/json |
pagebreak | boolean |
{- "pagebreak": true
}
{- "id": 1,
- "internal_pos": 1,
- "is_optional": false,
- "type": "KbPositionPagebreak",
- "parent_id": null
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: application/json |
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}'
{- "id": 1,
- "internal_pos": 1,
- "is_optional": false,
- "type": "KbPositionPagebreak",
- "parent_id": null
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: application/json |
pagebreak | boolean |
{- "pagebreak": true
}
{- "id": 1,
- "internal_pos": 1,
- "is_optional": false,
- "type": "KbPositionPagebreak",
- "parent_id": null
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: application/json |
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}'
{- "success": true
}
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
.
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 |
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 |
Accept required | string Example: application/json |
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}'
[- {
- "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
}
]
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
.
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 |
Accept required | string Example: application/json |
text | string |
show_pos_nr | boolean |
{- "text": "This is a container to group other position types",
- "show_pos_nr": true
}
{- "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
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: application/json |
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}'
{- "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
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: application/json |
text | string |
show_pos_nr | boolean |
{- "text": "This is a container to group other position types",
- "show_pos_nr": true
}
{- "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
}
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
.
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 |
position_id required | integer <int32> Example: 1 the id of the position |
Accept required | string Example: application/json |
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}'
{- "success": true
}
This action fetches a list of document templates
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/document_templates \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "slug": "5f118cbc200a0c76ef1f34b2",
- "name": "Standard template",
- "is_default": true,
- "default_for_document_types": [
- "type_offer",
- "type_order",
- "type_invoice",
- "type_delivery",
- "type_credit_voucher",
- "type_account_statement",
- "type_article_order"
]
}
]
Endpoint for retrieving Bills
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' |
average_exchange_rate_enabled | boolean Example: average_exchange_rate_enabled=false indicates whether 'average_exchange_rate_enabled' is enabled, or not |
curl -X GET \ https://api.bexio.com/4.0/purchase/bills \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "data": [
- {
- "id": "2af7df09-bf6b-4a6b-840f-142e337e692a",
- "created_at": "2019-03-23T09:53:49+0000",
- "document_no": "NO-1",
- "status": "DRAFT",
- "vendor_ref": "Vendor 1",
- "firstname_suffix": "John",
- "lastname_company": "Doe",
- "vendor": "John Doe",
- "title": "Title 1",
- "currency_code": "CHF",
- "pending_amount": 100.23,
- "net": 0.45,
- "gross": 13.42,
- "bill_date": "2019-02-12",
- "due_date": "2019-03-14",
- "overdue": false,
- "booking_account_ids": [
- 10,
- 12
], - "attachment_ids": [
- "1cb712f3-652c-4707-9641-2de94f77e07d",
- "ab2b0d50-f3b0-4773-9c65-6606657db25b",
- "34ef8407-094a-419f-b649-789d36b5d145"
]
}, - {
- "id": "99fd6dc2-09cf-4db6-8dfa-2b9b3b9394b1",
- "created_at": "2019-05-23T09:53:49+0000",
- "document_no": "NO-3",
- "status": "BOOKED",
- "vendor_ref": "Vendor 2",
- "firstname_suffix": "James",
- "lastname_company": "Doe",
- "vendor": "James Doe",
- "title": "Title 2",
- "currency_code": "USD",
- "pending_amount": 2.73,
- "net": 0.01,
- "gross": 1.42,
- "bill_date": "2019-04-02",
- "due_date": "2019-05-27",
- "overdue": true,
- "booking_account_ids": [
- 12,
- 134,
- 9
], - "attachment_ids": [
- "1f1ef73d-6b4a-4de5-812c-27f8732be88b",
- "d9d3a328-8c0b-4889-9b15-d3e9abc24df0"
]
}
], - "paging": {
- "page": 1,
- "page_size": 10,
- "page_count": 50,
- "item_count": 300
}
}
Endpoint for creating Bill
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) |
{- "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": {
- "title": "Dr.",
- "salutation": "Mr",
- "firstname_suffix": "John",
- "lastname_company": "Newman",
- "address_line": "Mega Street",
- "postcode": "6694",
- "city": "Tel Aviv",
- "country_code": "CH",
- "main_contact_id": 45,
- "contact_address_id": 827,
- "type": "PRIVATE"
}, - "line_items": [
- {
- "position": 0,
- "title": "First line item title",
- "tax_id": 15,
- "amount": 56.8,
- "booking_account_id": 16
}, - {
- "position": 1,
- "title": "Second line item title",
- "tax_id": 15,
- "amount": 48.8,
- "booking_account_id": 14
}
], - "discounts": [
- {
- "position": 1,
- "amount": 56.8
}
], - "payment": {
- "type": "IBAN",
- "bank_account_id": 12,
- "fee": "BY_SENDER",
- "execution_date": "2019-03-15",
- "exchange_rate": 2.3455394587,
- "amount": 3.9,
- "iban": "CH121234567812345678900",
- "name": "LeSS Organisation",
- "address": "1147 Super Street",
- "street": "Super Street",
- "house_no": 1147,
- "postcode": "9999",
- "city": "Tel Aviv",
- "country_code": "CH",
- "message": "This is a message.",
- "booking_text": "Further education.",
- "salary_payment": false,
- "reference_no": "1212345675321984798456",
- "note": "Some note text"
}, - "attachment_ids": [
- "e84b9fe2-3fe2-4fcf-8c30-298fe16adb14",
- "aa9fc418-f292-49ad-9a35-9869123d1091"
]
}
{- "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": {
- "title": "Prof",
- "salutation": "Mrs",
- "firstname_suffix": "John",
- "lastname_company": "Newman",
- "address_line": "Mega Street",
- "postcode": "6694",
- "city": "Tel Aviv",
- "country_code": "CH",
- "main_contact_id": 45,
- "contact_address_id": 827,
- "type": "PRIVATE"
}, - "line_items": [
- {
- "id": "2d267f64-6b94-4109-818e-c54515837004",
- "position": 0,
- "title": "First line item title",
- "tax_id": 15,
- "tax_calc": 12.89,
- "amount": 56.8,
- "booking_account_id": 16
}, - {
- "id": "e33ecd04-188e-40b5-92eb-02f9efbf1b1c",
- "position": 1,
- "title": "Second line item title",
- "tax_id": 15,
- "tax_calc": 8.89,
- "amount": 48.8,
- "booking_account_id": 14
}
], - "discounts": [
- {
- "id": "8b102a32-5bef-462e-a41b-9c00197c26b9",
- "position": 1,
- "amount": 56.8
}
], - "payment": {
- "type": "IBAN",
- "bank_account_id": 12,
- "fee": "BY_SENDER",
- "execution_date": "2019-03-15",
- "exchange_rate": 2.34553,
- "amount": 3.9,
- "iban": "CH121234567812345678900",
- "name": "LeSS Organisation",
- "address": "1147 Super Street",
- "street": "Super Street",
- "house_no": 1147,
- "postcode": "9999",
- "city": "Tel Aviv",
- "country_code": "CH",
- "message": "This is a message.",
- "booking_text": "Further education.",
- "salary_payment": false,
- "reference_no": "1212345675321984798456",
- "note": "Some note text"
}, - "attachment_ids": [
- "e84b9fe2-3fe2-4fcf-8c30-298fe16adb14",
- "aa9fc418-f292-49ad-9a35-9869123d1091"
]
}
Endpoint for retrieving Bill by id
id required | string <uuid> Example: 7572f70e-6bf5-47be-9a28-466423d8e3b1 id of Bill to retrieve |
curl -X GET \ https://api.bexio.com/4.0/purchase/bills/{id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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": {
- "title": "Prof",
- "salutation": "Mrs",
- "firstname_suffix": "John",
- "lastname_company": "Newman",
- "address_line": "Mega Street",
- "postcode": "6694",
- "city": "Tel Aviv",
- "country_code": "CH",
- "main_contact_id": 45,
- "contact_address_id": 827,
- "type": "PRIVATE"
}, - "line_items": [
- {
- "id": "2d267f64-6b94-4109-818e-c54515837004",
- "position": 0,
- "title": "First line item title",
- "tax_id": 15,
- "tax_calc": 12.89,
- "amount": 56.8,
- "booking_account_id": 16
}, - {
- "id": "e33ecd04-188e-40b5-92eb-02f9efbf1b1c",
- "position": 1,
- "title": "Second line item title",
- "tax_id": 15,
- "tax_calc": 8.89,
- "amount": 48.8,
- "booking_account_id": 14
}
], - "discounts": [
- {
- "id": "8b102a32-5bef-462e-a41b-9c00197c26b9",
- "position": 1,
- "amount": 56.8
}
], - "payment": {
- "type": "IBAN",
- "bank_account_id": 12,
- "fee": "BY_SENDER",
- "execution_date": "2019-03-15",
- "exchange_rate": 2.34553,
- "amount": 3.9,
- "iban": "CH121234567812345678900",
- "name": "LeSS Organisation",
- "address": "1147 Super Street",
- "street": "Super Street",
- "house_no": 1147,
- "postcode": "9999",
- "city": "Tel Aviv",
- "country_code": "CH",
- "message": "This is a message.",
- "booking_text": "Further education.",
- "salary_payment": false,
- "reference_no": "1212345675321984798456",
- "note": "Some note text"
}, - "attachment_ids": [
- "e84b9fe2-3fe2-4fcf-8c30-298fe16adb14",
- "aa9fc418-f292-49ad-9a35-9869123d1091"
]
}
Endpoint for updating Bill
id required | string <uuid> Example: 1d204702-00ba-447b-ad48-aefbfb1bf984 id of Bill to update |
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) |
{- "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": [
- "e84b9fe2-3fe2-4fcf-8c30-298fe16adb14",
- "aa9fc418-f292-49ad-9a35-9869123d1091"
], - "address": {
- "title": "Prof",
- "salutation": "Ms",
- "firstname_suffix": "John",
- "lastname_company": "Newman",
- "address_line": "Mega Street",
- "postcode": "6694",
- "city": "Tel Aviv",
- "country_code": "CH",
- "main_contact_id": 45,
- "contact_address_id": 827,
- "type": "PRIVATE"
}, - "line_items": [
- {
- "id": "25eb990e-1758-4381-a621-ad57e44ad04c",
- "position": 0,
- "title": "First line item title",
- "tax_id": 15,
- "amount": 56.8,
- "booking_account_id": 16
}, - {
- "id": "c0260c25-5f70-4428-b9e9-2edbf29f88f5",
- "position": 1,
- "title": "Second line item title",
- "tax_id": 15,
- "amount": 48.8,
- "booking_account_id": 14
}
], - "discounts": [
- {
- "id": "8b102a32-5bef-462e-a41b-9c00197c26b9",
- "position": 1,
- "amount": 56.8
}
], - "payment": {
- "type": "IBAN",
- "bank_account_id": 12,
- "fee": "BY_RECEIVER",
- "execution_date": "2019-03-15",
- "exchange_rate": 2.3455394678,
- "amount": 3.9,
- "account_no": 12345678125678900,
- "iban": "CH121234567812345678900",
- "name": "LeSS Organisation",
- "address": "1147 Super Street",
- "street": "Super Street",
- "house_no": 1147,
- "postcode": "9999",
- "city": "Tel Aviv",
- "country_code": "CH",
- "message": "This is a message.",
- "booking_text": "Further education.",
- "salary_payment": false,
- "reference_no": "1212345675321984798456",
- "note": "Some note text"
}
}
{- "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": {
- "title": "Prof",
- "salutation": "Mrs",
- "firstname_suffix": "John",
- "lastname_company": "Newman",
- "address_line": "Mega Street",
- "postcode": "6694",
- "city": "Tel Aviv",
- "country_code": "CH",
- "main_contact_id": 45,
- "contact_address_id": 827,
- "type": "PRIVATE"
}, - "line_items": [
- {
- "id": "2d267f64-6b94-4109-818e-c54515837004",
- "position": 0,
- "title": "First line item title",
- "tax_id": 15,
- "tax_calc": 12.89,
- "amount": 56.8,
- "booking_account_id": 16
}, - {
- "id": "e33ecd04-188e-40b5-92eb-02f9efbf1b1c",
- "position": 1,
- "title": "Second line item title",
- "tax_id": 15,
- "tax_calc": 8.89,
- "amount": 48.8,
- "booking_account_id": 14
}
], - "discounts": [
- {
- "id": "8b102a32-5bef-462e-a41b-9c00197c26b9",
- "position": 1,
- "amount": 56.8
}
], - "payment": {
- "type": "IBAN",
- "bank_account_id": 12,
- "fee": "BY_SENDER",
- "execution_date": "2019-03-15",
- "exchange_rate": 2.34553,
- "amount": 3.9,
- "iban": "CH121234567812345678900",
- "name": "LeSS Organisation",
- "address": "1147 Super Street",
- "street": "Super Street",
- "house_no": 1147,
- "postcode": "9999",
- "city": "Tel Aviv",
- "country_code": "CH",
- "message": "This is a message.",
- "booking_text": "Further education.",
- "salary_payment": false,
- "reference_no": "1212345675321984798456",
- "note": "Some note text"
}, - "attachment_ids": [
- "e84b9fe2-3fe2-4fcf-8c30-298fe16adb14",
- "aa9fc418-f292-49ad-9a35-9869123d1091"
]
}
Endpoint for deleting Bill by id. Bill can be removed when it is in status DRAFT only.
id required | string <uuid> Example: 047e0179-89ea-499c-a427-62b1b9adbe7d id of Bill to delete |
curl -X DELETE \ https://api.bexio.com/4.0/purchase/bills/{id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "error_code": 401,
- "message": "Invalid access token"
}
When changing status to BOOKED there are specific validations triggered:
When changing status to DRAFT there are specific validations triggered:
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 |
curl -X PUT \ https://api.bexio.com/4.0/purchase/bills/{id}/bookings/{status} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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": {
- "title": "Prof",
- "salutation": "Mrs",
- "firstname_suffix": "John",
- "lastname_company": "Newman",
- "address_line": "Mega Street",
- "postcode": "6694",
- "city": "Tel Aviv",
- "country_code": "CH",
- "main_contact_id": 45,
- "contact_address_id": 827,
- "type": "PRIVATE"
}, - "line_items": [
- {
- "id": "2d267f64-6b94-4109-818e-c54515837004",
- "position": 0,
- "title": "First line item title",
- "tax_id": 15,
- "tax_calc": 12.89,
- "amount": 56.8,
- "booking_account_id": 16
}, - {
- "id": "e33ecd04-188e-40b5-92eb-02f9efbf1b1c",
- "position": 1,
- "title": "Second line item title",
- "tax_id": 15,
- "tax_calc": 8.89,
- "amount": 48.8,
- "booking_account_id": 14
}
], - "discounts": [
- {
- "id": "8b102a32-5bef-462e-a41b-9c00197c26b9",
- "position": 1,
- "amount": 56.8
}
], - "payment": {
- "type": "IBAN",
- "bank_account_id": 12,
- "fee": "BY_SENDER",
- "execution_date": "2019-03-15",
- "exchange_rate": 2.34553,
- "amount": 3.9,
- "iban": "CH121234567812345678900",
- "name": "LeSS Organisation",
- "address": "1147 Super Street",
- "street": "Super Street",
- "house_no": 1147,
- "postcode": "9999",
- "city": "Tel Aviv",
- "country_code": "CH",
- "message": "This is a message.",
- "booking_text": "Further education.",
- "salary_payment": false,
- "reference_no": "1212345675321984798456",
- "note": "Some note text"
}, - "attachment_ids": [
- "e84b9fe2-3fe2-4fcf-8c30-298fe16adb14",
- "aa9fc418-f292-49ad-9a35-9869123d1091"
]
}
Endpoint for executing actions for Bill
id required | string <uuid> Example: 96c5e76f-8b85-487b-bcfb-b9d2ebf92fcf Id of a Bill for which action will be executed |
action required | string Value: "DUPLICATE" |
{- "action": "DUPLICATE"
}
{- "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": {
- "title": "Prof",
- "salutation": "Mrs",
- "firstname_suffix": "John",
- "lastname_company": "Newman",
- "address_line": "Mega Street",
- "postcode": "6694",
- "city": "Tel Aviv",
- "country_code": "CH",
- "main_contact_id": 45,
- "contact_address_id": 827,
- "type": "PRIVATE"
}, - "line_items": [
- {
- "id": "2d267f64-6b94-4109-818e-c54515837004",
- "position": 0,
- "title": "First line item title",
- "tax_id": 15,
- "tax_calc": 12.89,
- "amount": 56.8,
- "booking_account_id": 16
}, - {
- "id": "e33ecd04-188e-40b5-92eb-02f9efbf1b1c",
- "position": 1,
- "title": "Second line item title",
- "tax_id": 15,
- "tax_calc": 8.89,
- "amount": 48.8,
- "booking_account_id": 14
}
], - "discounts": [
- {
- "id": "8b102a32-5bef-462e-a41b-9c00197c26b9",
- "position": 1,
- "amount": 56.8
}
], - "payment": {
- "type": "IBAN",
- "bank_account_id": 12,
- "fee": "BY_SENDER",
- "execution_date": "2019-03-15",
- "exchange_rate": 2.34553,
- "amount": 3.9,
- "iban": "CH121234567812345678900",
- "name": "LeSS Organisation",
- "address": "1147 Super Street",
- "street": "Super Street",
- "house_no": 1147,
- "postcode": "9999",
- "city": "Tel Aviv",
- "country_code": "CH",
- "message": "This is a message.",
- "booking_text": "Further education.",
- "salary_payment": false,
- "reference_no": "1212345675321984798456",
- "note": "Some note text"
}, - "attachment_ids": [
- "e84b9fe2-3fe2-4fcf-8c30-298fe16adb14",
- "aa9fc418-f292-49ad-9a35-9869123d1091"
]
}
Endpoint for retrieving validation for document number
document_no required | string <= 255 characters Example: document_no=AB-1234 document number to validate |
curl -X GET \ https://api.bexio.com/4.0/purchase/documentnumbers/bills \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "valid": false,
- "next_available_no": "AB-1235"
}
Endpoint for retrieving Expenses
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' |
curl -X GET \ https://api.bexio.com/4.0/expenses \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "data": [
- {
- "id": "e27be5f4-c8db-4193-92f3-1c6f1dc98f1b",
- "created_at": "2019-03-23T09:53:49+0000",
- "document_no": "NO-1",
- "status": "DRAFT",
- "firstname_suffix": "John",
- "lastname_company": "Doe",
- "vendor": "John Doe",
- "title": "Title 1",
- "currency_code": "CHF",
- "paid_on": "2019-03-07",
- "booking_account_id": 387,
- "net": 26.65,
- "gross": 29.43,
- "project_id": "c14aa91c-b4f5-43ca-ae2a-882f94cd40f4",
- "chargeable_contact_id": 4,
- "transaction_id": "b388a4da-7085-475a-87a0-a2acb4d8d68f",
- "invoice_id": "9d47155f-eac4-491e-96d0-8e187c5a7ab6",
- "attachment_ids": [
- "60dd4dfa-24a3-4114-a934-108380789edc",
- "a3161942-1b1d-42c1-816d-dc44cd53c7e6"
]
}, - {
- "id": "dd6d20f4-8c77-45ba-952f-84948798c79b",
- "created_at": "2019-05-23T09:53:49+0000",
- "document_no": "NO-3",
- "status": "DONE",
- "vendor_ref": "Vendor 2",
- "firstname_suffix": "James",
- "lastname_company": "Doe",
- "vendor": "James Doe",
- "title": "Title 2",
- "currency_code": "USD",
- "paid_on": "2018-02-07",
- "booking_account_id": 7,
- "net": 31.39,
- "gross": 50.44,
- "project_id": "1a1864c0-ba80-46a8-ad89-ffd128db9456",
- "chargeable_contact_id": 7,
- "transaction_id": "771590b0-a794-461f-a375-886e4634b618",
- "invoice_id": "9d47155f-eac4-491e-96d0-8e187c5a7ab6",
- "attachment_ids": [
- "06573f59-01a2-493d-9876-462deda4cee3",
- "a230f087-f742-4259-925e-cf3abea5e6bf"
]
}
], - "paging": {
- "page": 1,
- "page_size": 10,
- "page_count": 50,
- "item_count": 300
}
}
Endpoint for creating Expense
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 |
{- "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": [
- "3c570a07-1fa1-41e7-a761-0f486dfc01f6",
- "138c5618-744c-4c05-b504-c034ccf5f7d9"
], - "address": {
- "title": "Prof",
- "salutation": "Ms",
- "firstname_suffix": "John",
- "lastname_company": "Newman",
- "address_line": "Mega Street",
- "postcode": "6694",
- "city": "Tel Aviv",
- "country_code": "CH",
- "main_contact_id": 45,
- "contact_address_id": 827,
- "type": "PRIVATE"
}
}
{- "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": [
- "3c570a07-1fa1-41e7-a761-0f486dfc01f6",
- "138c5618-744c-4c05-b504-c034ccf5f7d9"
], - "address": {
- "title": "Prof",
- "salutation": "Mrs",
- "firstname_suffix": "John",
- "lastname_company": "Newman",
- "address_line": "Mega Street",
- "postcode": "6694",
- "city": "Tel Aviv",
- "country_code": "CH",
- "main_contact_id": 45,
- "contact_address_id": 827,
- "type": "PRIVATE"
}
}
Endpoint for retrieving Expense by id
id required | string <uuid> Example: 170a3a1e-df4d-4153-abdf-3a8670efd0e7 id of Expense to retrieve |
curl -X GET \ https://api.bexio.com/4.0/expenses/{id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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": [
- "06573f59-01a2-493d-9876-462deda4cee3",
- "a230f087-f742-4259-925e-cf3abea5e6bf"
], - "address": {
- "title": "Prof",
- "salutation": "Mrs",
- "firstname_suffix": "John",
- "lastname_company": "Newman",
- "address_line": "Mega Street",
- "postcode": "6694",
- "city": "Tel Aviv",
- "country_code": "CH",
- "main_contact_id": 45,
- "contact_address_id": 827,
- "type": "PRIVATE"
}
}
Endpoint for updating Expense
id required | string <uuid> Example: b057613b-ba1a-4f4d-a55c-d88eb605c922 id of Expense to update |
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 |
{- "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": [
- "06573f59-01a2-493d-9876-462deda4cee3",
- "a230f087-f742-4259-925e-cf3abea5e6bf"
], - "address": {
- "title": "Prof",
- "salutation": "Ms",
- "firstname_suffix": "John",
- "lastname_company": "Newman",
- "address_line": "Mega Street",
- "postcode": "6694",
- "city": "Tel Aviv",
- "country_code": "CH",
- "main_contact_id": 45,
- "contact_address_id": 827,
- "type": "PRIVATE"
}
}
{- "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": [
- "06573f59-01a2-493d-9876-462deda4cee3",
- "a230f087-f742-4259-925e-cf3abea5e6bf"
], - "address": {
- "title": "Prof",
- "salutation": "Mrs",
- "firstname_suffix": "John",
- "lastname_company": "Newman",
- "address_line": "Mega Street",
- "postcode": "6694",
- "city": "Tel Aviv",
- "country_code": "CH",
- "main_contact_id": 45,
- "contact_address_id": 827,
- "type": "PRIVATE"
}
}
Endpoint for deleting Expense by id. Expense cannot be removed when it is DONE.
id required | string <uuid> Example: d00b2005-a52f-4d7b-ad72-217d549d9734 id of Expense to delete |
curl -X DELETE \ https://api.bexio.com/4.0/expenses/{id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "error_code": 401,
- "message": "Invalid access token"
}
When changing status to DONE there are specific validations triggered:
When changing status to DRAFT there are specific validations triggered:
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 |
curl -X PUT \ https://api.bexio.com/4.0/expenses/{id}/bookings/{status} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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": [
- "06573f59-01a2-493d-9876-462deda4cee3",
- "a230f087-f742-4259-925e-cf3abea5e6bf"
], - "address": {
- "title": "Prof",
- "salutation": "Mrs",
- "firstname_suffix": "John",
- "lastname_company": "Newman",
- "address_line": "Mega Street",
- "postcode": "6694",
- "city": "Tel Aviv",
- "country_code": "CH",
- "main_contact_id": 45,
- "contact_address_id": 827,
- "type": "PRIVATE"
}
}
Endpoint for executing actions for Expense
id required | string <uuid> Example: 96c5e76f-8b85-487b-bcfb-b9d2ebf92fcf id of Expense for which action will be executed |
action required | string Value: "DUPLICATE" |
{- "action": "DUPLICATE"
}
{- "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": [
- "06573f59-01a2-493d-9876-462deda4cee3",
- "a230f087-f742-4259-925e-cf3abea5e6bf"
], - "address": {
- "title": "Prof",
- "salutation": "Mrs",
- "firstname_suffix": "John",
- "lastname_company": "Newman",
- "address_line": "Mega Street",
- "postcode": "6694",
- "city": "Tel Aviv",
- "country_code": "CH",
- "main_contact_id": 45,
- "contact_address_id": 827,
- "type": "PRIVATE"
}
}
Endpoint for retrieving validation for document number
document_no required | string <= 255 characters Example: document_no=AB-1234 document number to validate |
curl -X GET \ https://api.bexio.com/4.0/expenses/documentnumbers \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "valid": false,
- "next_available_no": "AB-1235"
}
This action fetches a list of article orders
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/purchase_orders \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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": {
- "id": 1,
- "name": "Deutsch",
- "decimalpoint": ".",
- "thousandsseparator": "'",
- "iso_639_1": "de",
- "date_format": "d.m.Y"
}, - "language_id": 1,
- "bank_account_id": 1,
- "currency": {
- "id": 1,
- "name": "CHF",
- "round_factor": 0.05
}, - "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"
}
]
This action creates a new purchase order
Accept required | string Example: 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
|
mwst_is_net | boolean This value affects the total if the field |
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 |
delivery_address_manual | string <= 1000 characters The delivery address for order. Newlines are in the format |
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. |
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. |
{- "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": {
- "id": 1,
- "name": "Deutsch",
- "decimalpoint": ".",
- "thousandsseparator": "'",
- "iso_639_1": "de",
- "date_format": "d.m.Y"
}, - "language_id": 1,
- "bank_account_id": 1,
- "currency": {
- "id": 1,
- "name": "CHF",
- "round_factor": 0.05
}, - "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": {
- "required": [
- {
- "type": "text",
- "pos": null,
- "is_optional": false,
- "id": 1,
- "text": "This position type allows to add free text to a document",
- "show_pos_nr": false
}
], - "optional": [
- {
- "type": "text",
- "pos": null,
- "is_optional": false,
- "id": 1,
- "text": "This position type allows to add free text to a document",
- "show_pos_nr": false
}
], - "discount": [
- {
- "type": "discount",
- "pos": null,
- "is_optional": false,
- "id": 1,
- "text": "Partner discount",
- "is_percentual": true,
- "value": 10,
- "discount_total": 1.78
}
]
}
}
{- "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": {
- "id": 1,
- "name": "Deutsch",
- "decimalpoint": ".",
- "thousandsseparator": "'",
- "iso_639_1": "de",
- "date_format": "d.m.Y"
}, - "language_id": 1,
- "bank_account_id": 1,
- "currency": {
- "id": 1,
- "name": "CHF",
- "round_factor": 0.05
}, - "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": {
- "required": [
- {
- "type": "text",
- "pos": null,
- "is_optional": false,
- "id": 1,
- "text": "This position type allows to add free text to a document",
- "show_pos_nr": false
}
], - "optional": [
- {
- "type": "text",
- "pos": null,
- "is_optional": false,
- "id": 1,
- "text": "This position type allows to add free text to a document",
- "show_pos_nr": false
}
], - "discount": [
- {
- "type": "discount",
- "pos": null,
- "is_optional": false,
- "id": 1,
- "text": "Partner discount",
- "is_percentual": true,
- "value": 10,
- "discount_total": 1.78
}
]
}
}
This action fetches a single purchase order
purchase_order_id required | integer <int32> Example: 1 the id of the purchase order |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/purchase_orders/{purchase_order_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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": {
- "id": 1,
- "name": "Deutsch",
- "decimalpoint": ".",
- "thousandsseparator": "'",
- "iso_639_1": "de",
- "date_format": "d.m.Y"
}, - "language_id": 1,
- "bank_account_id": 1,
- "currency": {
- "id": 1,
- "name": "CHF",
- "round_factor": 0.05
}, - "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"
}
This action updates a purchase order.
purchase_order_id required | integer <int32> Example: 1 the id of the purchase order |
Accept required | string Example: 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
|
mwst_is_net | boolean This value affects the total if the field |
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 |
delivery_address_manual | string <= 1000 characters The delivery address for order. Newlines are in the format |
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. |
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 |
{- "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": {
- "id": 1,
- "name": "Deutsch",
- "decimalpoint": ".",
- "thousandsseparator": "'",
- "iso_639_1": "de",
- "date_format": "d.m.Y"
}, - "language_id": 1,
- "bank_account_id": 1,
- "currency": {
- "id": 1,
- "name": "CHF",
- "round_factor": 0.05
}, - "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"
}
{- "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": {
- "id": 1,
- "name": "Deutsch",
- "decimalpoint": ".",
- "thousandsseparator": "'",
- "iso_639_1": "de",
- "date_format": "d.m.Y"
}, - "language_id": 1,
- "bank_account_id": 1,
- "currency": {
- "id": 1,
- "name": "CHF",
- "round_factor": 0.05
}, - "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": {
- "required": [
- {
- "type": "text",
- "pos": null,
- "is_optional": false,
- "id": 1,
- "text": "This position type allows to add free text to a document",
- "show_pos_nr": false
}
], - "optional": [
- {
- "type": "text",
- "pos": null,
- "is_optional": false,
- "id": 1,
- "text": "This position type allows to add free text to a document",
- "show_pos_nr": false
}
], - "discount": [
- {
- "type": "discount",
- "pos": null,
- "is_optional": false,
- "id": 1,
- "text": "Partner discount",
- "is_percentual": true,
- "value": 10,
- "discount_total": 1.78
}
]
}
}
This action permanently deletes a purchase order. It cannot be undone.
purchase_order_id required | integer <int32> Example: 1 the id of the purchase order |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/3.0/purchase_orders/{purchase_order_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
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 |
curl -X GET \ https://api.bexio.com/4.0/purchase/outgoing-payments \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "data": [
- {
- "id": "46913fdc-802b-49ba-99d7-4ccc13cccfc2",
- "bill_id": "176a1442-d66d-4907-b8c8-6dad090452a8",
- "payment_type": "MANUAL",
- "execution_date": "2019-10-15",
- "status": "TRANSFERRED",
- "amount": 45.98,
- "sender_bank_account_id": 4,
- "receiver_account_no": "657858734587301523",
- "receiver_iban": "DE121234567812345678900",
- "banking_payment_id": "0c8b18af-9a66-4c89-b01a-8abab642d69a",
- "transaction_id": "f020b371-939e-427a-8175-eceb8dea17b3"
}, - {
- "id": "176a1442-d66d-4907-b8c8-6dad090452a8",
- "bill_id": "869f16ee-d688-476b-9f18-9bb608fdc21f",
- "payment_type": "IBAN",
- "status": "PENDING",
- "execution_date": "2019-09-25",
- "amount": 95.2,
- "sender_bank_account_id": 96,
- "receiver_account_no": "253458734587301523",
- "receiver_iban": "ES121234567812345678900",
- "banking_payment_id": "f7e53b5e-a496-4bce-94b5-97f739dc4d5b",
- "transaction_id": "b3bafed8-fe0f-414d-b360-b50734fb199c"
}
], - "paging": {
- "page": 1,
- "page_size": 10,
- "page_count": 50,
- "item_count": 300
}
}
Endpoint for creating Outgoing Payment
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. |
{- "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"
}
{- "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"
}
Endpoint for retrieving Outgoing Payment by id
id required | string <uuid> Example: 8f276cb8-9220-452c-a649-6877207f47bb id of Outgoing Payment to retrieve |
curl -X GET \ https://api.bexio.com/4.0/purchase/outgoing-payments/{id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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"
}
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.
id required | string <uuid> Example: 9bcf8181-2843-4726-b023-d38261c56ca8 Outgoing Payment id |
curl -X DELETE \ https://api.bexio.com/4.0/purchase/outgoing-payments/{id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "error_code": 400,
- "message": "Parameters are invalid"
}
This action fetches a list of all accounts
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/accounts \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "uuid": "c7da5b70-2d27-467e-abd9-9c3ac0f83c7d",
- "account_no": "3201",
- "name": "Gross proceeds credit sales",
- "account_type": 1,
- "tax_id": 40,
- "fibu_account_group_id": 65,
- "is_active": true,
- "is_locked": false
}
]
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
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "id": 1,
- "uuid": "c7da5b70-2d27-467e-abd9-9c3ac0f83c7d",
- "account_no": "3201",
- "name": "Gross proceeds credit sales",
- "account_type": 1,
- "tax_id": 40,
- "fibu_account_group_id": 65,
- "is_active": true,
- "is_locked": false
}
]
This action fetches a list of all account groups
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/account_groups \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "uuid": "5fe93c8a-b05f-4004-91f5-9177ffd011fd",
- "account_no": "1",
- "name": "Assets",
- "parent_fibu_account_group_id": 3,
- "is_active": true,
- "is_locked": false
}
]
This action fetches a list of all calendar years
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/accounting/calendar_years \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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"
}
]
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.
Accept required | string Example: application/json |
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. |
{- "year": "2018",
- "is_vat_subject": true,
- "vat_accounting_method": "effective",
- "vat_accounting_type": "agreed",
- "default_tax_income_id": 1,
- "default_tax_expense_id": 2
}
[- {
- "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"
}
]
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"
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "start",
- "value": "2018-01-01",
- "criteria": "="
}
]
[- {
- "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"
}
]
This action fetches a single calendar year
calendar_year_id required | integer <int32> Example: 1 the id of the calendar_year |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/accounting/calendar_years/{calendar_year_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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"
}
This action fetches a list of all business years
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/accounting/business_years \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "start": "2018-01-01",
- "end": "2018-12-31",
- "status": "open",
- "closed_at": "2019-04-28"
}
]
This action fetches a single business year
business_year_id required | integer <int32> Example: 1 the id of the business_year |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/accounting/business_years/{business_year_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "id": 1,
- "start": "2018-01-01",
- "end": "2018-12-31",
- "status": "open",
- "closed_at": "2019-04-28"
}
This action fetches a list of all currencies
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 |
embed | string <string> Example: embed=exchange_rate The embed parameters is being used for embedding related resources in the response. |
date | date <date> Example: date=2019-05-17 the validity date for the fetched exchange rate |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/currencies \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "name": "CHF",
- "round_factor": 0.05,
- "exchange_rate": 0.9849,
- "exchange_rate_id": 2,
- "ratio": 1,
- "exchange_rate_to_ratio": 0.9849,
- "source": "monthly_average",
- "source_reason": "monthly_average_provided",
- "exchange_rate_date": "2024-05-01"
}
]
This action creates a new currency
Accept required | string Example: application/json |
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 |
{- "name": "CHF",
- "round_factor": 0.05
}
{- "id": 1,
- "name": "CHF",
- "round_factor": 0.05
}
This action fetches a single currency
currency_id required | integer <int32> Example: 1 the id of the currency |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/currencies/{currency_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "id": 1,
- "name": "CHF",
- "round_factor": 0.05
}
This action permanently deletes a currency. It cannot be undone.
currency_id required | integer <int32> Example: 1 the id of the currency |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/3.0/currencies/{currency_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action updates an existing currency
currency_id required | integer <int32> Example: 1 the id of the currency |
Accept required | string Example: application/json |
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 |
{- "round_factor": 0.05
}
{- "id": 1,
- "name": "CHF",
- "round_factor": 0.05
}
This action fetches all configured exchange rates for a given currency
currency_id required | integer <int32> the id of the currency |
date | date <date> Example: date=2019-05-17 the validity date for the fetched exchange rate |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/currencies/{currency_id}/exchange_rates \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "factor_nr": 1.2,
- "exchange_currency": {
- "id": 1,
- "name": "CHF",
- "round_factor": 0.05
}, - "ratio": 1,
- "exchange_rate_to_ratio": 0.9849,
- "source": "monthly_average",
- "source_reason": "monthly_average_provided",
- "exchange_rate_date": "2024-05-01"
}
]
This endpoint can be used to retrieve all available currency codes (in the format CHF, EUR, etc.)
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/currencies/codes \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- [
- "EUR",
- "GBP",
- "PLN"
]
]
This action fetches a list of all manual entries which have been added in the accounting module
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/accounting/manual_entries \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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": [
- {
- "id": 32,
- "date": "2019-11-17",
- "debit_account_id": 77,
- "credit_account_id": 139,
- "tax_id": 3,
- "tax_account_id": 77,
- "description": "Payment for client Smith",
- "amount": 328.25,
- "currency_id": 1,
- "base_currency_id": 1,
- "currency_factor": 1,
- "base_currency_amount": 328.25,
- "created_by_user_id": 1,
- "edited_by_user_id": 1
}
], - "is_locked": false,
- "locked_info": "closed_business_year"
}
]
This action creates a new manual entry for the account ledger
Accept required | string Example: application/json |
type required | string (ManualEntryType) Enum: "manual_single_entry" "manual_compound_entry" "manual_group_entry" Choose one of the following three types:
manual_compound_entry
manual_group_entry
| ||||||||||||||||||||||||||||||
date | string <date> the booking date | ||||||||||||||||||||||||||||||
reference_nr | string <= 80 characters A reference number for the booking | ||||||||||||||||||||||||||||||
required | Array of objects (ManualEntry) |
{- "type": "manual_single_entry",
- "date": "2019-11-17",
- "reference_nr": "Booking BA-22",
- "entries": [
- {
- "debit_account_id": 77,
- "credit_account_id": 139,
- "tax_id": 3,
- "tax_account_id": 77,
- "description": "Payment for client Smith",
- "amount": 328.25,
- "currency_id": 1,
- "currency_factor": 1
}
]
}
{- "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": [
- {
- "id": 32,
- "date": "2019-11-17",
- "debit_account_id": 77,
- "credit_account_id": 139,
- "tax_id": 3,
- "tax_account_id": 77,
- "description": "Payment for client Smith",
- "amount": 328.25,
- "currency_id": 1,
- "base_currency_id": 1,
- "currency_factor": 1,
- "base_currency_amount": 328.25,
- "created_by_user_id": 1,
- "edited_by_user_id": 1
}
], - "is_locked": false,
- "locked_info": "closed_business_year"
}
This action updates a manual entry
Accept required | string Example: application/json |
type required | string (ManualEntryType) Enum: "manual_single_entry" "manual_compound_entry" "manual_group_entry" Choose one of the following three types:
manual_compound_entry
manual_group_entry
| ||||||||||||||||||||||||||||||
date | string <date> the booking date | ||||||||||||||||||||||||||||||
reference_nr | string <= 80 characters A reference number for the booking | ||||||||||||||||||||||||||||||
required | Array of objects (ManualEntry) | ||||||||||||||||||||||||||||||
id | number The id of the main resource |
{- "type": "manual_single_entry",
- "date": "2019-11-17",
- "reference_nr": "Booking BA-22",
- "entries": [
- {
- "debit_account_id": 77,
- "credit_account_id": 139,
- "tax_id": 3,
- "tax_account_id": 77,
- "description": "Payment for client Smith",
- "amount": 328.25,
- "currency_id": 1,
- "currency_factor": 1,
- "id": 2
}
], - "id": 1
}
{- "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": [
- {
- "id": 32,
- "date": "2019-11-17",
- "debit_account_id": 77,
- "credit_account_id": 139,
- "tax_id": 3,
- "tax_account_id": 77,
- "description": "Payment for client Smith",
- "amount": 328.25,
- "currency_id": 1,
- "base_currency_id": 1,
- "currency_factor": 1,
- "base_currency_amount": 328.25,
- "created_by_user_id": 1,
- "edited_by_user_id": 1
}
], - "is_locked": false,
- "locked_info": "closed_business_year"
}
This action permanently deletes a manual entry. It cannot be undone. It also deletes the connection between the specific manual entry and any linked files.
manual_entry_id required | integer <int32> Example: 1 the id of the manual_entry |
curl -X DELETE \ https://api.bexio.com/3.0/accounting/manual_entries/{manual_entry_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action can be used to get the next reference number for a manual entry
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/accounting/manual_entries/next_ref_nr \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "next_ref_nr": "Booking BA-22"
}
This action fetches a list of all files associated to a specific manual entry line
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 |
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 |
Accept required | string Example: application/json |
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}'
[- {
- "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"
}
]
This action uploads one or multiple files and attaches the files to an existing accounting entry line (only for entry types manual_single_entry and manual_group_entry)
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
)
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 |
Accept required | string Example: application/json |
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. |
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}'
[- {
- "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"
}
]
This action fetches a file associated to a specific manual entry line (only for entry types manual_single_entry and manual_group_entry)
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 |
Accept required | string Example: application/json |
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}'
{- "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"
}
This action deletes the connection between the file and the specific manual entry line (only for entry types manual_single_entry and manual_group_entry).
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 |
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}'
{- "success": true
}
This action fetches a list of all files associated with a specific manual compound entry
manual_entry_id required | integer <int32> Example: 1 the id of the manual_entry |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/accounting/manual_entries/{manual_entry_id}/files \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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"
}
]
This action uploads one or multiple files and attaches the files to an existing manual compound entry
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
)
manual_entry_id required | integer <int32> Example: 1 the id of the manual_entry |
Accept required | string Example: application/json |
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. |
curl -X POST \ https://api.bexio.com/3.0/accounting/manual_entries/{manual_entry_id}/files \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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"
}
]
This action fetches a file associated with a specific compound entry
manual_entry_id required | integer <int32> Example: 1 the id of the manual_entry |
file_id required | integer <int32> Example: 1 the id of the file |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/accounting/manual_entries/{manual_entry_id}/files/{file_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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"
}
This action deletes the connection between the file and the specific manual compound entry
manual_entry_id required | integer <int32> Example: 1 the id of the manual_entry |
file_id required | integer <int32> Example: 1 the id of the currency |
curl -X DELETE \ https://api.bexio.com/3.0/accounting/manual_entries/{manual_entry_id}/files/{file_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action fetches a list of all accounting journal bookings
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/accounting/journal \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "ref_id": 13,
- "ref_uuid": "456fc553-f42b-417e-a2af-dd5c5b9bade6",
- "ref_class": "KbInvoice",
- "date": "2019-02-17T00:00:00+02:00",
- "debit_account_id": 77,
- "credit_account_id": 139,
- "description": "Website for client Smith",
- "amount": 328.25,
- "currency_id": 1,
- "currency_factor": 1,
- "base_currency_id": 1,
- "base_currency_amount": 328.25
}
]
This action fetches a list of all taxes
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/taxes \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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%",
- "start_month": 1,
- "end_month": 12
}
]
This action fetches a single tax
tax_id required | integer <int32> Example: 1 the id of the tax |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/taxes/{tax_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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%",
- "start_month": 1,
- "end_month": 12
}
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.
tax_id required | integer <int32> Example: 1 the id of the tax |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/3.0/taxes/{tax_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action fetches a list of all vat periods
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/accounting/vat_periods \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "start": "2018-01-01",
- "end": "2018-03-31",
- "type": "quarter",
- "status": "closed",
- "closed_at": "2018-04-28"
}
]
This action fetches a single vat period
vat_period_id required | integer <int32> Example: 1 the id of the vat_period |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/accounting/vat_periods/{vat_period_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "id": 1,
- "start": "2018-01-01",
- "end": "2018-03-31",
- "type": "quarter",
- "status": "closed",
- "closed_at": "2018-04-28"
}
This action fetches a list of all bank accounts which are shown on the banking component page
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/banking/accounts \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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"
}
]
This action fetches a single bank account which is shown on the banking component page
bank_account_id required | integer <int32> ID of bank account to return |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/banking/accounts/{bank_account_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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"
}
This action creates a new payment for the selected bank account
bank_account_id required | integer <int32> the id of the bank account |
Accept required | string Example: application/json |
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
The value must always be set for SEPA payments |
{- "instructed_amount": {
- "currency": "CHF",
- "amount": 187.2
}, - "recipient": {
- "name": "Müller GmbH",
- "street": "Sonnenstrasse",
- "zip": 8005,
- "city": "Zürich",
- "country_code": "CH",
- "house_number": 36
}, - "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"
}
{- "id": 1,
- "uuid": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
- "type": "iban",
- "bank_account": {
- "id": 4,
- "iban": "CH560025025010367101Y"
}, - "payment": {
- "instructed_amount": {
- "currency": "CHF",
- "amount": 187.2
}, - "recipient": {
- "name": "Müller GmbH",
- "street": "Sonnenstrasse",
- "zip": 8005,
- "city": "Zürich",
- "country_code": "CH",
- "house_number": 36
}, - "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"
}, - "instruction_id": "5a335fe3345a96.14999616",
- "status": "open",
- "created_at": "2018-04-09T07:44:10+00:00"
}
This action fetches an IBAN payment which is associated to the specified bank account
bank_account_id required | integer <int32> the id of the bank account |
required | string or integer ID or UUID of the IBAN payment |
Accept required | string Example: application/json |
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}'
{- "id": 1,
- "uuid": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
- "type": "iban",
- "bank_account": {
- "id": 4,
- "iban": "CH560025025010367101Y"
}, - "payment": {
- "instructed_amount": {
- "currency": "CHF",
- "amount": 187.2
}, - "recipient": {
- "name": "Müller GmbH",
- "street": "Sonnenstrasse",
- "zip": 8005,
- "city": "Zürich",
- "country_code": "CH",
- "house_number": 36
}, - "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"
}, - "instruction_id": "5a335fe3345a96.14999616",
- "status": "open",
- "created_at": "2018-04-09T07:44:10+00:00"
}
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.
bank_account_id required | string |
required | string or integer ID or UUID of the IBAN payment |
iban required | integer <int32> IBAN of the payment bank account |
id required | integer <int32> ID of the IBAN payment |
Accept required | string Example: application/json |
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
The value must always be set for SEPA payments |
{- "instructed_amount": {
- "currency": "CHF",
- "amount": 187.2
}, - "recipient": {
- "name": "Müller GmbH",
- "street": "Sonnenstrasse",
- "zip": 8005,
- "city": "Zürich",
- "country_code": "CH",
- "house_number": 36
}, - "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"
}
{- "id": 1,
- "uuid": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
- "type": "iban",
- "bank_account": {
- "id": 4,
- "iban": "CH560025025010367101Y"
}, - "payment": {
- "instructed_amount": {
- "currency": "CHF",
- "amount": 187.2
}, - "recipient": {
- "name": "Müller GmbH",
- "street": "Sonnenstrasse",
- "zip": 8005,
- "city": "Zürich",
- "country_code": "CH",
- "house_number": 36
}, - "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"
}, - "instruction_id": "5a335fe3345a96.14999616",
- "status": "open",
- "created_at": "2018-04-09T07:44:10+00:00"
}
This action creates a new payment for the selected bank account
bank_account_id required | integer <int32> the id of the bank account |
Accept required | string Example: application/json |
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). |
{- "instructed_amount": {
- "currency": "CHF",
- "amount": 187.2
}, - "recipient": {
- "name": "Müller GmbH",
- "street": "Sonnenstrasse",
- "zip": 8005,
- "city": "Zürich",
- "country_code": "CH",
- "house_number": 36
}, - "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"
}
{- "id": 1,
- "uuid": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
- "type": "qr",
- "bank_account": {
- "id": 4,
- "iban": "CH560025025010367101Y"
}, - "payment": {
- "instructed_amount": {
- "currency": "CHF",
- "amount": 187.2
}, - "recipient": {
- "name": "Müller GmbH",
- "street": "Sonnenstrasse",
- "zip": 8005,
- "city": "Zürich",
- "country_code": "CH",
- "house_number": 36
}, - "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"
}, - "instruction_id": "5a335fe3345a96.14999616",
- "status": "open",
- "created_at": "2018-04-09T07:44:10+00:00"
}
This action fetches an IBAN payment which is associated to the specified bank account
bank_account_id required | integer <int32> the id of the bank account |
required | string or integer ID or UUID of the IBAN payment |
Accept required | string Example: application/json |
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}'
{- "id": 1,
- "uuid": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
- "type": "qr",
- "bank_account": {
- "id": 4,
- "iban": "CH560025025010367101Y"
}, - "payment": {
- "instructed_amount": {
- "currency": "CHF",
- "amount": 187.2
}, - "recipient": {
- "name": "Müller GmbH",
- "street": "Sonnenstrasse",
- "zip": 8005,
- "city": "Zürich",
- "country_code": "CH",
- "house_number": 36
}, - "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"
}, - "instruction_id": "5a335fe3345a96.14999616",
- "status": "open",
- "created_at": "2018-04-09T07:44:10+00:00"
}
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.
bank_account_id required | string |
required | string or integer ID or UUID of the IBAN payment |
iban required | integer <int32> IBAN of the payment bank account |
id required | integer <int32> ID of the IBAN payment |
Accept required | string Example: application/json |
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). |
{- "instructed_amount": {
- "currency": "CHF",
- "amount": 187.2
}, - "recipient": {
- "name": "Müller GmbH",
- "street": "Sonnenstrasse",
- "zip": 8005,
- "city": "Zürich",
- "country_code": "CH",
- "house_number": 36
}, - "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"
}
{- "id": 1,
- "uuid": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
- "type": "qr",
- "bank_account": {
- "id": 4,
- "iban": "CH560025025010367101Y"
}, - "payment": {
- "instructed_amount": {
- "currency": "CHF",
- "amount": 187.2
}, - "recipient": {
- "name": "Müller GmbH",
- "street": "Sonnenstrasse",
- "zip": 8005,
- "city": "Zürich",
- "country_code": "CH",
- "house_number": 36
}, - "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"
}, - "instruction_id": "5a335fe3345a96.14999616",
- "status": "open",
- "created_at": "2018-04-09T07:44:10+00:00"
}
This action fetches all payments
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/banking/payments \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "id": 1,
- "uuid": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
- "type": "iban",
- "bank_account": {
- "id": 4,
- "iban": "CH560025025010367101Y"
}, - "payment": {
- "instructed_amount": {
- "currency": "CHF",
- "amount": 187.2
}, - "recipient": {
- "name": "Müller GmbH",
- "street": "Sonnenstrasse",
- "zip": 8005,
- "city": "Zürich",
- "country_code": "CH",
- "house_number": 36
}, - "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"
}, - "instruction_id": "5a335fe3345a96.14999616",
- "status": "open",
- "created_at": "2018-04-09T07:44:10+00:00"
}
This action cancels an existing payment. Please note that a payment can only be cancelled when the status is "downloaded", "transferred" or "error".
required | string or integer ID or UUID of the payment |
Accept required | string Example: application/json |
curl -X POST \ https://api.bexio.com/3.0/banking/payments/{payment_id}/cancel \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "id": 1,
- "uuid": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
- "type": "iban",
- "bank_account": {
- "id": 4,
- "iban": "CH560025025010367101Y"
}, - "payment": {
- "instructed_amount": {
- "currency": "CHF",
- "amount": 187.2
}, - "recipient": {
- "name": "Müller GmbH",
- "street": "Sonnenstrasse",
- "zip": 8005,
- "city": "Zürich",
- "country_code": "CH",
- "house_number": 36
}, - "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"
}, - "instruction_id": "5a335fe3345a96.14999616",
- "status": "open",
- "created_at": "2018-04-09T07:44:10+00:00"
}
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".
required | string or integer ID or UUID of the payment |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/3.0/banking/payments/{payment_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action fetches a list of all items / products
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/article \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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
}
]
This action creates a new item
Accept required | string Example: application/json |
user_id | integer References a user object |
article_type_id | integer Please use the value |
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 |
account_id | integer or null References an account object |
expense_account_id | integer or null References an account object |
{- "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,
- "account_id": null,
- "expense_account_id": null
}
{- "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 via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:
intern_name
intern_code
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "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
}
]
This action fetches a single item
article_id required | integer <int32> Example: 1 the id of the item |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/article/{article_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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
}
This action edits a single item
article_id required | integer <int32> Example: 1 the id of the item |
user_id | integer References a user object |
article_type_id | integer Please use the value |
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 |
account_id | integer or null References an account object |
expense_account_id | integer or null References an account object |
{- "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,
- "account_id": null,
- "expense_account_id": null
}
{- "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
}
This action permanently deletes an item. It cannot be undone.
article_id required | integer <int32> Example: 1 the id of the item |
curl -X DELETE \ https://api.bexio.com/2.0/article/{article_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action fetches a list of all stock locations
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/stock \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "name": "Stock Berlin"
}
]
Search stock locations via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:
name
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "id": 1,
- "name": "Stock Berlin"
}
]
This action fetches a list of all stock areas
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/stock_place \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "name": "Shelf A-06"
}
]
Search stock areas via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:
name
stock_id
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "id": 1,
- "name": "Shelf A-06"
}
]
This action fetches a list of all projects
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/pr_project \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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"
}
]
This action creates a new project
Accept required | string Example: 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:
| |||||||||||||||
pr_invoice_type_amount | string This field can only be edited if the | |||||||||||||||
pr_budget_type_id | number or null The following budget types are available:
| |||||||||||||||
pr_budget_type_amount | string This field can only be edited if the | |||||||||||||||
user_id required | integer References a user object |
{- "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
}
{- "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 via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:
name
contact_id
pr_state_id
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "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"
}
]
This action fetches a single project
project_id required | integer <int32> Example: 1 the id of the project |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/pr_project/{project_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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"
}
This action edits a single project
project_id required | integer <int32> Example: 1 the id of the project |
Accept required | string Example: 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:
| |||||||||||||||
pr_invoice_type_amount | string This field can only be edited if the | |||||||||||||||
pr_budget_type_id | number or null The following budget types are available:
| |||||||||||||||
pr_budget_type_amount | string This field can only be edited if the | |||||||||||||||
user_id required | integer References a user object |
{- "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
}
{- "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"
}
This action permanently deletes a project. It cannot be undone.
project_id required | integer <int32> Example: 1 the id of the project |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/2.0/pr_project/{project_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action archives a project
project_id required | integer <int32> Example: 1 the id of the project |
Accept required | string Example: application/json |
curl -X POST \ https://api.bexio.com/2.0/pr_project/{project_id}/archive \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action unarchives an archived project
project_id required | integer <int32> Example: 1 the id of the project |
Accept required | string Example: application/json |
curl -X POST \ https://api.bexio.com/2.0/pr_project/{project_id}/reactivate \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action fetches a list of project status
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/pr_project_state \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "name": "Active"
}
]
This action fetches a list of project types
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. |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/pr_project_type \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "name": "Internal Project"
}
]
This action fetches a list of all milestones for a given project
project_id required | integer <int32> Example: 1 the id of the project |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/projects/{project_id}/milestones \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 4,
- "name": "project documentation",
- "end_date": "2018-05-18",
- "comment": "Finish project documentation.",
- "pr_parent_milestone_id": 3
}
]
This action creates a new milestone
project_id required | integer <int32> Example: 1 the id of the project |
Accept required | string Example: 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 |
{- "name": "project documentation",
- "end_date": "2018-05-18",
- "comment": "Finish project documentation.",
- "pr_parent_milestone_id": 3
}
{- "id": 4,
- "name": "project documentation",
- "end_date": "2018-05-18",
- "comment": "Finish project documentation.",
- "pr_parent_milestone_id": 3
}
This action fetches a single milestone
project_id required | integer <int32> Example: 1 the id of the project |
milestone_id required | integer <int32> Example: 3 the id of the milestone |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/projects/{project_id}/milestones/{milestone_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "id": 4,
- "name": "project documentation",
- "end_date": "2018-05-18",
- "comment": "Finish project documentation.",
- "pr_parent_milestone_id": 3
}
This action edits a single milestone
project_id required | integer <int32> Example: 1 the id of the project |
milestone_id required | integer <int32> Example: 3 the id of the milestone |
Accept required | string Example: 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 |
{- "name": "project documentation",
- "end_date": "2018-05-18",
- "comment": "Finish project documentation.",
- "pr_parent_milestone_id": 3
}
{- "id": 4,
- "name": "project documentation",
- "end_date": "2018-05-18",
- "comment": "Finish project documentation.",
- "pr_parent_milestone_id": 3
}
This action permanently deletes a milestone. It cannot be undone.
project_id required | integer <int32> Example: 1 the id of the project |
milestone_id required | integer <int32> Example: 3 the id of the milestone |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/3.0/projects/{project_id}/milestones/{milestone_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action fetches a list of all work packages for a given project
project_id required | integer <int32> Example: 1 the id of the project |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/projects/{project_id}/packages \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 4,
- "name": "Documentation",
- "spent_time_in_hours": 0.5,
- "estimated_time_in_hours": 1.75,
- "comment": "Crete project documentation",
- "pr_milestone_id": 3
}
]
This action creates a new work package
project_id required | integer <int32> Example: 1 the id of the project |
Accept required | string Example: 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 |
{- "name": "Documentation",
- "spent_time_in_hours": 0.5,
- "estimated_time_in_hours": 1.75,
- "comment": "Crete project documentation",
- "pr_milestone_id": 3
}
{- "id": 4,
- "name": "Documentation",
- "spent_time_in_hours": 0.5,
- "estimated_time_in_hours": 1.75,
- "comment": "Crete project documentation",
- "pr_milestone_id": 3
}
This action fetches a single work package
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/projects/{project_id}/packages/{package_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "id": 4,
- "name": "Documentation",
- "spent_time_in_hours": 0.5,
- "estimated_time_in_hours": 1.75,
- "comment": "Crete project documentation",
- "pr_milestone_id": 3
}
This action permanently deletes a work package. It cannot be undone.
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 |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/3.0/projects/{project_id}/packages/{package_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action edits a single work package
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 |
Accept required | string Example: 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 |
{- "name": "Documentation",
- "spent_time_in_hours": 0.5,
- "estimated_time_in_hours": 1.75,
- "comment": "Crete project documentation",
- "pr_milestone_id": 3
}
{- "id": 4,
- "name": "Documentation",
- "spent_time_in_hours": 0.5,
- "estimated_time_in_hours": 1.75,
- "comment": "Crete project documentation",
- "pr_milestone_id": 3
}
This action fetches a list of all timesheets
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/timesheet \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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": {
- "type": "duration",
- "date": "2019-05-20",
- "duration": "01:40"
}
}
]
This action creates a new timesheet
Accept required | string Example: application/json |
user_id required | integer References a user object |
status_id | integer References a timesheet status object |
client_service_id required | integer References a business activity object |
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 |
{- "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": {
- "type": "duration",
- "date": "2019-05-20",
- "duration": "01:40"
}
}
{- "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": {
- "type": "duration",
- "date": "2019-05-20",
- "duration": "01:40"
}
}
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
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "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": {
- "type": "duration",
- "date": "2019-05-20",
- "duration": "01:40"
}
}
]
This action fetches a single timesheet
timesheet_id required | integer <int32> Example: 1 the id of the timesheet |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/timesheet/{timesheet_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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": {
- "type": "duration",
- "date": "2019-05-20",
- "duration": "01:40"
}
}
This action edits a single timesheet
timesheet_id required | integer <int32> Example: 1 the id of the timesheet |
Accept required | string Example: application/json |
user_id required | integer References a user object |
status_id | integer References a timesheet status object |
client_service_id required | integer References a business activity object |
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 |
{- "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": {
- "type": "duration",
- "date": "2019-05-20",
- "duration": "01:40"
}
}
{- "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": {
- "type": "duration",
- "date": "2019-05-20",
- "duration": "01:40"
}
}
This action permanently deletes a timesheet. It cannot be undone.
timesheet_id required | integer <int32> Example: 1 the id of the timesheet |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/2.0/timesheet/{timesheet_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action fetches a list of all timesheet Status
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/timesheet_status \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 2,
- "name": "In Progress"
}
]
This action fetches a list of all business activities
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/client_service \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "name": "Project Management",
- "default_is_billable": false,
- "default_price_per_hour": null,
- "account_id": null
}
]
This action creates a new business activity
Accept required | string Example: application/json |
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 |
{- "name": "Project Management",
- "default_is_billable": false,
- "default_price_per_hour": null,
- "account_id": null
}
{- "id": 1,
- "name": "Project Management",
- "default_is_billable": false,
- "default_price_per_hour": null,
- "account_id": null
}
Search business activities via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:
name
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "id": 1,
- "name": "Project Management",
- "default_is_billable": false,
- "default_price_per_hour": null,
- "account_id": null
}
]
This action fetches a list of all communication types
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/communication_kind \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "name": "Mobile Phone"
}
]
Search communication types via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:
name
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "id": 1,
- "name": "Mobile Phone"
}
]
This action provides a list of files which are uploaded to a certain company
archived_state | string Example: archived_state=all Include/Exclude archived files via filter (all, archived, not_archived) |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/files \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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"
}
]
Creates a new file from payload
Accept required | string Example: application/json |
Upload file
file required | string <binary> <= 255 characters Input path to file |
{ "name": "form-data", "value": "@\"/path-to-your-file\"" }
[- {
- "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"
}
]
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
archived_state | string Example: archived_state=all Include/Exclude archived files via filter (all, archived, not_archived) |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "name",
- "value": "screenshot"
}
]
[- {
- "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"
}
]
Tries to query the requested file from the backend
file_id required | integer <int32> Example: 1 File ID to show |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/files/{file_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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"
}
Sets state of a file to deleted. It cannot be undone.
file_id required | integer <int32> Example: 1 File ID to show |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/3.0/files/{file_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
Updates a existing file with provided properties
file_id required | integer <int32> Example: 1 File ID to show |
Accept required | string Example: application/json |
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 |
{- "name": "screenshot",
- "is_archived": true,
- "source_type": "web"
}
{- "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"
}
Provides requested file from backend as stream
file_id required | integer <int32> Example: 1 File ID to show |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/files/{file_id}/download \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
"string"
Provides requested preview for file from backend as stream
file_id required | integer <int32> Example: 1 File ID to get preview file |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/files/{file_id}/preview \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
"string"
Tries to query the requested file from the backend
file_id required | integer <int32> Example: 1 File ID to show |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/files/{file_id}/usage \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "id": 1,
- "ref_class": "KbInvoice",
- "title": "RE-00001",
- "document_nr": "RE-00001"
}
Please note that each account currently has only one company profile.
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/company_profile \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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="
}
]
This action fetches a single company profile
profile_id required | integer <int32> Example: 1 the id of the company profile |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/company_profile/{profile_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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="
}
This action fetches a list of all countries
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/country \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "name": "Kiribati",
- "name_short": "KI",
- "iso3166_alpha2": "KI"
}
]
This action creates a new country
Accept required | string Example: application/json |
name required | string |
name_short required | string |
iso3166_alpha2 required | string |
{- "name": "Kiribati",
- "name_short": "KI",
- "iso3166_alpha2": "KI"
}
{- "id": 1,
- "name": "Kiribati",
- "name_short": "KI",
- "iso3166_alpha2": "KI"
}
Search countries via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:
name
name_short
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "id": 1,
- "name": "Kiribati",
- "name_short": "KI",
- "iso3166_alpha2": "KI"
}
]
This action fetches a single country
country_id required | integer <int32> Example: 1 the id of the country |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/country/{country_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "id": 1,
- "name": "Kiribati",
- "name_short": "KI",
- "iso3166_alpha2": "KI"
}
This action edits a single country
country_id required | integer <int32> Example: 1 the id of the country |
Accept required | string Example: application/json |
name required | string |
name_short required | string |
iso3166_alpha2 required | string |
{- "name": "Kiribati",
- "name_short": "KI",
- "iso3166_alpha2": "KI"
}
{- "id": 1,
- "name": "Kiribati",
- "name_short": "KI",
- "iso3166_alpha2": "KI"
}
This action permanently deletes a country. It cannot be undone.
country_id required | integer <int32> Example: 1 the id of the country |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/2.0/country/{country_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action fetches a list of all languages
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/language \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "name": "German",
- "decimal_point": ".",
- "thousands_separator": "'",
- "date_format_id": 1,
- "date_format": "d.m.Y",
- "iso_639_1": "de"
}
]
Search languages via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:
name
iso_639_1
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "id": 1,
- "name": "German",
- "decimal_point": ".",
- "thousands_separator": "'",
- "date_format_id": 1,
- "date_format": "d.m.Y",
- "iso_639_1": "de"
}
]
This action fetches a list of all notes
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/note \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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
}
]
This action creates a new note
Accept required | string Example: 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 |
{- "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
}
{- "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 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
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "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
}
]
This action fetches a single note
note_id required | integer <int32> Example: 1 the id of the note |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/note/{note_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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
}
This action edits a single note
note_id required | integer <int32> Example: 1 the id of the note |
Accept required | string Example: 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 |
{- "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
}
{- "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
}
This action permanently deletes a note. It cannot be undone.
note_id required | integer <int32> Example: 1 the id of the note |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/2.0/note/{note_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action fetches a list of all payment types
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/payment_type \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "name": "Cash"
}
]
Search payment types via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:
name
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "id": 1,
- "name": "Cash"
}
]
Get components and user permissions of logged in user
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/permissions \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "components": [
- "functionality1",
- "functionality2"
], - "permissions": {
- "property": {
- "attribute1": "enabled",
- "attribute2": "all",
- "attribute3": "all"
}
}
}
This action fetches a list of all tasks
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/task \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "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
}
]
This action creates a new task
Accept required | string Example: 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 |
remember_time_id | integer or null Is required if |
communication_kind_id | integer or null |
{- "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
}
{- "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 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
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. |
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "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
}
]
This action fetches a single task
task_id required | integer <int32> Example: 1 the id of the task |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/task/{task_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "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
}
This action edits a single task
task_id required | integer <int32> Example: 1 the id of the task |
Accept required | string Example: 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 |
remember_time_id | integer or null Is required if |
communication_kind_id | integer or null |
{- "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
}
{- "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
}
This action permanently deletes a task. It cannot be undone.
task_id required | integer <int32> Example: 1 the id of the task |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/2.0/task/{task_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action fetches a list of all task priorities
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/todo_priority \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "name": "High"
}
]
This action fetches a list of all task status
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. |
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/todo_status \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "name": "Open"
}
]
This action fetches a list of all units
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/unit \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 1,
- "name": "h"
}
]
This action creates a new unit
Accept required | string Example: application/json |
name required | string |
{- "name": "h"
}
{- "id": 1,
- "name": "h"
}
Search units via query. Please refer to the Search section for detailed instructions.
The following search fields are supported:
name
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 |
Accept required | string Example: application/json |
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" |
[- {
- "field": "search_field",
- "value": "search term",
- "criteria": "="
}
]
[- {
- "id": 1,
- "name": "h"
}
]
This action fetches a single unit
unit_id required | integer <int32> Example: 1 the id of the unit |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/2.0/unit/{unit_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "id": 1,
- "name": "h"
}
This action edits a single unit
unit_id required | integer <int32> Example: 1 the id of the unit |
Accept required | string Example: application/json |
name required | string |
{- "name": "h"
}
{- "id": 1,
- "name": "h"
}
This action permanently deletes a unit. It cannot be undone.
unit_id required | integer <int32> Example: 1 the id of the unit |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/2.0/unit/{unit_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action fetches a list of all users
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/users \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 4,
- "salutation_type": "male",
- "firstname": "Rudolph",
- "lastname": "Smith",
- "email": "rudolph.smith@example.com",
- "is_superadmin": true,
- "is_accountant": false
}
]
This action fetches a single user
user_id required | integer <int32> Example: 4 the id of the user |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/users/{user_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "id": 4,
- "salutation_type": "male",
- "firstname": "Rudolph",
- "lastname": "Smith",
- "email": "rudolph.smith@example.com",
- "is_superadmin": true,
- "is_accountant": false
}
This action fetches the user authenticated by the bearer token.
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/users/me \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "id": 4,
- "salutation_type": "male",
- "firstname": "Rudolph",
- "lastname": "Smith",
- "email": "rudolph.smith@example.com",
- "is_superadmin": true,
- "is_accountant": false
}
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
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 |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/fictional_users \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
[- {
- "id": 4,
- "salutation_type": "male",
- "firstname": "Rudolph",
- "lastname": "Smith",
- "email": "rudolph.smith@bexio.com",
- "title_id": null
}
]
This action creates a new fictional user
Accept required | string Example: application/json |
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 |
{- "salutation_type": "male",
- "firstname": "Rudolph",
- "lastname": "Smith",
- "email": "rudolph.smith@bexio.com",
- "title_id": null
}
{- "id": 4,
- "salutation_type": "male",
- "firstname": "Rudolph",
- "lastname": "Smith",
- "email": "rudolph.smith@bexio.com",
- "title_id": null
}
This action fetches a single fictional user
fictional_user_id required | integer <int32> Example: 4 the id of the fictional user |
Accept required | string Example: application/json |
curl -X GET \ https://api.bexio.com/3.0/fictional_users/{fictional_user_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "id": 4,
- "salutation_type": "male",
- "firstname": "Rudolph",
- "lastname": "Smith",
- "email": "rudolph.smith@bexio.com",
- "title_id": null
}
This action permanently deletes a fictional user. It cannot be undone.
fictional_user_id required | integer <int32> Example: 4 the id of the fictional user |
Accept required | string Example: application/json |
curl -X DELETE \ https://api.bexio.com/3.0/fictional_users/{fictional_user_id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}'
{- "success": true
}
This action updates an existing fictional user
fictional_user_id required | integer <int32> Example: 4 the id of the fictional user |
Accept required | string Example: application/json |
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 |
{- "salutation_type": "male",
- "firstname": "Rudolph",
- "lastname": "Smith",
- "email": "rudolph.smith@bexio.com",
- "title_id": null
}
{- "id": 4,
- "salutation_type": "male",
- "firstname": "Rudolph",
- "lastname": "Smith",
- "email": "rudolph.smith@bexio.com",
- "title_id": null
}