KLARA API documentation
Integrate accounting, articles, customers, payroll and time tracking directly with KLARA business software. Everything on this site is about KLARA only.
Getting started
- Prerequisites
An active KLARA account with a company set up, a user role that allows managing users, and an HTTP client. HTTP/1.0 is no longer supported, so use HTTP/1.1 or HTTP/2.
- Create an API key in KLARA
Go to Benutzer, add a new API key, give it a name and assign at least one KLARA user role. Suggested naming convention:
integration-payroll-prod. - Choose roles and permissions
Assign only the roles your use case needs. Any user holding that role can authenticate with the key. See Roles & permissions.
- Set up authentication
Send the key as an
X-API-KEYheader, or obtain a bearer token via the token flow. See Authentication. - Make your first API call
List your articles. This is a read-only request that touches no data.
curl -X GET "https://api.klara.ch/core/latest/articles" \ -H "X-API-KEY: $KLARA_API_KEY" \ -H "Accept: application/json"
A successful call returns
200with a JSON array. If you get401, check the header name and that the key is assigned to a role. See Authentication.This example only reads, which is deliberate: there is no separate test environment, so every call works on your live data. See Environments.
- Where to go next
Browse the reference by domain, or read the guides on errors, pagination and versioning.
API basics
Everything you need once, so you never have to guess again.
API routes
All endpoints live on https://api.klara.ch. Paths in this reference are relative and
must be combined with the host:
GET /core/v1/invoices/42 → https://api.klara.ch/core/v1/invoices/42
Three prefixes are in use. /core/v1 holds accounting, finance and payroll,
/core/v2 holds company and individual profiles, and /core/latest still
holds articles, customers and authentication.
HTTP verbs
| Verb | Used for | Endpoints |
|---|---|---|
| GET | Retrieving resources | 55 |
| PUT | Replacing a resource completely | 10 |
| POST | Creating resources, and some actions such as /send | 25 |
| DELETE | Removing a resource | 7 |
97 endpoints in total, which is the same number as in the reference below and in the downloadable specification.
The KLARA API does not use PATCH. To change part of a resource, send a complete
PUT. Read the current state first if you do not hold it.
Headers
| Header | Value | When |
|---|---|---|
X-API-KEY | your API key | API key authentication |
Authorization | Bearer <JWT> | Token authentication |
Accept | application/json |
Almost everywhere. Three endpoints return binary or PDF instead, see below |
Content-Type | depends on the endpoint | On any request with a body. Most take application/json, the token
endpoints take application/x-www-form-urlencoded and the upload
endpoints take multipart/form-data, see below |
Accept-Language | de-CH, fr-CH,
it-CH or en |
Optional, on the endpoints that return translated labels |
Media types
Request bodies
Send the matching Content-Type. Form-encoded endpoints reject a JSON body, which is the most common reason a first token request fails.
| Media type | Endpoints | Which ones |
|---|---|---|
application/json | 22 | every endpoint that has one |
application/x-www-form-urlencoded | 4 | POST /core/latest/generic-tokenPOST /core/latest/tenantsPOST /core/latest/tokenPOST /core/latest/token/by-microsoft |
multipart/form-data | 3 | POST /core/latest/articles/{article-id}/imagesPOST /core/latest/companies/{company-id}/documentsPUT /core/latest/articles/{article-id}/images/{image-id} |
Responses
Ask for what the endpoint returns. Accept: application/json is correct almost everywhere, but not for the binary and PDF responses below.
| Media type | Endpoints | Which ones |
|---|---|---|
application/json | 97 | every endpoint that has one |
application/octet-stream | 2 | GET /core/latest/articles/{article-id}/images/{image-id}POST /core/latest/payroll-interface-file |
application/pdf | 1 | POST /core/v1/invoices/{id}/printed-document |
Errors
Most error responses use this shape:
{
"uuid": "b3f1c8e2-...",
"createdTime": "2026-07-30T09:12:44Z",
"code": "VALIDATION_FAILED",
"message": "Human readable description"
}
The authentication endpoints use the OAuth-style shape instead:
{ "error": "invalid_grant", "error_description": "Bad credentials" }
The uuid identifies one specific occurrence. Include it in support requests.
It is the fastest route to an answer.
The field detail still appears in some responses but is deprecated.
Do not build on it.
OpenAPI specification
klara-openapi.json This is the specification this documentation was generated from. Both are updated when a new API version is released.
Authentication
The KLARA API accepts two mechanisms. Most endpoints accept either.
| Mechanism | How | Best for |
|---|---|---|
apiKeyAuth | Header X-API-KEY |
Server-to-server integrations bound to one company |
bearerAuth | Header Authorization: Bearer <JWT> |
User-context flows, multi-tenant tools |
Token flow
A KLARA user can belong to several tenants. Resolve the tenant first, then request a token.
POST /core/latest/tenants # returns tenant id + company id POST /core/latest/token # grant_type: password | refresh_token | token_exchange
Content-Type: application/x-www-form-urlencoded. Sending JSON is the
most common reason a first token request fails. Full media type list under
Requests and responses.
Which fields each grant needs
The specification does not mark any of these form fields as required, so the table below is
taken from the endpoint descriptions rather than from the schema. Treat it as the working
contract and expect 400 if a field is missing.
| Endpoint | grant_type | Required fields | Returns |
|---|---|---|---|
POST /core/latest/token | password |
username, password, tenant_id,
company_id |
Access token scoped to one company, plus refresh token |
refresh_token | refresh_token |
A new access token without re-sending credentials | |
token_exchange |
subject_token, audience |
OAuth 2.0 Token Exchange, RFC 8693. Pass subject_token as the raw upstream
token value, without the Bearer prefix. The only
audience value the specification documents is cossa | |
POST /core/latest/generic-token |
password | username, password |
Access token for the user, not bound to a company |
refresh_token | refresh_token |
A new access token | |
POST /core/latest/token/by-microsoft | not applicable | microsoft_access_token, tenant_id |
System token |
POST /core/latest/tenants | not applicable | username and password, or
access_token |
The user's tenants with their tenant and company ids |
Which one do I use? /core/latest/token returns a token bound to one tenant
and company, which is what you want for a normal integration.
/core/latest/generic-token takes no tenant or company and returns a token for the
user alone. If you are unsure, use /core/latest/token.
Complete example, password grant
curl -X POST "https://api.klara.ch/core/latest/tenants" \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "username=$KLARA_USER" \ --data-urlencode "password=$KLARA_PASSWORD" # → pick the tenant id and company id you want to work with curl -X POST "https://api.klara.ch/core/latest/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=password" \ --data-urlencode "username=$KLARA_USER" \ --data-urlencode "password=$KLARA_PASSWORD" \ --data-urlencode "tenant_id=$TENANT_ID" \ --data-urlencode "company_id=$COMPANY_ID" # use the access_token from the response on any other endpoint curl -X GET "https://api.klara.ch/core/v1/customers?limit=10" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json"
Refreshing
curl -X POST "https://api.klara.ch/core/latest/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=refresh_token" \ --data-urlencode "refresh_token=$REFRESH_TOKEN"
400, 401, 429 and 500 on
/core/latest/token, /core/latest/generic-token and
/core/latest/token/by-microsoft define no body in the specification. You get the
status code and nothing else, so log the request you sent.
POST /core/latest/tenants is the exception and returns an
error and error_description pair.
Endpoints that need no authentication
4 endpoints require no authentication, because they are how you obtain a token in the first place. Everything else in this reference accepts either an API key or a bearer token, and no endpoint accepts only one of the two.
- POST
/core/latest/generic-token: Generate tokens to use Klara specific endpoint - POST
/core/latest/tenants: Returns all tenants of a user - POST
/core/latest/token: Generate tokens to access other KLARA core endpoints - POST
/core/latest/token/by-microsoft: Exchange Microsoft access token for system token
Submitting variable payroll data
The flow is three calls. You need the employee first, then the payslip that is still editable, then you post the item.
1. GET /core/v1/employees/short-info
→ find the employee, take their employeeId
2. GET /core/v1/payroll/employees/{employeeId}/addable-salary-items
→ returns which item types may be added, plus contractId and payslipId
3. POST /core/v1/payroll/contracts/{contractId}/payslips/{payslipId}/salary-items
→ adds the item and recalculates the month
What you can submit
Salary items come in the types Base, Percent, Quantity, Amount and Comments. Step 2 tells you which types the payslip accepts. Do not guess, the answer depends on the employee's contract.
Finding the right employee
GET /core/v1/employees/short-info returns a lightweight directory: id, name, email,
employee number, workplace and status. It supports search-key,
filter-by-status, workplace-ids, sort-field and
sort-direction. This is the most capable filtering in the whole API today.
- Only editable payslips. Once a payslip is sealed, it no longer accepts items. Your integration needs to run before the salary run is closed, so plan the timing.
- Recalculation is triggered per call. Pass
recalculate=falsewhen adding several items in sequence, then recalculate once at the end. Otherwise you recompute the month for every single item.
Getting responses in German, French, Italian or English
Switzerland has four language regions, and so does your customer base. A number of endpoints
return content that is translated, for example account names, VAT descriptions, booking-type
labels and salary-item descriptions. You choose the language with the standard
Accept-Language request header.
curl -X GET "https://api.klara.ch/core/v1/accounting/accounts" -H "X-API-KEY: $KLARA_API_KEY" -H "Accept-Language: fr-CH" -H "Accept: application/json"
The header takes an IETF language tag. The tags documented in the specification are
de-CH, fr-CH, it-CH and en. Where a
translation is missing, the response falls back to German. Some endpoints fall back to the
language configured on the tenant instead when you omit the header, so pass it explicitly if
you care about the result.
Where it applies
23 endpoints accept Accept-Language. Look for it in the parameter
list of any endpoint in the API reference. It is most common across
accounting: accounts, booking types, VAT types, VAT cases, business-case templates and
financial years. It also affects POST /core/v1/bookings, where it selects the
language of localised error messages, and the payroll endpoint that lists addable salary
items.
Building your own language picker
Two schemas return not just the resolved text but the complete set of translations, keyed by language tag. Use these when your own interface offers a language switch and you would rather not call the API once per language.
| Schema | Fields |
|---|---|
PublicApiBusinessCaseTemplate |
i18n, keywordI18ns |
PublicApiVatType |
i18n, i18nShortName |
Keeping your API key safe
An API key authenticates as a role inside your company. Treat it like a password.
- One key per use case. Name it so you can identify it later, for example
integration-payroll-prod. When something goes wrong you can revoke one integration instead of all of them. - Never in client-side code. Not in a browser, not in a mobile app, not in anything a user can read. The key belongs on your server.
- Never in a repository. Use environment variables or a secret manager. A key committed once stays in the Git history even after you delete the line.
- Separate keys for development and live operation. There is only one environment, so the key name is what tells them apart. Delete the development key when you go live.
- Rotate on staff changes. Anyone holding the assigned role can use the key. When someone leaves the team, rotate.
- Revoke what you no longer use. Delete keys under Benutzer in KLARA as soon as an integration is retired.
Sending documents with smart delivery
You do not have to decide how an invoice reaches your customer. Book it, then call
POST /core/v1/invoices/{id}/send without a channel. KLARA routes it through
EPOST, EBILL, SEND_EMAIL and Print&Send, and only
fails if none of them can deliver.
Smart delivery
Omit the channel query parameter. There is no request body.
curl -X POST "https://api.klara.ch/core/v1/invoices/42/send" -H "X-API-KEY: $KLARA_API_KEY" -H "Accept: application/json"
Forcing one channel
Pass channel as a query parameter to force exactly that channel. If the recipient
is not eligible for it, for example no email on file, not registered for eBill, or Print&Send
not subscribed, the call fails with 400.
curl -X POST "https://api.klara.ch/core/v1/invoices/42/send?channel=SEND_EMAIL" -H "X-API-KEY: $KLARA_API_KEY" -H "Accept: application/json"
| Value | Channel | Can be forced |
|---|---|---|
SEND_EMAIL | Email to the recipient | yes |
EPOST | ePost digital letterbox | yes |
EBILL | eBill, straight into the recipient's e-banking | yes |
A_POST | Printed and posted, A Post | yes |
B_POST | Printed and posted, B Post | yes |
PRINT_AND_MANUAL_SEND | Printed for manual dispatch | no, rejected with 400 |
PRINT_AND_MANUAL_SEND is a value you may see on
Invoice.postMethod, but it is not a deliverable channel and cannot be forced.
- The invoice must already be booked. Drafts and cancelled invoices are rejected with
400. Create and book it first throughPOST /core/v1/invoiceswithstatus=INVOICED. - This call is not idempotent. Every successful call performs a real delivery, sending an email or handing a letter to the postal channel, and overwrites the invoice's recorded post method. Do not retry blindly after a success. Remember there is no test environment, so this happens on live data.
Requires the FINANCE permission on the target company.
The invoice PDF is rendered on demand if it has not been printed yet.
Roles & permissions
An API key is linked to one or more KLARA roles. Any user holding that role can use the key to authenticate for that company. You create and manage keys under Benutzer in KLARA.
Which permission does an endpoint need?
Where the API declares a permission requirement, it is shown in the endpoint's detail block in
the API reference. Look for Required permission. You will
see constants such as ACCOUNTING,
FINANCE, ARTICLE_READ_ONLY or
COMPENSATION_TIME_TRACKING. Some endpoints state explicitly that no
particular permission is required.
If an endpoint shows no permission and you receive 403, the role assigned to your
key does not cover it. Contact support and include the
endpoint and the uuid from the error response, and you will get a definitive
answer.
Limits, pagination and environments
Environments
There is one environment: https://api.klara.ch. It serves your live company data.
- Explore with
GETfirst. Reading is safe. Get familiar with the data shapes before you write anything. - Writes take effect immediately. A created invoice is a real invoice, and a salary item added to a payslip is real payroll data.
- Use a separate key for development, named so you can recognise and revoke it,
for example
integration-dev. Delete it when you go live. - If you can, develop against a company you control rather than a client's production company.
Rate limiting
The API enforces a rate limit. When you exceed it, the response is
429 API rate limit exceeded. Nearly every endpoint can return it.
429 response but names no threshold, no time window,
no counting scope and no Retry-After or rate limit headers. Until those are
confirmed, treat the guidance below as the contract and do not assume a number.
How to build for it
- Retry with exponential backoff. On
429, wait, then retry with an increasing delay. Do not retry immediately in a loop. - Cache reference data. Accounts, VAT rates, booking types, article categories and salutations change rarely. Fetch them once per run, not once per record.
- Batch your work. When adding several payroll salary items, pass
recalculate=falseand recalculate once at the end. - Prefer one request over many. Use collection endpoints with
limitandoffsetwhere they exist instead of fetching records one by one.
If your integration needs a higher limit, talk to us and describe the volume you expect.
Pagination
8 endpoints accept pagination parameters:
| Endpoint | Parameters |
|---|---|
GET /core/latest/article-categories | limit no offset, only the first page is reachable |
GET /core/latest/article-filters | limit no offset, only the first page is reachable |
GET /core/latest/articles | limit, offset |
GET /core/latest/articles/article-and-variants | limit, offset |
GET /core/latest/articles/search | limit, offset |
GET /core/v1/accounting/business-case-templates | limit, offset |
GET /core/v1/accounting/master-vats | limit, offset |
GET /core/v1/customers | limit, offset |
Searching and filtering
8 endpoints accept search or filter parameters as part of the query string. Anything not listed here has to be fetched and filtered in your own code.
| Endpoint | Parameters |
|---|---|
GET /core/latest/article-categories | active-status, keyword |
GET /core/latest/article-filters | active-status, keyword |
GET /core/latest/articles/search | keyword |
GET /core/v1/accounting/business-cases | dateForFilteringCompanyVat, dateForFilteringFiscalYear |
GET /core/v1/accounting/business-cases/v2 | dateForFilteringCompanyVat, dateForFilteringFiscalYear |
GET /core/v1/bank-reconciliation/open-positions | general-search, payment-date-from, payment-date-to, position-status |
GET /core/v1/customers | search-key, status |
GET /core/v1/employees/short-info | filter-by-status, search-key, sort-direction, sort-field, workplace-ids |
Invoices are the most important gap: they cannot be listed or filtered at all, so you have to keep the ids you created. See Known limitations.
API reference
97 endpoints. Click any endpoint for its description, parameters, request body and
responses. Everything below is generated from klara-openapi.json; ePost endpoints
and the eBill, SPS, email and print partner channels are removed by the build.
Finance & Accounting
Accounting24
GET/core/v1/accounting/accountskey / tokenList Klara master chart-of-account rows.
legal-form query parameter is supplied, only accounts that carry a translation for that legal form are returned, and the name field is resolved from the legal-form-specific translation column. The Accept-Language header selects which translation is used; if absent or unsupported the platform default applies. The endpoint is a pure read — idempotent, no side effects. Any authenticated bearer token is accepted; the downstream service declares no role or permission requirement on this endpoint.Required permission
none The specification states that no role or permission is required for this endpoint.
Parameters 2
| Name | Description |
|---|---|
legal-form | Restricts the result to accounts that carry a translation for the given Swiss legal form, and resolves name from that legal-form-specific column. Allowed values: LIMITED_LIABILITY, CORPORATION, OR, INDIVIDUALLY_OWNED_COMPANY, ASSOCIATION, SIMPLE_PARTNERSHIP, GENERAL_PARTNERSHIP, LIMITED_PARTNERSHIP, COOPERATIVE_COMPANY, FOUNDATION.Allowed values: LIMITED_LIABILITY, CORPORATION, OR, INDIVIDUALLY_OWNED_COMPANY, ASSOCIATION, SIMPLE_PARTNERSHIP, GENERAL_PARTNERSHIP, LIMITED_PARTNERSHIP, COOPERATIVE_COMPANY, FOUNDATION |
Accept-Language | IETF language tag used to resolve the localized name field of each account. Examples: de-CH, fr-CH, it-CH, en. |
Responses 5
200 Master accounts, sorted by code ascending. Empty array when the chart of accounts has not been seeded yet. show body
application/json array of PublicApiAccount
Array of PublicApiAccount.
idinteger (int64) format: int64 example: 42Internal identifier of the master account.codeinteger (int32) format: int32 example: 1020Numeric account code as printed on the chart of accounts.namestring example: BankLocalized account name. Resolved against the request'sAccept-Languageand, whenlegal-formis supplied, against the legal-form-specific translation.tagsstring example: bank;kontoFree-text keyword tokens associated with the account, used by client-side search. Tokens are delimited by comma or semicolon.linksstring example: bank_accountLinked-account references used by report computations.accountReportLinksstring example: bank_accountReport-grouping references used to assemble balance-sheet / P&L groupings.initialBalanceSheetboolean example: FalseTrue when the account is part of the initial opening-balance sheet.visibleFirstFiscalYearboolean example: TrueTrue when the account is visible during the first fiscal year of a new company.visibleFromSecondFiscalYearboolean example: TrueTrue when the account becomes visible from the second fiscal year onwards.vatAccountboolean example: FalseTrue when the account is reserved for VAT postings.accountReportFiltersarray of PublicApiAccountReportFilterReport-grouping configuration rows attached to this account.show fields
Array of
PublicApiAccountReportFilter.displaystring example: Operating expensesHuman-readable label of the report bucket this account contributes to.linkAccountValuestring example: 6000Underlying linked-account value used by the accounting engine to resolve the bucket.
notManuallyAddedboolean example: TrueTrue when the account was seeded automatically (not added by an end user).
404 The supplied legal-form value does not match any known legal form. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/accounting/accounts/account-displayingkey / tokenList the account-displaying picker rows for the authenticated company.
AccountDisplaying rows for every account in the caller's company chart of accounts. Each row represents one selectable combination that a bookkeeper can pick when entering a manual journal line. Tenant and company are derived from the bearer token — there are no tenant or company path parameters.How rows are produced: For each master account the downstream service checks whether the account carries any linked sub-account definitions (e.g. a bank account linked to specific bank-accounts, a VAT account linked to VAT-rate items). If the account has no sub-account definitions, exactly one bare row is emitted with combinedCode equal to the bare account code (e.g. "3000"), linkType equal to null, and specificationItem equal to null. If the account has one or more sub-account link specifications, one row is emitted per individual sub-account entry, numbered sequentially across all link types with a 0-based counter suffix: "1020-0", "1020-1", …
combinedCode: "<accountCode>-<i>" when a sub-account exists (e.g. "1020-0"), or the bare account code string (e.g. "3000") when linkType is null. The suffix index is a flat 0-based counter per account, spanning all link types in declaration order.
combinedName: "<accountName> (<subAccountDisplay>)" when a sub-account exists (e.g. "Bank (UBS)"), or the bare account name (e.g. "Bürobedarf") when linkType is null.
parentAccount: the full master account this row belongs to. Always populated, including for bare rows.
linkType: the link-type category name (e.g. "BANK", "CUSTOMER", "VAT_RATE"). null when the account has no sub-account definitions.
linkDisplay: the human-readable label for the link type in the current locale (e.g. "Bank account"). Falls back to the German label when no translation exists for the requested language. null when linkType is null.
linkOptional: true when the sub-account selection is optional for the user (link keys are separated by ; in the account definition); false when selecting a sub-account is mandatory (link keys separated by ,); null when the account has no sub-account definitions.
specificationItem: the resolved sub-account entry for this row. Its link field is the URI that must be round-tripped back to the booking endpoint when the user selects this row. Its display field is the human-readable label shown to the bookkeeper (e.g. "UBS", "8.1 %"). null when linkType is null.
Row order is stable: accounts are sorted by code ascending (same order as GET /core/v1/accounting/accounts); sub-account rows within each account preserve the link-type declaration order and then the entry order returned by the underlying service.
ACCOUNTING permission on the company in scope.Required permission
ACCOUNTING
Parameters 2
| Name | Description |
|---|---|
legal-form | When supplied, restricts the result to accounts that carry a translation for the given Swiss legal form and resolves the parentAccount.name field from the legal-form-specific translation column. When omitted, all accounts are returned and account.name is resolved from the generic language column. Allowed values: LIMITED_LIABILITY, CORPORATION, OR, INDIVIDUALLY_OWNED_COMPANY, ASSOCIATION, SIMPLE_PARTNERSHIP, GENERAL_PARTNERSHIP, LIMITED_PARTNERSHIP, COOPERATIVE_COMPANY, FOUNDATION.Allowed values: LIMITED_LIABILITY, CORPORATION, OR, INDIVIDUALLY_OWNED_COMPANY, ASSOCIATION, SIMPLE_PARTNERSHIP, GENERAL_PARTNERSHIP, LIMITED_PARTNERSHIP, COOPERATIVE_COMPANY, FOUNDATION |
Accept-Language | IETF language tag used to localize the parentAccount.name field of each row and the linkDisplay label. Falls back to German when no translation exists for the requested language. Examples: de-CH, fr-CH, it-CH, en. |
Responses 6
200 Flat list of account-displaying rows, sorted by account code ascending. Each row contains combinedCode, combinedName, parentAccount, and the link fields populated for sub-account rows or null for bare rows. Returns an empty array when no accounts match the supplied legal-form. show body
application/json array of PublicApiAccountDisplaying
Array of PublicApiAccountDisplaying.
combinedCodestring example: 1020-0Picker key."<accountCode>-<i>"when a sub-account exists (e.g."1020-0"); the bare account code string (e.g."3000") whenlinkTypeisnull. The suffix index is a flat 0-based counter per account, spanning all link types in declaration order.combinedNamestring example: Bank (UBS)Picker label."<accountName> (<subAccountDisplay>)"when a sub-account exists (e.g."Bank (UBS)"); the bare account name (e.g."Bürobedarf") whenlinkTypeisnull.parentAccountobjectA master account from Klara's global chart of accounts.show fields
idinteger (int64) format: int64 example: 42Internal identifier of the master account.codeinteger (int32) format: int32 example: 1020Numeric account code as printed on the chart of accounts.namestring example: BankLocalized account name. Resolved against the request'sAccept-Languageand, whenlegal-formis supplied, against the legal-form-specific translation.tagsstring example: bank;kontoFree-text keyword tokens associated with the account, used by client-side search. Tokens are delimited by comma or semicolon.linksstring example: bank_accountLinked-account references used by report computations.accountReportLinksstring example: bank_accountReport-grouping references used to assemble balance-sheet / P&L groupings.initialBalanceSheetboolean example: FalseTrue when the account is part of the initial opening-balance sheet.visibleFirstFiscalYearboolean example: TrueTrue when the account is visible during the first fiscal year of a new company.visibleFromSecondFiscalYearboolean example: TrueTrue when the account becomes visible from the second fiscal year onwards.vatAccountboolean example: FalseTrue when the account is reserved for VAT postings.accountReportFiltersarray of PublicApiAccountReportFilterReport-grouping configuration rows attached to this account.show fields
Array of
PublicApiAccountReportFilter.displaystring example: Operating expensesHuman-readable label of the report bucket this account contributes to.linkAccountValuestring example: 6000Underlying linked-account value used by the accounting engine to resolve the bucket.
notManuallyAddedboolean example: TrueTrue when the account was seeded automatically (not added by an end user).
linkTypestring example: BANKLink-type category. Identifies the kind of entity the sub-account refers to. Common values:VAT_RATE,VAT_CASE,BANK,CUSTOMER,SUPPLIER,EMPLOYEE,SOCIAL_INSURANCE,TAX_AT_SOURCE,EQUITY,TANGIBLE_ASSET,IMMOBILE_TANGIBLE_ASSET,UNFINISHED_PRODUCTS,FINISHED_PRODUCTS,NON_BILLED_SERVICES,INVENTORY_CHANGE_MATERIAL,INVENTORY_CHANGE_GOODS,LONG_TERM_INTEREST_BEARING,OTHER_LONG_TERM_INTEREST_BEARING,GIFT_CARD,VARIOUS.nullwhen the account has no sub-account definitions.linkDisplaystring example: Bank accountHuman-readable label for the link type in the requestedAccept-Language. Falls back to the German label when no translation exists for the requested language.nullwhenlinkTypeisnull.linkOptionalboolean example: Falsetruewhen the sub-account selection is optional for the user (link keys are separated by;in the account definition);falsewhen selecting a sub-account is mandatory (link keys separated by,);nullwhen the account has no sub-account definitions.specificationItemobjectOne concrete sub-account choice; carries the URI to round-trip to the booking endpoint and the display label.show fields
idstring example: 42Stable identifier of the underlying entity (e.g. bank-account id, VAT-rate id, customer id). May benullfor synthesized entries.filteredBystring example:Optional filter token used by the Accounting UI to narrow the picker. Empty for most link types.displaystring example: UBSHuman-readable label shown in the picker (e.g."UBS"for a bank account,"8.1 %"for a VAT rate).linkstring example: bank_account:/luz_finance/api/5fe76717-60a0-4b20-9819-255a957f3eb9/companies/1/bank-accounts/42Canonical URI for this sub-account choice. MUST be round-tripped verbatim to the booking-creation endpoint when the row is selected.additionalAttributestring example:Free-form additional attribute attached by the link-type supplier. Most types leave this empty.snippetReferencestring example:Optional snippet reference returned by the underlying entity (used by some link types to carry a template hint).valuestring example: 8.1Optional raw value associated with the entry (e.g. the VAT percentage as a decimal string).validFromstring (date) format: date example: 2024-01-01Inclusive start of the validity window of the underlying entity (ISOyyyy-MM-dd).nullwhen not applicable.validTostring (date) format: date example: 2024-12-31Inclusive end of the validity window of the underlying entity (ISOyyyy-MM-dd).nullwhen open-ended.
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
404 The company associated with the caller's session could not be resolved by the downstream accounting service, or the supplied legal-form value does not match any known legal form. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/accounting/accounts/by-code/{accountCode}key / tokenResolve a Klara master account by its chart-of-account code.
accountCode. The data is global — the same chart of accounts is shared across every tenant, so there are no tenant or company path parameters. When the optional legal-form query parameter is supplied, the name field is resolved from the legal-form-specific translation column instead of the generic one. The Accept-Language header selects which translation is used; if absent or unsupported the platform default applies. The endpoint is a pure read — idempotent, no side effects. Any authenticated bearer token is accepted; the downstream service declares no role or permission requirement on this endpoint.Required permission
none The specification states that no role or permission is required for this endpoint.
Parameters 3
| Name | Description |
|---|---|
accountCode required | Numeric chart-of-account code as printed on the Klara master chart of accounts (e.g. 1000 for cash, 6000 for material expense). |
legal-form | When supplied, resolves name from the legal-form-specific translation column. Allowed values: LIMITED_LIABILITY, CORPORATION, OR, INDIVIDUALLY_OWNED_COMPANY, ASSOCIATION, SIMPLE_PARTNERSHIP, GENERAL_PARTNERSHIP, LIMITED_PARTNERSHIP, COOPERATIVE_COMPANY, FOUNDATION.Allowed values: LIMITED_LIABILITY, CORPORATION, OR, INDIVIDUALLY_OWNED_COMPANY, ASSOCIATION, SIMPLE_PARTNERSHIP, GENERAL_PARTNERSHIP, LIMITED_PARTNERSHIP, COOPERATIVE_COMPANY, FOUNDATION |
Accept-Language | IETF language tag used to resolve the localized name field of the account. Examples: de-CH, fr-CH, it-CH, en. |
Responses 5
200 The master account matching accountCode. show body
application/json PublicApiAccount
idinteger (int64) format: int64 example: 42Internal identifier of the master account.codeinteger (int32) format: int32 example: 1020Numeric account code as printed on the chart of accounts.namestring example: BankLocalized account name. Resolved against the request'sAccept-Languageand, whenlegal-formis supplied, against the legal-form-specific translation.tagsstring example: bank;kontoFree-text keyword tokens associated with the account, used by client-side search. Tokens are delimited by comma or semicolon.linksstring example: bank_accountLinked-account references used by report computations.accountReportLinksstring example: bank_accountReport-grouping references used to assemble balance-sheet / P&L groupings.initialBalanceSheetboolean example: FalseTrue when the account is part of the initial opening-balance sheet.visibleFirstFiscalYearboolean example: TrueTrue when the account is visible during the first fiscal year of a new company.visibleFromSecondFiscalYearboolean example: TrueTrue when the account becomes visible from the second fiscal year onwards.vatAccountboolean example: FalseTrue when the account is reserved for VAT postings.accountReportFiltersarray of PublicApiAccountReportFilterReport-grouping configuration rows attached to this account.show fields
Array of
PublicApiAccountReportFilter.displaystring example: Operating expensesHuman-readable label of the report bucket this account contributes to.linkAccountValuestring example: 6000Underlying linked-account value used by the accounting engine to resolve the bucket.
notManuallyAddedboolean example: TrueTrue when the account was seeded automatically (not added by an end user).
404 No master account exists for the supplied accountCode, or the supplied legal-form value does not match any known legal form. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/accounting/booking-typeskey / tokenList Klara master accounting booking types.
Accept-Language header selects which translation of the human-readable description is returned; if absent or unsupported the German translation is used as a fallback. The endpoint is a pure read — idempotent, no side effects. Any authenticated bearer token is accepted; the downstream service declares no role or permission requirement on this endpoint.Required permission
none The specification states that no role or permission is required for this endpoint.
Parameters 1
| Name | Description |
|---|---|
Accept-Language | IETF language tag used to resolve the localized description of each booking type. Examples: de-CH, fr-CH, it-CH, en. Falls back to the German translation when no translation exists for the requested language. |
Responses 4
200 Master booking types, ordered by code ascending. Empty array when the catalog has not been seeded yet. show body
application/json array of PublicApiBookingType
Array of PublicApiBookingType.
codeobject example: AP_INVOICEStable machine-readable code of the booking type.Allowed values:GENERAL_LEDGER,AP_INVOICE,AP_PAYMENT,AR_INVOICE,AR_PAYMENT,AP_PREPAYMENT,AP_PREPAYUSE,AR_PREPAYMENT,AR_PREPAYUSE,AR_CREDITNOTE,AR_CREDITUSE,AP_CREDITNOTE,AP_CREDITUSE,AMORTIZATION,SELLOFF_AMORTIZATION,DELIMITdescriptionstring example: KreditorenrechnungLocalized human-readable description of the booking type. Resolved against the request'sAccept-Languageheader; falls back to the German translation when no translation exists for the requested language.
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/accounting/business-case-templateskey / tokenList Klara master accounting business-case templates.
Accept-Language header selects which translation of the human-readable display label is returned; if absent or unsupported the German translation is used as a fallback and the full per-language i18n / keywordI18ns maps are returned for client-side rendering. Optional orderColumns / offset / limit query parameters are forwarded verbatim to the downstream catalog for ordering and pagination. The endpoint is a pure read — idempotent, no side effects. Requires a bearer token whose principal carries the ACCOUNTING_GET_BUSINESS_CASE_TEMPLATE permission.Required permission
ACCOUNTING_GET_BUSINESS_CASE_TEMPLATE
Parameters 4
| Name | Description |
|---|---|
limit | Maximum number of templates to return. When omitted, the downstream service returns the full catalog. |
offset | Zero-based index of the first template to return. When omitted, the response starts at the first row. |
orderColumns | Names of columns to order the result by, ascending. Repeat the query parameter for multi-column ordering (e.g. ?orderColumns=group&orderColumns=code). |
Accept-Language | IETF language tag used to resolve the localized display label of each template. Examples: de-CH, fr-CH, it-CH, en. Falls back to the German translation when no translation exists for the requested language. |
Responses 5
200 Business-case templates matching the supplied ordering and pagination. show body
application/json array of PublicApiBusinessCaseTemplate
Array of PublicApiBusinessCaseTemplate.
idinteger (int64) format: int64 example: 101Internal id of the template in the Klara catalogue.codestring example: OFFICE_SUPPLIESStable catalogue code of the template.displaystring example: BürobedarfLabel of the template, already translated for the request's Accept-Language.i18nobjectAll translations of the label, keyed by IETF language tag.show fields
Open map with values of type
string.keywordI18nsobjectAll translations of the search keywords, keyed by IETF language tag.show fields
Open map with values of type
string.groupstring example: Operating expensesCatalogue group the template belongs to.
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/accounting/business-case-templates/{businessCaseTemplateId}key / tokenRead a single Klara master accounting business-case template by id.
Accept-Language header selects which translation of the human-readable display label is returned; if absent or unsupported the German translation is used as a fallback and the full per-language i18n / keywordI18ns maps are returned for client-side rendering. The endpoint is a pure read — idempotent, no side effects. Returns 404 when no template with the requested id exists in the catalog. Requires a bearer token whose principal carries the ACCOUNTING_GET_BUSINESS_CASE_TEMPLATE permission.Required permission
ACCOUNTING_GET_BUSINESS_CASE_TEMPLATE
Parameters 2
| Name | Description |
|---|---|
businessCaseTemplateId required | Numeric primary-key id of the business-case template in the Klara master catalog. Obtain it from a prior call to GET /core/v1/accounting/business-case-templates. |
Accept-Language | IETF language tag used to resolve the localized display label of the template. Examples: de-CH, fr-CH, it-CH, en. Falls back to the German translation when no translation exists for the requested language. |
Responses 6
200 Business-case template matching the supplied id. show body
application/json PublicApiBusinessCaseTemplate
idinteger (int64) format: int64 example: 101Internal id of the template in the Klara catalogue.codestring example: OFFICE_SUPPLIESStable catalogue code of the template.displaystring example: BürobedarfLabel of the template, already translated for the request's Accept-Language.i18nobjectAll translations of the label, keyed by IETF language tag.show fields
Open map with values of type
string.keywordI18nsobjectAll translations of the search keywords, keyed by IETF language tag.show fields
Open map with values of type
string.groupstring example: Operating expensesCatalogue group the template belongs to.
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/accounting/business-caseskey / tokenHydrate a business case from a template id for the authenticated company.
dateForFilteringFiscalYear is supplied it drives the fiscal-year resolution; otherwise dateForFilteringCompanyVat is used; otherwise the downstream service resolves the fiscal year that covers today. Tenant and company are derived from the bearer-token session — they are never accepted from the URL. The endpoint is a pure read — idempotent, no side effects. The caller must hold the ACCOUNTING permission on the company in scope.Required permission
ACCOUNTING
Parameters 4
| Name | Description |
|---|---|
businessCaseTemplateId required | Numeric id of the business-case template to hydrate. Obtain it from GET /core/v1/accounting/companies/current/business-case-templates. |
dateForFilteringCompanyVat | ISO date (yyyy-MM-dd) used to resolve the company-VAT regime applicable to the business case. Used as the fallback for dateForFilteringFiscalYear when that is omitted. |
dateForFilteringFiscalYear | ISO date (yyyy-MM-dd) used to resolve the fiscal year that hydrates the business case. When omitted, falls back to dateForFilteringCompanyVat; when both are omitted the downstream service resolves the fiscal year that covers today. |
Accept-Language | IETF language tag used to translate the snippet labels and field captions. Examples: de-CH, fr-CH, it-CH, en. |
Responses 7
200 Hydrated business-case aggregate for the requested template. show body
application/json PublicApiBusinessCase
businessCaseIdinteger (int64) format: int64 example: nullIdentifier of the business case instance when persisted; null on a freshly hydrated template.businessCaseTemplateIdinteger (int64) format: int64 example: 101Identifier of the business-case template this aggregate was hydrated from.documentIdstring example: nullIdentifier of the underlying document the business case is attached to; null when the booking is not yet linked to a document.displaystring example: BürobedarfPre-translated display label of the business-case template for the request's Accept-Language.bookingNumbersstring example:Comma-separated list of booking numbers already generated for this business case; empty on a fresh template.effectiveCompanyVatDatestring (date) format: date example: 2024-06-15Date used to resolve the company-VAT regime applicable to this business case (ISO yyyy-MM-dd).documentDatestring (date) format: date example: 2024-06-15Document date associated with the business case (ISO yyyy-MM-dd).effectiveFiscalYearDatestring (date) format: date example: 2024-06-15Date used to resolve the fiscal year applicable to this business case (ISO yyyy-MM-dd).fiscalYearHasCreatedAutoboolean example: FalseTrue when the downstream service had to auto-create the fiscal year covering the resolved date.withOPboolean example: FalseTrue when this business case is tracked as an open item (OP). May be null when not applicable.fieldsobjectRecursive snippet-and-field tree driving the booking form, keyed by snippet code. The shape of each entry follows the downstream BusinessCaseField model (see analysis report §8.2).show fields
Open map with values of type
object.entriesDefinitionarray of objectPer-field entries definitions used by the booking form to resolve enum-like fields. Each entry mirrors the downstream FieldEntriesDefinition model (see analysis report §8.2).show fields
Array of
object.Open map with values of type
object.
400 One of dateForFilteringFiscalYear / dateForFilteringCompanyVat is not a valid ISO date (yyyy-MM-dd), or the supplied businessCaseTemplateId is not valid for the company's legal form or VAT regime. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
404 No business-case template matches the supplied businessCaseTemplateId in the caller's company scope. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/accounting/business-cases/v2key / tokenHydrate a business case from a template id, scoped to a single snippet.
GET /core/v1/accounting/business-cases: hydrates only the template root plus the snippet identified by snippet-id, so the booking UI can stream the form one snippet at a time instead of loading the whole tree up-front. When dateForFilteringFiscalYear is supplied it drives the fiscal-year resolution; otherwise dateForFilteringCompanyVat is used; otherwise the downstream service resolves the fiscal year that covers today. When group-insurance-by-insurer is true (the default), social-insurance entries that share the same display + value pair are collapsed, keeping the entry with the smallest numeric id. Tenant and company are derived from the bearer-token session — they are never accepted from the URL. The endpoint is a pure read — idempotent, no side effects. The caller must hold the ACCOUNTING permission on the company in scope.Required permission
ACCOUNTING
Parameters 7
| Name | Description |
|---|---|
businessCaseTemplateId required | Numeric id of the business-case template to hydrate. Obtain it from GET /core/v1/accounting/companies/current/business-case-templates. |
dateForFilteringCompanyVat | ISO date (yyyy-MM-dd) used to resolve the company-VAT regime applicable to the business case. Used as the fallback for dateForFilteringFiscalYear when that is omitted. |
dateForFilteringFiscalYear | ISO date (yyyy-MM-dd) used to resolve the fiscal year that hydrates the business case. When omitted, falls back to dateForFilteringCompanyVat; when both are omitted the downstream service resolves the fiscal year that covers today. |
group-insurance-by-insurer | When true, collapses social-insurance entries that share the same display + value pair, keeping the entry with the smallest numeric id. Defaults to true. Allowed values: true, false. |
snippet-id | Numeric id of the snippet currently activated by the user; v2 hydrates only this snippet plus the template root. When omitted, only the template root is hydrated. |
snippet-value | Currently ignored on the downstream side; reserved for a future optimisation that would load external entries only for the activated value (for example, payment dates of a single employee). Safe to omit. |
Accept-Language | IETF language tag used to translate the snippet labels and field captions. Examples: de-CH, fr-CH, it-CH, en. |
Responses 7
200 Hydrated business-case aggregate for the requested template and snippet. show body
application/json PublicApiBusinessCase
businessCaseIdinteger (int64) format: int64 example: nullIdentifier of the business case instance when persisted; null on a freshly hydrated template.businessCaseTemplateIdinteger (int64) format: int64 example: 101Identifier of the business-case template this aggregate was hydrated from.documentIdstring example: nullIdentifier of the underlying document the business case is attached to; null when the booking is not yet linked to a document.displaystring example: BürobedarfPre-translated display label of the business-case template for the request's Accept-Language.bookingNumbersstring example:Comma-separated list of booking numbers already generated for this business case; empty on a fresh template.effectiveCompanyVatDatestring (date) format: date example: 2024-06-15Date used to resolve the company-VAT regime applicable to this business case (ISO yyyy-MM-dd).documentDatestring (date) format: date example: 2024-06-15Document date associated with the business case (ISO yyyy-MM-dd).effectiveFiscalYearDatestring (date) format: date example: 2024-06-15Date used to resolve the fiscal year applicable to this business case (ISO yyyy-MM-dd).fiscalYearHasCreatedAutoboolean example: FalseTrue when the downstream service had to auto-create the fiscal year covering the resolved date.withOPboolean example: FalseTrue when this business case is tracked as an open item (OP). May be null when not applicable.fieldsobjectRecursive snippet-and-field tree driving the booking form, keyed by snippet code. The shape of each entry follows the downstream BusinessCaseField model (see analysis report §8.2).show fields
Open map with values of type
object.entriesDefinitionarray of objectPer-field entries definitions used by the booking form to resolve enum-like fields. Each entry mirrors the downstream FieldEntriesDefinition model (see analysis report §8.2).show fields
Array of
object.Open map with values of type
object.
400 One of dateForFilteringFiscalYear / dateForFilteringCompanyVat is not a valid ISO date (yyyy-MM-dd), or the supplied businessCaseTemplateId is not valid for the company's legal form or VAT regime. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
404 No business-case template matches the supplied businessCaseTemplateId in the caller's company scope. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/accounting/business-cases/{businessCaseId}key / tokenRead a persisted business-case instance by its id for the authenticated company.
businessCaseId is matched against the caller's company so that an id owned by another company surfaces as 404. The endpoint is a pure read — idempotent, no side effects. The caller must hold the ACCOUNTING permission on the company in scope.Required permission
ACCOUNTING
Parameters 2
| Name | Description |
|---|---|
businessCaseId required | Numeric primary-key id of the persisted business-case instance to hydrate. Obtain it from a prior booking response (for example POST /core/v1/accounting/bookings) or from a journal listing. |
Accept-Language | IETF language tag used to translate the snippet labels and field captions. Examples: de-CH, fr-CH, it-CH, en. |
Responses 7
200 Hydrated business-case aggregate for the requested id. show body
application/json PublicApiBusinessCase
businessCaseIdinteger (int64) format: int64 example: nullIdentifier of the business case instance when persisted; null on a freshly hydrated template.businessCaseTemplateIdinteger (int64) format: int64 example: 101Identifier of the business-case template this aggregate was hydrated from.documentIdstring example: nullIdentifier of the underlying document the business case is attached to; null when the booking is not yet linked to a document.displaystring example: BürobedarfPre-translated display label of the business-case template for the request's Accept-Language.bookingNumbersstring example:Comma-separated list of booking numbers already generated for this business case; empty on a fresh template.effectiveCompanyVatDatestring (date) format: date example: 2024-06-15Date used to resolve the company-VAT regime applicable to this business case (ISO yyyy-MM-dd).documentDatestring (date) format: date example: 2024-06-15Document date associated with the business case (ISO yyyy-MM-dd).effectiveFiscalYearDatestring (date) format: date example: 2024-06-15Date used to resolve the fiscal year applicable to this business case (ISO yyyy-MM-dd).fiscalYearHasCreatedAutoboolean example: FalseTrue when the downstream service had to auto-create the fiscal year covering the resolved date.withOPboolean example: FalseTrue when this business case is tracked as an open item (OP). May be null when not applicable.fieldsobjectRecursive snippet-and-field tree driving the booking form, keyed by snippet code. The shape of each entry follows the downstream BusinessCaseField model (see analysis report §8.2).show fields
Open map with values of type
object.entriesDefinitionarray of objectPer-field entries definitions used by the booking form to resolve enum-like fields. Each entry mirrors the downstream FieldEntriesDefinition model (see analysis report §8.2).show fields
Array of
object.Open map with values of type
object.
400 The supplied businessCaseId is not a valid numeric id. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
404 No business case matches the supplied businessCaseId in the caller's company scope. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/accounting/companies/currentkey / tokenGet the accounting configuration of the authenticated company.
id = null, waitingDunningTime = 5, dunningWaitingTimeLevelOne / Two / Three = 10) so the response shape stays the same. The endpoint is a pure read — idempotent, no side effects. The caller must hold the ACCOUNTING permission on the company in scope.Required permission
ACCOUNTING
Responses 6
200 Accounting configuration of the caller's company. show body
application/json PublicApiAccountingCompany
idinteger (int64) format: int64 example: 17Internal id of the accounting-configuration row. Null when no configuration has been persisted yet for the company.companyUristring example: /luz_compensation/api/c60d31fa-f335-4957-872a-90b035632081/companies/1Canonical compensation-side URI of the company, of the form /luz_compensation/api/{tenant}/companies/{companyId}.waitingDunningTimeinteger (int64) format: int64 example: 5Number of days to wait after the invoice due date before starting the dunning cycle. Defaults to 5 when no configuration exists yet.dunningWaitingTimeLevelOneinteger (int64) format: int64 example: 10Days to wait between the level-1 dunning notice and the level-2 escalation. Defaults to 10 when no configuration exists yet.dunningWaitingTimeLevelTwointeger (int64) format: int64 example: 10Days to wait between the level-2 dunning notice and the level-3 escalation. Defaults to 10 when no configuration exists yet.dunningWaitingTimeLevelThreeinteger (int64) format: int64 example: 10Days to wait between the level-3 dunning notice and the final escalation. Defaults to 10 when no configuration exists yet.
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
404 The company associated with the caller's session could not be resolved by the downstream accounting service. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/accounting/companies/current/business-case-templateskey / tokenList business-case templates available to the authenticated company, grouped by financial-year period.
periodFrom / periodTo, the company's legalForm and active VAT regime, and the templates that pass the legal-form / VAT-regime filters for that period. Templates are sorted by code; the display field is pre-translated using the Accept-Language header and the full per-language map is also returned in i18n / keywordI18ns. Tenant and company are derived from the bearer token — there are no path or query parameters to override them. The endpoint is a pure read — idempotent, no side effects. The caller must hold the ACCOUNTING permission on the company in scope.Required permission
ACCOUNTING
Parameters 1
| Name | Description |
|---|---|
Accept-Language | IETF language tag used to translate the display field of each template. Examples: de-CH, fr-CH, it-CH, en. |
Responses 6
200 Business-case templates grouped by financial-year period. May be an empty array when the company has no open fiscal year yet. show body
application/json array of PublicApiBusinessCasePeriod
Array of PublicApiBusinessCasePeriod.
companyIdinteger (int64) format: int64 example: 1Internal id of the company this period belongs to.periodFromstring (date) format: date example: 2024-01-01Inclusive start date of the financial year (ISO yyyy-MM-dd).periodTostring (date) format: date example: 2024-12-31Inclusive end date of the financial year (ISO yyyy-MM-dd).legalFormstring example: EINZELLegal form of the company during this period. Allowed values include EINZEL, GMBH, AG, KOLLEKTIV, KOMMANDIT, GENOSSENSCHAFT, VEREIN, STIFTUNG.companyVatobjectVAT regime of a company within a fiscal period.show fields
idinteger (int64) format: int64 example: 42Internal id of the company VAT row.reportingVatstring example: EFFECTIVEReporting method used to declare VAT. Allowed values: EFFECTIVE, NET_TAX_RATE, FLAT_TAX_RATE.billingstring example: AGREEDBilling method used to determine VAT liability. Allowed values: AGREED, RECEIVED.codestring example: EFFECTIVE_AGREEDComposite VAT code combining reporting method and billing, or NON_VAT when the company is not VAT-liable.hasVatboolean example: TrueTrue when the company is VAT-liable in this period.validFromstring (date) format: date example: 2024-01-01Inclusive start date of the VAT regime (ISO yyyy-MM-dd).validTostring (date) format: date example: 2024-12-31Inclusive end date of the VAT regime (ISO yyyy-MM-dd).yearlySettlementboolean example: FalseTrue for yearly VAT settlement, false for quarterly/semi-annual.
statusstring example: OPENStatus of the fiscal year. Allowed values: OPEN, CLOSING, CLOSED.businessCaseTemplatesarray of PublicApiBusinessCaseTemplateBusiness-case templates valid for the company's legal form and VAT regime within this period, sorted by code.show fields
Array of
PublicApiBusinessCaseTemplate.idinteger (int64) format: int64 example: 101Internal id of the template in the Klara catalogue.codestring example: OFFICE_SUPPLIESStable catalogue code of the template.displaystring example: BürobedarfLabel of the template, already translated for the request's Accept-Language.i18nobjectAll translations of the label, keyed by IETF language tag.show fields
Open map with values of type
string.keywordI18nsobjectAll translations of the search keywords, keyed by IETF language tag.show fields
Open map with values of type
string.groupstring example: Operating expensesCatalogue group the template belongs to.
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
404 The company associated with the caller's session could not be resolved by the downstream accounting service. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/accounting/companies/current/financial-yearskey / tokenList active financial-year periods of the authenticated company.
OPEN or CLOSING), one entry per legal-form / VAT-regime combination valid in the period. When every period shares the same legalForm and VAT regime the downstream service collapses them into a single aggregated period with periodFrom set to the earliest start date and periodTo set to the latest end date; otherwise the individual periods are returned. The businessCaseTemplates field is intentionally left empty on this endpoint — use GET /core/v1/accounting/companies/current/business-case-templates to retrieve the templates valid per period. Tenant and company are derived from the bearer token — there are no path or query parameters to override them. The endpoint is a pure read — idempotent, no side effects. The caller must hold the ACCOUNTING permission on the company in scope.Required permission
ACCOUNTING
Parameters 1
| Name | Description |
|---|---|
Accept-Language | IETF language tag forwarded to the downstream accounting service. Examples: de-CH, fr-CH, it-CH, en. |
Responses 6
200 Active financial-year periods of the caller's company. May be an empty array when the company has no open fiscal year yet. show body
application/json array of PublicApiBusinessCasePeriod
Array of PublicApiBusinessCasePeriod.
companyIdinteger (int64) format: int64 example: 1Internal id of the company this period belongs to.periodFromstring (date) format: date example: 2024-01-01Inclusive start date of the financial year (ISO yyyy-MM-dd).periodTostring (date) format: date example: 2024-12-31Inclusive end date of the financial year (ISO yyyy-MM-dd).legalFormstring example: EINZELLegal form of the company during this period. Allowed values include EINZEL, GMBH, AG, KOLLEKTIV, KOMMANDIT, GENOSSENSCHAFT, VEREIN, STIFTUNG.companyVatobjectVAT regime of a company within a fiscal period.show fields
idinteger (int64) format: int64 example: 42Internal id of the company VAT row.reportingVatstring example: EFFECTIVEReporting method used to declare VAT. Allowed values: EFFECTIVE, NET_TAX_RATE, FLAT_TAX_RATE.billingstring example: AGREEDBilling method used to determine VAT liability. Allowed values: AGREED, RECEIVED.codestring example: EFFECTIVE_AGREEDComposite VAT code combining reporting method and billing, or NON_VAT when the company is not VAT-liable.hasVatboolean example: TrueTrue when the company is VAT-liable in this period.validFromstring (date) format: date example: 2024-01-01Inclusive start date of the VAT regime (ISO yyyy-MM-dd).validTostring (date) format: date example: 2024-12-31Inclusive end date of the VAT regime (ISO yyyy-MM-dd).yearlySettlementboolean example: FalseTrue for yearly VAT settlement, false for quarterly/semi-annual.
statusstring example: OPENStatus of the fiscal year. Allowed values: OPEN, CLOSING, CLOSED.businessCaseTemplatesarray of PublicApiBusinessCaseTemplateBusiness-case templates valid for the company's legal form and VAT regime within this period, sorted by code.show fields
Array of
PublicApiBusinessCaseTemplate.idinteger (int64) format: int64 example: 101Internal id of the template in the Klara catalogue.codestring example: OFFICE_SUPPLIESStable catalogue code of the template.displaystring example: BürobedarfLabel of the template, already translated for the request's Accept-Language.i18nobjectAll translations of the label, keyed by IETF language tag.show fields
Open map with values of type
string.keywordI18nsobjectAll translations of the search keywords, keyed by IETF language tag.show fields
Open map with values of type
string.groupstring example: Operating expensesCatalogue group the template belongs to.
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
404 The company associated with the caller's session could not be resolved by the downstream accounting service. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/accounting/currencies/exchange-ratekey / tokenGet the CHF exchange rate for a currency on a given date.
from-currency-code into CHF on exchange-date. When from-currency-code equals CHF (case-insensitive) the rate is always 1. The exchange-rate table is global SNB data — the same response is returned for every tenant, so there are no tenant or company path parameters. If no rate is stored for the requested day, the downstream service transparently fetches the SNB feed for that date and persists the result; if the feed has no entry either, the most recent rate strictly before exchange-date is returned instead. The endpoint is a pure read for the caller — idempotent. Requires a bearer token whose principal carries the ACCOUNTING permission.Required permission
ACCOUNTING
Parameters 2
| Name | Description |
|---|---|
exchange-date required | Reference date for the exchange rate, expressed as an ISO-8601 calendar date (yyyy-MM-dd). |
from-currency-code required | ISO-4217 alpha-3 currency code of the source amount. Case-insensitive; CHF short-circuits to a rate of 1. |
Responses 5
200 Exchange rate as a JSON number; the value 1 when from-currency-code is CHF. show body
application/json number
400 exchange-date is not a valid ISO-8601 calendar date, or no rate could be resolved for the supplied from-currency-code. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/accounting/master-vatskey / tokenList the master VAT catalog used by Klara Accounting.
code is non-blank only rows whose vatCode matches one of the semicolon-separated codes are returned (and when combined with current-period=true, only the ones valid today); otherwise when default-vat=true only the company-default rows are returned; otherwise the full catalog is returned, ordered by rate ascending, optionally paginated via offset / limit. Pagination is honoured only on the full-catalog branch — it is silently ignored when code or default-vat is set. The endpoint is a pure read and idempotent. Requires a bearer token whose principal carries the ACCOUNTING_GET_MASTER_VAT permission.Required permission
ACCOUNTING_GET_MASTER_VAT
Parameters 6
| Name | Description |
|---|---|
code | Semicolon-separated list of vatCodes to filter on. When set, switches the response to the by-code branch and ignores default-vat. |
current-period | When combined with code, restricts the result to master VAT rows whose validity range covers today. Defaults to false. |
default-vat | When true, restricts the result to the company-default master VAT rows. Defaults to false. Ignored when code is set. |
includeHiddenVatCase | When true, the response also includes hidden VAT-case ids that are not directly mapped to a master VAT row. Defaults to false. |
limit | Maximum number of results to return. Only honoured on the full-catalog branch. |
offset | Zero-based index of the first result. Only honoured on the full-catalog branch (when neither code nor default-vat is set). |
Responses 4
200 Array of master VAT rows matching the filters. show body
application/json array of PublicApiMasterVat
Array of PublicApiMasterVat.
idinteger (int64) format: int64 example: 12Internal id of the master VAT row.vatCodestring example: 1Short numeric VAT code as configured in the Klara accounting plan.ratenumber example: 8.1VAT rate as a percentage value (8.10 means 8.10 %).validFromstring (date) format: date example: 2024-01-01Inclusive start date of the validity range (ISO yyyy-MM-dd). May be null when open-ended.validTostring (date) format: date example: 2030-12-31Inclusive end date of the validity range (ISO yyyy-MM-dd). May be null when open-ended.defaultVatboolean example: TrueTrue when the row is one of the company-default VAT entries.masterVatMultiesarray of PublicApiMasterVatMultiLocalized labels keyed by language tag.show fields
Array of
PublicApiMasterVatMulti.idinteger (int64) format: int64 example: 101Internal id of the translation row.languagestring example: deLanguage tag of the translation (ISO 639-1).descriptionstring example: Normalsatz 8.1 %Human-readable VAT description in the matching language.
referenceVatCaseIdstring example: VC-7Optional reference to a hidden VAT case id not directly mapped to a master VAT.createDatestring (date-time) format: date-time example: 2024-01-01T08:00:00Timestamp when the row was created (ISO yyyy-MM-dd'T'HH:mm:ss).updateDatestring (date-time) format: date-time example: 2024-06-15T14:30:00Timestamp of the last update (ISO yyyy-MM-dd'T'HH:mm:ss).
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/accounting/master-vats/currentkey / tokenList the master VAT rows valid for today.
validFrom / validTo) covers the server's current day. Useful for booking and invoicing UIs that need only the VAT rates that may legally be applied right now. The endpoint is a pure read and idempotent; the downstream handler caches the filtered list in-process. Requires a bearer token whose principal carries the ACCOUNTING_GET_MASTER_VAT permission.Required permission
ACCOUNTING_GET_MASTER_VAT
Responses 4
200 Array of master VAT rows valid for the current day. show body
application/json array of PublicApiMasterVat
Array of PublicApiMasterVat.
idinteger (int64) format: int64 example: 12Internal id of the master VAT row.vatCodestring example: 1Short numeric VAT code as configured in the Klara accounting plan.ratenumber example: 8.1VAT rate as a percentage value (8.10 means 8.10 %).validFromstring (date) format: date example: 2024-01-01Inclusive start date of the validity range (ISO yyyy-MM-dd). May be null when open-ended.validTostring (date) format: date example: 2030-12-31Inclusive end date of the validity range (ISO yyyy-MM-dd). May be null when open-ended.defaultVatboolean example: TrueTrue when the row is one of the company-default VAT entries.masterVatMultiesarray of PublicApiMasterVatMultiLocalized labels keyed by language tag.show fields
Array of
PublicApiMasterVatMulti.idinteger (int64) format: int64 example: 101Internal id of the translation row.languagestring example: deLanguage tag of the translation (ISO 639-1).descriptionstring example: Normalsatz 8.1 %Human-readable VAT description in the matching language.
referenceVatCaseIdstring example: VC-7Optional reference to a hidden VAT case id not directly mapped to a master VAT.createDatestring (date-time) format: date-time example: 2024-01-01T08:00:00Timestamp when the row was created (ISO yyyy-MM-dd'T'HH:mm:ss).updateDatestring (date-time) format: date-time example: 2024-06-15T14:30:00Timestamp of the last update (ISO yyyy-MM-dd'T'HH:mm:ss).
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/accounting/master-vats/{masterVatId}key / tokenResolve a master VAT catalog row by its numeric id.
masterVatId. The catalog is global Klara reference data — the same row is returned for every tenant, so there are no tenant or company path parameters. The endpoint is a pure read and idempotent. Requires a bearer token whose principal carries the ACCOUNTING_GET_MASTER_VAT permission.Required permission
ACCOUNTING_GET_MASTER_VAT
Parameters 1
| Name | Description |
|---|---|
masterVatId required | Numeric primary-key id of the master VAT row to resolve. Obtain it from GET /core/v1/accounting/master-vats or GET /core/v1/accounting/master-vats/current. |
Responses 5
200 The master VAT row matching masterVatId, including its rate, VAT code and validity range. show body
application/json PublicApiMasterVat
idinteger (int64) format: int64 example: 12Internal id of the master VAT row.vatCodestring example: 1Short numeric VAT code as configured in the Klara accounting plan.ratenumber example: 8.1VAT rate as a percentage value (8.10 means 8.10 %).validFromstring (date) format: date example: 2024-01-01Inclusive start date of the validity range (ISO yyyy-MM-dd). May be null when open-ended.validTostring (date) format: date example: 2030-12-31Inclusive end date of the validity range (ISO yyyy-MM-dd). May be null when open-ended.defaultVatboolean example: TrueTrue when the row is one of the company-default VAT entries.masterVatMultiesarray of PublicApiMasterVatMultiLocalized labels keyed by language tag.show fields
Array of
PublicApiMasterVatMulti.idinteger (int64) format: int64 example: 101Internal id of the translation row.languagestring example: deLanguage tag of the translation (ISO 639-1).descriptionstring example: Normalsatz 8.1 %Human-readable VAT description in the matching language.
referenceVatCaseIdstring example: VC-7Optional reference to a hidden VAT case id not directly mapped to a master VAT.createDatestring (date-time) format: date-time example: 2024-01-01T08:00:00Timestamp when the row was created (ISO yyyy-MM-dd'T'HH:mm:ss).updateDatestring (date-time) format: date-time example: 2024-06-15T14:30:00Timestamp of the last update (ISO yyyy-MM-dd'T'HH:mm:ss).
404 No master VAT row exists for the supplied masterVatId. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/accounting/vat-profilekey / tokenGet the authenticated company's VAT reporting profile.
Parameters 1
| Name | Description |
|---|---|
date | Date (ISO yyyy-MM-dd) to resolve the company VAT config for; defaults to today. Use the date you intend to book on — the company VAT must be valid for it. |
Responses 4
200 VAT profile. show body
application/json PublicApiVatProfile
hasVatboolean example: TrueWhether the company is VAT-registered.reportingModestring example: EFFECTIVE_CLEARINGVAT regime. EFFECTIVE_CLEARING or REPORTING_USING_NET_TAX_RATES.billingstring example: BILLEDBilling method. BILLED or COLLECTED.sss1number example: 1Flat net-tax rate 1 (percent), when reporting under net tax rates.sss2number example: 0.5Flat net-tax rate 2 (percent), when reporting under net tax rates.
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/accounting/vat-suggestionskey / tokenSuggest ready-to-use VAT case / rate / account bundles for a booking line.
vatCaseLink and vatRateLink to drop into a booking line's links, plus a suggested vatAccountCode. Supply amount to also receive a net/VAT preview. The bundle marked recommended is the server's best guess.Rebuilding the Manual-booking VAT UI from this response (read this if you are generating a UI). This endpoint returns a flat array, but the Manual-booking screen renders it as three linked dropdowns plus two toggles and an auto-computed amount. Map each control as follows:<table border="1" cellpadding="4"><tr><th>GUI control</th><th>Driven by</th><th>How to build it</th></tr><tr><td>VAT on/off toggle</td><td>client-side state (not in this response)</td><td>OFF → the line has no VAT: don't call this endpoint, add no VAT links/fields. ON → call this endpoint and show the dropdowns below.</td></tr><tr><td>VAT case dropdown (e.g. "taxable supply")</td><td>distinct
vatCaseCode (label it with label)</td><td>Group the array by vatCaseCode; one entry per distinct case.</td></tr><tr><td>VAT rate dropdown (e.g. "8.1%")</td><td>vatRateDisplay</td><td>Cascades from the chosen case: the rows sharing the selected vatCaseCode are the rate options.</td></tr><tr><td>VAT account dropdown (e.g. "1170 | Input tax VAT")</td><td>vatAccountCodes</td><td>List all vatAccountCodes; preselect vatAccountCode.</td></tr><tr><td>including / excluding toggle</td><td>the amountKind query param</td><td>including = GROSS_INCLUSIVE; excluding = NET_EXCLUSIVE. Flipping it means re-calling this endpoint to refresh the preview.</td></tr><tr><td>Debit / Credit amount preview</td><td>previewNet / previewVat</td><td>Null until you pass amount. Re-call with the new amount/amountKind to refresh.</td></tr></table>End-to-end recipe (call → render → book):- User turns the VAT toggle ON. Call this endpoint with
direction(PURCHASE/SALE), the line'saccountCode, the user'samount, theamountKindfrom the including/excluding toggle, and thedateyou will book on. - Render the dropdowns per the table above; preselect the row where
recommended = true. - When the user picks a row, send it to
POST /core/v1/bookings?autoCalculateVat=true: on the VAT-bearing line setlinks = "<vatCaseLink>,<vatRateLink>"(both verbatim),vatAccountCode = <vatAccountCode>, youramount, andisExcludeVatAmountmatching theamountKindyou queried — then omit the VAT counterpart line; the server generates it (matchingpreviewNet/previewVat). Pass the samedateyou will book on.
Coverage: the response mirrors the booking GUI's two dropdowns. The VAT-case list is direction-agnostic (every configured case is offered regardless ofdirection), and the rate list includes every configured version of each rate code the case references — current and historical — so a line dated before a rate change still finds its rate.
Parameters 7
| Name | Description |
|---|---|
accountCode required | Main account being booked against (e.g. 1020); drives VAT-account resolution. Required. |
direction required | PURCHASE (you are buying) or SALE (you are selling). Required. It does not restrict which VAT cases are returned (the full case list is always offered); it only selects the fallback VAT account — purchases vs sales — and the recommendation wording. Allowed values: PURCHASE, SALE |
amount | Amount to preview the net/VAT split for (optional). |
amountKind | GROSS_INCLUSIVE (default) or NET_EXCLUSIVE. |
date | Date (ISO yyyy-MM-dd) to resolve the company VAT config for; defaults to today. |
vatCase | VAT case code to restrict suggestions to a single case; returns all its rate/account bundles (optional). Any valid case code is accepted regardless of direction — e.g. a sales case such as TAXABLE_SUPPLY can be requested with direction=PURCHASE. Allowed values: TAXABLE_SUPPLY, SUPPLY_WITH_OPTION_ART_22, TAX_EXEMPT_SUPPLY, EXPORT, SUPPLY_ABROAD, EXCLUDED_SUPPLY, DECREASE_IN_PROFITS, INTERNAL_CONSUMPTION, SUBVENTION, CONTRIBUTIONS_DIVIDEND_DAMAGE_COMPENSION, DOMESTIC_PURCHASE, IMPORT_WITH_CUSTOMS, IMPORT_WITH_REVERSE_CHARGE, PURCHASE_ABROAD, TRANSFER_SUPPLY, MISCELLANEOUS, DE_TAXATION, MIXED_USE, REDUCTION, TAX_CREDIT_1050, TAX_CREDIT_1055_1056 |
Accept-Language | Preferred language for the bundle labels. |
Responses 5
200 Ranked VAT suggestions. show body
application/json array of PublicApiVatSuggestion
Array of PublicApiVatSuggestion.
labelstring example: Domestic purchase — 8.1%Human-meaningful label. Use it as the option text in the VAT-rate dropdown.recommendedboolean example: TrueTrue on the server's recommended default bundle — preselect this row in the dropdowns.reasonstring example: Default VAT rate for DOMESTIC_PURCHASE.Why this bundle is suggested.vatCaseCodestring example: DOMESTIC_PURCHASEVAT case code. Group rows by this value to build the VAT-case dropdown.vatCaseLinkstring example: vat_case:/luz_accounting/api/vat-cases/1Verbatim link to copy into a booking line's links (comma-joined with vatRateLink).vatRateDisplaystring example: 8.1%Display string of the VAT rate — the VAT-rate dropdown option within the selected VAT case.vatRateLinkstring example: vat_rate:/luz_accounting/api/master-vats/59Verbatim link to copy into a booking line's links (comma-joined with vatCaseLink).vatAccountCodeinteger (int32) format: int32 example: 1170Suggested VAT account for the generated VAT line — preselect this in the VAT-account dropdown; the first of vatAccountCodes (confirm against your chart of accounts).vatAccountCodesarray of integer (int32)All VAT accounts the company's chart maps to this account + VAT case; the options for the GUI's VAT-account dropdown.previewNetnumber example: 925.93Net amount preview — the Debit/Credit preview shown in the GUI. Null until an amount is supplied; refreshes when amount/amountKind change.previewVatnumber example: 74.07VAT amount preview — the VAT portion shown in the GUI. Null until an amount is supplied; refreshes when amount/amountKind change.
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/accounting/vat-typeskey / tokenList Klara master VAT-type catalogue rows.
Accept-Language header selects which translation is used for the description and vatTypeShortName fields; if absent or unsupported, German is used as the fallback. The endpoint is a pure read — idempotent, no side effects. Any authenticated bearer token is accepted; the downstream service declares no role or permission requirement on this endpoint.Required permission
none The specification states that no role or permission is required for this endpoint.
Parameters 1
| Name | Description |
|---|---|
Accept-Language | IETF language tag used to resolve the localized description and vatTypeShortName fields. Examples: de-CH, fr-CH, it-CH, en. When the header is missing or the language is unknown, the downstream service falls back to German. |
Responses 4
200 Master VAT-type rows. Empty array when the catalogue has not been seeded yet. show body
application/json array of PublicApiVatType
Array of PublicApiVatType.
vatTypeCodestring example: M81Klara VAT-type code that identifies the row.companyTypestring example: LIMITED_LIABILITYCompany-type bucket the VAT type applies to.descriptionstring example: Vorsteuer Material- und DienstleistungsaufwandLocalized description, resolved against the requestAccept-Languageheader (German fallback).vatTypeShortNamestring example: VSt MALocalized short name, resolved against the requestAccept-Languageheader (German fallback).i18nobjectRaw description translations keyed by lowercase IETF language tag. Useful when a client renders its own language picker; otherwise prefer the resolveddescriptionfield.show fields
Open map with values of type
string.i18nShortNameobjectRaw short-name translations keyed by lowercase IETF language tag.show fields
Open map with values of type
string.vatTypeFormulaarray of PublicApiVatTypeFormulaPosting formulas attached to this VAT type, one per associated VAT case.show fields
Array of
PublicApiVatTypeFormula.vatCaseCodestring example: VAT_RECEIVABLELinked VAT-case code this formula belongs to.vatTypeCodestring example: M81VAT-type code this formula belongs to.companyTypestring example: LIMITED_LIABILITYCompany-type bucket the formula applies to.accountstring example: 2200Account number on which the VAT entry is booked.contraAccountstring example: 1170Contra-account number for the VAT entry.linkedBookingAccountstring example: 2201Linked auxiliary account, when applicable.specialRatesTypestring example: STANDARDSpecial-rates flag (enum name from the upstream model). Surfaced as a string so future internal enum additions stay backwards compatible.valuestring example: NORMALFormula value flag (enum name from the upstream model). Surfaced as a string for forward compatibility.
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/accounting/vat-types/{vatTypeId}key / tokenResolve a Klara master VAT-type row by its numeric id.
vatTypeId. The data is global — the same catalogue is shared across every tenant, so there are no tenant or company path parameters. The Accept-Language header selects which translation is used for the description and vatTypeShortName fields; if absent or unsupported, German is used as the fallback. The endpoint is a pure read — idempotent, no side effects. Any authenticated bearer token is accepted; the downstream service declares no role or permission requirement on this endpoint.Required permission
none The specification states that no role or permission is required for this endpoint.
Parameters 2
| Name | Description |
|---|---|
vatTypeId required | Numeric primary-key id of the master VAT-type row to resolve. Obtain it from GET /core/v1/accounting/vat-types. |
Accept-Language | IETF language tag used to resolve the localized description and vatTypeShortName fields. Examples: de-CH, fr-CH, it-CH, en. When the header is missing or the language is unknown, the downstream service falls back to German. |
Responses 5
200 The master VAT-type row matching vatTypeId, including its localized description, short name and posting formulas. show body
application/json PublicApiVatType
vatTypeCodestring example: M81Klara VAT-type code that identifies the row.companyTypestring example: LIMITED_LIABILITYCompany-type bucket the VAT type applies to.descriptionstring example: Vorsteuer Material- und DienstleistungsaufwandLocalized description, resolved against the requestAccept-Languageheader (German fallback).vatTypeShortNamestring example: VSt MALocalized short name, resolved against the requestAccept-Languageheader (German fallback).i18nobjectRaw description translations keyed by lowercase IETF language tag. Useful when a client renders its own language picker; otherwise prefer the resolveddescriptionfield.show fields
Open map with values of type
string.i18nShortNameobjectRaw short-name translations keyed by lowercase IETF language tag.show fields
Open map with values of type
string.vatTypeFormulaarray of PublicApiVatTypeFormulaPosting formulas attached to this VAT type, one per associated VAT case.show fields
Array of
PublicApiVatTypeFormula.vatCaseCodestring example: VAT_RECEIVABLELinked VAT-case code this formula belongs to.vatTypeCodestring example: M81VAT-type code this formula belongs to.companyTypestring example: LIMITED_LIABILITYCompany-type bucket the formula applies to.accountstring example: 2200Account number on which the VAT entry is booked.contraAccountstring example: 1170Contra-account number for the VAT entry.linkedBookingAccountstring example: 2201Linked auxiliary account, when applicable.specialRatesTypestring example: STANDARDSpecial-rates flag (enum name from the upstream model). Surfaced as a string so future internal enum additions stay backwards compatible.valuestring example: NORMALFormula value flag (enum name from the upstream model). Surfaced as a string for forward compatibility.
404 No master VAT-type row exists for the supplied vatTypeId. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/bank-reconciliation/open-positionskey / tokenList the bank-reconciliation open positions of the authenticated company.
action parameter selects the multi-condition combinator: search (default) is OR-of-conditions, filter is AND-of-conditions. Tenant and company are derived from the bearer-token session — they are never accepted from the URL. The endpoint is a pure read — idempotent, no side effects. The caller must hold the ACCOUNTING_GET_OPEN_POSITION permission on the company in scope.Required permission
ACCOUNTING_GET_OPEN_POSITION
Parameters 12
| Name | Description |
|---|---|
action | Multi-condition combinator. search (default) = OR-of-conditions; filter = AND-of-conditions.Allowed values: search, filter |
booking-type-codes | Comma-separated list of booking-type codes to restrict to. Allowed values: GENERAL_LEDGER, AP_INVOICE, AP_PAYMENT, AR_INVOICE, AR_PAYMENT, AP_PREPAYMENT, AP_PREPAYUSE, AR_PREPAYMENT, AR_PREPAYUSE, AR_CREDITNOTE, AR_CREDITUSE, AP_CREDITNOTE, AP_CREDITUSE, AMORTIZATION, SELLOFF_AMORTIZATION, DELIMIT. |
crdr-type | Restrict to credit (CR) or debit (DR) postings.Allowed values: CR, DR |
credit-card-not-reconciled | When true, restricts to credit-card transactions still pending reconciliation. |
general-search | Free-text search across description, partner name, document id and reference fields. Combined with the other filters using the mode selected by action. |
invoice-date | Exact-match invoice (document) date filter (ISO date yyyy-MM-dd). |
partner | Klara partner URI to filter by. Format: /api/luz_person/api/{tenantId}/companies/{companyId}/partners/{partnerId}. Construct from the partner id returned by the public partner endpoints. |
payment-date | Exact-match payment date filter (ISO date yyyy-MM-dd). |
payment-date-from | Inclusive lower bound of the payment-date range filter (ISO date yyyy-MM-dd). |
payment-date-to | Inclusive upper bound of the payment-date range filter (ISO date yyyy-MM-dd). |
position-status | Comma-separated list of open-position lifecycle statuses to restrict to. Allowed values: OPEN, PARTLY_PAID, PAID, PARTLY_CLEARED, CLEARED. |
tags | Comma-separated list of tag names to filter by (free-form). |
Responses 6
200 List of open positions matching the filters. Empty array when nothing matches. show body
application/json array of PublicApiSuitableOpenPosition
Array of PublicApiSuitableOpenPosition.
idinteger (int64) format: int64 example: 98765Booking-detail row id (database primary key).bookingHeaderIdinteger (int64) format: int64 example: 4321Id of the booking header this detail belongs to.bookingHeaderCommentstring example: Invoice 2026-0123 from Migros AGFree-text comment of the booking header.businessCaseIdinteger (int64) format: int64 example: 12345Id of the parent business case.accountCodestring example: 1100Numeric account code on which the booking is posted.accountLinkDisplaystring example: Forderungen aus L+LLocalized account label.crdrTypeobject example: DRCredit / debit indicator.Allowed values:CR,DRdescriptionstring example: Rechnung Nr. 2026-0123Free-text description of the booking line.bookingTypeCodeobject example: AR_INVOICEStable booking-type code of the underlying business case.Allowed values:GENERAL_LEDGER,AP_INVOICE,AP_PAYMENT,AR_INVOICE,AR_PAYMENT,AP_PREPAYMENT,AP_PREPAYUSE,AR_PREPAYMENT,AR_PREPAYUSE,AR_CREDITNOTE,AR_CREDITUSE,AP_CREDITNOTE,AP_CREDITUSE,AMORTIZATION,SELLOFF_AMORTIZATION,DELIMITopenPositionStatusobject example: OPENOpen-position lifecycle status.Allowed values:OPEN,PARTLY_PAID,PAID,PARTLY_CLEARED,CLEAREDamountnumber example: 1250Gross posted amount of the booking line.partialPaymentAmountnumber example: 0Sum of payments / clearings already applied to this position.openAmountnumber example: 1250Computed remaining amount still to be cleared (amount - partialPaymentAmount).vatAmountnumber example: 94.05VAT amount included in the gross posting.vatRatenumber example: 0.081VAT rate applied to the line as a decimal (e.g.0.077).vatRateDisplaystring example: 8.1 %Localized VAT-rate display string.vatBookingDetailLinkstringSelf-link of the companion VAT booking-detail line, when present.vatBookingDetailboolean example: FalseWhether this row is itself a derived VAT booking-detail line.foreignCurrencyAmountnumber example: 1250Posted amount in the document's foreign currency, when applicable.foreignCurrencyUnitstring example: EURISO-4217 currency code offoreignCurrencyAmount.tagsstring example: test manualFree-form tag string attached to the booking line.documentDatestring (date) format: date example: 2026-04-15Document (invoice) date of the underlying business case.bookingDatestring (date) format: date example: 2026-04-15Date the booking was journaled.paidDatestring (date) format: date example: 2026-05-10Date the position was last (partially) paid, if any.dueDatestring (date) format: date example: 2026-05-15Due date for payment.paymentDatestring (date) format: date example: 2026-05-12Effective payment date of the booking line.servicePeriodFromstring (date) format: date example: 2026-04-01Inclusive lower bound of the service period this booking covers.servicePeriodTostring (date) format: date example: 2026-04-30Inclusive upper bound of the service period this booking covers.createDatestring (date-time) format: date-time example: 2026-04-15T08:30:00Timestamp at which the booking detail was created.updateDatestring (date-time) format: date-time example: 2026-05-12T14:15:00Timestamp at which the booking detail was last updated.documentIdarray of stringList of document ids attached to the booking line.partnerNamestring example: Migros AGResolved partner display name for the position.bookingDetailUristring example: /api/luz_accounting/api/{tenantId}/companies/{companyId}/booking-headers/4321/booking-details/98765Stable URI of the booking-detail row, for cross-service linking.orderManagementInvoiceLinkstringSelf-link of the linked order-management invoice, when applicable.orderManagementInvoiceNumberstring example: INV-2026-0123Resolved order-management invoice number for display.msgIdstring example: MSG-7788Business-case message id, used by the eletter / inbox subsystems.creditorReferencestringCreditor reference (Swiss QR-IBAN reference number) of the position.isrReferencestringISR reference of the position, when applicable.isrMemberstringISR member number, when applicable.partnerIbanstringIBAN of the partner / counterparty.endToEndIdstringEnd-to-end identifier carried on the bank transaction.
400 One of the date filters is not a valid ISO date (yyyy-MM-dd), or one of the enum filters (position-status, booking-type-codes, crdr-type) carries a value that is not in the documented value set, or a free-text filter exceeds 256 characters. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
POST/core/v1/bookingskey / tokenCreate a new manual booking for the authenticated company.
bookingDate must fall inside an open fiscal year; set confirmDontMindClosingFiscalYear to true to accept a booking that targets a closing fiscal year. Set ignore-unsubscripted-dates to true to bypass the subscription-period guard that normally rejects bookings outside the active Klara Accounting subscription window. Tenant and company are derived from the bearer token — the request body's id and companyId are ignored. The caller must hold the ACCOUNTING permission on the targeted company.Required permission
ACCOUNTING
Parameters 4
| Name | Description |
|---|---|
autoCalculateVat | When true, the server recalculates VAT like the Manual booking GUI: each VAT-bearing line sends a single gross/net amount + a vat_rate link + vatAccountCode + isExcludeVatAmount and omits its VAT counterpart line; the server derives the net/VAT split and generates the VAT line so the entry balances. When false (default), the caller must pre-split and pre-compute every line (current behaviour). Obtain valid VAT values from GET /core/latest/vat-cases and GET /core/v1/accounting/master-vats. |
confirmDontMindClosingFiscalYear | When true, accept the booking even if its bookingDate falls in a closing fiscal year. Defaults to false. |
ignore-unsubscripted-dates | When true, accept the booking even if its date falls outside the active Klara Accounting subscription period. Defaults to false. |
Accept-Language | Preferred language for any localized error messages produced downstream. Examples: de-CH, fr-CH, it-CH, en. Defaults to the tenant's configured language when omitted. |
Request body required
Prerequisite APIs — call these first to obtain valid values:
GET /core/v1/accounting/accounts→ provides validaccountCodevalues (e.g. 1020, 1100, 2000, 3200). Only use this endpoint when you want to implement a seperate combobox with a flat master account list without sub-account context.GET /core/v1/accounting/accounts/account-displaying→ provide full details about all valid, selectable accounts (combine name, combine code, master account, sub-account details when available). PREFERRED to use this endpoint as the booking line for some account code MUST include sub-account links if the sub-account exists.POST /core/latest/companies/{company-id}/documents→ upload supporting documents (invoices, receipts, bank statements) and collect the returneddocumentIdvalues to populatedocumentIds. This step should be done BEFORE invoking the booking creation. Important: when calling this endpoint for booking creation, always usecategory = LIABILITY_UPLOAD— no other category is permitted in this context (the documents are automatically moved toLIABILITIESwhen the booking is created successfully). The GUI for booking creation must always provide a document-upload step using theLIABILITY_UPLOADcategory.GET /core/v1/accounting/booking-types→ provides validbookingTypeCodevalues (e.g. AR_PAYMENT, AP_INVOICE, GENERAL_LEDGER)GET /core/latest/vat-cases→ provides VAT case IDs for thevat_caselink keyGET /core/v1/accounting/master-vats→ provides master VAT rate IDs for thevat_ratelink keyGET /core/v1/accounting/vat-suggestions?direction=PURCHASE|SALE&amount=…&date=…→ RECOMMENDED for VAT. Returns ready-to-use bundles; from therecommendedrow copyvatCaseLinkandvatRateLinkstraight into the line'slinks(comma-joined) andvatAccountCodeonto the line. Use withautoCalculateVat=true(see VAT auto-calculation below).GET /core/v1/accounting/vat-profile?date=…→ the company VAT regime (effective vs net-tax-rate). Informational: it explains how the server will split the amount; you do not copy it into the booking.
id(long) — Server-assigned. Set to0for new bookings.companyId(long) — Server-derived from token. Set to0.bookingDate(string, yyyy-MM-ddT00:00:00Z, required) — Must fall in an open fiscal year.documentIds(array of string) — IDs of attached documents (gather fromPOST /core/latest/companies/{company-id}/documentswithcategory = LIABILITY_UPLOAD). The documents are automatically moved toLIABILITIESon success booking creation. A GUI implementing booking creation must always provide a document-upload step — omitting it is only acceptable for purely internal adjustments where no document exists, in which casedocumentIdsmay be left empty ([]).internalComment(string) — Internal note visible only to accounting users.bookingStatus(string) — Allowed:DRAFT,BOOKED,CANCELLED.bookingDetails(array, required) — At least 2 balanced debit/credit lines (see below).expand(boolean) — UI hint. Usefalse.viewDocument(boolean) — UI hint. Usefalse.
id(long) — Server-assigned. Set to0.seq(int) — Line order starting at 0.accountCode(int, required) — FromGET /core/v1/accounting/accountsorGET /core/v1/accounting/accounts/account-displaying(preferred; includes sub-account context when it exists).crdrType(string, required) —DR(debit) orCR(credit).description(string) — Free-text line description.amount(decimal, required) — Always positive. Total DR must equal total CR.tags(string, required) — Comma-separated list of string tags. Each tag should represent a topic that the booking line should be associated with, e.g. Operating Expenses. Tags are free-form and have no semantic meaning to Klara; they are simply stored and returned as-is. Provide at least one tag per line.links(string) — Comma-separated structured links. Two uses: (a) sub-account entities for the line's account code (fromGET /core/v1/accounting/accounts/account-displaying); and (b) VAT linksvat_case:…+vat_rate:…(fromGET /core/v1/accounting/vat-suggestions) when this line carries VAT. Can be empty when neither applies.bookingTypeCode(string) — FromGET /core/v1/accounting/booking-types.vatAccountCode(int) — Only withautoCalculateVat=true. The account the generated VAT line posts to (e.g. 1170); from thevatAccountCodeof avat-suggestionsrow.isExcludeVatAmount(boolean) — Only withautoCalculateVat=true.false=amountincludes VAT (gross);true=amountexcludes VAT (net base).isrReference(string) — ISR/QR-bill reference. Empty if not applicable.isrMember(string) — ISR participant number. Empty if not applicable.partnerIban(string) — Counterpart IBAN for payments. Empty if not applicable.vatBookingDetail(boolean) — Set tofalsefor manual lines.
autoCalculateVat=true) — book like the Manual booking GUI without doing VAT math:- Call
GET /core/v1/accounting/vat-suggestions?direction=PURCHASE|SALE&amount=<gross>&date=<bookingDate>and take therecommendedrow. - On the VAT-bearing line set:
links = "<vatCaseLink>,<vatRateLink>"(both values verbatim from that row),vatAccountCode = <row.vatAccountCode>,amount = <your gross or net>, andisExcludeVatAmountmatching theamountKindyou queried (false= gross). - Do NOT add the VAT counterpart line yourself — the server derives the net/VAT split and generates it (matching the row's
previewNet/previewVat). Provide only your account line(s) + the balancing line.
vat-profile (effective → net + VAT line; net-tax-rate → flat-rate split; reverse-charge → an extra reverse VAT line). When autoCalculateVat is omitted/false you must instead pre-split and pre-compute every line yourself (see the "Invoice received/sent" examples).Rules: Minimum 2 lines; total DR = total CR (after server VAT expansion when
autoCalculateVat=true); amounts always positive; bookingDate in open fiscal year.application/json PublicApiBookingHeader
idinteger (int64) format: int64 example: 12345Internal id of the booking. Assigned by the server on creation; omit when sending a new booking.companyIdinteger (int64) format: int64 example: 1Internal id of the company this booking belongs to. Filled by the server from the caller's session; ignored on input.documentDatestring (date-time) required format: date-time example: 2024-06-15T00:00:00ZDate printed on the underlying document, e.g. supplier invoice date (yyyy-MM-ddT00:00:00Z).bookingDatestring (date-time) required format: date-time example: 2024-06-15T00:00:00ZEffective accounting date of the booking; must fall inside an open fiscal year unless confirmDontMindClosingFiscalYear is set (yyyy-MM-ddT00:00:00Z).documentIdsarray of stringIds of supporting documents (uploaded files / e-mails) attached to this booking.businessCasestring example: Office suppliesFree-text business case label shown on the journal.snippetsarray of stringSnippet identifiers applied to this booking, copied from the booking template.bookingStatusstring example: BOOKEDStatus of the booking. Allowed values: DRAFT, BOOKED, CANCELLED.internalCommentstringInternal comment, visible only to accounting users.businessCaseIdstringReference to the business-case document (workflow id) that produced this booking, when applicable.relatedBookingHeaderLinksarray of stringURIs of bookings that are related to this one (e.g. payment ↔ invoice, original ↔ delimitation).bookingDetailsarray of PublicApiBookingDetail required minItems: 2Debit and credit lines of the booking. Must contain at least two lines whose debit and credit totals balance.show fields
Array of
PublicApiBookingDetail.idinteger (int64) format: int64 example: 1001Internal id of the booking detail. Assigned by the server on creation; omit when sending a new booking.accountCodeinteger (int32) required format: int32 min: 1 example: 1020Ledger account number the amount is posted to (Swiss SME chart of accounts).crdrTypestring required example: DRWhether this line is a credit or a debit. Allowed values: CR, DR.descriptionstring required pattern: \S example: Office supplies — invoice 2024-019Free-text description shown on the journal report.amountnumber required example: 150Absolute posting amount in the company main currency. Always positive; sign is carried by crdrType.partialPaymentAmountnumber example: 0Amount already paid against this line — only used for open-position bookings (invoices, credit notes).tagsstring required example: project-alpha,q2Comma-separated list of string tags. Each tag is free-form and should represent a topic that the booking line should be associated with. Provide at least one tag per line.linksstring example: bank_account:/luzfin_finance/api/388c822c-7860-41ae-94ac-330684bb63e0/companies/1/bank-accounts/85,vat_case:/luz_accounting/api/vat-cases/1Comma-separated list of structured links of entities that are considered the sub-accounts associated with an account code when making a booking line.This string can be empty when no sub-account is required for the current account code of the booking line.Each link has the formatkey:uri-path. Important: the exact URI values — including the tenant UUID and company ID segments — are returned verbatim byGET /core/v1/accounting/accounts/account-displayingin the account'sspecificationItem.linkfield; copy them as-is, do not construct them manually.
Supported link type keys:
Bank / cash sub-accounts (secondary dropdown in GUI for accounts 1000, 1020, 1030, 1040, and similar):bank_account— company bank account; URI from/luzfin_finance/api/{tenant}/companies/{cid}/bank-accounts/{id}cash— cash register; URI from/luz_accounting/api/{tenant}/companies/{cid}/cash/{id}transfer_account— transfer account; URI from/luz_accounting/api/{tenant}/companies/{cid}/transfer/{id}interest_bearing_current_account— interest-bearing current account; URI from/luz_accounting/api/{tenant}/companies/{cid}/interest-bearing-current/{id}non_interest_bearing_current_account— non-interest-bearing current account; URI from/luz_accounting/api/{tenant}/companies/{cid}/non-interest-bearing/{id}
customer— accounts-receivable customer; URI from/luzfin_finance/api/{tenant}/companies/{cid}/customers/{id}supplier— accounts-payable supplier; URI from/luzfin_finance/api/{tenant}/companies/{cid}/customers/{id}employee— employee (payroll/HR); URI from/luz_compensation/api/{tenant}/companies/{cid}/employees/{id}
vat_case— VAT case; URI from/luz_accounting/api/vat-cases/{id}(obtain fromGET /core/latest/vat-cases)vat_rate— master VAT rate; URI from/luz_accounting/api/master-vats/{id}(obtain fromGET /core/v1/accounting/master-vats)social_insurance— social insurance contract; URI from/luz_compensation/api/{tenant}/companies/{cid}/insurance-contracts/{id}tax_at_source— tax-at-source (withholding tax) state; URI from/luz_person/api/states/{id}
financial_asset— financial asset; URI from/luz_accounting/api/{tenant}/companies/{cid}/financial-asset/{id}intangible_asset— intangible asset; URI from/luz_accounting/api/{tenant}/companies/{cid}/intangible-asset/{id}equity— equity account; URI from/luz_accounting/api/{tenant}/companies/{cid}/equity/{id}long_term_interest_bearing_liability— long-term loan; URI from/luz_accounting/api/{tenant}/companies/{cid}/long-term-interest-bearing/{id}statutory_profit_reserve— statutory profit reserve; URI from/luz_accounting/api/{tenant}/companies/{cid}/statutory-profit-reserve/{id}deferrals— accrual/deferral position; URI from/luz_accounting/api/{tenant}/companies/{cid}/deferral/{id}
gift_card— gift card; URI from/luz_accounting/api/{tenant}/companies/{cid}/gift-cards/{id}not_billed_services— unbilled service position; URI from/luz_accounting/api/{tenant}/companies/{cid}/not-billed-services/{id}various— miscellaneous counterpart; URI from/luz_accounting/api/{tenant}/companies/{cid}/various/{id}inventory_change_goods— inventory type (static); URI:/luz_accounting/api/inventory-types/inventory-change-goodsinventory_change_material— inventory type (static); URI:/luz_accounting/api/inventory-types/inventory-change-materialnon_billed_services— inventory type (static); URI:/luz_accounting/api/inventory-types/non-billed-servicesfinished_products— inventory type (static); URI:/luz_accounting/api/inventory-types/finished-productsunfinished_products— inventory type (static); URI:/luz_accounting/api/inventory-types/unfinished-products
seqinteger (int32) format: int32 example: 0Ordering of the line inside the booking, starting at 0.vatAccountCodeinteger (int32) format: int32 example: 1170GUI-style VAT input, used only withautoCalculateVat=true: the account the automatically generated VAT counterpart line is posted to (the GUI "VAT account", e.g. 1170). Required on a VAT-bearing line when the line carries avat_ratelink and omits its own VAT line. Ignored whenautoCalculateVatis false (caller pre-splits the lines).vatTypeDescriptionstring example: INCLUSIVEHow VAT is recorded for this line. Allowed values: INCLUSIVE, EXCLUSIVE, NONE.vatBookingDetailLinkstringURI of the companion VAT booking detail, when one was generated automatically.vatAmountnumber example: 11.4VAT amount carried on this line, in the company main currency.vatRatenumber example: 7.7Effective VAT rate (percent) applied to this line.vatRateDisplaystring example: 7.7%Display string of the VAT rate as rendered in the UI.vatBookingDetailboolean example: FalseTrue when this line is the automatically generated VAT counterpart of another line.bookingTypeCodestring required example: GENERAL_LEDGERBusiness meaning of the booking line. Allowed values include GENERAL_LEDGER, AR_INVOICE, AP_INVOICE, AR_PAYMENT, AP_PAYMENT, AR_CREDIT_NOTE, AP_CREDIT_NOTE.openPositionStatusstring example: OPENLifecycle of the open position represented by this line. Allowed values include OPEN, PARTIALLY_PAID, PAID, CLOSED.creditorReferencestringCreditor reference (QR-bill / ISO 11649) attached to the open position.isrReferencestringISR reference number attached to the open position.isrMemberstringISR participant (member) number of the creditor.partnerIbanstringIBAN of the counterpart used for outgoing payments.endToEndIdstringPain.001 end-to-end id, propagated to the outgoing payment instruction.isExcludeVatAmountboolean example: FalseWhen true, the gross amount on this line excludes VAT; otherwise it includes VAT.foreignCurrencyAmountnumberPosting amount in the foreign currency, when the line is booked in a non-main currency.foreignCurrencyUnitstring example: EURISO 4217 code of the foreign currency.paidDatestring (date-time) format: date-time example: 2024-06-15T00:00:00ZDate on which the open position was settled (yyyy-MM-ddT00:00:00Z).dueDatestring (date-time) format: date-time example: 2024-06-30T00:00:00ZDate on which the open position becomes overdue (yyyy-MM-ddT00:00:00Z).paymentDatestring (date-time) format: date-time example: 2024-06-28T00:00:00ZDate on which the payment instruction is scheduled (yyyy-MM-ddT00:00:00Z).servicePeriodFromstring (date-time) format: date-time example: 2024-06-01T00:00:00ZStart of the service period covered by the line (yyyy-MM-ddT00:00:00Z).servicePeriodTostring (date-time) format: date-time example: 2024-06-30T00:00:00ZEnd of the service period covered by the line (yyyy-MM-ddT00:00:00Z).paymentPercentagenumber example: 0Percentage of the open-position amount already settled.isDunningBlockedboolean example: FalseWhen true, dunning reminders are suppressed for this open position.
invoiceNumberstring example: 2024-019Invoice number printed on the document.orderManagementInvoiceLinkstringKlara order-management invoice URI when the booking was generated from a Klara invoice.bookingTemplateIdinteger (int64) format: int64 example: 501Id of the booking template the user picked when creating this entry.bookingTitlestring example: Office supplies — June 2024Short title of the booking shown in lists.totalAmountnumber example: 150Sum of the absolute amounts of the booking lines, in the company main currency.bookingTypeCodestring example: GENERAL_LEDGERBusiness meaning of the booking. Allowed values include GENERAL_LEDGER, AR_INVOICE, AP_INVOICE, AR_PAYMENT, AP_PAYMENT, AR_CREDIT_NOTE, AP_CREDIT_NOTE.
Responses 6
200 Booking created. show body
application/json PublicApiBookingHeader
idinteger (int64) format: int64 example: 12345Internal id of the booking. Assigned by the server on creation; omit when sending a new booking.companyIdinteger (int64) format: int64 example: 1Internal id of the company this booking belongs to. Filled by the server from the caller's session; ignored on input.documentDatestring (date-time) required format: date-time example: 2024-06-15T00:00:00ZDate printed on the underlying document, e.g. supplier invoice date (yyyy-MM-ddT00:00:00Z).bookingDatestring (date-time) required format: date-time example: 2024-06-15T00:00:00ZEffective accounting date of the booking; must fall inside an open fiscal year unless confirmDontMindClosingFiscalYear is set (yyyy-MM-ddT00:00:00Z).documentIdsarray of stringIds of supporting documents (uploaded files / e-mails) attached to this booking.businessCasestring example: Office suppliesFree-text business case label shown on the journal.snippetsarray of stringSnippet identifiers applied to this booking, copied from the booking template.bookingStatusstring example: BOOKEDStatus of the booking. Allowed values: DRAFT, BOOKED, CANCELLED.internalCommentstringInternal comment, visible only to accounting users.businessCaseIdstringReference to the business-case document (workflow id) that produced this booking, when applicable.relatedBookingHeaderLinksarray of stringURIs of bookings that are related to this one (e.g. payment ↔ invoice, original ↔ delimitation).bookingDetailsarray of PublicApiBookingDetail required minItems: 2Debit and credit lines of the booking. Must contain at least two lines whose debit and credit totals balance.show fields
Array of
PublicApiBookingDetail.idinteger (int64) format: int64 example: 1001Internal id of the booking detail. Assigned by the server on creation; omit when sending a new booking.accountCodeinteger (int32) required format: int32 min: 1 example: 1020Ledger account number the amount is posted to (Swiss SME chart of accounts).crdrTypestring required example: DRWhether this line is a credit or a debit. Allowed values: CR, DR.descriptionstring required pattern: \S example: Office supplies — invoice 2024-019Free-text description shown on the journal report.amountnumber required example: 150Absolute posting amount in the company main currency. Always positive; sign is carried by crdrType.partialPaymentAmountnumber example: 0Amount already paid against this line — only used for open-position bookings (invoices, credit notes).tagsstring required example: project-alpha,q2Comma-separated list of string tags. Each tag is free-form and should represent a topic that the booking line should be associated with. Provide at least one tag per line.linksstring example: bank_account:/luzfin_finance/api/388c822c-7860-41ae-94ac-330684bb63e0/companies/1/bank-accounts/85,vat_case:/luz_accounting/api/vat-cases/1Comma-separated list of structured links of entities that are considered the sub-accounts associated with an account code when making a booking line.This string can be empty when no sub-account is required for the current account code of the booking line.Each link has the formatkey:uri-path. Important: the exact URI values — including the tenant UUID and company ID segments — are returned verbatim byGET /core/v1/accounting/accounts/account-displayingin the account'sspecificationItem.linkfield; copy them as-is, do not construct them manually.
Supported link type keys:
Bank / cash sub-accounts (secondary dropdown in GUI for accounts 1000, 1020, 1030, 1040, and similar):bank_account— company bank account; URI from/luzfin_finance/api/{tenant}/companies/{cid}/bank-accounts/{id}cash— cash register; URI from/luz_accounting/api/{tenant}/companies/{cid}/cash/{id}transfer_account— transfer account; URI from/luz_accounting/api/{tenant}/companies/{cid}/transfer/{id}interest_bearing_current_account— interest-bearing current account; URI from/luz_accounting/api/{tenant}/companies/{cid}/interest-bearing-current/{id}non_interest_bearing_current_account— non-interest-bearing current account; URI from/luz_accounting/api/{tenant}/companies/{cid}/non-interest-bearing/{id}
customer— accounts-receivable customer; URI from/luzfin_finance/api/{tenant}/companies/{cid}/customers/{id}supplier— accounts-payable supplier; URI from/luzfin_finance/api/{tenant}/companies/{cid}/customers/{id}employee— employee (payroll/HR); URI from/luz_compensation/api/{tenant}/companies/{cid}/employees/{id}
vat_case— VAT case; URI from/luz_accounting/api/vat-cases/{id}(obtain fromGET /core/latest/vat-cases)vat_rate— master VAT rate; URI from/luz_accounting/api/master-vats/{id}(obtain fromGET /core/v1/accounting/master-vats)social_insurance— social insurance contract; URI from/luz_compensation/api/{tenant}/companies/{cid}/insurance-contracts/{id}tax_at_source— tax-at-source (withholding tax) state; URI from/luz_person/api/states/{id}
financial_asset— financial asset; URI from/luz_accounting/api/{tenant}/companies/{cid}/financial-asset/{id}intangible_asset— intangible asset; URI from/luz_accounting/api/{tenant}/companies/{cid}/intangible-asset/{id}equity— equity account; URI from/luz_accounting/api/{tenant}/companies/{cid}/equity/{id}long_term_interest_bearing_liability— long-term loan; URI from/luz_accounting/api/{tenant}/companies/{cid}/long-term-interest-bearing/{id}statutory_profit_reserve— statutory profit reserve; URI from/luz_accounting/api/{tenant}/companies/{cid}/statutory-profit-reserve/{id}deferrals— accrual/deferral position; URI from/luz_accounting/api/{tenant}/companies/{cid}/deferral/{id}
gift_card— gift card; URI from/luz_accounting/api/{tenant}/companies/{cid}/gift-cards/{id}not_billed_services— unbilled service position; URI from/luz_accounting/api/{tenant}/companies/{cid}/not-billed-services/{id}various— miscellaneous counterpart; URI from/luz_accounting/api/{tenant}/companies/{cid}/various/{id}inventory_change_goods— inventory type (static); URI:/luz_accounting/api/inventory-types/inventory-change-goodsinventory_change_material— inventory type (static); URI:/luz_accounting/api/inventory-types/inventory-change-materialnon_billed_services— inventory type (static); URI:/luz_accounting/api/inventory-types/non-billed-servicesfinished_products— inventory type (static); URI:/luz_accounting/api/inventory-types/finished-productsunfinished_products— inventory type (static); URI:/luz_accounting/api/inventory-types/unfinished-products
seqinteger (int32) format: int32 example: 0Ordering of the line inside the booking, starting at 0.vatAccountCodeinteger (int32) format: int32 example: 1170GUI-style VAT input, used only withautoCalculateVat=true: the account the automatically generated VAT counterpart line is posted to (the GUI "VAT account", e.g. 1170). Required on a VAT-bearing line when the line carries avat_ratelink and omits its own VAT line. Ignored whenautoCalculateVatis false (caller pre-splits the lines).vatTypeDescriptionstring example: INCLUSIVEHow VAT is recorded for this line. Allowed values: INCLUSIVE, EXCLUSIVE, NONE.vatBookingDetailLinkstringURI of the companion VAT booking detail, when one was generated automatically.vatAmountnumber example: 11.4VAT amount carried on this line, in the company main currency.vatRatenumber example: 7.7Effective VAT rate (percent) applied to this line.vatRateDisplaystring example: 7.7%Display string of the VAT rate as rendered in the UI.vatBookingDetailboolean example: FalseTrue when this line is the automatically generated VAT counterpart of another line.bookingTypeCodestring required example: GENERAL_LEDGERBusiness meaning of the booking line. Allowed values include GENERAL_LEDGER, AR_INVOICE, AP_INVOICE, AR_PAYMENT, AP_PAYMENT, AR_CREDIT_NOTE, AP_CREDIT_NOTE.openPositionStatusstring example: OPENLifecycle of the open position represented by this line. Allowed values include OPEN, PARTIALLY_PAID, PAID, CLOSED.creditorReferencestringCreditor reference (QR-bill / ISO 11649) attached to the open position.isrReferencestringISR reference number attached to the open position.isrMemberstringISR participant (member) number of the creditor.partnerIbanstringIBAN of the counterpart used for outgoing payments.endToEndIdstringPain.001 end-to-end id, propagated to the outgoing payment instruction.isExcludeVatAmountboolean example: FalseWhen true, the gross amount on this line excludes VAT; otherwise it includes VAT.foreignCurrencyAmountnumberPosting amount in the foreign currency, when the line is booked in a non-main currency.foreignCurrencyUnitstring example: EURISO 4217 code of the foreign currency.paidDatestring (date-time) format: date-time example: 2024-06-15T00:00:00ZDate on which the open position was settled (yyyy-MM-ddT00:00:00Z).dueDatestring (date-time) format: date-time example: 2024-06-30T00:00:00ZDate on which the open position becomes overdue (yyyy-MM-ddT00:00:00Z).paymentDatestring (date-time) format: date-time example: 2024-06-28T00:00:00ZDate on which the payment instruction is scheduled (yyyy-MM-ddT00:00:00Z).servicePeriodFromstring (date-time) format: date-time example: 2024-06-01T00:00:00ZStart of the service period covered by the line (yyyy-MM-ddT00:00:00Z).servicePeriodTostring (date-time) format: date-time example: 2024-06-30T00:00:00ZEnd of the service period covered by the line (yyyy-MM-ddT00:00:00Z).paymentPercentagenumber example: 0Percentage of the open-position amount already settled.isDunningBlockedboolean example: FalseWhen true, dunning reminders are suppressed for this open position.
invoiceNumberstring example: 2024-019Invoice number printed on the document.orderManagementInvoiceLinkstringKlara order-management invoice URI when the booking was generated from a Klara invoice.bookingTemplateIdinteger (int64) format: int64 example: 501Id of the booking template the user picked when creating this entry.bookingTitlestring example: Office supplies — June 2024Short title of the booking shown in lists.totalAmountnumber example: 150Sum of the absolute amounts of the booking lines, in the company main currency.bookingTypeCodestring example: GENERAL_LEDGERBusiness meaning of the booking. Allowed values include GENERAL_LEDGER, AR_INVOICE, AP_INVOICE, AR_PAYMENT, AP_PAYMENT, AR_CREDIT_NOTE, AP_CREDIT_NOTE.
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
PUT/core/v1/bookings/{id}/documentskey / tokenReplace the document attachments and document date of an existing booking.
documentIds array to clear all existing attachments, or omit documentDate / set it to null to clear it. By default the operation fails when the booking's existing bookingDate falls outside the active Klara Accounting subscription window; set ignore-unsubscripted-dates to true to bypass this guard. Tenant and company are derived from the bearer token — the booking {id} must belong to the caller's company. The caller must hold the ACCOUNTING permission on that company. The endpoint is idempotent: re-sending the same body produces the same state. Returns HTTP 200 with no body on success.Required permission
ACCOUNTING
Parameters 2
| Name | Description |
|---|---|
id required | Internal id of the booking whose documents should be replaced. Obtain from the id field returned by POST /core/v1/bookings. |
ignore-unsubscripted-dates | When true, accept the update even if the booking's bookingDate falls outside the active Klara Accounting subscription period. Defaults to false. |
Request body required
documentDate and documentIds.Prerequisite APIs — call these first to obtain valid values:
POST /core/v1/bookings→ provides the bookingidused in the URL.POST /core/latest/companies/{company-id}/documents→ upload the file first and use the returneddocumentIdas an entry indocumentIds. Each entry is either a numeric Klara document id (e.g."98765") or a Klara document URI.
documentDate(string, ISO dateyyyy-MM-dd, optional) — date printed on the underlying paper document. Set tonullor omit to clear the existing value.documentIds(array of string, optional, max 50 entries, each ≤ 512 chars) — full replacement of the attached document references. Send[]to clear.
- Replacement semantics — missing or empty
documentIdsclears all existing attachments on the booking. - The booking must belong to the caller's company; tenant and company are derived from the bearer token.
- By default the booking's existing
bookingDatemust fall in an active Klara Accounting subscription window; useignore-unsubscripted-dates=trueto bypass.
application/json object
documentDatestring (date) format: date example: 2024-06-15Date printed on the underlying paper document (e.g. supplier invoice date). When omitted or null, the booking's existing documentDate is cleared.documentIdsarray of string maxItems: 50Identifiers of supporting documents attached to the booking. Replaces the current set on the booking; pass an empty array to clear. Obtain each id by first uploading a file with POST /core/latest/companies/{company-id}/documents and then copying the returned documentId into this array.
Responses 6
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
POST/core/v1/vat-clearing-reports/{year}/{quarter}key / tokenGet or recompute the VAT clearing report of a company for a given period.
year and reporting quarter (quarter, semester or yearly). When recalculate=true the report is recomputed from the current bookings and the stored CALCULATED snapshot is rewritten before being returned; this is why the operation uses POST rather than GET. When recalculate=false the latest CALCULATED snapshot is returned as-is, or — if only a SEALED snapshot exists — that one. The caller must hold the ACCOUNTING permission on the targeted company.Required permission
ACCOUNTING
Parameters 4
| Name | Description |
|---|---|
quarter required | Reporting period within the year. Allowed values: Q1, Q2, Q3, Q4, S1, S2, YEAR_NET_TAX_RATE, YEAR_EFFECTIVE. Allowed values: Q1, Q2, Q3, Q4, S1, S2, YEAR_NET_TAX_RATE, YEAR_EFFECTIVE |
year required | Calendar year of the reporting period. |
recalculate | If true, recompute the report from current bookings and overwrite the stored CALCULATED snapshot before returning. Defaults to false. |
Accept-Language | Preferred language for localized labels in the response. Examples: de-CH, de, fr-CH, it-CH, en. |
Responses 6
200 The VAT clearing report. show body
application/json VatClearingReport
idinteger (int64) format: int64 example: 987Internal id of the report.codeBoxesarray of VatClearingReportCodeBoxCode boxes that compose the VAT statement.show fields
Array of
VatClearingReportCodeBox.idinteger (int64) format: int64 example: 1234Internal id of the code box.codestring example: 302Code of the box on the VAT statement.valuenumber example: 12345.67Computed amount of the box.descriptionstring example: Steuerbarer UmsatzLocalized description of the box.editableboolean example: FalseWhether the value of this box is editable by the user.editableDescriptionboolean example: TrueWhether the description of this box is editable by the user.ratenumber example: 8.1VAT rate applied to this code box, in percent.
statusobject example: CALCULATEDCurrent status of a VAT clearing report.yearinteger (int32) format: int32 example: 2024Calendar year of the reporting period.periodobject example: Q1Reporting period of a VAT clearing report.correctionCountinteger (int32) format: int32 example: 0Number of booking corrections detected versus the sealed snapshot.formerVatRateReleaseDatestring (date) format: date example: 2023-12-31T00:00:00ZRelease date of the former VAT rates that still apply to a part of the period.newVatRatesReleasedboolean example: FalseWhether new VAT rates have been released and apply to part of the period.periodFromstring (date) format: date example: 2024-01-01T00:00:00ZStart date of the reporting period.periodTostring (date) format: date example: 2024-03-31T00:00:00ZEnd date of the reporting period.
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
Accounting Interface1
POST/core/latest/payroll-interface-filekey / tokenReturn payroll interface file
Parameters 3
| Name | Description |
|---|---|
file-format | File format |
payslip-ids | List of payslip ids, separate by comma |
salary-run-id | Salary run id |
Responses 7
200 Return the payroll accounting interface file for a given salary run or payslips in CSV or JSON format show body
application/octet-stream any
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
404 Resource not found show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
Finance11
GET/core/v1/company-bank-accountskey / tokenList the bank accounts of the authenticated company.
type. The caller must hold the FINANCE_BANK_ACCOUNT permission on the target company. The result is sorted by Swiss-bank name then IBAN. This operation is idempotent and read-only — it can be safely retried.Required permission
FINANCE_BANK_ACCOUNT
Parameters 2
| Name | Description |
|---|---|
iban-number | Optional IBAN filter. When provided, the response contains the single matching bank account (returned as a one-element array for a uniform response shape) or HTTP 404 if no account exists with that IBAN. Spaces in the IBAN are tolerated. When provided, the type parameter is ignored. |
type | Optional business-type filter. Allowed values: AR (Accounts Receivable), AP (Accounts Payable), HR (Salary / HR payments). When omitted, all bank accounts are returned. Ignored when iban-number is provided.Allowed values: AR, AP, HR |
Responses 6
200 Bank accounts of the authenticated company. show body
application/json array of CompanyBankAccount
Array of CompanyBankAccount.
idinteger (int64) format: int64 example: 1Internal database id of the bank account.companyIdinteger (int64) format: int64 example: 1KLARA company id this bank account belongs to.shortNamestring example: PostFinance CHFUser-defined short label for the bank account.ibanNumberstring example: CH71 0900 0000 2529 4693 2IBAN in pretty-printed form (groups of 4 characters).qrIbanNumberstring example: CH44 3199 9123 0008 8901 2QR-IBAN (only set when markedQrIban is true).currencystring example: CHFISO-style currency code. Allowed values: CHF, CHW.wirAcceptanceRatenumber example: 0WIR acceptance percentage (0–100).markedHRPaymentboolean example: FalseDefault account for salary / HR payments.markedARAccountboolean example: TrueDefault account for Accounts Receivable.markedAPAccountboolean example: FalseDefault account for Accounts Payable.markedPaymentSlipboolean example: FalseESR / red payment-slip enabled.markedQrInvoiceboolean example: TrueQR-invoice payment enabled.markedQrIbanboolean example: FalseQR-IBAN flow enabled.participantNumberstring example: 01-12345-6ESR participant number (only when markedPaymentSlip).customerIdentificationNumberstring example: 123456ESR customer identification number (only when markedPaymentSlip and not PostFinance).printParticipantNumberboolean example: FalsePrint the participant number on payment slips.printBankAddressboolean example: FalsePrint the bank address on payment slips.printBeneficiaryboolean example: FalsePrint the beneficiary on payment slips.esrPrintingTypestring example: INTEGRATEESR printing type. Allowed values: INTEGRATE, SEPARATE.contractNumberstring example:Bank contract number.batchBookingstring example: DEFAULTBatch-booking preference. Allowed values: DEFAULT, ACTIVE, INACTIVE.debitAdvicestring example: DEFAULTDebit-advice preference. Allowed values: DEFAULT, NO_ADVICE, SINGLE_ADVICE, ADVICE_WITHOUT_DETAILS, ADVICE_WITH_DETAIL.notMarkedSalaryPaymentsboolean example: FalseWhen true, exclude this bank account from salary-payment runs.swissBankobjectResolved Swiss-bank master-data record (name, address, BCNR). May have empty fields when the IBAN's clearing number does not match a known Swiss bank.show fields
idinteger (int64) format: int64 example: 100Internal Swiss-bank master-data id.groupstring example: 1Master-data group code.bankClearingNumberstring example: 100Bank clearing number (BCNR).branchIdstring example: 1Branch identifier.newBankClearingNumberstring example:Successor BCNR if the bank has been replaced.sicNumberstring example: 100000SIC member number.headOfficeNumberstring example: 100Head-office BCNR.bankClearingTypestring example: 1Bank-clearing classification code.euroSicstring example:SIC participation in EUR.languagestring example: deMaster-data language code.shortNamestring example: PostFinance AGBank short name.namestring example: PostFinance AGBank legal name.addressstring example: Mingerstrasse 20Bank street address.postalAddressstring example: PostfachPostal address (PO Box).placestring example: BernCity / locality.phonestring example: +41 58 338 25 00Bank phone number.faxstring example:Bank fax number.dailingCodestring example: 41International dialling code.
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
POST/core/v1/invoiceskey / tokenCreate a new KLARA invoice for the authenticated company.
id must be 0 or omitted — this endpoint does not support updating existing invoices.Typical flow:
- Call
GET /core/v1/invoices/next-invoice-numberto obtain the next invoice number. - Look up the customer via
GET /core/latest/customers(with search filters). - Look up company bank accounts via
GET /core/v1/company-bank-accounts. - Search articles via
GET /core/latest/articles/searchorGET /core/latest/articles/article-numbersto populate order items. - (Optional) Look up open positions via
GET /core/v1/bank-reconciliation/open-positionsto reconcile prepayments / credit notes. - (Optional) Call
POST /core/v1/orders/next-order-numberto obtain the nextorder.orderNumber. - (Optional) Call
GET /core/latest/company-configuration/including-vatto determine the company default forusingVAT. - Build the invoice payload with order items.
- Call this endpoint with
status=INVOICEDto save and book, orstatus=DRAFTto save without booking.
INVOICED or SENT the invoice is also booked into KLARA accounting, inventory transactions are created and the HubSpot indicator is synchronised. This endpoint does not send/deliver the invoice (no email/ePost/eBill/print&send), regardless of postMethod or a SENT status; retrieve the PDF via POST /core/v1/invoices/{id}/printed-document and deliver it yourself. The caller must hold the FINANCE permission on the target company.Status is caller-controlled. The Klara GUI keeps an invoice in
DRAFT until the user posts it in the final step; via the API you choose — send status=DRAFT to save without booking, or status=INVOICED (or SENT) to book immediately. A DRAFT can be finalized later with PUT /core/v1/invoices (status=INVOICED).Important — booking is created without a printed invoice. When you book via this endpoint (
status=INVOICED/SENT), the accounting booking is created but no PDF is rendered or stored — the invoice and its booking have no printed document (unlike the GUI, which renders, stores and books in one step). To attach the printed invoice, run two follow-up calls: (1) POST /core/v1/invoices/{id}/printed-document to render the PDF and store its printedFileId on the invoice, then (2) PUT /core/v1/bookings/{id}/documents to link that printedFileId (in documentIds) to the booking returned in bookingNumbers.Required permission
FINANCE
Parameters 2
| Name | Description |
|---|---|
confirmDontMindClosingFiscalYear | When true, allows save/booking even if the document date falls inside a closing or closed fiscal year. Defaults to false. |
Accept-Language | Preferred response language as a BCP-47 tag (e.g. en, de, fr, it). Forwarded to luzfin_finance. |
Request body required
id field must be 0 or omitted. This endpoint does not support updating existing invoices.Prerequisite APIs (call these first):
GET /core/v1/invoices/next-invoice-number→ providesinvoiceCodeandinvoiceNumber(the next available invoice number for the company).GET /core/latest/customers?searchKey=...&limit=...→ providesorder.customer.id,order.customer.company(with addresses, emails), andorder.customer.customerType.GET /core/v1/company-bank-accounts→ providesibanNumberCHF/ibanNumberCHWfor payment accounts.GET /core/latest/articles/search?keyword=...→ search articles by keyword for the autocomplete; providesorderItems[].itemNumer,description,price,vat,unit.GET /core/latest/articles/article-numbers?article-numbers=...→ fetch full article data by article number(s) to fillorderItems[].GET /core/latest/articles/{article-id}/article-set-items→ expands article set/bundle into component line items fororderItems[].GET /core/v1/bank-reconciliation/open-positions→ lists customer's open prepayments / credit notes that can be reconciled; providesopenPositionsLinkedToInvoice[].bookingTypeCode,bookingDetailUri,partialPaymentAmount.- (Optional)
POST /core/v1/orders/next-order-number→ providesorder.orderNumber; each call advances the in-memory counter — call immediately before creating the invoice, not speculatively. - (Optional)
GET /core/latest/company-configuration/including-vat→ provides the company-level default forusingVAT; returnsfalsewhen no configuration record exists. printedFileId(String, server-assigned) — populated automatically byPOST /core/v1/invoices/{id}/printed-documentafter PDF generation; omit on creation.
Top-level fields:
id(long, required) — must be0for creation.invoiceCode(String, required) — unique invoice code; obtain fromGET /core/v1/invoices/next-invoice-number.orderType(String, required) — must beINVOICE.status(String, required) — determines booking behavior (not delivery). Allowed:DRAFT(saves without booking),INVOICED(saves and books into accounting),SENT(saves and books; does not send/deliver the invoice).postMethod(String, optional) — distribution channel recorded on the invoice only; this endpoint does not deliver the invoice. Allowed:A_POST,B_POST,SEND_EMAIL,PRINT_AND_MANUAL_SEND,EPOST,EBILL.documentDate(date, required) — invoice issue date, formatyyyy-MM-dd.paymentDate(date, required) — payment due date, must be on or afterdocumentDate.ibanNumberCHF(String, conditional) — CHF IBAN for payment; required when booking is triggered.ibanNumberCHW(String, optional) — WIR IBAN for combined payments.wirAcceptanceRate(int, optional) — WIR acceptance percentage (0–100).invoiceType(String, required) —MANUALorRECURRING.amount(BigDecimal, required) — total invoice amount over all items. Caller-supplied; not recomputed by the server. WithusingVAT=falsethis is net + VAT; withusingVAT=trueit is the sum of the gross item amounts.usingVAT(boolean) — GUI checkbox "VAT included in amount of each item". Controls whether itemprice/amountare VAT-inclusive (true, gross) or VAT-exclusive (false, net). It does not switch VAT on/off (that is the company's VAT registration). UseGET /core/latest/company-configuration/including-vatfor the company default. See VAT handling below.usingExportVat(boolean, optional) — GUI checkbox "Export". Whentrue, the invoice is an export: set everyorderItems[].vat.rateto0so no VAT is charged. Defaults tofalse.subject(String, optional) — invoice subject/title.ourReference/yourReference(String, optional) — reference texts.companyCityAndDate(String, optional) — city and date line printed on invoice.closeAndSignature(String, optional) — closing text and signature block.printedFileId(String, optional) — document ID of uploaded PDF from partner system.
Nested fields —
order (required):order.id(long) — must be0for new orders.order.orderNumber(int, required) — unique order number; must be > 0 (validated). Obtain fromPOST /core/v1/orders/next-order-number(not idempotent — each call advances the counter).order.orderName(String, optional) — order description.order.companyId(long, required) — company ID from bearer token scope.order.customer(object, required) — existing customer; obtain fromGET /core/v1/customers. Must includecustomer.id,customer.company(with addresses), andcustomer.customerType(COMPANYorPERSON).
Nested fields —
orderItems[] (required, at least 1):orderItems[].position(int) — line item position (1-based).orderItems[].itemNumer(String) — article number.orderItems[].description(String) — item description.orderItems[].quantity(double) — quantity.orderItems[].unit(String) — unit of measure (e.g.Unit,Hour).orderItems[].price(double) — unit price (negative for credit notes). VAT-inclusive (gross) whenusingVAT=true, VAT-exclusive (net) whenusingVAT=false. Both variants are available from the article lookup APIs.orderItems[].discount(double) — discount percentage.orderItems[].amount(double) — line total =quantity × price × (1 − discount/100), rounded to the nearest 0.05. Gross or net followingusingVAT(same basis asprice).orderItems[].tag(String, required for booking) — tags field; must not be empty when status isINVOICED/SENT.orderItems[].vatCase(String) —TAXABLE_SUPPLY,EXEMPT_SUPPLY,REVERSE_CHARGE.orderItems[].articleType(String) —PRODUCTION,PREPAYMENT,SERVICE.orderItems[].vat(object) — VAT details:vatCode,rate,description,masterId. For an export invoice (usingExportVat=true) setrate=0and the export/zerovatCode.orderItems[].id(long) — must be0for new items.
VAT handling — the server does not recalculate amounts. Unlike the Klara GUI (which recomputes line amounts, VAT and totals whenever you toggle the "VAT included in amount of each item" or "Export" checkbox), this endpoint stores the amounts you send verbatim and performs no VAT recalculation or consistency check. Send
orderItems[].price, orderItems[].amount, orderItems[].vat and the document amount already consistent with the two flags:usingVAT=false(VAT-exclusive) —price/amountare net; documentamount= net + VAT.usingVAT=true(VAT-inclusive) —price/amountare gross (VAT already inside); documentamount= sum of gross item amounts.usingExportVat=true(export) — set everyorderItems[].vat.rateto0; VAT = 0 and documentamount= sum of net item amounts.
amount = round0.05(quantity × price × (1 − discount/100)); VAT per rate group = amount × rate/100 when VAT-exclusive, or amount × (rate/100) / (1 + rate/100) when VAT-inclusive — each rounded to the nearest 0.05 (Swiss commercial rounding). Article unit prices for the inclusive, exclusive and export cases come from the article lookup APIs above (each article exposes both a VAT-inclusive and a VAT-exclusive price); pick the one matching usingVAT/usingExportVat.Nested fields —
attachments[] (optional):attachments[].fileId(String) — document file ID uploaded via partner system.attachments[].orderDetailId(long) — set to0for new invoices.attachments[].id(long) — set to0for new attachments.
Nested fields —
openPositionsLinkedToInvoice[] (optional, for reconciliation):openPositionsLinkedToInvoice[].bookingTypeCode(String) —AR_PREPAYMENTorAR_CREDITNOTE.openPositionsLinkedToInvoice[].bookingDetailUri(String) — internal URI of the booking detail to reconcile (format:/luz_accounting/api/{tenant-id}/companies/{companyId}/bookings/{bookingId}/booking-details/{detailId}).openPositionsLinkedToInvoice[].partialPaymentAmount(BigDecimal) — amount to offset from this open position.
Validation rules:
paymentDatemust be on or afterdocumentDate(when amount > 0).order.orderNumbermust be > 0.invoiceCodemust be unique within the company.statusmust not be null.- IBAN format is validated when provided.
- When status is
SENT, credit notes (negative total) are not allowed. - Each
orderItems[].tagmust be present when status triggers booking (INVOICED/SENT).
Server-managed fields (ignored on input, populated on output):
vatDate, lastModified, createDate, bookingDueDate, bookingNumbers, businessCaseId, bookingStatus, bookingMessage, bookingSealed, fiscalYearHasCreatedAuto, createBy, issuedDate.application/json Invoice
idinteger (int64) format: int64 example: 0Invoice id. Must be0or omitted when creating a new invoice. This endpoint only supports creation; updating an existing invoice is not supported.orderTypestring default: INVOICE example: INVOICEPolymorphic discriminator. Must beINVOICE. Allowed values:INVOICE.statusstring example: INVOICEDInvoice status. Allowed values:DRAFT,INVOICED,SENT,PAID,CANCELLED. Required. StatusINVOICEDorSENTtriggers accounting booking.invoiceCodestring required maxLength: 64 pattern: \S example: INV-2026-001Human-readable invoice code. Required and unique per company.invoiceNumberinteger (int64) format: int64 example: 2026001Sequential invoice number, typically obtained fromGET /invoices/next-invoice-number.documentDatestring (date) format: date example: 2026-05-28Invoice document date (ISO 8601). Required whenamountis greater than 0. Must fall inside the company's active Order Management subscription period.paymentDatestring (date) format: date example: 2026-06-27Payment due date (ISO 8601). Required whenamountis greater than 0. Must be on or afterdocumentDate.deliveryDatestring (date) format: date example: 2026-05-25Service delivery date (ISO 8601).issuedDatestring (date) format: date example: 2026-05-28Date the invoice was issued (ISO 8601).servicePeriodFromstring (date) format: date example: 2026-05-01Service period start date (ISO 8601).servicePeriodTostring (date) format: date example: 2026-05-31Service period end date (ISO 8601).servicePeriodPatternstring maxLength: 32 example: MONTHLYService period pattern label (e.g.MONTHLY,YEARLY).vatDatestring (date) format: dateVAT date. Server-managed (read-only).bookingDueDatestring (date) format: dateBooking due date returned by accounting. Server-managed (read-only).lastModifiedstring (date-time) format: date-timeLast modification timestamp. Server-managed (read-only).createDatestring (date-time) format: date-timeCreation timestamp. Server-managed (read-only).amountnumber example: 1080Invoice total. WhenusingVAT=false(VAT-exclusive items) this is the gross total = net + VAT; whenusingVAT=true(VAT-inclusive items) it is the sum of the gross item amounts (VAT already inside). Caller-supplied — the server does not recompute it.usingVATboolean default: false example: TrueControls whether each itemprice/amountis VAT-inclusive (gross) or VAT-exclusive (net). This is the GUI checkbox "VAT included in amount of each item".true= amounts already include VAT (INCLUDE_VAT);false= VAT is added on top of the net amounts (EXCLUDE_VAT). It does not turn VAT on or off — whether VAT applies at all is governed by the company's VAT registration. UseGET /core/latest/company-configuration/including-vatfor the company default. The server stores the amounts you send verbatim and does not recompute them from this flag — sendprice/amountconsistent with the chosen mode (see the create operation's VAT-handling notes).usingExportVatboolean default: false example: FalseExport invoice flag — the GUI "Export" checkbox. Whentrue, the invoice is treated as an export: everyorderItems[].vat.ratemust be0(export/zero VAT code), so no VAT is charged. Whenfalse(default) the items' normal VAT rates apply. The server does not recompute item VAT from this flag — set the per-item VAT accordingly.subjectstring maxLength: 1024 example: Invoice 2026-001Free-text invoice subject.closeAndSignaturestring maxLength: 4096 example: Thank you for your business.Free-text closing remarks / signature block.ourReferencestring maxLength: 128 example: ACC-2026Internal sender reference.yourReferencestring maxLength: 128 example: PO-9981Customer-side reference (e.g. PO number).companyCityAndDatestring maxLength: 256 example: Zurich, 28.05.2026Header line such as 'Zurich, 28.05.2026'.postMethodstring example: SEND_EMAILDistribution channel recorded on the invoice. Stored only — creating an invoice does not deliver it (no email/ePost/eBill/print&send). Allowed values:A_POST,B_POST,SEND_EMAIL,PRINT_AND_MANUAL_SEND,EPOST,EBILL.deliverystring maxLength: 64 example: DHLDelivery method label (free text).ibanNumberCHFstring example: CH9300762011623852957CHF IBAN for payment. Validated by downstream service.ibanNumberCHWstring example: CH9300762011623852957WIR-franc IBAN for payment.wirAcceptanceRatenumber example: 0WIR acceptance percentage.referenceNumberstring maxLength: 64 example: 21 00000 00003 13947 14300 09017QR / ISR reference number.qrInvoiceboolean default: false example: TrueWhentrue, the invoice is rendered/booked as a Swiss QR-invoice. Defaults to false.fromAutoInvoicingboolean default: false example: FalseIndicates the invoice was generated by auto-invoicing. Defaults to false.fromInvoiceRunboolean default: false example: FalseIndicates the invoice was produced by a recurring invoice run. Whentrue, accounting booking and inventory transactions are skipped. Defaults to false.invoiceTypestring example: MANUALInvoice type. Allowed values:MANUAL,CREDIT_DEBIT.originDistributionMethodstring example: SEND_EMAILOrigin distribution method. Allowed values:A_POST,B_POST,SEND_EMAIL,PRINT_AND_MANUAL_SEND,EPOST,EBILL.templateIdinteger (int64) format: int64 example: 0Template id used to create this invoice.runHistoryIdinteger (int64) format: int64 example: 0Recurring invoice run history id.settledAmountnumber example: 0Klara-Pay settled amount (online shop only).bookingNumbersstringAccounting booking-number string. Server-managed (read-only).businessCaseIdinteger (int64) format: int64Accounting business case id. Server-managed (read-only).bookingStatusstringBooking status (e.g.OPEN,PARTIAL,PAID). Server-managed (read-only).bookingMessagestringOptional booking error/info code (e.g.INVALID_SUBSCRIPTION_FOR_ACCOUNTING). Server-managed (read-only).bookingSealedbooleanWhether the booking has been finalized. Server-managed (read-only).fiscalYearHasCreatedAutobooleanWhether a fiscal year was auto-created during booking. Server-managed (read-only).createBystringServer-assigned audit user (token subject). Server-managed (read-only).
Responses 7
200 Invoice persisted successfully. show body
application/json Invoice
idinteger (int64) format: int64 example: 0Invoice id. Must be0or omitted when creating a new invoice. This endpoint only supports creation; updating an existing invoice is not supported.orderTypestring default: INVOICE example: INVOICEPolymorphic discriminator. Must beINVOICE. Allowed values:INVOICE.statusstring example: INVOICEDInvoice status. Allowed values:DRAFT,INVOICED,SENT,PAID,CANCELLED. Required. StatusINVOICEDorSENTtriggers accounting booking.invoiceCodestring required maxLength: 64 pattern: \S example: INV-2026-001Human-readable invoice code. Required and unique per company.invoiceNumberinteger (int64) format: int64 example: 2026001Sequential invoice number, typically obtained fromGET /invoices/next-invoice-number.documentDatestring (date) format: date example: 2026-05-28Invoice document date (ISO 8601). Required whenamountis greater than 0. Must fall inside the company's active Order Management subscription period.paymentDatestring (date) format: date example: 2026-06-27Payment due date (ISO 8601). Required whenamountis greater than 0. Must be on or afterdocumentDate.deliveryDatestring (date) format: date example: 2026-05-25Service delivery date (ISO 8601).issuedDatestring (date) format: date example: 2026-05-28Date the invoice was issued (ISO 8601).servicePeriodFromstring (date) format: date example: 2026-05-01Service period start date (ISO 8601).servicePeriodTostring (date) format: date example: 2026-05-31Service period end date (ISO 8601).servicePeriodPatternstring maxLength: 32 example: MONTHLYService period pattern label (e.g.MONTHLY,YEARLY).vatDatestring (date) format: dateVAT date. Server-managed (read-only).bookingDueDatestring (date) format: dateBooking due date returned by accounting. Server-managed (read-only).lastModifiedstring (date-time) format: date-timeLast modification timestamp. Server-managed (read-only).createDatestring (date-time) format: date-timeCreation timestamp. Server-managed (read-only).amountnumber example: 1080Invoice total. WhenusingVAT=false(VAT-exclusive items) this is the gross total = net + VAT; whenusingVAT=true(VAT-inclusive items) it is the sum of the gross item amounts (VAT already inside). Caller-supplied — the server does not recompute it.usingVATboolean default: false example: TrueControls whether each itemprice/amountis VAT-inclusive (gross) or VAT-exclusive (net). This is the GUI checkbox "VAT included in amount of each item".true= amounts already include VAT (INCLUDE_VAT);false= VAT is added on top of the net amounts (EXCLUDE_VAT). It does not turn VAT on or off — whether VAT applies at all is governed by the company's VAT registration. UseGET /core/latest/company-configuration/including-vatfor the company default. The server stores the amounts you send verbatim and does not recompute them from this flag — sendprice/amountconsistent with the chosen mode (see the create operation's VAT-handling notes).usingExportVatboolean default: false example: FalseExport invoice flag — the GUI "Export" checkbox. Whentrue, the invoice is treated as an export: everyorderItems[].vat.ratemust be0(export/zero VAT code), so no VAT is charged. Whenfalse(default) the items' normal VAT rates apply. The server does not recompute item VAT from this flag — set the per-item VAT accordingly.subjectstring maxLength: 1024 example: Invoice 2026-001Free-text invoice subject.closeAndSignaturestring maxLength: 4096 example: Thank you for your business.Free-text closing remarks / signature block.ourReferencestring maxLength: 128 example: ACC-2026Internal sender reference.yourReferencestring maxLength: 128 example: PO-9981Customer-side reference (e.g. PO number).companyCityAndDatestring maxLength: 256 example: Zurich, 28.05.2026Header line such as 'Zurich, 28.05.2026'.postMethodstring example: SEND_EMAILDistribution channel recorded on the invoice. Stored only — creating an invoice does not deliver it (no email/ePost/eBill/print&send). Allowed values:A_POST,B_POST,SEND_EMAIL,PRINT_AND_MANUAL_SEND,EPOST,EBILL.deliverystring maxLength: 64 example: DHLDelivery method label (free text).ibanNumberCHFstring example: CH9300762011623852957CHF IBAN for payment. Validated by downstream service.ibanNumberCHWstring example: CH9300762011623852957WIR-franc IBAN for payment.wirAcceptanceRatenumber example: 0WIR acceptance percentage.referenceNumberstring maxLength: 64 example: 21 00000 00003 13947 14300 09017QR / ISR reference number.qrInvoiceboolean default: false example: TrueWhentrue, the invoice is rendered/booked as a Swiss QR-invoice. Defaults to false.fromAutoInvoicingboolean default: false example: FalseIndicates the invoice was generated by auto-invoicing. Defaults to false.fromInvoiceRunboolean default: false example: FalseIndicates the invoice was produced by a recurring invoice run. Whentrue, accounting booking and inventory transactions are skipped. Defaults to false.invoiceTypestring example: MANUALInvoice type. Allowed values:MANUAL,CREDIT_DEBIT.originDistributionMethodstring example: SEND_EMAILOrigin distribution method. Allowed values:A_POST,B_POST,SEND_EMAIL,PRINT_AND_MANUAL_SEND,EPOST,EBILL.templateIdinteger (int64) format: int64 example: 0Template id used to create this invoice.runHistoryIdinteger (int64) format: int64 example: 0Recurring invoice run history id.settledAmountnumber example: 0Klara-Pay settled amount (online shop only).bookingNumbersstringAccounting booking-number string. Server-managed (read-only).businessCaseIdinteger (int64) format: int64Accounting business case id. Server-managed (read-only).bookingStatusstringBooking status (e.g.OPEN,PARTIAL,PAID). Server-managed (read-only).bookingMessagestringOptional booking error/info code (e.g.INVALID_SUBSCRIPTION_FOR_ACCOUNTING). Server-managed (read-only).bookingSealedbooleanWhether the booking has been finalized. Server-managed (read-only).fiscalYearHasCreatedAutobooleanWhether a fiscal year was auto-created during booking. Server-managed (read-only).createBystringServer-assigned audit user (token subject). Server-managed (read-only).
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
PUT/core/v1/invoiceskey / tokenUpdate an existing DRAFT invoice for the authenticated company.
invoice.id in the request body. Only invoices in DRAFT status can be updated — any other status returns 400. If the incoming status is INVOICED or SENT, the invoice is booked into KLARA accounting and inventory transactions are created, identical to the booking behavior of POST /core/v1/invoices. This is the call that finalizes a DRAFT — the GUI equivalent of posting in the final step; status is caller-controlled, so keep it DRAFT to re-save without booking. This endpoint does not send/deliver the invoice (no email/ePost/eBill/print&send), regardless of postMethod; retrieve the PDF via POST /core/v1/invoices/{id}/printed-document and deliver it yourself. The caller must hold the FINANCE permission on the target company.Important — finalizing a DRAFT books it without a printed invoice. Setting
status=INVOICED/SENT here creates the accounting booking but renders/stores no PDF. To attach the printed invoice to the booking, after this call run (1) POST /core/v1/invoices/{id}/printed-document to render and store the printedFileId, then (2) PUT /core/v1/bookings/{id}/documents to link that printedFileId (in documentIds) to the booking from bookingNumbers.Required permission
FINANCE
Parameters 1
| Name | Description |
|---|---|
confirmDontMindClosingFiscalYear | When true, allows save/booking even if the document date falls inside a closing or closed fiscal year. Defaults to false. |
Request body required
POST /core/v1/invoices with one critical difference: id must be the numeric primary key of an existing invoice currently in DRAFT status.Typical flow:
- Call
POST /core/v1/invoiceswithstatus=DRAFTto create the invoice. - Call
GET /core/v1/invoices/{id}to retrieve the current state. - Modify the desired fields (items, amounts, dates, etc.).
- Call this endpoint to update — or to book it by changing
statustoINVOICED/SENT.
GET /core/v1/invoices/{id}→ provides the current invoice body to modify and re-submit.GET /core/v1/company-bank-accounts→ provides updatedibanNumberCHF/ibanNumberCHW.GET /core/latest/articles/search?keyword=...→ search for articles to add/change order items.GET /core/v1/bank-reconciliation/open-positions→ providesopenPositionsLinkedToInvoice[]for reconciliation.GET /core/latest/company-configuration/including-vat→ providesusingVATdefault.
Key differences from POST (create):
id(long, required) — must be > 0 and match an existing DRAFT invoice. Returns 400 if the stored invoice is not in DRAFT status.invoiceCode— uniqueness is NOT re-validated; retain the original value.order.id— must match the existing order; retain from the original invoice.status— set toINVOICEDorSENTto book the invoice (triggers accounting); set toDRAFTto save without booking.
Top-level fields:
id(long, required) — must be > 0 (existing DRAFT invoice id).invoiceCode(String, required) — must not be empty; retain the original value.orderType(String, required) — must beINVOICE.status(String, required) —DRAFT(saves without booking),INVOICED(saves and books into accounting),SENT(saves and books; does not send/deliver the invoice).postMethod(String, optional) — distribution channel recorded on the invoice only; not delivered. Allowed:A_POST,B_POST,SEND_EMAIL,PRINT_AND_MANUAL_SEND,EPOST,EBILL.documentDate(date, required) — invoice issue date, formatyyyy-MM-dd; must fall inside the active subscription period.paymentDate(date, required when amount > 0) — must be on or afterdocumentDate.ibanNumberCHF(String, conditional) — CHF IBAN; format validated when provided.ibanNumberCHW(String, optional) — WIR IBAN; format validated when provided.wirAcceptanceRate(int, optional) — WIR acceptance percentage (0–100).amount(BigDecimal, required) — total invoice amount. Caller-supplied; not recomputed by the server.usingVAT(boolean) — GUI checkbox "VAT included in amount of each item": itemprice/amountare VAT-inclusive (true, gross) or VAT-exclusive (false, net). It does not switch VAT on/off. Same VAT-handling rules asPOST /core/v1/invoices(server stores amounts verbatim).usingExportVat(boolean, optional) — GUI checkbox "Export"; whentrueset everyorderItems[].vat.rateto0. Defaults tofalse.subject,ourReference,yourReference,companyCityAndDate,closeAndSignature— optional text fields.
Nested fields —
order (required):order.id(long) — must be the existing order id; retain from the original invoice.order.orderNumber(int) — retain from the original invoice.order.companyId(long) — must match the authenticated company; set from bearer token on the downstream.order.customer(object, required) — existing customer; retain from original invoice.
Nested fields —
orderItems[] (required, at least 1):- Same structure as
POST /core/v1/invoices. Existing item ids (> 0) update items in-place; id = 0 adds new items. orderItems[].tag(String, required when booking) — must not be empty when status isINVOICED/SENT.
Nested fields —
attachments[] and openPositionsLinkedToInvoice[]:- Same structure and semantics as
POST /core/v1/invoices.
Validation rules:
idmust be > 0 (adapter guard) and the stored invoice must be DRAFT (downstream guard).paymentDatemust be on or afterdocumentDatewhen amount > 0.- IBAN format is validated when provided.
- Each
orderItems[].tagmust be present when status triggers booking (INVOICED/SENT). - Subscription for Order Management must be active for
documentDate.
Server-managed fields (same as POST):
vatDate, lastModified, createDate, bookingDueDate, bookingNumbers, businessCaseId, bookingStatus, bookingMessage, bookingSealed.application/json Invoice
idinteger (int64) format: int64 example: 0Invoice id. Must be0or omitted when creating a new invoice. This endpoint only supports creation; updating an existing invoice is not supported.orderTypestring default: INVOICE example: INVOICEPolymorphic discriminator. Must beINVOICE. Allowed values:INVOICE.statusstring example: INVOICEDInvoice status. Allowed values:DRAFT,INVOICED,SENT,PAID,CANCELLED. Required. StatusINVOICEDorSENTtriggers accounting booking.invoiceCodestring required maxLength: 64 pattern: \S example: INV-2026-001Human-readable invoice code. Required and unique per company.invoiceNumberinteger (int64) format: int64 example: 2026001Sequential invoice number, typically obtained fromGET /invoices/next-invoice-number.documentDatestring (date) format: date example: 2026-05-28Invoice document date (ISO 8601). Required whenamountis greater than 0. Must fall inside the company's active Order Management subscription period.paymentDatestring (date) format: date example: 2026-06-27Payment due date (ISO 8601). Required whenamountis greater than 0. Must be on or afterdocumentDate.deliveryDatestring (date) format: date example: 2026-05-25Service delivery date (ISO 8601).issuedDatestring (date) format: date example: 2026-05-28Date the invoice was issued (ISO 8601).servicePeriodFromstring (date) format: date example: 2026-05-01Service period start date (ISO 8601).servicePeriodTostring (date) format: date example: 2026-05-31Service period end date (ISO 8601).servicePeriodPatternstring maxLength: 32 example: MONTHLYService period pattern label (e.g.MONTHLY,YEARLY).vatDatestring (date) format: dateVAT date. Server-managed (read-only).bookingDueDatestring (date) format: dateBooking due date returned by accounting. Server-managed (read-only).lastModifiedstring (date-time) format: date-timeLast modification timestamp. Server-managed (read-only).createDatestring (date-time) format: date-timeCreation timestamp. Server-managed (read-only).amountnumber example: 1080Invoice total. WhenusingVAT=false(VAT-exclusive items) this is the gross total = net + VAT; whenusingVAT=true(VAT-inclusive items) it is the sum of the gross item amounts (VAT already inside). Caller-supplied — the server does not recompute it.usingVATboolean default: false example: TrueControls whether each itemprice/amountis VAT-inclusive (gross) or VAT-exclusive (net). This is the GUI checkbox "VAT included in amount of each item".true= amounts already include VAT (INCLUDE_VAT);false= VAT is added on top of the net amounts (EXCLUDE_VAT). It does not turn VAT on or off — whether VAT applies at all is governed by the company's VAT registration. UseGET /core/latest/company-configuration/including-vatfor the company default. The server stores the amounts you send verbatim and does not recompute them from this flag — sendprice/amountconsistent with the chosen mode (see the create operation's VAT-handling notes).usingExportVatboolean default: false example: FalseExport invoice flag — the GUI "Export" checkbox. Whentrue, the invoice is treated as an export: everyorderItems[].vat.ratemust be0(export/zero VAT code), so no VAT is charged. Whenfalse(default) the items' normal VAT rates apply. The server does not recompute item VAT from this flag — set the per-item VAT accordingly.subjectstring maxLength: 1024 example: Invoice 2026-001Free-text invoice subject.closeAndSignaturestring maxLength: 4096 example: Thank you for your business.Free-text closing remarks / signature block.ourReferencestring maxLength: 128 example: ACC-2026Internal sender reference.yourReferencestring maxLength: 128 example: PO-9981Customer-side reference (e.g. PO number).companyCityAndDatestring maxLength: 256 example: Zurich, 28.05.2026Header line such as 'Zurich, 28.05.2026'.postMethodstring example: SEND_EMAILDistribution channel recorded on the invoice. Stored only — creating an invoice does not deliver it (no email/ePost/eBill/print&send). Allowed values:A_POST,B_POST,SEND_EMAIL,PRINT_AND_MANUAL_SEND,EPOST,EBILL.deliverystring maxLength: 64 example: DHLDelivery method label (free text).ibanNumberCHFstring example: CH9300762011623852957CHF IBAN for payment. Validated by downstream service.ibanNumberCHWstring example: CH9300762011623852957WIR-franc IBAN for payment.wirAcceptanceRatenumber example: 0WIR acceptance percentage.referenceNumberstring maxLength: 64 example: 21 00000 00003 13947 14300 09017QR / ISR reference number.qrInvoiceboolean default: false example: TrueWhentrue, the invoice is rendered/booked as a Swiss QR-invoice. Defaults to false.fromAutoInvoicingboolean default: false example: FalseIndicates the invoice was generated by auto-invoicing. Defaults to false.fromInvoiceRunboolean default: false example: FalseIndicates the invoice was produced by a recurring invoice run. Whentrue, accounting booking and inventory transactions are skipped. Defaults to false.invoiceTypestring example: MANUALInvoice type. Allowed values:MANUAL,CREDIT_DEBIT.originDistributionMethodstring example: SEND_EMAILOrigin distribution method. Allowed values:A_POST,B_POST,SEND_EMAIL,PRINT_AND_MANUAL_SEND,EPOST,EBILL.templateIdinteger (int64) format: int64 example: 0Template id used to create this invoice.runHistoryIdinteger (int64) format: int64 example: 0Recurring invoice run history id.settledAmountnumber example: 0Klara-Pay settled amount (online shop only).bookingNumbersstringAccounting booking-number string. Server-managed (read-only).businessCaseIdinteger (int64) format: int64Accounting business case id. Server-managed (read-only).bookingStatusstringBooking status (e.g.OPEN,PARTIAL,PAID). Server-managed (read-only).bookingMessagestringOptional booking error/info code (e.g.INVALID_SUBSCRIPTION_FOR_ACCOUNTING). Server-managed (read-only).bookingSealedbooleanWhether the booking has been finalized. Server-managed (read-only).fiscalYearHasCreatedAutobooleanWhether a fiscal year was auto-created during booking. Server-managed (read-only).createBystringServer-assigned audit user (token subject). Server-managed (read-only).
Responses 7
200 Invoice updated successfully. show body
application/json Invoice
idinteger (int64) format: int64 example: 0Invoice id. Must be0or omitted when creating a new invoice. This endpoint only supports creation; updating an existing invoice is not supported.orderTypestring default: INVOICE example: INVOICEPolymorphic discriminator. Must beINVOICE. Allowed values:INVOICE.statusstring example: INVOICEDInvoice status. Allowed values:DRAFT,INVOICED,SENT,PAID,CANCELLED. Required. StatusINVOICEDorSENTtriggers accounting booking.invoiceCodestring required maxLength: 64 pattern: \S example: INV-2026-001Human-readable invoice code. Required and unique per company.invoiceNumberinteger (int64) format: int64 example: 2026001Sequential invoice number, typically obtained fromGET /invoices/next-invoice-number.documentDatestring (date) format: date example: 2026-05-28Invoice document date (ISO 8601). Required whenamountis greater than 0. Must fall inside the company's active Order Management subscription period.paymentDatestring (date) format: date example: 2026-06-27Payment due date (ISO 8601). Required whenamountis greater than 0. Must be on or afterdocumentDate.deliveryDatestring (date) format: date example: 2026-05-25Service delivery date (ISO 8601).issuedDatestring (date) format: date example: 2026-05-28Date the invoice was issued (ISO 8601).servicePeriodFromstring (date) format: date example: 2026-05-01Service period start date (ISO 8601).servicePeriodTostring (date) format: date example: 2026-05-31Service period end date (ISO 8601).servicePeriodPatternstring maxLength: 32 example: MONTHLYService period pattern label (e.g.MONTHLY,YEARLY).vatDatestring (date) format: dateVAT date. Server-managed (read-only).bookingDueDatestring (date) format: dateBooking due date returned by accounting. Server-managed (read-only).lastModifiedstring (date-time) format: date-timeLast modification timestamp. Server-managed (read-only).createDatestring (date-time) format: date-timeCreation timestamp. Server-managed (read-only).amountnumber example: 1080Invoice total. WhenusingVAT=false(VAT-exclusive items) this is the gross total = net + VAT; whenusingVAT=true(VAT-inclusive items) it is the sum of the gross item amounts (VAT already inside). Caller-supplied — the server does not recompute it.usingVATboolean default: false example: TrueControls whether each itemprice/amountis VAT-inclusive (gross) or VAT-exclusive (net). This is the GUI checkbox "VAT included in amount of each item".true= amounts already include VAT (INCLUDE_VAT);false= VAT is added on top of the net amounts (EXCLUDE_VAT). It does not turn VAT on or off — whether VAT applies at all is governed by the company's VAT registration. UseGET /core/latest/company-configuration/including-vatfor the company default. The server stores the amounts you send verbatim and does not recompute them from this flag — sendprice/amountconsistent with the chosen mode (see the create operation's VAT-handling notes).usingExportVatboolean default: false example: FalseExport invoice flag — the GUI "Export" checkbox. Whentrue, the invoice is treated as an export: everyorderItems[].vat.ratemust be0(export/zero VAT code), so no VAT is charged. Whenfalse(default) the items' normal VAT rates apply. The server does not recompute item VAT from this flag — set the per-item VAT accordingly.subjectstring maxLength: 1024 example: Invoice 2026-001Free-text invoice subject.closeAndSignaturestring maxLength: 4096 example: Thank you for your business.Free-text closing remarks / signature block.ourReferencestring maxLength: 128 example: ACC-2026Internal sender reference.yourReferencestring maxLength: 128 example: PO-9981Customer-side reference (e.g. PO number).companyCityAndDatestring maxLength: 256 example: Zurich, 28.05.2026Header line such as 'Zurich, 28.05.2026'.postMethodstring example: SEND_EMAILDistribution channel recorded on the invoice. Stored only — creating an invoice does not deliver it (no email/ePost/eBill/print&send). Allowed values:A_POST,B_POST,SEND_EMAIL,PRINT_AND_MANUAL_SEND,EPOST,EBILL.deliverystring maxLength: 64 example: DHLDelivery method label (free text).ibanNumberCHFstring example: CH9300762011623852957CHF IBAN for payment. Validated by downstream service.ibanNumberCHWstring example: CH9300762011623852957WIR-franc IBAN for payment.wirAcceptanceRatenumber example: 0WIR acceptance percentage.referenceNumberstring maxLength: 64 example: 21 00000 00003 13947 14300 09017QR / ISR reference number.qrInvoiceboolean default: false example: TrueWhentrue, the invoice is rendered/booked as a Swiss QR-invoice. Defaults to false.fromAutoInvoicingboolean default: false example: FalseIndicates the invoice was generated by auto-invoicing. Defaults to false.fromInvoiceRunboolean default: false example: FalseIndicates the invoice was produced by a recurring invoice run. Whentrue, accounting booking and inventory transactions are skipped. Defaults to false.invoiceTypestring example: MANUALInvoice type. Allowed values:MANUAL,CREDIT_DEBIT.originDistributionMethodstring example: SEND_EMAILOrigin distribution method. Allowed values:A_POST,B_POST,SEND_EMAIL,PRINT_AND_MANUAL_SEND,EPOST,EBILL.templateIdinteger (int64) format: int64 example: 0Template id used to create this invoice.runHistoryIdinteger (int64) format: int64 example: 0Recurring invoice run history id.settledAmountnumber example: 0Klara-Pay settled amount (online shop only).bookingNumbersstringAccounting booking-number string. Server-managed (read-only).businessCaseIdinteger (int64) format: int64Accounting business case id. Server-managed (read-only).bookingStatusstringBooking status (e.g.OPEN,PARTIAL,PAID). Server-managed (read-only).bookingMessagestringOptional booking error/info code (e.g.INVALID_SUBSCRIPTION_FOR_ACCOUNTING). Server-managed (read-only).bookingSealedbooleanWhether the booking has been finalized. Server-managed (read-only).fiscalYearHasCreatedAutobooleanWhether a fiscal year was auto-created during booking. Server-managed (read-only).createBystringServer-assigned audit user (token subject). Server-managed (read-only).
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/invoices/next-invoice-numberkey / tokenGet the next available invoice number for the authenticated company.
FINANCE permission on the target company. This operation is NOT idempotent — each successful call advances the persisted next-invoice-number counter on luzfin_finance, so the returned value is reserved and will not be returned again. Do not retry on success.Required permission
FINANCE
Responses 6
200 Next available invoice number returned. show body
application/json NextInvoiceNumberResponse
nextInvoiceNumberinteger (int64) format: int64 example: 2026001The next available invoice number reserved for the authenticated company. Each successful call advances the persisted counter; the value is therefore unique per call.
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/invoices/{id}key / tokenGet a single invoice by its numeric id.
id under the company resolved from the bearer JWT. The response includes order items enriched with inventory selection data and accounting booking-status fields (bookingStatus, bookingDueDate, bookingSealed) populated by luz_accounting. The caller must hold the FINANCE permission on the target company.Required permission
FINANCE
Parameters 1
| Name | Description |
|---|---|
id required | Numeric primary key of the invoice to retrieve. Obtain this from the id field of a previously created invoice (POST /core/v1/invoices). |
Responses 6
200 Invoice found and returned. show body
application/json Invoice
idinteger (int64) format: int64 example: 0Invoice id. Must be0or omitted when creating a new invoice. This endpoint only supports creation; updating an existing invoice is not supported.orderTypestring default: INVOICE example: INVOICEPolymorphic discriminator. Must beINVOICE. Allowed values:INVOICE.statusstring example: INVOICEDInvoice status. Allowed values:DRAFT,INVOICED,SENT,PAID,CANCELLED. Required. StatusINVOICEDorSENTtriggers accounting booking.invoiceCodestring required maxLength: 64 pattern: \S example: INV-2026-001Human-readable invoice code. Required and unique per company.invoiceNumberinteger (int64) format: int64 example: 2026001Sequential invoice number, typically obtained fromGET /invoices/next-invoice-number.documentDatestring (date) format: date example: 2026-05-28Invoice document date (ISO 8601). Required whenamountis greater than 0. Must fall inside the company's active Order Management subscription period.paymentDatestring (date) format: date example: 2026-06-27Payment due date (ISO 8601). Required whenamountis greater than 0. Must be on or afterdocumentDate.deliveryDatestring (date) format: date example: 2026-05-25Service delivery date (ISO 8601).issuedDatestring (date) format: date example: 2026-05-28Date the invoice was issued (ISO 8601).servicePeriodFromstring (date) format: date example: 2026-05-01Service period start date (ISO 8601).servicePeriodTostring (date) format: date example: 2026-05-31Service period end date (ISO 8601).servicePeriodPatternstring maxLength: 32 example: MONTHLYService period pattern label (e.g.MONTHLY,YEARLY).vatDatestring (date) format: dateVAT date. Server-managed (read-only).bookingDueDatestring (date) format: dateBooking due date returned by accounting. Server-managed (read-only).lastModifiedstring (date-time) format: date-timeLast modification timestamp. Server-managed (read-only).createDatestring (date-time) format: date-timeCreation timestamp. Server-managed (read-only).amountnumber example: 1080Invoice total. WhenusingVAT=false(VAT-exclusive items) this is the gross total = net + VAT; whenusingVAT=true(VAT-inclusive items) it is the sum of the gross item amounts (VAT already inside). Caller-supplied — the server does not recompute it.usingVATboolean default: false example: TrueControls whether each itemprice/amountis VAT-inclusive (gross) or VAT-exclusive (net). This is the GUI checkbox "VAT included in amount of each item".true= amounts already include VAT (INCLUDE_VAT);false= VAT is added on top of the net amounts (EXCLUDE_VAT). It does not turn VAT on or off — whether VAT applies at all is governed by the company's VAT registration. UseGET /core/latest/company-configuration/including-vatfor the company default. The server stores the amounts you send verbatim and does not recompute them from this flag — sendprice/amountconsistent with the chosen mode (see the create operation's VAT-handling notes).usingExportVatboolean default: false example: FalseExport invoice flag — the GUI "Export" checkbox. Whentrue, the invoice is treated as an export: everyorderItems[].vat.ratemust be0(export/zero VAT code), so no VAT is charged. Whenfalse(default) the items' normal VAT rates apply. The server does not recompute item VAT from this flag — set the per-item VAT accordingly.subjectstring maxLength: 1024 example: Invoice 2026-001Free-text invoice subject.closeAndSignaturestring maxLength: 4096 example: Thank you for your business.Free-text closing remarks / signature block.ourReferencestring maxLength: 128 example: ACC-2026Internal sender reference.yourReferencestring maxLength: 128 example: PO-9981Customer-side reference (e.g. PO number).companyCityAndDatestring maxLength: 256 example: Zurich, 28.05.2026Header line such as 'Zurich, 28.05.2026'.postMethodstring example: SEND_EMAILDistribution channel recorded on the invoice. Stored only — creating an invoice does not deliver it (no email/ePost/eBill/print&send). Allowed values:A_POST,B_POST,SEND_EMAIL,PRINT_AND_MANUAL_SEND,EPOST,EBILL.deliverystring maxLength: 64 example: DHLDelivery method label (free text).ibanNumberCHFstring example: CH9300762011623852957CHF IBAN for payment. Validated by downstream service.ibanNumberCHWstring example: CH9300762011623852957WIR-franc IBAN for payment.wirAcceptanceRatenumber example: 0WIR acceptance percentage.referenceNumberstring maxLength: 64 example: 21 00000 00003 13947 14300 09017QR / ISR reference number.qrInvoiceboolean default: false example: TrueWhentrue, the invoice is rendered/booked as a Swiss QR-invoice. Defaults to false.fromAutoInvoicingboolean default: false example: FalseIndicates the invoice was generated by auto-invoicing. Defaults to false.fromInvoiceRunboolean default: false example: FalseIndicates the invoice was produced by a recurring invoice run. Whentrue, accounting booking and inventory transactions are skipped. Defaults to false.invoiceTypestring example: MANUALInvoice type. Allowed values:MANUAL,CREDIT_DEBIT.originDistributionMethodstring example: SEND_EMAILOrigin distribution method. Allowed values:A_POST,B_POST,SEND_EMAIL,PRINT_AND_MANUAL_SEND,EPOST,EBILL.templateIdinteger (int64) format: int64 example: 0Template id used to create this invoice.runHistoryIdinteger (int64) format: int64 example: 0Recurring invoice run history id.settledAmountnumber example: 0Klara-Pay settled amount (online shop only).bookingNumbersstringAccounting booking-number string. Server-managed (read-only).businessCaseIdinteger (int64) format: int64Accounting business case id. Server-managed (read-only).bookingStatusstringBooking status (e.g.OPEN,PARTIAL,PAID). Server-managed (read-only).bookingMessagestringOptional booking error/info code (e.g.INVALID_SUBSCRIPTION_FOR_ACCOUNTING). Server-managed (read-only).bookingSealedbooleanWhether the booking has been finalized. Server-managed (read-only).fiscalYearHasCreatedAutobooleanWhether a fiscal year was auto-created during booking. Server-managed (read-only).createBystringServer-assigned audit user (token subject). Server-managed (read-only).
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
POST/core/v1/invoices/{id}/printed-documentkey / tokenReturn the invoice as a PDF (rendering it if needed).
application/pdf stream via the internal Klara printing pipeline (luz_web + Aspose Words), mirroring the behaviour of the Klara GUI. The caller must hold the FINANCE permission on the target company.Reuse vs. render (mirrors the Klara GUI): if the invoice was already printed, the previously rendered PDF is fetched from storage and returned as-is; if it was not yet printed, it is rendered now and the
printedFileId is stored on the invoice record. In both cases the response body is the binary PDF with a Content-Disposition: attachment header containing the suggested filename. This is a POST (not GET) because the first print persists the printedFileId.Required permission
FINANCE
Parameters 1
| Name | Description |
|---|---|
id required | ID of the invoice to return as PDF. Must belong to the company resolved from the bearer JWT. |
Responses 6
200 Invoice PDF returned as a binary application/pdf stream with a Content-Disposition: attachment header — either freshly rendered (first print) or the previously stored PDF (already printed). show body
application/pdf any
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
POST/core/v1/invoices/{id}/sendkey / tokenSend a booked invoice (smart delivery or a forced channel).
Omit
channel for smart delivery: the system auto-routes through EPOST, EBILL, SEND_EMAIL and Print&Send and only fails if none can deliver. Provide channel to force that exact channel: if the recipient is not eligible (e.g. no email on file, not eBill-registered, Print&Send not subscribed) the call fails with 400. The invoice PDF is rendered on demand when it has not been printed yet.Prerequisites: the invoice must already be booked —
DRAFT and cancelled invoices are rejected with 400. Create/book it via POST /core/v1/invoices (status=INVOICED) first.Not idempotent: each successful call performs a real delivery (sends an email / hands a letter to the postal channel) and overwrites the invoice's recorded post method — do not retry blindly on success.
channel uses the same values as Invoice.postMethod, except PRINT_AND_MANUAL_SEND, which is not a deliverable channel and is rejected with 400. Authentication is API key + bearer JWT; the caller must hold the FINANCE permission on the target company.Required permission
FINANCE
Parameters 2
| Name | Description |
|---|---|
id required | Numeric primary key of the booked invoice to send. Must belong to the company resolved from the bearer JWT. Obtain it from the id of a previously created invoice (POST /core/v1/invoices). |
channel | Forced distribution channel. Leave empty for smart delivery (auto-routing) — the default is no forced channel. Allowed values: EPOST, EBILL, SEND_EMAIL, A_POST, B_POST. PRINT_AND_MANUAL_SEND is rejected with 400 (not a deliverable channel).Allowed values: A_POST, B_POST, SEND_EMAIL, PRINT_AND_MANUAL_SEND, EPOST, EBILL |
Responses 7
200 Invoice delivered. Returns the channel actually used, whether it was smart-routed, the OneAPI delivery id and the archived PDF's printedFileId. show body
application/json SendInvoiceResult
deliveredboolean example: Truetruewhen delivery was confirmed via the channel actually used.smartboolean example: Truetruewhen the channel was auto-selected (smart delivery, i.e. nochannelwas forced);falsewhen a channel was forced.channelobject example: SEND_EMAILThe channel actually used to deliver the invoice. For physical post this is the resolved postage method (e.g.A_POST).Allowed values:A_POST,B_POST,SEND_EMAIL,PRINT_AND_MANUAL_SEND,EPOST,EBILLdeliveryIdstring example: 9b1f4c8e-2d3a-4f6b-8c7d-1e2f3a4b5c6dOneAPI delivery id, when available (forced sends only;nullfor smart delivery).printedFileIdstring example: 1771764The printedFileId of the archived invoice PDF rendered/reused during the send.
400 Invoice is DRAFT/cancelled, the channel is unsupported (PRINT_AND_MANUAL_SEND), the recipient is not eligible for the forced channel, or smart delivery found no channel. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/order-documents/filter/type-and-order-numberkey / tokenList order-management documents by type and order number.
type and business order-number. Used to discover sibling documents on the same order chain (e.g. find the DELIVERY_NOTEs for an order number before creating an INVOICE from them). The caller must hold the FINANCE permission on the target company. This operation is idempotent and read-only — it can be safely retried.Required permission
FINANCE
Parameters 2
| Name | Description |
|---|---|
order-number required | Business order number shared by all documents in the same order chain (e.g. the order.orderNumber returned by POST /core/v1/invoices). Exact match. Required. |
type required | Order-document type to filter by. Allowed values: OFFER, CONFIRMATION, DELIVERY_NOTE, INVOICE, CREDIT_NOTE, FRIENDLY_REMINDER, FIRST_REMINDER, SECOND_REMINDER, PAYSLIP, RECURRING_INVOICE_TEMPLATE. Required.Allowed values: OFFER, CONFIRMATION, DELIVERY_NOTE, INVOICE, CREDIT_NOTE, FRIENDLY_REMINDER, FIRST_REMINDER, SECOND_REMINDER, PAYSLIP, RECURRING_INVOICE_TEMPLATE |
Responses 6
200 Matching order-management documents. show body
application/json array of OrderDocument
Array of OrderDocument.
idinteger (int64) format: int64 example: 1234Document id (database primary key).orderTypestring example: DELIVERY_NOTEPolymorphic discriminator. Allowed values:OFFER,CONFIRMATION,DELIVERY_NOTE,INVOICE,CREDIT_NOTE,FRIENDLY_REMINDER,FIRST_REMINDER,SECOND_REMINDER,PAYSLIP,RECURRING_INVOICE_TEMPLATE.statusstring example: SENTDocument status (subtype-specific). For invoices:DRAFT,INVOICED,SENT,PAID,CANCELLED.documentDatestring (date) format: date example: 2026-05-28Document creation/business date (ISO 8601).issuedDatestring (date) format: date example: 2026-05-28Date the document was issued (ISO 8601).amountnumber example: 500Document gross total (incl. VAT when applicable).ourReferencestring example: ACC-2026Internal sender reference.yourReferencestring example: PO-9981Customer-side reference (e.g. PO number).subjectstring example: Delivery note 377Free-text document subject.closeAndSignaturestring example: Thank you for your business.Free-text closing remarks / signature block.companyCityAndDatestring example: Zurich, 28.05.2026Header line such as 'Zurich, 28.05.2026'.usingVATboolean default: false example: TrueWhether VAT is applied on this document.vatDatestring (date) format: dateVAT date. Server-managed (read-only).printedFileIdstring example: 1771764Document file id of the rendered PDF (if any).
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/order-documents/{order-type}/next-document-numberkey / tokenGet the next document number for a given order-document type.
order-type. Use the returned documentCode as invoiceCode / offerCode when subsequently creating a document with POST /core/v1/invoices. Side effect for INVOICE: the persisted counter is advanced on every call — do not call speculatively. Only meaningful for OFFER, CONFIRMATION, DELIVERY_NOTE, and INVOICE; other types always return documentNumber = 0. If the company has configured MANUAL numbering for the requested type, the downstream service returns HTTP 500 — check GET /core/v1/order-numbering-configurations first. The caller must hold the FINANCE permission on the target company.Required permission
FINANCE
Parameters 1
| Name | Description |
|---|---|
order-type required | Order-document type whose counter to advance. Meaningful values: OFFER, CONFIRMATION, DELIVERY_NOTE, INVOICE. Other enum values (CREDIT_NOTE, FRIENDLY_REMINDER, FIRST_REMINDER, SECOND_REMINDER, PAYSLIP, RECURRING_INVOICE_TEMPLATE) are accepted but always return documentNumber = 0. An invalid value returns HTTP 400.Allowed values: OFFER, CONFIRMATION, DELIVERY_NOTE, INVOICE, CREDIT_NOTE, FRIENDLY_REMINDER, FIRST_REMINDER, SECOND_REMINDER, PAYSLIP, RECURRING_INVOICE_TEMPLATE |
Responses 6
200 Next document number and formatted code for the requested order type. show body
application/json OrderNumberingResult
orderTypeobject example: INVOICEOrder-management document type. Used as the discriminator onOrderDocument.orderType.orderNumberingTypeobject example: STANDARDStrategy used to assign document numbers for an order type.STANDARD— server auto-increments;MANUAL— caller supplies the number;CUSTOMISED— caller supplies a formatted code matching the configured pattern.startingNumberinteger (int64) format: int64 example: 1000Starting sequence number for STANDARD and CUSTOMISED strategies.incrementinteger (int64) format: int64 example: 1Step size between successive auto-incremented numbers.formatstring example: INV-2026-Alphanumeric prefix for CUSTOMISED numbering (the server appends the sequence number).documentNumberinteger (int64) format: int64 example: 1001The next document number to use (the sequence integer). For INVOICE this counter is persisted on every call — do not call speculatively.documentCodestring example: 1001The next document code to use as invoiceCode / offerCode. For STANDARD and MANUAL this equals String.valueOf(documentNumber); for CUSTOMISED it equals format + documentNumber (e.g. "INV-2026-1001").
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/order-numbering-configurationskey / tokenGet the order-numbering configuration for a document type.
order-type of the company resolved from the bearer JWT. Use this before creating a document to decide how to supply the document number in POST /core/v1/invoices: STANDARD — server auto-assigns; MANUAL — set invoiceCode yourself; CUSTOMISED — set invoiceCode to a value matching the returned format pattern. If no configuration has been saved by the company administrator, a default STANDARD configuration is returned. The caller must hold the FINANCE permission on the target company. This operation is idempotent and read-only.Required permission
FINANCE
Parameters 1
| Name | Description |
|---|---|
order-type | Document type to retrieve the numbering configuration for. Allowed values: OFFER, CONFIRMATION, DELIVERY_NOTE, INVOICE, CREDIT_NOTE, FRIENDLY_REMINDER, FIRST_REMINDER, SECOND_REMINDER, PAYSLIP, RECURRING_INVOICE_TEMPLATE. Recommended — omitting it returns a generic default with a null orderType field.Allowed values: OFFER, CONFIRMATION, DELIVERY_NOTE, INVOICE, CREDIT_NOTE, FRIENDLY_REMINDER, FIRST_REMINDER, SECOND_REMINDER, PAYSLIP, RECURRING_INVOICE_TEMPLATE |
Responses 6
200 Numbering configuration for the requested document type. show body
application/json OrderNumberingConfiguration
orderTypeobject example: INVOICEOrder-management document type. Used as the discriminator onOrderDocument.orderType.orderNumberingTypeobject example: STANDARDStrategy used to assign document numbers for an order type.STANDARD— server auto-increments;MANUAL— caller supplies the number;CUSTOMISED— caller supplies a formatted code matching the configured pattern.startingNumberinteger (int64) format: int64 example: 1000The first number in the auto-increment sequence (relevant for STANDARD). Null when not configured.incrementinteger (int64) format: int64 example: 1Step size between successive auto-incremented numbers (relevant for STANDARD). Null when not configured.formatstring example: INV-2026-{SEQ}Alphanumeric format pattern for CUSTOMISED numbering (e.g.INV-{YYYY}-{SEQ}). Null when not configured.
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/orders/next-order-numberkey / tokenGet the next available order number for the authenticated company.
nextOrderNumber as the orderNumber field when subsequently creating an order. Not idempotent: each call reserves and advances the in-memory counter — call this immediately before creating the order and do not call speculatively. Gaps may appear in the sequence if the subsequent order creation fails. The caller must hold the FINANCE permission on the target company.Required permission
FINANCE
Responses 5
200 Next available order number for the authenticated company. show body
application/json OrderNextNumberResult
nextOrderNumberinteger (int32) format: int32 example: 10041The next available business order number for the authenticated company. Reserved exclusively for this call — use it as the orderNumber when subsequently creating the order. Gaps may appear in the sequence if the order creation fails after this call.
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
Sales & Articles
Article28
GET/core/latest/article-categorieskey / tokenGet all categories
Parameters 4
| Name | Description |
|---|---|
active-status | Active status |
keyword | Name |
limit | Limit filters returned |
Accept-Language | Language code is used for filtering by the keyword with multilingual |
Responses 5
200 Return successfully show body
application/json array of ArticleCategory
Array of ArticleCategory.
idstring read-only example: 1Id of the category. Does not need to be included when creating article categorynameDEstring required example: German nameName of the category in GermannameENstring example: English nameName of the category in EnglishnameFRstring example: French nameName of the category in FrenchnameITstring example: Italian nameName of the category in Italianorderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article category.activebooleanIndicates if the category is active or notimageIdstring read-only example: 1Image Id of the category. Does not need to be included when creating article category_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
POST/core/latest/article-categorieskey / tokenCreate a new category
Request body
application/json ArticleCategory
idstring read-only example: 1Id of the category. Does not need to be included when creating article categorynameDEstring required example: German nameName of the category in GermannameENstring example: English nameName of the category in EnglishnameFRstring example: French nameName of the category in FrenchnameITstring example: Italian nameName of the category in Italianorderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article category.activebooleanIndicates if the category is active or notimageIdstring read-only example: 1Image Id of the category. Does not need to be included when creating article category_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
Responses 5
201 Category created show body
application/json ArticleCategory
idstring read-only example: 1Id of the category. Does not need to be included when creating article categorynameDEstring required example: German nameName of the category in GermannameENstring example: English nameName of the category in EnglishnameFRstring example: French nameName of the category in FrenchnameITstring example: Italian nameName of the category in Italianorderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article category.activebooleanIndicates if the category is active or notimageIdstring read-only example: 1Image Id of the category. Does not need to be included when creating article category_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
DELETE/core/latest/article-categories/{category-id}key / tokenDelete category by Id
Parameters 1
| Name | Description |
|---|---|
category-id required |
Responses 6
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/latest/article-categories/{category-id}key / tokenGet category by id
Parameters 1
| Name | Description |
|---|---|
category-id required |
Responses 5
200 Return successfully show body
application/json ArticleCategory
idstring read-only example: 1Id of the category. Does not need to be included when creating article categorynameDEstring required example: German nameName of the category in GermannameENstring example: English nameName of the category in EnglishnameFRstring example: French nameName of the category in FrenchnameITstring example: Italian nameName of the category in Italianorderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article category.activebooleanIndicates if the category is active or notimageIdstring read-only example: 1Image Id of the category. Does not need to be included when creating article category_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
PUT/core/latest/article-categories/{category-id}key / tokenUpdate category by Id
Parameters 1
| Name | Description |
|---|---|
category-id required |
Request body
application/json ArticleCategory
idstring read-only example: 1Id of the category. Does not need to be included when creating article categorynameDEstring required example: German nameName of the category in GermannameENstring example: English nameName of the category in EnglishnameFRstring example: French nameName of the category in FrenchnameITstring example: Italian nameName of the category in Italianorderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article category.activebooleanIndicates if the category is active or notimageIdstring read-only example: 1Image Id of the category. Does not need to be included when creating article category_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
Responses 6
200 Updated successfully show body
application/json ArticleCategory
idstring read-only example: 1Id of the category. Does not need to be included when creating article categorynameDEstring required example: German nameName of the category in GermannameENstring example: English nameName of the category in EnglishnameFRstring example: French nameName of the category in FrenchnameITstring example: Italian nameName of the category in Italianorderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article category.activebooleanIndicates if the category is active or notimageIdstring read-only example: 1Image Id of the category. Does not need to be included when creating article category_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
POST/core/latest/article-categories/{category-id}/assign-to-articleskey / tokenAssign category to articles
Only the articles entered in the request body will have the specified article category added to their respective filters.
Other articles will not be affected
Parameters 1
| Name | Description |
|---|---|
category-id required |
Request body
application/json CategoryAssigningGroup
articleIdsForOnlineShoparray of stringArticle ids need to be assigned with a online shop categoryarticleIdsForBookingarray of stringArticle ids need to be assigned with a booking categoryarticleIdsForPosarray of stringArticle ids need to be assigned with a pos category
Responses 6
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/latest/article-filterskey / tokenSearch article filters
Parameters 4
| Name | Description |
|---|---|
active-status | Active status |
keyword | Name |
limit | Limit filters returned |
Accept-Language | Language code is used for filtering by the keyword with multilingual |
Responses 4
200 Filters show body
application/json array of ArticleFilter
Array of ArticleFilter.
idstring read-only example: 1Id of the filter. Does not need to be included when creating article filternameDEstring required example: shopName of the filter in germannameENstring example: shopName of the filter in englishnameFRstring example: shopName of the filter in frenchnameITstring example: shopName of the filter in italyorderinteger (int32) format: int32Order of this filter.
Does not need to be included when creating article filter.activebooleanIndicates if the filter is active or notimageIdstring read-onlyThe image id of the filter. Does not need to be included when creating article_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
POST/core/latest/article-filterskey / tokenCreate a article filter
Request body required
application/json ArticleFilter
idstring read-only example: 1Id of the filter. Does not need to be included when creating article filternameDEstring required example: shopName of the filter in germannameENstring example: shopName of the filter in englishnameFRstring example: shopName of the filter in frenchnameITstring example: shopName of the filter in italyorderinteger (int32) format: int32Order of this filter.
Does not need to be included when creating article filter.activebooleanIndicates if the filter is active or notimageIdstring read-onlyThe image id of the filter. Does not need to be included when creating article_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
Responses 5
201 Filter created show body
application/json ArticleFilter
idstring read-only example: 1Id of the filter. Does not need to be included when creating article filternameDEstring required example: shopName of the filter in germannameENstring example: shopName of the filter in englishnameFRstring example: shopName of the filter in frenchnameITstring example: shopName of the filter in italyorderinteger (int32) format: int32Order of this filter.
Does not need to be included when creating article filter.activebooleanIndicates if the filter is active or notimageIdstring read-onlyThe image id of the filter. Does not need to be included when creating article_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
DELETE/core/latest/article-filters/{filter-id}key / tokenDelete article filter by id
Parameters 1
| Name | Description |
|---|---|
filter-id required |
Responses 5
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/latest/article-filters/{filter-id}key / tokenGet article filter by id
Parameters 1
| Name | Description |
|---|---|
filter-id required |
Responses 5
200 Filter show body
application/json ArticleFilter
idstring read-only example: 1Id of the filter. Does not need to be included when creating article filternameDEstring required example: shopName of the filter in germannameENstring example: shopName of the filter in englishnameFRstring example: shopName of the filter in frenchnameITstring example: shopName of the filter in italyorderinteger (int32) format: int32Order of this filter.
Does not need to be included when creating article filter.activebooleanIndicates if the filter is active or notimageIdstring read-onlyThe image id of the filter. Does not need to be included when creating article_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
PUT/core/latest/article-filters/{filter-id}key / tokenUpdate article filter by id
Parameters 1
| Name | Description |
|---|---|
filter-id required |
Request body required
application/json ArticleFilter
idstring read-only example: 1Id of the filter. Does not need to be included when creating article filternameDEstring required example: shopName of the filter in germannameENstring example: shopName of the filter in englishnameFRstring example: shopName of the filter in frenchnameITstring example: shopName of the filter in italyorderinteger (int32) format: int32Order of this filter.
Does not need to be included when creating article filter.activebooleanIndicates if the filter is active or notimageIdstring read-onlyThe image id of the filter. Does not need to be included when creating article_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
Responses 6
200 Update successfully show body
application/json ArticleFilter
idstring read-only example: 1Id of the filter. Does not need to be included when creating article filternameDEstring required example: shopName of the filter in germannameENstring example: shopName of the filter in englishnameFRstring example: shopName of the filter in frenchnameITstring example: shopName of the filter in italyorderinteger (int32) format: int32Order of this filter.
Does not need to be included when creating article filter.activebooleanIndicates if the filter is active or notimageIdstring read-onlyThe image id of the filter. Does not need to be included when creating article_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
POST/core/latest/article-filters/{filter-id}/assign-to-articleskey / tokenAssign filter to articles
Only the articles entered in the request body will have the specified article filter added to their respective filters.
Other articles will not be affected
Parameters 1
| Name | Description |
|---|---|
filter-id required |
Request body required
application/json FilterAssigningGroup
assignedPosArticleIdsarray of stringArticle ids will have the filter as a pos filterassignedOnlineShopArticleIdsarray of stringArticle ids will have the filter as a online shop filterassignedBookingArticleIdsarray of stringArticle ids will have the filter as a booking filter
Responses 6
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/latest/articleskey / tokenReturns article list of a company
Parameters 3
| Name | Description |
|---|---|
limit | Define the limit of the article list that this API returns. For example, if a company have 20 articles in total, and this limit parameter is 5, and the offset parameter is 0, then this API will return article list containing the first 5 articles If not set, then default value of 48 is used |
offset | Define which position to start getting article list. For example, if a company have 20 articles in total, and this offset parameter is 5, then this API will return article list from the 5th article. If not set, then default value of 0 is used |
product-type | Filter articles with this product type. Allowed values: SERVICE, PRODUCTION, TRADE, OTHER, GIFT_CARD, PREPAYMENT |
Responses 4
200 Articles show body
application/json array of Article
Array of Article.
idstring read-only example: 1Id of the article. Does not need to be included when creating articlenameDEstring requiredName of the article in GermannameENstringName of the article in EnglishnameFRstringName of the article in FrenchnameITstringName of the article in ItaliandescriptionDEstringDescription of the article in GermandescriptionENstringDescription of the article in EnglishdescriptionFRstringDescription of the article in FrenchdescriptionITstringDescription of the article in ItalianextendedDescriptionDEstringExtended description of the article in GermanextendedDescriptionENstringExtended description of the article in EnglishextendedDescriptionFRstringExtended description of the article in FrenchextendedDescriptionITstringExtended description of the article in ItalianunitDEstring requiredUnit of the article in GermanunitENstringUnit of the article in EnglishunitFRstringUnit of the article in FrenchunitITstringUnit of the article in ItalianbarcodestringBarcode of the articleusePosbooleanDecides if this article is used for POS or notpricePeriodsarray of PricePeriodPrice periods for the article.
If article only has single price period, ignore and don't include validFrom and validTo in the PricePeriod.
If article have different prices valid for different periods, set value for validFrom for each price period or that price period is ignored.show fields
Array of
PricePeriod.validFromstring (date) format: dateThe price period is valid from this timevalidTostring (date) format: date read-onlyThe price period is invalid after this timepricenumber pattern: ^\d{1,19}([.]\d{1,2})?$The price used for an article within this price periodpriceCategoriesarray of PriceCategoryList of price categories effective for this price periodshow fields
Array of
PriceCategory.namestringName of the price categorypricenumber pattern: ^\d{1,19}([.]\d{1,2})?$Effective price of this price category
optionsarray of ArticleOptionOptions for the article. If specify, variants for this article will be generated.show fields
Array of
ArticleOption.namestring example: colorName of the article optionvaluesarray of stringAvailable choices for the article option
imageHrefsarray of string read-onlyReference uris for the images of this article if present.isArticleSetbooleanDecides if this article is an article setarticleSetNamestringName of the article set. Does not need to be included if article is not an article set.defaultQuantitynumber pattern: ^\d{1,19}([.]\d{1,2})?$The default quantity of the articleaccountingTagsarray of string requiredTags used for accounting. Articles with the same tag, same VAT case and same VAT rate are grouped together in the postingarticleNumberstring required example: ABC123Article numberhasVariantbooleanSpecify if the article has variants or notincludedInArticleSetsarray of stringNames of the article sets that the article is included in.
If the article have some variants, then only the variants will show the article set name they belong to, not the parent article (null value is shown).sellInOnlineShopbooleanSpecify if the article is able to be sold on the Online shop or notisAdultArticlebooleanSpecify if the article is only used for adult or notproductTypeobject requiredType of product used for an articleposCategoriesarray of ArticleCategoryRefCategories used for Point of Sale of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
posFiltersarray of ArticleFilterRefFilters used for Point of Sale of the article
Provide only either id or href of each filter when creating Articleshow fields
Array of
ArticleFilterRef.idstring read-only example: 1Id of the filter. Does not need to be included when creating article.filter_hrefstring required write-only example: https://api.klara.ch/core/latest/article-filters/1Reference uri for an article filter. If specified, this article will be assigned to the entered article filter.nameDEstring read-only example: shopName of the filter in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the filter in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the filter in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the filter in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this filter.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the filter is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
onlineShopCategoriesarray of ArticleCategoryRefCategories used for Online shop of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
onlineShopFiltersarray of ArticleFilterRefFilters used for Online shop of the article
Provide only either id or href of each filter when creating Articleshow fields
Array of
ArticleFilterRef.idstring read-only example: 1Id of the filter. Does not need to be included when creating article.filter_hrefstring required write-only example: https://api.klara.ch/core/latest/article-filters/1Reference uri for an article filter. If specified, this article will be assigned to the entered article filter.nameDEstring read-only example: shopName of the filter in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the filter in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the filter in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the filter in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this filter.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the filter is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
bookingCategoriesarray of ArticleCategoryRefCategories used for Online Booking of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
searchTagsarray of stringSearch tags make it easier for your customer to find your product in the online shopshippingInfoobjectshipping information for an article.show fields
shippingAttributesarray of stringList of attributes used for shippingweightUnitstringWeight unit used for shipping of the articleAllowed values:GRAM,KILOGRAMdimensionUnitstringDimension unit used for shipping of the articleAllowed values:CENTIMETER,METERweightnumber pattern: ^\d{1,19}([.]\d{1,2})?$Weight of this articlewidthnumber pattern: ^\d{1,19}([.]\d{1,2})?$Width of this articleheightnumber pattern: ^\d{1,19}([.]\d{1,2})?$Height of this articledepthnumber pattern: ^\d{1,19}([.]\d{1,2})?$Depth of this article
_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
vatsarray of ArticleVatVAT information for the articleshow fields
Array of
ArticleVat.vatTypeobject example: NORMALArticle vat type of the articlevatCasestring example: TAXABLE_SUPPLYVAT case of the articlevatCodestring example: 1VAT code of the article VATsss1boolean example: FalseReporting net tax rate with SSS1 optionsss2boolean example: FalseReporting net tax rate with SSS2 optionreportingNetTaxRateboolean example: FalseUsing VAT reporting net tax rate optionexcludeVatboolean example: FalseUsing exclude VAT option
numberTypeobjectInventory Number Type
Use either NO_NUMBER or SERIAL_NUMBER
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
POST/core/latest/articleskey / tokenCreate a new article
Request body required
application/json Article
idstring read-only example: 1Id of the article. Does not need to be included when creating articlenameDEstring requiredName of the article in GermannameENstringName of the article in EnglishnameFRstringName of the article in FrenchnameITstringName of the article in ItaliandescriptionDEstringDescription of the article in GermandescriptionENstringDescription of the article in EnglishdescriptionFRstringDescription of the article in FrenchdescriptionITstringDescription of the article in ItalianextendedDescriptionDEstringExtended description of the article in GermanextendedDescriptionENstringExtended description of the article in EnglishextendedDescriptionFRstringExtended description of the article in FrenchextendedDescriptionITstringExtended description of the article in ItalianunitDEstring requiredUnit of the article in GermanunitENstringUnit of the article in EnglishunitFRstringUnit of the article in FrenchunitITstringUnit of the article in ItalianbarcodestringBarcode of the articleusePosbooleanDecides if this article is used for POS or notpricePeriodsarray of PricePeriodPrice periods for the article.
If article only has single price period, ignore and don't include validFrom and validTo in the PricePeriod.
If article have different prices valid for different periods, set value for validFrom for each price period or that price period is ignored.show fields
Array of
PricePeriod.validFromstring (date) format: dateThe price period is valid from this timevalidTostring (date) format: date read-onlyThe price period is invalid after this timepricenumber pattern: ^\d{1,19}([.]\d{1,2})?$The price used for an article within this price periodpriceCategoriesarray of PriceCategoryList of price categories effective for this price periodshow fields
Array of
PriceCategory.namestringName of the price categorypricenumber pattern: ^\d{1,19}([.]\d{1,2})?$Effective price of this price category
optionsarray of ArticleOptionOptions for the article. If specify, variants for this article will be generated.show fields
Array of
ArticleOption.namestring example: colorName of the article optionvaluesarray of stringAvailable choices for the article option
imageHrefsarray of string read-onlyReference uris for the images of this article if present.isArticleSetbooleanDecides if this article is an article setarticleSetNamestringName of the article set. Does not need to be included if article is not an article set.defaultQuantitynumber pattern: ^\d{1,19}([.]\d{1,2})?$The default quantity of the articleaccountingTagsarray of string requiredTags used for accounting. Articles with the same tag, same VAT case and same VAT rate are grouped together in the postingarticleNumberstring required example: ABC123Article numberhasVariantbooleanSpecify if the article has variants or notincludedInArticleSetsarray of stringNames of the article sets that the article is included in.
If the article have some variants, then only the variants will show the article set name they belong to, not the parent article (null value is shown).sellInOnlineShopbooleanSpecify if the article is able to be sold on the Online shop or notisAdultArticlebooleanSpecify if the article is only used for adult or notproductTypeobject requiredType of product used for an articleposCategoriesarray of ArticleCategoryRefCategories used for Point of Sale of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
posFiltersarray of ArticleFilterRefFilters used for Point of Sale of the article
Provide only either id or href of each filter when creating Articleshow fields
Array of
ArticleFilterRef.idstring read-only example: 1Id of the filter. Does not need to be included when creating article.filter_hrefstring required write-only example: https://api.klara.ch/core/latest/article-filters/1Reference uri for an article filter. If specified, this article will be assigned to the entered article filter.nameDEstring read-only example: shopName of the filter in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the filter in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the filter in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the filter in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this filter.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the filter is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
onlineShopCategoriesarray of ArticleCategoryRefCategories used for Online shop of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
onlineShopFiltersarray of ArticleFilterRefFilters used for Online shop of the article
Provide only either id or href of each filter when creating Articleshow fields
Array of
ArticleFilterRef.idstring read-only example: 1Id of the filter. Does not need to be included when creating article.filter_hrefstring required write-only example: https://api.klara.ch/core/latest/article-filters/1Reference uri for an article filter. If specified, this article will be assigned to the entered article filter.nameDEstring read-only example: shopName of the filter in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the filter in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the filter in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the filter in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this filter.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the filter is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
bookingCategoriesarray of ArticleCategoryRefCategories used for Online Booking of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
searchTagsarray of stringSearch tags make it easier for your customer to find your product in the online shopshippingInfoobjectshipping information for an article.show fields
shippingAttributesarray of stringList of attributes used for shippingweightUnitstringWeight unit used for shipping of the articleAllowed values:GRAM,KILOGRAMdimensionUnitstringDimension unit used for shipping of the articleAllowed values:CENTIMETER,METERweightnumber pattern: ^\d{1,19}([.]\d{1,2})?$Weight of this articlewidthnumber pattern: ^\d{1,19}([.]\d{1,2})?$Width of this articleheightnumber pattern: ^\d{1,19}([.]\d{1,2})?$Height of this articledepthnumber pattern: ^\d{1,19}([.]\d{1,2})?$Depth of this article
_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
vatsarray of ArticleVatVAT information for the articleshow fields
Array of
ArticleVat.vatTypeobject example: NORMALArticle vat type of the articlevatCasestring example: TAXABLE_SUPPLYVAT case of the articlevatCodestring example: 1VAT code of the article VATsss1boolean example: FalseReporting net tax rate with SSS1 optionsss2boolean example: FalseReporting net tax rate with SSS2 optionreportingNetTaxRateboolean example: FalseUsing VAT reporting net tax rate optionexcludeVatboolean example: FalseUsing exclude VAT option
numberTypeobjectInventory Number Type
Use either NO_NUMBER or SERIAL_NUMBER
Responses 5
201 Article created show body
application/json Article
idstring read-only example: 1Id of the article. Does not need to be included when creating articlenameDEstring requiredName of the article in GermannameENstringName of the article in EnglishnameFRstringName of the article in FrenchnameITstringName of the article in ItaliandescriptionDEstringDescription of the article in GermandescriptionENstringDescription of the article in EnglishdescriptionFRstringDescription of the article in FrenchdescriptionITstringDescription of the article in ItalianextendedDescriptionDEstringExtended description of the article in GermanextendedDescriptionENstringExtended description of the article in EnglishextendedDescriptionFRstringExtended description of the article in FrenchextendedDescriptionITstringExtended description of the article in ItalianunitDEstring requiredUnit of the article in GermanunitENstringUnit of the article in EnglishunitFRstringUnit of the article in FrenchunitITstringUnit of the article in ItalianbarcodestringBarcode of the articleusePosbooleanDecides if this article is used for POS or notpricePeriodsarray of PricePeriodPrice periods for the article.
If article only has single price period, ignore and don't include validFrom and validTo in the PricePeriod.
If article have different prices valid for different periods, set value for validFrom for each price period or that price period is ignored.show fields
Array of
PricePeriod.validFromstring (date) format: dateThe price period is valid from this timevalidTostring (date) format: date read-onlyThe price period is invalid after this timepricenumber pattern: ^\d{1,19}([.]\d{1,2})?$The price used for an article within this price periodpriceCategoriesarray of PriceCategoryList of price categories effective for this price periodshow fields
Array of
PriceCategory.namestringName of the price categorypricenumber pattern: ^\d{1,19}([.]\d{1,2})?$Effective price of this price category
optionsarray of ArticleOptionOptions for the article. If specify, variants for this article will be generated.show fields
Array of
ArticleOption.namestring example: colorName of the article optionvaluesarray of stringAvailable choices for the article option
imageHrefsarray of string read-onlyReference uris for the images of this article if present.isArticleSetbooleanDecides if this article is an article setarticleSetNamestringName of the article set. Does not need to be included if article is not an article set.defaultQuantitynumber pattern: ^\d{1,19}([.]\d{1,2})?$The default quantity of the articleaccountingTagsarray of string requiredTags used for accounting. Articles with the same tag, same VAT case and same VAT rate are grouped together in the postingarticleNumberstring required example: ABC123Article numberhasVariantbooleanSpecify if the article has variants or notincludedInArticleSetsarray of stringNames of the article sets that the article is included in.
If the article have some variants, then only the variants will show the article set name they belong to, not the parent article (null value is shown).sellInOnlineShopbooleanSpecify if the article is able to be sold on the Online shop or notisAdultArticlebooleanSpecify if the article is only used for adult or notproductTypeobject requiredType of product used for an articleposCategoriesarray of ArticleCategoryRefCategories used for Point of Sale of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
posFiltersarray of ArticleFilterRefFilters used for Point of Sale of the article
Provide only either id or href of each filter when creating Articleshow fields
Array of
ArticleFilterRef.idstring read-only example: 1Id of the filter. Does not need to be included when creating article.filter_hrefstring required write-only example: https://api.klara.ch/core/latest/article-filters/1Reference uri for an article filter. If specified, this article will be assigned to the entered article filter.nameDEstring read-only example: shopName of the filter in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the filter in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the filter in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the filter in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this filter.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the filter is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
onlineShopCategoriesarray of ArticleCategoryRefCategories used for Online shop of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
onlineShopFiltersarray of ArticleFilterRefFilters used for Online shop of the article
Provide only either id or href of each filter when creating Articleshow fields
Array of
ArticleFilterRef.idstring read-only example: 1Id of the filter. Does not need to be included when creating article.filter_hrefstring required write-only example: https://api.klara.ch/core/latest/article-filters/1Reference uri for an article filter. If specified, this article will be assigned to the entered article filter.nameDEstring read-only example: shopName of the filter in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the filter in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the filter in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the filter in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this filter.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the filter is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
bookingCategoriesarray of ArticleCategoryRefCategories used for Online Booking of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
searchTagsarray of stringSearch tags make it easier for your customer to find your product in the online shopshippingInfoobjectshipping information for an article.show fields
shippingAttributesarray of stringList of attributes used for shippingweightUnitstringWeight unit used for shipping of the articleAllowed values:GRAM,KILOGRAMdimensionUnitstringDimension unit used for shipping of the articleAllowed values:CENTIMETER,METERweightnumber pattern: ^\d{1,19}([.]\d{1,2})?$Weight of this articlewidthnumber pattern: ^\d{1,19}([.]\d{1,2})?$Width of this articleheightnumber pattern: ^\d{1,19}([.]\d{1,2})?$Height of this articledepthnumber pattern: ^\d{1,19}([.]\d{1,2})?$Depth of this article
_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
vatsarray of ArticleVatVAT information for the articleshow fields
Array of
ArticleVat.vatTypeobject example: NORMALArticle vat type of the articlevatCasestring example: TAXABLE_SUPPLYVAT case of the articlevatCodestring example: 1VAT code of the article VATsss1boolean example: FalseReporting net tax rate with SSS1 optionsss2boolean example: FalseReporting net tax rate with SSS2 optionreportingNetTaxRateboolean example: FalseUsing VAT reporting net tax rate optionexcludeVatboolean example: FalseUsing exclude VAT option
numberTypeobjectInventory Number Type
Use either NO_NUMBER or SERIAL_NUMBER
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/latest/articles/article-and-variantskey / tokenReturns list of articles and treat a variant combination same as an article
Parameters 6
| Name | Description |
|---|---|
include-quantity | flag to include quantity in the result. |
limit | Define the limit of the article list that this API returns. For example, if a company have 20 articles in total, and this limit parameter is 5, and the offset parameter is 0, then this API will return article list containing the first 5 articles If not set, then default value of 48 is used |
offset | Define which position to start getting article list. For example, if a company have 20 articles in total, and this offset parameter is 5, then this API will return article list from the 5th article. If not set, then default value of 0 is used |
sell-in-booking | flag to define sellable article for booking. |
sell-in-online-shop | flag to query articles that are sold in online shop. |
use-pos | flag to define article that are using in POS. |
Responses 4
200 List of article and variant show body
application/json array of ArticleAndVariant
Array of ArticleAndVariant.
idstring example: 1Id of the articlenamestringName of the articledescriptionstringDescription for the articleextendedDescriptionstringThis description will be used for example in your online shopunitstringDefine how the article is count bybarcodestringBarcode of the articledefaultQuantitynumberThe default quantity of the articleaccountingTagsarray of stringTags used for accounting. Articles with the same tag, same VAT case and same VAT rate are grouped together in the postingarticleNumberstring example: ABC123Number of the articleproductTypeobjectType of product used for an articlepriceCategoriesarray of ArticlePriceCategoryPrice categories of the articleshow fields
Array of
ArticlePriceCategory.namestringpriceIncludeVatnumberpriceExcludeVatnumber
vatRatenumberVat rate of the articlearticleTypeobjectArticle typepriceIncludeVatnumberprice include vatpriceExcludeVatnumberprice exclude vathasInventorybooleanThis article has inventory or notquantityInStocknumberQuantity in stockoptionValuesarray of stringVariant option of this articleableToOrderOutOfStockbooleanFlag define the article is allow to order out of stock
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/latest/articles/article-numberskey / tokenFind articles by article numbers
Parameters 4
| Name | Description |
|---|---|
article-numbers | Article numbers to look up. Repeat the parameter for each value (e.g. `?article-numbers=ART-001&article-numbers=ART-002`). At most 100 entries; each entry up to 64 characters. |
export-vat | If `true`, return ABROAD (export) VAT rate; otherwise NORMAL. Defaults to false. |
price-date | Date on which prices are evaluated. Format: yyyy-MM-dd. Defaults to today when omitted. |
should-validate-vat | If `true`, cross-validate each row's VAT code against the company's VAT setup on `price-date`. Defaults to false. |
Responses 6
200 Matching articles show body
application/json array of ArticleAndVariant
Array of ArticleAndVariant.
idstring example: 1Id of the articlenamestringName of the articledescriptionstringDescription for the articleextendedDescriptionstringThis description will be used for example in your online shopunitstringDefine how the article is count bybarcodestringBarcode of the articledefaultQuantitynumberThe default quantity of the articleaccountingTagsarray of stringTags used for accounting. Articles with the same tag, same VAT case and same VAT rate are grouped together in the postingarticleNumberstring example: ABC123Number of the articleproductTypeobjectType of product used for an articlepriceCategoriesarray of ArticlePriceCategoryPrice categories of the articleshow fields
Array of
ArticlePriceCategory.namestringpriceIncludeVatnumberpriceExcludeVatnumber
vatRatenumberVat rate of the articlearticleTypeobjectArticle typepriceIncludeVatnumberprice include vatpriceExcludeVatnumberprice exclude vathasInventorybooleanThis article has inventory or notquantityInStocknumberQuantity in stockoptionValuesarray of stringVariant option of this articleableToOrderOutOfStockbooleanFlag define the article is allow to order out of stock
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
POST/core/latest/articles/bulkkey / tokenCreate articles
Request body required
application/json array of Article
Array of Article.
idstring read-only example: 1Id of the article. Does not need to be included when creating articlenameDEstring requiredName of the article in GermannameENstringName of the article in EnglishnameFRstringName of the article in FrenchnameITstringName of the article in ItaliandescriptionDEstringDescription of the article in GermandescriptionENstringDescription of the article in EnglishdescriptionFRstringDescription of the article in FrenchdescriptionITstringDescription of the article in ItalianextendedDescriptionDEstringExtended description of the article in GermanextendedDescriptionENstringExtended description of the article in EnglishextendedDescriptionFRstringExtended description of the article in FrenchextendedDescriptionITstringExtended description of the article in ItalianunitDEstring requiredUnit of the article in GermanunitENstringUnit of the article in EnglishunitFRstringUnit of the article in FrenchunitITstringUnit of the article in ItalianbarcodestringBarcode of the articleusePosbooleanDecides if this article is used for POS or notpricePeriodsarray of PricePeriodPrice periods for the article.
If article only has single price period, ignore and don't include validFrom and validTo in the PricePeriod.
If article have different prices valid for different periods, set value for validFrom for each price period or that price period is ignored.show fields
Array of
PricePeriod.validFromstring (date) format: dateThe price period is valid from this timevalidTostring (date) format: date read-onlyThe price period is invalid after this timepricenumber pattern: ^\d{1,19}([.]\d{1,2})?$The price used for an article within this price periodpriceCategoriesarray of PriceCategoryList of price categories effective for this price periodshow fields
Array of
PriceCategory.namestringName of the price categorypricenumber pattern: ^\d{1,19}([.]\d{1,2})?$Effective price of this price category
optionsarray of ArticleOptionOptions for the article. If specify, variants for this article will be generated.show fields
Array of
ArticleOption.namestring example: colorName of the article optionvaluesarray of stringAvailable choices for the article option
imageHrefsarray of string read-onlyReference uris for the images of this article if present.isArticleSetbooleanDecides if this article is an article setarticleSetNamestringName of the article set. Does not need to be included if article is not an article set.defaultQuantitynumber pattern: ^\d{1,19}([.]\d{1,2})?$The default quantity of the articleaccountingTagsarray of string requiredTags used for accounting. Articles with the same tag, same VAT case and same VAT rate are grouped together in the postingarticleNumberstring required example: ABC123Article numberhasVariantbooleanSpecify if the article has variants or notincludedInArticleSetsarray of stringNames of the article sets that the article is included in.
If the article have some variants, then only the variants will show the article set name they belong to, not the parent article (null value is shown).sellInOnlineShopbooleanSpecify if the article is able to be sold on the Online shop or notisAdultArticlebooleanSpecify if the article is only used for adult or notproductTypeobject requiredType of product used for an articleposCategoriesarray of ArticleCategoryRefCategories used for Point of Sale of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
posFiltersarray of ArticleFilterRefFilters used for Point of Sale of the article
Provide only either id or href of each filter when creating Articleshow fields
Array of
ArticleFilterRef.idstring read-only example: 1Id of the filter. Does not need to be included when creating article.filter_hrefstring required write-only example: https://api.klara.ch/core/latest/article-filters/1Reference uri for an article filter. If specified, this article will be assigned to the entered article filter.nameDEstring read-only example: shopName of the filter in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the filter in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the filter in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the filter in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this filter.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the filter is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
onlineShopCategoriesarray of ArticleCategoryRefCategories used for Online shop of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
onlineShopFiltersarray of ArticleFilterRefFilters used for Online shop of the article
Provide only either id or href of each filter when creating Articleshow fields
Array of
ArticleFilterRef.idstring read-only example: 1Id of the filter. Does not need to be included when creating article.filter_hrefstring required write-only example: https://api.klara.ch/core/latest/article-filters/1Reference uri for an article filter. If specified, this article will be assigned to the entered article filter.nameDEstring read-only example: shopName of the filter in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the filter in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the filter in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the filter in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this filter.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the filter is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
bookingCategoriesarray of ArticleCategoryRefCategories used for Online Booking of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
searchTagsarray of stringSearch tags make it easier for your customer to find your product in the online shopshippingInfoobjectshipping information for an article.show fields
shippingAttributesarray of stringList of attributes used for shippingweightUnitstringWeight unit used for shipping of the articleAllowed values:GRAM,KILOGRAMdimensionUnitstringDimension unit used for shipping of the articleAllowed values:CENTIMETER,METERweightnumber pattern: ^\d{1,19}([.]\d{1,2})?$Weight of this articlewidthnumber pattern: ^\d{1,19}([.]\d{1,2})?$Width of this articleheightnumber pattern: ^\d{1,19}([.]\d{1,2})?$Height of this articledepthnumber pattern: ^\d{1,19}([.]\d{1,2})?$Depth of this article
_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
vatsarray of ArticleVatVAT information for the articleshow fields
Array of
ArticleVat.vatTypeobject example: NORMALArticle vat type of the articlevatCasestring example: TAXABLE_SUPPLYVAT case of the articlevatCodestring example: 1VAT code of the article VATsss1boolean example: FalseReporting net tax rate with SSS1 optionsss2boolean example: FalseReporting net tax rate with SSS2 optionreportingNetTaxRateboolean example: FalseUsing VAT reporting net tax rate optionexcludeVatboolean example: FalseUsing exclude VAT option
numberTypeobjectInventory Number Type
Use either NO_NUMBER or SERIAL_NUMBER
Responses 4
200 Article created show body
application/json BulkArticleCreatingResponse
numberOfSuccessinteger (int32) format: int32 example: 2Number of articles saved successfullynumberOfFailinteger (int32) format: int32 example: 2Number of articles saved unsuccessfullysuccessarray of ArticleA list of saved articlesshow fields
Array of
Article.idstring read-only example: 1Id of the article. Does not need to be included when creating articlenameDEstring requiredName of the article in GermannameENstringName of the article in EnglishnameFRstringName of the article in FrenchnameITstringName of the article in ItaliandescriptionDEstringDescription of the article in GermandescriptionENstringDescription of the article in EnglishdescriptionFRstringDescription of the article in FrenchdescriptionITstringDescription of the article in ItalianextendedDescriptionDEstringExtended description of the article in GermanextendedDescriptionENstringExtended description of the article in EnglishextendedDescriptionFRstringExtended description of the article in FrenchextendedDescriptionITstringExtended description of the article in ItalianunitDEstring requiredUnit of the article in GermanunitENstringUnit of the article in EnglishunitFRstringUnit of the article in FrenchunitITstringUnit of the article in ItalianbarcodestringBarcode of the articleusePosbooleanDecides if this article is used for POS or notpricePeriodsarray of PricePeriodPrice periods for the article.
If article only has single price period, ignore and don't include validFrom and validTo in the PricePeriod.
If article have different prices valid for different periods, set value for validFrom for each price period or that price period is ignored.show fields
Array of
PricePeriod.validFromstring (date) format: dateThe price period is valid from this timevalidTostring (date) format: date read-onlyThe price period is invalid after this timepricenumber pattern: ^\d{1,19}([.]\d{1,2})?$The price used for an article within this price periodpriceCategoriesarray of PriceCategoryList of price categories effective for this price periodshow fields
Array of
PriceCategory.namestringName of the price categorypricenumber pattern: ^\d{1,19}([.]\d{1,2})?$Effective price of this price category
optionsarray of ArticleOptionOptions for the article. If specify, variants for this article will be generated.show fields
Array of
ArticleOption.namestring example: colorName of the article optionvaluesarray of stringAvailable choices for the article option
imageHrefsarray of string read-onlyReference uris for the images of this article if present.isArticleSetbooleanDecides if this article is an article setarticleSetNamestringName of the article set. Does not need to be included if article is not an article set.defaultQuantitynumber pattern: ^\d{1,19}([.]\d{1,2})?$The default quantity of the articleaccountingTagsarray of string requiredTags used for accounting. Articles with the same tag, same VAT case and same VAT rate are grouped together in the postingarticleNumberstring required example: ABC123Article numberhasVariantbooleanSpecify if the article has variants or notincludedInArticleSetsarray of stringNames of the article sets that the article is included in.
If the article have some variants, then only the variants will show the article set name they belong to, not the parent article (null value is shown).sellInOnlineShopbooleanSpecify if the article is able to be sold on the Online shop or notisAdultArticlebooleanSpecify if the article is only used for adult or notproductTypeobject requiredType of product used for an articleposCategoriesarray of ArticleCategoryRefCategories used for Point of Sale of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
posFiltersarray of ArticleFilterRefFilters used for Point of Sale of the article
Provide only either id or href of each filter when creating Articleshow fields
Array of
ArticleFilterRef.idstring read-only example: 1Id of the filter. Does not need to be included when creating article.filter_hrefstring required write-only example: https://api.klara.ch/core/latest/article-filters/1Reference uri for an article filter. If specified, this article will be assigned to the entered article filter.nameDEstring read-only example: shopName of the filter in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the filter in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the filter in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the filter in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this filter.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the filter is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
onlineShopCategoriesarray of ArticleCategoryRefCategories used for Online shop of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
onlineShopFiltersarray of ArticleFilterRefFilters used for Online shop of the article
Provide only either id or href of each filter when creating Articleshow fields
Array of
ArticleFilterRef.idstring read-only example: 1Id of the filter. Does not need to be included when creating article.filter_hrefstring required write-only example: https://api.klara.ch/core/latest/article-filters/1Reference uri for an article filter. If specified, this article will be assigned to the entered article filter.nameDEstring read-only example: shopName of the filter in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the filter in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the filter in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the filter in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this filter.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the filter is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
bookingCategoriesarray of ArticleCategoryRefCategories used for Online Booking of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
searchTagsarray of stringSearch tags make it easier for your customer to find your product in the online shopshippingInfoobjectshipping information for an article.show fields
shippingAttributesarray of stringList of attributes used for shippingweightUnitstringWeight unit used for shipping of the articleAllowed values:GRAM,KILOGRAMdimensionUnitstringDimension unit used for shipping of the articleAllowed values:CENTIMETER,METERweightnumber pattern: ^\d{1,19}([.]\d{1,2})?$Weight of this articlewidthnumber pattern: ^\d{1,19}([.]\d{1,2})?$Width of this articleheightnumber pattern: ^\d{1,19}([.]\d{1,2})?$Height of this articledepthnumber pattern: ^\d{1,19}([.]\d{1,2})?$Depth of this article
_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
vatsarray of ArticleVatVAT information for the articleshow fields
Array of
ArticleVat.vatTypeobject example: NORMALArticle vat type of the articlevatCasestring example: TAXABLE_SUPPLYVAT case of the articlevatCodestring example: 1VAT code of the article VATsss1boolean example: FalseReporting net tax rate with SSS1 optionsss2boolean example: FalseReporting net tax rate with SSS2 optionreportingNetTaxRateboolean example: FalseUsing VAT reporting net tax rate optionexcludeVatboolean example: FalseUsing exclude VAT option
numberTypeobjectInventory Number Type
Use either NO_NUMBER or SERIAL_NUMBER
failarray of PublicApiFailArticleA list of unsaved articles with error messageshow fields
Array of
PublicApiFailArticle.errorCodestring example: article.number.could.not.be.duplicatedError codeerrorMessagestring example: Article number could not be duplicatedError messageunsavedArticleobjectAn article.show fields
idstring read-only example: 1Id of the article. Does not need to be included when creating articlenameDEstring requiredName of the article in GermannameENstringName of the article in EnglishnameFRstringName of the article in FrenchnameITstringName of the article in ItaliandescriptionDEstringDescription of the article in GermandescriptionENstringDescription of the article in EnglishdescriptionFRstringDescription of the article in FrenchdescriptionITstringDescription of the article in ItalianextendedDescriptionDEstringExtended description of the article in GermanextendedDescriptionENstringExtended description of the article in EnglishextendedDescriptionFRstringExtended description of the article in FrenchextendedDescriptionITstringExtended description of the article in ItalianunitDEstring requiredUnit of the article in GermanunitENstringUnit of the article in EnglishunitFRstringUnit of the article in FrenchunitITstringUnit of the article in ItalianbarcodestringBarcode of the articleusePosbooleanDecides if this article is used for POS or notpricePeriodsarray of PricePeriodPrice periods for the article.
If article only has single price period, ignore and don't include validFrom and validTo in the PricePeriod.
If article have different prices valid for different periods, set value for validFrom for each price period or that price period is ignored.show fields
Array of
PricePeriod.validFromstring (date) format: dateThe price period is valid from this timevalidTostring (date) format: date read-onlyThe price period is invalid after this timepricenumber pattern: ^\d{1,19}([.]\d{1,2})?$The price used for an article within this price periodpriceCategoriesarray of PriceCategoryList of price categories effective for this price periodshow fields
Array of
PriceCategory.namestringName of the price categorypricenumber pattern: ^\d{1,19}([.]\d{1,2})?$Effective price of this price category
optionsarray of ArticleOptionOptions for the article. If specify, variants for this article will be generated.show fields
Array of
ArticleOption.namestring example: colorName of the article optionvaluesarray of stringAvailable choices for the article option
imageHrefsarray of string read-onlyReference uris for the images of this article if present.isArticleSetbooleanDecides if this article is an article setarticleSetNamestringName of the article set. Does not need to be included if article is not an article set.defaultQuantitynumber pattern: ^\d{1,19}([.]\d{1,2})?$The default quantity of the articleaccountingTagsarray of string requiredTags used for accounting. Articles with the same tag, same VAT case and same VAT rate are grouped together in the postingarticleNumberstring required example: ABC123Article numberhasVariantbooleanSpecify if the article has variants or notincludedInArticleSetsarray of stringNames of the article sets that the article is included in.
If the article have some variants, then only the variants will show the article set name they belong to, not the parent article (null value is shown).sellInOnlineShopbooleanSpecify if the article is able to be sold on the Online shop or notisAdultArticlebooleanSpecify if the article is only used for adult or notproductTypeobject requiredType of product used for an articleposCategoriesarray of ArticleCategoryRefCategories used for Point of Sale of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
posFiltersarray of ArticleFilterRefFilters used for Point of Sale of the article
Provide only either id or href of each filter when creating Articleshow fields
Array of
ArticleFilterRef.idstring read-only example: 1Id of the filter. Does not need to be included when creating article.filter_hrefstring required write-only example: https://api.klara.ch/core/latest/article-filters/1Reference uri for an article filter. If specified, this article will be assigned to the entered article filter.nameDEstring read-only example: shopName of the filter in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the filter in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the filter in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the filter in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this filter.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the filter is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
onlineShopCategoriesarray of ArticleCategoryRefCategories used for Online shop of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
onlineShopFiltersarray of ArticleFilterRefFilters used for Online shop of the article
Provide only either id or href of each filter when creating Articleshow fields
Array of
ArticleFilterRef.idstring read-only example: 1Id of the filter. Does not need to be included when creating article.filter_hrefstring required write-only example: https://api.klara.ch/core/latest/article-filters/1Reference uri for an article filter. If specified, this article will be assigned to the entered article filter.nameDEstring read-only example: shopName of the filter in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the filter in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the filter in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the filter in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this filter.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the filter is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
bookingCategoriesarray of ArticleCategoryRefCategories used for Online Booking of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
searchTagsarray of stringSearch tags make it easier for your customer to find your product in the online shopshippingInfoobjectshipping information for an article.show fields
shippingAttributesarray of stringList of attributes used for shippingweightUnitstringWeight unit used for shipping of the articleAllowed values:GRAM,KILOGRAMdimensionUnitstringDimension unit used for shipping of the articleAllowed values:CENTIMETER,METERweightnumber pattern: ^\d{1,19}([.]\d{1,2})?$Weight of this articlewidthnumber pattern: ^\d{1,19}([.]\d{1,2})?$Width of this articleheightnumber pattern: ^\d{1,19}([.]\d{1,2})?$Height of this articledepthnumber pattern: ^\d{1,19}([.]\d{1,2})?$Depth of this article
_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
vatsarray of ArticleVatVAT information for the articleshow fields
Array of
ArticleVat.vatTypeobject example: NORMALArticle vat type of the articlevatCasestring example: TAXABLE_SUPPLYVAT case of the articlevatCodestring example: 1VAT code of the article VATsss1boolean example: FalseReporting net tax rate with SSS1 optionsss2boolean example: FalseReporting net tax rate with SSS2 optionreportingNetTaxRateboolean example: FalseUsing VAT reporting net tax rate optionexcludeVatboolean example: FalseUsing exclude VAT option
numberTypeobjectInventory Number Type
Use either NO_NUMBER or SERIAL_NUMBER
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/latest/articles/searchkey / tokenSearch articles by keyword
Parameters 6
| Name | Description |
|---|---|
export-vat | If `true`, return ABROAD (export) VAT rate; otherwise NORMAL. |
keyword | Free-text search keyword. Trimmed; empty/missing returns the first page unfiltered. |
limit | Page size (1–100). |
offset | 0-based pagination offset. |
price-date | Date on which prices are evaluated. Format: yyyy-MM-dd. Defaults to today when omitted. |
should-validate-vat | If `true`, cross-validate each row's VAT code against the company's VAT setup on `price-date`. |
Responses 6
200 Matching articles show body
application/json array of ArticleAndVariant
Array of ArticleAndVariant.
idstring example: 1Id of the articlenamestringName of the articledescriptionstringDescription for the articleextendedDescriptionstringThis description will be used for example in your online shopunitstringDefine how the article is count bybarcodestringBarcode of the articledefaultQuantitynumberThe default quantity of the articleaccountingTagsarray of stringTags used for accounting. Articles with the same tag, same VAT case and same VAT rate are grouped together in the postingarticleNumberstring example: ABC123Number of the articleproductTypeobjectType of product used for an articlepriceCategoriesarray of ArticlePriceCategoryPrice categories of the articleshow fields
Array of
ArticlePriceCategory.namestringpriceIncludeVatnumberpriceExcludeVatnumber
vatRatenumberVat rate of the articlearticleTypeobjectArticle typepriceIncludeVatnumberprice include vatpriceExcludeVatnumberprice exclude vathasInventorybooleanThis article has inventory or notquantityInStocknumberQuantity in stockoptionValuesarray of stringVariant option of this articleableToOrderOutOfStockbooleanFlag define the article is allow to order out of stock
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
DELETE/core/latest/articles/{article-id}key / tokenDelete an article
Parameters 1
| Name | Description |
|---|---|
article-id required | Id of the article to be deleted |
Responses 7
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
404 Resource not found show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/latest/articles/{article-id}key / tokenGet article by article id
Parameters 1
| Name | Description |
|---|---|
article-id required |
Responses 5
200 Found article show body
application/json Article
idstring read-only example: 1Id of the article. Does not need to be included when creating articlenameDEstring requiredName of the article in GermannameENstringName of the article in EnglishnameFRstringName of the article in FrenchnameITstringName of the article in ItaliandescriptionDEstringDescription of the article in GermandescriptionENstringDescription of the article in EnglishdescriptionFRstringDescription of the article in FrenchdescriptionITstringDescription of the article in ItalianextendedDescriptionDEstringExtended description of the article in GermanextendedDescriptionENstringExtended description of the article in EnglishextendedDescriptionFRstringExtended description of the article in FrenchextendedDescriptionITstringExtended description of the article in ItalianunitDEstring requiredUnit of the article in GermanunitENstringUnit of the article in EnglishunitFRstringUnit of the article in FrenchunitITstringUnit of the article in ItalianbarcodestringBarcode of the articleusePosbooleanDecides if this article is used for POS or notpricePeriodsarray of PricePeriodPrice periods for the article.
If article only has single price period, ignore and don't include validFrom and validTo in the PricePeriod.
If article have different prices valid for different periods, set value for validFrom for each price period or that price period is ignored.show fields
Array of
PricePeriod.validFromstring (date) format: dateThe price period is valid from this timevalidTostring (date) format: date read-onlyThe price period is invalid after this timepricenumber pattern: ^\d{1,19}([.]\d{1,2})?$The price used for an article within this price periodpriceCategoriesarray of PriceCategoryList of price categories effective for this price periodshow fields
Array of
PriceCategory.namestringName of the price categorypricenumber pattern: ^\d{1,19}([.]\d{1,2})?$Effective price of this price category
optionsarray of ArticleOptionOptions for the article. If specify, variants for this article will be generated.show fields
Array of
ArticleOption.namestring example: colorName of the article optionvaluesarray of stringAvailable choices for the article option
imageHrefsarray of string read-onlyReference uris for the images of this article if present.isArticleSetbooleanDecides if this article is an article setarticleSetNamestringName of the article set. Does not need to be included if article is not an article set.defaultQuantitynumber pattern: ^\d{1,19}([.]\d{1,2})?$The default quantity of the articleaccountingTagsarray of string requiredTags used for accounting. Articles with the same tag, same VAT case and same VAT rate are grouped together in the postingarticleNumberstring required example: ABC123Article numberhasVariantbooleanSpecify if the article has variants or notincludedInArticleSetsarray of stringNames of the article sets that the article is included in.
If the article have some variants, then only the variants will show the article set name they belong to, not the parent article (null value is shown).sellInOnlineShopbooleanSpecify if the article is able to be sold on the Online shop or notisAdultArticlebooleanSpecify if the article is only used for adult or notproductTypeobject requiredType of product used for an articleposCategoriesarray of ArticleCategoryRefCategories used for Point of Sale of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
posFiltersarray of ArticleFilterRefFilters used for Point of Sale of the article
Provide only either id or href of each filter when creating Articleshow fields
Array of
ArticleFilterRef.idstring read-only example: 1Id of the filter. Does not need to be included when creating article.filter_hrefstring required write-only example: https://api.klara.ch/core/latest/article-filters/1Reference uri for an article filter. If specified, this article will be assigned to the entered article filter.nameDEstring read-only example: shopName of the filter in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the filter in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the filter in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the filter in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this filter.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the filter is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
onlineShopCategoriesarray of ArticleCategoryRefCategories used for Online shop of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
onlineShopFiltersarray of ArticleFilterRefFilters used for Online shop of the article
Provide only either id or href of each filter when creating Articleshow fields
Array of
ArticleFilterRef.idstring read-only example: 1Id of the filter. Does not need to be included when creating article.filter_hrefstring required write-only example: https://api.klara.ch/core/latest/article-filters/1Reference uri for an article filter. If specified, this article will be assigned to the entered article filter.nameDEstring read-only example: shopName of the filter in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the filter in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the filter in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the filter in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this filter.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the filter is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
bookingCategoriesarray of ArticleCategoryRefCategories used for Online Booking of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
searchTagsarray of stringSearch tags make it easier for your customer to find your product in the online shopshippingInfoobjectshipping information for an article.show fields
shippingAttributesarray of stringList of attributes used for shippingweightUnitstringWeight unit used for shipping of the articleAllowed values:GRAM,KILOGRAMdimensionUnitstringDimension unit used for shipping of the articleAllowed values:CENTIMETER,METERweightnumber pattern: ^\d{1,19}([.]\d{1,2})?$Weight of this articlewidthnumber pattern: ^\d{1,19}([.]\d{1,2})?$Width of this articleheightnumber pattern: ^\d{1,19}([.]\d{1,2})?$Height of this articledepthnumber pattern: ^\d{1,19}([.]\d{1,2})?$Depth of this article
_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
vatsarray of ArticleVatVAT information for the articleshow fields
Array of
ArticleVat.vatTypeobject example: NORMALArticle vat type of the articlevatCasestring example: TAXABLE_SUPPLYVAT case of the articlevatCodestring example: 1VAT code of the article VATsss1boolean example: FalseReporting net tax rate with SSS1 optionsss2boolean example: FalseReporting net tax rate with SSS2 optionreportingNetTaxRateboolean example: FalseUsing VAT reporting net tax rate optionexcludeVatboolean example: FalseUsing exclude VAT option
numberTypeobjectInventory Number Type
Use either NO_NUMBER or SERIAL_NUMBER
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
404 Resource not found show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
PUT/core/latest/articles/{article-id}key / tokenUpdate an existing article
Parameters 1
| Name | Description |
|---|---|
article-id required |
Request body required
application/json Article
idstring read-only example: 1Id of the article. Does not need to be included when creating articlenameDEstring requiredName of the article in GermannameENstringName of the article in EnglishnameFRstringName of the article in FrenchnameITstringName of the article in ItaliandescriptionDEstringDescription of the article in GermandescriptionENstringDescription of the article in EnglishdescriptionFRstringDescription of the article in FrenchdescriptionITstringDescription of the article in ItalianextendedDescriptionDEstringExtended description of the article in GermanextendedDescriptionENstringExtended description of the article in EnglishextendedDescriptionFRstringExtended description of the article in FrenchextendedDescriptionITstringExtended description of the article in ItalianunitDEstring requiredUnit of the article in GermanunitENstringUnit of the article in EnglishunitFRstringUnit of the article in FrenchunitITstringUnit of the article in ItalianbarcodestringBarcode of the articleusePosbooleanDecides if this article is used for POS or notpricePeriodsarray of PricePeriodPrice periods for the article.
If article only has single price period, ignore and don't include validFrom and validTo in the PricePeriod.
If article have different prices valid for different periods, set value for validFrom for each price period or that price period is ignored.show fields
Array of
PricePeriod.validFromstring (date) format: dateThe price period is valid from this timevalidTostring (date) format: date read-onlyThe price period is invalid after this timepricenumber pattern: ^\d{1,19}([.]\d{1,2})?$The price used for an article within this price periodpriceCategoriesarray of PriceCategoryList of price categories effective for this price periodshow fields
Array of
PriceCategory.namestringName of the price categorypricenumber pattern: ^\d{1,19}([.]\d{1,2})?$Effective price of this price category
optionsarray of ArticleOptionOptions for the article. If specify, variants for this article will be generated.show fields
Array of
ArticleOption.namestring example: colorName of the article optionvaluesarray of stringAvailable choices for the article option
imageHrefsarray of string read-onlyReference uris for the images of this article if present.isArticleSetbooleanDecides if this article is an article setarticleSetNamestringName of the article set. Does not need to be included if article is not an article set.defaultQuantitynumber pattern: ^\d{1,19}([.]\d{1,2})?$The default quantity of the articleaccountingTagsarray of string requiredTags used for accounting. Articles with the same tag, same VAT case and same VAT rate are grouped together in the postingarticleNumberstring required example: ABC123Article numberhasVariantbooleanSpecify if the article has variants or notincludedInArticleSetsarray of stringNames of the article sets that the article is included in.
If the article have some variants, then only the variants will show the article set name they belong to, not the parent article (null value is shown).sellInOnlineShopbooleanSpecify if the article is able to be sold on the Online shop or notisAdultArticlebooleanSpecify if the article is only used for adult or notproductTypeobject requiredType of product used for an articleposCategoriesarray of ArticleCategoryRefCategories used for Point of Sale of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
posFiltersarray of ArticleFilterRefFilters used for Point of Sale of the article
Provide only either id or href of each filter when creating Articleshow fields
Array of
ArticleFilterRef.idstring read-only example: 1Id of the filter. Does not need to be included when creating article.filter_hrefstring required write-only example: https://api.klara.ch/core/latest/article-filters/1Reference uri for an article filter. If specified, this article will be assigned to the entered article filter.nameDEstring read-only example: shopName of the filter in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the filter in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the filter in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the filter in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this filter.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the filter is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
onlineShopCategoriesarray of ArticleCategoryRefCategories used for Online shop of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
onlineShopFiltersarray of ArticleFilterRefFilters used for Online shop of the article
Provide only either id or href of each filter when creating Articleshow fields
Array of
ArticleFilterRef.idstring read-only example: 1Id of the filter. Does not need to be included when creating article.filter_hrefstring required write-only example: https://api.klara.ch/core/latest/article-filters/1Reference uri for an article filter. If specified, this article will be assigned to the entered article filter.nameDEstring read-only example: shopName of the filter in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the filter in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the filter in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the filter in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this filter.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the filter is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
bookingCategoriesarray of ArticleCategoryRefCategories used for Online Booking of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
searchTagsarray of stringSearch tags make it easier for your customer to find your product in the online shopshippingInfoobjectshipping information for an article.show fields
shippingAttributesarray of stringList of attributes used for shippingweightUnitstringWeight unit used for shipping of the articleAllowed values:GRAM,KILOGRAMdimensionUnitstringDimension unit used for shipping of the articleAllowed values:CENTIMETER,METERweightnumber pattern: ^\d{1,19}([.]\d{1,2})?$Weight of this articlewidthnumber pattern: ^\d{1,19}([.]\d{1,2})?$Width of this articleheightnumber pattern: ^\d{1,19}([.]\d{1,2})?$Height of this articledepthnumber pattern: ^\d{1,19}([.]\d{1,2})?$Depth of this article
_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
vatsarray of ArticleVatVAT information for the articleshow fields
Array of
ArticleVat.vatTypeobject example: NORMALArticle vat type of the articlevatCasestring example: TAXABLE_SUPPLYVAT case of the articlevatCodestring example: 1VAT code of the article VATsss1boolean example: FalseReporting net tax rate with SSS1 optionsss2boolean example: FalseReporting net tax rate with SSS2 optionreportingNetTaxRateboolean example: FalseUsing VAT reporting net tax rate optionexcludeVatboolean example: FalseUsing exclude VAT option
numberTypeobjectInventory Number Type
Use either NO_NUMBER or SERIAL_NUMBER
Responses 5
200 Article updated show body
application/json Article
idstring read-only example: 1Id of the article. Does not need to be included when creating articlenameDEstring requiredName of the article in GermannameENstringName of the article in EnglishnameFRstringName of the article in FrenchnameITstringName of the article in ItaliandescriptionDEstringDescription of the article in GermandescriptionENstringDescription of the article in EnglishdescriptionFRstringDescription of the article in FrenchdescriptionITstringDescription of the article in ItalianextendedDescriptionDEstringExtended description of the article in GermanextendedDescriptionENstringExtended description of the article in EnglishextendedDescriptionFRstringExtended description of the article in FrenchextendedDescriptionITstringExtended description of the article in ItalianunitDEstring requiredUnit of the article in GermanunitENstringUnit of the article in EnglishunitFRstringUnit of the article in FrenchunitITstringUnit of the article in ItalianbarcodestringBarcode of the articleusePosbooleanDecides if this article is used for POS or notpricePeriodsarray of PricePeriodPrice periods for the article.
If article only has single price period, ignore and don't include validFrom and validTo in the PricePeriod.
If article have different prices valid for different periods, set value for validFrom for each price period or that price period is ignored.show fields
Array of
PricePeriod.validFromstring (date) format: dateThe price period is valid from this timevalidTostring (date) format: date read-onlyThe price period is invalid after this timepricenumber pattern: ^\d{1,19}([.]\d{1,2})?$The price used for an article within this price periodpriceCategoriesarray of PriceCategoryList of price categories effective for this price periodshow fields
Array of
PriceCategory.namestringName of the price categorypricenumber pattern: ^\d{1,19}([.]\d{1,2})?$Effective price of this price category
optionsarray of ArticleOptionOptions for the article. If specify, variants for this article will be generated.show fields
Array of
ArticleOption.namestring example: colorName of the article optionvaluesarray of stringAvailable choices for the article option
imageHrefsarray of string read-onlyReference uris for the images of this article if present.isArticleSetbooleanDecides if this article is an article setarticleSetNamestringName of the article set. Does not need to be included if article is not an article set.defaultQuantitynumber pattern: ^\d{1,19}([.]\d{1,2})?$The default quantity of the articleaccountingTagsarray of string requiredTags used for accounting. Articles with the same tag, same VAT case and same VAT rate are grouped together in the postingarticleNumberstring required example: ABC123Article numberhasVariantbooleanSpecify if the article has variants or notincludedInArticleSetsarray of stringNames of the article sets that the article is included in.
If the article have some variants, then only the variants will show the article set name they belong to, not the parent article (null value is shown).sellInOnlineShopbooleanSpecify if the article is able to be sold on the Online shop or notisAdultArticlebooleanSpecify if the article is only used for adult or notproductTypeobject requiredType of product used for an articleposCategoriesarray of ArticleCategoryRefCategories used for Point of Sale of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
posFiltersarray of ArticleFilterRefFilters used for Point of Sale of the article
Provide only either id or href of each filter when creating Articleshow fields
Array of
ArticleFilterRef.idstring read-only example: 1Id of the filter. Does not need to be included when creating article.filter_hrefstring required write-only example: https://api.klara.ch/core/latest/article-filters/1Reference uri for an article filter. If specified, this article will be assigned to the entered article filter.nameDEstring read-only example: shopName of the filter in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the filter in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the filter in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the filter in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this filter.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the filter is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
onlineShopCategoriesarray of ArticleCategoryRefCategories used for Online shop of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
onlineShopFiltersarray of ArticleFilterRefFilters used for Online shop of the article
Provide only either id or href of each filter when creating Articleshow fields
Array of
ArticleFilterRef.idstring read-only example: 1Id of the filter. Does not need to be included when creating article.filter_hrefstring required write-only example: https://api.klara.ch/core/latest/article-filters/1Reference uri for an article filter. If specified, this article will be assigned to the entered article filter.nameDEstring read-only example: shopName of the filter in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the filter in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the filter in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the filter in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this filter.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the filter is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
bookingCategoriesarray of ArticleCategoryRefCategories used for Online Booking of the article
Provide only either id or href of each category when creating Articleshow fields
Array of
ArticleCategoryRef.idstring read-only example: 1Id of the category. Does not need to be included when creating articlecategory_hrefstring required write-only example: https://api.klara.ch/core/latest/article-categories/1Reference uri for an article category. If specified, this article will be assigned to the entered article category.nameDEstring read-only example: shopName of the category in german.
Does not need to be included when creating article.nameENstring read-only example: shopName of the category in english.
Does not need to be included when creating article.nameFRstring read-only example: shopName of the category in french.
Does not need to be included when creating article.nameITstring read-only example: shopName of the category in italy.
Does not need to be included when creating article.orderinteger (int32) format: int32 read-onlyOrder of this category.
Does not need to be included when creating article.activeboolean read-onlyIndicates if the category is active or not_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
searchTagsarray of stringSearch tags make it easier for your customer to find your product in the online shopshippingInfoobjectshipping information for an article.show fields
shippingAttributesarray of stringList of attributes used for shippingweightUnitstringWeight unit used for shipping of the articleAllowed values:GRAM,KILOGRAMdimensionUnitstringDimension unit used for shipping of the articleAllowed values:CENTIMETER,METERweightnumber pattern: ^\d{1,19}([.]\d{1,2})?$Weight of this articlewidthnumber pattern: ^\d{1,19}([.]\d{1,2})?$Width of this articleheightnumber pattern: ^\d{1,19}([.]\d{1,2})?$Height of this articledepthnumber pattern: ^\d{1,19}([.]\d{1,2})?$Depth of this article
_linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
vatsarray of ArticleVatVAT information for the articleshow fields
Array of
ArticleVat.vatTypeobject example: NORMALArticle vat type of the articlevatCasestring example: TAXABLE_SUPPLYVAT case of the articlevatCodestring example: 1VAT code of the article VATsss1boolean example: FalseReporting net tax rate with SSS1 optionsss2boolean example: FalseReporting net tax rate with SSS2 optionreportingNetTaxRateboolean example: FalseUsing VAT reporting net tax rate optionexcludeVatboolean example: FalseUsing exclude VAT option
numberTypeobjectInventory Number Type
Use either NO_NUMBER or SERIAL_NUMBER
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/latest/articles/{article-id}/article-set-itemskey / tokenGet list of items from article set
Parameters 1
| Name | Description |
|---|---|
article-id required |
Responses 5
200 Return successfully show body
application/json array of PublicApiArticleSetItem
Array of PublicApiArticleSetItem.
idstring example: 1Id of the article setarticleNamestring example: Mobile phoneArticle name of the articlenumberstring example: 1The number of the articleproductTypeobject example: PRODUCTIONType of product used for an articlepricenumberPrice of the articlevatobjectVat of the articleshow fields
vatTypeobject example: NORMALArticle vat type of the articlevatCasestring example: TAXABLE_SUPPLYVAT case of the articlevatCodestring example: 1VAT code of the article VATsss1boolean example: FalseReporting net tax rate with SSS1 optionsss2boolean example: FalseReporting net tax rate with SSS2 optionreportingNetTaxRateboolean example: FalseUsing VAT reporting net tax rate optionexcludeVatboolean example: FalseUsing exclude VAT option
optionValuesarray of stringOptions for the set item if it is a varianthrefstring example: https://api.klara.ch/core/latest/articles/1Reference resource link
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
404 Resource not found show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
POST/core/latest/articles/{article-id}/imageskey / tokenAdd an image to an article
Supported image type: PNG, JPG, JPEG
Parameters 1
| Name | Description |
|---|---|
article-id required | Id of the article to add an image to |
Request body required
multipart/form-data BinaryFile
filestring (binary) format: binary
Responses 7
201 Image added for article show body
application/json ArticleImage
imageIdstring
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
DELETE/core/latest/articles/{article-id}/images/{image-id}key / tokenDelete an article image
Parameters 2
| Name | Description |
|---|---|
article-id required | Id of the article to delete an image from |
image-id required | Id of the image to delete |
Responses 7
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
404 The image of the article or the article itself could not be found. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/latest/articles/{article-id}/images/{image-id}key / tokenGet the content of an article image
Parameters 2
| Name | Description |
|---|---|
article-id required | Id of the article to get an image from |
image-id required | Id of the image to get the content from |
Responses 6
200 Content of an article image show body
application/octet-stream any
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
404 The image of the article or the article itself could not be found. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
PUT/core/latest/articles/{article-id}/images/{image-id}key / tokenUpdate an article image
Supported image type: PNG, JPG, JPEG
Parameters 2
| Name | Description |
|---|---|
article-id required | Id of the article to update an image |
image-id required | Id of the image to update |
Request body required
multipart/form-data BinaryFile
filestring (binary) format: binary
Responses 8
200 Image updated for article show body
application/json ArticleImage
imageIdstring
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
404 The image of the article or the article itself could not be found. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/latest/articles/{article-id}/variantskey / tokenGet variants of an article
Parameters 1
| Name | Description |
|---|---|
article-id required |
Responses 5
200 Found variants show body
application/json array of Variant
Array of Variant.
idstring example: 1Id of the variantnumberstring required example: ABC123Article numberbarcodestring default:Barcode for the variantaccountingTagsarray of string requiredTags used for accounting. Articles with the same tag, same VAT case and same VAT rate are grouped together in the postingarticleSetsarray of stringName of the article sets that the variant is included indefaultQuantitynumberThe default quantity of the articleactiveboolean default: falseDecide if this variant is active or notpricePeriodsarray of PricePeriodPrice periods for the article variant.
If variant only has 1 price, don't include validFrom and validTo in the PricePeriod.
If variant have many prices, set value for validFrom for the date that the price is active for each PricePeriod.show fields
Array of
PricePeriod.validFromstring (date) format: dateThe price period is valid from this timevalidTostring (date) format: date read-onlyThe price period is invalid after this timepricenumber pattern: ^\d{1,19}([.]\d{1,2})?$The price used for an article within this price periodpriceCategoriesarray of PriceCategoryList of price categories effective for this price periodshow fields
Array of
PriceCategory.namestringName of the price categorypricenumber pattern: ^\d{1,19}([.]\d{1,2})?$Effective price of this price category
variantOptionValuesarray of stringValues for the options that this article variant represent
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
404 Resource not found show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/latest/articles/{article-id}/variants/{variant-id}key / tokenGet variants of an article with id
Parameters 2
| Name | Description |
|---|---|
article-id required | |
variant-id required |
Responses 5
200 Found article variant show body
application/json Variant
idstring example: 1Id of the variantnumberstring required example: ABC123Article numberbarcodestring default:Barcode for the variantaccountingTagsarray of string requiredTags used for accounting. Articles with the same tag, same VAT case and same VAT rate are grouped together in the postingarticleSetsarray of stringName of the article sets that the variant is included indefaultQuantitynumberThe default quantity of the articleactiveboolean default: falseDecide if this variant is active or notpricePeriodsarray of PricePeriodPrice periods for the article variant.
If variant only has 1 price, don't include validFrom and validTo in the PricePeriod.
If variant have many prices, set value for validFrom for the date that the price is active for each PricePeriod.show fields
Array of
PricePeriod.validFromstring (date) format: dateThe price period is valid from this timevalidTostring (date) format: date read-onlyThe price period is invalid after this timepricenumber pattern: ^\d{1,19}([.]\d{1,2})?$The price used for an article within this price periodpriceCategoriesarray of PriceCategoryList of price categories effective for this price periodshow fields
Array of
PriceCategory.namestringName of the price categorypricenumber pattern: ^\d{1,19}([.]\d{1,2})?$Effective price of this price category
variantOptionValuesarray of stringValues for the options that this article variant represent
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
404 Resource not found show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
Customer14
GET/core/latest/customerskey / tokenReturns all customers of a company
Responses 4
200 Customers show body
application/json array of Customer
Array of Customer.
idstring read-only example: 1Id of this Customer. Does not need to be included when creating customerpersonobjectA partner person.show fields
websitestring example: www.my-company.comThe website address of this customercategoriesarray of stringAdd one or more categories to this customer that you can use as filter criteria for selecting partnersonlinePlatformsarray of OnlinePlatformThe list of online platforms that this customer usesshow fields
Array of
OnlinePlatform.idstring read-only example: 1Id of this Online platform. Does not need to be included when creating Customer.platformNameobject example: FACEBOOKName of the platform that this customer usesplatformValuestring example: www.linkedin.com/abcUrl of customer's online platform/webpage
languagestring example: enThe main language that this partner uses, valid values is [en, de, fr, it]responsibleCounterpartstring example: Mr. MarcThe name of a contact person for this customercorrespondenceobject required example: MAILThe preferred method of correspondence, how this customer wants to receive the pay slips by defaultidstring example: 1Id of this person. Does not need to be included when creating customersalutationobject required example: MALESalutation for this person, valid values is: [MALE, FEMALE, MALE_FEMALE, FAMILY]firstNamestring required pattern: \S example: JohnFirst name of this personlastNamestring required pattern: \S example: HenryLast name of this personbirthdaystring (date) format: date example: 2020-01-20Birth date of this person in ISO 8601 format (yyyy-MM-dd)addressesarray of AddressAddress list of this personshow fields
Array of
Address.idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
phonesarray of PhonePhone number list of this personshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
emailsarray of EmailEmail list of this personshow fields
Array of
Email.idstring example: 1Id of this Email. Does not need to be included when creating customeremailAddressstring example: example@gmail.comEmail addresstypeobject required example: PRIVATEType of this email
personNumberstringThis is a number the KLARA user can give to this customer/partner/supplier
companyobjectA company.show fields
websitestring example: www.my-company.comThe website address of this customercategoriesarray of stringAdd one or more categories to this customer that you can use as filter criteria for selecting partnersonlinePlatformsarray of OnlinePlatformThe list of online platforms that this customer usesshow fields
Array of
OnlinePlatform.idstring read-only example: 1Id of this Online platform. Does not need to be included when creating Customer.platformNameobject example: FACEBOOKName of the platform that this customer usesplatformValuestring example: www.linkedin.com/abcUrl of customer's online platform/webpage
languagestring example: enThe main language that this partner uses, valid values is [en, de, fr, it]responsibleCounterpartstring example: Mr. MarcThe name of a contact person for this customercorrespondenceobject required example: MAILThe preferred method of correspondence, how this customer wants to receive the pay slips by defaultidstring read-only example: 1Id of this company. Does not need to be included when creating customernamestring required pattern: \S example: ABC-CorpName of the companyphonesarray of PhonePhone numbers of the companyshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
emailsarray of EmailEmails of this companyshow fields
Array of
Email.idstring example: 1Id of this Email. Does not need to be included when creating customeremailAddressstring example: example@gmail.comEmail addresstypeobject required example: PRIVATEType of this email
addressesarray of AddressAddress list of this company, atleast one should be addshow fields
Array of
Address.idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
corporateIdentificationNumberstring example: CHE-123.456.789Every business active in Switzerland is given a unique enterprise identification number (UID). To ensure that numbers are correctly allocated and managed, the UID register is run by the Federal Statistical OfficevatNumberstring example: CHE-123.456.789This is the official CH VAT number of the companyhrNumberstring example: CHE-123.456.789This is the official CH number for this company in the CH trade registernogaCodestring example: 1234The NOGA code of this companyfoundingDatestring (date) format: date example: 2019-12-20Founding date of this comany in ISO 8601 format (yyyy-mm-dd)companyNumberstringThis is a number the KLARA user can give to this customer/partner/supplier
priceCategorystring example: Sale priceYou can select / enter a price category. On the articles you can define a special price for this price category. When such an article is sold / invoiced, the price of this category will apply if it is identical for the article and the customer.customerTypeobject required example: PERSONThe type of this partner. Could be either Person or Company._linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
POST/core/latest/customerskey / tokenCreate a new customer
Request body required
application/json Customer
idstring read-only example: 1Id of this Customer. Does not need to be included when creating customerpersonobjectA partner person.show fields
websitestring example: www.my-company.comThe website address of this customercategoriesarray of stringAdd one or more categories to this customer that you can use as filter criteria for selecting partnersonlinePlatformsarray of OnlinePlatformThe list of online platforms that this customer usesshow fields
Array of
OnlinePlatform.idstring read-only example: 1Id of this Online platform. Does not need to be included when creating Customer.platformNameobject example: FACEBOOKName of the platform that this customer usesplatformValuestring example: www.linkedin.com/abcUrl of customer's online platform/webpage
languagestring example: enThe main language that this partner uses, valid values is [en, de, fr, it]responsibleCounterpartstring example: Mr. MarcThe name of a contact person for this customercorrespondenceobject required example: MAILThe preferred method of correspondence, how this customer wants to receive the pay slips by defaultidstring example: 1Id of this person. Does not need to be included when creating customersalutationobject required example: MALESalutation for this person, valid values is: [MALE, FEMALE, MALE_FEMALE, FAMILY]firstNamestring required pattern: \S example: JohnFirst name of this personlastNamestring required pattern: \S example: HenryLast name of this personbirthdaystring (date) format: date example: 2020-01-20Birth date of this person in ISO 8601 format (yyyy-MM-dd)addressesarray of AddressAddress list of this personshow fields
Array of
Address.idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
phonesarray of PhonePhone number list of this personshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
emailsarray of EmailEmail list of this personshow fields
Array of
Email.idstring example: 1Id of this Email. Does not need to be included when creating customeremailAddressstring example: example@gmail.comEmail addresstypeobject required example: PRIVATEType of this email
personNumberstringThis is a number the KLARA user can give to this customer/partner/supplier
companyobjectA company.show fields
websitestring example: www.my-company.comThe website address of this customercategoriesarray of stringAdd one or more categories to this customer that you can use as filter criteria for selecting partnersonlinePlatformsarray of OnlinePlatformThe list of online platforms that this customer usesshow fields
Array of
OnlinePlatform.idstring read-only example: 1Id of this Online platform. Does not need to be included when creating Customer.platformNameobject example: FACEBOOKName of the platform that this customer usesplatformValuestring example: www.linkedin.com/abcUrl of customer's online platform/webpage
languagestring example: enThe main language that this partner uses, valid values is [en, de, fr, it]responsibleCounterpartstring example: Mr. MarcThe name of a contact person for this customercorrespondenceobject required example: MAILThe preferred method of correspondence, how this customer wants to receive the pay slips by defaultidstring read-only example: 1Id of this company. Does not need to be included when creating customernamestring required pattern: \S example: ABC-CorpName of the companyphonesarray of PhonePhone numbers of the companyshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
emailsarray of EmailEmails of this companyshow fields
Array of
Email.idstring example: 1Id of this Email. Does not need to be included when creating customeremailAddressstring example: example@gmail.comEmail addresstypeobject required example: PRIVATEType of this email
addressesarray of AddressAddress list of this company, atleast one should be addshow fields
Array of
Address.idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
corporateIdentificationNumberstring example: CHE-123.456.789Every business active in Switzerland is given a unique enterprise identification number (UID). To ensure that numbers are correctly allocated and managed, the UID register is run by the Federal Statistical OfficevatNumberstring example: CHE-123.456.789This is the official CH VAT number of the companyhrNumberstring example: CHE-123.456.789This is the official CH number for this company in the CH trade registernogaCodestring example: 1234The NOGA code of this companyfoundingDatestring (date) format: date example: 2019-12-20Founding date of this comany in ISO 8601 format (yyyy-mm-dd)companyNumberstringThis is a number the KLARA user can give to this customer/partner/supplier
priceCategorystring example: Sale priceYou can select / enter a price category. On the articles you can define a special price for this price category. When such an article is sold / invoiced, the price of this category will apply if it is identical for the article and the customer.customerTypeobject required example: PERSONThe type of this partner. Could be either Person or Company._linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
Responses 5
201 Customer created show body
application/json Customer
idstring read-only example: 1Id of this Customer. Does not need to be included when creating customerpersonobjectA partner person.show fields
websitestring example: www.my-company.comThe website address of this customercategoriesarray of stringAdd one or more categories to this customer that you can use as filter criteria for selecting partnersonlinePlatformsarray of OnlinePlatformThe list of online platforms that this customer usesshow fields
Array of
OnlinePlatform.idstring read-only example: 1Id of this Online platform. Does not need to be included when creating Customer.platformNameobject example: FACEBOOKName of the platform that this customer usesplatformValuestring example: www.linkedin.com/abcUrl of customer's online platform/webpage
languagestring example: enThe main language that this partner uses, valid values is [en, de, fr, it]responsibleCounterpartstring example: Mr. MarcThe name of a contact person for this customercorrespondenceobject required example: MAILThe preferred method of correspondence, how this customer wants to receive the pay slips by defaultidstring example: 1Id of this person. Does not need to be included when creating customersalutationobject required example: MALESalutation for this person, valid values is: [MALE, FEMALE, MALE_FEMALE, FAMILY]firstNamestring required pattern: \S example: JohnFirst name of this personlastNamestring required pattern: \S example: HenryLast name of this personbirthdaystring (date) format: date example: 2020-01-20Birth date of this person in ISO 8601 format (yyyy-MM-dd)addressesarray of AddressAddress list of this personshow fields
Array of
Address.idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
phonesarray of PhonePhone number list of this personshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
emailsarray of EmailEmail list of this personshow fields
Array of
Email.idstring example: 1Id of this Email. Does not need to be included when creating customeremailAddressstring example: example@gmail.comEmail addresstypeobject required example: PRIVATEType of this email
personNumberstringThis is a number the KLARA user can give to this customer/partner/supplier
companyobjectA company.show fields
websitestring example: www.my-company.comThe website address of this customercategoriesarray of stringAdd one or more categories to this customer that you can use as filter criteria for selecting partnersonlinePlatformsarray of OnlinePlatformThe list of online platforms that this customer usesshow fields
Array of
OnlinePlatform.idstring read-only example: 1Id of this Online platform. Does not need to be included when creating Customer.platformNameobject example: FACEBOOKName of the platform that this customer usesplatformValuestring example: www.linkedin.com/abcUrl of customer's online platform/webpage
languagestring example: enThe main language that this partner uses, valid values is [en, de, fr, it]responsibleCounterpartstring example: Mr. MarcThe name of a contact person for this customercorrespondenceobject required example: MAILThe preferred method of correspondence, how this customer wants to receive the pay slips by defaultidstring read-only example: 1Id of this company. Does not need to be included when creating customernamestring required pattern: \S example: ABC-CorpName of the companyphonesarray of PhonePhone numbers of the companyshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
emailsarray of EmailEmails of this companyshow fields
Array of
Email.idstring example: 1Id of this Email. Does not need to be included when creating customeremailAddressstring example: example@gmail.comEmail addresstypeobject required example: PRIVATEType of this email
addressesarray of AddressAddress list of this company, atleast one should be addshow fields
Array of
Address.idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
corporateIdentificationNumberstring example: CHE-123.456.789Every business active in Switzerland is given a unique enterprise identification number (UID). To ensure that numbers are correctly allocated and managed, the UID register is run by the Federal Statistical OfficevatNumberstring example: CHE-123.456.789This is the official CH VAT number of the companyhrNumberstring example: CHE-123.456.789This is the official CH number for this company in the CH trade registernogaCodestring example: 1234The NOGA code of this companyfoundingDatestring (date) format: date example: 2019-12-20Founding date of this comany in ISO 8601 format (yyyy-mm-dd)companyNumberstringThis is a number the KLARA user can give to this customer/partner/supplier
priceCategorystring example: Sale priceYou can select / enter a price category. On the articles you can define a special price for this price category. When such an article is sold / invoiced, the price of this category will apply if it is identical for the article and the customer.customerTypeobject required example: PERSONThe type of this partner. Could be either Person or Company._linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
DELETE/core/latest/customers/{customer-id}key / tokenDelete a customer
Parameters 1
| Name | Description |
|---|---|
customer-id required | Id of the customer to be deleted |
Responses 6
400 Could not delete Customer that contain orders show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/latest/customers/{customer-id}key / tokenReturns a customer of a company based on given id
Parameters 1
| Name | Description |
|---|---|
customer-id required | Id of the customer |
Responses 5
200 Found Customer show body
application/json Customer
idstring read-only example: 1Id of this Customer. Does not need to be included when creating customerpersonobjectA partner person.show fields
websitestring example: www.my-company.comThe website address of this customercategoriesarray of stringAdd one or more categories to this customer that you can use as filter criteria for selecting partnersonlinePlatformsarray of OnlinePlatformThe list of online platforms that this customer usesshow fields
Array of
OnlinePlatform.idstring read-only example: 1Id of this Online platform. Does not need to be included when creating Customer.platformNameobject example: FACEBOOKName of the platform that this customer usesplatformValuestring example: www.linkedin.com/abcUrl of customer's online platform/webpage
languagestring example: enThe main language that this partner uses, valid values is [en, de, fr, it]responsibleCounterpartstring example: Mr. MarcThe name of a contact person for this customercorrespondenceobject required example: MAILThe preferred method of correspondence, how this customer wants to receive the pay slips by defaultidstring example: 1Id of this person. Does not need to be included when creating customersalutationobject required example: MALESalutation for this person, valid values is: [MALE, FEMALE, MALE_FEMALE, FAMILY]firstNamestring required pattern: \S example: JohnFirst name of this personlastNamestring required pattern: \S example: HenryLast name of this personbirthdaystring (date) format: date example: 2020-01-20Birth date of this person in ISO 8601 format (yyyy-MM-dd)addressesarray of AddressAddress list of this personshow fields
Array of
Address.idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
phonesarray of PhonePhone number list of this personshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
emailsarray of EmailEmail list of this personshow fields
Array of
Email.idstring example: 1Id of this Email. Does not need to be included when creating customeremailAddressstring example: example@gmail.comEmail addresstypeobject required example: PRIVATEType of this email
personNumberstringThis is a number the KLARA user can give to this customer/partner/supplier
companyobjectA company.show fields
websitestring example: www.my-company.comThe website address of this customercategoriesarray of stringAdd one or more categories to this customer that you can use as filter criteria for selecting partnersonlinePlatformsarray of OnlinePlatformThe list of online platforms that this customer usesshow fields
Array of
OnlinePlatform.idstring read-only example: 1Id of this Online platform. Does not need to be included when creating Customer.platformNameobject example: FACEBOOKName of the platform that this customer usesplatformValuestring example: www.linkedin.com/abcUrl of customer's online platform/webpage
languagestring example: enThe main language that this partner uses, valid values is [en, de, fr, it]responsibleCounterpartstring example: Mr. MarcThe name of a contact person for this customercorrespondenceobject required example: MAILThe preferred method of correspondence, how this customer wants to receive the pay slips by defaultidstring read-only example: 1Id of this company. Does not need to be included when creating customernamestring required pattern: \S example: ABC-CorpName of the companyphonesarray of PhonePhone numbers of the companyshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
emailsarray of EmailEmails of this companyshow fields
Array of
Email.idstring example: 1Id of this Email. Does not need to be included when creating customeremailAddressstring example: example@gmail.comEmail addresstypeobject required example: PRIVATEType of this email
addressesarray of AddressAddress list of this company, atleast one should be addshow fields
Array of
Address.idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
corporateIdentificationNumberstring example: CHE-123.456.789Every business active in Switzerland is given a unique enterprise identification number (UID). To ensure that numbers are correctly allocated and managed, the UID register is run by the Federal Statistical OfficevatNumberstring example: CHE-123.456.789This is the official CH VAT number of the companyhrNumberstring example: CHE-123.456.789This is the official CH number for this company in the CH trade registernogaCodestring example: 1234The NOGA code of this companyfoundingDatestring (date) format: date example: 2019-12-20Founding date of this comany in ISO 8601 format (yyyy-mm-dd)companyNumberstringThis is a number the KLARA user can give to this customer/partner/supplier
priceCategorystring example: Sale priceYou can select / enter a price category. On the articles you can define a special price for this price category. When such an article is sold / invoiced, the price of this category will apply if it is identical for the article and the customer.customerTypeobject required example: PERSONThe type of this partner. Could be either Person or Company._linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
PUT/core/latest/customers/{customer-id}key / tokenUpdate an existing customer
Parameters 1
| Name | Description |
|---|---|
customer-id required | Id of the customer to be updated |
Request body required
application/json Customer
idstring read-only example: 1Id of this Customer. Does not need to be included when creating customerpersonobjectA partner person.show fields
websitestring example: www.my-company.comThe website address of this customercategoriesarray of stringAdd one or more categories to this customer that you can use as filter criteria for selecting partnersonlinePlatformsarray of OnlinePlatformThe list of online platforms that this customer usesshow fields
Array of
OnlinePlatform.idstring read-only example: 1Id of this Online platform. Does not need to be included when creating Customer.platformNameobject example: FACEBOOKName of the platform that this customer usesplatformValuestring example: www.linkedin.com/abcUrl of customer's online platform/webpage
languagestring example: enThe main language that this partner uses, valid values is [en, de, fr, it]responsibleCounterpartstring example: Mr. MarcThe name of a contact person for this customercorrespondenceobject required example: MAILThe preferred method of correspondence, how this customer wants to receive the pay slips by defaultidstring example: 1Id of this person. Does not need to be included when creating customersalutationobject required example: MALESalutation for this person, valid values is: [MALE, FEMALE, MALE_FEMALE, FAMILY]firstNamestring required pattern: \S example: JohnFirst name of this personlastNamestring required pattern: \S example: HenryLast name of this personbirthdaystring (date) format: date example: 2020-01-20Birth date of this person in ISO 8601 format (yyyy-MM-dd)addressesarray of AddressAddress list of this personshow fields
Array of
Address.idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
phonesarray of PhonePhone number list of this personshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
emailsarray of EmailEmail list of this personshow fields
Array of
Email.idstring example: 1Id of this Email. Does not need to be included when creating customeremailAddressstring example: example@gmail.comEmail addresstypeobject required example: PRIVATEType of this email
personNumberstringThis is a number the KLARA user can give to this customer/partner/supplier
companyobjectA company.show fields
websitestring example: www.my-company.comThe website address of this customercategoriesarray of stringAdd one or more categories to this customer that you can use as filter criteria for selecting partnersonlinePlatformsarray of OnlinePlatformThe list of online platforms that this customer usesshow fields
Array of
OnlinePlatform.idstring read-only example: 1Id of this Online platform. Does not need to be included when creating Customer.platformNameobject example: FACEBOOKName of the platform that this customer usesplatformValuestring example: www.linkedin.com/abcUrl of customer's online platform/webpage
languagestring example: enThe main language that this partner uses, valid values is [en, de, fr, it]responsibleCounterpartstring example: Mr. MarcThe name of a contact person for this customercorrespondenceobject required example: MAILThe preferred method of correspondence, how this customer wants to receive the pay slips by defaultidstring read-only example: 1Id of this company. Does not need to be included when creating customernamestring required pattern: \S example: ABC-CorpName of the companyphonesarray of PhonePhone numbers of the companyshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
emailsarray of EmailEmails of this companyshow fields
Array of
Email.idstring example: 1Id of this Email. Does not need to be included when creating customeremailAddressstring example: example@gmail.comEmail addresstypeobject required example: PRIVATEType of this email
addressesarray of AddressAddress list of this company, atleast one should be addshow fields
Array of
Address.idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
corporateIdentificationNumberstring example: CHE-123.456.789Every business active in Switzerland is given a unique enterprise identification number (UID). To ensure that numbers are correctly allocated and managed, the UID register is run by the Federal Statistical OfficevatNumberstring example: CHE-123.456.789This is the official CH VAT number of the companyhrNumberstring example: CHE-123.456.789This is the official CH number for this company in the CH trade registernogaCodestring example: 1234The NOGA code of this companyfoundingDatestring (date) format: date example: 2019-12-20Founding date of this comany in ISO 8601 format (yyyy-mm-dd)companyNumberstringThis is a number the KLARA user can give to this customer/partner/supplier
priceCategorystring example: Sale priceYou can select / enter a price category. On the articles you can define a special price for this price category. When such an article is sold / invoiced, the price of this category will apply if it is identical for the article and the customer.customerTypeobject required example: PERSONThe type of this partner. Could be either Person or Company._linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
Responses 6
200 Customer updated show body
application/json Customer
idstring read-only example: 1Id of this Customer. Does not need to be included when creating customerpersonobjectA partner person.show fields
websitestring example: www.my-company.comThe website address of this customercategoriesarray of stringAdd one or more categories to this customer that you can use as filter criteria for selecting partnersonlinePlatformsarray of OnlinePlatformThe list of online platforms that this customer usesshow fields
Array of
OnlinePlatform.idstring read-only example: 1Id of this Online platform. Does not need to be included when creating Customer.platformNameobject example: FACEBOOKName of the platform that this customer usesplatformValuestring example: www.linkedin.com/abcUrl of customer's online platform/webpage
languagestring example: enThe main language that this partner uses, valid values is [en, de, fr, it]responsibleCounterpartstring example: Mr. MarcThe name of a contact person for this customercorrespondenceobject required example: MAILThe preferred method of correspondence, how this customer wants to receive the pay slips by defaultidstring example: 1Id of this person. Does not need to be included when creating customersalutationobject required example: MALESalutation for this person, valid values is: [MALE, FEMALE, MALE_FEMALE, FAMILY]firstNamestring required pattern: \S example: JohnFirst name of this personlastNamestring required pattern: \S example: HenryLast name of this personbirthdaystring (date) format: date example: 2020-01-20Birth date of this person in ISO 8601 format (yyyy-MM-dd)addressesarray of AddressAddress list of this personshow fields
Array of
Address.idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
phonesarray of PhonePhone number list of this personshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
emailsarray of EmailEmail list of this personshow fields
Array of
Email.idstring example: 1Id of this Email. Does not need to be included when creating customeremailAddressstring example: example@gmail.comEmail addresstypeobject required example: PRIVATEType of this email
personNumberstringThis is a number the KLARA user can give to this customer/partner/supplier
companyobjectA company.show fields
websitestring example: www.my-company.comThe website address of this customercategoriesarray of stringAdd one or more categories to this customer that you can use as filter criteria for selecting partnersonlinePlatformsarray of OnlinePlatformThe list of online platforms that this customer usesshow fields
Array of
OnlinePlatform.idstring read-only example: 1Id of this Online platform. Does not need to be included when creating Customer.platformNameobject example: FACEBOOKName of the platform that this customer usesplatformValuestring example: www.linkedin.com/abcUrl of customer's online platform/webpage
languagestring example: enThe main language that this partner uses, valid values is [en, de, fr, it]responsibleCounterpartstring example: Mr. MarcThe name of a contact person for this customercorrespondenceobject required example: MAILThe preferred method of correspondence, how this customer wants to receive the pay slips by defaultidstring read-only example: 1Id of this company. Does not need to be included when creating customernamestring required pattern: \S example: ABC-CorpName of the companyphonesarray of PhonePhone numbers of the companyshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
emailsarray of EmailEmails of this companyshow fields
Array of
Email.idstring example: 1Id of this Email. Does not need to be included when creating customeremailAddressstring example: example@gmail.comEmail addresstypeobject required example: PRIVATEType of this email
addressesarray of AddressAddress list of this company, atleast one should be addshow fields
Array of
Address.idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
corporateIdentificationNumberstring example: CHE-123.456.789Every business active in Switzerland is given a unique enterprise identification number (UID). To ensure that numbers are correctly allocated and managed, the UID register is run by the Federal Statistical OfficevatNumberstring example: CHE-123.456.789This is the official CH VAT number of the companyhrNumberstring example: CHE-123.456.789This is the official CH number for this company in the CH trade registernogaCodestring example: 1234The NOGA code of this companyfoundingDatestring (date) format: date example: 2019-12-20Founding date of this comany in ISO 8601 format (yyyy-mm-dd)companyNumberstringThis is a number the KLARA user can give to this customer/partner/supplier
priceCategorystring example: Sale priceYou can select / enter a price category. On the articles you can define a special price for this price category. When such an article is sold / invoiced, the price of this category will apply if it is identical for the article and the customer.customerTypeobject required example: PERSONThe type of this partner. Could be either Person or Company._linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/latest/customers/{customer-id}/additional-addresseskey / tokenGets all additional addresses of a customer
Parameters 1
| Name | Description |
|---|---|
customer-id required | Id of the customer to get additional addresses |
Responses 4
200 List of all additional addresses show body
application/json array of Address
Array of Address.
idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
POST/core/latest/customers/{customer-id}/additional-addresseskey / tokenCreates a new customer's additional address
Parameters 1
| Name | Description |
|---|---|
customer-id required | Id of the customer to add additional addresses to |
Request body required
application/json Address
idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
Responses 5
200 Customer's new additional address created show body
application/json Address
idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
DELETE/core/latest/customers/{customer-id}/additional-addresses/{address-id}key / tokenDelete an additional-address data by customer's id and customer's contact-id
Parameters 2
| Name | Description |
|---|---|
address-id required | Id of the additional address needed to be updated |
customer-id required | Id of the customer to update an additional address deleted |
Responses 5
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
PUT/core/latest/customers/{customer-id}/additional-addresses/{address-id}key / tokenUpdates a Address
Parameters 2
| Name | Description |
|---|---|
address-id required | The id of the requested Address |
customer-id required | Id of the customer needed to update an additional address |
Request body required
application/json Address
idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
Responses 6
200 Updated additional-addresses show body
application/json Address
idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/latest/customers/{customer-id}/contactskey / tokenGets all contacts of a customer
Parameters 1
| Name | Description |
|---|---|
customer-id required | Id of the customer to get all contacts from |
Responses 4
200 List of contacts show body
application/json array of CustomerContact
Array of CustomerContact.
idstring read-only example: 1Id of this contact. Does not need to be included when creating CustomerContactimageIdstring read-only example: 1Id of this contact's image. Does not need to be included when creating CustomerContactsalutationobject example: MALESalutation for this contactfirstNamestring required example: JohnFirst name of this contactlastNamestring required example: HenryLast name of this contactemailstring example: john.henry@gmail.comEmail of this contactwebsitestring example: www.youtube.comWebsite of this contactadditionalAddressDefinitionstringAdditional address definition of this contactphonesarray of PhonePhone number list of this contactshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
categoriesarray of stringCategory list of this contactonlinePlatformsarray of OnlinePlatformThe list of online platforms that this contact usesshow fields
Array of
OnlinePlatform.idstring read-only example: 1Id of this Online platform. Does not need to be included when creating Customer.platformNameobject example: FACEBOOKName of the platform that this customer usesplatformValuestring example: www.linkedin.com/abcUrl of customer's online platform/webpage
customFieldsarray of CustomFieldThe list of custom information of this contactshow fields
Array of
CustomField.idstring read-only example: 1Id of this custom field. Does not need to be included when creating CustomerContactcustomNamestring example: name at homename of this custom fieldcustomValuestring example: John Henryvalue of this custom field
functionstringFunction of this contactbirthdaystring (date) format: date example: 2020-12-20Birth date of this person in ISO 8601 format (yyyy-mm-dd)notestring example: this is a important contact.Note of this contact
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
POST/core/latest/customers/{customer-id}/contactskey / tokenCreates a new customer's contact
Parameters 1
| Name | Description |
|---|---|
customer-id required | The id of the requested customer to add new contact to |
Request body required
application/json CustomerContact
idstring read-only example: 1Id of this contact. Does not need to be included when creating CustomerContactimageIdstring read-only example: 1Id of this contact's image. Does not need to be included when creating CustomerContactsalutationobject example: MALESalutation for this contactfirstNamestring required example: JohnFirst name of this contactlastNamestring required example: HenryLast name of this contactemailstring example: john.henry@gmail.comEmail of this contactwebsitestring example: www.youtube.comWebsite of this contactadditionalAddressDefinitionstringAdditional address definition of this contactphonesarray of PhonePhone number list of this contactshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
categoriesarray of stringCategory list of this contactonlinePlatformsarray of OnlinePlatformThe list of online platforms that this contact usesshow fields
Array of
OnlinePlatform.idstring read-only example: 1Id of this Online platform. Does not need to be included when creating Customer.platformNameobject example: FACEBOOKName of the platform that this customer usesplatformValuestring example: www.linkedin.com/abcUrl of customer's online platform/webpage
customFieldsarray of CustomFieldThe list of custom information of this contactshow fields
Array of
CustomField.idstring read-only example: 1Id of this custom field. Does not need to be included when creating CustomerContactcustomNamestring example: name at homename of this custom fieldcustomValuestring example: John Henryvalue of this custom field
functionstringFunction of this contactbirthdaystring (date) format: date example: 2020-12-20Birth date of this person in ISO 8601 format (yyyy-mm-dd)notestring example: this is a important contact.Note of this contact
Responses 5
200 Customer's new contact created show body
application/json CustomerContact
idstring read-only example: 1Id of this contact. Does not need to be included when creating CustomerContactimageIdstring read-only example: 1Id of this contact's image. Does not need to be included when creating CustomerContactsalutationobject example: MALESalutation for this contactfirstNamestring required example: JohnFirst name of this contactlastNamestring required example: HenryLast name of this contactemailstring example: john.henry@gmail.comEmail of this contactwebsitestring example: www.youtube.comWebsite of this contactadditionalAddressDefinitionstringAdditional address definition of this contactphonesarray of PhonePhone number list of this contactshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
categoriesarray of stringCategory list of this contactonlinePlatformsarray of OnlinePlatformThe list of online platforms that this contact usesshow fields
Array of
OnlinePlatform.idstring read-only example: 1Id of this Online platform. Does not need to be included when creating Customer.platformNameobject example: FACEBOOKName of the platform that this customer usesplatformValuestring example: www.linkedin.com/abcUrl of customer's online platform/webpage
customFieldsarray of CustomFieldThe list of custom information of this contactshow fields
Array of
CustomField.idstring read-only example: 1Id of this custom field. Does not need to be included when creating CustomerContactcustomNamestring example: name at homename of this custom fieldcustomValuestring example: John Henryvalue of this custom field
functionstringFunction of this contactbirthdaystring (date) format: date example: 2020-12-20Birth date of this person in ISO 8601 format (yyyy-mm-dd)notestring example: this is a important contact.Note of this contact
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
DELETE/core/latest/customers/{customer-id}/contacts/{contact-id}key / tokenDelete a CustomerContact data by customer's id and customer's contact-id
Parameters 2
| Name | Description |
|---|---|
contact-id required | Id of a customer's contact to be deleted |
customer-id required | Id of the requested customer to have a contact deleted |
Responses 5
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
PUT/core/latest/customers/{customer-id}/contacts/{contact-id}key / tokenUpdates a CustomerContact
Parameters 2
| Name | Description |
|---|---|
contact-id required | The id of the requested customer's contact to be updated |
customer-id required | Id of the customer to have a contact updated |
Request body required
application/json CustomerContact
idstring read-only example: 1Id of this contact. Does not need to be included when creating CustomerContactimageIdstring read-only example: 1Id of this contact's image. Does not need to be included when creating CustomerContactsalutationobject example: MALESalutation for this contactfirstNamestring required example: JohnFirst name of this contactlastNamestring required example: HenryLast name of this contactemailstring example: john.henry@gmail.comEmail of this contactwebsitestring example: www.youtube.comWebsite of this contactadditionalAddressDefinitionstringAdditional address definition of this contactphonesarray of PhonePhone number list of this contactshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
categoriesarray of stringCategory list of this contactonlinePlatformsarray of OnlinePlatformThe list of online platforms that this contact usesshow fields
Array of
OnlinePlatform.idstring read-only example: 1Id of this Online platform. Does not need to be included when creating Customer.platformNameobject example: FACEBOOKName of the platform that this customer usesplatformValuestring example: www.linkedin.com/abcUrl of customer's online platform/webpage
customFieldsarray of CustomFieldThe list of custom information of this contactshow fields
Array of
CustomField.idstring read-only example: 1Id of this custom field. Does not need to be included when creating CustomerContactcustomNamestring example: name at homename of this custom fieldcustomValuestring example: John Henryvalue of this custom field
functionstringFunction of this contactbirthdaystring (date) format: date example: 2020-12-20Birth date of this person in ISO 8601 format (yyyy-mm-dd)notestring example: this is a important contact.Note of this contact
Responses 6
200 Updated contact show body
application/json CustomerContact
idstring read-only example: 1Id of this contact. Does not need to be included when creating CustomerContactimageIdstring read-only example: 1Id of this contact's image. Does not need to be included when creating CustomerContactsalutationobject example: MALESalutation for this contactfirstNamestring required example: JohnFirst name of this contactlastNamestring required example: HenryLast name of this contactemailstring example: john.henry@gmail.comEmail of this contactwebsitestring example: www.youtube.comWebsite of this contactadditionalAddressDefinitionstringAdditional address definition of this contactphonesarray of PhonePhone number list of this contactshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
categoriesarray of stringCategory list of this contactonlinePlatformsarray of OnlinePlatformThe list of online platforms that this contact usesshow fields
Array of
OnlinePlatform.idstring read-only example: 1Id of this Online platform. Does not need to be included when creating Customer.platformNameobject example: FACEBOOKName of the platform that this customer usesplatformValuestring example: www.linkedin.com/abcUrl of customer's online platform/webpage
customFieldsarray of CustomFieldThe list of custom information of this contactshow fields
Array of
CustomField.idstring read-only example: 1Id of this custom field. Does not need to be included when creating CustomerContactcustomNamestring example: name at homename of this custom fieldcustomValuestring example: John Henryvalue of this custom field
functionstringFunction of this contactbirthdaystring (date) format: date example: 2020-12-20Birth date of this person in ISO 8601 format (yyyy-mm-dd)notestring example: this is a important contact.Note of this contact
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/v1/customerskey / tokenSearch and page the customers of the caller's company.
Persons + Companies) of the caller's company, with optional free-text search (search-key) and status filter (status). Results are paged with offset and limit: to retrieve every customer, iterate offset=0, limit, 2×limit, … until a response returns fewer than limit rows. All query parameters are optional; without any, the endpoint returns the first 50 active customers (downstream default ordering). This is a read-only, idempotent operation. The tenant and company are derived from the JWT (
@CurrentSession Token) and are never accepted as parameters. The caller must be authenticated (apiKeyAuth + bearerAuth) and must hold the FINANCE_GET_CUSTOMER permission on that company; otherwise the endpoint returns 403.Required permission
FINANCE_GET_CUSTOMER
Parameters 4
| Name | Description |
|---|---|
limit | Page size. Defaults to 50; hard cap 100. Requests above the cap are rejected with 400. |
offset | 0-based pagination offset — the number of customers to skip before the returned page. Defaults to 0. Combine with limit to walk the full list. |
search-key | Free-text search across customer name, email, phone and customer number. Tokenised on whitespace; matches are case-insensitive substring matches. Maximum length 256 characters. |
status | Filter by customer state. Allowed values: ACTIVE, ALL, ARCHIVED. When omitted, the downstream service applies its default (active customers only).Allowed values: ACTIVE, ALL, ARCHIVED |
Responses 5
200 Customers show body
application/json array of Customer
Array of Customer.
idstring read-only example: 1Id of this Customer. Does not need to be included when creating customerpersonobjectA partner person.show fields
websitestring example: www.my-company.comThe website address of this customercategoriesarray of stringAdd one or more categories to this customer that you can use as filter criteria for selecting partnersonlinePlatformsarray of OnlinePlatformThe list of online platforms that this customer usesshow fields
Array of
OnlinePlatform.idstring read-only example: 1Id of this Online platform. Does not need to be included when creating Customer.platformNameobject example: FACEBOOKName of the platform that this customer usesplatformValuestring example: www.linkedin.com/abcUrl of customer's online platform/webpage
languagestring example: enThe main language that this partner uses, valid values is [en, de, fr, it]responsibleCounterpartstring example: Mr. MarcThe name of a contact person for this customercorrespondenceobject required example: MAILThe preferred method of correspondence, how this customer wants to receive the pay slips by defaultidstring example: 1Id of this person. Does not need to be included when creating customersalutationobject required example: MALESalutation for this person, valid values is: [MALE, FEMALE, MALE_FEMALE, FAMILY]firstNamestring required pattern: \S example: JohnFirst name of this personlastNamestring required pattern: \S example: HenryLast name of this personbirthdaystring (date) format: date example: 2020-01-20Birth date of this person in ISO 8601 format (yyyy-MM-dd)addressesarray of AddressAddress list of this personshow fields
Array of
Address.idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
phonesarray of PhonePhone number list of this personshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
emailsarray of EmailEmail list of this personshow fields
Array of
Email.idstring example: 1Id of this Email. Does not need to be included when creating customeremailAddressstring example: example@gmail.comEmail addresstypeobject required example: PRIVATEType of this email
personNumberstringThis is a number the KLARA user can give to this customer/partner/supplier
companyobjectA company.show fields
websitestring example: www.my-company.comThe website address of this customercategoriesarray of stringAdd one or more categories to this customer that you can use as filter criteria for selecting partnersonlinePlatformsarray of OnlinePlatformThe list of online platforms that this customer usesshow fields
Array of
OnlinePlatform.idstring read-only example: 1Id of this Online platform. Does not need to be included when creating Customer.platformNameobject example: FACEBOOKName of the platform that this customer usesplatformValuestring example: www.linkedin.com/abcUrl of customer's online platform/webpage
languagestring example: enThe main language that this partner uses, valid values is [en, de, fr, it]responsibleCounterpartstring example: Mr. MarcThe name of a contact person for this customercorrespondenceobject required example: MAILThe preferred method of correspondence, how this customer wants to receive the pay slips by defaultidstring read-only example: 1Id of this company. Does not need to be included when creating customernamestring required pattern: \S example: ABC-CorpName of the companyphonesarray of PhonePhone numbers of the companyshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
emailsarray of EmailEmails of this companyshow fields
Array of
Email.idstring example: 1Id of this Email. Does not need to be included when creating customeremailAddressstring example: example@gmail.comEmail addresstypeobject required example: PRIVATEType of this email
addressesarray of AddressAddress list of this company, atleast one should be addshow fields
Array of
Address.idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
corporateIdentificationNumberstring example: CHE-123.456.789Every business active in Switzerland is given a unique enterprise identification number (UID). To ensure that numbers are correctly allocated and managed, the UID register is run by the Federal Statistical OfficevatNumberstring example: CHE-123.456.789This is the official CH VAT number of the companyhrNumberstring example: CHE-123.456.789This is the official CH number for this company in the CH trade registernogaCodestring example: 1234The NOGA code of this companyfoundingDatestring (date) format: date example: 2019-12-20Founding date of this comany in ISO 8601 format (yyyy-mm-dd)companyNumberstringThis is a number the KLARA user can give to this customer/partner/supplier
priceCategorystring example: Sale priceYou can select / enter a price category. On the articles you can define a special price for this price category. When such an article is sold / invoiced, the price of this category will apply if it is identical for the article and the customer.customerTypeobject required example: PERSONThe type of this partner. Could be either Person or Company._linksobjectlinks metadatashow fields
selfLinkLink metadatashow fields
hrefstring
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
Individual2
GET/core/v2/tenants/individuals/profilekey / token[PREVIEW_API] Get profile from tenant's ID
Responses 5
200 Retrieved profile successfully show body
application/json object
participantIdstring read-only example: 969b2b24-5ffe-4b7c-b1e2-a2a59fb1acb5firstNamestring example: NikolalastNamestring example: Teslaemailstring example: email@klara.chMain email addresstenantEntryTypestring example: INDIVIDUALTenant entry type of the profile
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
404 Profile not found show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
POST/core/v2/tenants/individuals/profilekey / token[PREVIEW_API] Create profile
Responses 5
200 Created profile successfully show body
application/json object
participantIdstring read-only example: 969b2b24-5ffe-4b7c-b1e2-a2a59fb1acb5firstNamestring example: NikolalastNamestring example: Teslaemailstring example: email@klara.chMain email addresstenantEntryTypestring example: INDIVIDUALTenant entry type of the profile
400 Data invalid show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
404 Resource not found show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
Payroll
Payroll3
GET/core/v1/employees/short-infokey / tokenList the company's employees as short-info entries, filtered and sorted.
id is the employeeId consumed by other employee-scoped endpoints (e.g. GET /payroll/employees/{employeeId}/addable-salary-items) — call this endpoint first to resolve an employee's id. Results can be narrowed with a free-text search-key (matched against name, employee number and email), restricted to specific workplaces via workplace-ids, and filtered by contract filter-by-status; ordering is controlled by sort-field and sort-direction. The tenant and company are derived from the authenticated token; the caller must hold the COMPENSATION_TIME_TRACKING permission on that company.Required permission
COMPENSATION_TIME_TRACKING
Parameters 5
| Name | Description |
|---|---|
filter-by-status | Contract-status filter. Allowed values: ALL, ACTIVE, INACTIVE, DRAFT. Defaults to ALL. Allowed values: ALL, ACTIVE, INACTIVE, DRAFT |
search-key | Case-insensitive substring matched against the employee's full name, employee number and email. When omitted, no text filter is applied. |
sort-direction | Sort direction. Allowed values: ASC, DESC. Allowed values: ASC, DESC |
sort-field | Field to sort by. Allowed values: NAME, EMAIL, EMPLOYEE_NUMBER. Defaults to NAME. Allowed values: NAME, EMAIL, EMPLOYEE_NUMBER |
workplace-ids | Restrict results to employees whose current contract workplace is in this set. Repeat the parameter for multiple ids (e.g. workplace-ids=12&workplace-ids=13). When omitted, employees of all workplaces are returned. |
Responses 7
200 Successful operation show body
application/json array of PublicApiEmployeeShortInfo
Array of PublicApiEmployeeShortInfo.
idinteger (int64) format: int64 example: 3487Employee id. Use this as employeeId in employee-scoped endpoints.firstNamestring example: AnnaEmployee's first name (resolved from the person record).lastNamestring example: MüllerEmployee's last name (resolved from the person record).employeeNumberstring example: E-00123Company-assigned employee number.emailstring example: anna.mueller@example.comEmployee's primary email (resolved from the person record).workplaceIdinteger (int64) format: int64 example: 12Id of the workplace of the employee's current contract.personnelNumberstring example: P-4711Personnel number of the employee.numberOfChildreninteger (int64) format: int64 example: 2Number of children registered for the employee.cashPaymentboolean example: FalseWhether the employee is paid in cash.statusstring example: ACTIVEContract status of the employee. Allowed values: ACTIVE, INACTIVE, DRAFT.
400 Data invalid show body
application/json ErrorMessage1
uuidstringcreatedTimestringcodestringmessagestringdetailstring
403 The current user is not allowed to access this company data show body
application/json ErrorMessage1
uuidstringcreatedTimestringcodestringmessagestringdetailstring
404 Resource not found show body
application/json ErrorMessage1
uuidstringcreatedTimestringcodestringmessagestringdetailstring
POST/core/v1/payroll/contracts/{contractId}/payslips/{payslipId}/salary-itemskey / tokenAdd a salary item to an employee's payslip.
payslipId, then recalculates that month unless recalculate=false. Returns the added salary item with its server-assigned id. This operation is not idempotent: repeated calls append duplicate items or throw an error when the item is not duplicatable (subject to the item's duplicatable flag). Prerequisite: call GET /payroll/employees/{employeeId}/addable-salary-items first — its response provides the contractId and payslipId to target and the addable codes; resolve employeeId beforehand via GET /employees/short-info. The tenant and company are derived from the authenticated token; the caller must hold the COMPENSATION permission on that company.Required permission
COMPENSATION
Parameters 3
| Name | Description |
|---|---|
contractId required | Id of the employee's contract to add the salary item to. Obtained from the contractId field of the GET /payroll/employees/{employeeId}/addable-salary-items response — call that endpoint first to select the employee and obtain this id. |
payslipId required | Id of the target (editable, non-sealed) payslip. Obtained from the payslipId field of the GET /payroll/employees/{employeeId}/addable-salary-items response — call that endpoint first to select the employee and obtain this id. |
recalculate | Whether to recalculate the payslip after adding the item. Defaults to true. |
Request body required
code must be one of the addable salary items for this payslip, and only the value fields the item allows may be sent.Prerequisite APIs / value sources:
GET /employees/short-info→ providesemployeeIdGET /payroll/employees/{employeeId}/addable-salary-items→ provides thecontractIdandpayslipIdpath parameters, plussalaryItems[].code(→code) and each item'seditableFields(which ofbaseValue/rate/quantity/valuemay be sent)
code(string, required) — salary-type code from the addable-salary-items response.salaryItemValues(object, optional) — the numeric values; see below.remark(string, optional, max 1024) — free-text comment (GUI "Comments").
salaryItemValues:baseValue— GUI "Base".rate— GUI "Percent (%)", but expressed as a decimal multiplier, not a percentage number:1= 100%,0.5= 50%,2= 200%. If GUI implementation wants to keep a normal percentage input for the user (e.g. typing 50 for 50%), it must divide that value by 100 before sending it here (50 / 100 = 0.5).quantity— GUI "Quantity".value— GUI "Amount".
code must be addable to this payslip (returned by the addable-salary-items endpoint); only fields listed in the item's editableFields should be provided and the GUI implementation should also only show input boxes for those fields; with salary items that are not duplicatable (duplicatable=false), the GUI implementation should have a mechanism to recall the GET /payroll/employees/{employeeId}/addable-salary-items endpoint after each add to refresh the list of addable items and prevent adding duplicates, or automatically remove the added item from the list of addable items in the GUI; salaryItemValues.rate is a decimal multiplier (1 = 100%, 0.5 = 50%, 2 = 200%), not a percentage number — do not send a raw percentage like 50 for 50%, send 0.5.application/json PayslipSalaryItemRequest
codestring required maxLength: 64 pattern: \S example: 1005Salary-type code identifying the item to add. Must be one of the codes returned by GET /payroll/employees/{employeeId}/addable-salary-items (salaryItems[].code).salaryItemValuesobjectNumeric value fields of a salary item (GUI Base / Percent / Quantity / Amount). Only fields listed in the salary item's editableFields may be provided.show fields
baseValuenumber example: 5000GUI "Base" value.ratenumber example: 0.5GUI "Percent (%)" value, expressed as a decimal multiplier — NOT a percentage number. 1 = 100%, 0.5 = 50%, 2 = 200%. If GUI implementation wants to keep a normal percentage input for the user (typing 50 for 50%) instead of a multiplier (0.5), it must divide that input by 100 before sending it here (50 / 100 = 0.5).quantitynumber example: 1GUI "Quantity" value.valuenumber example: 425GUI "Amount" value.
remarkstring maxLength: 1024 example: Adjustment for MarchOptional free-text comment (GUI "Comments").
Responses 7
200 Successful operation show body
application/json PayslipSalaryItem
idinteger (int64) format: int64 example: 778812Server-assigned id of the added salary item (present in the response only).codestring example: 1005Salary-type code of the added salary item.salaryItemValuesobjectNumeric value fields of a salary item (GUI Base / Percent / Quantity / Amount). Only fields listed in the salary item's editableFields may be provided.show fields
baseValuenumber example: 5000GUI "Base" value.ratenumber example: 0.5GUI "Percent (%)" value, expressed as a decimal multiplier — NOT a percentage number. 1 = 100%, 0.5 = 50%, 2 = 200%. If GUI implementation wants to keep a normal percentage input for the user (typing 50 for 50%) instead of a multiplier (0.5), it must divide that input by 100 before sending it here (50 / 100 = 0.5).quantitynumber example: 1GUI "Quantity" value.valuenumber example: 425GUI "Amount" value.
remarkstring example: Adjustment for MarchFree-text comment attached to the salary item (GUI "Comments").
400 Data invalid show body
application/json ErrorMessage1
uuidstringcreatedTimestringcodestringmessagestringdetailstring
403 The current user is not allowed to access this company data show body
application/json ErrorMessage1
uuidstringcreatedTimestringcodestringmessagestringdetailstring
404 Resource not found show body
application/json ErrorMessage1
uuidstringcreatedTimestringcodestringmessagestringdetailstring
GET/core/v1/payroll/employees/{employeeId}/addable-salary-itemskey / tokenGet the salary items that can be added to an employee's payslip.
code), together with the resolved contractId and payslipId so the response can be chained into the add-salary-item call. Prerequisite: call GET /employees/short-info first to resolve the employeeId path parameter from the returned entries' id field. When month is provided the specified month's payslip is used (read-only); when it is omitted the employee's current editable payslip is used, which may be computed on first access. The tenant and company are derived from the authenticated token; the caller must hold the COMPENSATION permission on that company.Required permission
COMPENSATION
Parameters 3
| Name | Description |
|---|---|
employeeId required | Id of the employee whose addable salary items are resolved. Obtained from the id field of an entry returned by GET /employees/short-info. |
month | Payslip month in the format MM.yyyy (e.g. 06.2025). If omitted, the employee's current editable payslip is used. |
Accept-Language | Preferred language for localised salary-item descriptions, as an IETF language tag. Examples: de-CH, fr-CH, it-CH, en. Defaults to the tenant's language when omitted. |
Responses 7
200 Successful operation show body
application/json AddablePayslipSalaryItems
employeeIdinteger (int64) format: int64 example: 3487Id of the employee the addable salary items were resolved for.contractIdinteger (int64) format: int64 example: 9021Id of the employee's resolved main (latest) contract. Pass this to the add-salary-item call.payslipIdinteger (int64) format: int64 example: 9542Id of the resolved editable payslip. Pass this to the add-salary-item call.periodFromstring (date-time) format: date-time example: 2018-03-01T00:00:00ZMonth (first day) of the resolved payslip (yyyy-MM-ddT00:00:00Z).salaryItemsarray of AddableSalaryItemAddable salary items as blank templates (value fields cleared), distinct by code.show fields
Array of
AddableSalaryItem.codestring example: 1005Salary-type code. Send this as the salary item code when adding it to the payslip.namestring example: Hourly SalaryCanonical (non-localized) name of the salary item.descriptionstring example: StundenlohnLocalised description/label of the salary item (localised via the Accept-Language header).editableFieldsstring example: baseValue,quantityComma-separated list of the value fields that can be provided when adding this salary item (baseValue, rate, quantity, value). The GUI implementation must base on this list to only show input box for fields that exist in this list.duplicatableboolean example: TrueWhether more than one instance of this salary item can be added to the same payslip. When false, only one instance of this salary item can be added, try to add another one will result in an error.showOnPayslipboolean example: TrueWhether the salary item is shown on the payslip.employerRelatedboolean example: FalseWhether the salary item is employer-related (as opposed to employee-related).paymentTypeSitobject example: BANKHow the salary item is paid out. Allowed values: BANK, PAYINSLIP, CASH.salaryItemTypeIdinteger (int64) format: int64 example: 42Id of the underlying salary-item type definition.accountingGroupstring example: SALARYAccounting group the salary item belongs to.printSequenceinteger (int32) format: int32 example: 100Print/order sequence of the salary item on the payslip.
400 Data invalid show body
application/json ErrorMessage1
uuidstringcreatedTimestringcodestringmessagestringdetailstring
403 The current user is not allowed to access this company data show body
application/json ErrorMessage1
uuidstringcreatedTimestringcodestringmessagestringdetailstring
404 Resource not found show body
application/json ErrorMessage1
uuidstringcreatedTimestringcodestringmessagestringdetailstring
Company & Locations
Company3
GET/core/v2/tenants/companieskey / tokenFind KLARA business company of tenant
Responses 5
201 Company found show body
application/json BusinessCompany
namestring required pattern: \S example: ABC-CorpName of the companylegalFormobject required example: LIMITED_LIABILITYLegal form of a company. Can be one of the following:- Limited liability company(GmbH)
- Public limited company (AG)
- Individually owned company (EU)
- Association (V)
- Simple partnership (EG)
- General partnership (KG)
- Limited partnership (KDG)
- Cooperative company (G)
- Foundation (S)
- OR
phonesarray of Phone requiredPhone numbers of the companyshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
emailsarray of Email requiredEmails of this companyshow fields
Array of
Email.idstring example: 1Id of this Email. Does not need to be included when creating customeremailAddressstring example: example@gmail.comEmail addresstypeobject required example: PRIVATEType of this email
addressesarray of Address requiredAddress list of this company, at least one should be add. For company, address type MUST be PRIVATEshow fields
Array of
Address.idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
languagestring required pattern: \S example: dePreferred language of the company. Supported: English, German, French, ItalianAllowed values:de,en,fr,itcorporateIdentificationNumberstring example: CHE-123.456.789Every business active in Switzerland is given a unique enterprise identification number (UID). To ensure that numbers are correctly allocated and managed, the UID register is run by the Federal Statistical OfficefoundingDatestring (date) format: date example: 2019-12-20Founding date of this company in ISO 8601 format (yyyy-mm-dd)
401 Invalid credentials show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
403 The user has been disabled show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
500 Something went wrong when find company show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
POST/core/v2/tenants/companieskey / tokenCreate a KLARA business company
Request body
application/json BusinessCompany
namestring required pattern: \S example: ABC-CorpName of the companylegalFormobject required example: LIMITED_LIABILITYLegal form of a company. Can be one of the following:- Limited liability company(GmbH)
- Public limited company (AG)
- Individually owned company (EU)
- Association (V)
- Simple partnership (EG)
- General partnership (KG)
- Limited partnership (KDG)
- Cooperative company (G)
- Foundation (S)
- OR
phonesarray of Phone requiredPhone numbers of the companyshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
emailsarray of Email requiredEmails of this companyshow fields
Array of
Email.idstring example: 1Id of this Email. Does not need to be included when creating customeremailAddressstring example: example@gmail.comEmail addresstypeobject required example: PRIVATEType of this email
addressesarray of Address requiredAddress list of this company, at least one should be add. For company, address type MUST be PRIVATEshow fields
Array of
Address.idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
languagestring required pattern: \S example: dePreferred language of the company. Supported: English, German, French, ItalianAllowed values:de,en,fr,itcorporateIdentificationNumberstring example: CHE-123.456.789Every business active in Switzerland is given a unique enterprise identification number (UID). To ensure that numbers are correctly allocated and managed, the UID register is run by the Federal Statistical OfficefoundingDatestring (date) format: date example: 2019-12-20Founding date of this company in ISO 8601 format (yyyy-mm-dd)
Responses 6
201 Tenant and company created show body
application/json array of Tenant
Array of Tenant.
tenant_idstring example: aaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeecompany_idinteger (int64) format: int64 example: 1company_namestring example: ABC Company
400 Invalid company data show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
401 Invalid credentials show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
403 The user has been disabled show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
500 Something went wrong when creating tenant and business company show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
PUT/core/v2/tenants/companieskey / tokenUpdate a KLARA business company
Request body
application/json BusinessCompany
namestring required pattern: \S example: ABC-CorpName of the companylegalFormobject required example: LIMITED_LIABILITYLegal form of a company. Can be one of the following:- Limited liability company(GmbH)
- Public limited company (AG)
- Individually owned company (EU)
- Association (V)
- Simple partnership (EG)
- General partnership (KG)
- Limited partnership (KDG)
- Cooperative company (G)
- Foundation (S)
- OR
phonesarray of Phone requiredPhone numbers of the companyshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
emailsarray of Email requiredEmails of this companyshow fields
Array of
Email.idstring example: 1Id of this Email. Does not need to be included when creating customeremailAddressstring example: example@gmail.comEmail addresstypeobject required example: PRIVATEType of this email
addressesarray of Address requiredAddress list of this company, at least one should be add. For company, address type MUST be PRIVATEshow fields
Array of
Address.idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
languagestring required pattern: \S example: dePreferred language of the company. Supported: English, German, French, ItalianAllowed values:de,en,fr,itcorporateIdentificationNumberstring example: CHE-123.456.789Every business active in Switzerland is given a unique enterprise identification number (UID). To ensure that numbers are correctly allocated and managed, the UID register is run by the Federal Statistical OfficefoundingDatestring (date) format: date example: 2019-12-20Founding date of this company in ISO 8601 format (yyyy-mm-dd)
Responses 6
201 Company updated show body
application/json BusinessCompany
namestring required pattern: \S example: ABC-CorpName of the companylegalFormobject required example: LIMITED_LIABILITYLegal form of a company. Can be one of the following:- Limited liability company(GmbH)
- Public limited company (AG)
- Individually owned company (EU)
- Association (V)
- Simple partnership (EG)
- General partnership (KG)
- Limited partnership (KDG)
- Cooperative company (G)
- Foundation (S)
- OR
phonesarray of Phone requiredPhone numbers of the companyshow fields
Array of
Phone.idstring example: 1Id of this Phone. Does not need to be included when creating customer.phoneNumberstring required example: 41783334444typeobject required example: PRIVATEType of this phone number. For company, only OFFICE type is supported
emailsarray of Email requiredEmails of this companyshow fields
Array of
Email.idstring example: 1Id of this Email. Does not need to be included when creating customeremailAddressstring example: example@gmail.comEmail addresstypeobject required example: PRIVATEType of this email
addressesarray of Address requiredAddress list of this company, at least one should be add. For company, address type MUST be PRIVATEshow fields
Array of
Address.idstring example: 1Id of this Address. Does not need to be included when creating customervalidFromstring (date) format: dateThe timestamp from which this address is validvalidTostring (date) format: dateThe timestamp to which this address is validaddressLinesstring required example: Chemin de la Caquerette 12The address lines for this AddressaddressTypestring required pattern: \S example: WORKThe type of address, could be [PRIVATE, WORK, SHIPPING]. For company, address type MUST be PRIVATE.cityNamestring required pattern: \S example: BernName of this CitycityZipCodestring example: 3003The postal code of a city for this addresscountryIso2Codestring required pattern: \S example: CH2 letter country code. For company, only accept SwitzerlandcountryIso3Codestring example: CHE3 letter country code. For company, only accept SwitzerlandcountryNumericCodestring example: 756ISO-numeric code. For company, only accept Switzerlandcity_hrefstring read-only example: https://api.klara.ch/core/latest/cities/1The path to get City object by city's id, /cities/{}definitionNamestring example: 2nd addressdefinition name of this address; in case main address, value is null; else value is not blankadditionalAddressstring example: No. 13, street 123Additional address for more specific
languagestring required pattern: \S example: dePreferred language of the company. Supported: English, German, French, ItalianAllowed values:de,en,fr,itcorporateIdentificationNumberstring example: CHE-123.456.789Every business active in Switzerland is given a unique enterprise identification number (UID). To ensure that numbers are correctly allocated and managed, the UID register is run by the Federal Statistical OfficefoundingDatestring (date) format: date example: 2019-12-20Founding date of this company in ISO 8601 format (yyyy-mm-dd)
400 Invalid company data show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
401 Invalid credentials show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
403 The user has been disabled show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
500 Something went wrong when updating tenant show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
Company general4
GET/core/latest/company-configuration/including-vatkey / tokenGet the VAT inclusion setting for the authenticated company.
includingVat: true) or excluding VAT (includingVat: false). Use this value before creating or displaying invoices to apply the correct pricing model. When no configuration record exists for the company, the endpoint returns false (excluding VAT) as the default. The caller must hold the FINANCE permission on the target company.Required permission
FINANCE
Responses 5
200 VAT inclusion setting for the authenticated company. show body
application/json CompanyConfigurationIncludingVatResult
includingVatboolean example: FalseWhether invoice amounts for the authenticated company are displayed and calculated including VAT. Whentrue, VAT is baked into the displayed prices. Whenfalse, VAT is shown as a separate line item. Returnsfalsewhen no configuration record has been set for the company.
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/latest/company-vatskey / tokenReturns vat list of a company
Parameters 1
| Name | Description |
|---|---|
Accept-Language |
Responses 3
200 Company vats show body
application/json array of CompanyVAT
Array of CompanyVAT.
idstring example: 123Id of the company VAT.hasVatbooleanFlag mark the company have VAT or not.vatNumberstring example: ABC-123The VAT number.validFromstring (date) format: dateThe company VAT is valid from this time.validTostring (date) format: dateThe company VAT is invalid after this time.companyIdinteger (int64) format: int64 example: 1Id of the companyvatsarray of VATThis is list VAT value of the company.show fields
Array of
VAT.idstring example: 1Id of the VAT.vatCodestring example: ABCCode of the VAT.ratenumber example: 5Rate of the VAT. Rate unit is percentage (%)descriptionstring example: VAT's descriptionThe additional infomation for VAT.validFromstring (date) format: dateThe VAT is valid from this time.validTostring (date) format: dateThe VAT is invalid after this time.
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/latest/vat-caseskey / tokenReturns VAT case list.
Parameters 2
| Name | Description |
|---|---|
applicability | Allowed values: REVENUE, COST |
Accept-Language |
Responses 3
200 VAT cases show body
application/json array of VatCase
Array of VatCase.
idstring example: 1Id of the VAT Case.vatCaseCodestring example: ABCCode of the VAT Case.descriptionstring example: VAT Case's descriptionThe additional infomation for VAT.referenceMasterVatstringThe reference master for VAT.vatCaseNamesobjectThe map contain VAT case names in many languages.show fields
Open map with values of type
string.applicabilityobject example: REVENUEThe VAT case type.orderNumberinteger (int32) format: int32 example: 2This value present how this VAT case order in the list as sequence.createDatestring (date-time) format: date-timeThe date that VAT Case created.updateDatestring (date-time) format: date-timeThe date that VAT Case updated.
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
GET/core/latest/vat-cases/{vat-case-id}key / tokenGet the VAT case by Id.
Parameters 2
| Name | Description |
|---|---|
vat-case-id required | |
Accept-Language |
Responses 3
200 VAT case show body
application/json VatCase
idstring example: 1Id of the VAT Case.vatCaseCodestring example: ABCCode of the VAT Case.descriptionstring example: VAT Case's descriptionThe additional infomation for VAT.referenceMasterVatstringThe reference master for VAT.vatCaseNamesobjectThe map contain VAT case names in many languages.show fields
Open map with values of type
string.applicabilityobject example: REVENUEThe VAT case type.orderNumberinteger (int32) format: int32 example: 2This value present how this VAT case order in the list as sequence.createDatestring (date-time) format: date-timeThe date that VAT Case created.updateDatestring (date-time) format: date-timeThe date that VAT Case updated.
403 The current user is not allowed to access this company data show body
application/json ErrorMessage
uuidstringcreatedTimestringcodestringmessagestringdetailstring deprecated
Company documents1
POST/core/latest/companies/{company-id}/documentskey / tokenUpload a document for a company
Important: When uploading documents as part of the create booking functionality only the
LIABILITY_UPLOAD category is allowed (the documents are automatically moved to LIABILITIES when the booking is created successfully via POST /core/v1/bookings). The GUI implementation of booking creation must therefore always pass LIABILITY_UPLOAD as the category value in the request body.Parameters 1
| Name | Description |
|---|---|
company-id required | Identifier of the company that owns the document. Must match the company id carried by the bearer token, otherwise the request is rejected with 403. |
Request body required
multipart/form-data CompanyDocumentUploadForm
categorystring requiredDocument category. Determines where the file is stored and which downstream post-processing is triggered (e.g. LIABILITY_UPLOAD triggers asynchronous AI analysis). Important: For the create booking functionality, onlyLIABILITY_UPLOADis allowed — the booking creation GUI must always useLIABILITY_UPLOADwhen uploading documents in this context.Allowed values:SALARY_STATEMENTS,YEARLY_REPORTS,PAYMENT_FILES,INSURANCE_CERTIFICATES,SALARY_TRANSMISSIONS,OWN_DOCUMENTS,LIABILITY_UPLOAD,EXPENSES,LIABILITIESfilestring (binary) required format: binaryThe document file to upload. Maximum size 25 MB. Allowed file types are enforced by the downstream service.
Responses 8
200 Document successfully uploaded. show body
application/json object
documentIdstring example: 550e8400-e29b-41d4-a716-446655440000Identifier of the stored document, assigned by the document service.
400 Data invalid show body
application/json ErrorMessage1
uuidstringcreatedTimestringcodestringmessagestringdetailstring
403 The current user is not allowed to access this company data show body
application/json ErrorMessage1
uuidstringcreatedTimestringcodestringmessagestringdetailstring
413 Uploaded file exceeds the 25 MB limit. show body
application/json ErrorMessage1
uuidstringcreatedTimestringcodestringmessagestringdetailstring
500 Something went wrong on our side while processing the request. Please kindly contact our support. show body
application/json ErrorMessage1
uuidstringcreatedTimestringcodestringmessagestringdetailstring
Location1
GET/core/latest/cities/{city-id}key / tokenReturns city details
Parameters 1
| Name | Description |
|---|---|
city-id required | City id |
Responses 4
200 Found city show body
application/json City
idinteger (int64) format: int64 read-only example: 1The id of this City objectzipCodestring example: 8034The postal code for this citybasicPostcodestringnamestring example: GerlafingenName of this CitycityName27stringstateobjectA partner State.show fields
idstring read-onlycodestring example: VDCode of this Statedescriptionstring example: VaudExtended description of this State
communityobjectA Community that this partner locates.show fields
idstring read-onlybfsNumberinteger (int32) format: int32 example: 5480BFS number of this CommunitycommunityNamestring example: DaillensName of this CommunityconurbationNumberstring example: 5586Conurbation number of this CommunitystateobjectA partner State.show fields
idstring read-onlycodestring example: VDCode of this Statedescriptionstring example: VaudExtended description of this State
countryobjectA Country that this partner locates.show fields
idstring read-onlycountryNamestring example: SchweizName of this Countryiso2Codestring example: CH2 letter country codeiso3Codestring example: CHE3 letter country codephoneCodestring example: 41Country calling codenumericCodestring example: 756ISO-numeric code
Subscription1
POST/core/latest/subscriptionskey / tokenCreate subscriptions for KLARA tenants.
Each subscription is subjective to its own terms and conditions. Please ask your KLARA contacts or see more details using the KLARA webclient.
Parameters 1
| Name | Description |
|---|---|
marketing-code | Marketing code to identify which product will be subscribed. The marketing codes to create subscriptions for. |
Responses 6
201 Subscription created successfully show body
application/json array of Subscription
Array of Subscription.
productobject requiredA product in KLARA widget store. Enable different features for users.show fields
codestring required pattern: \S example: PRINTANDSENTIdentifier code for each product-should be unique across all productsnamestring required example: Print and sentThe name of the product
marketingCodesarray of string required example: K-01-0002-00-M, K-02-0005-00-YMarketing code to identify which product will be subscribed.pricePlanobject example: MONTHLYSpecify how the subscription is paid.- SINGLE: Pay once for the whole subscription period.
- VOLUME: Pay once for the whole subscription period and pay for each volume.
- MONTHLY: Pay monthly for the subscription period.
- QUARTERLY: Pay quarterly for the subscription period.
- YEARLY: Pay yearly for the subscription period.
- FREE: Free subscription.
- PAY_PER_USE: Pay for each usage.
pricenumber read-only example: 10The price of this subscription at this momentsubscriptionFromstring (date-time) format: date-time example: 2023-11-20 T10:15:30Specify when the subscription will start effectively. By default, the start date is todaysubscriptionUntilstring (date-time) format: date-time read-only example: 2024-11-20 T10:15:30Specify when the subscription will end effectively after unsubscribe. This value will be calculated by service itself.renewalDatestring (date) format: date example: 2024-20-11Indicates the date that subscription will automatically renewed for another period if no cancellation is made before this date.
400 Invalid subscription data show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
401 Invalid credentials show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
403 The user has been disabled show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
500 Something went wrong when creating subscriptions for the company show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
Authentication
Authentication3
POST/core/latest/tenantspublicReturns all tenants of a user
The tenant and company id returned by this endpoint can be used to generate tokens to access other endpoints. Use your KLARA username and password OR access-token to get the list of tenants.
Request body
application/x-www-form-urlencoded object
usernamestringpasswordstringaccess_tokenstring
Responses 6
200 Found tenants show body
application/json array of Tenant
Array of Tenant.
tenant_idstring example: aaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeecompany_idinteger (int64) format: int64 example: 1company_namestring example: ABC Company
400 Missing parameters show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
401 Invalid credentials show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
403 The user has been disabled show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
500 Something went wrong when getting list of tenants show body
application/json ErrorResponse
errorstringSummary of the error responseerror_descriptionstringDescription of the error response
POST/core/latest/tokenpublicGenerate tokens to access other KLARA core endpoints
A grant_type of password is used for a Password grant, which requires username, password, tenant and company id to produce access token, refresh token from scratch.
A grant_type of refresh_token is used for a Refresh token grant, which is used for acquiring the access token using refresh token.
A grant_type of token_exchange performs an OAuth 2.0 Token Exchange (RFC 8693). Provide subject_token (the raw upstream Bearer token, without the 'Bearer ' prefix) and audience to identify the target token type.
Supported audience values:
- cossa — exchanges a COSSA bearer token for a ePost access token.
Request body
application/x-www-form-urlencoded object
usernamestring default:passwordstring default:grant_typestring default:tenant_idstring default:company_idstring default:refresh_tokenstring default:subject_tokenstring default:audiencestring default:
Responses 5
200 Token created show body
application/json PublicAPIToken
access_tokenstringToken used to access KLARA Public API endpoints, should be place at Authorization header of request. Access token is valid only for one company tenantexpires_ininteger (int64) format: int64Amount of time in seconds left that the access token is valid forrefresh_expires_ininteger (int64) format: int64Amount of time in seconds left that the refresh token is valid forrefreshTokenstringToken used to renew the access tokentoken_typestringType of access token that should be included in the Authorziation header of each request
POST/core/latest/token/by-microsoftpublicExchange Microsoft access token for system token
Request body
application/x-www-form-urlencoded object
microsoft_access_tokenstringtenant_idstring
Responses 5
200 Token created show body
application/json AccessTokenResponse
access_tokenstringexpires_ininteger (int64) format: int64refresh_expires_ininteger (int64) format: int64refresh_tokenstringtoken_typestringid_tokenstringnot-before-policyinteger (int32) format: int32session_statestringotherClaimsobjectshow fields
Open map with values of type
object.
Klara authentication generic1
POST/core/latest/generic-tokenpublicGenerate tokens to use Klara specific endpoint
A grant_type of password is used for a Password grant, which requires username, password, access token, refresh token from scratch.
A grant_type of refresh_token is used for a Refresh token grant, which is used for acquiring the access token using refresh token.
Request body
application/x-www-form-urlencoded object
usernamestring default:passwordstring default:grant_typestring default:refresh_tokenstring default:
Responses 5
200 Token created show body
application/json PublicAPIToken
access_tokenstringToken used to access KLARA Public API endpoints, should be place at Authorization header of request. Access token is valid only for one company tenantexpires_ininteger (int64) format: int64Amount of time in seconds left that the access token is valid forrefresh_expires_ininteger (int64) format: int64Amount of time in seconds left that the refresh token is valid forrefreshTokenstringToken used to renew the access tokentoken_typestringType of access token that should be included in the Authorziation header of each request
Changelog
Entries are produced by comparing the new specification against the previous one, so nothing is missed when we publish a release. Breaking changes are marked as such.
7 August 2026
Initial publicationFirst release of this documentation: 97 endpoints. Accounting, finance and
payroll are served under /core/v1, articles, customers and authentication under
/core/latest.
Highlights
- POST
/core/v1/payroll/contracts/{contractId}/payslips/{payslipId}/salary-itemsadds variable salary items to a payslip. - GET
/core/v1/employees/short-inforeturns an employee directory with search, filtering and sorting. - POST
/core/v1/invoices/{id}/sendsends through email, ePost, eBill or print.
This page is updated when a new API version is released. Subscribing to changes by feed is on our list.
Known limitations
We open KLARA step by step rather than all at once. These are the gaps we know about, listed here so you find out before you build rather than halfway through.
- No invoice list. You can read a single invoice by id, but there is no collection endpoint and no status filter. Keep the invoice ids in your own system.
- No webhooks. There is no way to be notified of invoice or payment events, so you need to poll, and poll gently. See rate limiting.
- No general order resource. For webshop integrations, create a customer and an invoice instead.
- Search and filtering only in two places.
GET /core/latest/articles/searchfor articles by keyword, andGET /core/v1/employees/short-infofor employees. Other resources have neither. - Payroll master data is not writable. Variable salary items are writable, see Submitting variable payroll data, but contracts and base salaries are not.
- No appointment booking API, despite the role name in KLARA.
- No
PATCH. Partial updates require a completePUT.
Separately, KLARA operates file-based interfaces for certified payroll partner systems. They are not part of this documentation. If you are a payroll partner, contact support.
Are you blocked by one of these? Tell us via support and describe what you are building. That is what shapes what we open next.
FAQ
Straight answers, including where the API cannot help you yet. Better to find out here than halfway through an integration.
Is an OpenAPI specification available?
Yes. Download it here. Use it to generate clients, mock servers or contract tests.
Can I list all invoices, or filter them by status?
Not yet. GET /core/v1/invoices/{id} returns a single invoice including
status, bookingStatus, paymentDate and
bookingDueDate, but there is no collection endpoint, so you need to keep the ids
in your own system. See Known limitations.
Can I write variable payroll data?
Yes. Add salary items such as hours, allowances and bonuses to an employee's editable payslip. See Submitting variable payroll data. Master data such as contracts and base salaries is still not writable through the API.
Is there a general order API?
No. Order endpoints exist only as a two-step partner protocol and are not part of this documentation. For webshop integrations, create a customer and an invoice instead. See Getting started.
Are there webhooks?
No. You need to poll, and poll gently. See rate limiting. If this blocks your use case, let us know and describe what you are building.
Can I book appointments through the API?
No. Despite the role name, KLARA Online Terminbuchung has no public endpoints. The tag SHRM Booking refers to salary-run bookings, not calendar appointments.
Why do I get a 401 even though my API key is correct?
Every endpoint that requires authentication accepts either an API key or a bearer token, so the
method is not the problem. Check three things instead: the key belongs to the company whose data
you are requesting, the header is spelled X-API-KEY, and the user behind the key
holds the permission the endpoint needs. See
Roles & permissions. Note that the token endpoints themselves take no
authentication at all, listed under Authentication.
Why do ePost and eBill appear in a KLARA API?
They are delivery channels for KLARA invoices, not separate products you need to integrate. See Sending documents. If you are building on the ePost Communication Platform itself, you want developer.epost.ch.
Why is my use case not supported?
We open KLARA step by step rather than all at once. The gaps we already know about are listed under Known limitations. If yours is not there, tell us via support and describe what you are building. That is what shapes what we open next.
Support
Questions and problem reports: support.klara.ch. When
reporting an error, include the uuid from the error response and the steps to
reproduce it, but never your API key or any credentials.
Every release is recorded in the changelog, including breaking changes.