Werken met de Visma.net API webhooks
Op dit moment is things.io druk bezig met een project om onderdelen van de Visma.net API te koppelen aan andere systemen. Omdat we in dat project niet teveel willen “luisteren” als er nieuwe gegevens zijn willen we webhooks implementeren.
Een webhook, wat was dat ook alweer?
In de kern, webhooks zijn door de gebruiker gedefinieerde HTTP-callbacks die real-time communicatie tussen verschillende webapplicaties mogelijk maken. Ze stellen toepassingen in staat zich te abonneren op bepaalde gebeurtenissen en meldingen te ontvangen wanneer deze gebeurtenissen zich voordoen. Daardoor webhooks geautomatiseerde, asynchrone updates tussen toepassingen mogelijk, zodat er geen constante handmatige interventie of herhaalde polling nodig is.
Een veel voorkomende toepassing van webhooks is wanneer een toepassing updates wil ontvangen van een andere dienst. En dat is precies wat we willen.
Hoe willen we de Visma.net webhooks gebruiken?
We hebben een hele simpele use case. Als er een handmatige voorraad update is gedaan in Visma.net dan moet een WMS deze update ook overnemen via een webhook.
Om dit aan de praat te krijgen zijn er een aantal voorwaarden:
- je moet een developer account hebben bij Visma.net;
- je moet een service applicatie hebben binnen de Visma.net developer portal;
- een Visma.net administratie moet uitgenodigd zijn.
Authenticatie naar de Visma.net api
Hoewel we er vanuit gaan dat je weet hoe dit moet leggen we het nog wel even kort uit.
- je moet een POST doen naar https://connect.visma.com/connect/token;
- je gebruikt form-urlencoded;
- je vult: grant_type, scope,client_id,client_secret en tenant_id in.
Overzicht webhook types
Om wat duidelijkheid te krijgen over de beschikbare webhooks is het verstandig om eerst een aanroep te doen naar https://integration.visma.net/API/resources/v1/event
Met deze methode krijg je te zien op welke onderdelen van Visma.net er standaard webhooks mogelijk zijn. Hieronder zie je een overzicht van het resultaat:
Overzicht aangemaakte webhooks
Wat je nu wilt doen is kijken of er al webhooks zijn aangemaakt. Daarvoor roepen we https://integration.visma.net/API/resources/v1/subscription aan.
Deze kan het volgende resultaat geven als er iets aangemaakt is:
Webhook aanmaken
Dit is de realdeal. Als je een webhook wilt aanmaken dan roep je via een POST de volgende URL aan: https://integration.visma.net/API/resources/v1/subscription
We doen dit wederom in de body maar dan met een json structuur. Zie het Postman screenshot hieronder.
Je kunt een webhook URL van Make.com of Zapier gebruiken om het voor elkaar te krijgen.
Als we dit gedaan hebben dan zal elke voorraad verandering naar deze URL worden gestuurd.