Centrali can store webhook events from any provider that sends HTTP POST requests. The signature settings are configurable per trigger, so each provider gets its own verification rules — Stripe, GitHub, Shopify, Twilio, or anything else. This walkthrough uses GitHub as the example: one function, one trigger, signature verification, permanent storage. The same pattern works for any provider. How GitHub Webhook Signatures Work GitHub signs every webhook delivery with HMAC-SHA256. The signature arrives in the x-hub-signature-256 header, prefixed with sha256= : x-hub-signature-256: sha256=d57c68ca6f92289e6987922ff26938930f6e66a2d161ef06abdf1859230aa23c Enter fullscreen mode Exit fullscreen mode This is different from Stripe's compound header ( t=...,v1=... ), which is why signature settings are per-trigger rather than a global config. Every provider has its own format. Step 1: Write the Store Function In the Centrali console, go to Logic > Functions and create a new function called Store GitHub Event .…