Analysis leads to the conclusion that the order of rows returned by Visma.NET is inconsistent, leading to paged data to be returned in an unexpected manner. For example, when fetching the financial periods, this request is being made (note the page size of 1):
https://integration.visma.net/API/controller/api/v1/financialPeriod?numberToRead=1&skipRecords=0
Response (on a test environment):
[
{
"year":2022,
"period":"202202",
"startDate":"2022-02-01T00:00:00",
"endDate":"2022-02-28T00:00:00",
"description":"februari",
"active":true,
"closedInSupplierLedger":false,
"closedInCustomerLedger":false,
"closedInInventoryManagement":false,
"closedInGeneralLedger":false,
"closedInCashManagement":false,
"closedInFixedAssets":false
}
]
When fetching the next page, we have to increase the value of skipRecords
with 1
. Resulting in the URL https://integration.visma.net/API/controller/api/v1/financialPeriod?numberToRead=1&skipRecords=1
.
As you can see the result is identical:
[
{
"year":2022,
"period":"202202",
"startDate":"2022-02-01T00:00:00",
"endDate":"2022-02-28T00:00:00",
"description":"februari",
"active":true,
"closedInSupplierLedger":false,
"closedInCustomerLedger":false,
"closedInInventoryManagement":false,
"closedInGeneralLedger":false,
"closedInCashManagement":false,
"closedInFixedAssets":false
}
]
So, concluding, this is a bug in Visma.NET Financials/ERP.
Suggestion is to report this issue to Visma.NET Support as behavior deviating from the API-specifications. Please note that we have informally been informed that Visma.NET in the Netherlands might be paused for further development and use by accounting firms. Visma can inform you more accurately about the actual state of the product.
We will ask a question regarding this issue on the developer forums, but there is no guaranteed response time and/or solution time. In case we acquire additional information or an additional viable workaround, an answer will be added.
Please note that Visma.net has had various breaking changes over the last years with paging. It seems to be a sensitive logic with various exceptions. Ultimately, all these issues have been fixed by Visma.