Session Invite Flow, Tiered Platform Fees & Invite Claiming
Merchants can now send fully branded session invites with service selection, an availability-driven slot picker, and a payment link in one flow. The platform fee is replaced with an official tiered formula, and pending invites are automatically claimed for all sign-in entry points.
Multi-step merchant session invite UI — select services, pick an availability-driven time slot, and send a branded invite email to a client in a single flow.
Optional client name and phone capture step in the invite flow; details are stored on the invite and backfilled to the client's profile on signup.
Server-side session invite processing — creates the invite record, optionally pre-books the session, generates a payment link, and sends a personalised invite email.
Invite token claiming for deep-link and web-link flows; marks the user as a customer and backfills name and phone from the invite.
Silent pending-invite claiming on every sign-in — automatically links all unclaimed invites matching a user's email, including cases where they signed up manually, paid before creating an account, or received invites from multiple merchants.
Platform fee shown as an explicit line item in session invite emails, displayed only when the fee is above R0.
Booking creation from merchant invite — linked to the invite and visible on the merchant's schedule immediately.
Availability-driven slot picker in the invite flow — queries real availability and blocks out already-booked times.
Merchant booking cancellation from the schedule view.
New tiered platform fee formula replacing the old flat-tier model — six tiers from a R1 floor (≤R50) through to the R5,000 transaction cap.
R5,000 transaction cap enforced at every checkout point — an error is returned if the subtotal exceeds the cap.
All checkout flows now derive fees from the shared tiered formula for consistency across the platform.
App environment URLs now read from server-side secrets instead of being hardcoded.
Payment split updated to use a flat ZAR amount model — merchants receive the full subtotal minus the applicable merchant fee.
Payment processor credentials updated to use environment-appropriate configuration.
Every sign-in now automatically triggers pending invite claiming in the background.
Scroll clipping on the services and slot picker steps in the add-client flow on both desktop and mobile.
Fixed a server error in the invite creation flow caused by a missing field reference.
Fixed client record not appearing after an invite was sent — caused by a silent booking creation failure.