Finance Clearing API

1. Introduction

The HORISEN Finance Clearing API is used by HORISEN applications in financial transactions to facilitate the clearing process. Clearing is the process of reconciling and confirming details of a financial transaction between the parties involved. The API can be used to verify the details of a financial transaction, or to process payments, ensuring that transactions are properly recorded and matched between different systems.

The API supports OAuth 2.0 authentication. An example of how to implement OAuth 2.0 and obtain access token as well as an example of using HORISEN API service, is available on OAuth2 Authentication Guidelines page.

2. Methods Overview

The API endpoints described in the following sections: Invoice, Clearing and Payment Type, can be used to retrieve a list of payable invoices with details, to perform clearing operations on invoices, e.g. updating an invoice status, and retrieving a list of supported payment types that can be used to pay invoices.

The API endpoints belong to the Finance domain. The subject domain of an endpoint URL is:

https://api.horisen.pro/finance/sit/v1

2.1 Invoices

This endpoint allows retrieving a list of payable invoices, which are invoices that have not been paid yet.

GET/payable-invoices
Returns a list of all payable Invoices.Read More

2.2 Invoice Clearing

These endpoints allow performing operations with invoices clearing records.

GET/invoices/{invoiceid}/clearingrecords
Returns a list of all invoice Clearing Records for a given invoiceId.Read More
POST/invoices/{invoiceid}/clearingrecords
Adds an invoice Clearing Record for a given InvoiceId.Read More
GET/invoices-by-number/{invoiceNumber}/clearingrecords
Returns a list of all invoice Clearing Records for a given invoiceNumber.Read More
POST/invoices-by-number/{invoiceNumber}/clearingrecords
Adds an invoice Clearing Record for a given invoiceNumber.Read More
GET/invoices-by-uid/{invoiceUid}/clearingrecords
Returns a list of invoice Clearing Records for a given invoiceUid.Read More
POST/invoices-by-uid/{invoiceUid}/clearingrecords
Adds an invoice Clearing Record for a given invoiceUid.Read More
GET/invoices/{invoiceid}/clearingrecords/{recordid}
Returns an invoice clearing record with given recordid, which belongs to an invoice identified with invoiceid.Read More
PUT/invoices/{invoiceid}/clearingrecords/{recordid}
Updates an existing InvoiceClearingRecord.Read More
DELETE/invoices/{invoiceid}/clearingrecords/{recordid}
Deletes an invoice clearing record with given recordid.Read More

2.3 Payment Type

This endpoint allows retrieving a list of payment types that can be used to pay invoices.

GET/payment-types
Returns a list of Payment Types.Read More

2.4 Platform Owner Bank Accounts

The endpoints described within this section, provide functionality to manage Platform Owner Bank Accounts, allowing to create, retrieve, update or delete bank accounts data.

The following API endpoints belong to the Settings domain. The subject domain of an endpoint URL is:

https://api.horisen.pro/settings/v1
GET/platform-owner-bank-accounts
Returns a list of bank accounts of a platform owner or a co-owner.Read More
POST/platform-owner-bank-accounts
Creates a new bank account record.Read More
GET/platform-owner-bank-accounts/{id}
Returns a bank account for a given ID.Read More
PUT/platform-owner-bank-accounts/{id}
Updates a bank account data for a given ID.Read More
DELETE/platform-owner-bank-accounts/{id}
Deletes a bank account data for a given ID.Read More

3. Methods Details

The API endpoints described in the following sections: Invoice, Clearing and Payment Type, can be used to retrieve a list of payable invoices with details, to perform clearing operations on invoices, e.g. updating an invoice status, and retrieving a list of supported payment types that can be used to pay invoices.

The API endpoints belong to the Finance domain. The subject domain of an endpoint URL is:

https://api.horisen.pro/finance/sit/v1

3.1 Invoices

This endpoint allows retrieving a list of payable invoices, which are invoices that have not been paid yet.

GET/payable-invoices
Returns a list of all payable invoices.Up
Method Overview

The method returns a list of payable invoices.

Payable invoices are invoices whose status is 'approved' and whose payment status is 'open'.

Authorization privilege needed for this endpoint: finance-invoices.view.
Optional: privilege used in this endpoint is finance-invoices-own.view.

This endpoint accepts query parameters for filtering payable invoices. For more information, refer to URL Filtering Guidelines page.

Parameters
Name Type Description
page_number integer (query) Page number. Default value: 1.
page_size integer (query) Page size. Default value: 10.
paging string (query) Paging options in form of &paging=page_num page_size e.g. paging=1,10.
operator(fieldName) string (query) Search criteria by using the following operators: isnull, isnotnull, isempty, isnotempty, eq, neq, startswith, contains, endswith, doesnotcontain, lt, lte, gt, gte, in, notin, between, notbetween, and the following attributes: custName, custShortName, invNumber, invDate, invDueDate, overDueDate, total, totalUnpaid, totalPaid, invType, invTypeName, invPeriod, invPeriodStart, invPeriodEnd, invoicingDate, invoicingDatePolicy, classCodeName, currency, id, disputeStatus, statusDt, dataSourceCodeName, custID, processingStatus, collectionLeadId, collectionMode, vat, amountNoVat, amountVat, domainCodeName, custCountry, nettingInvoiceStatus, nettingInvoicePaymentStatus, rounding, dtsSelectorId, dtsSelectorCodeName, invUid, custPOBox, docsDeliveryStatus, selfBilling, customerType, domainName, syncStatus, syncStatusDt, syncMode, collectionLeadNumber, ownerId, ownerBpName, ownerBpBriefName.

  • If the operator is one of isnull, isnotnull, isempty, isnotempty, the field value can be omitted.
  • If the operator is in or notin, the field value must be a comma separated list of values.
  • If the operator is between or notbetween, the field value must be a comma separated list of two values, representing the beginning and the end of the range.
  • Operator can be omitted and in that case it will be treated as operator is eq (Example: fieldName=fieldValue).
  • Example: startswith(clientName)=hor, starts with hor in field 'clientName'.
  • If fieldName is 'q' and operator is eq or omitted, the field value will be used in general search across multiple attributes.
q string (query) General search criteria.

Available fields: custShortName, custName, invNumber, invDate, invoicingDate, invoicingDatePolicy, invDueDate, invTypeName, invPeriod, disputeStatus, ownerId, ownerBpName, ownerBpBriefName.

sort string (query) Sorting options in form of sort=-attribute1,attribute2,-attribute3.

Sorting available fields: custName, custShortName, invNumber, invDate, invDueDate, overDueDate, total, totalUnpaid, totalPaid, invType, invTypeName, invPeriod, invPeriodStart, invPeriodEnd, invoicingDate, invoicingDatePolicy, classCodeName, currency, id, disputeStatus, statusDt, dataSourceCodeName, custID, processingStatus, collectionLeadId, collectionMode, vat, amountNoVat, amountVat, domainCodeName, custCountry, nettingInvoiceStatus, nettingInvoicePaymentStatus, rounding, dtsSelectorId, dtsSelectorCodeName, invUid, custPOBox, docsDeliveryStatus, selfBilling, customerType, domainName, syncStatus, syncStatusDt, syncMode, collectionLeadNumber, ownerId, ownerBpName, ownerBpBriefName.

Responses
Code Description Links
200 List of invoices. No links
default Unexpected Error. No links
Success Response 200: List of Invoices
{
  "data": [
    {
      "id": 0,
      "invUid": "string",
      "instanceID": 0,
      "custID": 0,
      "custName": "string",
      "custShortName": "string",
      "custAttn": "string",
      "custAddress": "string",
      "custAddress2": "string",
      "custPost": "string",
      "custCity": "string",
      "custCountry": 0,
      "custPOBox": "string",
      "customerType": "string",
      "custVatNumber": "string",
      "invType": 0,
      "invTypeName": "string",
      "templateID": 0,
      "invDate": "2024-02-29",
      "invoicingDate": "2024-02-29",
      "invoicingDatePolicy": "delivery",
      "invNumberFix": "string",
      "invNumberNum": 0,
      "invNumber": "string",
      "invPeriod": "string",
      "invDueDate": "2024-02-29",
      "overDueDate": 0,
      "ownerVatNumber": "string",
      "currency": 0,
      "currencyCode": "string",
      "amountNoVat": 0,
      "amountVat": 0,
      "vatPercent": 0,
      "vat": 0,
      "rounding": 0,
      "total": 0,
      "totalUnpaid": 0,
      "totalPaid": 0,
      "vatInPrice": 0,
      "vatInTotal": 0,
      "status": "draft",
      "insertDt": "2024-02-29T13:52:05.633Z",
      "statusDt": "2024-02-29T13:52:05.633Z",
      "deliveryDate": "2024-02-29",
      "invPeriodStart": "2024-02-29",
      "invPeriodEnd": "2024-02-29",
      "docsDeliveryStatus": "string",
      "docsDeliveryStatusDate": "2024-02-29T13:52:05.633Z",
      "docsDeliveryDlrStatus": "string",
      "docsDeliveryDlrStatusDate": "2024-02-29T13:52:05.633Z",
      "classCodeName": "string",
      "classDomain": "string",
      "classArea": "string",
      "lang": "string",
      "paymentStatus": "none",
      "paymentStatusDate": "2024-02-29T13:52:05.633Z",
      "disputeStatus": "string",
      "disputeStatusDate": "2024-02-29T13:52:05.633Z",
      "dataSourceId": 0,
      "dataSourceCodeName": "string",
      "nettingInvoiceId": 0,
      "nettingInvoiceNumber": "string",
      "selfBilling": "yes",
      "domainId": 0,
      "domainCodeName": "string",
      "domainName": "string",
      "domainProduct": 0,
      "accountManagerId": 0,
      "accountManagerName": "string",
      "disputeNextId": 0,
      "collectionMode": "none",
      "collectionLeadId": 0,
      "collectionLeadNumber": "string",
      "collectionLeadNettingInvoiceId": 0,
      "collectionLeadNettingInvoiceNumber": "string",
      "collectionLeadNettingInvoiceStatus": "string",
      "collectionLeadNettingInvoicePaymentStatus": "string",
      "collectionLeadNettingInvoiceTotal": "string",
      "collectionLeadNettingInvoiceTotalPaid": "string",
      "collectionLeadNettingInvoiceTotalUnpaid": "string",
      "processingStatus": "none",
      "comment": "string",
      "nettingInvoiceStatus": "draft",
      "nettingPaymentStatus": "none",
      "nettingTotal": 0,
      "nettingTotalUnpaid": 0,
      "nettingTotalPaid": 0,
      "dtsSelectorId": 0,
      "dtsSelectorCodeName": "string",
      "sitInvoiceEmailImportId": 0,
      "billingBalance": {
        "id": 0,
        "name": "string",
        "resourceUrl": "string"
      },
      "billingTypeName": "string",
      "smsCount": 0,
      "syncStatus": "none",
      "syncStatusDt": "2024-02-29T13:52:05.633Z",
      "syncMode": "disabled",
      "reminderStatus": "enabled",
      "domesticCurrency": 0,
      "domesticCurrencyCode": "string",
      "domesticCurrencyAmountNoVAT": 0,
      "domesticCurrencyAmountVAT": 0,
      "domesticCurrencyTotal": 0,
      "domesticCurrencyRounding": 0,
      "domesticCurrencyRate": 0,
      "industryName": "string",
      "ownerName": "string",
      "ownerId": 0,
      "ownerBpName": "string",
      "ownerBpBriefName": "string",
      "documentSync": {}
    }
  ],
  "meta": {
    "pagination": {}
  }
}
Error Response Unexpected Error: Default
{
  "Code": 0,
  "Message": "string"
}

3.2 Invoice Clearing

These endpoints allow performing operations with invoices clearing records.

GET/invoices/{invoiceid}/clearingrecords
Returns a list of all invoice Clearing Records for a given invoiceId.Up
Method Overview

The method returns a list of all invoice clearing records for a given invoice ID.

Returned InvoiceClearingRecords belong to InvoiceClearing.
InvoiceClearing is created when Invoice status is changed to 'approved' and payment status is set to 'open'.
By default, only clearing records with 'active' status will be returned.

Authorization privilege needed for this endpoint: finance-invoices.view.
Optional: the privilege used in this endpoint: finance-invoices-own.view.

This endpoint accepts query parameters for filtering described on URL Filtering Guidelines page.

If clearing records with other statuses should be returned, it should be used query parameter status with operator in and value containing a comma separated list of statuses (in(status)=active,canceled). For the time being, only 'active' and 'canceled' status are available as clearing record status values.

Parameters
Name Type Description
invoiceid (required) integer (path) Invoice ID to get Clearing Records.
page_number integer (query) Page number. Default value: 1.
page_size integer (query) Page size. Default value: 10.
paging string (query) Paging options in form of &paging=page_num page_size e.g. paging=1,10.
operator(fieldName) string (query) Search criteria by using the following operators: isnull, isnotnull, isempty, isnotempty, eq, neq, startswith, contains, endswith, doesnotcontain, lt, lte, gt, gte, in, notin, between, notbetween, and the following attributes: id, clearingId, clearingTypeId, clearingTypeCodeName, recordDate, paymentTypeId, paymentTypeName, amountIncrement, paidAmount, paymentReference, comment, status, statusDate, bankAccountId, bankAccountName, bankAccountNumber, bankAccountIban, bankAccountSwiftBic, revokeUserId, revokeUserName, revokeComment.

  • If the operator is one of isnull, isnotnull, isempty, isnotempty, the field value can be omitted.
  • If the operator is in or notin, the field value must be a comma separated list of values.
  • If the operator is between or notbetween, the field value must be a comma separated list of two values representing the beginning and the end of a range.
  • Operator can be omitted and in that case it will be treated as operator is eq (Example: fieldName=fieldValue).
  • Example: startswith(clientName)=hor, starts with hor in field 'clientName'.
  • If fieldName is 'q' and operator is eq or omitted, the field value will be used in general search across multiple attributes.
q string (query) General search criteria.

Available fields: status, paymentReference, comment, revokeUserId, revokeUserName, revokeComment, clearingTypeCodeName, paymentTypeName, bankAccountName, bankAccountNumber, bankAccountIban, bankAccountSwiftBic.

sort string (query) Sorting options in form of sort=-attribute1,attribute2,-attribute3.

Sorting available fields: id, clearingId, clearingTypeId, clearingTypeCodeName, recordDate, paymentTypeId, paymentTypeName, amountIncrement, paidAmount, paymentReference, comment, status, statusDate, bankAccountId, bankAccountName, bankAccountNumber, bankAccountIban, bankAccountSwiftBic, revokeUserId, revokeUserName, revokeComment.

Responses
Code Description Links
200 List of InvoiceClearingRecords. No links
default Unexpected Error. No links
Success Response 200: List of InvoiceClearingRecords
{
  "data": [
    {
      "id": 0,
      "clearingId": 0,
      "clearingTypeId": 0,
      "clearingTypeCodeName": "string",
      "recordDate": "2021-03-11",
      "paymentTypeId": 0,
      "paymentTypeName": "string",
      "amountIncrement": 0,
      "paidAmount": 0,
      "paymentReference": "string",
      "comment": "string",
      "status": "string",
      "statusDate": "2021-03-11T10:35:26.862Z",
      "revokeUserId": "string",
      "revokeUserName": "string",
      "revokeComment": "string",
      "bankAccountId": 0,
      "bankAccountName": "string",
      "bankAccountNumber": "string",
      "bankAccountIban": "string",
      "bankAccountSwiftBic": "string"
    }
  ],
  "meta": {
    "pagination": {}
  }
}
Error Response Unexpected Error: Default
{
  "Code": 0,
  "Message": "string"
}
POST/invoices/{invoiceid}/clearingrecords
Adds an invoice Clearing Record for a given InvoiceId.Up
Method Overview

The method adds an invoice clearing record for a given invoice ID.

Authorization privilege needed for this endpoint:
- finance-invoices.manage or
- finance-cust-invoices.manage or
- finance-supplier-invoices.manage or
- finance-netting-invoices.manage.

InvoiceClearing is created when Invoice status is changed to 'approved' and payment status is set to 'open'.
Approved supplier invoices with payment status 'on-hold', do not have clearing created. Clearing record for supplier invoice is created when a supplier invoice is approved for payment.
Invoice clearing record can not be added if an invoice does not have Clearing created.
When totalUnpaid is 0, invoice.paymentStatus is set to 'closed'.

clearingType type can be:
1 - Invoice = amount increment, is auto-generated when Invoice status is changed to 'approved',
2 - Payment = paidAmount - must be <> 0,
3 - Interest = amount increment - must be <> 0,
4 - Reminder = amount increment - must be <> 0.

paymentType type can be:
1 - Bank Transfer,
2 - Credit Card,
3 - PayPal,
4 - Cash.

If paymentType is '1 - Bank Transfer', bankAccountId greater than 0 must be sent, in other cases it should not be sent or can be 0.

status is set to 'active'.
comment is set to name of clearingType if omitted.
recordDate must be in format 2006-01-02.

If clearing record represents payment and invoice document class code name is CUSTOMER_INVOICE, payment will be automatically applied to billing balance.

Minimal JSON body parameters
{
  "clearingTypeId": 2,
  "recordDate": "2016-08-05",
  "paymentTypeId": 1,
  "amountIncrement": 0,
  "paidAmount": 10,
  "paymentReference": "string"
}
Parameters
Name Type Description
invoiceID (required) string (path) Invoice ID to get.
post data (required) object (body) Post data. If status is used, it must be in (active, deleted). recordDate must be in format 2006-01-02.
Data Parameters

Clearing Record post data object example

{
  "clearingTypeId": 0,
  "recordDate": "2021-03-11",
  "paymentTypeId": 0,
  "amountIncrement": 0,
  "paidAmount": 0,
  "paymentReference": "string",
  "comment": "string",
  "bankAccountId": 0
}
Responses
Code Description Links
200 InvoiceClearingRecord added. No links
default Unexpected Error. No links
Success Response 200: InvoiceClearingRecord added
{
  "id": 0,
  "clearingId": 0,
  "clearingTypeId": 0,
  "clearingTypeCodeName": "string",
  "recordDate": "2021-03-11",
  "paymentTypeId": 0,
  "paymentTypeName": "string",
  "amountIncrement": 0,
  "paidAmount": 0,
  "paymentReference": "string",
  "comment": "string",
  "status": "string",
  "statusDate": "2021-03-11T10:11:27.765Z",
  "revokeUserId": "string",
  "revokeUserName": "string",
  "revokeComment": "string",
  "bankAccountId": 0,
  "bankAccountName": "string",
  "bankAccountNumber": "string",
  "bankAccountIban": "string",
  "bankAccountSwiftBic": "string"
}
Error Response Unexpected Error: Default
{
  "Code": 0,
  "Message": "string"
}
GET/invoices-by-number/{invoiceNumber}/clearingrecords
Returns a list of all invoice Clearing Records for a given invoiceNumber.Up
Method Overview

The method returns a list of all invoice clearing records for a given invoice number.

Authorization privilege needed for this endpoint: finance-invoices.view.
Optional privilege used in this endpoint: finance-invoices-own.view.

List of all InvoiceClearingRecords is returned that belongs to InvoiceClearing.
InvoiceClearing is created when Invoice status is changed to 'approved' and payment status is set to 'open'.
By default, only clearing records with active status will be returned.

This endpoint accepts query parameters for filtering data described on URL Filtering Guidelines page.

If clearing records with other statuses should be returned, it should be used query parameter status with operator in and value containing a comma separated list of statuses (in(status)=active,canceled). For the time being, only 'active' and 'canceled' status are available as clearing record status values.

Parameters
Name Type Description
invoiceNumber (required) string (path) Invoice number to get Clearing Records.
If the invoice number contains slashes, it must be encoded.
Example: For invoiceNumber = 00033/E/2021 value 00033%2FE%2F2021 should be in URL as invoiceNumber parameter (/ = %2F).
page_number integer (query) Page number. Default value: 1.
page_size integer (query) Page size. Default value: 10.
paging string (query) Paging options in form of &paging=page_num page_size e.g. paging=1,10.
operator(fieldName) string (query) Search criteria by using the following operators: isnull, isnotnull, isempty, isnotempty, eq, neq, startswith, contains, endswith, doesnotcontain, lt, lte, gt, gte, in, notin, between, notbetween, and the following attributes: id, clearingId, clearingTypeId, clearingTypeCodeName, recordDate, paymentTypeId, paymentTypeName, amountIncrement, paidAmount, paymentReference, comment, status, statusDate, bankAccountId, bankAccountName, bankAccountNumber, bankAccountIban, bankAccountSwiftBic, revokeUserId, revokeUserName, revokeComment.

  • If the operator is one of isnull, isnotnull, isempty, isnotempty, the field value can be omitted.
  • If the operator is in or notin, the field value must be a comma separated list of values.
  • If the operator is between or notbetween, the field value must be a comma separated list of two values representing the beginning and the end of a range.
  • Operator can be omitted and in that case, it will be treated as operator is eq (Example: fieldName=fieldValue).
  • Example: startswith(clientName)=hor, starts with hor in field 'clientName'.
  • If fieldName is 'q' and operator is eq or omitted, the field value will be used in general search across multiple attributes.
q string (query) General search criteria.

Available fields: status, paymentReference, comment, revokeUserId, revokeUserName, revokeComment, clearingTypeCodeName, paymentTypeName, bankAccountName, bankAccountNumber, bankAccountIban, bankAccountSwiftBic.

sort string (query) Sorting options in form of sort=-attribute1,attribute2,-attribute3.

Sorting available fields: id, clearingId, clearingTypeId, clearingTypeCodeName, recordDate, paymentTypeId, paymentTypeName, amountIncrement, paidAmount, paymentReference, comment, status, statusDate, bankAccountId, bankAccountName, bankAccountNumber, bankAccountIban, bankAccountSwiftBic, revokeUserId, revokeUserName, revokeComment.

Responses
Code Description Links
200 List of InvoiceClearingRecords. No links
default Unexpected Error. No links
Success Response 200: List of InvoiceClearingRecords
{
  "data": [
    {
      "id": 0,
      "clearingId": 0,
      "clearingTypeId": 0,
      "clearingTypeCodeName": "string",
      "recordDate": "2021-03-11",
      "paymentTypeId": 0,
      "paymentTypeName": "string",
      "amountIncrement": 0,
      "paidAmount": 0,
      "paymentReference": "string",
      "comment": "string",
      "status": "string",
      "statusDate": "2021-03-11T10:50:05.688Z",
      "revokeUserId": "string",
      "revokeUserName": "string",
      "revokeComment": "string",
      "bankAccountId": 0,
      "bankAccountName": "string",
      "bankAccountNumber": "string",
      "bankAccountIban": "string",
      "bankAccountSwiftBic": "string"
    }
  ],
  "meta": {
    "pagination": {}
  }
}
Error Response Unexpected Error: Default
{
  "Code": 0,
  "Message": "string"
}
POST/invoices-by-number/{invoiceNumber}/clearingrecords
Adds an invoice Clearing Record for a given invoiceNumber.Up
Method Overview

The method adds an invoice clearing record for a given invoice number.

Authorization privilege needed for this endpoint:
- finance-invoices.manage or
- finance-cust-invoices.manage or
- finance-supplier-invoices.manage or
- finance-netting-invoices.manage.

InvoiceClearing is created when Invoice status is changed to 'approved' and payment status is set to 'open'.
Approved supplier invoices with payment status 'on-hold', do not have clearing created. Clearing record for supplier invoice is created when a supplier invoice is approved for payment.
Invoice clearing record can not be added if an invoice does not have Clearing created.
When totalUnpaid is 0, invoice.paymentStatus is set to 'closed'.

clearingType type can be:
1 - Invoice = amount increment, is auto-generated when Invoice status is changed to 'approved',
2 - Payment = paidAmount - must be <> 0,
3 - Interest = amount increment - must be <> 0,
4 - Reminder = amount increment - must be <> 0.

paymentType type can be:
1 - Bank Transfer,
2 - Credit Card,
3 - PayPal,
4 - Cash.

If paymentType is '1 - Bank Transfer', bankAccountId greater than 0 must be sent, in other cases it should not be sent or can be 0.

status is set to 'active'.
comment is set to name of clearingType if omitted.
recordDate must be in format 2006-01-02.

If clearing record represents payment and invoice document class code name is CUSTOMER_INVOICE, payment will be automatically applied to billing balance.

Minimal JSON body parameters
{
  "clearingTypeId": 2,
  "recordDate": "2016-08-05",
  "paymentTypeId": 1,
  "amountIncrement": 0,
  "paidAmount": 10,
  "paymentReference": "string"
}
Parameters
Name Type Description
invoiceNumber (required) string (path) Invoice number to get Clearing Records.
If the invoice number contains slashes, it must be encoded.
Example: For invoiceNumber = 00033/E/2021 value 00033%2FE%2F2021 should be in URL as invoiceNumber parameter (/ = %2F).
post data (required) object (body) Post data. The recordDate must be in format 2006-01-02.
Post Data Parameters
{
  "clearingTypeId": 0,
  "recordDate": "2021-03-11",
  "paymentTypeId": 0,
  "amountIncrement": 0,
  "paidAmount": 0,
  "paymentReference": "string",
  "comment": "string",
  "bankAccountId": 0
}
Responses
Code Description Links
200 InvoiceClearingRecord added. No links
default Unexpected Error. No links
Success Response 200: InvoiceClearingRecord added
{
  "id": 0,
  "clearingId": 0,
  "clearingTypeId": 0,
  "clearingTypeCodeName": "string",
  "recordDate": "2021-03-11",
  "paymentTypeId": 0,
  "paymentTypeName": "string",
  "amountIncrement": 0,
  "paidAmount": 0,
  "paymentReference": "string",
  "comment": "string",
  "status": "string",
  "statusDate": "2021-03-11T10:56:49.498Z",
  "revokeUserId": "string",
  "revokeUserName": "string",
  "revokeComment": "string",
  "bankAccountId": 0,
  "bankAccountName": "string",
  "bankAccountNumber": "string",
  "bankAccountIban": "string",
  "bankAccountSwiftBic": "string"
}
Error Response Unexpected Error: Default
{
  "Code": 0,
  "Message": "string"
}
GET/invoices-by-uid/{invoiceUid}/clearingrecords
Returns a list of invoice Clearing Records for a given invoiceUid.Up
Method Overview

The method returns a list of invoice clearing records for a given invoice UID.

Authorization privilege needed for this endpoint: finance-invoices.view.
Optional privilege used in this endpoint: finance-invoices-own.view.

Returned InvoiceClearingRecords belong to InvoiceClearing.
InvoiceClearing is created when Invoice status is changed to 'approved' and payment status is set to 'open'.
By default, only clearing records with active status will be returned.

This endpoint accepts query parameters for filtering described on URL Filtering Guidelines page.

If clearing records with other statuses should be returned, it should be used query parameter status with operator in and value containing a comma separated list of statuses (in(status)=active,canceled). For the time being, only 'active' and 'canceled' status are available as clearing record status values.

Parameters
Name Type Description
invoiceUid (required) string (path) Invoice UID to get Clearing Records.
page_number integer (query) Page number. Default value: 1.
page_size integer (query) Page size. Default value: 10.
paging string (query) Paging options in form of &paging=page_num page_size e.g. paging=1,10.
operator(fieldName) string (query) Search criteria by using the following operators: isnull, isnotnull, isempty, isnotempty, eq, neq, startswith, contains, endswith, doesnotcontain, lt, lte, gt, gte, in, notin, between, notbetween, and the following attributes: id, clearingId, clearingTypeId, clearingTypeCodeName, recordDate, paymentTypeId, paymentTypeName, amountIncrement, paidAmount, paymentReference, comment, status, statusDate, bankAccountId, bankAccountName, bankAccountNumber, bankAccountIban, bankAccountSwiftBic, revokeUserId, revokeUserName, revokeComment.

  • If the operator is one of isnull, isnotnull, isempty, isnotempty, the field value can be omitted.
  • If the operator is in or notin, the field value must be a comma separated list of values.
  • If the operator is between or notbetween, the field value must be a comma separated list of two values representing the beginning and the end of a range.
  • Operator can be omitted and in that case it will be treated as operator is eq (Example: fieldName=fieldValue).
  • Example: startswith(clientName)=hor, starts with hor in field 'clientName'.
  • If fieldName is 'q' and operator is eq or omitted, the field value will be used in general search across multiple attributes.
q string (query) General search criteria.

Available fields: status, paymentReference, comment, revokeUserId, revokeUserName, revokeComment, clearingTypeCodeName, paymentTypeName, bankAccountName, bankAccountNumber, bankAccountIban, bankAccountSwiftBic.

sort string (query) Sorting options in form of sort=-attribute1,attribute2,-attribute3.

Sorting available fields: id, clearingId, clearingTypeId, clearingTypeCodeName, recordDate, paymentTypeId, paymentTypeName, amountIncrement, paidAmount, paymentReference, comment, status, statusDate, bankAccountId, bankAccountName, bankAccountNumber, bankAccountIban, bankAccountSwiftBic, revokeUserId, revokeUserName, revokeComment.

Responses
Code Description Links
200 List of InvoiceClearingRecords. No links
default Unexpected Error. No links
Success Response 200: List of InvoiceClearingRecords
{
  "data": [
    {
      "id": 0,
      "clearingId": 0,
      "clearingTypeId": 0,
      "clearingTypeCodeName": "string",
      "recordDate": "2021-03-11",
      "paymentTypeId": 0,
      "paymentTypeName": "string",
      "amountIncrement": 0,
      "paidAmount": 0,
      "paymentReference": "string",
      "comment": "string",
      "status": "string",
      "statusDate": "2021-03-11T12:19:07.845Z",
      "revokeUserId": "string",
      "revokeUserName": "string",
      "revokeComment": "string",
      "bankAccountId": 0,
      "bankAccountName": "string",
      "bankAccountNumber": "string",
      "bankAccountIban": "string",
      "bankAccountSwiftBic": "string"
    }
  ],
  "meta": {
    "pagination": {}
  }
}
Error Response Unexpected Error: Default
{
  "Code": 0,
  "Message": "string"
}
POST/invoices-by-uid/{invoiceUid}/clearingrecords
Adds an invoice Clearing Record for a given invoiceUid.Up
Method Overview

The method adds an invoice clearing record for a given invoice UID.

Authorization privilege needed for this endpoint:
- finance-invoices.manage or
- finance-cust-invoices.manage or
- finance-supplier-invoices.manage or
- finance-netting-invoices.manage.

InvoiceClearing is created when Invoice status is changed to 'approved' and payment status is set to 'open'.
Approved supplier invoices with payment status 'on-hold', do not have clearing created. Clearing record for supplier invoice is created when a supplier invoice is approved for payment.
Invoice clearing record can not be added if an invoice does not have Clearing created.
When totalUnpaid is 0, invoice.paymentStatus is set to 'closed'.

clearingType type can be:
1 - Invoice = amount increment, is auto-generated when Invoice status is changed to 'approved',
2 - Payment = paidAmount - must be <> 0,
3 - Interest = amount increment - must be <> 0,
4 - Reminder = amount increment - must be <> 0.

paymentType type can be:
1 - Bank Transfer,
2 - Credit Card,
3 - PayPal,
4 - Cash.

If paymentType is '1 - Bank Transfer', bankAccountId greater than 0 must be sent, in other cases it should not be sent or can be 0.

status is set to 'active'.
comment is set to name of clearingType if omitted.
recordDate must be in format 2006-01-02.

If clearing record represents payment and invoice document class code name is CUSTOMER_INVOICE, payment will be automatically applied to billing balance.

Minimal Json body parameters
{
  "clearingTypeId": 2,
  "recordDate": "2016-08-05",
  "paymentTypeId": 1,
  "amountIncrement": 0,
  "paidAmount": 10,
  "paymentReference": "string"
}
Parameters
Name Type Description
invoiceUID (required) integer (path) Invoice UID to get Clearing Records.
post data (required) object (body) Post data. If it is used, status must be in (active, deleted). The recordDate must be in format YYYY-MM-DD.
Post Data Parameters
{
  "clearingTypeId": 0,
  "recordDate": "2021-03-11",
  "paymentTypeId": 0,
  "amountIncrement": 0,
  "paidAmount": 0,
  "paymentReference": "string",
  "comment": "string",
  "bankAccountId": 0
}
Responses
Code Description Links
200 InvoiceClearingRecord added. No links
default Unexpected Error. No links
Success Response 200: InvoiceClearingRecord added
{
  "id": 0,
  "clearingId": 0,
  "clearingTypeId": 0,
  "clearingTypeCodeName": "string",
  "recordDate": "2021-03-11",
  "paymentTypeId": 0,
  "paymentTypeName": "string",
  "amountIncrement": 0,
  "paidAmount": 0,
  "paymentReference": "string",
  "comment": "string",
  "status": "string",
  "statusDate": "2021-03-11T12:26:30.255Z",
  "revokeUserId": "string",
  "revokeUserName": "string",
  "revokeComment": "string",
  "bankAccountId": 0,
  "bankAccountName": "string",
  "bankAccountNumber": "string",
  "bankAccountIban": "string",
  "bankAccountSwiftBic": "string"
}
Error Response Unexpected Error: Default
{
  "Code": 0,
  "Message": "string"
}
GET/invoices/{invoiceid}/clearingrecords/{recordid}
Returns an invoice clearing record with given recordid, which belongs to an invoice identified with invoiceid.Up
Method Overview

The method returns an invoice clearing record with given recordid, which belongs to invoice identified with invoiceid.

Authorization privilege needed for this endpoint: finance-invoices.view.
Optional: privilege used in this endpoint is finance-invoices-own.view.

Parameters
Name Type Description
invoiceid (required) integer (path) Invoice ID.
recordid (required) integer (path) ID of invoiceClearingRecord to get.
Responses
Code Description Links
200 InvoiceClearingRecord returned successfully. No links
default Unexpected Error. No links
Success Response 200: InvoiceClearingRecord returned successfully
{
  "id": 0,
  "clearingId": 0,
  "clearingTypeId": 0,
  "clearingTypeCodeName": "string",
  "recordDate": "2024-01-23",
  "paymentTypeId": 0,
  "paymentTypeName": "string",
  "amountIncrement": 0,
  "paidAmount": 0,
  "paymentReference": "string",
  "comment": "string",
  "status": "string",
  "statusDate": "2024-01-23T12:32:51.796Z",
  "revokeUserId": "string",
  "revokeUserName": "string",
  "revokeComment": "string",
  "bankAccountId": 0,
  "bankAccountName": "string",
  "bankAccountNumber": "string",
  "bankAccountIban": "string",
  "bankAccountSwiftBic": "string"
}
Error Response Unexpected Error: Default
{
  "Code": 0,
  "Message": "string"
}
PUT/invoices/{invoiceid}/clearingrecords/{recordid}
Updates an existing InvoiceClearingRecord.Up
Method Overview

The method updates an existing InvoiceClearingRecord.

Authorization privilege needed for this endpoint:
- finance-invoices.manage or
- finance-cust-invoices.manage or
- finance-supplier-invoices.manage or
- finance-netting-invoices.manage.

After this operation, requested invoice clearing record will be marked as 'canceled' and new clearing record will be created and returned instead of the original.
InvoiceClearing value will be recalculated.
Canceled clearing records will be listed in the clearing records list, unlike deleted credit records, which are not listed.

If clearing record represents payment and invoice document class code name is CUSTOMER_INVOICE, payment will be applied to billing balance. When corrected payment value is less than original payment value, it may happen that applying payment change will result in block balance, because funds are already spent. In that case the following error with HTTP status code 409 will be returned.

{
  "error":
    {
      "code": "CHANGE_PAYMENT_BLOCK_BALANCE",
      "message": "after delete of edit payment balance will be blocked because of insufficient funds available"
    }
}

If the API user still wants to edit a payment, the same API call should be used but with the parameter force=yes, effectively forcing the payment deletion.

Parameters
Name Type Description
invoceid (required) integer (path) Invoice ID.
recordid (required) integer (path) ID of invoiceClearingRecord to update.
force string (query) Forces edit of a payment for customer invoices even if operation will lead to customer balance blocking.
Available values: yes, no.
Default value: no.
corrected clearing record data (required) object (body) Corrects clearing record date for a clearing. See below an example.

Example object for correcting clearing record date for a clearing:

{
  "clearingTypeId": 0,
  "recordDate": "2024-01-23",
  "paymentTypeId": 0,
  "amountIncrement": 0,
  "paidAmount": 0,
  "paymentReference": "string",
  "comment": "string",
  "revokeUserId": "string",
  "revokeUserName": "string",
  "revokeComment": "string",
  "bankAccountId": 0
}
Responses
Code Description Links
200 InvoiceClearingRecord updated successfully. No links
default Unexpected Error. No links
Success Response 200: InvoiceClearingRecord updated successfully
{
  "id": 0,
  "clearingId": 0,
  "clearingTypeId": 0,
  "clearingTypeCodeName": "string",
  "recordDate": "2024-01-23",
  "paymentTypeId": 0,
  "paymentTypeName": "string",
  "amountIncrement": 0,
  "paidAmount": 0,
  "paymentReference": "string",
  "comment": "string",
  "status": "string",
  "statusDate": "2024-01-23T12:44:02.373Z",
  "revokeUserId": "string",
  "revokeUserName": "string",
  "revokeComment": "string",
  "bankAccountId": 0,
  "bankAccountName": "string",
  "bankAccountNumber": "string",
  "bankAccountIban": "string",
  "bankAccountSwiftBic": "string"
}
Error Response Unexpected Error: Default
{
  "Code": 0,
  "Message": "string"
}
DELETE/invoices/{invoiceid}/clearingrecords/{recordid}
Deletes an invoice clearing record with given recordid.Up
Method Overview

The method deletes an invoice clearing record with given recordid.

Authorization privilege needed for this endpoint:
- finance-invoices.manage or
- finance-cust-invoices.manage or
- finance-supplier-invoices.manage or
- finance-netting-invoices.manage.

Deletion of Invoice Clearing records performs logical delete. Record's status will be set to delete. After this, clearing record will not be presented when listing.
InvoiceClearing value will be recalculated.
If clearing record represents payment and invoice document class code name is CUSTOMER_INVOICE, deleting payment will be applied to billing balance resulting decreasing balance amount and increasing unpaid amount. It may happen that applying payment change will result in blocking balance, because the funds are already spent. In that case, the following error with HTTP status code 409 and body will be returned:

{
  "error":
    {
      "code": "CHANGE_PAYMENT_BLOCK_BALANCE",
      "message": "after delete of edit payment balance will be blocked because of insufficient funds available"
    }
}

If the API user still wants to delete a payment, the same API call should be used but with the parameter force=yes effectively forcing the payment deletion. In that case, after a payment is deleted, balance and account will be blocked for use because of insufficient funds.

Parameters
Name Type Description
invoceid (required) integer (path) Invoice ID.
recordid (required) integer (path) ID of invoiceClearingRecord to be deleted.
force string (query) Forces deletion of a payment for customer invoices, even if operation will lead to customer balance blocking.
Available values: yes, no.
Default value: no.
Responses
Code Description Links
200 InvoiceClearingRecord deleted successfully. No links
default Unexpected Error. No links
Success Response 200: InvoiceClearingRecord deleted successfully
Error Response Unexpected Error: Default
{
  "Code": 0,
  "Message": "string"
}

3.3 Payment Type

This endpoint allows retrieving a list of payment types that can be used to pay invoices.

GET/payment-types
Returns a list of Payment TypesUp
Method Overview

The method returns a list of all available payment types.

Authorization privilege needed for this endpoint: finance-invoices.view.
Optional privilege used in this endpoint: finance-invoices-own.view.

This endpoint accepts query parameters for filtering described on URL Filtering Guidelines page.

Parameters
Name Type Description
page_number integer (query) Page number. Default value: 1.
page_size integer (query) Page size. Default value: 10.
paging string (query) Paging options in form of &paging=page_num page_size e.g. paging=1,10.
operator(fieldName) string (query) Search criteria by using the following operators: isnull, isnotnull, isempty, isnotempty, eq, neq, startswith, contains, endswith, doesnotcontain, lt, lte, gt, gte, in, notin, between, notbetween, and the following attributes: id, name, status, statusDt.

  • If the operator is one of isnull, isnotnull, isempty, isnotempty, the field value can be omitted.
  • If the operator is in or notin, the field value must be a comma separated list of values.
  • If the operator is between or notbetween, the field value must be a comma separated list of two values representing the beginning and the end of a range.
  • Operator can be omitted and in that case it will be treated as operator is eq (Example: fieldName=fieldValue).
  • Example: startswith(clientName)=hor, starts with hor in field 'clientName'.
  • If fieldName is 'q' and operator is eq or omitted, the field value will be used in general search across multiple attributes.
q string (query) General search criteria.

Available fields: name, status.

sort string (query) Sorting options in form of sort=-attribute1,attribute2,-attribute3.

Sorting available fields: id, name, status, statusDt.

Responses
Code Description Links
200 List of Payment Types. No links
default Unexpected Error. No links
Success Response 200: List of Payment Types
{
  "data": [
    {
      "id": 0,
      "name": "string",
      "status": "active",
      "statusDt": "2021-03-11T12:29:43.054Z"
    }
  ],
  "meta": {
    "pagination": {}
  }
}
Error Response Unexpected Error: Default
{
  "Code": 0,
  "Message": "string"
}

3.4 Platform Owner Bank Accounts

The endpoints described within this section, provide functionality to manage Platform Owner Bank Accounts, allowing to create, retrieve, update or delete bank accounts data.

The following API endpoints belong to the Settings domain. The subject domain of an endpoint URL is:

https://api.horisen.pro/settings/v1
GET/platform-owner-bank-accounts
Returns a list of bank accounts of a platform owner or a co-owner.Up
Method Overview

The method returns a list of bank accounts of a platform owner or a co-owner.

Authorization privilege needed for this endpoint: biz-core.view.

This endpoint accepts query parameters for filtering described on URL Filtering Guidelines page.

When co-owners are enabled on the platform level, coOwnerId parameter should be sent. If coOwnerId is not sent, bank accounts for platform owner will be returned. If co-owners are disabled, coOwnerId should not be sent.

Parameters
Name Type Description
all string (query) Returns all data for a given criteria.
Available values: yes, no. Default value: no.
page_number integer (query) Page number. Default value: 1.
page_size integer (query) Page size. Default value: 10.
paging string (query) Paging options in form of &paging=page_num page_size e.g. paging=1,10.
sort string (query) Sorting options in form of sort=-attribute1,attribute2,-attribute3.
operator(fieldName) string (query) Search criteria by using the following operators: isnull, isnotnull, isempty, isnotempty, eq, neq, startswith, contains, endswith, doesnotcontain, lt, lte, gt, gte, in, notin, between, notbetween, and the following attributes: id, coOwnerId, bizPartnerId, bizPartnerName, bizPartnerBriefName, bizBankId, bizBankName, currency, currencyCode, currencyName, accountNumber, iban, isDefaultPerCurrency, status, name, swiftBic, accountType, countryName, ownerId, ownerBpName, ownerBpBriefName.

  • If the operator is one of isnull, isnotnull, isempty, isnotempty, the field value can be omitted.
  • If the operator is in or notin, the field value must be a comma separated list of values.
  • If the operator is between or notbetween, the field value must be a comma separated list of two values representing the beginning and the end of a range.
  • Operator can be omitted and in that case it will be treated as operator is eq (Example: fieldName=fieldValue).
  • Example: startswith(clientName)=hor, starts with hor in field 'clientName'.
  • If fieldName is 'q' and operator is eq or omitted, the field value will be used in general search across multiple attributes.
Responses
Code Description Links
200 List of bank accounts. No links
default Unexpected Error. No links
Success Response 200: List of bank accounts
{
  "data": [
    {
      "id": 0,
      "bizPartnerId": 0,
      "bizPartnerName": "string",
      "bizPartnerBriefName": "string",
      "bizBankId": 0,
      "bizBankName": "string",
      "currency": 0,
      "currencyCode": "string",
      "currencyName": "string",
      "accountNumber": "string",
      "iban": "string",
      "isDefaultPerCurrency": "yes",
      "status": "active",
      "statusDt": "2021-03-11T12:56:00.268Z",
      "name": "string",
      "swiftBic": "string",
      "accountType": "account number",
      "countryName": "string",
      "ownerId": 0,
      "ownerBpName": "string",
      "ownerBpBriefName": "string"
    }
  ],
  "meta": {
    "pagination": {
      "total": 0,
      "count": 0,
      "perPage": 0,
      "currentPage": 0,
      "totalPages": 0
    }
  }
}
Error Response Unexpected Error: Default
{
  "Code": 0,
  "Message": "string"
}
POST/platform-owner-bank-accounts
Creates a new bank account record.Up
Method Overview

The method creates a new bank account record.

Authorization privilege needed for this endpoint: biz-core.manage.

Parameters
Name Type Description
post data (required) object (body) Post data. Bank account data. An example is given below.

Post data object example:

{
  "name": "string",
  "bizBankId": 0,
  "currency": 0,
  "accountNumber": "string",
  "iban": "string",
  "isDefaultPerCurrency": "yes",
  "swiftBic": "string",
  "accountType": "account number",
  "coOwnerId": 0
}
Responses
Code Description Links
200 Bank account record created. No links
default Unexpected Error. No links
Success Response 200: Bank account record created
{
  "id": 0,
  "bizPartnerId": 0,
  "bizPartnerName": "string",
  "bizPartnerBriefName": "string",
  "bizBankId": 0,
  "bizBankName": "string",
  "currency": 0,
  "currencyCode": "string",
  "currencyName": "string",
  "accountNumber": "string",
  "iban": "string",
  "isDefaultPerCurrency": "yes",
  "status": "active",
  "statusDt": "2021-12-14T14:17:31.795Z",
  "name": "string",
  "swiftBic": "string",
  "accountType": "account number",
  "countryName": "string",
  "ownerId": 0,
  "ownerBpName": "string",
  "ownerBpBriefName": "string"
}
Error Response Unexpected Error: Default
{
  "Code": 0,
  "Message": "string"
}
GET/platform-owner-bank-accounts/{id}
Returns a bank account for a given ID.Up
Method Overview

The method returns a bank account data for a given ID.

Authorization privilege needed for this endpoint: biz-core.view.

Parameters
Name Type Description
id (required) integer (path) Bank account ID.
Responses
Code Description Links
200 Bank account data are returned. No links
default Unexpected Error. No links
Success Response 200: Bank account data
{
  "id": 0,
  "bizPartnerId": 0,
  "bizPartnerName": "string",
  "bizPartnerBriefName": "string",
  "bizBankId": 0,
  "bizBankName": "string",
  "currency": 0,
  "currencyCode": "string",
  "currencyName": "string",
  "accountNumber": "string",
  "iban": "string",
  "isDefaultPerCurrency": "yes",
  "status": "active",
  "statusDt": "2021-12-14T14:31:23.497Z",
  "name": "string",
  "swiftBic": "string",
  "accountType": "account number",
  "countryName": "string",
  "ownerId": 0,
  "ownerBpName": "string",
  "ownerBpBriefName": "string"
}
Error Response Unexpected Error: Default
{
  "Code": 0,
  "Message": "string"
}
PUT/platform-owner-bank-accounts/{id}
Updates a bank account data for a given ID.Up
Method Overview

The method updates a bank account data for a given ID.

Authorization privilege needed for this endpoint: biz-core.manage.

Parameters
Name Type Description
id (required) integer (path) Bank account ID.
put data (required) object (body) Bank account data to be updated. An example is given below.

Put data object example:

{
  "name": "string",
  "bizBankId": 0,
  "currency": 0,
  "accountNumber": "string",
  "iban": "string",
  "isDefaultPerCurrency": "yes",
  "swiftBic": "string",
  "accountType": "account number"
}
Responses
Code Description Links
200 Bank account updated successfully. No links
default Unexpected Error. No links
Success Response 200: Bank account updated successfully
{
  "id": 0,
  "bizPartnerId": 0,
  "bizPartnerName": "string",
  "bizPartnerBriefName": "string",
  "bizBankId": 0,
  "bizBankName": "string",
  "currency": 0,
  "currencyCode": "string",
  "currencyName": "string",
  "accountNumber": "string",
  "iban": "string",
  "isDefaultPerCurrency": "yes",
  "status": "active",
  "statusDt": "2021-12-14T14:36:14.664Z",
  "name": "string",
  "swiftBic": "string",
  "accountType": "account number",
  "countryName": "string",
  "ownerId": 0,
  "ownerBpName": "string",
  "ownerBpBriefName": "string"
}
Error Response Unexpected Error: Default
{
  "Code": 0,
  "Message": "string"
}
DELETE/platform-owner-bank-accounts{id}
Deletes a bank account data for a given ID.Up
Method Overview

The method deletes a bank account record for a given ID.

Authorization privilege needed for this endpoint: biz-core.manage.

Parameters
Name Type Description
id (required) integer (path) Bank account ID.
Responses
Code Description Links
200 Bank account deleted successfully. No links
default Unexpected Error. No links
Success Response 200: Bank account deleted successfully
Error Response Unexpected Error: Default
{
  "Code": 0,
  "Message": "string"
}

4. Data Models

Data Models define the structure of a JSON document and describe data related to the Finance Clearing API.

4.1 InvoiceCollection

InvoiceCollection object properties:

Name Type Description
data (required) array Array of Invoice objects.
meta (required) object CollectionMeta object.

4.2 Invoice

Invoice object properties:

Name Type Description
id integer Invoice ID.
invUid string Invoice UID.
instanceID integer Instance ID.
custID integer Customer ID.
custName string Customer name.
custShortName string Customer short name.
custAttn string Customer Attn. data.
custAddress string Customer address.
custAddress2 string Customer address2.
custPost string Customer address postcode.
custCity string Customer address city.
custCountry integer Customer address country.
custPOBox string Customer address PO Box.
customerType string Customer type.
custVatNumber string Customer VAT number.
invType integer Invoice type.
invTypeName string Invoice type name.
templateID integer Template ID.
invDate string($date) Invoice date.
invoicingDate string($date) Invoicing date.
invoicingDatePolicy string Possible values: delivery, creation, approval.
invNumberFix string The fixed part of the invoice number, based on this field system will define next invoice number.
invNumberNum integer The invoice number (variable part) - it counts invoices for the same invNumberFix.
invNumber string Invoice number.
invPeriod string Invoice period.
invDueDate string($date) Invoice due date.
overDueDate integer Number of days over due date.
ownerVatNumber string Owner VAT number.
currency integer Currency.
currencyCode string Currency code.
amountNoVat number($float) Invoice amount without VAT (net amount). It can be negative when selfBilling is 'yes'.
amountVat number($float) Invoice amount including VAT. It can be negative when selfBilling is 'yes'.
vatPercent number($float) VAT percent.
vat number($float) Value added tax.
rounding number($float) Difference between an invoice total and amount including VAT value.
total number($float) Invoice gross amount. It can be negative when selfBilling is 'yes'.
totalUnpaid number($float) Invoice unpaid amount.
totalPaid number($float) Invoice paid amount.
vatInPrice integer VAT in price.
vatInTotal integer VAT in total.
status string Invoice status. Possible values: draft, approved, rejected, deleted, misc, canceled, archived, imported.
insertDt string($date-time) Date and time of insertion.
statusDt string($date-time) Date and time of status.
deliveryDate string($date) Delivery date.
invPeriodStart string($date) Start of invoice period.
invPeriodEnd string($date) End of invoice period.
docsDeliveryStatus string Document delivery status.
docsDeliveryStatusDate string($date-time) Document delivery status date and time.
docsDeliveryDlrStatus string Status of DLR.
docsDeliveryDlrStatusDate string($date-time) DLR status date and time.
classCodeName string Class code name.
classDomain string Class domain.
classArea string Class area.
lang string Language.
paymentStatus string Possible values: none, open, on-hold, closed.
paymentStatusDate string($date-time) Payment status date and time.
disputeStatus string DisputeStatus indicates whether the invoice is in dispute process or not.
disputeStatusDate string($date-time) Dispute status date and time.
dataSourceId integer Data source ID.
dataSourceCodeName string Data source code name.
nettingInvoiceId integer Netting statement ID.
nettingInvoiceNumber string Netting statement number.
selfBilling string Indicator if an invoice is a credit note or not. If value is yes', when the document is in netting statement, it indicates that the document is in favor of a buyer, but issued by the seller. Also, if the document class is CREDIT_DEBIT_NOTE, it indicates that the document is a credit note, which is also in favor of buyer, but issued by the seller. Possible values: yes, no.
domainId integer Domain ID.
domainCodeName string Domain code name.
domainName string Domain name.
domainProduct integer Domain product.
accountManagerId integer Account manager ID.
accountManagerName string Account manager name.
disputeNextId integer Dispute ID.
collectionMode string Document collection mode. If member, the document is member of a collection. If lead, the document is a collection lead. By default collection mode is none, which indicates that the document is not a member of a collection nor collection lead. Possible values: none, member, lead.
collectionLeadId integer If document is a member of collection, this value contains id of collection lead document.
collectionLeadNumber string If document is a member of collection, this value contains number of collection lead document.
collectionLeadNettingInvoiceId integer Netting statement ID of collection lead. Returned when collection lead to whom current invoice belongs to, is a netting statement's member.
collectionLeadNettingInvoiceNumber string Netting statement number of collection lead. Returned when collection lead to whom current invoice belongs to, is a netting statement's member.
collectionLeadNettingInvoiceStatus string Netting statement status of collection lead. Returned when collection lead to whom current invoice belongs to, is a netting statement's member.
collectionLeadNettingInvoicePaymentStatus string Netting statement payment status of collection lead. Returned when collection lead to whom current invoice belongs to, is a netting statement's member.
collectionLeadNettingInvoiceTotal string Netting statement total amount of collection lead. Returned when collection lead to whom current invoice belongs to, is a netting statement's member.
collectionLeadNettingInvoiceTotalPaid string Netting statement total paid amount of collection lead. Returned when collection lead to whom current invoice belongs to, is a netting statement's member.
collectionLeadNettingInvoiceTotalUnpaid string Netting statement total unpaid amount of collection lead. Returned when collection lead to whom current invoice belongs to, is a netting statement's member.
processingStatus string Indicates processing status of document if document has been assigned recalculation task(s) or some other kind of processing tasks. Possible values: none, scheduled, running, done, canceled.
comment string Description or comment in case invoice is a credit or debit note. Comment is not available when the invoice list is returned as a result of request, regardless of invoice class code name.
nettingInvoiceStatus string If invoice netting statement's member, this property contains netting statement status. Possible values: draft, approved, rejected, deleted, misc, canceled, archived.
nettingPaymentStatus string If invoice is netting statement's member, this property is netting's payment status. Possible values: none, open, closed.
nettingTotal number($float) If invoice is netting statement's member, this property is netting's gross amount. It can be negative when selfBilling is 'yes'.
nettingTotalUnpaid number($float) If invoice is netting statement's member this property is netting's unpaid amount.
nettingTotalPaid number($float) If invoice is netting statement's member this property is netting's paid amount.
dtsSelectorId integer ID reference to DTS selector, e.g. for part-payment invoice.
dtsSelectorCodeName string DTS selector code name.
sitInvoiceEmailImportId integer ID of an invoice email import.
billingBalance object BillingBalance object.
billingTypeName string Required and returned for control invoice.
smsCount integer Amount of messages. Required and returned for postpaid and control invoices.
syncStatus string SyncStatus is an invoice synchronization status. Possible values: none, waiting, syncing, done, error, misc, exported.
syncStatusDt string($date‑time) Synchronization status date and time.
syncMode string Synchronization mode. Possible values: disabled, primary, secondary.
reminderStatus string Reminder status. Possible values: enabled, disabled, open, closed, misc.
domesticCurrency integer Domestic currency.
domesticCurrencyCode string Domestic currency code.
domesticCurrencyAmountNoVAT number($float) Invoice amount in domestic currency without VAT.
domesticCurrencyAmountVAT number($float) Invoice amount in domestic currency with VAT.
domesticCurrencyTotal number($float) Invoice total amount in domestic currency.
domesticCurrencyRounding number($float) Invoice rounding, difference between domestic currency total and domestic currency amount with VAT.
domesticCurrencyRate number($float) Domestic currency rate is used to calculate domestic currency amounts.
industryName string Industry name.
ownerName string Owner name.
ownerId integer Owner ID.
ownerBpName string Owner business partner name.
ownerBpBriefName string Owner business partner brief name.
documentSync object An arbitrary JSON object, holding the document synchronization data. It is returned if syncStatus is done, error, misc, exported or invalid.
Example: "documentSync": { "propertyA": "value A", "propertyB": "value B" }.

4.3 BillingBalance

BillingBalance object properties:

BillingBalance is Invoice Condition which an invoice is associated to.

Name Type Description
id integer The ID is the unique key for the Invoice Condition.
name string The Invoice Condition name.
resourceUrl string Billing API URL that should be used to load billing balance resource.

4.4 InvoiceClearingRecordCollection

InvoiceClearingRecordCollection object properties:

Name Type Description
data (required) array Array of InvoiceClearingRecord objects.
meta (required) object CollectionMeta object.

4.5 InvoiceClearingRecord

InvoiceClearingRecord object properties:

Name Type Description
id integer Invoice ID.
clearingId integer Clearing ID.
clearingTypeId integer Clearing type ID.
clearingTypeCodeName string Clearing type code name.
recordDate string($date) Clearing record date.
paymentTypeId integer Payment type ID.
paymentTypeName string Payment type name.
amountIncrement number($float) Amount increment.
paidAmount number($float) Paid amount.
paymentReference string Payment reference.
comment string Comment.
status string Clearing record status.
statusDate string($date‑time) Status date.
revokeUserId string Revoke user ID.
revokeUserName string Revoke username.
revokeComment string Comment on revocation.
bankAccountId integer Reference to bank account which money was received or paid to.
bankAccountName string Bank account name.
bankAccountNumber string Bank account number.
bankAccountIban string Bank account IBAN.
bankAccountSwiftBic string Bank account SWIFT/BIC code.

4.6 InvoiceClearingRecordPost

InvoiceClearingRecordPost object properties:

Name Type Description
clearingTypeId integer Clearing type ID.
recordDate string($date) Clearing record date.
paymentTypeId integer Payment type ID.
amountIncrement number($float) Amount increment.
paidAmount number($float) Paid amount.
paymentReference string Payment reference.
comment string Comment.
bankAccountId integer Reference to bank account which money was received or paid to.

4.7 InvoiceClearingRecordUpdate

InvoiceClearingRecordUpdate object properties:

Name Type Description
clearingTypeId integer Clearing type ID.
recordDate string($date) Clearing record date.
paymentTypeId integer Payment type ID.
amountIncrement number($float) Amount increment.
paidAmount number($float) Paid amount.
paymentReference string Payment reference.
comment string Comment.
revokeUserId string Revoke user ID.
revokeUserName string Revoke username.
revokeComment string Comment on revocation.
bankAccountId integer Reference to bank account which money was received or paid to.
JSON Example
{
  "clearingTypeId": 0,
  "recordDate": "2024-01-23",
  "paymentTypeId": 0,
  "amountIncrement": 0,
  "paidAmount": 0,
  "paymentReference": "string",
  "comment": "string",
  "revokeUserId": "string",
  "revokeUserName": "string",
  "revokeComment": "string",
  "bankAccountId": 0
}

4.8 PaymentTypeCollection

PaymentTypeCollection object properties:

Name Type Description
data (required) array Array of PaymentType objects.
meta (required) object CollectionMeta object.

4.9 PaymentType

PaymentType object properties:

Name Type Description
id integer Payment type ID.
name string Payment type name.
status string Payment status. Possible values: active, inactive.
statusDt string($date‑time) Date and time of payment status.
JSON example
{
  "data": [
    {
      "id": 0,
      "name": "string",
      "status": "active",
      "statusDt": "2021-03-11T12:29:43.054Z"
    }
  ],
  "meta": {
    "pagination": {}
  }
}

4.10 BankAccountCollection

BankAccountCollection object properties:

Name Type Description
data (required) array Array of BankAccount objects.
meta (required) object CollectionMeta object.

4.11 BankAccount

BankAccount object properties:

Name Type Description
id integer Bank account ID.
bizPartnerId integer Business partner ID. maxLength: 10.
bizPartnerName string Business partner name.
bizPartnerBriefName string Business partner brief name.
bizBankId integer Bank ID. maxLength: 10.
bizBankName string Bank name.
currency integer Currency. maxLength: 5.
currencyCode string Currency code.
currencyName string Currency name.
accountNumber string Account number. maxLength: 40.
iban string Account IBAN. maxLength: 50.
isDefaultPerCurrency string Determines if an account will be default for bizPartnerId and currency. Only one account can be default. Possible values: yes, no.
status string Bank account status.
statusDt string($date‑time) Bank account status date and time.
name string Bank account name.
swiftBic string Bank account SWIFT/BIC code. maxLength: 30.
accountType string Account type. Possible values: account number, iban.
countryName string Country name.
ownerId integer Owner ID.
ownerBpName string Owner business partner name.
ownerBpBriefName string Owner business partner brief name.
JSON example
{
  "data": [
    {
      "id": 0,
      "bizPartnerId": 0,
      "bizPartnerName": "string",
      "bizPartnerBriefName": "string",
      "bizBankId": 0,
      "bizBankName": "string",
      "currency": 0,
      "currencyCode": "string",
      "currencyName": "string",
      "accountNumber": "string",
      "iban": "string",
      "isDefaultPerCurrency": "yes",
      "status": "active",
      "statusDt": "2021-03-11T12:56:00.268Z",
      "name": "string",
      "swiftBic": "string",
      "accountType": "account number",
      "countryName": "string",
      "ownerId": 0,
      "ownerBpName": "string",
      "ownerBpBriefName": "string"
    }
  ],
  "meta": {
    "pagination": {
      "total": 0,
      "count": 0,
      "perPage": 0,
      "currentPage": 0,
      "totalPages": 0
    }
  }
}

4.12 PlatformOwnerBankAccountPost

PlatformOwnerBankAccountPost object properties:

Note: accountNumber is required field if accountType is account number and iban is required if accountType is iban. isDefaultPerCurrency determines an account that will be default for same bizPartnerId and currency. Only one account can be default. It's set automatically.

Name Type Description
name (required) string Bank Account name. maxLength: 100.
bizBankId (required) integer Bank ID. maxLength: 10.
currency (required) integer Currency. maxLength: 5.
accountNumber (required) string Account number. maxLength: 40.
iban (required) string Account IBAN. maxLength: 50.
isDefaultPerCurrency string Determines if an account will be default for bizPartnerId and currency. Only one account can be default. Possible values: yes, no.
swiftBic string Bank account SWIFT/BIC code. maxLength: 30.
accountType (required) string Account type. Possible values: account number, iban.
coOwnerId integer Co-Owner ID. maxLength: 10.

4.13 PlatformOwnerBankAccountPut

PlatformOwnerBankAccountPut object properties:

Note: accountNumber is required field if accountType is account number and iban is required if accountType is iban. isDefaultPerCurrency determines an account that will be default for same bizPartnerId and currency. Only one account can be default. It's set automatically.

Name Type Description
name (required) string Bank Account name. maxLength: 100.
bizBankId (required) integer Bank ID. maxLength: 10.
currency (required) integer Currency. maxLength: 5.
accountNumber (required) string Account number. maxLength: 40.
iban (required) string Account IBAN. maxLength: 50.
isDefaultPerCurrency string Determines if an account will be default for bizPartnerId and currency. Only one account can be default. Possible values: yes, no.
swiftBic string Bank account SWIFT/BIC code. maxLength: 30.
accountType (required) string Account type. Possible values: account number, iban.

4.14 Error

Error object properties:

Name Type Description
code (required) integer($int32) Error code.
message (required) string Error message.
JSON Example
{
  "Code": 0,
  "Message": "string"
}

4.15 CollectionMeta

CollectionMeta object properties:

Name Type Description
pagination (required) object CollectionMetaPagination object.

4.16 CollectionMetaPagination

CollectionMetaPagination object properties:

Name Type Description
total (required) integer Total number of rows.
count (required) integer A number of rows in the current page.
perPage (required) integer The maximum rows per page.
currentPage (required) integer The current page number.
totalPages (required) integer Total number of pages.
links (required) object CollectionMetaPaginationLinks object.

4.17 CollectionMetaPaginationLinks

CollectionMetaPaginationLinks object properties:

Name Type Description
first string Link to the first page.
last string Link to the last page.
prev string Link to the previous page.
next string Link to the next page.
JSON example
"meta": {
    "pagination": {
      "total": 0,
      "count": 0,
      "perPage": 0,
      "currentPage": 0,
      "totalPages": 0,
      "links": {
        "first": "string",
        "last": "string",
        "prev": "string",
        "next": "string"
      }
    }
  }