Skip to main content
Requesty signs the webhooks it sends to your endpoints so you can confirm that each delivery came from Requesty and was not modified in transit. Signatures follow the Standard Webhooks specification, so any Standard Webhooks or Svix library can verify them.
Manage your signing secret in the Requesty Console.

What Gets Signed

Every webhook sent on behalf of your organization is signed with your organization’s signing secret: Webhooks go out unsigned until your organization has a signing secret. Once a secret exists, Requesty never sends a delivery without its signature.
Slack and Microsoft Teams ignore the signature headers, so signing changes nothing for those destinations. Verification matters for your own JSON endpoints and sample request receivers.

Getting Your Signing Secret

Only organization admins can view or rotate the signing secret.
  1. Go to the Admin Panel and navigate to the Alerts tab
  2. Find the Webhook signing secret card
  3. Click the eye icon to reveal the secret, then the copy icon to copy it
Requesty generates a secret automatically the first time you save a webhook URL. If your organization has no secret yet, click Generate signing secret. The secret starts with whsec_. Store it like a password, for example in your secret manager or an environment variable such as REQUESTY_WEBHOOK_SECRET, and never commit it to source control.

Signature Headers

Each delivery includes these headers: Requesty signs each attempt again, so a retry carries the same webhook-id with a new webhook-timestamp and webhook-signature.

Verifying Signatures

Verify against the raw request body exactly as received. Parsing the JSON and serializing it again changes whitespace and key order, and the signature will no longer match.

With a Library

The Standard Webhooks libraries accept the whsec_ secret as shown in the console. They check the signature and reject timestamps more than 5 minutes from the current time.
Install with npm install standardwebhooks or pip install standardwebhooks. Libraries for other languages are listed on standardwebhooks.com. The Svix libraries verify the same signatures.

Manually

If you cannot use a library, compute the signature yourself:
  1. Build the signed content by joining the webhook-id, the webhook-timestamp, and the raw body with periods: {webhook-id}.{webhook-timestamp}.{body}
  2. Remove the whsec_ prefix from your secret and base64-decode the rest to get the signing key
  3. Compute the HMAC-SHA256 of the signed content with that key and base64-encode the result
  4. Split webhook-signature on spaces. Each entry has the form v1,{signature}. Accept the delivery if any v1 signature matches yours, using a constant-time comparison
  5. Reject the delivery if webhook-timestamp is more than 5 minutes from the current time, to protect against replayed requests

Handling Retries

Failed deliveries are retried, so your endpoint may receive the same message more than once. Use webhook-id to detect duplicates: store the IDs you have processed and skip any you have already handled.

Rotating the Secret

Rotate the secret on a schedule, or immediately if it may have been exposed.
  1. In the Webhook signing secret card, click the rotate icon
  2. Under Stop signing with the current secret, choose when the current secret is retired:
    • Immediately, use this if the current secret was exposed
    • After 1 hour, 2 hours, 4 hours, 8 hours, or 24 hours (the default)
  3. Click Rotate secret
The new secret takes effect for the next delivery. Until the grace period ends, every delivery carries a signature from each active secret in webhook-signature, so your endpoint keeps verifying with either the old or the new secret. Update your endpoint to the new secret before the grace period ends.
An organization can have at most 5 active signing secrets at once, counting the current secret and any still in their grace period. If you reach the limit, wait for one to expire or rotate with Immediately.

Spending Alerts

Configure spend thresholds and the webhook that receives alert notifications.

Sample Requests

Mirror a share of requests and responses to your webhook for analysis.
Last modified on October 21, 2026