- The header name is
X-Webhook-Signature
; - The header value format is
t=<timestamp>,v0=<base64 encoded signature>
, where the timestamp is in milliseconds;
- Parse the signature header to extract the
timestamp
andbase64 encoded signature
- Join
timestamp
with theraw http request body data
with a dot (.
), and generate aSHA256
digest; - Perform a strict base64 decoding on the
based64 encoded signature
to get thedecoded signature
; - Verify the signature using the per-endpoint
public key
,digest
(from Step 2), anddecoded signature
(from Step 3
To avoid replay attacksBridge advises the receiving endpoint to disregard events that are older than a few minutes, e.g. 10 minutes, and return a 400 status to request retries. For each event delivery retry, Bridge generates a new timestamp.