Early bird discounts live! Claim your offer

pass.window_opened

A time-limited pass access window opened and its holders were admitted.

When this fires

A scheduled access window on a time-limited pass plan reached its start time. Everyone holding that window has been admitted to the plan's Telegram resources.

Windows are processed every minute, so this fires within roughly 60 seconds of the advertised start time rather than exactly on it.

This describes the window, not an individual subscriber. For per-member grants, subscribe to member.resource_added, which fires once per subscriber per resource.

Required ability

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

Payload

{
  "id": "evt_01HX...",
  "type": "pass.window_opened",
  "created_at": "2026-09-20T13:00:04Z",
  "api_version": "2026-05-01",
  "project_id": "prj_01HX...",
  "data": {
    "plan_id": "pln_01HX...",
    "window_id": "psw_01HX...",
    "starts_at": "2026-09-20T13:00:00Z",
    "ends_at": "2026-09-21T03:00:00Z",
    "subscribers_affected": 47
  }
}

Field reference

FieldTypeNotes
idstring ULIDUnique event id, prefixed evt_. Use for idempotent processing.
typestringAlways pass.window_opened for this event.
created_atISO 8601 timestampServer-side emission time.
api_versionstringWebhook API contract version.
project_idstring ULIDProject this event belongs to.
data.plan_idstring ULIDThe pass plan the window belongs to.
data.window_idstring ULIDThe access window that opened.
data.starts_atISO 8601 timestampWindow start, always UTC. Render in the plan's schedule timezone.
data.ends_atISO 8601 timestampWindow end, always UTC.
data.subscribers_affectedintegerHow many holders were admitted. May be 0 if every holder cancelled.

Caveats

  • Timestamps are UTC. A pass schedule is authored in the creator's timezone, so rendering these without converting will show the wrong local time to buyers.
  • subscribers_affected counts holders who were eligible at open time, not at purchase time. Cancelled and paused passes are excluded, so this can be lower than the number sold.
  • Anyone who buys after this fires is outside the count entirely — a plan whose sales cutoff is anchored to the window end keeps selling while the window runs. Those admissions arrive as member.resource_added, not as a second pass.window_opened.
  • A window whose worker was down for its entire span is closed without ever opening. In that case this event never fires and only pass.window_closed is emitted.

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