Skip to main content
All updates
Bug fixPoint of SaleMembershipsPasses·2026.09.12·

Native register preserves the reviewed Flexible pass selection

The release candidate preserves the chosen Flexible option and reviewed price in staff register sales, and rejects results from an obsolete venue or account.

# Native POS Flexible option identity (2026-09-12)

Staff native POS one-time Flexible sales send `{ kind: 'option', optionId }` on `POST /admin/pos/sale` and `POST /admin/pos/flexible-pass/preview`, matching `passSelectionSchema`. Recurring Flexible memberships use `POST /admin/memberships/preview` and `POST /admin/memberships` with fields `selection_kind` / `quantity` / `option_id` and echo the preview `flexible_quote` on create. Snake-case `option_id` inside a sale/preview `flexible_selection` object is invalid. No public Consumer/Branded checkout change.

The companion native repair also invalidates old operation results across venue
A-to-B-to-A and account changes, including card authentication and membership
finalization. An uncertain original transaction must be checked before retrying;
switching venue does not authorize a replacement charge. Root verifies actual
native request builders against server schemas and the selection engine. These
are release-candidate changes: canonical server deployment, signed-device and
payment/fulfillment acceptance are separate gates, not implied by these checks.
Next update

Failed membership setup cleanup keeps promotion records consistent

This repair is a release candidate until migration 20261020000088 completes the required staging and production checks.