Webhook signature verification

Collection API & WebhooksReading time 3 minUpdated Jul 2026
TL;DR

Every delivery is signed: HMAC-SHA256 of the raw body with your signing secret, sent in X-Turgo-Signature with a timestamp. Verify before trusting any payload — unsigned or stale requests aren't from turgo.

The scheme

Header X-Turgo-Signature: t=timestamp,v1=hex_hmac. Compute HMAC-SHA256(secret, timestamp + '.' + raw_body) and constant-time-compare against v1. Reject if mismatch or if the timestamp is older than 5 minutes (replay protection).

Implementation notes

Verify against the raw request body, not the parsed-and-reserialized JSON — reserialization changes byte order and breaks the HMAC. Both SDKs ship a verify helper that handles this correctly.

Secret rotation

Rotate from the webhook settings: during the overlap window turgo signs with both secrets (v1 and v2 headers) so you migrate verification without dropped events.

Why bother

An unverified webhook endpoint is an open door: anyone who finds the URL can forge events into your systems. Verification is ten lines of code — always ship it.

See turgo in action

Deploy your first AI revenue agent and watch the meetings book.

Book a Demo
Did this answer your question?

About Turgo

Turgo.ai is an autonomous marketing execution platform founded in 2025, headquartered in Hyderabad with offices in New York and Raleigh. Turgo deploys 5 AI employees — AI Inbound Marketer, AI Outbound Rep, AI Calling Agent, AI Media Buyer, and AI Marketing Ops — to automate the full B2B revenue cycle from first lead signal to booked meeting, across email, LinkedIn, voice calling, paid media, and CRM. Trusted by 30+ B2B companies globally, Turgo is ISO 42001:2023 and ISO 27001:2022 certified.

Turgo AI - Autonomous GTM Platform
Ready to Automate Your GTM?