Wat is de uitdaging?
Omdat THINGS IO voor klanten met de Visma API werkt en zelf ook kleine interne applicaties bouwt waarbij we direct willen linken naar bijvoorbeeld een verkooporder, is het noodzakelijk om een andere manier te gebruiken om direct te linken naar onderdelen van Visma. In dit geval een verkooporder.
Wat heb je nodig?
We hebben een aantal zaken nodig:
- Visma login;
- Een verkooporder nummer;
- De Tenant ID.
Eerst de company ID vinden
Om de company ID te kunnen zien moet je administrator toegang hebben voor de Admin module. Dit was helaas even zoekwerk maar dit nummer staat in de Admin instellingen.
De URL maken
Als je een URL wilt samenstellen die bijvoorbeeld direct linkt naar een Verkooporder dan moet je rekening houden met het volgende:
- de URL is niet wat je precies ziet in het scherm als je bent ingelogd;
- het is niet altijd heel snel;
- een deel vd URL moet je encoden;
- je hebt de company ID nodig.
We kiezen uit het overzicht het Verkooporder nummer SO240641.
De basis URL
De URL die je in de interface ziet van Visma is niet de URL die je kunt gebruiken om direct te linken. Dit zal een paar dagen werken maar dan stopt het. Dit heeft te maken met het gebruik van een versienummer in de URL, wat mij betreft een zeer ongelukkige keuze.
Dit is bijvoorbeeld op dit moment de URL: https://finance.visma.net/1015011001/(W(2)) Visma gaf in eerste instantie aan om dan maar te proberen dit versienummer elke keer tevoorschijn te toveren maar dat is niet echt een optie. Deze moet je dan uit de Swagger file zien te vissen en gebruiken.
De juiste basis URL is: https://finance.visma.net/selector?OdpCompanyId=
Achter de OdpCompanyId heb je het nummer nodig wat ik eerder heb aangegeven, dat is dus nog even zoeken.
Het tweede deel van de URL (encoded)
Het tweede deel vd URL is het belangrijkste en je moet goed opletten dat je dit via enoding doet. Voor de Verkooporder heb je de volgende query parameters nodig:
- ScreenID;
- OrderType;
- OrderNbr
Deze kun je ook vinden in de originele URL van Visma: ScreenId=SO301000&OrderType=SO&OrderNbr=SO240641
Echter, deze moet je wel voorzien van encoding. Dat kun je doen via bijvoorbeeld de site https://www.urlencoder.org/
Vervolgens krijg je de volgende URL: https://finance.visma.net/selector?OdpCompanyId=<companyid>&UrlParams=%3FScreenId%3DSO301000%26OrderType%3DSO%26OrderNbr%3DSO240641
Conclusie
Het is goed te doen maar het is even zoekwerk. Zoals vaker bij Visma kost het soms veel tijd zaken uit te zoeken. Er is documentatie en er is een forum maar het kost allemaal tijd want er zit niet altijd veel snelheid in. Uiteindelijk lukt het allemaal wel als je de juiste contacten hebt.
Visma is een groot bedrijf en ze moeten rekening houden met al hun klanten. Daarnaast is het te merken dat dit geen API first bedrijf is. De software is ooit ontwikkeld en op basis daarvan is een API gemaakt. Dit in tegenstelling tot een andere klant van ons, whitesky.cloud.