Webhook Events

Payout due

A billing window became due, as the Due tab shows it (windows with nothing to pay are left out). Reported in a morning pass at around 06:40 in the campaign's zone, once the window's views have closed (views count by UTC day, so a period's views close at the end of the UTC day its last instant falls on): the morning after the close, or, east of about UTC+6:40, where they close later in the morning, right after the close. A window that becomes due again (after a withdrawal or a reinstatement) comes with a higher generation. Windows already due when you subscribed are not reported; GET /payouts/due lists them.

postWebhookpayout.due

Headers

webhook-idstring required
Example:whevt_A1b2C3d4E5f6

The event id; the same on every retry of this event. Dedupe on it.

webhook-timestampstring required
Example:1790332496

Unix seconds of this delivery attempt (re-signed on every retry). Reject values more than 5 minutes off.

webhook-signaturestring required
Example:v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4=

Space-separated v1,<base64 HMAC-SHA256 of "<webhook-id>.<webhook-timestamp>.<body>"> signatures, one per active signing secret (two during a rotation). Verify with any Standard Webhooks library.

Payload

idstring required

Event id; the webhook-id header. The same on every retry: dedupe on it.

type'payout.due' required
timestampstring date-time required

When the change happened

organizationIdstring required

Example payload

{
  "data": {
    "window": {
      "timeZone": "UTC"
    }
  }
}

Response

Any 2xx within 15 seconds acknowledges the event. Anything else, a timeout or a redirect is retried (10 attempts over about 3 days); 410 disables the endpoint.

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.