How to verify event origin
Events from Archefusion carry thex-Archefusion-signature. This signature is an HMAC SHA256 hash of the Archefusion timestamp, event ID, and raw payload, joined together and signed with your webhook secret.
To verify an event, recreate the signature on your server and compare it to the one in the header. If they match, the event is genuinely from Archefusion.
Your webhook secret is generated when you set up your webhook in the dashboard. See the webhook setup page for details.
Best practices:
- Configure your webhook route to receive the raw request body (for example, using express.raw in Express), since verification requires the exact unparsed payload. Do not parse and restringify it, as any change in whitespace or key order will break verification.
- Ensure your webhook secret is not accessible in the frontend.
- Handle idempotency gracefully. A webhook may be delivered more than once, so deduplicate by event ID to avoid processing the same event twice.
-
Return a
200 OKresponse promptly, then handle heavier processing afterward. - Verify every event signature before acting on it.
How Archefusion sends events
When your webhook URL receives an event, it needs to parse and acknowledge the event. Acknowledging an event means returning a200 OK in the HTTP response. Without acknowledging it, Archefusion flags it as a failed attempt and retries delivery on the following schedule:
Attempt 1: Immediately
Attempt 2: After 30 seconds
Attempt 3: After 2 minutes
Attempt 4: After 10 minutes
Attempt 5: After 30 minutes

