1. Introduction

The REST API to be used with FreeFinance and FinanzFenster. Please read the examples for an introduction to authentication and some use cases.

2. Examples

2.1. Authentication

To obtain a JWT for authenticating over the API, your application has to be authorized over OAuth2 first. Depending on the type of your app, one of these flows can be used:

  • Auth code flow: You redirect the user to our application for a log-in and get a code returned to a predetermined URL of your choice. This code can then be exchanged for a JWT and a refresh token. This method is recommended for web-based apps that can handle URL redirects.

  • Pairing flow: The user starts a pairing process in the web UI of our application and enters the displayed pairing code in your app. You can then exchange this pairing code directly for a JWT and refresh token. This method is available for locally installed and native apps.

  • Trusted servers can generate a signed JWT themselves and exchange it for a valid login JWT. This method does not use refresh tokens and is only available to trusted partners.

2.1.1. Authorization code flow

First, you redirect the user to the Oauth2 endpoint of our application and supply your app credentials as query parameters.

Request
GET <host>/oauth2/auth?response_type=code&client_id=APP_ID&redirect_uri=REDIRECT_URI&state=STATE

Provide the following parameters:

  • APP_ID: The key of your app that you received as part of the key/secret pair from us.

  • REDIRECT_URI: One of the exact redirect URIs (URL-encoded) that you registered with us for your app. Our application will return the authorization code to this URI.

  • STATE: A custom string of your choice. Our application will return this string together with the authorization code. You can use this for example to pass your session or user identifiers so you can map the return call to your internal user later.

Once the user has logged in and authorized your app, he will be redirected to the callback URI with the query parameters code and state. The state is the string you supplied for the state parameter (if any). You can then exchange the code for tokens:

Request
POST <host>/oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&
code=AUTH_CODE&
client_id=APP_ID&
client_secret=APP_SECRET

Provide the following parameters:

  • AUTH_CODE: The code you received as parameter in the callback from our application to your redirect URI.

  • APP_ID: The key of your app that you received as part of the key/secret pair from us and used to obtain the auth code.

  • APP_SECRET: The secret you have been given from us as part of the key/secret pair. Note that only server-based web apps receive a secret - if you have a client-based app, you were not given a secret and must not provide this parameter.

Response
HTTP/1.1 200 OK
Content-Type: application/json
{
    "access_token":"eyJhbGciOiJ...",
    "refresh_token":"myq....",
    "expires_in":3600
}

The access_token is a JWT that can be used for API calls and is valid as the expires_in field indicates (typically one hour). The refresh token can be used to obtain a new access token when it expires - see the "Using a refresh token" example.

2.1.2. Pairing flow

One the user has started a pairing process in our application, a short pairing code will be shown. The user then enters the pairing code in your app, and you can exchange it for tokens with the API. The code is valid for five minutes.

The Oauth2 password flow is used, but the password parameter is a temporary, randomly generated code:

Request
POST <host>/oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=password&
username=USERNAME&
password=PAIRING_CODE&
client_id=APP_ID

Provide the following parameters:

  • USERNAME: The name of the user account that was used in our application to obtain the pairing code.

  • PAIRING_CODE: The pairing code displayed to the user - not his actual password! Do not ask the user for his password or provide it as parameter - it will not be accepted.

  • APP_ID: The key of your app that you received from us and that your user selected when obtaining the pairing code.

Response
HTTP/1.1 200 OK
Content-Type: application/json
{
    "access_token":"eyJhbGciOiJ...",
    "refresh_token":"myq....",
    "expires_in":3600
}

2.1.3. Using a refresh token

A returned refresh token is valid for one month and can be used to obtain a new access and refresh token.

Request
POST <host>/oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token&
refresh_token=REFRESH_TOKEN&
client_id=APP_ID

The server will return an access token and a new refresh token.The old refresh token expires with a successful call.

Response
HTTP/1.1 200 OK
Content-Type: application/json
{
    "access_token":"eyJhbGciOiJ...",
    "refresh_token":"af3....",
    "expires_in":3600
}

2.1.4. JWT authentication

Trusted issuers have their public keys registered with the application and can issue a JWT which can be used as an OAuth credential. The JWT must have the following structure:

{
    "iss":"ISSUER_ID", // (1)
    "sub":"USERNAME", // (2)
    "iat":14...30,
    "nbf":14...30,
    "exp":14...30,
    "cid":"APPLICATION_CLIENT_ID", // (3)
    "scp":"a", // (4)
    "req":"APPLICATION_REQUESTOR", // (5)
    "jti":"9ed...6f89" // (6)
 }
  1. The issuing client id (referred to as client_id in other flows) registered with the application.The JWT must be signed with the key assigned to this issuer.

  2. The user name of the target user for which this JWT is issued.The user must have allowed access for this client.

  3. The application client id for which the user has access rights.This is the 4-digit id visible in the web UI. The issued jwt will be authorized for this client id only.

  4. The scope of the JWT. Currently only "a" for "authentication" is valid.

  5. The requestor of the token. Should be an identifier of the app that is using the token.

  6. An optional id field which can be used to identify the token.

The nbf and exp must be valid timestamps and the token not be expired.The application may reject tokens with unusually large validity timespans (weeks or months).

A signed, encoded JWT is then supplied in the JWT bearer authentication flow.

Request
POST <host>/oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&
assertion=eyJhbGci...oGgnCiw

The assertion field contains the JWT. Note that unlike other flows no client_id is supplied since it is already part of the JWT.

The server will respond with an access token. Since the issuer can always generate new JWTs, no request token is returned.

Response
HTTP/1.1 200 OK
Content-Type: application/json
{
    "access_token": "eyJhbGc....XmTEjg",
    "expires_in": 3600
}

2.2. Incoming and outgoing invoices (accounting)

Incoming and outgoing invoices are the primary method of creating incomes and expenses. Two types exist: incoming invoices define expenses, and outgoing invoices define incomes.

An invoice may have none, one or several bookings, and each booking in turn has a journal. Journals are realized incomes and outgos and created implicitly by the backend when required.

Payment works differently depending on the type of your bookkeeping registered with the client:

  • For single-entry accounting, an unpaid invoice does not yet create a booking. The booking and its journal are created once the invoice receives the first payment and partial payments create proportional journals from the invoice (small rounding errors can occur in the lines). Invoices can be deleted as long as no payment was made, otherwise the invoice can only be cancelled.

  • In double-entry accounting, every invoice automatically creates a booking and journal of the entire invoice against an unpaid contra account (payables and receivables). The invoice can then have one or several payments, which create simple rebooks from the unpaid account to the payment account. Invoices can only be cancelled.

2.2.1. Single-entry accounting (Einnahmen Ausgaben Rechnung)

Create a new incoming invoice

This example creates an unpaid incoming invoice with the minimal set of required fields. No booking is created, and the invoice does not have a sequence number yet.

Request
POST /api/1.1/incoming_invoices
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "invoiceDate": "2020-12-31",
  "lines": [
    {
      "account": "7200", //(1)
      "amount": 12,
      "amountType": "N"
    }
  ]
}
  1. The /accounts API returns available account codes for use. Incoming invoices commonly use the A account type.

Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "result": {
    "id": "b40e3353-0da4-49f8-9c67-33e633316f26",
    "invoiceSequence": "",
    "invoiceDate": "2020-12-31",
    "netTotal": 12.00,
    "taxTotal": 2.40,
    "total": 14.40,
    "remainingTotal": 14.40,
    "remainingTotalInMainCurrency": 14.40,
    "currency": "EUR",
    "currencyRate": 1,
    "lines": [
      {
        "amount": 12,
        "amountType": "N",
        "account": "7200",
        "taxEntry": "020",
        "netAmount": 12.00,
        "taxAmount": 2.40,
        "totalAmount": 14.40
      }
    ],
    "bookings": []
  },
  "warnings": [],
  "infos": []
}

This example creates a paid incoming invoice with a supplier from the /suppliers resource.

Request
POST /api/1.1/incoming_invoices
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "invoiceDate": "2020-10-31",
  "supplier": "5c2289bb-402f-4eef-8ac2-9d1ac5601e83", //(1)
  "invoiceReference": "API-TEST",
  "dueDate": "2020-11-24",
  "paidContraAccount": "2700",
  "paidDate": "2020-10-31", //(2)
  "description": "API-TEST",
  "currency": "EUR",
  "currencyRate": "1",
  "lines": [
    {
      "account": "7200",
      "amount": 12,
      "amountType": "N"
    }
  ]
}
  1. Use the /suppliers API to find available suppliers.

  2. When the date of payment is present, the invoice will be marked as paid in full, a booking will be created, and a sequence number assigned.

Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "result": {
    "id": "f59602bf-de49-4b8e-81f7-394038016424",
    "invoiceSequence": "ER2020 14",
    "invoiceDate": "2020-10-31",
    "dueDate": "2020-11-24",
    "paidDate": "2020-10-31",
    "supplier": "5c2289bb-402f-4eef-8ac2-9d1ac5601e83",
    "supplierName": "MediaMarkt",
    "invoiceReference": "API-TEST",
    "description": "API-TEST",
    "netTotal": 12.00,
    "taxTotal": 2.40,
    "total": 14.40,
    "remainingTotal": 0,
    "remainingTotalInMainCurrency": 0,
    "currency": "EUR",
    "currencyRate": 1,
    "lines": [
      {
        "amount": 12,
        "amountType": "N",
        "account": "7200",
        "taxEntry": "020",
        "taxRate": 20,
        "netAmount": 12.00,
        "taxAmount": 2.40,
        "totalAmount": 14.40
      }
    ],
    "bookings": [
      {
        "id": "bebf83c6-bdde-44ac-9567-fa6b36d1ffc5",
        "type": "InvoicePaymentBooking",
        "number": 1,
        "cancelled": false,
        "reconciled": false,
        "journalNumber": "A2020 15",
        "paymentType": "PAYMENT",
        "paymentDate": "2020-10-31",
        "paymentAmount": 14.40,
        "paymentAmountInMainCurrency": 14.40,
        "paymentContraAccount": "2700",
        "paymentCurrencyRate": 1,
        "paymentDescription": "API-TEST"
      }
    ]
  },
  "warnings": [],
  "infos": [
    "Der Rechnung wurde die Nummer ER2020 14 vergeben.",
    "Buchung A2020 15 wurde erstellt."
  ]
}
Search for an invoice

Get all incoming invoices between from-date and to-date (required) and with a keyword or state (optional). Note that this bulk call only includes header information about the invoice, but no lines or bookings. Fetch an invoice directly by id (incoming_invoices/<invoice_id>) to receive the full data about an invoice.

Request
GET /api/1.1/incoming_invoices?from=2020-01-01&to=2020-12-31&search_text=API
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
[
  {
    "id": "f59602bf-de49-4b8e-81f7-394038016424",
    "invoiceSequence": "ER2020 14",
    "invoiceDate": "2020-10-31",
    "dueDate": "2020-11-24",
    "paidDate": "2020-10-31",
    "supplier": "5c2289bb-402f-4eef-8ac2-9d1ac5601e83",
    "supplierName": "MediaMarkt",
    "invoiceReference": "API-TEST",
    "description": "API-TEST",
    "netTotal": 12.00,
    "taxTotal": 2.40,
    "total": 14.40,
    "remainingTotal": 0,
    "remainingTotalInMainCurrency": 0,
    "currency": "EUR",
    "currencyRate": 1
  }
]
Cancel an incoming invoice
Request
POST /api/1.1/incoming_invoices/98a69029-4e88-4ced-ac54-addfa4cd75e3/cancel
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "cancelReason": "API-cancel",
  "cancelDate": "2020-12-31"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "error": "InvoiceCannotBeCancelledException",
  "message": "Rechnung kann nicht storniert werden. Evtl. existieren offene Zahlungen - stornieren Sie diese zuerst.",
  "identifier": "edVJdX",
  "details": []
}

An invoice cannot be cancelled as long as active payments exist. Cancel each active payment first using the incoming_invoices/<invoice_id>/bookings/<booking_id>/cancel resource.

Request
POST http://localhost:8081/api/1.1/incoming_invoices/f59602bf-de49-4b8e-81f7-394038016424/bookings/bebf83c6-bdde-44ac-9567-fa6b36d1ffc5/cancel
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "cancelReason": "API-cancel",
  "cancelDate": "2020-12-31"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "result": {
    "id": "f59602bf-de49-4b8e-81f7-394038016424",
    "invoiceSequence": "ER2020 14",
    "invoiceDate": "2020-10-31",
    "dueDate": "2020-11-24",
    "supplier": "5c2289bb-402f-4eef-8ac2-9d1ac5601e83",
    "supplierName": "MediaMarkt",
    "invoiceReference": "API-TEST",
    "description": "API-TEST",
    "netTotal": 12.00,
    "taxTotal": 2.40,
    "total": 14.40,
    "remainingTotal": 14.40,
    "remainingTotalInMainCurrency": 14.40,
    "currency": "EUR",
    "currencyRate": 1,
    "lines": [
      {
        "amount": 12,
        "amountType": "N",
        "account": "7200",
        "taxEntry": "020",
        "taxRate": 20,
        "netAmount": 12.00,
        "taxAmount": 2.40,
        "totalAmount": 14.40
      }
    ],
    "bookings": [
      {
        "id": "bebf83c6-bdde-44ac-9567-fa6b36d1ffc5",
        "type": "InvoicePaymentBooking",
        "number": 1,
        "cancelled": true,
        "reconciled": false,
        "journalNumber": "A2020 15",
        "paymentType": "PAYMENT",
        "paymentDate": "2020-10-31",
        "paymentAmount": 14.40,
        "paymentAmountInMainCurrency": 14.40,
        "paymentContraAccount": "2700",
        "paymentCurrencyRate": 1,
        "paymentDescription": "API-TEST"
      },
      {
        "id": "e62908e9-6259-4a42-8e8c-c8e2bd819ec4",
        "type": "InvoiceCancellationBooking",
        "number": 1,
        "cancelled": false,
        "reconciled": false,
        "journalNumber": "A2020 16",
        "cancelledDate": "2020-12-31",
        "cancelledReason": "API-cancel",
        "cancelledBooking": "bebf83c6-bdde-44ac-9567-fa6b36d1ffc5"
      }
    ]
  },
  "warnings": [],
  "infos": [
    "Buchung A2020 15 wurde storniert."
  ]
}

Now the entire invoice can be cancelled.

Request
POST /api/1.1/incoming_invoices/98a69029-4e88-4ced-ac54-addfa4cd75e3/cancel
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "cancelReason": "API-cancel",
  "cancelDate": "2020-12-31"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "result": {
    "id": "f59602bf-de49-4b8e-81f7-394038016424",
    "invoiceSequence": "ER2020 14",
    "invoiceDate": "2020-10-31",
    "dueDate": "2020-11-24",
    "cancelledReason": "API-cancel",
    "cancelledDate": "2020-12-31",
    "supplier": "5c2289bb-402f-4eef-8ac2-9d1ac5601e83",
    "supplierName": "MediaMarkt",
    "invoiceReference": "API-TEST",
    "description": "API-TEST",
    "netTotal": 12.00,
    "taxTotal": 2.40,
    "total": 14.40,
    "remainingTotal": 0,
    "remainingTotalInMainCurrency": 0,
    "currency": "EUR",
    "currencyRate": 1,
    "lines": [
      {
        "amount": 12,
        "amountType": "N",
        "account": "7200",
        "taxEntry": "020",
        "taxRate": 20,
        "netAmount": 12.00,
        "taxAmount": 2.40,
        "totalAmount": 14.40
      }
    ],
    "bookings": [
      {
        "id": "bebf83c6-bdde-44ac-9567-fa6b36d1ffc5",
        "type": "InvoicePaymentBooking",
        "number": 1,
        "cancelled": true,
        "reconciled": false,
        "journalNumber": "A2020 15",
        "paymentType": "PAYMENT",
        "paymentDate": "2020-10-31",
        "paymentAmount": 14.40,
        "paymentAmountInMainCurrency": 14.40,
        "paymentContraAccount": "2700",
        "paymentCurrencyRate": 1,
        "paymentDescription": "API-TEST"
      },
      {
        "id": "e62908e9-6259-4a42-8e8c-c8e2bd819ec4",
        "type": "InvoiceCancellationBooking",
        "number": 1,
        "cancelled": false,
        "reconciled": false,
        "journalNumber": "A2020 16",
        "cancelledDate": "2020-12-31",
        "cancelledReason": "API-cancel",
        "cancelledBooking": "bebf83c6-bdde-44ac-9567-fa6b36d1ffc5"
      }
    ]
  },
  "warnings": [],
  "infos": []
}
Pay an invoice

Both full and partial payments are supported.

Request
POST /api/1.1/incoming_invoices/3f930320-b548-4c34-91f0-7f06c4798a17/pay
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "paymentAmount": 10, //(1)
  "contraAccount" : "2700",
  "paymentDate": "2020-12-31"
}
  1. If the paymentAmount is omitted, the invoice will be paid in full.

Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "result": {
    "id": "2e2b93bf-7cf5-46f2-bb5b-15528907501a",
    "invoiceSequence": "ER2020 16",
    "invoiceDate": "2020-09-30",
    "netTotal": 12.00,
    "taxTotal": 2.40,
    "total": 14.40,
    "remainingTotal": 4.40,
    "remainingTotalInMainCurrency": 4.40,
    "currency": "EUR",
    "currencyRate": 1,
    "lines": [
      {
        "amount": 12,
        "amountType": "N",
        "account": "7200",
        "taxEntry": "020",
        "taxRate": 20,
        "netAmount": 12.00,
        "taxAmount": 2.40,
        "totalAmount": 14.40,
        "privatePart": 50,
        "privatePartType": "P",
        "privatePartAccount": "9613"
      }
    ],
    "bookings": [
      {
        "id": "fe259648-120b-45fb-9361-2bae1274e889",
        "type": "InvoicePaymentBooking",
        "number": 1,
        "cancelled": false,
        "reconciled": false,
        "journalNumber": "A2020 18",
        "paymentType": "PAYMENT",
        "paymentDate": "2020-12-31",
        "paymentAmount": 10,
        "paymentAmountInMainCurrency": 10,
        "paymentContraAccount": "2700",
        "paymentCurrencyRate": 1
      }
    ]
  },
  "warnings": [],
  "infos": [
    "Der Rechnung wurde die Nummer ER2020 16 vergeben.",
    "Buchung A2020 18 wurde erstellt."
  ]
}

2.2.2. Double-entry accounting (Doppelte Buchhaltung)

In double-entry accounting, creating an unpaid invoice also immediately creates a payables/receivables booking.

Paid incoming invoices where the invoice and paid date are the same do not follow this rule - in this case, only a singular payment booking is generated.

Incoming invoices with different invoice and paid dates and outgoing invoices always create an unpaid initial booking, and may create additional payment bookings (either immediately or with a later payment).

Create a new incoming invoice
Request
POST /api/1.1/incoming_invoices
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "invoiceDate": "2020-12-31",
  "lines": [
    {
      "account": "7200",
      "amount": 12,
      "amountType": "N"
    }
  ]
}
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "result": {
    "id": "8264d43f-22bf-49ab-935a-8db7b2419224",
    "invoiceSequence": "ER2020 1",
    "invoiceDate": "2020-12-31",
    "netTotal": 12.00,
    "taxTotal": 2.40,
    "total": 14.40,
    "remainingTotal": 14.40,
    "remainingTotalInMainCurrency": 14.40,
    "currency": "EUR",
    "currencyRate": 1,
    "lines": [
      {
        "amount": 12,
        "amountType": "N",
        "account": "7200",
        "taxEntry": "020",
        "taxRate": 20,
        "netAmount": 12.00,
        "taxAmount": 2.40,
        "totalAmount": 14.40
      }
    ],
    "bookings": [
      {
        "id": "dc7a2f14-254d-4ee7-9119-e4ab3fa532d2",
        "type": "InvoiceInitialBooking",
        "number": 1,
        "cancelled": false,
        "reconciled": false,
        "journalNumber": "A2020 1",
        "contraAccount": "3300"
      }
    ]
  },
  "warnings": [],
  "infos": [
    "Der Rechnung wurde die Nummer ER2020 1 vergeben.",
    "Buchung A2020 1 wurde erstellt."
  ]
}

The next example has a different invoice date and paid date, which results in a booking to the unpaid contra account and an additional payment booking.

Request
POST /api/1.1/incoming_invoices
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "invoiceDate": "2020-09-15",
  "paidContraAccount": "2700",
  "paidDate": "2020-10-31",
  "lines": [
    {
      "account": "7200",
      "amount": 12,
      "amountType": "N"
    }
  ]
}
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "result": {
    "id": "06a173ab-f2b3-4a36-9931-454b41c3d980",
    "invoiceSequence": "ER2020 2",
    "invoiceDate": "2020-09-15",
    "paidDate": "2020-10-31",
    "netTotal": 12.00,
    "taxTotal": 2.40,
    "total": 14.40,
    "remainingTotal": 0,
    "remainingTotalInMainCurrency": 0,
    "currency": "EUR",
    "currencyRate": 1,
    "lines": [
      {
        "amount": 12,
        "amountType": "N",
        "account": "7200",
        "taxEntry": "020",
        "taxRate": 20,
        "netAmount": 12.00,
        "taxAmount": 2.40,
        "totalAmount": 14.40
      }
    ],
    "bookings": [
      {
        "id": "b7579eef-b18e-4a53-9499-75f775a4e404",
        "type": "InvoiceInitialBooking",
        "number": 1,
        "cancelled": false,
        "reconciled": false,
        "journalNumber": "A2020 2",
        "contraAccount": "3300"
      },
      {
        "id": "e74f47dc-9038-4b31-9d58-ec10bead50b6",
        "type": "InvoicePaymentBooking",
        "number": 2,
        "cancelled": false,
        "reconciled": false,
        "journalNumber": "U2020 1 K12020 1",
        "paymentType": "PAYMENT",
        "paymentDate": "2020-10-31",
        "paymentAmount": 14.40,
        "paymentAmountInMainCurrency": 14.40,
        "paymentContraAccount": "2700",
        "paymentCurrencyRate": 1
      }
    ]
  },
  "warnings": [],
  "infos": [
    "Der Rechnung wurde die Nummer ER2020 2 vergeben.",
    "Buchung A2020 2 wurde erstellt.",
    "Buchung U2020 1 K12020 1 wurde erstellt."
  ]
}
Cancel an incoming invoice

All open payment bookings (if any) must be cancelled first before the entire invoice can be cancelled. The initial booking itself does not have to be cancelled separately - it will be cancelled with the invoice. A booking can be cancelled from the incoming_invoices/<invoice_id>/bookings/<booking_id>/cancel resource.

Request
POST /api/1.1/incoming_invoices/0d148e77-a31e-4cab-9f9b-7f02b4509098/cancel
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "cancelReason": "API-cancel",
  "cancelDate": "2020-12-31"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "result": {
    "id": "0d148e77-a31e-4cab-9f9b-7f02b4509098",
    "invoiceSequence": "ER2020 1",
    "invoiceDate": "2020-12-31",
    "cancelledReason": "API-cancel",
    "cancelledDate": "2020-12-31",
    "netTotal": 12.00,
    "taxTotal": 2.40,
    "total": 14.40,
    "remainingTotal": 0,
    "remainingTotalInMainCurrency": 0,
    "currency": "EUR",
    "currencyRate": 1,
    "lines": [
      {
        "amount": 12,
        "amountType": "N",
        "account": "7200",
        "taxEntry": "020",
        "netAmount": 12.00,
        "taxAmount": 2.40,
        "totalAmount": 14.40
      }
    ],
    "bookings": [
      {
        "id": "abb796ee-fe3b-4ade-974d-50bf71a93e55",
        "type": "InvoiceInitialBooking",
        "number": 1,
        "cancelled": true,
        "reconciled": false,
        "journalNumber": "A2020 1",
        "contraAccount": "3300"
      },
      {
        "id": "5df32e27-e809-44cd-9eb4-a6e7b8867a0a",
        "type": "InvoiceCancellationBooking",
        "number": 1,
        "cancelled": false,
        "reconciled": false,
        "journalNumber": "A2020 3",
        "cancelledDate": "2020-12-31",
        "cancelledReason": "API-cancel",
        "cancelledBooking": "abb796ee-fe3b-4ade-974d-50bf71a93e55"
      }
    ]
  },
  "warnings": [],
  "infos": [
    "Buchung A2020 1 wurde storniert."
  ]
}
Pay an incoming invoice
Request
POST /api/1.1/incoming_invoices/4d55b15d-62f7-42ad-867a-a3706f52039c/pay
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "paymentAmount": 14.4,
  "contraAccount" : "2700",
  "paymentDate": "2020-12-31",
  "paymentDescription": "",
  "paymentAmountInMainCurrency": 14.4
}
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "result": {
    "id": "4d55b15d-62f7-42ad-867a-a3706f52039c",
    "invoiceSequence": "ER2020 3",
    "invoiceDate": "2020-12-31",
    "paidDate": "2020-12-31",
    "netTotal": 12.00,
    "taxTotal": 2.40,
    "total": 14.40,
    "remainingTotal": 0.00,
    "remainingTotalInMainCurrency": 0.00,
    "currency": "EUR",
    "currencyRate": 1,
    "lines": [
      {
        "amount": 12,
        "amountType": "N",
        "account": "7200",
        "taxEntry": "020",
        "netAmount": 12.00,
        "taxAmount": 2.40,
        "totalAmount": 14.40
      }
    ],
    "bookings": [
      {
        "id": "b9220963-133e-43c1-9b30-12696bbd376f",
        "type": "InvoiceInitialBooking",
        "number": 1,
        "cancelled": false,
        "reconciled": false,
        "journalNumber": "A2020 4",
        "contraAccount": "3300"
      },
      {
        "id": "b36a5557-7098-489c-9ff2-b1d682db09f4",
        "type": "InvoicePaymentBooking",
        "number": 2,
        "cancelled": false,
        "reconciled": false,
        "journalNumber": "U2020 2",
        "paymentType": "PAYMENT",
        "paymentDate": "2020-12-31",
        "paymentAmount": 14.4,
        "paymentAmountInMainCurrency": 14.4,
        "paymentContraAccount": "2700",
        "paymentCurrencyRate": 1,
        "paymentDescription": ""
      }
    ]
  },
  "warnings": [],
  "infos": [
    "Buchung U2020 2 wurde erstellt."
  ]
}
Pay the rest of an incoming invoice

If an invoice needs to be paid out without an actual payment, a rest payment can be created - either for discounts or irrecoverable receivables.

For invoices in a different currency, any currency difference will be paid out automatically with the last payment.

Request
POST /api/1.1/incoming_invoices/c478ec4f-e438-4412-bb52-04177ca3252b/pay_rest
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "type": "DISCOUNT",
  "paymentDate": "2020-12-31",
  "paymentDescription": "Test Rest"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "result": {
    "id": "c478ec4f-e438-4412-bb52-04177ca3252b",
    "invoiceSequence": "ER2020 5",
    "invoiceDate": "2020-12-31",
    "paidDate": "2020-12-31",
    "netTotal": 12.00,
    "taxTotal": 2.40,
    "total": 14.40,
    "remainingTotal": 0,
    "remainingTotalInMainCurrency": 0.00,
    "currency": "EUR",
    "currencyRate": 1,
    "lines": [
      {
        "amount": 12,
        "amountType": "N",
        "account": "7200",
        "taxEntry": "020",
        "netAmount": 12.00,
        "taxAmount": 2.40,
        "totalAmount": 14.40
      }
    ],
    "bookings": [
      {
        "id": "c37ca27c-2689-4096-a911-1505782b9646",
        "type": "InvoiceInitialBooking",
        "number": 1,
        "cancelled": false,
        "reconciled": false,
        "journalNumber": "A2020 6",
        "contraAccount": "3300"
      },
      {
        "id": "2b6e91a5-b796-4100-b1b3-c2184b36dfa7",
        "type": "InvoicePaymentBooking",
        "number": 2,
        "cancelled": false,
        "reconciled": false,
        "journalNumber": "U2020 4",
        "paymentType": "PAYMENT",
        "paymentDate": "2020-12-31",
        "paymentAmount": 13.0,
        "paymentAmountInMainCurrency": 13.0,
        "paymentContraAccount": "2700",
        "paymentCurrencyRate": 1,
        "paymentDescription": ""
      },
      {
        "id": "f9a3829f-972f-4fe5-b436-b4c8dac23c26",
        "type": "InvoicePaymentBooking",
        "number": 3,
        "cancelled": false,
        "reconciled": false,
        "journalNumber": "A2020 7",
        "paymentType": "DISCOUNT",
        "paymentDate": "2020-12-31",
        "paymentAmount": 1.40,
        "paymentAmountInMainCurrency": 1.40,
        "paymentContraAccount": "3300",
        "paymentCurrencyRate": 1,
        "paymentDescription": "Test Rest"
      }
    ]
  },
  "warnings": [],
  "infos": [
    "Buchung A2020 7 wurde erstellt."
  ]
}

2.2.3. Outgoing invoice

The endpoints (/outgoing_invoices) are the same as their counterpart for incoming invoices, with some minor differences in available fields and a different class of accounts for the invoice lines. Operations like payment and cancellation also work the same way.

Unlike incoming invoices, outgoing invoices always have an unpaid initial booking.

Create an outgoing invoice

This example creates an unpaid outgoing invoice with the minimal set of required fields.

Request
POST /api/1.1/outgoing_invoices
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "invoiceDate": "2020-10-31",
  "lines": [
    {
      "account": "4000", //(1)
      "amount": 12,
      "amountType": "N"
    }
  ]
}
  1. The /accounts API returns available account codes for use. Outgoing invoices commonly use the E account type.

Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "result": {
    "id": "b3309f52-ddf8-4322-9398-66c469c302e6",
    "invoiceSequence": "AR2020 1",
    "invoiceDate": "2020-10-31",
    "netTotal": 12.00,
    "taxTotal": 2.40,
    "total": 14.40,
    "remainingTotal": 14.40,
    "remainingTotalInMainCurrency": 14.40,
    "currency": "EUR",
    "currencyRate": 1,
    "lines": [
      {
        "amount": 12,
        "amountType": "N",
        "account": "4000",
        "taxEntry": "020",
        "netAmount": 12.00,
        "taxAmount": 2.40,
        "totalAmount": 14.40
      }
    ],
    "bookings": [
      {
        "id": "aedd6040-d101-46a3-ab57-11e4b62e532f",
        "type": "InvoiceInitialBooking",
        "number": 1,
        "cancelled": false,
        "reconciled": false,
        "journalNumber": "E2020 1",
        "contraAccount": "2000"
      }
    ]
  },
  "warnings": [],
  "infos": [
    "Der Rechnung wurde die Nummer AR2020 1 vergeben. ",
    "Buchung E2020 1 wurde erstellt."
  ]
}

This example creates a paid outgoing invoice with a customer from the /customers resource in USD.

Request
POST /api/1.1/outgoing_invoices
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "invoiceDate": "2020-10-31",
  "paidDate": "2020-11-30",
  "customer": "d0287f29-6661-4004-afa8-2a9b7436333a",
  "invoiceReference": "API-TEST",
  "dueDate": "2020-11-22",
  "paidContraAccount": "2700",
  "description": "TestDescription",
  "currency": "USD",
  "currencyRate": "2",
  "lines": [
    {
      "account": "4000",
      "amount": 12,
      "amountType": "N"
    }
  ]
}
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "result": {
    "id": "2c7d084a-99a7-483a-91cc-a90099d21723",
    "customer": "d25a9e1b-fce6-4edf-9d14-dbdc8c3c21a8",
    "customerName": "Testkunde, Herbert Demomann",
    "partnerName": "Testkunde, Herbert Demomann",
    "invoiceSequence": "AR2020 2",
    "invoiceReference": "API-TEST",
    "invoiceDate": "2020-10-31",
    "dueDate": "2020-11-22",
    "paidDate": "2020-11-30",
    "description": "TestDescription",
    "netTotal": 12.00,
    "taxTotal": 2.40,
    "total": 14.40,
    "remainingTotal": 0,
    "remainingTotalInMainCurrency": 0,
    "currency": "USD",
    "currencyRate": 2,
    "lines": [
      {
        "amount": 12,
        "amountType": "N",
        "account": "4000",
        "taxEntry": "020",
        "netAmount": 12.00,
        "taxAmount": 2.40,
        "totalAmount": 14.40
      }
    ],
    "bookings": [
      {
        "id": "3c0bab67-d5bb-42b3-9c36-662d43ed6ea6",
        "type": "InvoiceInitialBooking",
        "number": 1,
        "cancelled": false,
        "reconciled": false,
        "journalNumber": "E2020 2",
        "contraAccount": "2000"
      },
      {
        "id": "a69d006b-9bd1-4c5c-a284-83c1fba0bbb6",
        "type": "InvoicePaymentBooking",
        "number": 2,
        "cancelled": false,
        "reconciled": false,
        "journalNumber": "U2020 5",
        "paymentType": "PAYMENT",
        "paymentDate": "2020-11-30",
        "paymentAmount": 14.40,
        "paymentAmountInMainCurrency": 28.80,
        "paymentContraAccount": "2700",
        "paymentCurrencyRate": 2,
        "paymentDescription": "TestDescription"
      }
    ]
  },
  "warnings": [],
  "infos": [
    "Der Rechnung wurde die Nummer AR2020 2 vergeben. ",
    "Buchung E2020 2 wurde erstellt.",
    "Buchung U2020 5 wurde erstellt."
  ]
}

2.3. Invoices and documents

With Invoices new invoices in the invoices and documents modul can be created, payments been applied and all information and status been selected.

2.3.1. Create invoices

Invoices in staging status

A minimal set of values to create a new invoice for staging. Note that default texts will be applied from the layout setup if they are not set explicitly.

Request
POST /api/1.1/invoices
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
    "state": "STAGING",
    "date": "2016-10-21",
    "customerName": "manubu GmbH", // (1)
    "lines": [
        {
          "name": "REST Item",
          "itemPrice": 53.24, // (2)
          "itemPriceType": "N", // (2)
          "account": "4000", // (3)
          "taxClassEntry": "020", // (3)
          "amount": 1.00,
          "netPrice": 53.24,
          "taxPrice": 10.65,
          "totalPrice": 63.89
        }
    ]
}
  1. Alternatively, set a customer with the id to reference an existing customer.

  2. Alternatively, reference an item. Note that the name, account and tax class entry still have to be set to prevent a mismatch between expected and calculated prices.

  3. Use the /accounts API to make sure that the account exists and that it allows the specified tax class.

Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "uuid": "830ed1cc-d2c1-4fb8-8579-fa6fb8f1e399",
  "description": "Nachfolgend finden Sie die Detailaufstellung zur Rechnung.",
  "date": "2016-10-21",
  "state": "STAGING",
  "netAmount": 53.24,
  "taxAmount": 10.65,
  "totalAmount": 63.89,
  "remainingAmount": 63.89,
  "currency": "EUR",
  "currencyRate": 1,
  "customerName": "manubu GmbH",
  "sequenceGroup": "e11693d5-15e6-42c3-b23c-1c01c0146d6b",
  "updatedAt": "2020-09-22T12:59:26.720Z",
  "lines": [
    {
      "id": 1,
      "name": "REST Item",
      "type": "LINE",
      "itemPrice": 53.24,
      "itemPriceType": "N",
      "netPrice": 53.24,
      "taxPrice": 10.65,
      "totalPrice": 63.89,
      "remainingAmount": 63.89,
      "discount": 0,
      "discountMode": "CONSTANT",
      "amount": 1.00,
      "account": "4000",
      "taxClassEntry": "020"
    }
  ],
  "addressInfo": {},
  "paymentTerm": "96c758c7-98ae-42b4-b742-5d30bd62e79c",
  "paid": false,
  "dueDate": "2016-11-04"
}

Alternatively, you can override the address for this document only. This address not will be stored in the customer. Either the company name or one name must be set, otherwise the address will be ignored.

Request
POST /api/1.1/cash_registers/1/receipts
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "state": "STAGING",
  "sequenceGroup": "5665af78-cc67-4910-b030-f649fde5d8a8",
  "customer": "43487c42-8b82-47ba-97aa-85b38caefae4",
  "additionalAddress": "0709e91e-1d3e-4d27-aaf3-bfee7dfedac8",
  "date": "2018-12-31",
  "lines": [
    {
      "name": "BDD",
      "item": "c05adb71-7c14-43ad-a8e3-804b0b99ce13",
      "taxClassEntry": "020",
      "amount": 1.00,
      "netPrice": 12,
      "taxPrice": 2.4,
      "totalPrice": 14.4
    }
  ],
  "addressInfo": {
    "salutationCode": "Hr",
    "title": "Hr",
    "firstName": "Max", // (1)
    "lastName": "Mustermann", // (1)
    "compSalutationCode": "Hr",
    "companyName": "Test GmbH", // (1)
    "streetName": "Mustergasse",
    "streetNumber": "707",
    "zipCode": "1010",
    "city": "Wien",
    "country": "AT",
    "region": "WIEN",
    "copyEmailType": "CC",
    "emailAddress": "maxMustermann@email.com",
    "copyEmailAddress": "maxMustermann2@email.com"
  }
}
  1. Company name, last name or first name must be set or the address info will be ignored

Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "uuid": "fbf0c95c-84ec-429b-936b-53cdd429711b",
  "description": "<p>Nachfolgend finden Sie die Detailaufstellung zur Rechnung.</p>",
  "date": "2018-12-31",
  "state": "STAGING",
  "netAmount": 12.00,
  "taxAmount": 2.40,
  "totalAmount": 14.40,
  "remainingAmount": 14.40,
  "currency": "EUR",
  "currencyRate": 1,
  "customer": "43487c42-8b82-47ba-97aa-85b38caefae4",
  "customerName": "Test GmbH, Max Mustermann",
  "sequenceGroup": "5665af78-cc67-4910-b030-f649fde5d8a8",
  "updatedAt": "2022-05-30T10:26:36.937009Z",
  "lines": [
    {
      "id": 1,
      "name": "BDD",
      "description": "<p>110min Intensivkurs</p>",
      "type": "LINE",
      "itemPrice": 23.65,
      "itemPriceType": "T",
      "unitOfMeasure": "PC",
      "netPrice": 12,
      "taxPrice": 2.4,
      "totalPrice": 14.4,
      "remainingAmount": 14.4,
      "discount": 0,
      "discountMode": "CONSTANT",
      "amount": 1.00,
      "itemNumber": "TRi110",
      "item": "c05adb71-7c14-43ad-a8e3-804b0b99ce13",
      "account": "4001",
      "taxClassEntry": "020"
    }
  ],
  "additionalAddress": "0709e91e-1d3e-4d27-aaf3-bfee7dfedac8",
  "addressInfo": {
    "salutationCode": "Hr",
    "title": "Hr",
    "firstName": "Max",
    "lastName": "Mustermann",
    "compSalutationCode": "Hr",
    "companyName": "Test GmbH",
    "streetName": "Mustergasse",
    "streetNumber": "707",
    "zipCode": "1010",
    "city": "Wien",
    "emailAddress": "maxMustermann@email.com",
    "copyEmailAddress": "maxMustermann2@email.com",
    "copyEmailType": "CC",
    "country": "AT",
    "region": "WIEN"
  },
  "paymentTerm": "d0150ebf-ceb8-4ae9-a8e7-d0ff628e0967",
  "paid": false,
  "dueDate": "2019-01-05"
}
Finalized invoices

A finalized invoice requires the totals to be set to prevent a mismatch between displayed and server-calculated prices.

Request
POST /api/1.1/invoices
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
    "state": "FINALIZED",
    "date": "2016-10-21",
    "customerName": "manubu GmbH",
    "netAmount": 106.48,
    "taxAmount": 21.30,
    "totalAmount": 127.78,
    "layoutSetup": "e7b189b1-f0ae-4c71-8dc7-3108c1e46b34", // (1)
    "lines": [
        {
          "name": "REST Item",
          "itemPrice": 53.24,
          "itemPriceType": "N",
          "account": "4000",
          "taxClassEntry": "020",
          "amount": 2.00,
          "netPrice": 106.48,
          "taxPrice": 21.30,
          "totalPrice": 127.78,
          "itemDefaulting": false
        }
    ],
  "addressInfo": {}
}
  1. Can be omitted if a default layout setup is present and to be used.

Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "id": "R 2020 4",
  "uuid": "801744c4-b612-4107-8e82-4bdd8cb42939",
  "description": "Nachfolgend finden Sie die Detailaufstellung zur Rechnung.",
  "date": "2020-10-21",
  "state": "FINALIZED",
  "netAmount": 106.48,
  "taxAmount": 21.30,
  "totalAmount": 127.78,
  "remainingAmount": 127.78,
  "currency": "EUR",
  "currencyRate": 1,
  "footer": "Diese Rechnung wurde sowohl im Format PDF als auch als ebInterface XML erstellt.",
  "customerName": "manubu GmbH",
  "layoutSetup": "e7b189b1-f0ae-4c71-8dc7-3108c1e46b34",
  "sequenceGroup": "e11693d5-15e6-42c3-b23c-1c01c0146d6b",
  "updatedAt": "2020-09-22T13:09:32.818Z",
  "lines": [
    {
      "id": 1,
      "name": "REST Item",
      "type": "LINE",
      "itemPrice": 53.24,
      "itemPriceType": "N",
      "netPrice": 106.48,
      "taxPrice": 21.30,
      "totalPrice": 127.78,
      "remainingAmount": 127.78,
      "discount": 0,
      "discountMode": "CONSTANT",
      "amount": 2.00,
      "account": "4000",
      "taxClassEntry": "020"
    }
  ],
  "addressInfo": {},
  "paymentTerm": "96c758c7-98ae-42b4-b742-5d30bd62e79c",
  "paid": false,
  "dueDate": "2020-11-04"
}
External invoices

External documents require the id-field to be set. Layout information is not needed since no PDF will be generated.

Request
POST /api/1.1/invoices
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "id": "ER 2016-0001",
  "date": "2016-10-21",
  "state": "EXTERNAL",
  "netAmount": 95.83,
  "taxAmount": 19.17,
  "totalAmount": 115.00,
  "currency": "EUR",
  "currencyRate": 1,
  "customerName": "manubu GmbH",
  "lines": [
    {
      "id": 1,
      "name": "REST Item",
      "itemPrice": 53.24,
      "itemPriceType": "N",
      "netPrice": 95.83,
      "taxPrice": 19.17,
      "totalPrice": 115.00,
      "discount": 10,
      "discountMode": "RATE",
      "amount": 2,
      "account": "4000",
      "taxClassEntry": "020"
    }
  ],
  "addressInfo": {},
  "paymentTerm": "96c758c7-98ae-42b4-b742-5d30bd62e79c", // (1)
  "deliveryFromDate": "2016-10-21",
  "deliveryToDate": "2016-10-30"
}
  1. Can be omitted if the default payment term is to be used. Note that the payment term sets the due date of the invoice.

Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "id": "ER 2016-0001",
  "uuid": "bbf2cfa4-0555-40f4-bae6-df02b8ee8ffd",
  "description": "",
  "date": "2016-10-21",
  "state": "EXTERNAL",
  "netAmount": 95.83,
  "taxAmount": 19.17,
  "totalAmount": 115.00,
  "remainingAmount": 115.00,
  "currency": "EUR",
  "currencyRate": 1,
  "footer": "",
  "customerName": "manubu GmbH",
  "updatedAt": "2020-09-22T13:15:07.742Z",
  "lines": [
    {
      "id": 1,
      "name": "REST Item",
      "type": "LINE",
      "itemPrice": 53.24,
      "itemPriceType": "N",
      "netPrice": 95.83,
      "taxPrice": 19.17,
      "totalPrice": 115.00,
      "remainingAmount": 115.00,
      "discount": 10,
      "discountMode": "RATE",
      "amount": 2,
      "account": "4000",
      "taxClassEntry": "020"
    }
  ],
  "paymentTerm": "96c758c7-98ae-42b4-b742-5d30bd62e79c",
  "deliveryFromDate": "2016-10-21",
  "deliveryToDate": "2016-10-30",
  "paid": false,
  "dueDate": "2016-11-04"
}

2.3.2. Create payments for invoices

A simple payment subtracts the paid amount from the remaining amount.The invoice is marked as paid once the remaining amount reaches zero.

Request
POST /api/1.1/invoices/R 2016-0001/payments
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "amount": 2000.00,
  "date": "2016-10-21",
  "payingAccount": "2800"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
[
  {
    "date": "2016-10-21",
    "type": "PAYED",
    "amount": 10.00,
    "cancelled": false
  }
]

A payment can also define a restType if the remaining amount after the payment is to be marked as completed.In this case two payment history entries are created.

Request
POST /api/1.1/invoices/R 2016-0001/payments
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "amount": 10.00,
  "currencyRate" : 1,
  "note": "REST payment",
  "date": "2016-10-21",
  "payingAccount": "2800",
  "restType": "UNCOLLECTABLE"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
[
  {
    "date": "2016-10-21",
    "type": "PAYED",
    "note": "REST payment",
    "amount": 10.00,
    "cancelled": false
  },
  {
    "date": "2016-10-21",
    "type": "UNCOLLECTABLE",
    "note": "REST payment",
    "amount": 97.78,
    "cancelled": false
  }
]

2.4. Item management

Item management are in master data management and used for invoicing and documents or cash register.

2.4.1. Search for items

Request
GET /api/1.1/items?search=Test
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw

The search parameter filters results matching the name, description, number, or barcode of the item.

Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
    "id": "ea108755-2580-476b-a41b-a5ee32ce77d5",
    "name": "Testprodukt 1",
    "unitOfMeasure": "PC",
    "description": "<p><b>Beschreibung</b> des <i>Produktes</i></p>",
    "descriptionFormatted": "Beschreibung des Produktes\r\n\r\n",
    "sellingPrice": 998.82,
    "amountType": "N",
    "currency": "EUR",
    "marginMode": "CONSTANT",
    "additionalChargeMode": "CONSTANT",
    "itemCategory": "967c6658-8b1c-4268-a2ca-33c09d493c32",
    "account": "4000",
    "taxClassEntry": "020",
    "color": "b51010"
  }

2.4.2. Create items

Request
POST /api/1.1/items
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
    "itemCategory": "967c6658-8b1c-4268-a2ca-33c09d493c32", //(1)
    "itemCategoryDefaulting": true, //(2)
    "sellingPrice": 12,
    "name": "API",
    "amountType": "N"
}
  1. Use an item category id from the item_category API to add the item to this category.

  2. If set to true and when no account and taxClassEntry are supplied, they will be defaulted from the item category. You can omit itemCategoryDefaulting (or set to false) to disable this behavior. Tax rate and account then become mandatory fields.

Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "id": "401025ed-300e-45dc-8d2a-f3a3ad147ff3",
  "name": "API",
  "sellingPrice": 12,
  "amountType": "N",
  "currency": "EUR",
  "marginMode": "CONSTANT",
  "additionalChargeMode": "CONSTANT",
  "itemCategory": "967c6658-8b1c-4268-a2ca-33c09d493c32",
  "account": "4000",
  "taxClassEntry": "020",
  "color": "2bc25d"
}

2.5. Cash register

The cash register apis are used for the cash register according to austrian law.

2.5.1. Income receipts

Income receipts are the most common type and can be created with or without item references.

Request
POST /api/1.1/cash_registers/1/receipts
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "type": "INCOME",
  "totalAmount": 120.00, // (1)
  "lines": [
    {
      "itemPrice": 100.00,
      "itemPriceType": "N", // (2)
      "totalPrice": 120.00,
      "account": "4000", // (3)
      "taxClassEntry": "020"
    }
  ]

}
  1. The total amount of the receipts must match the total sum of all lines, otherwise an error will be returned.

  2. Indicates if the item unit price is net (N) or total (T)

  3. Use the /accounts API to make sure that the account exists and that it allows the specified tax class.

Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "id": "2022.0075",
  "type": "INCOME",
  "dateTime": "2022-05-30T11:24:37.830793",
  "creationDateTime": "2022-05-30T11:24:37.830793",
  "totalAmount": 120.00,
  "qrCode": "_R1-AT1_1_2017.0001_2017-03-24T08:57:23_120,00_0,00_0,00_0,00_0,00_0DT1DvvW5Co=_6A729B85_WZ5OYdVFEgU=_MARh3Qa7KjAJmzh9DCmljZmYs7uKkZ82OZglC9+c8q6W1xfUeP8fOFCBTqvUjih3+esFtH+FUbT3A4NK7cMiWA==",
  "lines": [
    {
      "id": 1,
      "itemPrice": 100.00,
      "itemPriceType": "N",
      "netPrice": 100.00,
      "taxPrice": 20.00,
      "totalPrice": 120.00,
      "discount": 0,
      "discountMode": "CONSTANT",
      "amount": 1,
      "account": "4000",
      "taxClassEntry": "020"
    }
  ],
  "addressInfo": {}
}

Alternatively, an item from the /items API can be supplied to default most fields.

Request
POST /api/1.1/cash_registers/1/receipts
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "type": "INCOME",
  "totalAmount": 344.88, // (1)
  "lines": [
    {
      "item": "1383b0e0-f3c8-761b-b103-e6adc5eeb24b",
      "totalPrice": 114.96 // (1)
    },
    {
      "item": "1383b0e0-f3c8-761b-b103-e6adc5eeb24b",
      "amount": 2,
      "totalPrice": 229.92
    }
  ]

}
  1. Even with item references the line and receipt totals must be supplied.

Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "id": "2017.0002",
  "type": "INCOME",
  "dateTime": "2017-01-12T14:55:31.361",
  "creationDateTime": "2017-01-12T14:55:31.381",
  "totalAmount": 344.88,
  "qrCode": "_R1-AT1_3_2017.0006_2017-03-24T08:57:23_120,00_0,00_0,00_0,00_0,00_0DT1DvvW5Co=_6A729B85_WZ5OYdVFEgU=_MARh3Qa7KjAJmzh9DCmljZmYs7uKkZ82OZglC9+c8q6W1xfUeP8fOFCBTqvUjih3+esFtH+FUbT3A4NK7cMiWA==",
  "lines": [
    {
      "id": 1,
      "itemNumber": "KASHA001",
      "item": "1383b0e0-f3c8-761b-b103-e6adc5eeb24b",
      "itemName": "Kasse-System Sharp XE-A217B",
      "itemPrice": 114.96,
      "itemPriceType": "T",
      "unitOfMeasure": "EUR",
      "netPrice": 95.80,
      "taxPrice": 19.16,
      "totalPrice": 114.96,
      "discount": 0,
      "discountMode": "CONSTANT",
      "amount": 1,
      "account": "4000",
      "taxClassEntry": "020"
    },
    {
      "id": 2,
      "itemNumber": "KASHA001",
      "item": "1383b0e0-f3c8-761b-b103-e6adc5eeb24b",
      "itemName": "Kasse-System Sharp XE-A217B",
      "itemPrice": 114.96,
      "itemPriceType": "T",
      "unitOfMeasure": "EUR",
      "netPrice": 191.60,
      "taxPrice": 38.32,
      "totalPrice": 229.92,
      "discount": 0,
      "discountMode": "CONSTANT",
      "amount": 2,
      "account": "4000",
      "taxClassEntry": "020"
    }
  ],
  "addressInfo": {}
}

Alternatively, you can override the address for this document only. This address not will be stored. Either the company name or one name must be set, otherwise the address will be ignored.

Request
POST /api/1.1/cash_registers/1/receipts
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "type": "INCOME",
  "totalAmount": 120.00,
  "customerMail": "test@test.at",
  "customer": "43487c42-8b82-47ba-97aa-85b38caefae4",
  "additionalAddress": "0709e91e-1d3e-4d27-aaf3-bfee7dfedac8",
  "lines": [
    {
      "itemPrice": 100.00,
      "itemPriceType": "N",
      "totalPrice": 120.00,
      "account": "4000",
      "taxClassEntry": "020"
    }
  ],
  "addressInfo": {
    "salutationCode": "Hr",
    "title": "Hr",
    "firstName": "Max", // (1)
    "lastName": "Mustermann", // (1)
    "compSalutationCode": "Hr",
    "companyName": "Test GmbH", // (1)
    "streetName": "Mustergasse",
    "streetNumber": "707",
    "zipCode": "1010",
    "city": "Wien",
    "country": "AT",
    "region": "WIEN",
    "copyEmailType": "CC",
    "emailAddress": "maxMustermann@email.com",
    "copyEmailAddress": "maxMustermann2@email.com"
  }
}
  1. Company name, last name or first name must be set or the address info will be ignored

Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "id": "2022.0077",
  "type": "INCOME",
  "dateTime": "2022-05-30T12:25:04.463898",
  "creationDateTime": "2022-05-30T12:25:04.463898",
  "customer": "43487c42-8b82-47ba-97aa-85b38caefae4",
  "customerName": "Test GmbH, Max Mustermann",
  "additionalAddress": "0709e91e-1d3e-4d27-aaf3-bfee7dfedac8",
  "totalAmount": 120.00,
  "lines": [
    {
      "id": 1,
      "itemPrice": 100.00,
      "itemPriceType": "N",
      "netPrice": 100.00,
      "taxPrice": 20.00,
      "totalPrice": 120.00,
      "discount": 0,
      "discountMode": "CONSTANT",
      "amount": 1,
      "account": "4000",
      "taxClassEntry": "020"
    }
  ],
  "addressInfo": {
    "salutationCode": "Hr",
    "title": "Hr",
    "firstName": "Max",
    "lastName": "Mustermann",
    "compSalutationCode": "Hr",
    "companyName": "Test GmbH",
    "streetName": "Mustergasse",
    "streetNumber": "707",
    "zipCode": "1010",
    "city": "Wien",
    "emailAddress": "maxMustermann@email.com",
    "copyEmailAddress": "maxMustermann2@email.com",
    "copyEmailType": "CC",
    "country": "AT",
    "region": "WIEN"
  }
}

2.5.2. Cash rebooks

A rebook is a special type of receipt that has a cash or bank account (U-type in the /accounts API). Instead of lines, a single total amount is provided.

Request
POST /api/1.1/cash_registers/1/receipts
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "type": "REBOOK",
  "totalAmount": 120.00,
  "fromAccount": "2800" // (1)
}
  1. For a negative rebook (reducing the register balance), supply the toAccount instead.

Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "id": "U2017.0001",
  "type": "REBOOK",
  "dateTime": "2017-01-12T14:58:43.188",
  "creationDateTime": "2017-01-12T14:58:43.194",
  "totalAmount": 120.00,
  "lines": [
    {
      "id": 1,
      "itemName": "Bargeld-Einlage",
      "itemPrice": 120.00,
      "itemPriceType": "T",
      "netPrice": 120.00,
      "taxPrice": 0,
      "totalPrice": 120.00,
      "amount": 1,
      "account": "2800",
      "taxClassEntry": "000"
    }
  ]
}

2.5.3. Daily closings

The latest daily closing for a register can be obtained quickly with the last-path instead of the date as id.

Request
GET /api/1.1/cash_registers/1/daily_closings/last
Authorization: Bearer eyJhbGci...Vm-yw
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "id": "2017-01-12",
  "creationDate": "2017-01-12T13:51:48.851Z",
  "state": "OPEN",
  "openingBalance": 415.99,
  "closingBalance": 1000.87, // (1)
  "incomeCount": 2,
  "rebookCount": 1,
  "otherCount": 0,
  "totalCount": 3, // (1)
  "monthlyClosing": false,
  "yearlyClosing": false
}
  1. Closing balance and total receipt count must be supplied to finalize a daily closing at the end of each day. This step verifies that the user has seen and confirmed the final balance.

Request
POST /api/1.1/cash_registers/1/daily_closings/last/finalize
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "closingBalance": 1000.87,
  "totalCount": 3
}
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "id": "2017-01-12",
  "creationDate": "2017-01-12T13:51:48.851Z",
  "state": "FINALIZED",
  "openingBalance": 415.99,
  "closingBalance": 1000.87,
  "incomeCount": 2,
  "rebookCount": 1,
  "otherCount": 0,
  "totalCount": 3,
  "monthlyClosing": false,
  "yearlyClosing": false
}

Once a full month has passed, the last daily closing must also close the month, which is done automatically when creating a new receipt.

If required, the month can also be closed manually. This is done with a simple POST-call, and can be mirrored for the yearly closing.

Request
POST /api/1.1/cash_registers/1/daily_closings/last/close_month
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "id": "2017-01-12",
  "creationDate": "2017-01-12T13:51:48.851Z",
  "state": "FINALIZED",
  "openingBalance": 415.99,
  "closingBalance": 1000.87,
  "incomeCount": 2,
  "rebookCount": 1,
  "otherCount": 1,
  "totalCount": 4,
  "monthlyClosing": true,
  "yearlyClosing": false
}

2.6. Accounting

Core modul for all accounting purpose. Bookings and payments from invoice and documents or incoming and outgoing invoices are booked into the accounting module. In Addition direct booking functionality can be done.

2.6.1. Create a rebook

Create a new booking to an account

Request
POST /api/1.1/rebooks
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "type": "REBOOK", // (1)
  "amount": 1200.00,
  "account": "2800",
  "contraAccount": "2700",
  "description": "",
  "reference": "",
  "date": "2020-01-01" // (2)
}
  1. Possible types are REBOOK, CORRECTION and FINALIZATION. The type determines the available accounts - use the /accounts API to search for valid accounts for the type.

  2. If no date is set, the booking will be defaulted to the current date.

Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "id": "U2020 2",
  "rebookType": "REBOOK",
  "account": "2800",
  "contraAccount": "2700",
  "currencyRate": 1,
  "payedDate": "2020-01-01",
  "cancelled": false,
  "description": "",
  "currencyCode": "EUR",
  "invoiceReference": "",
  "journalTotPrice": 1200.00,
  "invoiceDate": "2020-01-01"
}

2.7. Financial Setup

Getting and setting basic financial settings.

2.7.1. Get account balances

Returns a list of accounts and the current balance, determined by the sum of all bookings within the specified time period.

Request
GET /api/1.1/accounts/balances?from=2020-01-01&to=2020-12-31&type=E
Authorization: Bearer eyJhbGci...Vm-yw
  • from & to: Time period to use. Defaults to the current fiscal year.

  • type: To filter by a specific account type. Examples are E (revenue), A (expenses), U (cash, rebooks, etc.)

Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
[
  {
    "accountCode": "4000",
    "accountName": "Einnahmen (Erlöse)",
    "sum": 92.55
  }
]

2.7.2. Get bank accounts

Returns a list of bank accounts or with bank_accounts/{id} you will get the bank account with the id you send.

Request
GET /api/1.1/bank_accounts
Authorization: Bearer eyJhbGci...Vm-yw
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
[
  {
    "id": "d56d96c4-3v3d-29c6-ecb7-74ab91da6510",
    "name": "Volksbank Wien",
    "bankName": "Volksbank",
    "accountOwnerName": "Max Mustermann",
    "bic": "VBOEATWW",
    "iban": "AT411120000237571999",
    "accountCode": "2800",
    "currencyCode": "EUR"
  }
]

2.8. Master data management

2.8.1. Additional addresses

Get the main address for a selected customer (/customers)

2.8.2. Get a customer

Request
GET /api/1.1/customers/6bce13cf-e928-4af3-8075-e89c503e3bb0
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
    "id": "6bce13cf-e928-4af3-8075-e89c503e3bb0",
    "title": "Ing",
    "firstName": "Max",
    "lastName": "Mustermann",
    "compSalutationCode": "Herr",
    "companyName": "free",
    "streetName": "Mustermanngasse",
    "streetNumber": "12",
    "zipCode": "1230",
    "city": "Wien",
    "emailAddress": "max.mustermann@free.com",
    "telNumber": "0165421564",
    "skype": "",
    "noVatNumber": false,
    "country": "AT",
    "region": "WIEN",
    "supplierNumber": "12",
    "myCustomerNumber": "6"
}

2.8.3. Create a customer

Request
POST /api/1.1/customers
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "customerNumber": "12345",
  "companyName": "TestCustomer 1",
  "firstName": "Max",
  "lastName": "Mustermann",
  "taxNumber": "TAXNR1"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "id": "9cb7ab78-de86-43c3-b3ce-d477b629f30c",
  "taxNumber": "TAXNR1",
  "firstName": "Max",
  "lastName": "Mustermann",
  "companyName": "TestCustomer 1",
  "noVatNumber": false,
  "country": "AT",
  "customerNumber": "12345"
}

2.8.4. Create a customer and a contra account (double-entry accounting)

This creates a customer and a contra account (receivables) in one step.

Request
POST /api/1.1/customers
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "customerNumber": "12345",
  "companyName": "TestCustomer 1",
  "firstName": "Max",
  "lastName": "Mustermann",
  "contraAccount": "20012",
  "createContraAccount": true,
  "taxNumber": "TAXNR1"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "id": "82008731-4824-4012-8ee5-00bcdad38419",
  "taxNumber": "TAXNR1",
  "firstName": "Max",
  "lastName": "Mustermann",
  "companyName": "TestCustomer 1",
  "noVatNumber": false,
  "country": "AT",
  "contraAccount": "20012",
  "customerNumber": "12345"
}

2.8.5. Get additional addresses

Request
GET /api/1.1/customers/6bce13cf-e928-4af3-8075-e89c503e3bb0/additional_addresses
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
[
  {
    "id": "79ca5835-133f-4668-8ea0-d4d4e9377ef8",
    "identifier": "",
    "addressType": "INVOICE_AND_DELIVERY_ADDRESS",
    "streetName": "Wollstrasse",
    "streetNumber": "120",
    "zipCode": "2800",
    "city": "Wien",
    "country": "AT",
    "region": "WIEN",
    "addressBranchNo": "1",
    "emailAddress": "",
    "copyEmailType": "BCC",
    "telNumber": "5646545",
    "faxNumber": "546541",
    "mobileNumber": "564651",
    "skype": "",
    "webAddress": "",
    "description": ""
  },
  {
    "id": "8a5f3725-e6a7-430a-b27c-be5d7f2fcd79",
    "identifier": "Zweitadresse",
    "addressType": "INVOICE_AND_DELIVERY_ADDRESS",
    "streetName": "Andere Teststraße",
    "streetNumber": "120",
    "zipCode": "2800",
    "city": "Wien",
    "country": "AT",
    "region": "WIEN",
    "addressBranchNo": "56456465",
    "emailAddress": "test@otherdomain.com",
    "copyEmailType": "BCC",
    "telNumber": "5646545",
    "faxNumber": "546541",
    "mobileNumber": "564651",
    "skype": "",
    "webAddress": "",
    "description": ""
  }
]

2.8.6. Create a new additional address

Create a new additional address for the selected supplier/customer.

Request
POST /api/1.1/customers/6bce13cf-e928-4af3-8075-e89c503e3bb0/additional_addresses/
Content-Type: application/json
Authorization: Bearer eyJhbGci...Vm-yw
{
  "identifier": "Zweitadresse",
  "streetName": "Teststrasse",
  "streetNumber": 1,
  "zipCode": "1040",
  "city": "Wien",
  "country": "AT",
  "region": "WIEN",
  "addressBranchNo": "",
  "emailAddress": "test@testdomain.at",
  "telNumber": "",
  "faxNumber": "",
  "mobileNumber": "",
  "skype": "",
  "webAddress": "",
  "description": "",
  "copyEmailType": "",
  "addressType": ""
}
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
    "id": "0f5c87a3-550c-4b5d-ae58-270ca5c3cc19",
    "identifier": "Zweitadresse",
    "addressType": "INVOICE_AND_DELIVERY_ADDRESS",
    "streetName": "Teststraße",
    "streetNumber": "1",
    "zipCode": "1040",
    "city": "Wien",
    "country": "AT",
    "region": "WIEN",
    "addressBranchNo": "",
    "emailAddress": "test@testdomain.at",
    "copyEmailType": "BCC",
    "telNumber": "",
    "faxNumber": "",
    "mobileNumber": "",
    "skype": "",
    "webAddress": "",
    "description": ""
}

2.9. Bank Statements

Creating and adding bank statement transactions to the bank statement module.

2.9.1. Get a bank statement header

This returns only the head data of the statement. To get all lines, see the /bank_statements/<id>/lines resource.

Request
GET /api/1.1/bank_statements
Authorization: Bearer eyJhbGci...Vm-yw
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
[
  {
    "id": "1961d46e-d7e4-4b95-9e27-9053e43ef97b",
    "bankAccount": "2850",
    "fileName": "API",
    "currencyCode": "EUR",
    "statementDate": "2021-03-16",
    "valueDateFrom": "1983-05-27",
    "valueDateTo": "2099-12-31",
    "status": "NEW",
    "bankAccountName": "Test"
  }
]

2.9.2. Create a bank statement header

A bank statement header is linked to a bank account, see the /bank_accounts resource.

Request
POST /api/1.1/bank_statements
Authorization: Bearer eyJhbGci...Vm-yw
[
  {
    "bankAccount": "d56d96c4-3b3d-29c6-ecb7-74cb91da6510",
    "fileName": "test_api"
  }
]
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "id": "62e9dcdf-5640-4d53-8cfc-2f728aeabd94",
  "bankAccount": "2800",
  "fileName": "test_api",
  "currencyCode": "EUR",
  "statementDate": "2021-03-18",
  "valueDateFrom": "2021-03-18",
  "valueDateTo": "2021-03-18",
  "status": "NEW",
  "bankAccountName": "Volksbank Wien"
}

2.9.3. Create bank statement lines for an existing header

The returnLines parameter determines if only counts are returned (false) or all created lines (true)

Request
POST /api/1.1/bank_statements/1961d46e-d7e4-4b95-9e27-9053e43ef97b/lines
Authorization: Bearer eyJhbGci...Vm-yw
{
  "returnLines": false,
  "bankStatementLines": [
    {
      "valueDate": "2020-10-31",
      "amount": -2000,
      "bookingDate": "2020-10-31"
    },
    {
      "valueDate": "2020-10-31",
      "amount": 4000,
      "bookingDate": "2020-10-31"
    }
  ]
}
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "addedCount": 2,
  "duplicatesCount": 0
}

2.9.4. Create bank statement lines for a bank account

You can append new lines to a header related directly to a bank account. If no header exists, it will be created.

This is useful for a continuous stream of new lines to an account, for example with payment processors like PayPal.

Lines that were already added in previous calls (and have the same transaction_id) will be ignored.

Request
POST /api/1.1/bank_statements/by_bank_account/40e2f246-8998-3dec-b51c-4edf7f688d4a/lines
Authorization: Bearer eyJhbGci...Vm-yw
{
  "returnLines": true,
  "bankStatementLines": [
    {
      "description": "Test-Api-test",
      "valueDate": "2020-10-31",
      "amount": -2000,
      "bookingDate": "2020-10-31",
      "transactionId": "9001"
    },
    {
      "description": "Test-Api2",
      "valueDate": "2020-10-31",
      "amount": -9000,
      "bookingDate": "2020-10-31",
      "originatorBankReference": "testo",
      "originatorBankCode": "mio",
      "originatorAccountNumber": "jusaya",
      "transactionId": "645216159451239"
    },
    {
      "description": "Test-Api3",
      "valueDate": "2020-10-31",
      "amount": 4000,
      "bookingDate": "2020-10-31",
      "transactionId": "9001"
    },
    {
      "description": "Test-Api4",
      "valueDate": "2020-10-31",
      "amount": 4000,
      "bookingDate": "2020-10-31"
    }
  ]
}
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "addedCount": 3,
  "duplicatesCount": 1,
  "addedLines": [
    {
      "id": 1,
      "description": "Test-Api-test",
      "valueDate": "2020-10-31",
      "amount": -2000,
      "currencyCode": "EUR",
      "bookingDate": "2020-10-31",
      "transactionId": "9001",
      "status": "NEW",
      "remainingAmount": -2000
    },
    {
      "id": 2,
      "description": "Test-Api2",
      "valueDate": "2020-10-31",
      "amount": -9000,
      "currencyCode": "EUR",
      "bookingDate": "2020-10-31",
      "originatorBankReference": "testo",
      "originatorBankCode": "mio",
      "originatorAccountNumber": "jusaya",
      "transactionId": "645216159451239",
      "status": "NEW",
      "remainingAmount": -9000
    },
    {
      "id": 3,
      "description": "Test-Api4",
      "valueDate": "2020-10-31",
      "amount": 4000,
      "currencyCode": "EUR",
      "bookingDate": "2020-10-31",
      "status": "NEW",
      "remainingAmount": 4000
    }
  ],
  "duplicateTransactionIds": [
    "9001"
  ]
}

2.10. Document Management

Uploading documents and associated metadata.

2.10.1. Upload a document to the staging area

Unlike other resources in the API, this request is a multipart/form-data call. It consists of two parts: A JSON which contains (optional) metadata and a description, and one or multiple binary attachments. The file name is taken from the content-disposition of the first attachment.

Note that for one attachment, only PDF, image and text types are supported. For multiple attachments, only image formats are supported, and those images will be merged into one PDF.

Every fragment of metadata consists of the following:

  • a defined key describing the field type (like invoice date or description), see the OpenAPI specification for all supported types

  • an associated value based on the type (textValue dateValue, booleanValue, or numericValue)

  • an optional priority describing the confidence of the data, with 1 being highest and 255 being lowest. If multiple metadata keys for the same document exist, the one with the highest priority will be used. Defaulted with average priority of 100.

  • an optional qualifier, which determines if this fragment only belongs to a specific subgroup of the documents. For example, a qualifier of 1 expresses that this field (like amount or tax rate) doesn’t belong to the whole document, but only the first line of the invoice.

Request
POST /api/1.1/documents/staging
Content-Type: multipart/form-data; boundary=WebAppBoundary
Authorization: Bearer eyJhbGci...Vm-yw
--WebAppBoundary
Content-Disposition: form-data; name="metadata"
Content-Type: application/json

{
  "documentDescription": "my test",
    "metadata": [
    {
      "key": "RECIPIENT",
      "textValue": "testRecipient"
    },
    {
      "key": "PAID_DATE",
      "dateValue": "2021-05-01"
    },
    {
      "key": "TOTAL_AMOUNT",
      "numericValue": 100.00,
      "qualifier": 1
    },
    {
      "key": "TAX_RATE",
      "numericValue": 20,
      "qualifier": 1
    },
    {
      "key": "TOTAL_AMOUNT",
      "numericValue": 200.00,
      "qualifier": 2
    },
    {
      "key": "TAX_RATE",
      "numericValue": 10,
      "qualifier": 2
    }

  ]
}
--WebAppBoundary
Content-Disposition: form-data; name="content"; filename="image3.jpg"
Content-Type: image/jpeg

<! raw content of image3.jpg !>
--WebAppBoundary--
Content-Disposition: form-data; name="content"; filename="image4.jpg"
Content-Type: image/jpeg

<! raw content of image4.jpg !>
--WebAppBoundary--
Response
HTTP/1.1 201
Content-Type: application/json;charset=UTF-8
{
  "fileName": "image1.pdf",
  "contentType": "application/pdf",
  "documentDescription": "my test",
  "key": {
    "provider": "DMS",
    "providerId": "51917bc5-e576-427f-aedb-ccf15b4cd78a"
  },
  "metadata": [
    {
      "key": "RECIPIENT",
      "priority": 0,
      "textValue": "testRecipient"
    },
    {
      "key": "PAID_DATE",
      "priority": 0,
      "dateValue": "2021-05-01"
    },
    {
      "key": "TOTAL_AMOUNT",
      "qualifier": 1,
      "priority": 0,
      "numericValue": 100.00
    },
    {
      "key": "TAX_RATE",
      "qualifier": 1,
      "priority": 0,
      "numericValue": 20
    },
    {
      "key": "TOTAL_AMOUNT",
      "qualifier": 2,
      "priority": 0,
      "numericValue": 200.00
    },
    {
      "key": "TAX_RATE",
      "qualifier": 2,
      "priority": 0,
      "numericValue": 10
    }
  ]
}

3. Access

  • Bearer Authentication

4. Endpoints

4.1. BankStatementLines

4.1.1. GET /bank_statements

Operation Id

getAllBankStatementHeaders

Description

Returns all bank statement headers created by the API or from PSD2.

Parameters
Return Type
Content Type
  • application/json

Responses
Table 1. http response codes
Code Message Datatype

200

Operation completed successfully.

List[BankStatementHeaderDto]

4.1.2. GET /bank_statements/{header_id}

Operation Id

getBankStatementHeaderById

Description

Returns a single bank statement header identified by its id.

Parameters
Path Parameters
Name Description Required Default Pattern

header_id

bank statement id

X

null

Content Type
  • application/json

Responses
Table 2. http response codes
Code Message Datatype

200

Operation completed successfully.

BankStatementHeaderDto

404

Bank statement with this id not found.

RestError

4.1.3. GET /bank_statements/{header_id}/lines

Operation Id

getBankStatementLines

Description

Returns the lines of a bank statement, limited by date or number.

Parameters
Path Parameters
Name Description Required Default Pattern

header_id

bank statement id

X

null

Query Parameters
Name Description Required Default Pattern

from

Only return lines with a booking date greater than or equal to this value. Must be set together with to.

-

null

to

Only return lines with a booking date less than or equal to this value. Must be set together with from.

-

null

line_number_gt

Only return lines with a line number greater than this value.

-

null

Content Type
  • application/json

Responses
Table 3. http response codes
Code Message Datatype

200

Operation completed successfully.

BankStatementHeaderDto

404

Bank statement with this id not found.

RestError

4.1.4. POST /bank_statements

Operation Id

postBankStatementHeader

Description

Creates a new bank statement header. Only the header is created, lines are added in a separate call.

Parameters
Body Parameter
Name Description Required Default Pattern

BankStatementHeaderDto

BankStatementHeaderDto

X

Content Type
  • application/json

Responses
Table 4. http response codes
Code Message Datatype

200

Operation completed successfully.

BankStatementHeaderDto

400

Input invalid. Further information in the RestError response.

RestError

4.1.5. POST /bank_statements/{header}/lines

Operation Id

postBankStatementHeaderLines

Description

Creates new lines for a bank statement header. The lines will be appended and numbered automatically.

Parameters
Path Parameters
Name Description Required Default Pattern

header

bank statement header id

X

null

Body Parameter
Name Description Required Default Pattern

BankStatementRequestDto

BankStatementRequestDto

X

Content Type
  • application/json

Responses
Table 5. http response codes
Code Message Datatype

200

Operation completed successfully.

BankStatementHeaderDto

400

Input invalid. Further information in the RestError response.

RestError

4.1.6. POST /bank_statements/by_bank_account/{bank_account}/lines

Operation Id

postBankStatementHeaderLinesByBankAccount

Description

Creates new lines for a singular bank statement header tied to a bank account. If no header exists, it will be created. If more than one header exists, an error will be returned. This resource is used for append-only single statements like PSD2.

Parameters
Path Parameters
Name Description Required Default Pattern

bank_account

bank account id

X

null

Body Parameter
Name Description Required Default Pattern

BankStatementRequestDto

BankStatementRequestDto

X

Content Type
  • application/json

Responses
Table 6. http response codes
Code Message Datatype

200

Operation completed successfully.

BankStatementHeaderDto

400

Input invalid. Further information in the RestError response.

RestError

4.2. CashBasedAccounting

4.2.1. POST /rebooks

Operation Id

postRebook

Description

Creates a new rebook according to the defined rebook type. See the /accounts/rebook_accounts resource for possible accounts to use with the type.

Parameters
Body Parameter
Name Description Required Default Pattern

RebookCreationDto

RebookCreationDto

X

Return Type
Content Type
  • application/json

Responses
Table 7. http response codes
Code Message Datatype

200

Operation completed successfully.

RebookJournalDto

404

Input invalid. Further information in the RestError response.

RestError

4.3. CashBasedInvoicingIncoming

4.3.1. DELETE /incoming_invoices/{invoice}

Operation Id

deleteIncomingInvoice

Description

Deletes an unpaid incoming invoice. Single-entry accounting (EA) only.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

Return Type

-

Content Type
  • application/json

Responses
Table 8. http response codes
Code Message Datatype

200

Operation completed successfully.

<<>>

400

Input invalid. Further information in the RestError response.

RestError

404

Invoice not found.

RestError

4.3.2. GET /incoming_invoices

Operation Id

getAllIncomingInvoices

Description

Returns a list of incoming invoices filtered by optional search parameters. A time span (from-to) must be set to limit results. Note that lines and bookings are not returned, use /incoming_invoices/{invoice_id} to fetch these for a single invoice.

Parameters
Query Parameters
Name Description Required Default Pattern

from

X

null

to

X

null

search_text

-

null

state

If the invoices should be PAID, UNPAID, or OVERDUE

-

null

Return Type
Content Type
  • application/json

Responses
Table 9. http response codes
Code Message Datatype

200

Operation completed successfully.

List[IncomingInvoiceDto]

4.3.3. GET /incoming_invoices/{invoice}/bookings/{booking}

Operation Id

getIncomingInvoiceBookingById

Description

Returns a single booking for an incoming invoice.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

booking

Booking id

X

null

Return Type
Content Type
  • application/json

Responses
Table 10. http response codes
Code Message Datatype

200

Operation completed successfully.

InvoiceBookingDto

404

Invoice or booking not found.

RestError

4.3.4. GET /incoming_invoices/{invoice}/bookings

Operation Id

getIncomingInvoiceBookings

Description

Returns all bookings for an incoming invoice.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

Return Type
Content Type
  • application/json

Responses
Table 11. http response codes
Code Message Datatype

200

Operation completed successfully.

List[InvoiceBookingDto]

404

Invoice not found.

RestError

4.3.5. GET /incoming_invoices/{invoice}

Operation Id

getIncomingInvoiceById

Description

Returns an incoming invoice referenced by its id.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

Return Type
Content Type
  • application/json

Responses
Table 12. http response codes
Code Message Datatype

200

Operation completed successfully.

IncomingInvoiceDto

404

Invoice not found.

RestError

4.3.6. GET /incoming_invoices/{invoice}/journals/{journal}

Operation Id

getIncomingInvoiceJournalById

Description

Returns a specific journal booked from an incoming invoice. The booking need not be specified.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

journal

Journal id

X

null

Return Type
Content Type
  • application/json

Responses
Table 13. http response codes
Code Message Datatype

200

Operation completed successfully.

JournalDto

404

Invoice or journal not found

RestError

4.3.7. GET /incoming_invoices/{invoice}/journals

Operation Id

getIncomingInvoiceJournals

Description

Returns all journals booked from an incoming invoice. The bookings need not be specified.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

Return Type

array[JournalDto]

Content Type
  • application/json

Responses
Table 14. http response codes
Code Message Datatype

200

Operation completed successfully.

List[JournalDto]

404

Invoice not found

RestError

4.3.8. POST /incoming_invoices

Operation Id

postIncomingInvoice

Description

Creates an incoming invoice. Accounts can be found in the /accounts resource. Note that depending on the financial settings, the invoice must be paid. Additionally, for double-entry accounting the invoice is always booked immediately.

Parameters
Body Parameter
Name Description Required Default Pattern

IncomingInvoiceCreationDto

IncomingInvoiceCreationDto

X

Content Type
  • application/json

Responses
Table 15. http response codes
Code Message Datatype

200

Operation completed successfully.

IncomingInvoiceReturnDto

400

Input invalid. Further information in the RestError response.

RestError

404

Account not found.

RestError

4.3.9. POST /incoming_invoices/{invoice}/bookings/{booking}/cancel

Operation Id

postIncomingInvoiceBookingCancel

Description

Cancels a specific booking for an incoming invoice. Only payment and rest payment bookings can be cancelled.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

booking

Booking id

X

null

Body Parameter
Name Description Required Default Pattern

CancellationDto

CancellationDto

X

Content Type
  • application/json

Responses
Table 16. http response codes
Code Message Datatype

200

Operation completed successfully.

IncomingInvoiceReturnDto

400

Input invalid. Further information in the RestError response.

RestError

404

invoice or booking not found

RestError

4.3.10. POST /incoming_invoices/{invoice}/cancel

Operation Id

postIncomingInvoiceCancel

Description

Cancels an incoming invoice.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

Body Parameter
Name Description Required Default Pattern

CancellationDto

CancellationDto

X

Content Type
  • application/json

Responses
Table 17. http response codes
Code Message Datatype

200

Operation completed successfully.

IncomingInvoiceReturnDto

400

Input invalid. Further information in the RestError response.

RestError

404

Invoice not found.

RestError

4.3.11. POST /incoming_invoices/{invoice}/pay

Operation Id

postIncomingInvoicePayment

Description

Registers a payment for an incoming invoice. Partial payments are only supported in double-entry accounting.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

Body Parameter
Name Description Required Default Pattern

CbiPaymentDto

CbiPaymentDto

X

Content Type
  • application/json

Responses
Table 18. http response codes
Code Message Datatype

200

Operation completed successfully.

IncomingInvoiceReturnDto

400

Input invalid. Further information in the RestError response.

RestError

404

Invoice not found.

RestError

4.3.12. POST /incoming_invoices/{invoice}/pay_rest

Operation Id

postIncomingInvoicePaymentRest

Description

Registers the rest payment for an incoming invoice (like discount), which marks the invoice as paid. Double-entry accounting only.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

Body Parameter
Name Description Required Default Pattern

RestPaymentDto

RestPaymentDto

X

Content Type
  • application/json

Responses
Table 19. http response codes
Code Message Datatype

200

Operation completed successfully.

IncomingInvoiceReturnDto

400

Input invalid. Further information in the RestError response.

RestError

404

Invoice not found.

RestError

4.4. CashBasedInvoicingOutgoing

4.4.1. DELETE /outgoing_invoices/{invoice}

Operation Id

deleteOutgoingInvoice

Description

Deletes an unpaid outgoing invoice. Single-entry accounting (EA) only.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

Return Type

-

Content Type
  • application/json

Responses
Table 20. http response codes
Code Message Datatype

200

Operation completed successfully.

<<>>

400

Input invalid. Further information in the RestError response.

RestError

404

Invoice not found.

RestError

4.4.2. GET /outgoing_invoices

Operation Id

getAllOutgoingInvoices

Description

Returns a list of outgoing invoices filtered by optional search parameters. A time span (from-to) must be set to limit results. Note that lines and bookings are not returned, use /outgoing_invoices/{invoice_id} to fetch these for a single invoice.

Parameters
Query Parameters
Name Description Required Default Pattern

from

X

null

to

X

null

search_text

-

null

state

If the invoices should be PAID, UNPAID, or OVERDUE

-

null

Return Type
Content Type
  • application/json

Responses
Table 21. http response codes
Code Message Datatype

200

Operation completed successfully.

List[OutgoingInvoiceDto]

4.4.3. GET /outgoing_invoices/{invoice}/bookings/{booking}

Operation Id

getOutgoingInvoiceBookingById

Description

Returns a single booking for an outgoing invoice.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

booking

Booking id

X

null

Return Type
Content Type
  • application/json

Responses
Table 22. http response codes
Code Message Datatype

200

Operation completed successfully.

OutgoingInvoiceDto

404

Invoice or booking not found.

RestError

4.4.4. GET /outgoing_invoices/{invoice}/bookings

Operation Id

getOutgoingInvoiceBookings

Description

Returns all bookings for an outgoing invoice.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

Return Type
Content Type
  • application/json

Responses
Table 23. http response codes
Code Message Datatype

200

Operation completed successfully.

InvoiceBookingDto

404

Invoice not found.

RestError

4.4.5. GET /outgoing_invoices/{invoice}

Operation Id

getOutgoingInvoiceById

Description

Returns an outgoing invoice referenced by its id.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

Return Type
Content Type
  • application/json

Responses
Table 24. http response codes
Code Message Datatype

200

Operation completed successfully.

OutgoingInvoiceDto

404

Invoice not found

RestError

4.4.6. GET /outgoing_invoices/{invoice}/journals/{journal}

Operation Id

getOutgoingInvoiceJournalById

Description

Returns a specific journal booked from an outgoing invoice. The booking need not be specified.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

journal

Journal id

X

null

Return Type
Content Type
  • application/json

Responses
Table 25. http response codes
Code Message Datatype

200

Operation completed successfully.

JournalDto

404

Invoice or booking not found

RestError

4.4.7. GET /outgoing_invoices/{invoice}/journals

Operation Id

getOutgoingInvoiceJournals

Description

Returns all journals booked from an outgoing invoice. The bookings need not be specified.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

Return Type

array[JournalDto]

Content Type
  • application/json

Responses
Table 26. http response codes
Code Message Datatype

200

Operation completed successfully.

List[JournalDto]

404

Invoice not found

RestError

4.4.8. POST /outgoing_invoices

Operation Id

postOutgoingInvoice

Description

Creates an outgoing invoice. Accounts can be found in the /accounts resource. Note that depending on the financial settings, the invoice must be paid. Additionally, for double-entry accounting the invoice is always booked immediately.

Parameters
Body Parameter
Name Description Required Default Pattern

OutgoingInvoiceCreationDto

OutgoingInvoiceCreationDto

X

Content Type
  • application/json

Responses
Table 27. http response codes
Code Message Datatype

200

Operation completed successfully.

OutgoingInvoiceReturnDto

400

Input invalid. Further information in the RestError response.

RestError

404

Account not found.

RestError

4.4.9. POST /outgoing_invoices/{invoice}/bookings/{booking}/cancel

Operation Id

postOutgoingInvoiceBookingCancel

Description

Cancels a specific booking for an outgoing invoice. Only payment and rest payment bookings can be cancelled.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

booking

Booking id

X

null

Body Parameter
Name Description Required Default Pattern

CancellationDto

CancellationDto

X

Content Type
  • application/json

Responses
Table 28. http response codes
Code Message Datatype

200

Operation completed successfully.

OutgoingInvoiceReturnDto

400

Input invalid. Further information in the RestError response.

RestError

404

invoice or booking not found

RestError

4.4.10. POST /outgoing_invoices/{invoice}/cancel

Operation Id

postOutgoingInvoiceCancel

Description

Cancels an outgoing invoice.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

Body Parameter
Name Description Required Default Pattern

CancellationDto

CancellationDto

X

Content Type
  • application/json

Responses
Table 29. http response codes
Code Message Datatype

200

Operation completed successfully.

OutgoingInvoiceReturnDto

400

Input invalid. Further information in the RestError response.

RestError

404

Invoice not found.

RestError

4.4.11. POST /outgoing_invoices/{invoice}/pay

Operation Id

postOutgoingInvoicePayment

Description

Registers a payment for an outgoing invoice. Partial payments are only supported in double-entry accounting.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

Body Parameter
Name Description Required Default Pattern

CbiPaymentDto

CbiPaymentDto

X

Content Type
  • application/json

Responses
Table 30. http response codes
Code Message Datatype

200

Operation completed successfully.

OutgoingInvoiceReturnDto

400

Input invalid. Further information in the RestError response.

RestError

404

Invoice not found.

RestError

4.4.12. POST /outgoing_invoices/{invoice}/pay_rest

Operation Id

postOutgoingInvoicePaymentRest

Description

Registers the rest payment for an outgoing invoice (like discount), which marks the invoice as paid. Double-entry accounting only.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

Body Parameter
Name Description Required Default Pattern

RestPaymentDto

RestPaymentDto

X

Content Type
  • application/json

Responses
Table 31. http response codes
Code Message Datatype

200

Operation completed successfully.

OutgoingInvoiceReturnDto

400

Input invalid. Further information in the RestError response.

RestError

404

Invoice not found.

RestError

4.5. CashBasedSetup

4.5.1. GET /accounts/{account}

Operation Id

getAccountById

Description

Returns a specific account by its account number.

Parameters
Path Parameters
Name Description Required Default Pattern

account

Account code

X

null

Return Type
Content Type
  • application/json

Responses
Table 32. http response codes
Code Message Datatype

200

Operation completed successfully.

AccountDto

404

Account not found.

RestError

4.5.2. GET /accounts/balances

Operation Id

getAccountSumBalances

Description

Returns the account balances over the specified time period, calculated as the sum of all bookings.

Parameters
Query Parameters
Name Description Required Default Pattern

method

Calculation method to use, default is N (net).

-

null

from

Include bookings from this date onward. Defaults to beginning of this year.

-

null

to

Include bookings up to this date. Defaults to end of this year.

-

null

type

Account type code to filter (if available), examples are E (revenue), M (revenue gastronomy), A (expenses), L (assets), S (miscellaneous), U (cash, rebooks, etc.)

-

null

opening_balances

If opening balances should be included in the calculation

-

null

closing_entries

If closing entries should be included in the calculation

-

null

filterNullValues

Whether values that add up to 0 should be shown or not

-

null

compactReceivables

Group payables/receivables accounts together

-

null

dbhCreditDebit

Split results into credit and debit (ignored if no double-entry accounting)

-

null

Return Type

array[AccountDto]

Content Type
  • application/json

Responses
Table 33. http response codes
Code Message Datatype

200

Operation completed successfully.

List[AccountDto]

400

Input invalid. Further information in the RestError response.

RestError

4.5.3. GET /accounts/balances_per_month

Operation Id

getAccountSumBalancesPerMonth

Description

Returns the account balances over the specified time period, calculated as the sum of all bookings per month.

Parameters
Query Parameters
Name Description Required Default Pattern

fiscal_year

The fiscal year as basis for the balance calculation

X

null

opening_balances

If opening balances should be included in the calculation

-

null

closing_entries

If closing entries should be included in the calculation

-

null

totals

If totals should be calculated for each account

-

null

method

Calculation method to use (net or total), default is N (net)

-

null

filterNullValues

Whether values that add up to 0 should be shown or not

-

null

compactReceivables

Group payables/receivables accounts together

-

null

Return Type
Content Type
  • application/json

Responses
Table 34. http response codes
Code Message Datatype

200

Operation completed successfully.

List[AccountLineDto]

4.5.4. GET /accounts/{account}/tax_class_entries

Operation Id

getAccountTaxClassEntryBulk

Description

Returns all tax class entries for an account. A tax class entry references a specific tax rate for a business document line or item.

Parameters
Path Parameters
Name Description Required Default Pattern

account

Account code

X

null

Return Type
Content Type
  • application/json

Responses
Table 35. http response codes
Code Message Datatype

200

Operation completed successfully.

List[TaxClassEntryDto]

404

Account not found.

RestError

4.5.5. GET /accounts/{account}/tax_class_entries/{tax_class_entry}

Operation Id

getAccountTaxClassEntryById

Description

Returns a specific tax class entry for an account.

Parameters
Path Parameters
Name Description Required Default Pattern

account

Account code

X

null

tax_class_entry

Tax class entry code

X

null

Return Type
Content Type
  • application/json

Responses
Table 36. http response codes
Code Message Datatype

200

Operation completed successfully.

TaxClassEntryDto

404

Account or tax class entry not found.

RestError

4.5.6. GET /accounts

Operation Id

getAllAccounts

Description

Returns all accounts. Accounts are required for cash based invoicing and business document lines and can be optionally added to items. Every account has one or multiple tax class entries, which define the tax rate for the line.

Parameters
Query Parameters
Name Description Required Default Pattern

type

Account type code to filter (if available), examples are E (revenue), M (revenue gastronomy), A (expenses), L (assets), S (miscellaneous), U (cash, rebooks, etc.)

-

null

Return Type

array[AccountDto]

Content Type
  • application/json

Responses
Table 37. http response codes
Code Message Datatype

200

Operation completed successfully.

List[AccountDto]

4.5.7. GET /accounts/item_accounts

Operation Id

getAllAccountsItem

Description

Returns all accounts that can be used for items. This includes income, receivables and coupon accounts.

Parameters
Return Type

array[AccountDto]

Content Type
  • application/json

Responses
Table 38. http response codes
Code Message Datatype

200

Operation completed successfully.

List[AccountDto]

4.5.8. GET /accounts/rebook_accounts

Operation Id

getAllAccountsRebook

Description

Returns all accounts that are available as the from-account in rebooks, depending on type.

Parameters
Query Parameters
Name Description Required Default Pattern

type

Rebook type: REBOOK (default), CORRECTION, FINALIZATION (for special bookings)

X

null

date

Effective date of accounts, defaults to today

-

null

search

Additional filter string, optional

-

null

Return Type

array[AccountDto]

Content Type
  • application/json

Responses
Table 39. http response codes
Code Message Datatype

200

Operation completed successfully.

List[AccountDto]

400

Input invalid. Further information in the RestError response.

RestError

4.5.9. GET /accounts/{account}/rebook_contra_accounts

Operation Id

getAllAccountsRebookContra

Description

Returns all accounts that are available as the to-account in rebooks, depending on the type and from-account.

Parameters
Path Parameters
Name Description Required Default Pattern

account

Account code

X

null

Query Parameters
Name Description Required Default Pattern

type

Rebook type: REBOOK (default), CORRECTION, FINALIZATION (for special bookings)

X

null

date

Effective date of accounts, defaults to today

-

null

search

Additional filter string, optional

-

null

Return Type
Content Type
  • application/json

Responses
Table 40. http response codes
Code Message Datatype

200

Operation completed successfully.

AccountDto

400

Input invalid. Further information in the RestError response.

RestError

404

Account not found.

RestError

4.5.10. GET /accounts/receipt_accounts

Operation Id

getAllAccountsReceipt

Description

Returns all accounts that can be used for item lines in cash register receipts. This includes income and receivables accounts.

Parameters
Return Type

array[AccountDto]

Content Type
  • application/json

Responses
Table 41. http response codes
Code Message Datatype

200

Operation completed successfully.

List[AccountDto]

4.5.11. GET /bank_accounts/{bank_account}

Operation Id

getBankAccountById

Description

Get a specific bank account by id

Parameters
Path Parameters
Name Description Required Default Pattern

bank_account

Bank account id

X

null

Return Type
Content Type
  • application/json

Responses
Table 42. http response codes
Code Message Datatype

200

Operation completed successfully.

BankAccountDto

404

Bank account not found.

RestError

4.5.12. GET /bank_accounts

Operation Id

getBankAccounts

Description

Returns all bank accounts.

Parameters
Return Type
Content Type
  • application/json

Responses
Table 43. http response codes
Code Message Datatype

200

Operation completed successfully.

List[BankAccountDto]

4.6. DocumentManagement

4.6.1. GET /documents/staging

Operation Id

getAllStaging

Description

Returns all current documents in the designated staging folder.

Parameters
Return Type
Content Type
  • application/json

Responses
Table 44. http response codes
Code Message Datatype

200

Operation completed successfully.

List[DocumentWithMetadataDto]

4.6.2. GET /documents/{provider}/{providerId}/binary

Operation Id

getDocument

Description

Returns a specific document and its metadata. The path parameter consists of the document provider (internal DMS, or external like Dropbox) and the provider id for the file.

Parameters
Path Parameters
Name Description Required Default Pattern

provider

Provider (DMS or DROPBOX)

X

null

providerId

Provider designated id for the document

X

null

Content Type
  • application/json

Responses
Table 45. http response codes
Code Message Datatype

200

Operation completed successfully.

DocumentWithMetadataDto

404

Document not found.

RestError

4.6.3. GET /documents/{provider}/{providerId}

Operation Id

getDocumentBinary

Description

Returns the binary data for a document.

Parameters
Path Parameters
Name Description Required Default Pattern

provider

Provider (DMS or DROPBOX)

X

null

providerId

Provider designated id for the document

X

null

Return Type
Content Type
  • application/octet-stream

Responses
Table 46. http response codes
Code Message Datatype

200

Operation completed successfully.

[File]

404

Document not found.

RestError

4.6.4. POST /documents/staging

Operation Id

postStaging

Description

Creates a new document in the staging folder and uploads one or multiple files in a multipart request. The metadata body defines optional attributes to add to the document. The multipart attachment can be one file of a supported type (PDF, images) or multiple images, which are then merged into a single PDF in the backend. See the examples for a multipart request.

Parameters
Form Parameters
Name Description Required Default Pattern

documentDescription

An optional description of the document itself. Will be shown as additional information and used for search. [string]

-

null

skipOcr

If set to true, this document will not be processed automatically by OCR services. [boolean]

-

null

metadata

A list of metadata to include with the new document. DocumentMetadataDto

-

null

Content Type
  • application/json

Responses
Table 47. http response codes
Code Message Datatype

201

Operation completed successfully.

DocumentWithMetadataDto

400

Input invalid. Further information in the RestError response.

RestError

4.6.5. POST /documents/staging/json

Operation Id

postStagingJson

Description

Creates a new document in the staging folder and uploads a base64-encoded file. The metadata defines optional attributes to add to the document.

Parameters
Body Parameter
Name Description Required Default Pattern

DocumentJsonUploadDto

DocumentJsonUploadDto

X

Content Type
  • application/json

Responses
Table 48. http response codes
Code Message Datatype

201

Operation completed successfully.

DocumentWithMetadataDto

400

Input invalid. Further information in the RestError response.

RestError

4.7. Foundation

4.7.1. GET /countries

Operation Id

getAllCountries

Description

Returns all countries.

Parameters
Return Type

array[CountryDto]

Content Type
  • application/json

Responses
Table 49. http response codes
Code Message Datatype

200

Operation completed successfully.

List[CountryDto]

4.7.2. GET /currencies

Operation Id

getAllCurrencies

Description

Returns all currencies.

Parameters
Return Type

array[CurrencyDto]

Content Type
  • application/json

Responses
Table 50. http response codes
Code Message Datatype

200

Operation completed successfully.

List[CurrencyDto]

4.7.3. GET /countries/{country}/regions

Operation Id

getAllRegions

Description

Get all regions for a country

Parameters
Path Parameters
Name Description Required Default Pattern

country

Country code

X

null

Return Type

array[RegionDto]

Content Type
  • application/json

Responses
Table 51. http response codes
Code Message Datatype

200

Operation completed successfully.

List[RegionDto]

404

Country not found.

RestError

4.7.4. GET /units_of_measure

Operation Id

getAllUnitsOfMeasure

Description

Returns all units of measure.

Parameters
Return Type
Content Type
  • application/json

Responses
Table 52. http response codes
Code Message Datatype

200

Operation completed successfully.

List[UnitOfMeasureDto]

4.7.5. GET /countries/{country}

Operation Id

getCountry

Description

Returns a specific country by its country code.

Parameters
Path Parameters
Name Description Required Default Pattern

country

Country code

X

null

Return Type
Content Type
  • application/json

Responses
Table 53. http response codes
Code Message Datatype

200

Operation completed successfully.

CountryDto

404

Country not found.

RestError

4.7.6. GET /countries/{country}/regions/{region}

Operation Id

getRegion

Description

Get a specific region for a country

Parameters
Path Parameters
Name Description Required Default Pattern

country

Country code

X

null

region

Region code

X

null

Return Type
Content Type
  • application/json

Responses
Table 54. http response codes
Code Message Datatype

200

Operation completed successfully.

RegionDto

404

Country or region not found.

RestError

4.7.7. POST /notifications

Operation Id

getUnreadNotifications

Description

Returns all unread notifications and marks them as read.

Parameters
Return Type
Content Type
  • application/json

Responses
Table 55. http response codes
Code Message Datatype

200

Operation completed successfully.

List[NotificationDto]

4.7.8. DELETE /session

Operation Id

revokeSession

Description

Revokes the active session and invalidates the refresh token.

Parameters
Query Parameters
Name Description Required Default Pattern

refresh_token

Current refresh token of the session.

X

null

Return Type

-

Responses
Table 56. http response codes
Code Message Datatype

0

Operation completed successfully.

<<>>

4.8. Invoicing

4.8.1. POST /invoices/{invoice}/payments/{payment}/cancel

Operation Id

cancelInvoicePayment

Description

Cancels a payment for an invoice.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice number

X

null

payment

Payment id

X

null

Body Parameter
Name Description Required Default Pattern

PaymentCancellationDto

Payment cancellation info PaymentCancellationDto

X

Return Type
Content Type
  • application/json

Responses
Table 57. http response codes
Code Message Datatype

200

Operation completed successfully.

List[PaymentHistoryDto]

400

Input invalid. Further information in the RestError response.

RestError

404

Invoice or payment not found.

RestError

4.8.2. GET /invoices

Operation Id

getAllInvoices

Description

Returns all finalized and external invoices. Documents created for staging do not have a number and are therefore not returned over the API.

Parameters
Query Parameters
Name Description Required Default Pattern

updated_since

Return only invoices updated after this timestamp in milliseconds (Instant.now().toEpochMilli())

-

null

paid

Return only paid (true) or unpaid (false) invoices

-

null

Return Type

array[InvoiceDto]

Content Type
  • application/json

Responses
Table 58. http response codes
Code Message Datatype

200

Operation completed successfully.

List[InvoiceDto]

4.8.3. GET /invoices/{invoice}

Operation Id

getInvoice

Description

Returns a specific invoice by its number. Staging documents cannot be retrieved with this resource.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice number

X

null

Return Type
Content Type
  • application/json

Responses
Table 59. http response codes
Code Message Datatype

200

Operation completed successfully.

InvoiceDto

404

Invoice not found.

RestError

4.8.4. GET /invoices/{invoice}/bookings

Operation Id

getInvoiceBookings

Description

Returns all non-payment bookings for a specific invoice.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice number

X

null

Return Type
Content Type
  • application/json

Responses
Table 60. http response codes
Code Message Datatype

200

Operation completed successfully.

List[PaymentHistoryDto]

404

Invoice not found.

RestError

4.8.5. GET /invoices/{invoice}/document

Operation Id

getInvoiceDocument

Description

Returns the current PDF document of a specific invoice as binary data.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice number

X

null

Return Type
Content Type
  • application/octet-stream

Responses
Table 61. http response codes
Code Message Datatype

200

Operation completed successfully.

[List]

404

Invoice or document not found.

RestError

4.8.6. GET /invoices/{invoice}/payments

Operation Id

getInvoicePayments

Description

Returns all payments for a specific invoice.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice number

X

null

Return Type
Content Type
  • application/json

Responses
Table 62. http response codes
Code Message Datatype

200

Operation completed successfully.

List[PaymentHistoryDto]

404

Invoice not found.

RestError

4.8.7. POST /invoices

Operation Id

postInvoice

Description

Creates a new invoice. Depending on the supplied state, invoices are either created for staging (and completed manually) or immediately finalized. Once finalized, a number is assigned and the PDF created. If a number is coming from an external system, the EXTERNAL state and an id must be set. External documents cannot be edited and no PDF is created.

Parameters
Body Parameter
Name Description Required Default Pattern

InvoiceDto

InvoiceDto

X

Return Type
Content Type
  • application/json

Responses
Table 63. http response codes
Code Message Datatype

200

Operation completed successfully.

InvoiceDto

400

Input invalid. Further information in the RestError response.

RestError

4.8.8. POST /invoices/{invoice}/cancel

Operation Id

postInvoiceCancel

Description

Cancels a specific invoice. Only finalized or external documents can be cancelled.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice number

X

null

Body Parameter
Name Description Required Default Pattern

BusinessDocumentCancelDto

BusinessDocumentCancelDto

-

Return Type
Content Type
  • application/json

Responses
Table 64. http response codes
Code Message Datatype

200

Operation completed successfully.

CancelledInvoiceDto

400

Input invalid. Further information in the RestError response.

RestError

404

Invoice not found.

RestError

4.8.9. POST /invoices/{invoice}/payments

Operation Id

postInvoicePayment

Description

Creates a new payment for an invoice.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice number

X

null

Body Parameter
Name Description Required Default Pattern

InvoicePaymentDto

Payment to create InvoicePaymentDto

X

Return Type
Content Type
  • application/json

Responses
Table 65. http response codes
Code Message Datatype

200

Operation completed successfully.

List[PaymentHistoryDto]

400

Input invalid. Further information in the RestError response.

RestError

404

Invoice not found.

RestError

4.9. InvoicingCreditMemo

4.9.1. POST /credit_memos/{credit_memo}/payments/{payment}/cancel

Operation Id

cancelCreditMemoPayment

Description

Cancels a payment for a credit memo.

Parameters
Path Parameters
Name Description Required Default Pattern

credit_memo

Credit memo number

X

null

payment

Payment id

X

null

Body Parameter
Name Description Required Default Pattern

PaymentCancellationDto

Payment cancellation info PaymentCancellationDto

X

Return Type
Content Type
  • application/json

Responses
Table 66. http response codes
Code Message Datatype

200

Operation completed successfully.

List[PaymentHistoryDto]

400

Input invalid. Further information in the RestError response.

RestError

404

Invoice or payment not found.

RestError

4.9.2. GET /credit_memos

Operation Id

getAllCreditMemos

Description

Returns all finalized and external credit memos. Documents created for staging do not have a number and are therefore not returned over the API.

Parameters
Query Parameters
Name Description Required Default Pattern

updated_since

Return only documents updated after this timestamp in milliseconds (Instant.now().toEpochMilli())

-

null

paid

Return only paid (true) or unpaid (false) credit memos

-

null

Return Type

array[CreditMemoDto]

Content Type
  • application/json

Responses
Table 67. http response codes
Code Message Datatype

200

Operation completed successfully.

List[CreditMemoDto]

4.9.3. GET /credit_memos/{credit_memo}

Operation Id

getCreditMemo

Description

Returns a specific credit memo by its number. Staging documents cannot be retrieved with this resource.

Parameters
Path Parameters
Name Description Required Default Pattern

credit_memo

Credit memo number

X

null

Return Type
Content Type
  • application/json

Responses
Table 68. http response codes
Code Message Datatype

200

Operation completed successfully.

CreditMemoDto

404

Credit memo not found.

RestError

4.9.4. GET /credit_memos/{credit_memo}/bookings

Operation Id

getCreditMemoBookings

Description

Returns all non-payment bookings for a specific credit memo.

Parameters
Path Parameters
Name Description Required Default Pattern

credit_memo

Credit memo number

X

null

Return Type
Content Type
  • application/json

Responses
Table 69. http response codes
Code Message Datatype

200

Operation completed successfully.

List[PaymentHistoryDto]

404

Credit memo not found.

RestError

4.9.5. GET /credit_memos/{credit_memo}/document

Operation Id

getCreditMemoDocument

Description

Returns the current PDF document of a specific credit memo as binary data.

Parameters
Path Parameters
Name Description Required Default Pattern

credit_memo

Credit memo number

X

null

Return Type
Content Type
  • application/octet-stream

Responses
Table 70. http response codes
Code Message Datatype

200

Operation completed successfully.

[File]

404

Credit memo or document not found.

RestError

4.9.6. GET /credit_memos/{credit_memo}/payments

Operation Id

getCreditMemoPayments

Description

Returns all payments for a specific credit memo.

Parameters
Path Parameters
Name Description Required Default Pattern

credit_memo

Credit memo number

X

null

Return Type
Content Type
  • application/json

Responses
Table 71. http response codes
Code Message Datatype

200

Operation completed successfully.

List[PaymentHistoryDto]

404

Credit memo not found.

RestError

4.9.7. POST /credit_memos

Operation Id

postCreditMemo

Description

Creates a new credit memo. Depending on the supplied state, credit memos are either created for staging (and completed manually) or immediately finalized. Once finalized, a number is assigned and the PDF is created. If a number is coming from an external system, the EXTERNAL state and an id must be set. External documents cannot be edited and no PDF is created.

Parameters
Body Parameter
Name Description Required Default Pattern

CreditMemoDto

CreditMemoDto

X

Return Type
Content Type
  • application/json

Responses
Table 72. http response codes
Code Message Datatype

200

Operation completed successfully.

CreditMemoDto

400

Input invalid. Further information in the RestError response.

RestError

4.9.8. POST /credit_memos/{credit_memo}/cancel

Operation Id

postCreditMemoCancel

Description

Cancels a specific credit memo. Only finalized or external documents can be cancelled.

Parameters
Path Parameters
Name Description Required Default Pattern

credit_memo

Credit memo number

X

null

Body Parameter
Name Description Required Default Pattern

BusinessDocumentCancelDto

BusinessDocumentCancelDto

-

Return Type
Content Type
  • application/json

Responses
Table 73. http response codes
Code Message Datatype

200

Operation completed successfully.

CreditMemoDto

400

Input invalid. Further information in the RestError response.

RestError

404

Credit memo not found.

RestError

4.9.9. POST /credit_memos/{credit_memo}/payments

Operation Id

postCreditMemoPayment

Description

Creates a new payment for a credit memo.

Parameters
Path Parameters
Name Description Required Default Pattern

credit_memo

Credit memo number

X

null

Body Parameter
Name Description Required Default Pattern

CreditMemoPaymentDto

CreditMemoPaymentDto

X

Return Type
Content Type
  • application/json

Responses
Table 74. http response codes
Code Message Datatype

200

Operation completed successfully.

List[PaymentHistoryDto]

400

Input invalid. Further information in the RestError response.

RestError

404

Credit memo not found.

RestError

4.10. InvoicingDeliveryNote

4.10.1. GET /delivery_notes

Operation Id

getAllDeliveryNotes

Description

Returns all finalized and external delivery notes. Documents created for staging do not have a number and are therefore not returned over the API.

Parameters
Query Parameters
Name Description Required Default Pattern

updated_since

Return only documents updated after this timestamp in milliseconds (Instant.now().toEpochMilli())

-

null

Return Type
Content Type
  • application/json

Responses
Table 75. http response codes
Code Message Datatype

200

Operation completed successfully.

List[PaymentHistoryDto]

4.10.2. GET /delivery_notes/{delivery_note}

Operation Id

getDeliveryNote

Description

Returns a specific delivery note by its number. Staging documents cannot be retrieved with this resource.

Parameters
Path Parameters
Name Description Required Default Pattern

delivery_note

Delivery note number

X

null

Return Type
Content Type
  • application/json

Responses
Table 76. http response codes
Code Message Datatype

200

Operation completed successfully.

DeliveryNoteDto

404

Delivery note not found.

RestError

4.10.3. GET /delivery_notes/{delivery_note}/document

Operation Id

getDeliveryNoteDocument

Description

Returns the current PDF document of a specific delivery note as binary data.

Parameters
Path Parameters
Name Description Required Default Pattern

delivery_note

Delivery note number

X

null

Return Type
Content Type
  • application/octet-stream

  • application/json

Responses
Table 77. http response codes
Code Message Datatype

200

Operation completed successfully.

[File]

404

Delivery note or document not found.

RestError

4.10.4. POST /delivery_notes

Operation Id

postDeliveryNote

Description

Creates a new delivery note. Depending on the supplied state, delivery notes are either created for staging (and completed manually) or immediately finalized. Once finalized, a number is assigned and the PDF created. If a number is coming from an external system, the EXTERNAL state and an id must be set. External documents cannot be edited and no PDF is created.

Parameters
Body Parameter
Name Description Required Default Pattern

DeliveryNoteDto

DeliveryNoteDto

X

Return Type
Content Type
  • application/json

Responses
Table 78. http response codes
Code Message Datatype

200

Operation completed successfully.

DeliveryNoteDto

400

Input invalid. Further information in the RestError response.

RestError

4.10.5. POST /delivery_notes/{delivery_note}/cancel

Operation Id

postDeliveryNoteCancel

Description

Cancels a specific delivery note. Only finalized or external documents can be cancelled.

Parameters
Path Parameters
Name Description Required Default Pattern

delivery_note

Delivery note number

X

null

Body Parameter
Name Description Required Default Pattern

BusinessDocumentCancelDto

BusinessDocumentCancelDto

-

Return Type
Content Type
  • application/json

Responses
Table 79. http response codes
Code Message Datatype

200

Operation completed successfully.

DeliveryNoteDto

400

Input invalid. Further information in the RestError response.

RestError

404

Delivery note not found.

RestError

4.10.6. POST /delivery_notes/{delivery_note}/complete

Operation Id

postDeliveryNoteComplete

Description

Marks a specific delivery note as completed. Only finalized (and unfulfilled) delivery notes can be completed.

Parameters
Path Parameters
Name Description Required Default Pattern

delivery_note

X

null

Body Parameter
Name Description Required Default Pattern

BusinessDocumentCompletionDto

BusinessDocumentCompletionDto

X

Return Type
Content Type
  • application/json

Responses
Table 80. http response codes
Code Message Datatype

200

Operation completed successfully.

DeliveryNoteDto

400

Input invalid. Further information in the RestError response.

RestError

404

Delivery note not found.

RestError

4.11. InvoicingInvoiceTemplates

4.11.1. DELETE /invoice_templates/{invoice}

Operation Id

deleteInvoiceTemplate

Description

Deletes an existing invoice template.

Parameters
Path Parameters
Name Description Required Default Pattern

invoice

Invoice id

X

null

Return Type

-

Content Type
  • application/json

Responses
Table 81. http response codes
Code Message Datatype

204

Operation completed successfully.

<<>>

404

Invoice not found.

RestError

4.11.2. GET /invoice_templates

Operation Id

getAllInvoiceTemplates

Description

Returns all invoice templates.

Parameters
Query Parameters
Name Description Required Default Pattern

search

Search for specific keywords

-

null

include_subscriptions

Include subscription invoice templates, default false.

-

null

Return Type
Content Type
  • application/json

Responses
Table 82. http response codes
Code Message Datatype

200

Operation completed successfully.

List[InvoiceTemplateDto]

4.11.3. GET /invoice_templates/{template}

Operation Id

getInvoiceTemplate

Description

Returns a specific invoice template by its id.

Parameters
Path Parameters
Name Description Required Default Pattern

template

Invoice template id

X

null

Return Type
Content Type
  • application/json

Responses
Table 83. http response codes
Code Message Datatype

200

Operation completed successfully.

List[InvoiceTemplateDto]

4.11.4. POST /invoice_templates

Operation Id

postInvoiceTemplate

Description

Creates a new invoice template.

Parameters
Body Parameter
Name Description Required Default Pattern

InvoiceTemplateDto

InvoiceTemplateDto

X

Return Type
Content Type
  • application/json

Responses
Table 84. http response codes
Code Message Datatype

200

Operation completed successfully.

OfferTemplateDto

400

Input invalid. Further information in the RestError response.

RestError

4.11.5. PUT /invoice_templates/{template}

Operation Id

putInvoiceTemplate

Description

Update a existing invoice template.

Parameters
Path Parameters
Name Description Required Default Pattern

template

Invoice template id

X

null

Body Parameter
Name Description Required Default Pattern

InvoiceTemplateDto

InvoiceTemplateDto

X

Return Type
Content Type
  • application/json

Responses
Table 85. http response codes
Code Message Datatype

200

Operation completed successfully.

InvoiceTemplateDto

400

Input invalid. Further information in the RestError response.

RestError

4.12. InvoicingOffer

4.12.1. GET /offers

Operation Id

getAllOffers

Description

Returns all finalized and external offers. Documents created for staging do not have a number and are therefore not returned over the API.

Parameters
Query Parameters
Name Description Required Default Pattern

updated_since

Return only documents updated after this timestamp in milliseconds (Instant.now().toEpochMilli())

-

null

Return Type

array[OfferDto]

Content Type
  • application/json

Responses
Table 86. http response codes
Code Message Datatype

200

Operation completed successfully.

List[OfferDto]

4.12.2. GET /offers/{offer}

Operation Id

getOffer

Description

Returns a specific offer by its number. Staging documents cannot be retrieved with this resource.

Parameters
Path Parameters
Name Description Required Default Pattern

offer

Offer number

X

null

Return Type
Content Type
  • application/json

Responses
Table 87. http response codes
Code Message Datatype

200

Operation completed successfully.

OfferDto

404

Offer not found.

RestError

4.12.3. GET /offers/{offer}/document

Operation Id

getOfferDocument

Description

Returns the current PDF document of a specific offer as binary data.

Parameters
Path Parameters
Name Description Required Default Pattern

offer

Offer number

X

null

Return Type
Content Type
  • application/octet-stream

  • application/json

Responses
Table 88. http response codes
Code Message Datatype

200

Operation completed successfully.

[File]

404

offer document not found

RestError

400

offer not found

RestError

4.12.4. POST /offers

Operation Id

postOffer

Description

Creates a new offer. Depending on the supplied state, offers are either created for staging (and completed manually) or immediately finalized. Once finalized, a number is assigned and the PDF created. If a number is coming from an external system, the EXTERNAL state and an id must be set. External documents cannot be edited and no PDF is created.

Parameters
Body Parameter
Name Description Required Default Pattern

OfferDto

OfferDto

X

Return Type
Content Type
  • application/json

Responses
Table 89. http response codes
Code Message Datatype

200

Operation completed successfully.

OfferDto

400

Input invalid. Further information in the RestError response.

RestError

4.12.5. POST /offers/{offer}/cancel

Operation Id

postOfferCancel

Description

Cancel a specific offer. Only finalized or external documents can be cancelled.

Parameters
Path Parameters
Name Description Required Default Pattern

offer

X

null

Body Parameter
Name Description Required Default Pattern

BusinessDocumentCancelDto

BusinessDocumentCancelDto

-

Return Type
Content Type
  • application/json

Responses
Table 90. http response codes
Code Message Datatype

200

Operation completed successfully.

OfferDto

400

Input invalid. Further information in the RestError response.

RestError

404

Offer not found.

RestError

4.12.6. POST /offers/{offer}/complete

Operation Id

postOfferComplete

Description

Marks a specific offer as completed. Only finalized (and open) offers can be completed.

Parameters
Path Parameters
Name Description Required Default Pattern

offer

X

null

Body Parameter
Name Description Required Default Pattern

BusinessDocumentCompletionDto

BusinessDocumentCompletionDto

X

Return Type
Content Type
  • application/json

Responses
Table 91. http response codes
Code Message Datatype

200

Operation completed successfully.

OfferDto

400

Input invalid. Further information in the RestError response.

RestError

404

Offer not found.

RestError

4.13. InvoicingOfferTemplates

4.13.1. DELETE /offer_templates/{offer}

Operation Id

deleteOfferTemplate

Description

Deletes an existing offer template.

Parameters
Path Parameters
Name Description Required Default Pattern

offer

Offer id

X

null

Return Type

-

Content Type
  • application/json

Responses
Table 92. http response codes
Code Message Datatype

200

Operation completed successfully.

<<>>

404

Offer not found.

RestError

4.13.2. GET /offer_templates

Operation Id

getAllOfferTemplates

Description

Returns all offer templates.

Parameters
Query Parameters
Name Description Required Default Pattern

search

Search for specific keywords

-

null

Return Type
Content Type
  • application/json

Responses
Table 93. http response codes
Code Message Datatype

200

Operation completed successfully.

List[OfferTemplateDto]

4.13.3. GET /offer_templates/{template}

Operation Id

getOfferTemplate

Description

Returns a specific offer template by its id.

Parameters
Path Parameters
Name Description Required Default Pattern

template

Offer template id

X

null

Return Type
Content Type
  • application/json

Responses
Table 94. http response codes
Code Message Datatype

200

Operation completed successfully.

List[OfferTemplateDto]

4.13.4. POST /offer_templates

Operation Id

postOfferTemplate

Description

Creates a new offer template.

Parameters
Body Parameter
Name Description Required Default Pattern

OfferTemplateDto

OfferTemplateDto

X

Return Type
Content Type
  • application/json

Responses
Table 95. http response codes
Code Message Datatype

200

Operation completed successfully.

OfferTemplateDto

400

Input invalid. Further information in the RestError response.

RestError

4.13.5. PUT /offer_templates/{template}

Operation Id

putOfferTemplate

Description

Update a existing offer template.

Parameters
Path Parameters
Name Description Required Default Pattern

template

Offer template id

X

null

Body Parameter
Name Description Required Default Pattern

OfferTemplateDto

OfferTemplateDto

X

Return Type
Content Type
  • application/json

Responses
Table 96. http response codes
Code Message Datatype

200

Operation completed successfully.

OfferTemplateDto

400

Input invalid. Further information in the RestError response.

RestError

4.14. InvoicingOrderConfirmation

4.14.1. GET /order_confirmations

Operation Id

getAllOrderConfirmations

Description

Returns all finalized and external order confirmations. Documents created for staging do not have a number and are therefore not returned over the API.

Parameters
Query Parameters
Name Description Required Default Pattern

updated_since

return only documents updated after this timestamp in milliseconds (Instant.now().toEpochMilli())

-

null

Return Type
Content Type
  • application/json

Responses
Table 97. http response codes
Code Message Datatype

200

Operation completed successfully.

List[OrderConfirmationDto]

4.14.2. GET /order_confirmations/{order_confirmation}

Operation Id

getOrderConfirmation

Description

Returns a specific order confirmation by its number. Staging documents cannot be retrieved with this resource.

Parameters
Path Parameters
Name Description Required Default Pattern

order_confirmation

Order confirmation number

X

null

Return Type
Content Type
  • application/json

Responses
Table 98. http response codes
Code Message Datatype

200

Operation completed successfully.

OrderConfirmationDto

404

Order confirmation not found.

RestError

4.14.3. GET /order_confirmations/{order_confirmation}/document

Operation Id

getOrderConfirmationDocument

Description

Returns the current PDF document of a specific order confirmation as binary data.

Parameters
Path Parameters
Name Description Required Default Pattern

order_confirmation

Order confirmation number

X

null

Return Type
Content Type
  • application/octet-stream

Responses
Table 99. http response codes
Code Message Datatype

200

Operation completed successfully.

[File]

404

Order confirmation or document document not found.

RestError

4.14.4. POST /order_confirmations

Operation Id

postOrderConfirmation

Description

Creates new order confirmation. Depending on the supplied state, order confirmations are either created for staging (and completed manually) or immediately finalized. Once finalized, a number is assigned and the PDF created. If a number is coming from an external system, the EXTERNAL state and an id must be set. External documents cannot be edited and no PDF is created.

Parameters
Body Parameter
Name Description Required Default Pattern

OrderConfirmationDto

OrderConfirmationDto

X

Return Type
Content Type
  • application/json

Responses
Table 100. http response codes
Code Message Datatype

200

Operation completed successfully.

OrderConfirmationDto

400

Input invalid. Further information in the RestError response.

RestError

4.14.5. POST /order_confirmations/{order_confirmation}/cancel

Operation Id

postOrderConfirmationCancel

Description

Cancels a specific order confirmation. Only finalized or external documents can be cancelled.

Parameters
Path Parameters
Name Description Required Default Pattern

order_confirmation

Order confirmation number

X

null

Body Parameter
Name Description Required Default Pattern

BusinessDocumentCancelDto

BusinessDocumentCancelDto

-

Return Type
Content Type
  • application/json

Responses
Table 101. http response codes
Code Message Datatype

200

Operation completed successfully.

OrderConfirmationDto

400

Input invalid. Further information in the RestError response.

RestError

404

Order confirmation not found.

RestError

4.14.6. POST /order_confirmations/{order_confirmation}/complete

Operation Id

postOrderConfirmationComplete

Description

Marks a specific order confirmation as completed. Only finalized (and unfulfilled) delivery notes can be completed.

Parameters
Path Parameters
Name Description Required Default Pattern

order_confirmation

X

null

Body Parameter
Name Description Required Default Pattern

BusinessDocumentCompletionDto

BusinessDocumentCompletionDto

X

Return Type
Content Type
  • application/json

Responses
Table 102. http response codes
Code Message Datatype

200

Operation completed successfully.

OrderConfirmationDto

400

Input invalid. Further information in the RestError response.

RestError

404

Order confirmation not found.

RestError

4.15. InvoicingSetup

4.15.1. GET /dunning_levels

Operation Id

getAllDunningLevels

Description

Returns all dunning levels.

Parameters
Return Type
Content Type
  • application/json

Responses
Table 103. http response codes
Code Message Datatype

200

Operation completed successfully.

List[DunningLevelDto]

4.15.2. GET /dunning_levels/first_levels

Operation Id

getAllFirstDunningLevels

Description

Returns all fist dunning levels without a previous dunning level

Parameters
Return Type
Content Type
  • application/json

Responses
Table 104. http response codes
Code Message Datatype

200

Operation completed successfully.

List[DunningLevelDto]

4.15.3. GET /layout_setups

Operation Id

getAllLayoutSetups

Description

Returns all layout setups. A layout setup can be supplied when finalizing business documents to change the PDF layout.

Parameters
Return Type
Content Type
  • application/json

Responses
Table 105. http response codes
Code Message Datatype

200

Operation completed successfully.

List[LayoutSetupDto]

4.15.4. GET /payment_terms

Operation Id

getAllPaymentTerms

Description

Returns all payment terms. A payment term can be supplied when creating invoices.

Parameters
Return Type
Content Type
  • application/json

Responses
Table 106. http response codes
Code Message Datatype

200

Operation completed successfully.

List[PaymentTermDto]

4.15.5. GET /sequence_groups

Operation Id

getAllSequenceGroups

Description

Returns all business document sequence groups. A sequence group can be supplied when finalizing business documents.

Parameters
Return Type
Content Type
  • application/json

Responses
Table 107. http response codes
Code Message Datatype

200

Operation completed successfully.

List[SequenceGroupDto]

4.16. Items

4.16.1. POST /items

Operation Id

createItem

Description

Create a new item

Parameters
Body Parameter
Name Description Required Default Pattern

ItemDto

Item to create ItemDto

X

Return Type
Content Type
  • application/json

Responses
Table 108. http response codes
Code Message Datatype

200

Operation completed successfully.

ItemDto

400

Input invalid. Further information in the RestError response.

RestError

4.16.2. POST /item_categories

Operation Id

createItemCategory

Description

Create a new item category

Parameters
Body Parameter
Name Description Required Default Pattern

ItemCategoryDto

Item category to create ItemCategoryDto

X

Return Type
Content Type
  • application/json

Responses
Table 109. http response codes
Code Message Datatype

200

Operation completed successfully.

ItemCategoryDto

400

Input invalid. Further information in the RestError response.

RestError

4.16.3. DELETE /items/{item}

Operation Id

deleteItem

Description

Delete an existing item

Parameters
Path Parameters
Name Description Required Default Pattern

item

Item id

X

null

Return Type

-

Content Type
  • application/json

Responses
Table 110. http response codes
Code Message Datatype

200

Operation completed successfully.

<<>>

404

item not found

RestError

4.16.4. DELETE /item_categories/{item_category}

Operation Id

deleteItemCategory

Description

Delete an existing item category

Parameters
Path Parameters
Name Description Required Default Pattern

item_category

Item category id

X

null

Return Type

-

Content Type
  • application/json

Responses
Table 111. http response codes
Code Message Datatype

200

Operation completed successfully.

<<>>

400

Input invalid. Further information in the RestError response.

RestError

404

item category not found

RestError

4.16.5. GET /item_categories

Operation Id

getAllItemCategories

Description

Get all item categories

Parameters
Return Type
Content Type
  • application/json

Responses
Table 112. http response codes
Code Message Datatype

200

Operation completed successfully.

List[ItemCategoryDto]

4.16.6. GET /items

Operation Id

getAllItems

Description

Get all items

Parameters
Query Parameters
Name Description Required Default Pattern

category

item category id

-

null

search

search text

-

null

limit

return max. entry count

-

null

mainCurrency

return only items in main currency. Default: false

-

null

Return Type

array[ItemDto]

Content Type
  • application/json

Responses
Table 113. http response codes
Code Message Datatype

200

Operation completed successfully.

List[ItemDto]

4.16.7. GET /items/paginated

Operation Id

getAllItemsPaginated

Description

Get all items with optional slice and sort parameters. Max. limit of 1000.

Parameters
Query Parameters
Name Description Required Default Pattern

category

Item category id, see /item_categories. Leave empty for all items, or set to NONE for items that have no category.

-

null

search

Search text, will filter for name, number, barcode, or category name.

-

null

mainCurrency

return only items in main currency. Default: false

-

null

limit

Limit of results.

-

null

offset

Offset to start with result set

-

null

sort

Comma separated list of sort params. The direction could append to the sort property by a colon.

-

null

Return Type
Content Type
  • application/json

Responses
Table 114. http response codes
Code Message Datatype

200

Operation completed successfully.

Result

4.16.8. GET /items/{item}

Operation Id

getItem

Description

Get a specific item

Parameters
Path Parameters
Name Description Required Default Pattern

item

Item id

X

null

Return Type
Content Type
  • application/json

Responses
Table 115. http response codes
Code Message Datatype

200

Operation completed successfully.

ItemDto

404

item not found

RestError

4.16.9. GET /item_categories/{item_category}

Operation Id

getItemCategory

Description

Get a specific item category

Parameters
Path Parameters
Name Description Required Default Pattern

item_category

Item category id

X

null

Return Type
Content Type
  • application/json

Responses
Table 116. http response codes
Code Message Datatype

200

Operation completed successfully.

ItemCategoryDto

404

item category not found

RestError

4.16.10. PUT /items/{item}

Operation Id

updateItem

Description

Update an existing item

Parameters
Path Parameters
Name Description Required Default Pattern

item

Item id

X

null

Body Parameter
Name Description Required Default Pattern

ItemDto

Complete item to upgrade ItemDto

X

Return Type
Content Type
  • application/json

Responses
Table 117. http response codes
Code Message Datatype

200

Operation completed successfully.

ItemDto

400

Input invalid. Further information in the RestError response.

RestError

404

item not found

RestError

4.16.11. PUT /item_categories/{item_category}

Operation Id

updateItemCategory

Description

Update an existing item category

Parameters
Path Parameters
Name Description Required Default Pattern

item_category

Item category id

X

null

Body Parameter
Name Description Required Default Pattern

ItemCategoryDto

Complete item category to update ItemCategoryDto

X

Return Type
Content Type
  • application/json

Responses
Table 118. http response codes
Code Message Datatype

200

Operation completed successfully.

ItemCategoryDto

404

item category not found

RestError

400

Input invalid. Further information in the RestError response.

RestError

4.17. MasterDataCustomer

4.17.1. DELETE /customers/{customer}

Operation Id

deleteCustomer

Description

Deletes an existing customer.

Parameters
Path Parameters
Name Description Required Default Pattern

customer

Customer id

X

null

Return Type

-

Content Type
  • application/json

Responses
Table 119. http response codes
Code Message Datatype

200

Operation completed successfully.

<<>>

404

Customer not found.

RestError

4.17.2. DELETE /customers/{customer}/additional_addresses/{address}

Operation Id

deleteCustomerAddress

Description

Deletes an existing additional address.

Parameters
Path Parameters
Name Description Required Default Pattern

customer

Customer id

X

null

address

Address id

X

null

Return Type

-

Content Type
  • application/json

Responses
Table 120. http response codes
Code Message Datatype

200

Operation completed successfully.

<<>>

404

Customer or address not found.

RestError

4.17.3. DELETE /customers/{customer}/additional_addresses/{address}/default

Operation Id

deleteCustomerAddressDefault

Description

Marks an additional address as no longer being the default. The main address will then be used as default for the type.

Parameters
Path Parameters
Name Description Required Default Pattern

customer

Customer id

X

null

address

Address id

X

null

Return Type

-

Content Type
  • application/json

Responses
Table 121. http response codes
Code Message Datatype

200

Operation completed successfully.

<<>>

404

Customer or address not found.

RestError

4.17.4. GET /customers

Operation Id

getAllCustomers

Description

Returns all customers.

Parameters
Query Parameters
Name Description Required Default Pattern

search

search text

-

null

limit

return max. entry count

-

null

Return Type

array[CustomerDto]

Content Type
  • application/json

Responses
Table 122. http response codes
Code Message Datatype

200

Operation completed successfully.

List[CustomerDto]

4.17.5. GET /customers/{customer}

Operation Id

getCustomer

Description

Returns a specific customer.

Parameters
Path Parameters
Name Description Required Default Pattern

customer

Customer id

X

null

Return Type
Content Type
  • application/json

Responses
Table 123. http response codes
Code Message Datatype

200

Operation completed successfully.

CustomerDto

404

Customer not found.

RestError

4.17.6. GET /customers/{customer}/additional_addresses/{address}

Operation Id

getCustomerAddress

Description

Returns a specific address belonging to a customer.

Parameters
Path Parameters
Name Description Required Default Pattern

customer

Customer id

X

null

address

Address id

X

null

Return Type
Content Type
  • application/json

Responses
Table 124. http response codes
Code Message Datatype

200

Operation completed successfully.

AdditionalAddressDto

404

Customer or address not found.

RestError

4.17.7. GET /customers/{customer}/additional_addresses

Operation Id

getCustomerAddresses

Description

Returns all additional addresses belonging to a customer.

Parameters
Path Parameters
Name Description Required Default Pattern

customer

Customer id

X

null

Return Type
Content Type
  • application/json

Responses
Table 125. http response codes
Code Message Datatype

200

Operation completed successfully.

List[AdditionalAddressDto]

404

Customer not found.

RestError

4.17.8. POST /customers

Operation Id

postCustomer

Description

Creates a new customer.

Parameters
Body Parameter
Name Description Required Default Pattern

CustomerDto

CustomerDto

X

Return Type
Content Type
  • application/json

Responses
Table 126. http response codes
Code Message Datatype

200

Operation completed successfully.

CustomerDto

400

Input invalid. Further information in the RestError response.

RestError

4.17.9. POST /customers/{customer}/additional_addresses

Operation Id

postCustomerAddress

Description

Adds a new additional address to a customer.

Parameters
Path Parameters
Name Description Required Default Pattern

customer

Customer id

X

null

Body Parameter
Name Description Required Default Pattern

AdditionalAddressDto

AdditionalAddressDto

X

Return Type
Content Type
  • application/json

Responses
Table 127. http response codes
Code Message Datatype

200

Operation completed successfully.

AdditionalAddressDto

400

Input invalid. Further information in the RestError response.

RestError

404

Customer not found.

RestError

4.17.10. POST /customers/{customer}/additional_addresses/{address}/default

Operation Id

postCustomerAddressDefault

Description

Marks an additional address as the default for its type.

Parameters
Path Parameters
Name Description Required Default Pattern

customer

Customer id

X

null

address

Address id

X

null

Return Type

-

Content Type
  • application/json

Responses
Table 128. http response codes
Code Message Datatype

200

Operation completed successfully.

<<>>

404

Customer or address not found.

RestError

4.17.11. POST /customers/{customer}/create_contra_account

Operation Id

postCustomerContraAccount

Description

Creates a new receivables contra account for the customer. Only available for double-entry accounting, and the customer must not already have such an account.

Parameters
Path Parameters
Name Description Required Default Pattern

customer

Customer id

X

null

Body Parameter
Name Description Required Default Pattern

CustomerSupplierContraAccountCreationDto

CustomerSupplierContraAccountCreationDto

-

Return Type
Content Type
  • application/json

Responses
Table 129. http response codes
Code Message Datatype

200

Operation completed successfully.

CustomerDto

400

Input invalid. Further information in the RestError response.

RestError

404

Customer not found.

RestError

4.17.12. POST /customers/{customer}/default_address

Operation Id

postCustomerDefaultAddress

Description

Marks a customer’s main address as the default for all types.

Parameters
Path Parameters
Name Description Required Default Pattern

customer

Customer id

X

null

Return Type

-

Content Type
  • application/json

Responses
Table 130. http response codes
Code Message Datatype

200

Operation completed successfully.

<<>>

404

Customer not found.

RestError

4.17.13. PUT /customers/{customer}

Operation Id

putCustomer

Description

Updates an existing customer. Note that all fields must be supplied - missing fields will be overwritten as empty.

Parameters
Path Parameters
Name Description Required Default Pattern

customer

Customer id

X

null

Body Parameter
Name Description Required Default Pattern

CustomerDto

CustomerDto

X

Return Type
Content Type
  • application/json

Responses
Table 131. http response codes
Code Message Datatype

200

Operation completed successfully.

CustomerDto

400

Input invalid. Further information in the RestError response.

RestError

404

Customer not found.

RestError

4.17.14. PUT /customers/{customer}/additional_addresses/{address}

Operation Id

putCustomerAddress

Description

Updates an existing address. Note that all fields must be supplied - missing fields will be overwritten as empty.

Parameters
Path Parameters
Name Description Required Default Pattern

customer

Customer id

X

null

address

Address id

X

null

Body Parameter
Name Description Required Default Pattern

AdditionalAddressDto

AdditionalAddressDto

X

Return Type
Content Type
  • application/json

Responses
Table 132. http response codes
Code Message Datatype

200

Operation completed successfully.

AdditionalAddressDto

400

Input invalid. Further information in the RestError response.

RestError

404

Customer or address not found.

RestError

4.17.15. PUT /customers/by_number

Operation Id

putCustomerByNumber

Description

Creates or replaces a customer by the customer number. An exception will be thrown if the number is not unique to one customer. Note that all fields must be supplied - missing fields will be overwritten as empty.

Parameters
Body Parameter
Name Description Required Default Pattern

CustomerDto

CustomerDto

X

Return Type
Content Type
  • application/json

Responses
Table 133. http response codes
Code Message Datatype

200

Operation completed successfully.

CustomerDto

400

Input invalid. Further information in the RestError response.

RestError

404

Customer not found.

RestError

4.18. MasterDataSupplier

4.18.1. DELETE /suppliers/{supplier}

Operation Id

deleteSupplier

Description

Deletes an existing supplier.

Parameters
Path Parameters
Name Description Required Default Pattern

supplier

Supplier id

X

null

Return Type

-

Content Type
  • application/json

Responses
Table 134. http response codes
Code Message Datatype

200

Operation completed successfully.

<<>>

404

Supplier not found.

RestError

4.18.2. GET /suppliers

Operation Id

getAllSuppliers

Description

Returns all suppliers.

Parameters
Query Parameters
Name Description Required Default Pattern

search

search text

-

null

limit

return max. entry count

-

null

Return Type

array[SupplierDto]

Content Type
  • application/json

Responses
Table 135. http response codes
Code Message Datatype

200

Operation completed successfully.

List[SupplierDto]

4.18.3. GET /suppliers/{supplier}

Operation Id

getSupplier

Description

Returns a specific supplier.

Parameters
Path Parameters
Name Description Required Default Pattern

supplier

Supplier id

X

null

Return Type
Content Type
  • application/json

Responses
Table 136. http response codes
Code Message Datatype

200

Operation completed successfully.

SupplierDto

404

Supplier not found.

RestError

4.18.4. POST /suppliers

Operation Id

postSupplier

Description

Creates a new supplier.

Parameters
Body Parameter
Name Description Required Default Pattern

SupplierDto

Supplier to create SupplierDto

X

Return Type
Content Type
  • application/json

Responses
Table 137. http response codes
Code Message Datatype

200

Operation completed successfully.

SupplierDto

400

Input invalid. Further information in the RestError response.

RestError

4.18.5. POST /suppliers/{supplier}/create_contra_account

Operation Id

postSupplierContraAccount

Description

Creates a new payables contra account for the supplier. Only available for double-entry accounting, and the supplier must not already have such an account.

Parameters
Path Parameters
Name Description Required Default Pattern

supplier

Supplier id

X

null

Body Parameter
Name Description Required Default Pattern

CustomerSupplierContraAccountCreationDto

CustomerSupplierContraAccountCreationDto

-

Return Type
Content Type
  • application/json

Responses
Table 138. http response codes
Code Message Datatype

200

Operation completed successfully.

SupplierDto

400

Input invalid. Further information in the RestError response.

RestError

404

Supplier not found.

RestError

4.18.6. PUT /suppliers/{supplier}

Operation Id

putSupplier

Description

Updates an existing supplier. Note that all fields must be supplied - missing fields will be overwritten as empty.

Parameters
Path Parameters
Name Description Required Default Pattern

supplier

Supplier id

X

null

Body Parameter
Name Description Required Default Pattern

SupplierDto

SupplierDto

X

Return Type
Content Type
  • application/json

Responses
Table 139. http response codes
Code Message Datatype

200

Operation completed successfully.

SupplierDto

400

Input invalid. Further information in the RestError response.

RestError

404

Supplier not found.

RestError

4.18.7. PUT /suppliers/by_number

Operation Id

putSupplierByNumber

Description

Creates or replaces a supplier by the supplier number. An exception will be thrown if the number is not unique to one supplier. Note that all fields must be supplied - missing fields will be overwritten as empty.

Parameters
Body Parameter
Name Description Required Default Pattern

SupplierDto

SupplierDto

X

Return Type
Content Type
  • application/json

Responses
Table 140. http response codes
Code Message Datatype

200

Operation completed successfully.

SupplierDto

400

Input invalid. Further information in the RestError response.

RestError

4.19. PointOfSale

4.19.1. GET /cash_registers/{cash_register}/receipts

Operation Id

getAllCashRegisterReceipts

Description

Returns all receipts for a cash register.

Parameters
Path Parameters
Name Description Required Default Pattern

cash_register

Cash register number

X

null

Query Parameters
Name Description Required Default Pattern

from

Minimum date for returned receipts, ignored if invalid

-

null

to

Maximum date for returned receipts, ignored if invalid

-

null

Return Type

array[ReceiptDto]

Content Type
  • application/json

Responses
Table 141. http response codes
Code Message Datatype

200

Operation completed successfully.

List[ReceiptDto]

404

Cash register not found.

RestError

4.19.2. GET /cash_registers

Operation Id

getAllCashRegisters

Description

Returns all active cash registers. The register number must be supplied when creating cash payments for invoices.

Parameters
Return Type
Content Type
  • application/json

Responses
Table 142. http response codes
Code Message Datatype

200

Operation completed successfully.

List[CashRegisterDto]

4.19.3. GET /cash_registers/{cash_register}/daily_closings

Operation Id

getAllDailyClosings

Description

Returns all daily closings for a cash register.

Parameters
Path Parameters
Name Description Required Default Pattern

cash_register

Cash register number

X

null

Query Parameters
Name Description Required Default Pattern

from

Minimum date for returned daily closings, ignored if invalid

-

null

to

Maximum date for returned daily closings, ignored if invalid

-

null

limit

Maximum number of returned results

-

null

Return Type
Content Type
  • application/json

Responses
Table 143. http response codes
Code Message Datatype

200

Operation completed successfully.

List[DailyClosingDto]

404

Cash register not found.

RestError

4.19.4. GET /cash_registers/{cash_register}

Operation Id

getCashRegister

Description

Returns a specific cash register.

Parameters
Path Parameters
Name Description Required Default Pattern

cash_register

Cash register number

X

null

Return Type
Content Type
  • application/json

Responses
Table 144. http response codes
Code Message Datatype

200

Operation completed successfully.

CashRegisterDto

404

Cash register not found.

RestError

4.19.5. GET /cash_registers/{cash_register}/layout

Operation Id

getCashRegisterLayout

Description

Get the current print layout setup of a specific cash register

Parameters
Path Parameters
Name Description Required Default Pattern

cash_register

Cash register number

X

null

Return Type
Content Type
  • application/json

Responses
Table 145. http response codes
Code Message Datatype

200

Operation completed successfully.

CashRegisterLayoutDto

404

Cash register not found.

RestError

4.19.6. GET /cash_registers/{cash_register}/daily_closings/{daily_closing}

Operation Id

getDailyClosing

Description

Returns a specific daily closing for a cash register.

Parameters
Path Parameters
Name Description Required Default Pattern

cash_register

Cash register number

X

null

daily_closing

Daily closing date

X

null

Return Type
Content Type
  • application/json

Responses
Table 146. http response codes
Code Message Datatype

200

Operation completed successfully.

DailyClosingDto

404

Cash register or daily closing not found.

RestError

4.19.7. GET /cash_registers/{cash_register}/daily_closings/last

Operation Id

getDailyClosingLast

Description

Returns the last daily closing for a cash register.

Parameters
Path Parameters
Name Description Required Default Pattern

cash_register

Cash register number

X

null

Return Type
Content Type
  • application/json

Responses
Table 147. http response codes
Code Message Datatype

200

Operation completed successfully.

DailyClosingDto

404

Cash register or daily closing not found.

RestError

4.19.8. GET /cash_registers/{cash_register}/receipts/item_summary

Operation Id

getItemSummary

Description

Return a list of receipts grouped by items and time period

Parameters
Path Parameters
Name Description Required Default Pattern

cash_register

Cash register id

X

null

Query Parameters
Name Description Required Default Pattern

from

Minimum date for returned receipts. Defaults to the first day of the current year.

-

null

to

Maximum date for returned receipts. Defaults to the last date of the current year. Cannot be more than one year apart from the minimum date.

-

null

period

The time period (YEAR, MONTH or DAY) for which the receipts should be summarized by.

-

DAY

sort

Comma separated list of sort params. The direction could append to the sort property by a colon.

-

null

Return Type
Content Type
  • application/json

Responses
Table 148. http response codes
Code Message Datatype

200

Operation completed successfully.

ReceiptItemSummaryDto

4.19.9. GET /cash_registers/{cash_register}/receipts/{receipt}

Operation Id

getReceipt

Description

Returns a specific receipt for a cash register.

Parameters
Path Parameters
Name Description Required Default Pattern

cash_register

Cash register number

X

null

receipt

the sequence number of the receipt

X

null

Return Type
Content Type
  • application/json

Responses
Table 149. http response codes
Code Message Datatype

200

Operation completed successfully.

ReceiptDto

404

Cash register or receipt not found.

RestError

4.19.10. GET /cash_registers/{cash_register}/receipts/{receipt}/document

Operation Id

getReceiptDocument

Description

Returns the current PDF of a receipt as binary data.

Parameters
Path Parameters
Name Description Required Default Pattern

cash_register

Cash register number

X

null

receipt

the number of the receipt

X

null

Header Parameters
Name Description Required Default Pattern

referer

-

null

Query Parameters
Name Description Required Default Pattern

type

set content-disposition

-

attachment

Return Type
Content Type
  • application/octet-stream

Responses
Table 150. http response codes
Code Message Datatype

200

Operation completed successfully.

[File]

404

Cash register or receipt not found.

RestError

4.19.11. GET /cash_registers/{cash_register}/receipts/{receipt}/layout/star

Operation Id

getReceiptLayoutStar

Description

Returns a specific receipt for a cash register in the star print layout.

Parameters
Path Parameters
Name Description Required Default Pattern

cash_register

Cash register number

X

null

receipt

the sequence number of the receipt

X

null

Query Parameters
Name Description Required Default Pattern

width

the width of fixed-size elements like tables

-

null

Return Type
Content Type
  • application/json

Responses
Table 151. http response codes
Code Message Datatype

200

Operation completed successfully.

StarPrintReceipt

404

Cash register or receipt not found.

RestError

4.19.12. GET /cash_registers/{cash_register}/receipts/user_summary

Operation Id

getUserSummary

Description

Return a list of receipts grouped by users and time period

Parameters
Path Parameters
Name Description Required Default Pattern

cash_register

Cash register id

X

null

Query Parameters
Name Description Required Default Pattern

from

Minimum date for returned receipts. Defaults to the first day of the current year.

-

null

to

Maximum date for returned receipts. Defaults to the last date of the current year. Cannot be more than one year apart from the minimum date.

-

null

period

The time period (YEAR, MONTH or DAY) for which the receipts should be summarized by.

-

DAY

sort

Comma separated list of sort params. The direction could append to the sort property by a colon.

-

null

Return Type
Content Type
  • application/json

Responses
Table 152. http response codes
Code Message Datatype

200

Operation completed successfully.

ReceiptUserSummaryDto

4.19.13. POST /cash_registers/{cash_register}/daily_closings/last/close_month

Operation Id

postDailyClosingCloseMonth

Description

Closes the month with the last daily closing. The daily closing must be finalized and not already be closing the month. Note that the last daily closing will automatically close the month on the first booking in the next month.

Parameters
Path Parameters
Name Description Required Default Pattern

cash_register

Cash register number

X

null

Return Type
Content Type
  • application/json

Responses
Table 153. http response codes
Code Message Datatype

200

Operation completed successfully.

DailyClosingDto

400

Input invalid. Further information in the RestError response.

RestError

404

Cash register or daily closing not found.

RestError

4.19.14. POST /cash_registers/{cash_register}/daily_closings/last/close_year

Operation Id

postDailyClosingCloseYear

Description

Closes the year with the last daily closing. The daily closing must be finalized and not already be closing the year. Note that the last daily closing will automatically close the year on the first booking in the next year.

Parameters
Path Parameters
Name Description Required Default Pattern

cash_register

Cash register number

X

null

Return Type
Content Type
  • application/json

Responses
Table 154. http response codes
Code Message Datatype

200

Operation completed successfully.

DailyClosingDto

400

Input invalid. Further information in the RestError response.

RestError

404

Cash register or daily closing not found.

RestError

4.19.15. POST /cash_registers/{cash_register}/daily_closings/last/finalize

Operation Id

postDailyClosingLastFinalize

Description

Finalizes the last daily closing. It must be open to be finalized.

Parameters
Path Parameters
Name Description Required Default Pattern

cash_register

Cash register number

X

null

Body Parameter
Name Description Required Default Pattern

DailyClosingFinalizationDto

DailyClosingFinalizationDto

X

Return Type
Content Type
  • application/json

Responses
Table 155. http response codes
Code Message Datatype

200

Operation completed successfully.

DailyClosingDto

400

Input invalid. Further information in the RestError response.

RestError

404

Cash register or daily closing not found.

RestError

4.19.16. POST /cash_registers/{cash_register}/receipts

Operation Id

postReceipt

Description

Creates a new receipt for the cash register.

Parameters
Path Parameters
Name Description Required Default Pattern

cash_register

Cash register number

X

null

Body Parameter
Name Description Required Default Pattern

ReceiptDto

ReceiptDto

X

Return Type
Content Type
  • application/json

Responses
Table 156. http response codes
Code Message Datatype

200

Operation completed successfully.

ReceiptDto

400

Input invalid. Further information in the RestError response.

RestError

404

Cash register not found.

RestError

4.19.17. POST /cash_registers/{cash_register}/receipts/{receipt}/cancel

Operation Id

postReceiptCancel

Description

Cancels a receipt for the cash register. The receipt must not have been cancelled or be a cancellation receipt.

Parameters
Path Parameters
Name Description Required Default Pattern

cash_register

Cash register number

X

null

receipt

the sequence number of the receipt

X

null

Return Type
Content Type
  • application/json

Responses
Table 157. http response codes
Code Message Datatype

200

Operation completed successfully.

ReceiptDto

400

Input invalid. Further information in the RestError response.

RestError

404

Cash register not found.

RestError

4.19.18. POST /cash_registers/{cash_register}/receipts/{receipt}/send_mail

Operation Id

postReceiptSendMail

Description

Sends an e-mail with the receipt. The mail address must be provided for verification even if the customer has an e-mail registered.

Parameters
Path Parameters
Name Description Required Default Pattern

cash_register

Cash register number

X

null

receipt

the sequence number of the receipt

X

null

Body Parameter
Name Description Required Default Pattern

MailRecipientDto

MailRecipientDto

X

Return Type
Content Type
  • application/json

Responses
Table 158. http response codes
Code Message Datatype

200

Operation completed successfully.

ReceiptDto

400

Input invalid. Further information in the RestError response.

RestError

404

Cash register not found.

RestError

4.20. TravelExpenseManagement

4.20.1. GET /trips

Operation Id

getAllTrips

Description

Returns all trips for the currently authenticated user.

Parameters
Query Parameters
Name Description Required Default Pattern

updated_since

Return only trips updated after this timestamp in milliseconds (Instant.now().toEpochMilli())

-

null

from_date

Return only trips after this date (inclusive)

-

null

to_date

Return only trips before this date (inclusive)

-

null

vehicle_id

The id for a specific vehicle

-

null

search_text

Search-text

-

null

include_waypoints

Show waypoints

-

null

limit

Maximum number of returned results

-

null

Return Type

array[TripDto]

Content Type
  • application/json

Responses
Table 159. http response codes
Code Message Datatype

200

Operation completed successfully.

List[TripDto]

4.20.2. GET /vehicles

Operation Id

getAllVehicles

Description

Returns all vehicles.

Parameters
Query Parameters
Name Description Required Default Pattern

updated_since

Return only vehicles updated after this timestamp in milliseconds (Instant.now().toEpochMilli())

-

null

Return Type

array[VehicleDto]

Content Type
  • application/json

Responses
Table 160. http response codes
Code Message Datatype

200

Operation completed successfully.

List[VehicleDto]

4.20.3. GET /trips/{trip}

Operation Id

getTrip

Description

Returns a trip by its id.

Parameters
Path Parameters
Name Description Required Default Pattern

trip

Trip id

X

null

Return Type
Content Type
  • application/json

Responses
Table 161. http response codes
Code Message Datatype

200

Operation completed successfully.

TripDto

404

Trip not found.

RestError

4.20.4. GET /vehicles/{vehicle}

Operation Id

getVehicle

Description

Returns a specific vehicle by its id.

Parameters
Path Parameters
Name Description Required Default Pattern

vehicle

Vehicle id

X

null

Return Type
Content Type
  • application/json

Responses
Table 162. http response codes
Code Message Datatype

200

Operation completed successfully.

VehicleDto

404

Vehicle not found.

RestError

4.20.5. POST /trips

Operation Id

postTrip

Description

Creates a new trip for a vehicle.

Parameters
Body Parameter
Name Description Required Default Pattern

TripDto

TripDto

X

Return Type
Content Type
  • application/json

Responses
Table 163. http response codes
Code Message Datatype

200

Operation completed successfully.

TripDto

400

Input invalid. Further information in the RestError response.

RestError

4.20.6. POST /vehicles

Operation Id

postVehicle

Description

Creates a new vehicle.

Parameters
Body Parameter
Name Description Required Default Pattern

VehicleDto

VehicleDto

X

Return Type
Content Type
  • application/json

Responses
Table 164. http response codes
Code Message Datatype

200

Operation completed successfully.

VehicleDto

400

Input invalid. Further information in the RestError response.

RestError

4.20.7. PUT /trips/{trip}

Operation Id

putTrip

Description

Update a trip. Waypoints cannot be updated and will be ignored.

Parameters
Path Parameters
Name Description Required Default Pattern

trip

Trip id

X

null

Body Parameter
Name Description Required Default Pattern

TripDto

TripDto

X

Return Type
Content Type
  • application/json

Responses
Table 165. http response codes
Code Message Datatype

200

Operation completed successfully.

TripDto

400

Input invalid. Further information in the RestError response.

RestError

4.20.8. PUT /vehicles/{vehicle}

Operation Id

putVehicle

Description

Updates a vehicle.

Parameters
Path Parameters
Name Description Required Default Pattern

vehicle

Vehicle id

X

null

Body Parameter
Name Description Required Default Pattern

VehicleDto

VehicleDto

X

Return Type
Content Type
  • application/json

Responses
Table 166. http response codes
Code Message Datatype

200

Operation completed successfully.

VehicleDto

400

Input invalid. Further information in the RestError response.

RestError

4.20.9. DELETE /trips/{trip}

Operation Id

removeTrip

Description

Delete an existing trip entry

Parameters
Path Parameters
Name Description Required Default Pattern

trip

Trip id

X

null

Return Type

-

Content Type
  • application/json

Responses
Table 167. http response codes
Code Message Datatype

204

Operation completed successfully.

<<>>

400

Input invalid. Further information in the RestError response.

RestError

404

Trip not found

RestError

4.20.10. DELETE /vehicles/{vehicle}

Operation Id

removeVehicle

Description

Delete an existing vehicle with no trips

Parameters
Path Parameters
Name Description Required Default Pattern

vehicle

Vehicle id

X

null

Return Type

-

Content Type
  • application/json

Responses
Table 168. http response codes
Code Message Datatype

204

Operation completed successfully.

<<>>

400

Input invalid. Further information in the RestError response.

RestError

404

vehicle not found

RestError

5. Models

5.1. AccountBalanceDto

Field Name Required Type Description Format

accountCode

String

Numeric account code.

accountName

String

Readable, translated name.

credit

BigDecimal

Account credit over the specified time period.

debit

BigDecimal

Account debit over the specified time period.

sum

BigDecimal

Account sum over the specified time period.

5.2. AccountDto

Field Name Required Type Description Format

id

String

Numeric account code.

name

String

Readable, translated name.

type

String

Account type code. Types are organizational groups of accounts, but have no direct impact on bookings. Examples are E (incomes) and A (outgos)

defaultTaxClassEntry

String

The code of the default tax class. If no tax class is specified, this class will be used, and if forced, only this class can be used.

forcedTaxClass

Boolean

If the default tax class is forced, it must be set and bookings with different tax class entries are not allowed for this account.

5.3. AccountLineDto

Field Name Required Type Description Format

account

X

String

Numeric account code.

accountName

X

String

Readable, translated name.

accountClass

X

String

Class to which this account belongs, defined as accounting group. This is usually based on the first number of the account code.

Enum: GROUP_0, GROUP_1, GROUP_2, GROUP_3, GROUP_4, GROUP_4_CHANGES, GROUP_5, GROUP_6, GROUP_7, GROUP_8_GAINS, GROUP_8_LOSSES, GROUP_8_OTHER, GROUP_9,

openingBalance

BigDecimal

The opening balance of the account. Is only returned when opening_balances was set in the request.

monthSums

X

List of AccountMonthLineDto

balanceSum

BigDecimal

The closing balance of the account. Is only returned when closing_entries was set in the request.

totalSum

BigDecimal

The total sum of the account. Is only returned when totals was set in the request.

5.4. AccountMonthLineDto

Field Name Required Type Description Format

year

X

Integer

int32

month

X

Integer

int32

sum

X

BigDecimal

5.5. AdditionalAddressDto

Field Name Required Type Description Format

id

String

UUID which identifies this instance of an address.

identifier

String

Human-readable identifier to label this address.

addressType

String

Determines whether this address is an invoice address, delivery address, or both (default).

title

String

Human-readable title, like Dr., if the address references a person.

firstName

String

First name if the address references a person.

lastName

String

Last name if the address references a person.

streetName

String

Street name of the address, excluding the number.

streetNumber

String

Street number of the address. May include special characters to designate floor etc.

zipCode

String

Zip code of the address.

city

String

City of the address.

country

String

Country code of the address. See the /countries resource for all available countries and their codes. Defaulted to AT.

region

String

Region code of the address, depending on country. See the /countries/{country}/regions resource for all available regions and their codes.

addressBranchNo

String

Address branch number of the company, if present.

emailAddress

String

E-mail address belonging to the contact of this address.

copyEmailAddress

String

E-mail address to which a copy of all correspondence should be sent (CC or BCC).

copyEmailType

String

Copy type when a copy e-mail address is set (CC or BCC). Defaults to BCC.

telNumber

String

Telephone number belonging to the contact of this address.

faxNumber

String

Fax number belonging to the contact of this address.

mobileNumber

String

Mobile number belonging to the contact of this address.

skype

String

Skype user name belonging to the contact of this address.

webAddress

String

Web address belonging to the contact, or the branch address.

description

String

Short description or note belonging to this address.

salutationCode

String

Salutation code for a contact as person.

5.6. AddressInfoDto

Specific customer name and address for this document only. If set (with company name and/or customer name), no defaults from customer or address are applied.

Field Name Required Type Description Format

salutationCode

String

Salutation code for a contact as person.

title

String

Title if the contact references a person.

firstName

String

First name if the contact references a person. Required unless a company name is supplied.

lastName

String

Last name if the contact references a person. Required unless a company name is supplied.

compSalutationCode

String

Salutation code for a contact as a company.

companyName

String

Company name for a company contact. Required unless a first and last name are supplied.

streetName

String

Street name of the address, excluding the number.

streetNumber

String

Street number of the address. May include special characters to designate floor etc.

zipCode

String

Zip code of the address.

city

String

City of the address.

emailAddress

String

E-mail address belonging to the contact.

copyEmailAddress

String

E-mail address belonging to the contact.

copyEmailType

String

E-mail address belonging to the contact.

Enum: CC, BCC,

country

String

Country code of the address. See the /countries resource for all available countries and their codes. Defaulted to AT.

region

String

Region code of the address, depending on country. See the /countries/{country}/regions resource for all available regions and their codes.

5.7. Attachment

Field Name Required Type Description Format

headers

Map of [array]

object

Object

dataHandler

Attachment_dataHandler

contentDisposition

ContentDisposition

contentId

String

contentType

Attachment_contentType

5.8. AttachmentContentType

Field Name Required Type Description Format

type

String

subtype

String

parameters

Map of [string]

wildcardType

Boolean

wildcardSubtype

Boolean

5.9. AttachmentDataHandler

Field Name Required Type Description Format

dataSource

Attachment_dataHandler_dataSource

commandMap

Attachment_dataHandler_commandMap

transferDataFlavors

List of [Attachment_dataHandler_transferDataFlavors_inner]

preferredCommands

List of [Attachment_dataHandler_preferredCommands_inner]

allCommands

List of [Attachment_dataHandler_preferredCommands_inner]

name

String

inputStream

Object

content

Object

outputStream

Object

contentType

String

5.10. AttachmentDataHandlerCommandMap

Field Name Required Type Description Format

mimeTypes

List of [string]

5.11. AttachmentDataHandlerDataSource

Field Name Required Type Description Format

name

String

inputStream

Object

outputStream

Object

contentType

String

5.12. AttachmentDataHandlerPreferredCommandsInner

Field Name Required Type Description Format

commandName

String

commandClass

String

5.13. AttachmentDataHandlerTransferDataFlavorsInner

Field Name Required Type Description Format

mimeType

String

humanPresentableName

String

subType

String

representationClassInputStream

Boolean

representationClassByteBuffer

Boolean

flavorTextType

Boolean

representationClassReader

Boolean

representationClassCharBuffer

Boolean

representationClassSerializable

Boolean

representationClassRemote

Boolean

mimeTypeSerializedObject

Boolean

defaultRepresentationClassAsString

String

flavorSerializedObjectType

Boolean

flavorRemoteObjectType

Boolean

flavorJavaFileListType

Boolean

primaryType

String

5.14. BankAccountDto

A bank account represents a payment account. These are usually bank accounts, but can also include credit card and cash payment accounts.

Field Name Required Type Description Format

id

String

Unique id for this bank account.

name

String

Human-readable name for this bank account.

bankName

String

Name of the financial institute.

accountOwnerName

String

Name of the account owner.

bic

String

BIC code of the account. Only present for bank accounts.

iban

String

IBAN of the account. Only present for bank accounts.

accountCode

String

Account code for the account tied to this bank account, see /accounts resource.

accountUserDescription

String

Human-readable description of the account tied to this bank account, if present.

currencyCode

String

Currency code for the account in ISO format. Defaults to EUR.

shown

Boolean

Indicates if this bank account is displayed (true) or hidden from the GUI (false).

5.15. BankStatementHeaderDto

Field Name Required Type Description Format

bankAccount

X

String

Bank account uuid for this statement header, see the /bank_accounts resource.

bankAccountName

String

Human readable name of the bank account for this statement header.

statementDate

date

Date of creation or export for this bank statement.

date

valueDateFrom

date

Earliest date of all statement lines in the header.

date

valueDateTo

date

Last date of all statement lines in the header.

date

id

String

Uuid for this statement header.

fileName

X

String

File name for the bank statement header. Will be sanitized.

currencyCode

String

Currency code for the header in ISO format. Equals the currency of the bank account.

status

String

Current processing status of the header.

Enum: NEW, RECONCILED, IN_PROGRESS, NOT_RECONCILED, DELETED,

5.16. BankStatementLineDto

Describes a bank statement line. Different, sometimes repeating, text properties map the different ways payment providers supply information about the transaction.

Field Name Required Type Description Format

reasonForTransfer

String

Information from the originator about the reason for the transaction. Split into multiple properties as payment providers assign the reason differently and sometimes in multiple fields.

partnerAccountNumber

String

Account number of the person or company that received the transaction.

originatorBankCode

String

Bank code of the person or company that originated the transaction.

originatorAccountNumber

String

Account number of the person or company that originated the transaction.

reasonForTransfer2

String

Information from the originator about the reason for the transaction. Split into multiple properties as payment providers assign the reason differently and sometimes in multiple fields.

reasonForTransfer1

String

Information from the originator about the reason for the transaction. Split into multiple properties as payment providers assign the reason differently and sometimes in multiple fields.

originatorBankReference

String

Bank reference of the person or company that originated the transaction.

reasonForTransfer3

String

Information from the originator about the reason for the transaction. Split into multiple properties as payment providers assign the reason differently and sometimes in multiple fields.

valueDate

X

date

Value date of the transaction, as submitted by the initiator.

date

amount

X

BigDecimal

Total amount of the booking. Positive for credit, and negative for debit transactions.

partnerName

String

Name of the person or company that received the transaction.

partnerBankCode

String

Bank code of the person or company that received the transaction.

customerData

String

Additional customer data about the transaction.

reasonForTransfer5

String

Information from the originator about the reason for the transaction. Split into multiple properties as payment providers assign the reason differently and sometimes in multiple fields.

additionalText

String

Additional text supplied for the transaction.

transactionId

String

Optional, unique transaction id. Lines with duplicate transaction ids are filtered out as duplicates.

reasonForTransfer4

String

Information from the originator about the reason for the transaction. Split into multiple properties as payment providers assign the reason differently and sometimes in multiple fields.

bookingDate

X

date

Actual booking date of the transaction, as determined by the bank.

date

originator

String

Name of the person or company that originated the transaction.

note

String

Additional note supplied for the transaction.

id

Integer

Line number of the line, must be unique. Will be auto-numbered on import.

int32

currencyCode

String

Currency code for the line in ISO format. Defaults to the main currency.

description

String

Description field describing the purpose of the line.

status

String

Current import status, used to determine if a line is a potential duplicate of an earlier line. Potential duplicates can be submitted by PSD2 providers, but are marked as such.

Enum: ACTIVE, POTENTIALLY_DUPLICATED, DELETED,

5.17. BankStatementLineResultDto

Field Name Required Type Description Format

addedCount

Integer

Number of lines that were created.

int32

duplicatesCount

Integer

Number of lines that were detected as duplicates and skipped.

int32

addedLines

List of BankStatementLineDto

All lines that were appended as a result of this operation. Only returned if returnLines in the request was set.

duplicateTransactionIds

List of [string]

A distinct list of duplicate transaction ids that were ignored. Only returned if returnLines in the request was set.

5.18. BankStatementRequestDto

Field Name Required Type Description Format

bankStatementLines

List of BankStatementLineDto

The bank statement lines to append.

returnLines

Boolean

Set to true if a list of created lines (and found duplicates) is to be included. Otherwise, only the counts will be returned.

5.19. BusinessDocumentCancelDto

Field Name Required Type Description Format

layoutSetup

String

Layout setup id of the layout to use for the cancellation document PDF, see /layout_setups resource. Is defaulted with the configured default setup. Ignored for EXTERNAL type business documents.

cancellationDate

date

Date of cancellation, defaulted with today.

date

ebInterfaceVersion

String

If EB interface creation is configured, this property is mandatory and defines the EB interface version.

Enum: NONE, V6_P1, V6_P0, V5_P0, V4_P3, V4_P2, V4_P1, V4_P0, V3_P02, V3_P0,

sequenceGroup

String

Sequence group id, for when a different sequence group is to be used besides the configured default group. See the /sequence_groups resource.

cancelType

String

Type of cancellation for the document. CANCELLATION (default) only cancels the document. For invoices, CANCELLATION_CREDIT_MEMO creates a positive credit memo, and CANCELLATION_INVOICE creates a negative cancellation invoice.

Enum: CANCELLATION, CANCELLATION_CREDIT_MEMO, CANCELLATION_INVOICE,

5.20. BusinessDocumentCompletionDto

Field Name Required Type Description Format

completionDate

X

date

The date the document was completed. Defaulted with today.

date

completionState

X

String

The completion state to set. Allowed states are ACCEPTED and REJECTED for offers, IN_PROGRESS and DONE for order confirmations, and IN_PREPARATION and DELIVERED for delivery notes.

Enum: ACCEPTED, REJECTED, IN_PROGRESS, DONE, IN_PREPARATION, DELIVERED,

5.21. BusinessDocumentLineDto

List of all business document lines. The order of this array defines the numbers assigned to the lines.

Field Name Required Type Description Format

id

Integer

Line number, automatically assigned based on order of creation.

int32

name

String

Short name identifying the item of this line.

description

String

Descriptive text for the item of the line.

type

String

Special type of the line. LINE is the default and designates regular item lines, credit memos create CREDIT_MEMO lines (which are distinguished so they are not copied to non-credit-memo documents), DUNNING_FEE is added when a dunning is created for the invoice. CASH_IN_CM and ON_ACCT designate lines of pre-payments to an invoice, which are subtracted from the total and not copied. OFFER_OPTION is a special type for offers only, to indicate that a line in the offer is optional. OFFER_OPTION lines are not added to the total sum. TOTAL_DISCOUNT and TOTAL_SURCHARGE applies to all lines that are not ignored in total discount.

Enum: LINE, DUNNING_FEE, CASH_IN_CM, ON_ACCT, CREDIT_MEMO, TOTAL_DISCOUNT, TOTAL_SURCHARGE, OFFER_OPTION,

itemPrice

BigDecimal

Item price of a single unit. Must be present if an item reference is not supplied.

itemPriceType

String

Determines it item price is net without tax (N) or total with tax (T). Must be present if an item reference is not supplied.

Enum: N, T,

unitOfMeasure

String

Short code for unit type, see the /units_of_measure resource.

netPrice

X

BigDecimal

Total net price of the line. Always required for verification. Maximum of 10 digits and 5 fractional digits.

taxPrice

X

BigDecimal

Total tax amount of the line. Always required for verification. Maximum of 10 digits and 5 fractional digits.

totalPrice

X

BigDecimal

Total price, including tax, of the line. Always required for verification, and must be the sum of net and tax price. Maximum of 10 digits and 5 fractional digits.

remainingAmount

BigDecimal

The remaining unpaid amount of the line, which is reduced for every payment, or zero when the document is fully paid. Only for invoices and credit memos.

discount

BigDecimal

Optional discount amount, either as a total amount or a percentage (defined in discount mode). Maximum of 10 digits and 5 fractional digits.

discountMode

String

Determines whether discount is a total amount (CONSTANT) or a percentage (RATE). Must be set together with discount amount.

Enum: RATE, CONSTANT, CONSTANT_TOTAL,

amount

X

BigDecimal

The total item amount, i.e. number of units purchased. Maximum of 10 digits and 5 fractional digits.

itemNumber

String

Item number, identification, or barcode. Is defaulted from the item when an item reference is supplied.

item

String

Item id, see the /items resource. When supplied with a valid item and item defaulting is enabled (default), then description, item net price, item number and unit of measure are defaulted, but can be overridden. Without defaulting, only the reference is saved, but no data from the item applied.

itemDefaulting

Boolean

If not explicitly disabled, item data from a supplied item reference is defaulted for the line. When set to false, no data is defaulted and all fieldsmust be supplied in the request.

account

String

Account code for the income account for this line, see the /accounts resource. Defaulted with the item account, if defaulting is not disabled. Otherwise a valid account must be supplied.

taxClassEntry

String

Tax class entry code for the income account for this line, see the /accounts/{account}/tax_class_entries resource. Determines the tax rate and is defaulted with the item tax rate, if defaulting is not disabled. Otherwise, a valid tax class entry must be supplied.

5.22. CancellationDto

Field Name Required Type Description Format

cancelDate

X

date

Date of the cancellation.

date

cancelReason

X

String

Reason for the cancellation.

5.23. CancelledInvoiceDto

Field Name Required Type Description Format

id

String

Number of the business document. Will be automatically generated, unless EXTERNAL is set for the state - then it is a mandatory property. Must be unique.

uuid

String

Unique identifier of the business document.

description

String

Description of the business document to be printed after the subject. Defaulted with configured layout, unless the state is EXTERNAL.

internalDescription

String

Internal note that isn't printed.

date

X

date

Date of the invoice. Always required.

date

state

X

String

Determines the state after creation. STAGING leaves the document open for editing, FINALIZED completes it, EXTERNAL for invoices created outside of the application, which requires a number (id) and will not create a PDF or default any layout properties.

Enum: STAGING, FINALIZED, EXTERNAL, CANCELLED,

netAmount

BigDecimal

Total net amount of the document. Must match the sum of all line net amounts if document is FINALIZED or EXTERNAL for verification. Maximum of 10 digits and 2 fractional digits.

taxAmount

BigDecimal

Total tax amount of the document. Must match the sum of all line tax amounts if document is FINALIZED or EXTERNAL for verification. Maximum of 10 digits and 2 fractional digits.

totalAmount

BigDecimal

Total amount of the document including tax. Must match the sum of all line totals if document is FINALIZED or EXTERNAL for verification. Maximum of 10 digits and 2 fractional digits.

remainingAmount

BigDecimal

Remaining, unpaid amount of the document (invoice or credit memo). Decreases with payments, 0 for paid documents.

currency

String

Currency code of the document, see the /currencies resource. Defaulted with EUR.

currencyRate

BigDecimal

Currency rate of the document. Defaulted with 1.

referenceText

String

Reference info to other documents, business case information, remittance numbers, etc.

referenceDate

date

Optional reference date to another business case, transaction, etc.

date

footer

String

Description of the business document to be printed after the lines. Defaulted with configured layout, unless the state is EXTERNAL.

customer

String

ID of the customer, see the /customers resource.

customerName

String

Customer name, for when the customer doesn't have a record, or doesn't need one. Ignored if a customer id is set.

layoutSetup

String

ID of the layout to be used, seee the /layout_setups resource. Defaulted with configured default setup, if any, and ignored if the document state is not FINALIZED.

sequenceGroup

String

Sequence group id, for when a different sequence group is to be used besides the configured default group. See the /sequence_groups resource.

updatedAt

Date

Timestamp of the last update.

date-time

lines

X

List of BusinessDocumentLineDto

List of all business document lines. The order of this array defines the numbers assigned to the lines.

additionalAddress

String

Additional address id, see the /customer/{customer}/additional_addresses resource. Sets an address besides the default to be used for this document.

normalizeRoundingErrors

Boolean

Defines if rounding errors between the supplied document totals and lines should be corrected. If enabled, the supplied document totals will not be validated against the system-internal calculation. Instead, the supplied totals are taken as the actual invoice totals, and minor discrepancies (rounding errors) will be corrected in the totals of the last supplied document line to match the system calculation. Use this if your system calculates totals and rounds differently and you have trouble passing the validation. Enabling this will also disable the item price and amount validation against line totals.

addressInfo

AddressInfoDto

paymentTerm

String

Payment term id, see /payment_terms resource. Determines due date, dunning date, etc. and is defaulted with the configured default payment term, if any.

deliveryFromDate

date

Delivery span. Defaulted with configured delivery date range setting.

date

deliveryToDate

date

Delivery span. Defaulted with configured delivery date range setting.

date

signed

Boolean

Determines if the document is to be signed after finalization.

paidDate

date

Date the invoice was fully paid.

date

paid

Boolean

Marks if the invoice is fully paid.

dueDate

date

Date the invoice is due. Calculated from the payment term. Can be set manually if the payment term does not define a fixed due date.

date

dunningDate

date

Date of the last dunning made for non-payment of the invoice.

date

lastDunningLevel

Integer

Last dunning level issued for the invoice.

int32

ebInterfaceVersion

String

If EB interface creation is configured, this property is mandatory and defines the EB interface version.

Enum: NONE, V6_P1, V6_P0, V5_P0, V4_P3, V4_P2, V4_P1, V4_P0, V3_P02, V3_P0,

newDocumentNumber

String

Number of the business document created for the cancellation, if one was requested by the cancel type.

5.24. CashRegisterDto

Field Name Required Type Description Format

id

Integer

Cash register number, which must be unique.

int32

name

String

Human-readable name of the cash register.

group

String

Optional, freely defined register group, for example by payment method or branch office.

state

String

NEW indicates a new cash register that can be freely edited and is not active. ACTIVE are cash registers ready to accept receipts and are read-only except for a few properties. LOCKED registers have been decommissioned and cannot be used. TEST designates a freely usable test cash register, which is automatically created.

Enum: NEW, READY, ACTIVE, LOCKED, TEST,

currentBalance

BigDecimal

Current total balance of the register. Cannot drop below zero.

allowPastIncome

Boolean

Receipts are usually created with the current date and time. If this is enabled, backdating receipts is allowed, and a date/time can be supplied on receipt creation. This is useful when receipts are created by hand for mobile workers and registered afterwards. Dating a receipt before the last receipt in the cash register is prohibited regardless of this setting.

enableDrawback

Boolean

When this is enabled, all front-ends of the cash register are supposed to activate the cashback feature, i.e. display the amount of currency returned to the customer on overpayment.

defaultRegister

Boolean

Indicates if this is the default cash register to use in frontends.

bankAccountId

String

Bank account id for the cash payment account, see the /bank_accounts resource. Note that bank_accounts refers to payment accounts, which can also be cash, Paypal, or others.

5.25. CashRegisterLayoutDto

Field Name Required Type Description Format

description

String

Human-readable name of the layout.

layoutPrintType

String

Defines the type of the layout, being either types for printers (like A4) or special receipt printer types.

Enum: STANDARD, CUSTOM_PAPER, CUSTOM_TEMPLATE, STANDARD_PAPER, STANDARD_BON, SMALL_BON, APP_SMALL_BON, APP_BON,

displaySubject

String

Subject line for the regular receipt.

cancelDisplaySubject

String

Subject line for the cancellation receipt.

positionLogo

String

Relative position of the logo (top image).

Enum: LEFT, RIGHT, CENTER,

positionHeader

String

Relative position of the header text.

Enum: LEFT, RIGHT, CENTER,

positionFooter

String

Relative position of the footer text.

Enum: LEFT, RIGHT, CENTER,

backgroundColor

String

Color of the background in HTML hex.

fontColor

String

Color of the font in HTML hex.

fontType

String

Font family, like ARIAL or COURIER.

header

String

Header text printed at the top of the page.

preLinesText

String

Text printed after the subject and before the receipt lines.

postLinesText

String

Text printed after the receipt lines.

footer

String

Footer text printed at the bottom of the page.

logoContentType

String

Image format of the logo.

Enum: JPG, JPEG, PNG,

logo

String

Base64-encoded image to be printed at the top.

amountType

String

For receipts printed on a printer with limited space (Star printer), this property determines if either the net or total price of a line should be printed on the receipt.

Enum: N, T,

printDiscount

Boolean

Defines if detailed discount information should be printed on the receipt.

5.26. CbiPaymentDto

Field Name Required Type Description Format

paymentType

String

Indicates if the payment should create a payment booking (= PAYMENT) or not, as a booking was already created manually before (= EXISTING_CREDIT). Defaults to PAYMENT.

Enum: PAYMENT, EXISTING_CREDIT, DISCOUNT, IRRECOVERABLE, CURRENCY_DIFFERENCE, ROUNDING_DIFFERENCE,

paymentAmount

BigDecimal

Total paid amount in the currency of the invoice.

paymentAmountInMainCurrency

BigDecimal

Total paid amount in the accounting currency (usually EUR).

contraAccount

X

String

Account that made/received the payment. See the /accounts resource. Must be of the cash account type (U) and not be reserved (e.g. from a cash register).

paymentDate

X

date

Date of the payment.

date

currencyRate

BigDecimal

Currency rate at the payment date. Defaulted with 1.

paymentDescription

String

Optional description of the payment.

5.27. ContentDisposition

Field Name Required Type Description Format

type

String

filename

String

parameters

Map of [string]

5.28. CountryDto

Field Name Required Type Description Format

id

String

2-letter country code.

name

String

Localized name of the country.

5.29. CreditMemoDto

Field Name Required Type Description Format

id

String

Number of the business document. Will be automatically generated, unless EXTERNAL is set for the state - then it is a mandatory property. Must be unique.

uuid

String

Unique identifier of the business document.

description

String

Description of the business document to be printed after the subject. Defaulted with configured layout, unless the state is EXTERNAL.

internalDescription

String

Internal note that isn't printed.

date

X

date

Date of the invoice. Always required.

date

state

X

String

Determines the state after creation. STAGING leaves the document open for editing, FINALIZED completes it, EXTERNAL for invoices created outside of the application, which requires a number (id) and will not create a PDF or default any layout properties.

Enum: STAGING, FINALIZED, EXTERNAL, CANCELLED,

netAmount

BigDecimal

Total net amount of the document. Must match the sum of all line net amounts if document is FINALIZED or EXTERNAL for verification. Maximum of 10 digits and 2 fractional digits.

taxAmount

BigDecimal

Total tax amount of the document. Must match the sum of all line tax amounts if document is FINALIZED or EXTERNAL for verification. Maximum of 10 digits and 2 fractional digits.

totalAmount

BigDecimal

Total amount of the document including tax. Must match the sum of all line totals if document is FINALIZED or EXTERNAL for verification. Maximum of 10 digits and 2 fractional digits.

remainingAmount

BigDecimal

Remaining, unpaid amount of the document (invoice or credit memo). Decreases with payments, 0 for paid documents.

currency

String

Currency code of the document, see the /currencies resource. Defaulted with EUR.

currencyRate

BigDecimal

Currency rate of the document. Defaulted with 1.

referenceText

String

Reference info to other documents, business case information, remittance numbers, etc.

referenceDate

date

Optional reference date to another business case, transaction, etc.

date

footer

String

Description of the business document to be printed after the lines. Defaulted with configured layout, unless the state is EXTERNAL.

customer

String

ID of the customer, see the /customers resource.

customerName

String

Customer name, for when the customer doesn't have a record, or doesn't need one. Ignored if a customer id is set.

layoutSetup

String

ID of the layout to be used, seee the /layout_setups resource. Defaulted with configured default setup, if any, and ignored if the document state is not FINALIZED.

sequenceGroup

String

Sequence group id, for when a different sequence group is to be used besides the configured default group. See the /sequence_groups resource.

updatedAt

Date

Timestamp of the last update.

date-time

lines

X

List of BusinessDocumentLineDto

List of all business document lines. The order of this array defines the numbers assigned to the lines.

additionalAddress

String

Additional address id, see the /customer/{customer}/additional_addresses resource. Sets an address besides the default to be used for this document.

normalizeRoundingErrors

Boolean

Defines if rounding errors between the supplied document totals and lines should be corrected. If enabled, the supplied document totals will not be validated against the system-internal calculation. Instead, the supplied totals are taken as the actual invoice totals, and minor discrepancies (rounding errors) will be corrected in the totals of the last supplied document line to match the system calculation. Use this if your system calculates totals and rounds differently and you have trouble passing the validation. Enabling this will also disable the item price and amount validation against line totals.

addressInfo

AddressInfoDto

deliveryFromDate

date

Delivery span. Defaulted with configured delivery date range setting.

date

deliveryToDate

date

Delivery span. Defaulted with configured delivery date range setting.

date

paidDate

date

Date the credit memo was fully cashed out.

date

paid

Boolean

Marks if the credit memo is fully cashed out.

signed

Boolean

Determines if the document is to be signed after finalization.

ebInterfaceVersion

String

If EB interface creation is configured, this property is mandatory and defines the EB interface version.

Enum: NONE, V6_P1, V6_P0, V5_P0, V4_P3, V4_P2, V4_P1, V4_P0, V3_P02, V3_P0,

5.30. CreditMemoPaymentDto

Field Name Required Type Description Format

currencyRate

BigDecimal

Currency rate at time of payment. Defaulted with 1.

note

String

Optional information about the payment.

date

X

date

Date of the payment.

date

restType

String

Indicates if the unpaid amount should be flagged as complete (DISCOUNT, CORRECTION, UNCOLLECTABLE, ONACCOUNT, CREDIT_CASHED). Leave this property empty if no rest payment is to be made, i.e. this is a partial payment.

Enum: RECEIVABLES, RECEIVABLES_DUNNING, PAYED, DISCOUNT, UNCOLLECTABLE, CANCELLED, ONACCOUNT, CURRENCY_DIFFERENCE, ROUNDING_DIFFERENCE, CORRECTION, CREDIT_FOR_INVOICE, CANCELLATION_INVOICE_FOR_INVOICE, CREDIT_CASHED,

payingAccount

String

Account that received the payment, see the /accounts resource. Must be of the cash account type (U) and not be reserved (e.g. from a cash register). Either payingAccount or cashRegister must be supplied.

cashRegister

Integer

Cash register number that is to process the payment, see the /cash_registers resource. The test register (id 0) cannot be used. Either cashRegister or payingAccount must be supplied.

int32

5.31. CurrencyDto

Currencies to be used in items, receipts, and business documents.

Field Name Required Type Description Format

name

String

Human-readable name of the currency.

id

String

Short code as identifier to be used in currency fields.

5.32. CustomerDto

Field Name Required Type Description Format

id

String

UUID of the contact, automatically assigned.

addressBranchNo

String

Address branch number of the company, if present.

taxNumber

String

Tax number or UID number of the contact. May be used for matching the contact with document metadata for bookings.

shortcut

String

Custom shortcut for the contact.

rating

Integer

Custom rating

int32

salutationCode

String

Salutation code for a contact as person.

title

String

Title if the contact references a person.

firstName

String

First name if the contact references a person. Required unless a company name is supplied.

lastName

String

Last name if the contact references a person. Required unless a company name is supplied.

compSalutationCode

String

Salutation code for a contact as a company.

companyName

String

Company name for a company contact. Required unless a first and last name are supplied.

streetName

String

Street name of the address, excluding the number.

streetNumber

String

Street number of the address. May include special characters to designate floor etc.

zipCode

String

Zip code of the address.

city

String

City of the address.

emailAddress

String

E-mail address belonging to the contact.

mobileNumber

String

Mobile number belonging to the contact.

telNumber

String

Telephone number belonging to the contact.

faxNumber

String

Fax number belonging to the contact.

skype

String

Skype user name belonging to the contact.

description

String

Short description or note belonging to he contact.

webAddress

String

Web address belonging to the contact.

attribute1

String

Client-defined custom attribute. Can be freely renamed or used.

attribute2

String

Client-defined custom attribute. Can be freely renamed or used.

attribute3

String

Client-defined custom attribute. Can be freely renamed or used.

attribute4

String

Client-defined custom attribute. Can be freely renamed or used.

attribute5

String

Client-defined custom attribute. Can be freely renamed or used.

noVatNumber

Boolean

Determines if the contact is not a company (no UID tax). Defaulted to false.

country

String

Country code of the address. See the /countries resource for all available countries and their codes. Defaulted to AT.

region

String

Region code of the address, depending on country. See the /countries/{country}/regions resource for all available regions and their codes.

accountOwner

String

Account owner of the bank account belonging to this contact.

bankName

String

Bank institution name of the bank account belonging to this contact.

bankBranchNumber

String

Bank branch number of the bank account belonging to this contact.

accountNumber

String

Account number of the bank account belonging to this contact.

bic

String

BIC of the bank account belonging to this contact.

iban

String

IBAN of the bank account belonging to this contact. May be used for matching the contact with document metadata for bookings.

defaultAccount

String

Account code for the default account, see /accounts resource. Will be used as default for new incoming/outgoing invoices with the contact.

defaultTaxClassEntry

String

Tax class entry code for the default tax class, see /accounts/{account}/tax_class_entries resource. Will be used as default for new incoming/outgoing invoices with the contact.

defaultInvoiceAddress

String

Additional address id for the default address to use for invoices.

defaultDeliveryAddress

String

Additional address id for the default address to use for delivery notes.

contraAccount

String

Account code for the (unpaid) contra account, see the /account resource. will be used for new incoming/outgoing invoices in double-entry accounting. If createContraAccount is set, this code determines the account code that will be assigned to the created contra account.

createContraAccount

Boolean

If true, a new contra account will be created, optionally with a specified code (contraAccount). If customer/supplier has a contra account already set, no contra account will be created. Double-entry accounting only.

customerNumber

String

Custom number for the customer. If autonumbering is enabled, this property is ignored and the number will be generated.

mySupplierNumber

String

Number or identifier the customer assigned to your client.

gln

String

Global location number of the customer.

duns

String

Data Universal Numbering System (DUNS) number of the customer.

otherIdentifier

String

Optional third-party identifier not covered by other properties.

dunningStop

Boolean

If is set true, you have to set the reason too. Default: false

dunningStopReason

String

Reason for the dun stop

defaultDunningLevel

String

Dunning level id, just if dunning stop is set to false. see the /dunning_levels resource

discount

BigDecimal

Optional discount percentage for this customer. Can be used in invoicing, but is not automatically applied when using the API.

5.33. CustomerSupplierContraAccountCreationDto

Field Name Required Type Description Format

contraAccount

String

Account code that should be used for the new contra account. Must not be used already, see the /accounts resource.

5.34. DailyClosingDto

Field Name Required Type Description Format

id

date

Date of the daily closing, unique.

date

creationDate

Date

Timestamp of the creation date of this daily closing.

date-time

state

String

State of the daily closing. Once FINALIZED or BOOKED, no further receipts are possible.

Enum: OPEN, FINALIZED, BOOKED,

openingBalance

BigDecimal

Balance of the cash register at time of opening.

closingBalance

BigDecimal

Balance of the cash register at the time of finalizing the daily closing.

incomeCount

Integer

Number of income receipts at the time of closing.

int32

rebookCount

Integer

Number of rebook receipts at the time of closing.

int32

otherCount

Integer

Number of special receipts, like monthly and yearly closing receipts, at the time of closing.

int32

totalCount

Integer

Total number of receipts at the time of closing.

int32

monthlyClosing

Boolean

Indicates if this closing also closes the month. Once a month is closed, no further receipts can be registered for it. Is done automatically to the last closing of a month when a closing for the next month is opened.

yearlyClosing

Boolean

Indicates if this closing also closes the year. Once a year is closed, no further receipts can be registered for it. Is done automatically to the last closing of a year when a closing for the next year is opened.

5.35. DailyClosingFinalizationDto

Field Name Required Type Description Format

closingBalance

X

BigDecimal

The daily closing balance as provided by the API or calculated. Must match the backend closing balance for confirmation.

totalCount

X

Integer

The daily total receipt count as provided by the API or calculated. Must match the backend closing balance for confirmation.

int32

5.36. DeliveryNoteDto

Field Name Required Type Description Format

id

String

Number of the business document. Will be automatically generated, unless EXTERNAL is set for the state - then it is a mandatory property. Must be unique.

uuid

String

Unique identifier of the business document.

description

String

Description of the business document to be printed after the subject. Defaulted with configured layout, unless the state is EXTERNAL.

internalDescription

String

Internal note that isn't printed.

date

X

date

Date of the invoice. Always required.

date

state

X

String

Determines the state after creation. STAGING leaves the document open for editing, FINALIZED completes it, EXTERNAL for invoices created outside of the application, which requires a number (id) and will not create a PDF or default any layout properties.

Enum: STAGING, FINALIZED, EXTERNAL, CANCELLED,

netAmount

BigDecimal

Total net amount of the document. Must match the sum of all line net amounts if document is FINALIZED or EXTERNAL for verification. Maximum of 10 digits and 2 fractional digits.

taxAmount

BigDecimal

Total tax amount of the document. Must match the sum of all line tax amounts if document is FINALIZED or EXTERNAL for verification. Maximum of 10 digits and 2 fractional digits.

totalAmount

BigDecimal

Total amount of the document including tax. Must match the sum of all line totals if document is FINALIZED or EXTERNAL for verification. Maximum of 10 digits and 2 fractional digits.

remainingAmount

BigDecimal

Remaining, unpaid amount of the document (invoice or credit memo). Decreases with payments, 0 for paid documents.

currency

String

Currency code of the document, see the /currencies resource. Defaulted with EUR.

currencyRate

BigDecimal

Currency rate of the document. Defaulted with 1.

referenceText

String

Reference info to other documents, business case information, remittance numbers, etc.

referenceDate

date

Optional reference date to another business case, transaction, etc.

date

footer

String

Description of the business document to be printed after the lines. Defaulted with configured layout, unless the state is EXTERNAL.

customer

String

ID of the customer, see the /customers resource.

customerName

String

Customer name, for when the customer doesn't have a record, or doesn't need one. Ignored if a customer id is set.

layoutSetup

String

ID of the layout to be used, seee the /layout_setups resource. Defaulted with configured default setup, if any, and ignored if the document state is not FINALIZED.

sequenceGroup

String

Sequence group id, for when a different sequence group is to be used besides the configured default group. See the /sequence_groups resource.

updatedAt

Date

Timestamp of the last update.

date-time

lines

X

List of BusinessDocumentLineDto

List of all business document lines. The order of this array defines the numbers assigned to the lines.

additionalAddress

String

Additional address id, see the /customer/{customer}/additional_addresses resource. Sets an address besides the default to be used for this document.

normalizeRoundingErrors

Boolean

Defines if rounding errors between the supplied document totals and lines should be corrected. If enabled, the supplied document totals will not be validated against the system-internal calculation. Instead, the supplied totals are taken as the actual invoice totals, and minor discrepancies (rounding errors) will be corrected in the totals of the last supplied document line to match the system calculation. Use this if your system calculates totals and rounds differently and you have trouble passing the validation. Enabling this will also disable the item price and amount validation against line totals.

addressInfo

AddressInfoDto

completionDate

date

The date the delivery note was marked as delivered.

date

completionState

String

A completed delivery note has this state, being either IN_PREPARATION or DELIVERED.

Enum: ACCEPTED, REJECTED, IN_PROGRESS, DONE, IN_PREPARATION, DELIVERED,

5.37. DocumentJsonUploadDto

Field Name Required Type Description Format

content

X

String

Base64-encoded binary content of the document.

fileName

X

String

File name of the document.

contentType

X

String

MIME type of the document. Accepted are images, text/plain and application/pdf, all other types will be replaced by octet-stream.

documentDescription

String

An optional description of the document itself. Will be shown as additional information and used for search.

skipOcr

Boolean

If set to true, this document will not be processed automatically by OCR services.

metadata

List of DocumentMetadataDto

A list of metadata to include with the new document.

5.38. DocumentKeyDto

Document key identifying this document to the storage layer.

Field Name Required Type Description Format

providerId

String

The ID which identifies this particular document to the provider.

provider

String

Provider type, i.e. where the file is stored. DMS is the app-internal storage, all others are external cloud storage providers.

Enum: DMS, DROPBOX, GOOGLE_DRIVE, NEXTCLOUD, ONEDRIVE,

5.39. DocumentMetadataDto

A list of metadata to include with the new document.

Field Name Required Type Description Format

textValue

String

Only one value type must be present.

key

X

String

A key describing the content of this field.

Enum: INVOICE_DATE, PAID_DATE, DUE_DATE, MERCHANT_NAME, MERCHANT_FIRST_NAME, MERCHANT_LAST_NAME, MERCHANT_TELEPHONE, MERCHANT_IBAN, MERCHANT_TAX_NUMBER, MERCHANT_EMAIL, MERCHANT_STREET_NAME, MERCHANT_STREET_NUMBER, MERCHANT_ZIP_CODE, MERCHANT_CITY, MERCHANT_COUNTRY, CUSTOMER_NAME, CUSTOMER_FIRST_NAME, CUSTOMER_LAST_NAME, CUSTOMER_TELEPHONE, CUSTOMER_IBAN, CUSTOMER_TAX_NUMBER, CUSTOMER_EMAIL, CUSTOMER_STREET_NAME, CUSTOMER_STREET_NUMBER, CUSTOMER_ZIP_CODE, CUSTOMER_CITY, CUSTOMER_COUNTRY, CUSTOMER_NUMBER, INVOICE_NUMBER, ORDER_NUMBER, CURRENCY, NET_AMOUNT, TAX_AMOUNT, TOTAL_AMOUNT, TAX_RATE, DESCRIPTION, QR_CODE, IS_DUPLICATE, DUPLICATE_REFERENCE, PARTNER_NAME, PARTNER_FIRST_NAME, PARTNER_LAST_NAME, PARTNER_TELEPHONE, PARTNER_IBAN, PARTNER_TAX_NUMBER, PARTNER_EMAIL, PARTNER_STREET_NAME, PARTNER_STREET_NUMBER, PARTNER_ZIP_CODE, PARTNER_CITY, PARTNER_COUNTRY, RECIPIENT,

priority

Integer

A number expressing the confidence or accuracy of the metadata, ranging between 1 and 255 with 1 being the highest.

int32

numericValue

BigDecimal

Only one value type must be present.

qualifier

Integer

A number describing if this metadata value belongs to a subgroup of information, for example a specific line of an invoice.

int32

booleanValue

Boolean

Only one value type must be present.

dateValue

date

Only one value type must be present.

date

5.40. DocumentWithMetadataDto

Field Name Required Type Description Format

metadata

List of DocumentMetadataDto

A list of all metadata attached to the document.

documentDescription

String

Optional document description.

key

DocumentKeyDto

fileName

X

String

File name of the document. Will be sanitized and stripped of special characters. Whitespace will be replaced with underscores.

contentType

X

String

MIME type of the file.

5.41. DunningLevelDto

Field Name Required Type Description Format

id

String

Id of the dunning level, automatically assigned.

internalName

String

The internally assigned name.

description

String

The description for this dunning level.

documentSubject

String

The subject which is visible on the dunning document.

fixedFee

BigDecimal

The fixed fee for this dunning level.

feePercentage

BigDecimal

The fixed percentage for this dunning level.

dunningDays

Integer

From which day the next dunning is due.

int32

previousLevel

String

The dunning level that comes before.

dunningLineText

String

The dunning text which is shown on the document.

account

String

The account to which the fees are posted

dunningEndText

String

The dunning text which is shown at the end on the document.

taxClassEntry

String

The tax rate with which the dunning is created

defaultFlag

Boolean

5.42. IncomingInvoiceCreationDto

Field Name Required Type Description Format

id

String

ID of the invoice, automatically assigned.

invoiceSequence

String

Automatically assigned sequence number for booked invoices. Unpaid invoices in single-entry accounting don't have a sequence number.

invoiceDate

date

Invoice date. Required for double entry accounting and with special bookings.

date

dueDate

date

Optional due date of the invoice.

date

paidDate

date

Date the invoice was paid. When supplied at invoice creation, the invoice is marked as paid immediately, and a booking created (for single-entry accounting)

date

paidContraAccount

String

The means-of-payment account the invoice is to be paid with, see the /accounts resource. Only used when the paid date is set on creation.

cancelledReason

String

For cancelled invoices, the reason supplied during the cancellation.

cancelledDate

date

Cancellation date. If a date is present, the invoice is treated as cancelled.

date

supplier

String

ID of the optional supplier, see the /suppliers resource.

supplierName

String

Name of the supplier, if no ID is provided.

invoiceReference

String

Optional reference to other receipts, invoices, etc.

description

String

Optional description for the invoice.

netTotal

BigDecimal

Net amount of the invoice. Will be calculated automatically.

taxTotal

BigDecimal

Tax amount of the invoice. Will be calculated automatically.

total

BigDecimal

Total amount of the invoice, including tax. Will be calculated automatically.

remainingTotal

BigDecimal

Unpaid remaining amount in the invoice currency.

remainingTotalInMainCurrency

BigDecimal

Unpaid remaining amount in the accounting currency (usually EUR). When fully paid, the remaining amount is 0.

currency

String

Currency code of the invoice, see the /currencies resource. Defaulted with EUR.

currencyRate

BigDecimal

Currency rate of the invoice. Defaulted with 1.

lines

List of InvoiceLineDto

List of invoice lines. The supplied order of the array defines the assigned line numbers.

bookings

List of InvoiceBookingDto

List of bookings registered with this invoice, like initial booking, payment and cancellation bookings.

deliveryFromDate

date

Optional from date for a delivery span. Only available for double-entry accounting.

date

deliveryToDate

date

Optional to date for a delivery span. Only available for double-entry accounting.

date

5.43. IncomingInvoiceDto

Field Name Required Type Description Format

id

String

ID of the invoice, automatically assigned.

invoiceSequence

String

Automatically assigned sequence number for booked invoices. Unpaid invoices in single-entry accounting don't have a sequence number.

invoiceDate

date

Invoice date. Required for double entry accounting and with special bookings.

date

dueDate

date

Optional due date of the invoice.

date

paidDate

date

Date the invoice was paid. When supplied at invoice creation, the invoice is marked as paid immediately, and a booking created (for single-entry accounting)

date

cancelledReason

String

For cancelled invoices, the reason supplied during the cancellation.

cancelledDate

date

Cancellation date. If a date is present, the invoice is treated as cancelled.

date

supplier

String

ID of the optional supplier, see the /suppliers resource.

supplierName

String

Name of the supplier, if no ID is provided.

invoiceReference

String

Optional reference to other receipts, invoices, etc.

description

String

Optional description for the invoice.

netTotal

BigDecimal

Net amount of the invoice. Will be calculated automatically.

taxTotal

BigDecimal

Tax amount of the invoice. Will be calculated automatically.

total

BigDecimal

Total amount of the invoice, including tax. Will be calculated automatically.

remainingTotal

BigDecimal

Unpaid remaining amount in the invoice currency.

remainingTotalInMainCurrency

BigDecimal

Unpaid remaining amount in the accounting currency (usually EUR). When fully paid, the remaining amount is 0.

currency

String

Currency code of the invoice, see the /currencies resource. Defaulted with EUR.

currencyRate

BigDecimal

Currency rate of the invoice. Defaulted with 1.

deliveryFromDate

date

Optional from date for a delivery span. Only available for double-entry accounting.

date

deliveryToDate

date

Optional to date for a delivery span. Only available for double-entry accounting.

date

lines

List of InvoiceLineDto

List of invoice lines. The supplied order of the array defines the assigned line numbers.

bookings

List of InvoiceBookingDto

List of bookings registered with this invoice, like initial booking, payment and cancellation bookings.

5.44. IncomingInvoiceReturnDto

Field Name Required Type Description Format

result

IncomingInvoiceDto

warnings

List of [string]

List of localized warnings created during the operation.

infos

List of [string]

List of localized reminders and information created during the operation.

5.45. InvoiceBookingDto

List of bookings registered with this invoice, like initial booking, payment and cancellation bookings.

Field Name Required Type Description Format

id

String

Uuid of the booking.

type

String

Type of the booking: InvoiceInitialBookingDto for bookings that were generated in cash-based accounting or with the invoice, InvoicePaymentBookingDto for payments created in double-entry accounting, and InvoiceCancellationBookingDto for bookings that cancel another booking.

number

Integer

Sequence number of the booking, starting with 1. Note that InvoiceCancellationBookingDto bookings share the number with the booking they cancel.

int32

cancelled

Boolean

Indicates if the booking was cancelled. If set, a InvoiceCancellationBookingDto exists with the same number.

reconciled

Boolean

Indicates if this booking was reconciled with an entity from another application module. If set, the booking cannot be cancelled directly and must be cancelled from the module.

reconciliationType

String

The type of reconciliation, if it was reconciled. Currently only BANK_STATEMENT is a possible type.

Enum: NONE, BANK_STATEMENT,

journalNumber

String

The journal number of the journal generated with this booking.

5.46. InvoiceDto

Field Name Required Type Description Format

id

String

Number of the business document. Will be automatically generated, unless EXTERNAL is set for the state - then it is a mandatory property. Must be unique.

uuid

String

Unique identifier of the business document.

description

String

Description of the business document to be printed after the subject. Defaulted with configured layout, unless the state is EXTERNAL.

internalDescription

String

Internal note that isn't printed.

date

X

date

Date of the invoice. Always required.

date

state

X

String

Determines the state after creation. STAGING leaves the document open for editing, FINALIZED completes it, EXTERNAL for invoices created outside of the application, which requires a number (id) and will not create a PDF or default any layout properties.

Enum: STAGING, FINALIZED, EXTERNAL, CANCELLED,

netAmount

BigDecimal

Total net amount of the document. Must match the sum of all line net amounts if document is FINALIZED or EXTERNAL for verification. Maximum of 10 digits and 2 fractional digits.

taxAmount

BigDecimal

Total tax amount of the document. Must match the sum of all line tax amounts if document is FINALIZED or EXTERNAL for verification. Maximum of 10 digits and 2 fractional digits.

totalAmount

BigDecimal

Total amount of the document including tax. Must match the sum of all line totals if document is FINALIZED or EXTERNAL for verification. Maximum of 10 digits and 2 fractional digits.

remainingAmount

BigDecimal

Remaining, unpaid amount of the document (invoice or credit memo). Decreases with payments, 0 for paid documents.

currency

String

Currency code of the document, see the /currencies resource. Defaulted with EUR.

currencyRate

BigDecimal

Currency rate of the document. Defaulted with 1.

referenceText

String

Reference info to other documents, business case information, remittance numbers, etc.

referenceDate

date

Optional reference date to another business case, transaction, etc.

date

footer

String

Description of the business document to be printed after the lines. Defaulted with configured layout, unless the state is EXTERNAL.

customer

String

ID of the customer, see the /customers resource.

customerName

String

Customer name, for when the customer doesn't have a record, or doesn't need one. Ignored if a customer id is set.

layoutSetup

String

ID of the layout to be used, seee the /layout_setups resource. Defaulted with configured default setup, if any, and ignored if the document state is not FINALIZED.

sequenceGroup

String

Sequence group id, for when a different sequence group is to be used besides the configured default group. See the /sequence_groups resource.

updatedAt

Date

Timestamp of the last update.

date-time

lines

X

List of BusinessDocumentLineDto

List of all business document lines. The order of this array defines the numbers assigned to the lines.

additionalAddress

String

Additional address id, see the /customer/{customer}/additional_addresses resource. Sets an address besides the default to be used for this document.

normalizeRoundingErrors

Boolean

Defines if rounding errors between the supplied document totals and lines should be corrected. If enabled, the supplied document totals will not be validated against the system-internal calculation. Instead, the supplied totals are taken as the actual invoice totals, and minor discrepancies (rounding errors) will be corrected in the totals of the last supplied document line to match the system calculation. Use this if your system calculates totals and rounds differently and you have trouble passing the validation. Enabling this will also disable the item price and amount validation against line totals.

addressInfo

AddressInfoDto

paymentTerm

String

Payment term id, see /payment_terms resource. Determines due date, dunning date, etc. and is defaulted with the configured default payment term, if any.

deliveryFromDate

date

Delivery span. Defaulted with configured delivery date range setting.

date

deliveryToDate

date

Delivery span. Defaulted with configured delivery date range setting.

date

signed

Boolean

Determines if the document is to be signed after finalization.

paidDate

date

Date the invoice was fully paid.

date

paid

Boolean

Marks if the invoice is fully paid.

dueDate

date

Date the invoice is due. Calculated from the payment term. Can be set manually if the payment term does not define a fixed due date.

date

dunningDate

date

Date of the last dunning made for non-payment of the invoice.

date

lastDunningLevel

Integer

Last dunning level issued for the invoice.

int32

ebInterfaceVersion

String

If EB interface creation is configured, this property is mandatory and defines the EB interface version.

Enum: NONE, V6_P1, V6_P0, V5_P0, V4_P3, V4_P2, V4_P1, V4_P0, V3_P02, V3_P0,

5.47. InvoiceLineDto

List of invoice lines. The supplied order of the array defines the assigned line numbers.

Field Name Required Type Description Format

description

String

Description text of the line.

amount

X

BigDecimal

The total item amount, i.e. number of units purchased. Maximum of 10 digits and 5 fractional digits.

amountType

X

String

Determines if the item price is net without tax (N) or total (T). For IG/reverse charge lines, the amount type must be N.

Enum: N, T,

account

X

String

Account code to use for this line. See the /accounts resource, and the E account type.

taxEntry

String

Tax class entry code for the tax class to use, defaulted from the account if not present. See the /accounts/{account}/tax_class_entries resource.

taxRate

BigDecimal

Tax rate of the line, derived from the tax class entry.

netAmount

BigDecimal

Total net amount of the line. Maximum of 10 digits and 2 fractional digits.

taxAmount

BigDecimal

Total tax amount of the line. Maximum of 10 digits and 2 fractional digits.

totalAmount

BigDecimal

Total amount (net + tax) of the line. Maximum of 10 digits and 2 fractional digits.

privatePart

BigDecimal

Private part amount as total amount or percentage. Must be set with privatePartType. Maximum of 10 digits and 5 fractional digits.

privatePartType

String

Determines if the private part is a fixed amount (A) or a percentage (P)

privatePartAccount

String

Account code to use for the private part. Defaulted if not specified. See the /accounts resource - the account must be a private part account.

taxEntryModifier

String

Tax class entry modifier for the tax class to use for special bookings. See the /accounts/{account}/tax_class_entries resource. (Relevant only for incoming invoices)

additionalSequence

String

Additional sequence assigned to the line on creation, like an asset or purchase journal number.

5.48. InvoicePaymentDto

Field Name Required Type Description Format

currencyRate

BigDecimal

Currency rate at time of payment. Defaulted with 1.

note

String

Optional information about the payment.

date

X

date

Date of the payment.

date

restType

String

Indicates if the unpaid amount should be flagged as complete (DISCOUNT, CORRECTION, UNCOLLECTABLE, ONACCOUNT, CREDIT_CASHED). Leave this property empty if no rest payment is to be made, i.e. this is a partial payment.

Enum: RECEIVABLES, RECEIVABLES_DUNNING, PAYED, DISCOUNT, UNCOLLECTABLE, CANCELLED, ONACCOUNT, CURRENCY_DIFFERENCE, ROUNDING_DIFFERENCE, CORRECTION, CREDIT_FOR_INVOICE, CANCELLATION_INVOICE_FOR_INVOICE, CREDIT_CASHED,

payingAccount

String

Account that received the payment, see the /accounts resource. Must be of the cash account type (U) and not be reserved (e.g. from a cash register). Either payingAccount or cashRegister must be supplied.

cashRegister

Integer

Cash register number that is to process the payment, see the /cash_registers resource. The test register (id 0) cannot be used. Either cashRegister or payingAccount must be supplied.

int32

amount

X

BigDecimal

Total payment amount in the invoice currency.

5.49. InvoiceTemplateDto

Field Name Required Type Description Format

id

String

Number of the business document. Will be automatically generated, unless EXTERNAL is set for the state - then it is a mandatory property. Must be unique.

uuid

String

Unique identifier of the business document.

description

String

Description of the business document to be printed after the subject. Defaulted with configured layout, unless the state is EXTERNAL.

internalDescription

String

Internal note that isn't printed.

date

X

date

Date of the invoice. Always required.

date

state

X

String

Determines the state after creation. STAGING leaves the document open for editing, FINALIZED completes it, EXTERNAL for invoices created outside of the application, which requires a number (id) and will not create a PDF or default any layout properties.

Enum: STAGING, FINALIZED, EXTERNAL, CANCELLED,

netAmount

BigDecimal

Total net amount of the document. Must match the sum of all line net amounts if document is FINALIZED or EXTERNAL for verification. Maximum of 10 digits and 2 fractional digits.

taxAmount

BigDecimal

Total tax amount of the document. Must match the sum of all line tax amounts if document is FINALIZED or EXTERNAL for verification. Maximum of 10 digits and 2 fractional digits.

totalAmount

BigDecimal

Total amount of the document including tax. Must match the sum of all line totals if document is FINALIZED or EXTERNAL for verification. Maximum of 10 digits and 2 fractional digits.

remainingAmount

BigDecimal

Remaining, unpaid amount of the document (invoice or credit memo). Decreases with payments, 0 for paid documents.

currency

String

Currency code of the document, see the /currencies resource. Defaulted with EUR.

currencyRate

BigDecimal

Currency rate of the document. Defaulted with 1.

referenceText

String

Reference info to other documents, business case information, remittance numbers, etc.

referenceDate

date

Optional reference date to another business case, transaction, etc.

date

footer

String

Description of the business document to be printed after the lines. Defaulted with configured layout, unless the state is EXTERNAL.

customer

String

ID of the customer, see the /customers resource.

customerName

String

Customer name, for when the customer doesn't have a record, or doesn't need one. Ignored if a customer id is set.

layoutSetup

String

ID of the layout to be used, seee the /layout_setups resource. Defaulted with configured default setup, if any, and ignored if the document state is not FINALIZED.

sequenceGroup

String

Sequence group id, for when a different sequence group is to be used besides the configured default group. See the /sequence_groups resource.

updatedAt

Date

Timestamp of the last update.

date-time

lines

X

List of BusinessDocumentLineDto

List of all business document lines. The order of this array defines the numbers assigned to the lines.

additionalAddress

String

Additional address id, see the /customer/{customer}/additional_addresses resource. Sets an address besides the default to be used for this document.

normalizeRoundingErrors

Boolean

Defines if rounding errors between the supplied document totals and lines should be corrected. If enabled, the supplied document totals will not be validated against the system-internal calculation. Instead, the supplied totals are taken as the actual invoice totals, and minor discrepancies (rounding errors) will be corrected in the totals of the last supplied document line to match the system calculation. Use this if your system calculates totals and rounds differently and you have trouble passing the validation. Enabling this will also disable the item price and amount validation against line totals.

addressInfo

AddressInfoDto

paymentTerm

String

Payment term id, see /payment_terms resource. Determines due date, dunning date, etc. and is defaulted with the configured default payment term, if any.

deliveryFromDate

date

Delivery span. Defaulted with configured delivery date range setting.

date

deliveryToDate

date

Delivery span. Defaulted with configured delivery date range setting.

date

signed

Boolean

Determines if the document is to be signed after finalization.

paidDate

date

Date the invoice was fully paid.

date

paid

Boolean

Marks if the invoice is fully paid.

dueDate

date

Date the invoice is due. Calculated from the payment term. Can be set manually if the payment term does not define a fixed due date.

date

dunningDate

date

Date of the last dunning made for non-payment of the invoice.

date