22 releases

What's new at Smeetz.

The latest product updates, shipped and live for customers.

⌘K
Latest release

Waivers is live for all groups

What's new

Bulk mark booking documents as paid

Organizers can now mark multiple booking documents as paid in one click. The new bulk action covers invoices paid by bank transfer and ends the row-by-row workflow. Rows that can't be marked paid are skipped with a clear reason shown in the result dialog.

Sell giftcards as add-ons on POS

Cashiers can now attach giftcards as add-ons to a parent ticket on POS. The flow previously required a timeslot in a window around the parent ticket, which giftcards never satisfied. The flow now accepts giftcards on the same checkout.

Membership seating plan on POS

Membership seating plan tickets sold from POS now create the associated membership record automatically. Operators selling membership seating no longer need a second back-office step to attach the membership.

Attendee check-in status and scan history

The attendee list in the back-office now shows check-in status per attendee, plus a popup with the full scan history. Useful for operators handling multi-day passes or resolving "did this attendee already enter" questions.

Single-resource link to ticket

A ticket can now be linked directly to a single resource (rather than a resource group), making 1:1 resource-to-ticket configurations cleaner to set up.

Waivers experience now live for all groups

The new Waivers experience is now available to all organisations on Smeetz. Operators get the refreshed flow without any setup step.

Per-ticket schedule overrides

When creating a ticket linked to a recurring schedule, operators can now set per-ticket duration and break-between-slots overrides directly on creation (previously only on edit). Empty fields fall back to the schedule default.

Membership scan validity window

A new "Scanning" tab is being added to the membership voucher editor to control multiple-scan validity windows for day passes. Currently gated behind a flag and not yet live to customers.

Report builder activated for Fondation du Chateau de Chillon

The report builder is now activated for Fondation du Chateau de Chillon (group 16268, Owner/Manager/Accounting/Promoter/Seller manager roles).

Improvements

Cleaner schedule availability refresh

When editing a single date in the schedule overview, the availability table now refreshes in place and keeps the selected availability mode. Reduces the "did my change save" friction.

Fixes

Back-office

  • Mark-as-paid no longer skips quotes with a zero balance - they're planned for payment like any eligible row
  • Partial-day schedule closures now save with the correct time window (were previously stored as full-day)
  • Schedule exception types are now classified by their time window, not the numeric type - editing exceptions behaves consistently

POS

  • Optional add-ons that are out of stock no longer block the parent ticket sale - only mandatory unavailable add-ons block, with a clear warning naming the skipped add-on

Payments

  • Back-office refunds for Adyen SDK payments now route through the correct gateway and reach Adyen as expected (previously stuck in pending)

Covers releases shipped between Mon 08 Jun and Thu 11 Jun 2026.

Custom PDF ticket templates

What's new

Custom PDF ticket templates

Venue managers can now design custom PDF layouts for regular tickets using the same Unlayer editor already available for gift-card PDFs. Select a template in the ticket configuration and use merge tags to pull in booking-specific data (custom fields, attendee details, per-product fields) directly onto each printed ticket.

Fixes

POS

  • Orders window: resetting the filter no longer causes the app to freeze or become unresponsive

Covers releases shipped between Mon 01 Jun and Sun 07 Jun 2026.

Product update - 13 May 2026

🎭 Curtain's up! Waivers get PDF download and dependant details, per-add-on ticket control lands in beta, Croatian joins the back office, and Klarna checkout gets a cleaner look. Skim what's yours!


New

Waivers: download PDF and view dependants

From the signed waivers table in the back office you can now download or open any waiver as a PDF directly from the action menu in the waiver ID column. The dependants count in each row is now clickable, too: click it to see each dependent's details in a popup without leaving the page.

Where to find it: BO > Catalogue > Waivers

Per-add-on ticket control (Beta)

You can now control individually whether each add-on sends as its own PDF ticket or stays grouped on the main ticket. Previously the setting applied to all add-ons on a product at once. With this change you can, for example, send a dinner add-on as its own ticket while a donation stays grouped. The toggle is on the add-on configuration form.

Where to find it: BO > Catalogue > Products > Add-ons

Croatian language in the back office

The back office now supports Croatian (HR) as an interface language. Users can select Croatian in their profile language settings.

Where to find it: BO > My profile > Language

Klarna: clearer payment selection in the booking widget

Klarna payment options now appear as radio buttons instead of a dropdown. When a customer starts checkout with Klarna selected, it stays selected on the payment step. No more confusion from the default switching back to card.

Where to find it: Klarna is activated as Beta version exclusively for some clients - contact your account to activate it on your account.

Join the waiting list


Improvements

Waivers: automatic expiry

Waivers past their expiry date are now automatically moved to "expired" status. The waivers table stays accurate without any manual action.

Where to find it: BO > Catalogue > Waivers


Regional / compliance

Austria POS: Fiskaly receipt details

Austrian POS fiscal receipts now include the device ID and Fiskaly cash register ID. The VAT number is now printed in the correct ATU format required by Austrian regulations.


Fixes

Back office

  • p class="no-margin">Gift card refund now uses the custom amount entered instead of defaulting to a fixed value/p>
  • p class="no-margin">Archived products no longer appear on the Discover marketplace/p>

Booking widget

  • p class="no-margin">Promo codes with extra spaces at the start or end now apply correctly/p>

POS

  • p class="no-margin">Discounts on online or back-office orders now correctly recorded when the order is signed on POS/p>
  • p class="no-margin">Bookings completed with a remaining balance now correctly mark the sale session as complete/p>

Emails

  • p class="no-margin">Booking confirmation emails no longer fail for seated events where a seat has no section assigned/p>

Orders

  • p class="no-margin">Seated event cancellations no longer get stuck when a seat has partial data/p>
  • p class="no-margin">Ticket cancellation refunds now correctly calculate from the net ticket value/p>

🎭 Curtain's down. See you at the next showing!

Product update - 06 May 2026

Smeetz product changelog

🎬 Showtime! Dynamic pricing stays consistent during updates, POS add-ons now configurable per venue, and a clean sweep of fixes across the booking widget and POS. Skim what's yours!


🔧 Improvements

⚡ Dynamic pricing: consistent prices during recalculation

Calendar and timeslot views now always show the same price, even during the roughly 20-minute window when dynamic prices are being recalculated. A sync flag holds the previous valid price across both views until recalculation finishes, then both flip simultaneously. No more price mismatch visible to guests browsing and booking.

[Screenshot or short video here]

Where to find it: Booking widget

🎛️ POS: add-ons step configurable per venue

You can now have the add-ons step disabled in your POS checkout flow for venues where it isn't relevant. This removes an unnecessary screen for your staff. Contact your Account Manager to enable it for your venue.

[Screenshot or short video here]

Where to find it: POS > Checkout


🌍 Regional / compliance

🇫🇷 France: POS cash transfer direction

When closing a POS session in France with a negative cash difference, the money transfer event was recorded as PAY_IN instead of PAY_OUT. French POS sessions now log the correct transfer direction.

[Screenshot or short video here]

Where to find it: POS > Close session (France)


⚙️ Under the hood

N+1 queries eliminated on two high-traffic backend endpoints (booking fields and seated category pricing), Adyen payout retry stabilised for failed IDIV transfers, and PHP 8.4 nullable-type deprecations resolved across the codebase.


🐛 Bug fixes

Booking widget

  • p class="no-margin">100% discount offer left EUR 0.02 on the total instead of EUR 0.00: float truncation in the discount calculation corrected/p>

POS

  • p class="no-margin">Excl. tax and incl. tax figures on receipts shown divided by 100: corrected/p>
  • p class="no-margin">Gift cards created via POS with a promo code applied could receive the wrong price category: POS sync now validates against the catalogue price before applying/p>

Email notifications

  • p class="no-margin">Booking confirmation emails failed to send when the guest language code was null: system now falls back to English automatically/p>

🎬 Show's wrapped. Catch you at the next showtime!

Product update - 29 April 2026

Smeetz product changelog

Doors open! Plenty landed this week. Waivers is live on beta and attendee lists now wear their RFID tags. Skim what's yours!


✨ New this week

🪪 Waivers (Beta)

Signed waivers are now live across the back office and POS. Build a waiver template, attach it to a product, collect digital signatures from guests at checkout or at the door, and see exactly which booking each signature belongs to. Dependents (minors signed in by a parent or guardian) get their own column on the waivers list, so audits and lookups take seconds.

Where to find it: BO > Catalogue > Waivers


🔧 Improvements

🏷️ RFID and NFC tag UIDs on attendee lists

Attendee lists now show the RFID or NFC tag UID alongside each attendee. The column is filterable, sortable, and supports autocomplete, so finding a guest by their wristband or card takes one search instead of a scroll. the RFID/NFC UID field is used by Smeetz access control API in order to identify the eligibility of a ticket for an entry through external access control devices that can read these RFID/NFC chips.

Where to find it: BO > Attendees


🐛 Bug fixes

POS

  • p class="no-margin">Children's birthday displaying incorrectly on orders/p>
  • p class="no-margin">Customer name showing as 'undefined' on some bookings/p>

🚪 Doors closed. See you at the next opening!

Croatian joins, catalogue APIs get richer

What's new

RFID/NFC UID custom field on the attendee list

The new "RFID/NFC UID" custom field type now shows up directly in the attendee list in the back-office. Operators can see and manage the wristband/card identifier attached to each attendee without opening every ticket.

Cleaner resource creation - no auto-selected booking rule

"Single booking" is no longer auto-selected as the default booking rule when creating a resource. Users have to explicitly pick a rule - avoiding the frequent misconfig where the default silently closed all availability at the first booking.

Google Pay via Maestro on Adyen

Backend now handles the Adyen payment method maestro_googlepay. Buyers paying with Google Pay backed by a Maestro card now settle end-to-end instead of falling into an unhandled-method error.

Richer catalogue APIs - seat pricing + options

The catalogue product-options endpoint now returns seat sub-category prices (previously empty for seating-plan options), image URLs, descriptions and option flags. Unblocks the SDK team building booking flows on top of the public API - notably 11 Arches.

Availability-calendar API - multiple option IDs

The availability-calendar API now accepts multiple option IDs in one request and returns richer results. SDK consumers can show a merged calendar for several options without making N separate calls and stitching client-side.

Croatian language support

Croatian joins the supported languages across the booking flow.

Waiver customer records

When a customer signs a waiver, the backend now looks up their email; if the customer doesn't exist, a customer record is created automatically. Sets up the linkage between signed waivers and the customer profile.

created_at / updated_at on the timeslot table

Timestamp columns added to the timeslot (ts) table. Makes debugging and audit trails on schedule changes possible instead of guessing.

Fixes

Back-office

  • Cobalt Project - Impossible to edit the bill
  • N+1 Query performance fix
  • Backend product-slot-booking update guard
  • Investigate missing prod-backend-arm custom logs
  • Backend deprecation - nullable parameter in BaseResourceTrait
  • Audio Club - Annual passes already scanned discrepancies

POS

  • Parc animalier - Addon issue on tickets

Covers releases shipped between Mon 27 Apr and Sun 03 May 2026.

Schedule creation + add-ons feature flag

What's new

Create a schedule (User Story 1)

First iteration of the new schedule-creation UI. Operators can now create a schedule from the schedule-management section, name it, add a description, and identify and manage it across multiple tickets and venues.

Add-ons feature flag

Feature flag introduced in Mixpanel for the new add-ons experience. Enables controlled rollout to selected groups and A/B testing before general availability.

Link signed waivers to a booking (front-end)

The BO edit-order page now shows the signed waivers attached to a booking. Operators can confirm compliance at a glance instead of jumping between the customer record and the booking.

Widget setup - "See more" configuration

Back-office setup for the widget "See more" control (the price-list expander shipped earlier) is now available. Operators can turn the collapse behaviour on/off per venue.

Seating-plan add-ons filtered by main-ticket date

When a seating-plan ticket is configured as a second-step add-on, the calendar on step 2 now only shows dates within the configured range relative to the main ticket. Uses the "Show addons starting from / until" fields already available in the BO. Buyers no longer see irrelevant dates.

Configurable Klarna payment fees

Klarna payment fees are now configurable per contract. Handles clients on interchange++ and outside it, so both pricing models settle cleanly.

GraphQL server refresh - automated

The GraphQL server refresh workflow is fully automated. Once its prerequisites (schema build + validation) succeed, the refresh triggers itself instead of needing a manual kick.

Fixes

Back-office

  • Backend null-apiKey guard in GroupAccessibilityController
  • Swiss Vapeur Parc - Impossible to remove the scan status of tickets (unscan)
  • MAAG - Order has no tickets (missing ticket data)
  • Fix Timeslot Availability Mismatch Detection and Correction
  • Equilibre - Clean up setup and code

POS

  • POS Booking sync PUT error
  • Use userId from token storage instead of POS cash float user id

Booking widget

  • Recurring ticket timeslots update not reflected on B2C

Payments

  • Cobalt - Swiss QR-code showing amount paid instead of amount to pay
  • Adyen payment - countryCode validation error

Covers releases shipped between Mon 20 Apr and Sun 26 Apr 2026.

A fix-only week

Fixes

Back-office

  • Dynamic pricing - Calendar min price inconsistent with timeslot detail prices
  • Alerts for email-delivery failures
  • Backend Doctrine offset validation
  • Eis-Greissler Welt - Timeslot generation failure using 'After a certain number of days' option
  • Société Paul Ricard - Importing participants
  • Rate limiting for Slack channel notifications
  • BO Smeetz - Frequent 500 errors and date display issues in the API
  • Missing S3 file for ticket PDF
  • Use fragile queue only from code for large updates

Covers releases shipped between Mon 13 Apr and Sun 19 Apr 2026.

Belgium e-invoicing follow-up + chatbot on the DS

What's new

Belgium 🇧🇪 e-invoicing - follow-up

Belgium e-invoicing gets its follow-up milestone: new e-invoicing fields exposed in the back-office, plus release, testing and monitoring wired up. Groups on the pilot get a tighter loop between what they see on-screen and what's actually filed.

Chatbot moves to the Smeetz design system

The chatbot UI is now built on the shared Smeetz design system rather than the older private component library. Consistent look and feel with the rest of the product - and no more one-off styling drift when the DS ships new components.

Booking-statement improvements

Test bookings are now excluded from booking statements. On top of that, the statement pipeline gets better observability and retry logic so failed runs recover automatically instead of needing a manual replay.

Cashbook rollout to new clients

Cashbook is now live for Styrassic Park, Rollhouse and Erlebnisparkziegenhagen. These groups can now track and reconcile daily cash operations directly from the back-office.

Fixes

Back-office

  • Image cropper restored after the Vite migration (crop and resize now work again across the back-office)
  • Lausanne Tourisme - Problem accessing a product
  • Société Paul Ricard - Loop problem when validating code for account creation
  • COV - Access problem and 404 error on COV 2026 products
  • Edeis Train de la Mure - Modify a quote: can't add several prices at once
  • Checking notifs for transformer API
  • BO - Investigate balance issue for booking #10313446

Payments

  • Cobalt - Swiss QR-code showing amount paid instead of amount to pay
  • Backend array_combine argument mismatch in Adyen webhook

Covers releases shipped between Mon 06 Apr and Sun 12 Apr 2026.

Klarna pilots in group1, waivers get polished

What's new

Klarna payment method - group1 pilot

Klarna lands as a payment method for eligible groups. Group1 is the pilot rollout - production traffic gets tested end-to-end before wider release.

Occupancy calendar - mark resources as unavailable

Continued work on the occupancy calendar. This iteration adds the ability to mark specific resources as unavailable for a slot (maintenance, private events, staff outages) without touching the underlying schedule.

Occupancy calendar - adjust stock

Companion to the resource-availability control: operators can now adjust the stock of an occupancy directly from the calendar view. Faster reactions to demand spikes and last-minute changes.

Signed waivers linked to a booking

Signed waivers now attach directly to the booking on the edit-order page in the back-office. Operators see at a glance who has signed which waiver, without diving into the customer profile.

Localised waiver email templates

Waiver notification emails now render in the recipient's language. Translations plug into the existing email-template pipeline.

Waiver PDF generation

Waiver documents are delivered as PDFs with cover image, translated terms and signature block. Ready to be attached to bookings or emailed.

Retire old POS from remaining groups

New back-office setting to disable the old POS per group. Lets groups migrate cleanly to the new POS experience one at a time.

Fixes

Back-office

  • ALL - Hide timeslots with smeetz_bookable=0 for non-overbooking groups
  • FBA Brétigny - Pending orders causing negative stock
  • Les Celliers de Sion - Unable to activate the Swiss Activities channel
  • Eclipso Bordeaux - Extend expired gift voucher for booking dadbb589
  • Backend null-holder guard on payment method
  • Resource overlapping rooms - simultaneous bookings
  • LFF - DMARC Authentication Mismatch with e-mail domain
  • GT: 2 Day Pass (Pocket Pass) - Link to new SBB product

Payments

  • Investigate negative balance issue in Adyen for client 16179

Covers releases shipped between Mon 30 Mar and Sun 05 Apr 2026.

Klarna BNPL lands, accessibility comes to tickets

What's new

Pay later with Klarna (BNPL)

Klarna is now available at checkout as a Buy-Now-Pay-Later option. Buyers can split the payment or pay after receiving the booking, without leaving the Smeetz flow. Rolling out to eligible groups.

Nimbus accessibility platform integration

The Nimbus accessibility platform is now wired into the Smeetz booking flow, via a proxied backend API. Groups using Nimbus can verify buyer eligibility as part of checkout.

Archive retail items instead of hard-delete

Retail items can now be archived through a status flag, keeping their history and accounting links intact. Replaces the previous behaviour of hard-deleting rows.

Accessibility as a ticket price category and custom field

New price-category and custom-field-information type "Accessibility" - stored in Elasticsearch alongside existing categories (Adult, Reduced, Child, Others). Lets operators price and tag accessibility tickets consistently and surface them in access-control flows.

RFID/NFC UID on tickets + attendee list

Adds a new "RFID/NFC UID" custom field type on tickets. Operators can capture the wristband / card ID at booking time and see it in the attendee list, ready for access-control scans.

Waiver PDF generation

Waivers are now delivered as PDFs - cover image, translated terms and signature block laid out cleanly and centred, ready to attach to bookings.

Fixes

Back-office

  • FBA Angers - Unable to download partial invoices
  • Promo code settings updated on BO not reflected in DB
  • Availability sync issue (seats.io)
  • Lac de Morat - Overbooking for Dine and Light at the chalet
  • Backend null-offset guard in order session repository
  • Edeis Train de la Mure - Modify a quote: can't add several prices at once
  • VHS 341 & all clients - Email shipment VT display is incomprehensive
  • Backend Symfony console command constant fix
  • Error copying seating plan category from seats.io
  • Fix timeout of v2/availability endpoint

POS

  • FBA Montpellier - customer names displaying as 'undefined' during bookings

Booking widget

  • Swiss Vapeur Parc - wrong price on the widget

Payments

  • Missing Adyen transaction in accounting table
  • Equilibre Nuithonie - payment synchronisation issue

Covers releases shipped between Mon 23 Mar and Sun 29 Mar 2026.

Occupancy calendar: prices and custom fields

What's new

Occupancy calendar - price and custom-field support

Continued work on the occupancy calendar: this iteration adds per-slot price editing and custom-field visibility directly in the calendar view. Operators managing resources across long time ranges can adjust pricing and see attached custom fields without leaving the calendar.

Fixes

Back-office

  • Refactor Promocode entry creation in Accountings to align with Quote validation
  • Overbooking detected for price 265759 (quantity 20, booked 23)

Payments

  • Chargebee webhook processing failure

Covers releases shipped between Mon 16 Mar and Sun 22 Mar 2026.

Waivers backend milestone

What's new

Prices in ISO format on the booking widget and kiosk

The widget and kiosk now render every price through the same ISO-format helper used on the back-office and POS (e.g. CHF 1'234.56). Consistent presentation on every customer-facing surface.

Waivers backend milestone - create + manage

Backend endpoints to create and manage waivers are live: title, content, signature/email/ID requirements, version, expiry. When a waiver is updated, the previous active version is retired and a new version created. Foundation for the operator-facing back-office UI due later.

Mailgun webhook endpoint

New backend endpoint receiving Mailgun webhooks - hard bounces and spam complaints. Bad email addresses are recorded in a dedicated table so the system can skip them before sending future messages. Supports the incoming email-delivery alerting.

Catalogue APIs - availability + product options

New public catalogue endpoints expose product options and availability data with richer fields (image URLs, descriptions, option flags). Third-party integrations can build a full product surface without extra calls.

Chatbot rescheduling live for GravityFun

The chatbot rescheduling feature is now active for GravityFun. Their visitors can reschedule bookings directly through the chatbot without contacting support.

Fixes

Back-office

  • All accounts - Inventory export bug
  • Fort de Chillon - 500 error when modifying Shop Item 'Hot Drinks'
  • FBA Cagnes - Open a new window on B2B
  • FBA Rouen - Open a new window on B2B
  • FBA Rennes - Open a new window on B2B
  • Backend deprecation - dynamic property in ProductBundleServiceProductService
  • Waiver API 404 fix
  • Backend stock-capacity error in processTicketChanges
  • WOW - Misalignment in confirmation email
  • Backend null-collect guard on booking IDs

Covers releases shipped between Mon 09 Mar and Sun 15 Mar 2026.

Analytics moves to Omni, catalogue APIs level up

What's new

Analytics dashboards move from Explo to Omni

Back-office analytics dashboards now embed via Omni instead of Explo. The embed switches from the Explo web-component (<explo-dashboard>) to an Omni iframe backed by a signed embed URL - unlocking richer visualisations and matching the direction of the analytics roadmap.

Richer catalogue APIs (availability + product options)

Public catalogue endpoints (GET /v2/products, GET /v2/catalogue/product-options) now expose full product image paths, descriptions, and per-option flags (require_addons, require_custom_fields). Third-party integrations can render a complete product surface without a second call.

Waiver PDF generation

Signed waivers are now delivered as PDFs with the cover image, the translated waiver terms and the signature block laid out cleanly. Operators can attach them to bookings and email them to buyers.

Prices in ISO format across the product

Every price - widget, kiosk, POS and back-office - now renders through the same ISO-format helper (e.g. CHF 1'234.56). Consistent presentation across every surface a customer or operator sees.

Nimbus accessibility platform wired into checkout

The Nimbus accessibility platform is now connected to the Smeetz booking flow. Groups using Nimbus can verify buyer eligibility as part of checkout, via a proxied backend API.

Signed-waivers backend live

Backend endpoint to POST signed waivers has landed. The record stores waiver ID, signer identity and either an SVG signature or a boolean (for checkbox-only consent). Feature will roll out to selected groups over the following weeks.

Design-system components - time period + date-time picker

Two shared design-system packages ship this week: a "select time period" component (Today / Yesterday / Tomorrow / custom) and a "date-time picker". Both are now available to every BO app - foundational work for upcoming UI polish.

Fixes

Back-office

  • Order overview & edit-order pages timing out for large bookings
  • Seating plan - Seat displaying as booked despite completed booking with no balance
  • Team member 'pending' state stuck for Cyril accounts
  • SVP - 500 error on product filter (null timezone)
  • MAAG - BO display issue after timeslot change
  • Investigate resource overlapping rooms warnings in Slack
  • Backend custom-log file stat guard
  • Fix resource monitoring SQL checks
  • FBA Vélizy - Team/resource management skills
  • Seatsio - could not change status for Floor-C-7 area
  • CSP - Displaying time slots on the Calendar date view
  • Backend stock-capacity error in processTicketChanges
  • Eclipso - Ticketing price display in Mulhouse & Toulon
  • FBA Val d'Europe et Angers - B2B resource issue

Booking widget

  • EG - Timeslot exists but doesn't show up in booking widget

Other

  • Access control - scanOpeningMinutesBeforeStart not applied for seating plan tickets

Covers releases shipped between Mon 02 Mar and Sun 08 Mar 2026.

Resources ships to Kojump Brétigny

What's new

Resource management enabled for Kojump Brétigny

Resource management is now live for Kojump Brétigny (group 19549). Extended in the same rollout wave to Fun City Group (19850).

Cover image on waivers

Waiver documents now support a cover image at the top - letting operators brand each waiver with the artwork of the activity it belongs to (jump, climb, dive, etc.).

Database-lock hardening on the abandon-booking path

Refactored the abandon-booking code path to eliminate the DB locks that occasionally spiked during peak sales windows. Fewer "please try again" errors on high-volume booking sessions.

Fixes

Back-office

  • Kynren - Wrong balance from failed giftcard reapplication in change-timeslot
  • Correct old giftcards with sum accounting entry = 0
  • Backend product-slot-price undefined-variable guard
  • Fondation l'Hermitage - Incorrect display of modified shipping fee amount
  • WOW - Booking email tickets issue
  • Equilibre Nuithonie - PDF ticket download issue
  • VHS 321 - Add-ons missing when copying seating plan tickets
  • Seatsio free-object hold-token mismatch
  • Backend stock-capacity error handling in processTicketChanges
  • Seatsio - object already scanned
  • Moods - Attendance and Scan data incorrect for membership 25/26
  • Eclipso Bordeaux - Gift card usage status incorrect after abandon booking

Booking widget

  • Kojump - Main ticket count issue when modifying the cart
  • Add-ons issue with 2nd step being blocked
  • MAAG - Twint payment failing

Payments

  • Chargebee IOException - SSL certificate issue
  • AdyenAccountHolder - null verification status TypeError

Covers releases shipped between Mon 23 Feb and Sun 01 Mar 2026.

Grouped add-ons in confirmation emails

What's new

Grouped add-ons in booking-confirmation emails

Add-ons in confirmation emails are now grouped by ticket name and price - matching the layout in the order overview. Buyers with several identical add-ons see one clean line per group with a quantity rather than a long unreadable list.

Waivers - database groundwork

Backend entities for the upcoming Waivers experience have landed in the Symfony codebase (waivers, signed waivers, versioning). Nothing user-facing yet - this is the foundation for the customer-facing rollout later in Q1.

Accurate ticket scanning status

The single-scan status flow has been reworked so scan history stays in sync when the same ticket is scanned more than once. Fixes a class of double-scan glitches on access-control endpoints.

Fixes

Back-office

  • Fix incorrect discount calculation on prices excluding taxes
  • Eclipso Bordeaux - Gift card usage status incorrect after abandon booking
  • WOW - Unused payment methods listed in confirmation email
  • Parc Animalier d'Auvergne - Impossible to download tickets
  • Verticalp - Skidata Summit API not sending correct data

POS

  • Parc Animalier - Add a payment method on POS and DB

Booking widget

  • Cobalt - TWINT payment not working
  • Locarno film festival - Italian translation spelling in cart labels
  • Eclipso Barcelona - Critical Sales Kiosk Failure
  • Fiat Flux - Smeetz ticket pop-up on older Safari for iPhone
  • Eclipso NYC - Price display
  • Flip Lab - Kiosk jumps back to jump duration page after time selection

Payments

  • Enable successful CHF payouts to French IBANs without manual intervention
  • Parc Animalier d'Auvergne - Refund by bank transfer not possible
  • Twint payment not working on mobile

Covers releases shipped between Mon 16 Feb and Sun 22 Feb 2026.

CORE Order API grows up: seating plans + add-ons

What's new

CORE Add-ons API - part 2

Second wave of the CORE-side add-ons integration. The backend and public API now understand the new add-ons shape end to end, so third-party integrators can create, update and query orders that include add-on lines.

Seating-plan tickets in the CORE Order API

The CORE Order API now supports seating-plan tickets. Package integrations can create and update orders that carry seat holds, general-admission and seat-plan tickets in the same order session, with the hold token persisted server-side.

Conditional invoice link in confirmation emails

Booking-confirmation emails can now conditionally include or exclude the invoice link, based on a per-customer configuration flag. Organisers who don't want an invoice link on their emails can turn it off from settings.

Fixes

Back-office

  • Flip Lab Wien - Pay by link renewal email not received
  • Backend null-timeslot guard for stock capacity
  • WOW - Country field not translated to German in ticket
  • FBA Angers - Allow Overbooking logic not respected during change-timeslot
  • Fix missing countryId in booking messages

Payments

  • SVP - Double payment

Covers releases shipped between Mon 09 Feb and Sun 15 Feb 2026.

Prices in ISO format across the product

What's new

Prices in ISO format across widget, POS and back-office

Prices now render in a consistent ISO-standard format across every customer-facing surface - the booking widget, kiosk, POS and back-office. Numbers use the three-letter currency code with proper grouping (e.g. CHF 1'234.56) via a shared formatting helper, so the same amount looks the same everywhere.

Accurate ticket scanning status

The single-scan status flow has been reworked. Scans now track a proper multi-status timeline (scanned, unscanned, re-scanned) instead of the collapsed single flag that caused history drift on tickets scanned more than once.

Fixes

Back-office

  • Eclipso Bordeaux - Gift card usage status incorrect after abandon booking
  • Kojump Gembloux - Promo codes status partially validated
  • Vouchers assigned to a different organizer
  • Early Bird Museum - Entrance Wheelchair adult
  • Backend Stock/stockCategory association fix
  • FlipLab - Critical Availability & Data Sync Issues
  • Lac de Morat - Seat Availability for Dine and Light on 27 Dec (reverted)
  • Fix time-slot updates triggered multiple times when updating a resource
  • Backend timeslot quantity-reserved fallback
  • BHC - Customer receiving marketing emails despite opt-out status
  • Eclipso Lyon - Gift Card Dashboard showing wrong amounts
  • Edeis Romanite - Problem accessing the occupancy calendar for box 1 at the Arènes
  • Fort de Chillon - Internal Server Error (500) when modifying Shop Item 'Hot Drinks'
  • Backend AWS SQS SendMessage error

Booking widget

  • Widget parsing error - unexpected string pattern
  • Widget log-sync failure after 10 retries
  • Confirmation-page redirect handling
  • Fiat Flux - Smeetz ticket pop-up on older Safari for iPhone
  • Kojump - Quantity dropdown showing incorrect max after booking
  • Styrassic Park - Booking widget not working with Promocode

Covers releases shipped between Mon 02 Feb and Sun 08 Feb 2026.

Fiscal receipts and cash-float polish

What's new

"See more" on long widget price lists

Long price lists in the booking widget now collapse into a "See more options" toggle - showing the first four prices and hiding the rest until the buyer expands. Keeps ticket pages readable on mobile.

Simpler mobile header on the booking widget

The public header on the widget is stripped down on mobile: the "Login" CTA is retired and the menu harmonised with the rest of the mobile navigation.

Clearer "Pay later" wording for deposits

The deposit flow on the widget shows "Pay later" instead of "Pay on site". Matches how buyers actually read the option.

Cleaner analytics tracking across discover + organiser widgets

Purchase events on Apple Pay, iDEAL and PayPal used to fire twice - once on discover after payment, again when the widget reopened in the iframe on the organiser site. The tracking pipeline is now de-duplicated so GA / Meta / Mixpanel numbers match reality.

Pay-by-link now works for regular orders

Send-a-payment-link is no longer restricted to quotes and invoices - it also works for regular orders, with cleaner email subject lines and no phantom invoice lines rendered.

Receipt counter on POS receipts (Malta / Italy fiscal)

POS orders now store a receipt-counter on the order session and print it on the receipt. Supports Malta and Italy receipt-numbering compliance, driven from a value the POS sends on order create/update.

Quieter cash-float sync alerts

The backend used to fire cash-float sync alerts even when the request came from someone without the permission to sync (usually a colleague hitting the wrong org). Those non-real-user alerts are now suppressed - fewer false positives cluttering the ops feed.

Fixes

Back-office

  • VHS - Cron job bug affecting database updates
  • Seatsio Freie Platzwahl - places to booked error
  • Backend count() type-check guard

POS

  • Custom field Unique uuid POS

Booking widget

  • Château de Chillon - Ticket Detail Visibility Discrepancy
  • Flex option - Dual-Price Addon Quota Harmonization
  • Wow Museum - Booking widget ticket numbers display error
  • WOW - German Flow missing a translation

Payments

  • ALL - Blank 'Payable by' section on Swiss QR-bill when customer info is incomplete

Covers releases shipped between Mon 26 Jan and Sun 01 Feb 2026.

A cleaner mobile booking widget

What's new

"See more" on long widget price lists

Long price lists in the booking widget now collapse into a "See more options" toggle. If a ticket has 5 prices or fewer, the whole list stays visible. From 6 prices upwards, only the first four show and the rest tuck behind the toggle - keeping the booking flow scannable on mobile.

Simpler mobile header on the booking widget

The public header on the booking widget is stripped down on mobile: the "Login" CTA is retired and the menu is harmonised with the rest of the mobile navigation. Cleaner top-of-page on small screens.

Clearer "Pay later" wording for deposits

The deposit flow copy on the widget changes from "Pay on site" to "Pay later". Reflects how customers actually understand the option.

Cleaner analytics tracking across discover + organiser widgets

Purchase events used to fire twice for Apple Pay, iDEAL and PayPal - once on the discover site after payment, then again when the widget reopened in the iframe on the organiser site. The tracking pipeline is now de-duplicated: purchase events fire only once, on the confirmation page load, guarded by a flag that prevents replays. GA / Meta / Mixpanel numbers should now match reality.

Pay-by-link now works for regular orders

Send-a-payment-link is no longer restricted to quotes and invoices. Regular orders can be settled by link too, with cleaner subject lines on the email and no phantom invoice-line rendering.

Per-ticket configuration of the Smeetz Pay fee

Smeetz Pay contracts can now set the fee at the ticket level instead of only at the booking level. Useful when different ticket types carry different processing costs.

Organiser UID on Swiss QR-bills

Swiss QR-bills now carry the organiser's UID in the additional-information block, meeting the standard expected by Swiss accounting software and audit tools.

Fixes

Back-office

  • Herzbaracke - Filter Issue on Date View Dashboard for Booked % Range
  • Seatsio Freie Platzwahl - places to booked error
  • Backend count() type-check guard
  • Region Murtensee - Pending booking stuck on 'Waiting for confirmation'

POS

  • Custom field Unique uuid POS

Booking widget

  • Château de Chillon - Ticket Detail Visibility Discrepancy
  • Flex option - Dual-Price Addon Quota Harmonization

Payments

  • GIGA - Payment successful on Adyen but not showing on Smeetz
  • SVP - Double payment
  • D!Club - Refund made but status not updated

Covers releases shipped between Mon 19 Jan and Sun 25 Jan 2026.

Booking statements move to BigQuery

What's new

Negative purchase price allowed on retail items

The back-end guard that blocked negative purchase prices on retail items has been removed. Accounting flows that need it - price corrections, stock returns and reverse write-offs - can now enter negative values without a workaround.

Booking-statement queries move to BigQuery

Slow booking-statement queries have been switched over to BigQuery. Long-running reports that used to time out on the worker DB (over an hour in some cases) now return in seconds. Temporary switch while a longer-term plan is scoped with product.

Fixes

Back-office

  • Translation Changes Not Saving for Ticket Category Name
  • MAAG - Dynamic Pricing Display Issue for Seating Plan Tickets
  • Verticalp - unable to sell and edit tickets that have already been sold
  • Backend exception in order accounting
  • Backfill counter number on order sessions missing the setting
  • Backend null-promo-code guard
  • Extend Expired Gift Cards not working correctly

POS

  • Verkehrshaus 318 - Missing Seat Numbers on POS PDF
  • Investigate missing cashfloat data in database

Payments

  • MAAG - Swiss QR-Code displays booker's name instead of company name
  • CSP - Payment delay to D+8 instead of D+3 and accounting inconsistencies

Covers releases shipped between Mon 12 Jan and Sun 18 Jan 2026.

ID-photo face check + Resources CRUD lands

What's new

ID-photo face check on custom fields

Custom fields of type "ID photo" now validate that the uploaded image contains a face. If the check fails, the picture is rejected on the spot with a clear message so the buyer can retry with a proper photo. Enabled via a new per-account configuration flag, so operators decide whether the automatic check is on or off.

Resources - full CRUD released

The Resources module ships with full create, read, update and delete endpoints. Operators can now manage resources and resource groups end to end from the back-office.

Faster branding search

Branding lookups (logos, colour themes) are now cached, so back-office pages that depend on branding load noticeably faster.

Faster experience-bank queries

Reduced default page size on experience-bank queries. Big-catalogue organisers get faster loads without extra scrolling.

Accounting settings API

New CRUD endpoints for accounting settings per organiser. Prepares the ground for exposing accounting configuration in the back-office and third-party integrations.

🇲🇹 Malta - fill counter number on past order sessions

Order sessions that were created before Malta's counter-number setting was in place are now backfilled with a counter. Cleans up compliance gaps on historical orders.

Alarm for POS balances

New monitoring alerts on orders with unexpected balances. Lets the team spot and fix accounting drift before it compounds at year-end closings.

Fixes

Back-office

  • Backend exception (InvalidArgument)
  • Fix Log Scan Tickets Group Field
  • Backend exception (Doctrine)
  • CSP - Cost of item is set to a huge number
  • SentryExceptionFatal
  • All - PDF Generation Fails Due to Incompatible Uploaded PDFs
  • Improve - occupancies correction cron doesn't work with all types
  • Redis mget wrong number of arguments
  • ALL - Customer Phone Number Reset to NULL After First Order Assignment
  • Equilibre-Nuithonie - Problem displaying rows, seats on PDF and thermal tickets
  • Verein Bethanien - Gift Card can't be sold (no capacity available)
  • Investigate and resolve Redis data overflow due to event stock configuration
  • FBA - Correction of missing revenue recognition dates in exported orders
  • Region Murtensee - Incorrect balance on reservation 1b3e1b0f
  • Fliplab - Voucher error wrong balance
  • Backend exception (Error)
  • [general] - Promo code apis seriously slow
  • Investigate and resolve issues with the gift card table
  • Kojump Gembloux - promo codes status partially validated

Booking widget

  • Millennium - Addon issue in BW
  • No route found for GET /en/group/NaN/offer
  • Flex Ticket Option for Add on
  • [IPR] - [Payment with no ticket on Kiosk]

Payments

  • Fort Chillon - Issue with Family Ticket Payment Amounts

Covers releases shipped between Mon 05 Jan and Sun 11 Jan 2026.

Scroll to top