Skip to content

Guest booking and payments

Guests do not need a BUKMI login. They use:

  • Business hubhttps://<your-app-domain>/b/{business-slug}
    Lists active services (with search and layout options when there are many services).
  • Direct service pagehttps://<your-app-domain>/b/{business-slug}/{service-slug}
    Goes straight into booking that service.

Replace <your-app-domain> with the real host where BUKMI is installed (for example your production URL or .test in development).

Open the Business page (from the dashboard or your business list — the browser path looks like /businesses/{id}).

  1. Public booking page section — next to the shown URL, click Copy link. This copies the guest hub URL (your service list for clients).
  2. Services section — for each active service you can copy the direct service URL:
    • Copy link on the card layout, or
    • Actions (⋯ on the row) → Copy link in the table layout.

Button labels follow your account / UI language; the names above match the English interface.

Public routes are rate-limited to reduce abuse; normal use is unaffected.


The public page uses a wizard-style flow similar in spirit to staff Create booking, but only for active services and without logging in.

  • From the hub, the guest sees your active services (cards or list). With many services, search narrows the list.
  • From a direct link, this step is skipped — the service is already chosen.

Two modes (labels match the English UI):

  • Soonest available — shows the next open time slots in order; good for “first available”.
  • Calendar — month view: pick a day that has availability, then pick a time from the list for that day. Use month navigation to move forward.

If the business assigns performers to the service, the guest may choose who serves them, or leave “any available” — only slots where that person is free will appear.

  • Name and email are required.
  • Phone appears and may be required if you enabled that on the service.
  • Operational processing (required) — the guest must confirm that providing their details is necessary to perform the booking. Copy includes a link to the BUKMI Privacy Policy (platform document).
  • Marketing (optional, separate checkbox) — if the guest agrees, they may receive marketing from this business only; the choice is stored on the booking and on the Contact record for that business and email.
  • Service terms — if the business added optional Client terms on the service (Pricing section in service editor), the text appears on this step with an accept checkbox when terms exist. If empty, no terms block is shown.

See Contacts, consents, and client terms for how contacts and withdrawals work.

If your plan includes coupons and the service is paid, a coupon code field is shown. Valid codes apply the discount before payment; invalid codes show an error from the app.

  • Free or Pay on site — confirming creates the booking (usually confirmed or pending per your rules).
  • Paid online — the guest is sent to Stripe Checkout. Until payment succeeds, the booking may stay pending. See below.

When a service is Paid online and priced above zero:

  1. The booking is created in a pending state until payment is sorted.
  2. The guest is sent to Stripe Checkout (your business uses Stripe Connect Express — connected under Integrations).
  3. After successful payment, the booking is treated as confirmed according to product rules.
  4. If the guest abandons checkout, you may see pending payment status until the session expires; scheduled jobs can mark unpaid sessions as expired.

Pay on site and free services do not collect card payment through this checkout flow.


The guest usually lands on a confirmation / thank-you page with the visit summary. From there they may:

  • Download or add an .ics calendar file where offered,
  • Use a reschedule link if the business allows self-service rescheduling and the booking is eligible,
  • Complete payment if they were redirected back before paying.

They also receive a booking confirmation email (with a calendar invite where applicable). If they opted in to marketing for that business, the email includes a short notice and a link to withdraw marketing consent (no login required; updates the Contact for that business).


For staff, bookings can show payment states such as pending, paid, or expired (exact wording comes from the app’s translations). Pending while checkout is unfinished is normal until the guest pays or the session times out.


On plans that include coupons, you create codes under Coupons in the app. Guests enter the code during booking when the service is paid. Full options (percent vs fixed, limits, dates) are described in Coupons.


  • “No slots” — check availability rules, calendars blocking time, minimum lead time, and plan booking limits.
  • Payment loop — ensure Stripe Connect is completed and charges are enabled for the business.
  • Cannot reschedule — too close to the start time, wrong status, or payment still pending for online-paid bookings.