Subscription
Subscriptions are managed in the OpenQuota admin UI (Settings → Webhooks). Each subscription has:- URL — where we POST events.
- Events — the event names this subscription is interested in. See below.
- Secret — shown once at creation. Use it to verify signatures. Lost secrets mean rotate the subscription.
Events
| Event | Fires when |
|---|---|
earning.created | A new earning row is written by the engine, typically following a deal event. |
Payload
Verifying the signature
Every POST carries aX-OpenQuota-Signature header of the form sha256=<hex>. Compute:
Node / Bun
Retry semantics
Failed deliveries (non-2xx or timeout) retry with exponential backoff: 1s, 5s, 25s, 125s, 625s. After 5 failed attempts the delivery is marked dead and visible in the admin UI; it’s your responsibility to fix your endpoint and use the Replay button to redeliver.Idempotency
Each delivery has a uniqueX-OpenQuota-Delivery-Id. Use it to deduplicate on your side — the same event may be redelivered on retry or manual replay.
Disabling a subscription
Toggleactive: false in the admin UI. Existing queued deliveries drain; no new deliveries are queued until you re-enable.