Early bird discounts live! Claim your offer

coupon.activated

A coupon was switched on and is being offered at checkout again.

When this fires

A creator switched a coupon on — from the dashboard, the Telegram bot, or POST /v1/projects/{project}/coupons/{coupon}/activate.

This is the availability flip, kept out of coupon.updated on purpose: an automation that cares whether a discount is live wants one event to subscribe to, not a diff of the active key on every save.

Switched on is not the same as redeemable

active: true is one of four conditions. A coupon still will not apply if it is outside its starts_at / expires_at window, if every use is already spoken for, or if the buyer has hit their own per-subscriber cap. Check the window and the caps in the payload before announcing a live sale.

Required ability

project-coupon:view — token must carry this at mint time to subscribe an endpoint to this event.

Payload

{
  "id": "evt_01HX...",
  "type": "coupon.activated",
  "created_at": "2026-11-27T00:00:31Z",
  "api_version": "2026-05-01",
  "project_id": "prj_01HX...",
  "data": {
    "coupon": {
      "id": "cpn_01HX...",
      "code": "BLACKFRIDAY",
      "name": "Black Friday 2026",
      "discount_type": "percentage",
      "discount_value": "25.0000",
      "currency_id": null,
      "duration": "once",
      "max_redemptions": 500,
      "max_redemptions_per_user": 1,
      "minimum_amount": null,
      "starts_at": "2026-11-27T00:00:00+00:00",
      "expires_at": "2026-12-01T00:00:00+00:00",
      "active": true
    }
  }
}

data.coupon is the same snapshot every coupon.* lifecycle event carries — see coupon.created for each key. active is always true here.

Caveats

  • This is not scheduled. It fires when a person flips the switch. A coupon whose starts_at simply arrived does not emit this — nothing changed on the row. If you need the moment a code becomes redeemable, schedule against starts_at.
  • Re-activating a switched-off coupon does not reset its counts. Redemptions taken before it was switched off still count against max_redemptions, so a code that was exhausted before is still exhausted after.
  • Idempotent flips still emit. Activating an already-active coupon over the API emits this again. De-dup on the event id.

How is this guide?

On this page

Subscriby is a product designed by you — for you.

No boardroom full of executives deciding what we ships next. Our roadmap always shaped by you with your feedback.

Share feedback or a request