Skip to content
Stratos Help Center

Webhooks

Get signed, real-time HTTP notifications in your own systems when things change in Stratos.

A webhook sends an HTTP request to a URL you choose whenever something happens in your workspace, such as a campaign being created or a screen being added. Use it to update other systems or trigger automations.

Where to find it: Settings → Webhooks. You need developer_integrations:read to view and developer_integrations:write to manage (by default the Account Owner). Webhooks are a plan feature.

Webhooks

  1. Click Create webhook.
  2. Enter a Name (for example Zapier integration).
  3. Enter the Endpoint URL, an HTTPS address that will receive events (https://example.com/webhook).
  4. Choose which Events to send.
  5. Save.
EventSent when
Campaign: Created / Updated / Deleted (campaign.*)A campaign changes.
Screen: Created / Deleted (screen.*)A screen is added or removed.
Subscription: UpdatedYour subscription changes.
Integration: RequestedA custom integration is requested.
Buyer: RequestedAn advertiser buyer request is made.
All events (*)Everything above, including events added later.

Choose a group such as screen.* to receive every event of that kind.

When you create a webhook, a signing secret is shown once (Copy this secret now). Store it safely. Your receiving server uses it to verify that each request really came from Stratos and wasn’t tampered with.

If the secret is lost or exposed, choose Rotate Secret. A new secret is generated and the old one stops working, so update your server straight away.

Each webhook shows its URL, events and state. Use the row menu to:

  • Edit its name, URL or events.
  • Test sends a sample event to your URL to confirm it’s reachable (Test event sent, or Test event failed with details).
  • Rotate Secret.
  • Switch it Active or Inactive. An inactive (paused) webhook sends nothing until you turn it back on.

The Delivery Log shows each attempt: the event, its status, how many tries, the response code from your server and any error. Use it to debug a receiver that isn’t responding. Failed deliveries are retried automatically.

Every request is a POST with a JSON body and three headers:

HeaderValue
Stratos-Webhook-IdA unique ID for the event. Use it to ignore duplicates.
Stratos-Webhook-TimestampUnix time in seconds when the request was signed.
Stratos-Webhook-Signaturev1= followed by a hex HMAC-SHA256 of {timestamp}.{raw body}, using your signing secret as the key.

To verify: compute the HMAC of the timestamp, a dot and the exact raw request body with your secret, and compare it to the signature in constant time. Reject requests whose timestamp is far from the current time, to block replays.

A delivery succeeds when your endpoint answers with a 2xx status. Otherwise Stratos retries with growing delays (doubling each time, up to an hour) for up to 10 attempts before marking it failed. The Delivery Log shows the attempts.

If the webhook is Inactive, or your plan no longer includes webhooks, deliveries are not sent.

  • Respond quickly with a 2xx and do heavy work afterwards.
  • Verify the signature before trusting a request.
  • Expect duplicates. Retries mean an event can arrive more than once, so make your handler safe to run twice (use Stratos-Webhook-Id).