Skip to main content
All updates
New feature·Sun Sep 13·

Service archive API companion

The Business app's service archive action now has a dedicated staff-JWT API companion: `POST /api/v1/admin/services/{id}/archive`, with an empty JSON object and a required Idempotency-Key. It uses the same organization-scoped archive core as web administration, including permission, franchise-lock, audit/webhook and cache behavior. Existing appointments are retained; this is service deactivation,

The Business app's service archive action now has a dedicated staff-JWT API companion: `POST /api/v1/admin/services/{id}/archive`, with an empty JSON object and a required Idempotency-Key. It uses the same organization-scoped archive core as web administration, including permission, franchise-lock, audit/webhook and cache behavior. Existing appointments are retained; this is service deactivation, not customer-history deletion.

A confirmed archive returns `{ok:true,write_warnings?}` inside the standard data envelope. Uncertain writes retain their idempotency claim and require exact-key recovery or an authoritative reload. Arbitrary body fields, tenant reassignment and notification instructions are refused. No customer notification, transaction, hosted mutation or app publication was exercised to validate this source change. Full native setup editors and device acceptance are separate checks; this adapter alone does not establish that parity.
Next update

Rooms panel floor-plan upload

Venue staff can upload a room floor plan only after the room exists. The form shows pending, saved, error, and unknown states, serializes upload with save/remove, and will not replace a newly finalized URL with a stale text field. Late responses from another room are ignored. Legacy external URLs remain editable. The upload flow does not request client notifications; no live operation was exercise