Lobsite-Webhooks is de user agent van de webhooks die Lobsite verstuurt. Een Lobsite-site met een formulier kan elke inzending naar een webhookadres sturen dat de eigenaar in lobsite.toml heeft ingesteld, en deze verzoeken zijn die afleveringen. Zie je hem in je logs, dan heeft iemand de webhook van een formulier naar je server laten wijzen: meestal jijzelf, vanaf je eigen Lobsite-site.
Hoe een verzoek eruitziet
Elke geaccepteerde inzending die geen spam is, is één POST met een JSON-body:
POST /hooks/contact HTTP/1.1
Content-Type: application/json
User-Agent: Lobsite-Webhooks/1
X-Lobsite-Event: form.submission
X-Lobsite-Delivery: dlv_3m9q…
X-Lobsite-Signature: t=1760372438,v1=5257a869…
{
"type": "form.submission",
"id": "sub_8x2k…",
"site": "quiet-fox-4821",
"form": "contact",
"data": { "email": "ana@example.com", "message": "Hi!" },
"created_at": "2026-10-13T16:20:38Z"
}
Webhooks gaan alleen naar https://-adressen die niet naar privé- of interne netwerken verwijzen.
Controleer of een verzoek echt van Lobsite komt
De user agent kan worden vervalst, de handtekening niet. X-Lobsite-Signature bevat een tijdstempel t en v1, de hexadecimale HMAC-SHA256 van "<t>.<raw body>" met het webhookgeheim van het formulier, dat één keer in het Lobsite-dashboard wordt getoond. Bereken dezelfde waarde uit de ruwe body, vergelijk in constante tijd, en wijs een t af die ouder is dan 5 minuten.
import { createHmac, timingSafeEqual } from "node:crypto";
function verified(secret, header, rawBody) {
const { t, v1 } = Object.fromEntries(header.split(",").map((p) => p.split("=")));
if (Math.abs(Date.now() / 1000 - Number(t)) > 300) return false;
const expected = createHmac("sha256", secret).update(`${t}.${rawBody}`).digest("hex");
return v1?.length === expected.length && timingSafeEqual(Buffer.from(v1), Buffer.from(expected));
}
Herhaalpogingen
Een 2xx-antwoord binnen 10 seconden telt als afgeleverd. Al het andere wordt nog 5 keer geprobeerd: na 1 minuut, 5 minuten, 30 minuten, 2 uur en 12 uur. X-Lobsite-Delivery blijft bij de herhaalpogingen hetzelfde, dus je kunt een aflevering overslaan die je al hebt verwerkt.
Veelgestelde vragen
Hoe stop ik deze verzoeken?
Is de site van jou, haal webhook dan weg bij het formulier in lobsite.toml en deploy. Is hij niet van jou, antwoord dan met een fout: elke inzending wordt in totaal 6 keer geprobeerd en daarna weggegooid. Blijven ze komen, meld ze dan op de pagina Misbruik melden met de waarde van X-Lobsite-Delivery, en we kijken ernaar.
Welke abonnementen versturen webhooks?
Webhooks horen bij het Standard-abonnement. Sites op het gratis abonnement krijgen in plaats daarvan e-mailmeldingen. Zie de formulierdocumentatie.
Waarom krijg ik dezelfde inzending twee keer?
Je server antwoordde de eerste keer te traag of met een fout, dus werd het opnieuw geprobeerd. Sla afleveringen over waarvan je de X-Lobsite-Delivery al hebt gezien.