On February 6th at 10 PM Finnish time (UTC +2), Visma Severa had a production release. In this release a technical change was done introducing a new customer database for new organizations. This change was done to help with the performance issues we've experienced lately.
Unfortunately the change caused some unexpected issues. The biggest issue was that context was reset to default for all existing users and customers. Many things are stored in the context, for example information about which addons are used and several settings. One of the settings was the SOAP API GUID method.
Visma Severa's SOAP API generates two different kinds of GUIDs, depending when organization was created. New algorithm Rijndael was introduced two years ago to fix performance issues, since it lessened API server's CPU load by 30%. Organizations created since February 2018, have automatically gotten their GUIDs generated with Rijndael algorithm and organizations created before February 2018 have gotten the GUIDs generated with RC2 algorithm.
When the context was reset to default in the release, SOAP API started to generate GUIDs with old RC2 algorithm for all organizations. This issue existed in the API from 6.2.2020 10 PM until 7.2.2020 5 PM UTC+2.
If integration between Visma Severa and the other system used GUID as unique identifier to map data and the GUID was stored in the other system, most of the data that was transferred from Visma Severa during the period when issue existed, got duplicated. For example customers, projects, users, products, business units and so on were affected. When it comes to invoices, they did not duplicate, but the incorrect GUID can affect future changes on the invoice, for example if integration tries to update paid status back to Visma Severa.
How to fix data?
If data was duplicated in the other system, delete the newly created entries. If the integration also updated data back into Visma Severa, such as new project or customer number or new user or product code, then manually fix the numbering in Visma Severa to match the original entry in the other system.
In order to fix invoice or invoice row GUIDs you need to use the SOAP API. Fetch invoice through the API, copy the GUID on invoice and invoice rows and paste in the other system. You need the API key used by the integration to check the invoices. Checking individual invoices is easy for example with a tool called SoapUI which has a free Open Source version.