Webhooks

Een endpoint registreren

Als u liever wordt aangeroepen dan een socket open te houden, registreer dan een HTTPS-endpoint. We POSTen elke overeenkomende gebeurtenis als dezelfde JSON-envelop, ondertekend met HMAC-SHA256 over de ruwe body in X-XSF-Signature.

registreren — het geheim wordt één keer getoond
curl -X PUT https://api.xsignalfeed.com/v1/account/webhook \
  -H "Authorization: Bearer xsf_your_key" -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/hooks/xsf"}'

Een levering verifiëren

Verifieer over de ruwe body. Het opnieuw serialiseren van de geparseerde JSON verandert de bytes en de handtekening zal nooit overeenkomen. Lees de body als bytes voordat iets anders hem aanraakt.
import hmac, hashlib

def valid(raw_body: bytes, signature: str, secret: str) -> bool:
    want = hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(want, signature)

Nieuwe pogingen en herstel

We proberen het drie keer opnieuw bij een niet-2xx of een time-out, en laten die levering daarna vallen. Niets blijft eeuwig in de wachtrij. Als uw endpoint niet bereikbaar was, neem dan de laatste sid die u hebt opgeslagen en haal de achterstand in met GET /v1/events of een WebSocket met replay — dat, en niet het herhaalbeleid, is het echte herstelpad.