This release includes 1 breaking change for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Affected surfaces
ReleasePort's take
Moderate signalThe check‑in endpoint now uses a ticket code (UUID or series:<uuid>) instead of the ticket ID. This breaking change requires updating any client paths that call /event-admin/{event_id}/tickets/{ticket_id}/check-in.
Why it matters: Affects all integrations calling the check‑in API; update endpoint URLs to match the new path format before upgrade, as version v1.68.0 enforces the change immediately.
Summary
AI summaryUpdates de/fr/it, events, and feat across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Breaking | High |
check-in endpoint path renamed to use ticket code (UUID or series:<uuid>) instead of ticket ID. check-in endpoint path renamed to use ticket code (UUID or series:<uuid>) instead of ticket ID. Source: llm_adapter@2026-07-16 Confidence: low |
— |
| Feature | Low |
Adds Series Passes (season tickets) with pro‑rata pricing, API endpoints for purchase and management, automatic ticket materialization per event, and pass‑level PDF/Apple Wallet support. Adds Series Passes (season tickets) with pro‑rata pricing, API endpoints for purchase and management, automatic ticket materialization per event, and pass‑level PDF/Apple Wallet support. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Bugfix | Medium |
waitlist_cutoff_date now shifts correctly when duplicating an event or its recurring series occurrences. waitlist_cutoff_date now shifts correctly when duplicating an event or its recurring series occurrences. Source: llm_adapter@2026-07-16 Confidence: low |
— |
Full changelog
Added
- Series Passes (season tickets): organizers can sell a single pass covering every event in an event series, with pro-rata pricing —
price − passed_events × pro_rata_discount(clamped at 0), purchasable while at least 2 covered events remain.SeriesPassproduct on an event series (price, pro-rata discount, online/offline/free payment methods, visibility, sales window, optional holder cap), linked to one existing ticket tier per covered event; pass purchases consume that tier's capacity.- Purchase materializes a per-event ticket for every future covered event, all-or-nothing under capacity locks; online passes use a single Stripe checkout with the price split penny-exact across events, honoring each tier's VAT rate.
- Public API:
/series-passes/*(list, quote, checkout, my-passes, PDF and Apple Wallet downloads). Admin API:/event-series-admin/{series_id}/passes/*(CRUD, tier links, holders, offline confirmation, cancellation). - Organizers can extend a pass to later-added events (endpoint or inline
series_pass_linkson event create/update); active holders get the new event's ticket free of charge. - Cancelling a covered event refunds each holder's share of that event; cancelling a whole pass refunds all remaining events and releases capacity. Holders cannot self-cancel individual pass tickets.
- Pass-level PDF and Apple Wallet pass with the covered-events list; new
series_pass_purchased/series_pass_extendednotifications (de/fr/it), replacing per-ticket emails for pass purchases. - Attendee/ticket listings can filter by origin (
?source=pass|direct) and ticket schemas expose the originatingseries_pass.
Changed
- Breaking: check-in endpoint path renamed from
POST /event-admin/{event_id}/tickets/{ticket_id}/check-into.../tickets/{code}/check-in— the parameter is now a string code accepting either a plain ticket UUID or aseries:<uuid>series-pass QR payload.
Fixed
- Duplicating an event (and materializing recurring-series occurrences) now shifts
waitlist_cutoff_datealong with the other date fields instead of copying the template's absolute timestamp — copies no longer start with an already-closed waitlist or fail validation when duplicated to an earlier date.
What's Changed
- docs: sync USER_JOURNEYS with v1.66.0–v1.67.1 and record E2E test strategy by @biagiodistefano in https://github.com/letsrevel/revel-backend/pull/643
- fix(events): shift waitlist_cutoff_date in duplicate_event (#645) by @biagiodistefano in https://github.com/letsrevel/revel-backend/pull/646
- feat: series passes (season tickets) with pro-rata pricing (#644) by @biagiodistefano in https://github.com/letsrevel/revel-backend/pull/647
- chore(release): v1.68.0 by @biagiodistefano in https://github.com/letsrevel/revel-backend/pull/648
Full Changelog: https://github.com/letsrevel/revel-backend/compare/v1.67.1...v1.68.0
Breaking Changes
- Check‑in endpoint path renamed from `/event-admin/{event_id}/tickets/{ticket_id}/check-in` to `/.../tickets/{code}/check-in`, using a string code that accepts either a ticket UUID or a `series:` series‑pass QR payload.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Beta — feedback welcome: [email protected]