19 min read

My Bookings & Private Manage Links

Review signed-in bookings, open booking details, cancel or reschedule a booking online, and use private manage links safely.

Use My Bookings for appointments made while you were signed in. If you booked without signing in, use the private manage link shown after confirmation instead.

After the Appointments add-on ends

Existing bookings stay available. Signed-in customers can still list and open them in My Bookings; anyone with a valid guest manage link can still open that booking. Both paths continue to support Change time and Cancel booking when the booking's normal status and cancellation rules allow those actions.

Starting a new online deposit or balance payment is blocked after Appointments access ends, so Pay deposit, Pay now, or Pay balance cannot create a new gateway order. If a gateway order was already created before access ended, its payment verification can still finish. This is separate from new booking availability: /book stops new bookings while these existing-booking routes remain available.

Find signed-in bookings

Screen: Go to My Orders, then choose Bookings, or open /bookings. This is a signed-in-only screen; if you are not signed in, it sends you to the login page before showing your bookings.

The list has Upcoming and Past sections. An upcoming booking has not started yet and is not Completed, Cancelled, or No-show. The earliest upcoming booking appears first. Past includes bookings whose time has passed and any of those terminal statuses, with the most recent first.

Each booking row shows the offering, the selected resource (or Any available), its date and start time, and a status. Times use a 12-hour clock with AM or PM. Select a row to open Booking details at /bookings/:id.

If your bookings span more than one page, use Previous or Next. The screen shows the current page and total pages; Previous is disabled on page 1 and Next is disabled on the last page.

Empty and loading states

While the list is loading, it shows placeholder rows. If there are no bookings, select Book an appointment to go to /book. If the list cannot load, it displays “We couldn't load your bookings right now. Please try again.” There is no retry button on this screen, so refresh the page or return later.

Review booking details

Screen: In My Bookings, select a booking row. The Home and My Bookings breadcrumbs return to those screens.

The detail card shows:

  • the offering and selected resource, or Any available;
  • its status;
  • the date, start time, and end time;
  • the total;
  • Payment, a breakdown of what's paid, owed, and refunded (see below);
  • Cancellation reason, when a Cancelled booking includes one; and
  • Your answers, when the booking includes answers to its additional questions.

If the detail cannot be retrieved, the screen shows “We couldn't find that booking.” Select Back to My Bookings to return to the list. While it is loading, the detail card is replaced by a placeholder.

Payment

Below the core details, a Payment block always appears — the same component on both the signed-in detail page and the private manage-link page:

  • Total and Paid are always shown, even when nothing has been paid (Paid then reads the currency's zero amount).
  • Still owed only appears when the order has an amount due.
  • Refunded only appears once a refund has landed.

Three situations get their own note under the numbers, instead of just a bare figure:

SituationNote shown
A refund kept back part of the money under the cancellation policyFor example, ₹200.00 was retained under the business's cancellation policy. The amount matches the part of the payment that was retained.
A refund has been approved but hasn't reached the customer yetYour refund is being processed. It usually reaches your original payment method within 5–7 working days.
An automatic refund attempt failedWe couldn't complete your refund automatically. Please contact the business.

If the booking has no order at all yet — for example one taken with no deposit policy, before any charge exists — the Payment block shows a single line instead of the breakdown: No payment was required for this booking.

Cancellation control

Cancel booking now works online: whether it's clickable is decided by the server for this specific booking, not fixed at "always disabled." The button and the reason shown next to it always agree — the same server answer drives both.

Selecting Cancel booking while it's enabled opens a confirm step:

  1. Cancel this booking? — “This can't be undone. Any refund follows the business's cancellation policy.”
  2. Yes, cancel booking submits the cancellation; Keep booking closes the dialog without changing anything.

If the server had already blocked the booking by the time you submit (for example, someone else cancelled it, or the window closed while the dialog was open), the dialog closes, an inline error appears under the button, and the page quietly re-reads the booking so the control reflects the current state — the button is never left claiming an action it can no longer take.

When Cancel booking is disabled, the reason appears in the same place the confirm dialog would open from:

Why it's disabledText shown
The booking is already cancelledThis booking is already cancelled.
The booking was marked a no-showThis booking was marked as a no-show. Contact the business if that's wrong.
The booking is completeThis booking is complete.
The cancellation policy can't be read right nowCancellation availability is being confirmed. Contact the business via WhatsApp if you need help.
The booking is inside its cancellation windowFor example, Bookings can only be cancelled online more than 24 hours before the start time. Contact the business via WhatsApp if you need help. The number of hours follows the business's cancellation policy.

The "inside its cancellation window" case is time-based, so it can flip while the page is open: the portal holds a single countdown to the same deadline the server computed, and once that deadline passes it disables Cancel booking without needing a refresh. The countdown only ever moves the button toward disabled — it never re-enables one the server has blocked for any other reason.

Why can't a customer cancel this booking online?

Five things can block it, in this order: the booking is already cancelled, marked no-show, or complete; the store's cancellation-window setting is missing or invalid; or the booking is inside that window. A booking that's still awaiting payment or in progress can still be cancelled online — those two statuses only block Change time, not Cancel booking.

Reschedule control

Change time opens a picker for a new date and time on the same booking, without cancelling and rebooking it. It shares the enabled/disabled logic above, plus two reasons that only block rescheduling (cancelling is still allowed in both cases):

Why it's disabledText shown
The appointment has already started or the customer has checked inThis booking has already started, so it can't be moved. Contact the business if you need help.
The booking's deposit hasn't been paid yetFinish paying for this booking before changing its time.
The cancellation policy can't be read right nowRescheduling availability is being confirmed. Contact the business via WhatsApp if you need help.
The booking is inside its cancellation windowFor example, Bookings can only be changed online more than 24 hours before the start time. Contact the business via WhatsApp if you need help. The number of hours follows the business's cancellation policy.

Selecting Change time while it's enabled opens Pick a new time:

  • If the booking has an assigned resource, a note under the title reads, for example, Your booking stays with Dr. Rao. The name follows the assigned resource; rescheduling never reassigns staff or a room, only the date and time move.
  • A read-only line identifies the existing booking as Currently booked: {{date}}, {{time}}. The current start time itself is not offered as a choice.
  • A Date dropdown lists days over the next 14 days for that same offering and resource. It opens on the booking's own date when that date has another available time; otherwise it opens on the first date with times. If no returned date has a time, it opens on the first date and shows the empty state.
  • Every time uses a 12-hour clock with AM or PM. Selecting one marks its button as selected and enables Confirm new time; Keep current time closes the dialog with no change.
  • If a date has nothing open, the dialog says “No times are available on this date. Try another date.”
  • If the exact time selected gets taken by someone else between opening the picker and confirming, the dialog says “That time was just taken. Please pick another.”, clears the selection, and reloads the list for the same date in place — it does not close the dialog, so there's no need to reopen Change time and start over.
  • Any other rejection (for example the booking changed status in the meantime) closes the dialog; the page re-reads the booking so Change time reflects the current state.

After a successful change, the toast Booking rescheduled for {{date}} at {{time}}. names the new date and time. A time-collision rejection shows only the collision message and never this success toast.

Rescheduling never touches money

Confirming a new time only moves the appointment's date and time. It does not create, refund, or adjust any order, payment, or refund record — whatever was paid, owed, or refunded before the move is identical after it. This is also why a booking with an unpaid deposit can't be rescheduled (see the table above): rescheduling has no payment step of its own to collect it during the move.

What a business-processed cancellation can mean for payment

A customer's own online cancellation and a cancellation the business processes from the admin panel run through the exact same transition — there is no separate, weaker cancellation path for self-service. When either one cancels a paid booking, the booking payment policy is evaluated against the configured Cancellation window (hrs):

  • Before the window starts, captured booking payments are eligible for a full refund.
  • Inside the window, the configured booking deposit can be retained, up to the captured amount; the remaining captured amount is eligible for refund.
  • A no-show is different from a cancellation: it is forfeit-only and does not start a new charge or refund.

An online self-cancel can only ever produce a full refund

The Cancel booking deadline and the cancellation-window boundary above are computed from the exact same Cancellation window (hrs) setting. By the time a booking is inside that window, Cancel booking has already gone into "inside its cancellation window" and can no longer be clicked — so a customer-initiated online cancel always lands before the window starts, and always qualifies for a full refund. The partial-retention and no-show outcomes are only reachable when the business cancels the booking from the admin panel after the customer's own online option has closed.

Refund work is processed after the booking transition and can require reconciliation if the payment provider outcome is uncertain. The booking detail screen does not show refund progress beyond the Payment block above, so ask the business for the outcome instead of treating the cancellation status alone as proof that money has returned.

Paying an outstanding deposit or balance

Screen: A Pay deposit, Pay now, or Pay balance action can appear next to a booking on the My Bookings list and on that booking's Booking details page — both are signed-in screens. A customer who booked as a guest reaches the equivalent action from their saved manage link instead; see Paying an outstanding deposit or balance without signing in below.

Whether it appears, and which leg it opens, is now resolved from the booking's actual order, not guessed from the appointment's status badge:

The order's statePayment action
Payment status is pending, a deposit amount is still due, and the requirement is a percentage or fixed amountPay deposit opens the deposit leg
Payment status is pending, a deposit amount is still due, and the requirement is full prepaymentPay now opens the deposit leg
Payment status is partially paid, and a balance still remainsPay balance opens the balance leg
Fully paid, refunded, no order yet, or no self-service leg available (see below)No self-service payment action
Booking is Cancelled or No-showNo self-service payment action, even if the order still shows historical money due

A cancelled or no-show booking never offers a self-service payment action, regardless of what the order's own payment fields say — this status check runs before the leg is resolved, so it overrides even a stale order that still looks payable.

This replaces an earlier version of this page (and an earlier bug) where the CTA guessed the leg from the appointment's own status — Pending payment for the deposit, Confirmed for the balance. That guess broke for the single most common case: every booking is created Confirmed immediately, deposit paid or not (see Deposit policy and Unpaid deposits time out automatically), so a customer who left the mid-funnel deposit step unpaid came back to My Bookings, found their booking Confirmed, and got sent to the balance leg instead — which the server rejected outright. The order's own payment status and amounts are now what decide the leg, so an unpaid deposit on a Confirmed booking correctly reopens the deposit leg instead.

Selecting it opens the same payment screen used mid-funnel — see Paying a deposit for what it shows and how the Razorpay checkout behaves. Reached this way, the balance leg shows Pay outstanding balance with a Balance due amount and Pay balance button in place of the deposit copy.

The status shown here is only a hint

Whether anything is actually still owed is re-checked by the server when the payment screen loads, not trusted from this list. If the amount was already paid or refunded since the list last loaded, the screen redirects the customer back without ever showing a pay button.

A walk-in or no-deposit booking has no self-service payment action, even with a full balance due

A booking taken with no deposit policy — a walk-in, a POS sale, or any offering with no deposit configured — has no order at all yet (see Payment above), so there is no Pay deposit, Pay now, or Pay balance action to open: the deposit leg needs a deposit amount above zero, and the balance leg needs an order that's already partially paid. This booking gets an order only once the business collects payment from the admin panel's Collect payment action, which mints a full-charge order for the whole price — still with nothing paid on it yet. Until that happens, this booking has no customer-side self-service payment option at all. The channel for it is the admin's own Collect and record payment panel from the appointment's detail view, not a customer-facing self-service payment link.

Bookings made without signing in do not appear in My Bookings, because they are not attached to a signed-in account. After confirmation, a box shows a private /book/manage/:token link and a Copy button — titled Save your booking link for a booking that's confirmed outright, or Pay your deposit to confirm when the booking still owes a deposit (see Customer Booking Flow → Save the confirmation). The link works the same way either way; only the heading and body copy change. A customer who chose to also receive the link by WhatsApp or email on Details gets the identical link there — the on-screen box is the guaranteed copy regardless of whether that delivery arrives.

Copy the link after confirmation

Select Copy in Save your booking link. The button changes to Copied after a successful copy. If your browser blocks clipboard access, the link remains visible so you can select and copy it yourself.

Keep the link private

Anyone with the link can open the booking without signing in. Store it as carefully as you would any other private account link.

Use the link to manage the booking

Open the saved link to reach Manage your booking. It shows the same offering, selected resource or Any available, status, time, total, Payment breakdown, optional cancellation reason, optional answers, Cancel booking, and Change time as signed-in booking details — it is the identical component, so a guest gets the same enabled/disabled behaviour a signed-in customer would for the same booking.

Paying an outstanding deposit or balance without signing in

Screen: Open the saved manage link to reach Manage your booking. When the booking still owes money — the same Still owed figure described under Payment above — and the booking is not Cancelled or No-show, a Pay deposit, Pay now, or Pay balance button appears under the booking details, above Cancel booking and Change time. A cancelled or no-show booking can still show historical money due in the Payment breakdown, but never gets this button — those two statuses can't collect new money.

Selecting it opens the exact same payment screen used mid-funnel and from the signed-in payment action — see Paying a deposit for what it shows and how the Razorpay checkout behaves. The manage link's own token is the credential for this payment; there is no sign-in step anywhere in this path.

Which leg it opens is now resolved from the same server-owned leg signal the signed-in route uses, carried on the guest's booking response — it is no longer guessed from the two Payment figures alone:

What the booking response saysPayment action
Still owed, the server names the deposit leg, and the requirement is a percentage or fixed amountPay deposit opens the deposit leg
Still owed, the server names the deposit leg, and the requirement is full prepaymentPay now opens the deposit leg
Still owed, and the server names the balance legPay balance opens the balance leg
Booking is Cancelled or No-show, or nothing still owedNo self-service payment action

When a stale saved link is opened directly for a booking that's since been cancelled or marked no-show, the payment screen no longer falls back to a generic error — it recognises the terminal status and shows Payment unavailable with the message This booking can no longer be paid., plus a link back to Manage your booking. The screen and message are identical for both terminal outcomes — the copy doesn't say which one applies, so if a guest reports landing here unexpectedly, check the booking's status (Cancelled or No-show) in the admin panel to tell them why.

One case can still fall back to a guess — the server always has the final say

A booking taken with no deposit policy that the business later charged in full from the admin panel's Collect and record payment panel also shows Still owed with nothing paid yet. If the booking response omits the server leg signal for some older or edge-case flow, the page falls back to guessing from the two Payment figures the same way it always did, and that guess is indistinguishable, from this page alone, from a genuine unpaid deposit. Selecting Pay deposit on that kind of booking still opens the payment screen, but the server rejects the deposit leg outright; the screen recognises this and returns to Manage your booking without ever showing a pay button, the same protection already described under Paying an outstanding deposit or balance for the signed-in case. Nothing is charged twice and nothing breaks — that particular booking just doesn't get a working Pay deposit action.

After a successful payment, the guest is returned to Manage your booking, which reloads the booking from scratch — the Payment figures and whichever of Pay deposit, Pay now, or Pay balance is shown update to reflect what's now paid, exactly as if the page had been freshly opened.

Why isn't a payment action showing on my manage link?

Three reasons, all by design: the booking genuinely has nothing outstanding (no Still owed figure at all — see Payment above); the booking was taken with no deposit policy and has no order yet at all — the same walk-in/no-deposit case described in Paying an outstanding deposit or balance for the signed-in list; or the booking is Cancelled or No-show — even one that still shows historical money due, since a terminal booking can never collect new money. A guest never needs to sign in to see or use this action; if it's missing, that's because there is genuinely nothing self-service to pay, not because of the guest's auth state.

The confirmation screen also has Book another, which starts a new booking. For a signed-in customer, it additionally offers View my bookings, which opens /bookings; confirmations for a customer who is not signed in offer the saved-link box instead.

Save the link when it appears

The raw private manage link is shown only with the successful confirmation. If confirmation is retried after the booking already succeeded, the page says: “This booking is already confirmed. Use the manage link you were sent to view or update it.” It does not create a /book/manage/null link, and the original raw link cannot be shown again.

Open the saved link exactly as copied. A missing, mistyped, expired, or otherwise unrecognised link shows This booking link isn't valid. Select Book a new appointment to start at /book; the screen does not say which part of the link failed.

A temporary connection or server problem is different: Manage your booking shows “We couldn't load your booking.” Check your connection, then select Try again to reload the same link in place.

If you no longer have a private manage link, there is no recovery control in the customer portal. Contact the business for help.