My Products
Help

[Release Notes] - Visma.Net API 8.21 - 12.05.2020

by Yıldırım
Release Notes Documentation
Forced pagination in Subaccount endpoint
Now, there is forced pagination in the Subaccount endpoint:
- If no pagination is specified, only 100 records will be returned
- If pagination is used but the max. page size is more than 100, then only 100 records will be returned
- maxPagesize info has been added as metadata in response
Forced pagination in Inventory endpoint
(Postponed due to recently discovered issues)
Now, there is forced pagination in the Inventory endpoint:
- If no pagination is specified, only 100 records will be returned
- If pagination is used but the max. page size is more than 100, then only 100 records will be returned
- maxPagesize info has been added as metadata in response
Forced pagination in CustomerInvoice endpoint Now, there is forced pagination in the CustomerInvoice endpoint:
- If no pagination is specified, only 100 records will be returned
- If pagination is used but the max. page size is more than 100, then only 100 records will be returned
- maxPagesize info has been added as metadata in response
Add forced pagination on customerdocument endpoint Now, there is forced pagination in the SalesOrder endpoint:
- If no pagination is specified, only 100 records will be returned
- If pagination is used but the max. page size is more than 100, then only 100 records will be returned
- maxPagesize info has been added as metadata in response
Forced pagination in SalesOrder endpoint Now, there is forced pagination in the SalesOrder endpoint:
- If no pagination is specified, only 100 records will be returned
- If pagination is used but the max. page size is more than 100, then only 100 records will be returned
- maxPagesize info has been added as metadata in response
Customers purchase order and purchase order line in EDI process We have added a new field called External link in the Sales orders, Shipment and Customer invoice windows and endpoints.
The value in External link is moved between these windows via the actions:
From Sales orders to Shipment when the action Create shipment is done, and from Shipment to Customer invoice when Prepare invoice is done. This applies both to UI and API.
The field is only editable in the Sales orders window and the SalesOrder endpoint. In other places it is read only.
New replacement for the 'GeneralLedgerBalance' endpoint The 'GeneralLedgerBalance' endpoint is deprecated and will be removed in August 2020.
A new endpoint was created to replace it. The documentation for it can be found on Swagger under the 'GeneralLedgerBalanceV2' endpoint.
Update projects with tasks with restrictedEmployee when using PUT API endpoint You are now able to update projects that have tasks with restrictedEmployee when using the PUT API endpoint: /controller/api/v1/project/{projectId} and /controller/api/v1/project/internal/{internalId}
The field Active available via Subaccount endpoint The field Active is now exposed in the Subaccount endpoint. You can also filter on this field.
This field will also be visible in all endpoints where SubaccountDTO is linked, for example, to customer invoice and supplier invoice.
See the swagger documentation for more information.
The field freightCost available via Shipment endpoint You are now able to POST/PUT the field freightCost via the Shipment endpoint. See the swagger documentation for more information.
GET only projects and tasks with restrictedEmployee when using GET API endpoint You are now able to GET only the projects and tasks that have restrictedEmployee when using the GET API endpoint: /controller/api/v1/project
Create allocations in KitAssembly endpoint You have now the possibility to create and update Kit allocation via the KitAssembly endpoint. See the swagger documentation for more information.
Stock item and kit allocation via KitAssembly endpoint Allocations for stock items and kit allocation are now available via the KitAssembly endpoint.
See the swagger documentation for more information.
Created from available in KitAssembly endpoint The field Created from is now available in the KitAssembly endpoint. It is called SalesOrderLink.
See the swagger documentation for more information.
POST projects with tasks with restrictedEmployee in POST API endpoint You are now able to POST projects that have tasks with restrictedEmployee when using the POST API endpoint: /controller/api/v1/project.
GET only projects and tasks with restrictedEmployee when using GET API endpoint You are now able to GET only the projects and tasks that have restrictedEmployee when using the GET API endpoint: /controller/api/v1/project/tasks
GET/POST/PUT notes on header and line in ProjectTransaction endpoint You are now able to GET/POST/PUT notes on header and line in the ProjectTransaction endpoint. See swagger documentation for more information.
Get and edit notes in Supplier endpoint You are now able to GET/POST/PUT notes in the Supplier endpoint.
See the swagger documentation for more information.
GET and POST Project Cost and Revenue Budget via ProjectBudget endpoint (PM309000) You are now able to GET and POST Project Cost Budget via the ProjectBudget endpoint.
See swagger documentation for more information.
Use internal employee ID to set Project manager on a project through API Now, you can use the internal employee ID to set a project manager on a project through the Project endpoint.
GET/POST/PUT salespersons via SalesPerson endpoint You are now able to GET/POST/PUT salespersons via the SalesPerson endpoint.
See the swagger documentation for more information.
Creating new Customer invoices through API optimised There are new API v2 endpoints for POST:
CustomerInvoice, CustomerCreditNote, and CustomerDebitNote have been optimised for performance. Testing with 1920 lines and setting 6 fields for each line gives 7.5 times better performance. Setting more fields for each line will give further improvement of the performance.
New fields available via GET/POST/PUT in InventoryTransfer endpoint The following fields are now available via GET/POST/PUT in InventoryTransfer endpoint.
- Allocations
- Lot/Serial number
- Expiration date
See swagger documentation for more information.
New endpoint for General Ledger Balances created A new version of 'GeneralLedgerBalance' is implemented. The data format is the same as the previous one, but there are some key changes related to how to use the new endpoint.


A new parameter is introduced: LastModifiedDateTime
It is mandatory to provide at least one of the parameters: LastModifiedDateTime and/or PeriodId.


When the LastModifiedDateTime parameter is set, only the balances changed since the provided date and time will be exported. This implementation will improve the performance on the client-side since the amount of data to be fetched is significantly reduced. The consequence of this implementation is that a balance for a combination (of account, subaccount, ledger, branch, period) will not be generated - if the balance on that financial period was not changed and no record is registered for it.


If the client still needs the balances for all combinations (of account, subaccount, ledger, branch, period) even though it was not changed in a certain period, there are three options:


- If the endpoint exported no balance for a certain financial period, then identify the balance of the closest financial period smaller than the financial period under discussion, and construct your current balance based on that. This is the most appropriate solution for integrations saving the data on their own database. It is a win-win solution for both Visma.net ERP and the integrator.


- Use the LastModifiedDateTime parameter on a daily basis. At the beginning of each month; call once the endpoint with the upcoming month as the period parameter, so all balances are generated. This is the second most recommended solution.


- Use the endpoint without the LastModifiedDateTime parameter and get balances period by period. This is not recommended since you will never know which data was changed, and you will get all of it each time even though most of it is already on your side.


Pagination is enforced, and the maximum page size is 100.
If the page size is not provided or it is greater than 100, then it will be automatically set to 100.
If the page number is not provided, then it will be automatically set to 1.


Note: The old endpoint will be marked as deprecated and will be removed in three months.
The field Account group retrieved in Account endpoint In the Account endpoint, the field Account group in the Chart of accounts (GL202500) window was not retrieved at all. This has now been fixed.
PayDate is not updated in accordance to the supplier's payment settings In the SupplierInvoice endpoint, sending a dueDate without payDate set dueDate as per request, but incorrectly set payDate according to creditTerms and not leadDays settings on the supplier as intended.
This issue has now been fixed.
GET ProjectTransaction does not return lastModifiedDateTime The GET API call now returns the lastModifiedDateTime for project transactions for the ProjectTransaction endpoint.
O2C endpoints return wrong error as response status code In version 8.20, the O2C endpoints returned error 500 while it should have returned error 400 as the response status code.
This has now been fixed.
Order By filter in PaymentMethod endpoint removed The Order By filter in the PaymentMethod endpoint was not functional and now it has been removed.
Order By filter in Account endpoint removed The Order By filter in the Account endpoint was not functional and now it has been removed.
Order By filter in JournalTransaction endpoint removed The Order By filter in the JournalTransaction endpoint was not functional and now it has been removed.
Trailing spaces on item IDs in shipment allocation In version 8.20, trailing spaces on item IDs in allocation and trailing spaces in inventory numbers in the ShipmentDetailLines were not working correctly in the Shipment endpoint.
This has now been fixed.
Order By filter in Ledger endpoint removed The Order By filter in the Ledger endpoint was not functional and now it has been removed.
Corrections in API documentation In the API documentation, it was wrongfully documented that filtering on account was mandatory. This has now been corrected.
Also, if you specified an invalid account, all the transactions were returned. This has also been fixed so that no records are returned.
Wrong window ID in Swagger documentation for SalesCategory Earlier, the Swagger documentation for the endpoint GET SalesCategory was referring to window ID SO301000 (Sales order). This was wrong. This has now been corrected and the documentation is now referring to the correct window ID, which is IN204060 (Item sales categories).
Duplicates from paging over "GeneralLedgerTransactions" using "lastModifiedDate" parameter When using the LastModifiedDateTime filter in the GeneralLedgerTransactions endpoint, entries are now sorted by:
BatchNbr, Module, LineNbr and LastModifiedDateTime.


For all other cases the ordering is done by:
TranDate, RefNbr, BatchNbr, Module, LineNbr.


This new sorting regime will avoid duplicates from paging and differently sorted results for repeated queries with the same filter settings.