Webhooks in GoedGepickt
In deze handleiding leggen we uit hoe webhooks werkt in GoedGepickt.
Met webhooks is het mogelijk om vanuit GoedGepickt notificaties te krijgen op het moment dat er een bepaalde actie plaatsvindt in GoedGepickt. Deze notificaties worden gestuurd naar een door jou ingestelde URL met daarin data zodat de URL deze data weer kan verwerken.
Het voordeel hiervan is, is dat jouw systeem realtime op de hoogte wordt gebracht bij dergelijke acties. Hierdoor hoef je dus niet periodiek de API aan te roepen om data te ontvangen (pollen), maar brengen wij jou op de hoogte van wijzigingen.
Webhooks aanmaken
Je kan webhooks aanmaken via Instellingen -> Webhooks. Hierin kan je per webshop een webhook-URL (target URL) instellen en daarbij ook op welk event je wilt aanmelden. Bijvoorbeeld bij voorraadwijzigingen, bestellingstatus bijwerkt en zending aangemaakt.
Na het toevoegen, zie je een validatiesleutel. Dit is een sleutel waarmee je kan controleren of de data volledig is en er niet mee is geknoeid.
Logboek
Via Instellingen -> Webhooks -> Webhook logs (bovenin je scherm) kan je de pagina vinden waarin alle webhooks worden geregistreerd.
In GoedGepickt houden we een logboek bij met alle webhooks die uitgevoerd zijn in jouw account. Hierin zie je welk event er is uitgevoerd, op welke datum & tijd, welke HTTP statuscode wij als reactie terugkregen, het poging-nummer en de payload die met de webhook meegestuurd is.
Door op het item te klikken, krijg je meer informatie te zien, zoals welke URL er is aangeroepen en wat jouw omgeving als response aan ons teruggaf. Bijvoorbeeld als je een foutmelding als response geeft.
Gemiste webhooks
Indien de HTTP-status response niet gelijk is aan een 200-statuscode, dan probeert de server daarna nog 9 keer de webhook af te leveren (in totaal dus 10 pogingen). Hierin zit steeds een tussenpauze, om te voorkomen dat de endpoint overbeladen wordt met veel data. Tussen de eerste & tweede poging wachten we 10 seconde, tussen de derde en de vierde 100 seconden, tussen de vier en de vijfde 1000 seconden en zo voorts.
Op een gegeven moment sturen we een bericht met daarin een melding dat de webhook wordt uitgeschakeld indien de webhooks niet juist worden afgerond. Je kan, na het oplossen van het probleem, de webhook weer inschakelen.
We verwachten dat de ontvangende URL binnen 10 seconden een reactie geeft met statuscode 200. Als er binnen deze tijd geen reactie komt, wordt het verzoek afgebroken en opgeslagen in de webhook-logs met statuscode 0.
Webhooks valideren
Je wilt natuurlijk graag zeker weten dat de webhooks die je ontvangt, ook echt vanuit GoedGepickt komen. Je kan de hash (uit de headers) vergelijken met het volgende (voorbeeld in PHP);
$computedSignature = hash_hmac('sha256', $request->getContent(), $webhookSecret);
In de $webhookSecret kan je de secret van de webhook plaatsen, zoals je die in GoedGepickt terug kan vinden. Als $computedSignature gelijk is aan de signature header, dan is de webhook valide.
Tip
Als je wilt gaan testen hoe (snel) de webhooks naar jouw omgeving worden gestuurd, kan je online tools gebruiken als:
Vragen?
Zijn er toch nog onduidelijkheden, heb je andere vragen of ideeën? Neem dan contact met ons op, wij helpen je graag!