Specification
All imports using the Universal Accounting consist of the following fields / data. Please reference the individual formats to get an example of a specific import structure.
Configuration
Section titled “Configuration”Basic configuration options for your accounting system.
"configuration": { "enableOpenItems": true, "journalExportFormat": "json", "journalExportExportsFiles": true, "journalExportUsesWebhook": true, "webhookUrl":"https://my.host.com/kontera-webhook-processing", "webhookSecret" "your-webhook-hmac-secret"},configurationOptionaltype: object
configurationOptionaltype: object
enableOpenItemsOptionaltype: boolean
This settings allows you to enable or disable the creation of open items and open items with payment advises. Works only in combination with the journalExportFormat = json.
- If set to true, Kontera will allow to create and export open items and/or open items with payment advises.
- If set to false, Kontera will not allow to create open items and/or open items with payment advises.
journalExportFormatOptionaltype: enum
Format of the journal export as described in the section “export”.
- Allowed values:
journalExportExportsFilesOptionaltype: boolean
Works only in combination with the journalExportFormat = json.
- If set to true, Kontera will export/embed files as base64 encoded strings. See JSON collective entries export (file)
- if set to false, Kontera will not export/embed files in the export.
journalExportUsesWebhookOptionaltype: string
Works only in combination with the journalExportFormat = json.
- If set to true, Kontera send a POST request to this URL with the exported journal entries as payload.
- if set to false, Kontera will not send any requests for generated exports.
webhookUrlOptionaltype: string
Kontera will send a POST request to this URL with the exported journal entries as payload.
- Example: https://my.host.com/kontera-webhook-processing
- SSL/TLS is mandatory
- Min: 10 Characters
- Max: 512 Characters
webhookSecretOptionaltype: string
Alongside every Webhook request, Kontera will send a X-Hub-Signature-256 header, containing a HMAC-SHA256 hash. After receiving a webhook on your end, you should calculate the corresponding HMAC hash using your secret and compare it to the sent hash in the received header.
This way, you can make sure that the request has not been tampered with and was sent by Kontera. For an example on how to validate such requests, simply check out GitHub’s excellent documentation about the mechanism.
- Min: 10 Characters
- Max: 256 Characters
Organization
Section titled “Organization”Basic info about your organization and company. Some of the fields help our AI when extracting data.
"organization": { "companyName": "bexio ag", "companyUid": "CHE-123.456.789", "companyTaxNumber": "CHE-123.456.789 MWST", "leadCurrency": "CHF"}organizationRequiredtype: object
organizationRequiredtype: object
companyNameRequiredtype: string
Name of your company.
- Min: 1 character
- Max: 255 characters
companyUidRequiredtype: stringAI
Company UID.
- Min: 1 character
- Max: 255 characters
companyTaxNumberRequiredtype: stringAI
VAT Number.
- Min: 1 character
- Max: 255 characters
leadCurrencyRequiredtype: string
The lead currency of your accounting.
- ISO 4217 currency code
- Example:
CHF
Currencies
Section titled “Currencies”Available currencies of your accounting system.
"currencies": [ { "externalId": "1", "code": "CHF" }, { "externalId": "2", "code": "EUR" }]currenciesRequiredtype: array
currenciesRequiredtype: array
externalIdRequiredtype: string
Internal ID of your currency in your accounting system. kontera uses this ID to uniquely identify your currency, and will reference it in the export.
- Min: 1 character
- Max: 36 characters
codeRequiredtype: string
3-character ISO currency code.
Chart of accounts
Section titled “Chart of accounts”Chart of accounts of your accounting system:
"accounts": [ { "externalId": "1", "number": "1020", "description": "Bank", "iban": "CH9300762011623852957", "qrIban": "CH3300762011623852957", "usedForPayments": true, "currency": "CHF" }, { "externalId": "2", "number": "1090", "description": "Credit card" },
...
{ "externalId": "658", "number": "6510", "description": "Communication costs", "defaultTaxExternalId": "1" }
...]accountsRequiredtype: array
accountsRequiredtype: array
externalIdRequiredtype: string
Internal ID of your account in your accounting system. kontera uses this ID to uniquely identify your account, and will reference it in the export.
- Min: 1 character
- Max: 36 characters
numberRequiredtype: string
Number of name of your account, for example: 6510
- Min: 1 character
- Max: 12 characters
descriptionRequiredtype: string
Description of your account, for example “communication costs”.
- Type:
string - Min: 1 character
- Max: 255 characters
defaultTaxIdOptionaltype: string
Internal ID of the default tax which is used with this account. kontera uses this information internally to improve its suggestions.
- Min: 1 character
- Max: 36 characters
currencyOptionaltype: string
Currency of this account.
- For regular currencies, use ISO 4217 currency code
usedForPaymentsOptionaltype: boolean
-
If set to true, this account can be used to generate payment advises with. Ideally, also set its
iban. -
If set to false or null, this account cannot be used to make payments from.
-
Default is
null.
ibanOptionaltype: string
If this account corresponds to a banking account, please include the corresponding IBAN.
qrIbanOptionaltype: string
If this account corresponds to a banking account, please include the corresponding QR-IBAN.
- 🇨🇭-only
- QR-IBAN
taxRequiredOptionaltype: boolean
-
If set to true, a tax is always required in combination with this account.
-
If set to false, you are forbidden from using a tax in combination with this account.
-
Default is
null.
typeOptionaltype: enum
What kind of account it is.
- Allowed values:
asset, Asset Account (active)revenue, Revenue Accountliability, Liability Account (passive)expense, Expense AccountequityEquity Account
Describe the used tax codes in your accounting system.
"taxes": [ { "externalId": "1", "code": "VB77", "description": "MWST 7.7%", "value": "7.7", "type": "pre-tax", "startsAt": "2020-01-01", "endsAt": "2023-12-31", "postToAccountExternalId": "10" }]taxesRequiredtype: array
taxesRequiredtype: array
externalIdRequiredtype: string
Internal ID of your tax in your accounting system. kontera uses this ID to uniquely identify your tax, and will reference it in the export.
- Min: 1 character
- Max: 36 characters
codeRequiredtype: string
Short code to identify your tax.
- Min: 1 character
- Max: 12 characters
descriptionRequiredtype: string
Description for your tax.
- Min: 1 character
- Max: 255 characters
valueRequiredtype: string
%-value of your tax.
- Min: 0
- Max: 100
typeRequiredtype: string
Type of your tax.
- Allowed values:
pre-taxreverse-charge-pre-taxsales-tax
countryOptionaltype: string
Country this tax applies to.
- Min: 2 characters
- Max: 2 characters
startsAtRequiredtype: string
Date from which tax is valid.
- Date in ISO-format
YYYY-MM-DD
endsAtOptionaltype: string
Date until which tax is valid. Can be omitted.
- Date in ISO-format
YYYY-MM-DD
swissVatFormDigitOptionaltype: string | null
Which code the tax rate corresponds on the Swiss VAT form. Kontera does not generate any VAT journal entries currently, so this information isn’t mandatory.
- Exactly 3 characters or
null - 🇨🇭-only
swissVatFormDigitForReverseChargeLiabilityOptionaltype: string | null
Which code the tax rate corresponds on the Swiss VAT form. Kontera does not generate any VAT journal entries currently, so this information isn’t mandatory.
- Exactly 3 characters or
null - 🇨🇭-only
postToAccountExternalIdOptionaltype: string
Which account the tax should be posted in. Kontera does not generate any VAT journal entries currently, so this information isn’t mandatory.
- Min: 1 character
- Max: 36 characters
reverseChargeLiabilityAccountExternalIdOptionaltype: string
If your tax has type = reverse-charge-pre-tax, this determines the account on which the reverse-charge taxes gets posted upon.
- Min: 1 character
- Max: 36 characters
Tax periods
Section titled “Tax periods”The tax periods of your accounting system. This concept might or might not exist in your target system, but its important for kontera in order to generate the correct journal entries.
"taxPeriods": [ { "externalId": "1", "isSubjectToTax": true, "balanceTaxation": false, "accountingMethod": "accrual-basis", "startsAt": "2023-01-01", "endsAt": "2023-12-31" }]taxPeriodsRequiredtype: array
taxPeriodsRequiredtype: array
externalIdRequiredtype: string
Internal ID of your tax period in your accounting system. kontera uses this ID to uniquely identify your tax period, and will reference it in the export.
- Min: 1 character
- Max: 36 characters
isSubjectToTaxRequiredtype: boolean
Whether your company is subject to VAT during the tax period.
- Allowed values:
truefalse
balanceTaxationRequiredtype: boolean
Whether your company is subject to balance taxation during the tax period.
- Allowed values:
truefalse
accountingMethodRequiredtype: enum
Described using what method your taxes are applied to journal entries.
- Allowed values:
accrual_basiscash_basis
startsAtRequiredtype: string
Beginning of tax period.
- Date in ISO-format
YYYY-MM-DD
endsAtRequiredtype: string
End of tax period.
- Date in ISO-format
YYYY-MM-DD
Contacts
Section titled “Contacts”Contacts can be optionally assigned to any ledger entry made in Kontera.
"contacts": [ { "contactId": "885b42f7-3ce9-4cea-b617-3aed85cf1143", "externalId": "1", "legalType": "company", "supplierType": "accounts-payable", "companyName": "Beispiel GmbH", "companyUid": "CHE-123.456.789", "companyTaxNumber": "CHE-123.456.789 MWST", "firstName": null, "lastName": null, "address": { "street": "Example Street", "houseNumber": "42", "postalCode": "8051", "city": "Zürich", "country": "CH" } }]contactsRequiredtype: array
contactsRequiredtype: array
contactIdOptionaltype: string
Unique ID within kontera. You must provide this value together with an externalId generated by your system if you have added contacts into your system and are re-importing those contacts, to avoid duplication.
- UUID
- Required if contact was freshly created and does not know its
externalIdwithin Kontera
externalIdRequiredtype: string
Internal ID of your project in your accounting system. kontera uses this ID to uniquely identify your project, and will reference it in the export.
- Min: 1 character
- Max: 36 characters
legalTypeRequiredtype: enum
Describes the type of legal entity the contacts represents.
- Allowed values:
companyperson
supplierTypeOptionaltype: enum
Describes what kind of contact it is. Used by certain accounting systems with split contact pools.
- Allowed values:
accounts-payableaccounts-receivable
companyNameOptionaltype: string
Required if legalType = company
- Min: 1 character
- Max: 255 characters
companyUidOptionaltype: string
Company UID.
- Min: 1 character
- Max: 255 characters
companyTaxNumberOptionaltype: string
VAT Number of your company.
- Min: 1 character
- Max: 255 characters
firstNameOptionaltype: string
Required if legalType = person
- Min: 1 character
- Max: 255 characters
lastNameOptionaltype: string
Required if legalType = person
- Min: 1 character
- Max: 255 characters
addressOptionaltype: object
addressOptionaltype: object
streetOptionaltype: string
Name of street.
- Min: 1 character
- Max: 255 characters
streetOptionaltype: string
Name of street.
- Min: 1 character
- Max: 255 characters
houseNumberOptionaltype: string
House number.
- Min: 1 character
- Max: 255 characters
postalCodeOptionaltype: string
Postal code / ZIP code.
- Min: 1 character
- Max: 255 characters
cityOptionaltype: string
Name of city.
- Min: 1 character
- Max: 255 characters
countryOptionaltype: string
Country.
- 2-letter ISO3166 code
Projects
Section titled “Projects”Projects are a possible dimension of your accounting system, and Kontera supports it natively.
"projects": [ { "externalId": "1", "code": "PRO-1", "name": "Kundenprojekt 1" }]projectsRequiredtype: array
projectsRequiredtype: array
externalIdRequiredtype: string
Internal ID of your project in your accounting system. kontera uses this ID to uniquely identify your project, and will reference it in the export.
- Min: 1 character
- Max: 36 characters
nameRequiredtype: string
Name or short description of project.
- Min: 1 character
- Max: 255 characters
codeRequiredtype: string
Code of project.
- Min: 1 character
- Max: 12 characters
Cost centers
Section titled “Cost centers”Cost centers are a possible dimension of your accounting system, and Kontera supports it natively.
"costCenters": [ { "externalId": "1", "code": "CC-RD", "name": "Kostenstelle R&D" }]costCentersRequiredtype: array
costCentersRequiredtype: array
externalIdRequiredtype: string
Internal ID of your cost center in your accounting system. kontera uses this ID to uniquely identify your cost center, and will reference it in the export.
- Min: 1 character
- Max: 36 characters
nameRequiredtype: string
Name or short description of cost center.
- Min: 1 character
- Max: 255 characters
codeRequiredtype: string
Code of cost center.
- Min: 1 character
- Max: 12 characters