How it works
Manus signs each request using RSA-SHA256 (2048-bit key). Your server verifies the signature with our public key.1
Extract headers
Read
X-Webhook-Signature and X-Webhook-Timestamp from the incoming request.2
Check timestamp
Reject requests older than 5 minutes to prevent replay attacks.
3
Reconstruct the signed content
Concatenate:
{timestamp}.{url}.{sha256_hex(body)}4
Verify signature
Verify the signature using the public key.
Request headers
Signature format
The signature is computed over this string:
Example:
Get the public key
Fetch the public key from the webhook.publicKey endpoint:Verification examples
- Python
- Node.js
- Go