Payments
Checkout
Process payments for bookings and walk-in sales. Supports cash, external card, card terminal, Tap to Pay, gift cards, packages, discounts, split payments, and saved card on file.
Last updated 4 August 2026
Process payments for bookings and walk-in sales, add services and products to the cart, apply discounts, tips, and gift cards, then charge via cash, external card, card terminal, or Tap to Pay.
Where to find it. Web: Click a booking on the calendar → Check out, or use the command palette (Cmd/Ctrl+K) → New Booking / Walk-in. Mobile: Booking detail → Check out, or Walk-in for ad-hoc sales.
TL;DR
- Booking checkout follows the venue's Fast checkout or Track service stages setting. Fast checkout is the default for existing and new venues.
- Starting checkout validates appointment timing, consent, age/ID, authority, pricing, and existing payment/order state before the cart opens.
- Use External card when a customer pays on a configured separate EFTPOS or card provider outside OpenChair.
- Only Owners and Managers can apply discounts or void completed orders; Stylists can only edit prices within the service's configured min/max range.
- Walk-out checkout charges the saved card on file with one tap, it shows "Review required" if the order was modified from the original booking.
- Eligible cash and external-card payment entries made offline are saved locally as Pending sync. They are not marked paid until the server records them and, when required, completes the order after connectivity returns.
Overview
Checkout lets you:
- Build an order from a booking or create a walk-in sale with no prior appointment
- Add services, retail products, and gift cards to the cart
- Adjust prices, reassign items to different team members, and apply discounts
- Add a tip attributed to a specific team member
- Redeem a gift card or apply a prepaid package
- Accept payment by cash, external card, card terminal (Stripe Terminal reader), or Tap to Pay (mobile)
- Split payment across multiple methods
- Charge a saved card on file for eligible walk-out appointments (one-tap checkout)
- Send a receipt via email or SMS after payment
- Book the customer's next visit from the success screen
Opening checkout
Checkout can be opened from any booking on the calendar or as a new walk-in sale with no prior appointment.
From a booking
- Click or tap a booking on the calendar.
- Choose Check out. In Track service stages, first use Arrived and Start service.
- The checkout sheet opens with the booked service pre-loaded in the cart.
If the booking already has an order, the existing order reopens instead of creating a new one.
If checkout is interrupted after it starts, the booking may show Resume checkout or Take payment. This is expected: the open order is saved and the appointment is not rolled back to a misleading earlier status. A price-on-application service can open checkout for price entry, but checkout cannot be completed until its final price is entered.
Walk-in sale
A walk-in sale creates an order with no booking attached.
- Web: Open the command palette (Cmd/Ctrl+K) and select New Booking / Walk-in.
- Mobile: Tap the Walk-in button to navigate to the checkout screen.
The walk-in checkout includes a Walk-in Customer section at the top where you can search for an existing client or enter a name and optional phone number, then tap Save Details.
Managing cart items
For appointment checkout, the cart separates Appointment services from Additional charges. Counter sales keep a single Items section.
Adding items
- In appointment checkout, choose Add charge only. In a counter sale, choose + Add Item (web) or Add Item (mobile).
- Search or browse the quick-add menu. Appointment checkout separates Service charges and Products; the Products group is hidden when the venue has no products. Gift cards remain available where supported.
- Click or tap an item to add it to the order.
When the cart is empty, a placeholder reads "Cart is empty".
Changing the price
Choose Adjust price beside an item, enter the new amount and a required reason, then save. For POA services, the action is labelled Set price. If the item was already adjusted, Reset to original restores its booked or added price.
| Role | Price editing |
|---|---|
| Owner / Manager | Can set any price freely |
| Stylist | Can only adjust within the service's configured minimum and maximum price range |
The original price is preserved for audit and appears beside an adjusted amount. Membership-covered lines cannot be adjusted until the membership redemption is reversed.
Changing appointment services
Choose Edit appointment in the Appointment services section to update the appointment itinerary, including its timing and staff assignments. Use Back to checkout to leave the editor without applying the draft, or review the preview and apply the changes.
Editing the appointment replaces only the booked-service lines. Products and service charges under Additional charges remain in checkout and do not change appointment timing. If a booked service has a manual price adjustment, applying service changes replaces that adjusted price with the price shown in the appointment editor, so review prices again before payment.
The action is unavailable after an unsafe payment or while discounts, credits, gift cards, packages, loyalty, or memberships are applied. Checkout explains what must be reversed first.
Reassigning a team member
If your venue has two or more team members, each cart item shows the assigned team member's name with a coloured dot. Click or tap the name to open a picker and reassign the item to a different team member. This affects:
- Which team member earns commission on the item
- Which team member the tip is attributed to
Solo operators (single team member) see the team member name as static text with no picker.
Removing items
Additional charges have a trash icon on the right. Booked-service lines cannot be removed individually; use Edit appointment so the appointment schedule and checkout stay aligned.
Selling a gift card
You can sell a gift card directly from checkout:
- Click + Add Item and select Sell Gift Card.
- Choose a preset amount ($25, $50, $100, $150, $200) or enter a Custom amount.
- Optionally enter a Recipient name (placeholder: "e.g. Sarah").
- Click Add to Order : $XX.XX.
The gift card is added as a line item. It is issued automatically when the order is completed.
Discounts
Only Owners and Managers can apply discounts.
- Click + Add Discount (web) or tap the discount section (mobile).
- Choose a preset (10%, 20%, 100%) or enter a Custom dollar amount.
- Click Apply.
The discount appears in the order summary as a green line showing the amount deducted. A reason can be recorded for audit purposes (e.g. "Loyalty", "Comp"). To remove a discount, click the trash icon next to it.
Gift card redemption
Any team member can redeem a gift card at checkout.
- Click + Add Gift Card in the modifiers section.
- Enter the gift card code (placeholder: "GIFT-XXXXXXXX").
- Click Check to verify the card.
- A preview shows the Card balance, Applied to order, and Remaining balance.
- Click Apply to redeem.
The redeemed amount appears in the order summary as a green line. Only one gift card can be applied per order. To remove it, click the trash icon next to it.
If the gift card covers the full order balance, the payment button changes to "Complete (Gift Card)": no additional payment method is needed.
Packages
If the customer has an active prepaid package (service pack or combo), the package section appears automatically in checkout. Packages show the package name, remaining units, and an Apply button that covers the matching service at no charge.
A package badge indicates the type: Combo or Bundle. If the package expires within 14 days, an amber warning badge appears. For prepaid stored credit, the customer uses a gift card instead.
Tips
When a team member is assigned to the order, the tip section appears.
- Click + Add Tip (web) or tap a tip preset (mobile).
- Choose a preset (10%, 15%, 20%) or enter a Custom amount.
- The tip is attributed to the assigned team member.
On mobile, a No Tip option is also shown. To remove a tip on web, click the trash icon next to it in the summary.
Order summary
The order summary shows a running total of all cart items, deductions, taxes, and tips.
| Line | When shown |
|---|---|
| Subtotal | Always |
| Deposit Paid | If a deposit was collected at booking time (shown as a green deduction) |
| Discount | If a discount is applied (green, with trash icon to remove) |
| Gift Card | If a gift card is redeemed (green, with trash icon to remove) |
| Package | If a package is applied (green, with trash icon to remove) |
| Tax | Always, shows the tax label (inclusive or exclusive) and rate percentage |
| Tip | If a tip is added (with trash icon to remove) |
| Total | Always, bold, large font |
Tax is calculated based on your venue's tax mode (inclusive or exclusive) and country. The rate is applied to the taxable amount (subtotal minus discount).
Payment methods
OpenChair supports cash, External card, Stripe Terminal card readers, Tap to Pay (mobile), and saved card on file as payment methods.
Cash
- Select Cash as the payment method.
- A Cash Payment screen shows the amount due and preset buttons for common denominations.
- The first button shows the exact amount with an (exact) label.
- Tap a preset or enter a custom amount.
Card terminal (Stripe Terminal reader)
A physical card reader connected to your Stripe account.
- Select Terminal as the payment method.
- The Present Card screen appears with instructions: "Please instruct the customer to present their card to the terminal for $XX.XX."
- The status updates as the reader processes: "Waiting for tap or insert..." → "Processing payment..." → "Payment succeeded, finalising..."
- Click Cancel Payment at any time to abort.
If no readers are registered, the terminal option shows "No readers registered" with a refresh button.
If the reader does not respond within 2 minutes, a "Payment Timed Out" message appears with advice to check the reader is powered on and connected to Wi-Fi.
External card
External card records a card payment taken through a separate EFTPOS or card provider outside OpenChair.
- Confirm the customer's payment is approved on the separate card terminal.
- If one external terminal is configured, select the terminal name, such as Square.
- If multiple terminals are configured, select External and choose the provider.
- Add a receipt or batch reference only if you need it.
- Complete the order once the balance is paid.
External card does not create a Stripe charge and does not settle in your Stripe payout.
Tap to Pay (mobile only)
Tap to Pay uses your phone's NFC hardware to accept contactless card payments, no physical reader required.
- Select Tap to Pay on the payment screen.
- The screen shows: "Hold the customer's card near the top of your phone for $XX.XX."
- Status updates: "Preparing Tap to Pay..." → "Hold card near your phone" → "Confirming payment..." → "Payment Successful"
Tap to Pay is available in Australia, New Zealand, and the United Kingdom. iPhones in New Zealand are currently excluded due to an Apple restriction.
Saved card on file
If the customer has a card saved on their profile, a button showing the card brand and last four digits (e.g. "Visa ····4242") appears as a payment option. Tapping it charges the card directly.
Split payments
To split an order across multiple payment methods:
- Click "Split between methods" below the payment buttons.
- The split payment panel opens, showing a method selector such as Cash and External card for manually recorded portions.
- Enter the partial amount.
- Optionally enter a Payer label, such as a client name, family member, or cardholder note. The field placeholder is Optional and stores up to 80 characters.
- Use Remaining to fill the outstanding balance, or Equal share when the order can be split evenly across another payment entry.
- If the portion is External card and more than one terminal is active, choose the provider.
- Click "Record payment".
- The payment ledger updates, showing each recorded payment with a checkmark and the remaining balance. If a payer label was entered, the ledger shows it before the payment method.
- Repeat with a different method until the balance is zero.
- Click "Charge $XX.XX" to record the final payment.
Once a split payment has been recorded, the split mode cannot be cancelled, you must complete the order.
Walk-out checkout (card on file)
Walk-out checkout lets you charge a customer's saved card after their appointment, a single tap to complete and charge, no manual payment step needed.
How it works
When a booking is marked as completed and the customer has a saved card, a walk-out charge banner appears on the booking detail:
| Banner state | What it means |
|---|---|
| Eligible (green) | Card on file is valid. Shows the amount and card details (e.g. "$85.00 on Visa ····4242"). If a deposit was collected, shows "deposit already applied". Tap to charge. |
| Review required (amber) | The order was modified from the original booking. Reason tags explain why: "Tip added", "Discount applied", "Gift card applied", "Price changed from booking", "Card needs updating", "Card has expired", or "Recent charge failure". Use standard checkout instead. |
| Blocked (grey) | No card on file. Message: "No card on file, use standard checkout". |
| Pending (grey, pulsing) | Charge in progress. Shows "Charging [card]…" |
| Failed (red) | Charge was declined. Shows failure reason. Use standard checkout to retry with a different method. |
| Success (green) | Charge completed. Shows the amount charged. |
Enabling walk-out checkout
Walk-out checkout must be enabled by a venue Owner:
- The venue must have Stripe Connect configured with charges enabled.
- The customer must have a saved card with consent status of "consented".
Rebook at Checkout (Prebooking Panel)
After a successful payment, the checkout success view surfaces a prebooking panel directly below the "Paid" headline. Three pre-snapped chip CTAs (typically +4 / +6 / +8 weeks from the appointment just completed) resolve in parallel on mount with the customer's preferred stylist where possible.
- Tap a chip → creates the next booking instantly and shows an inline same-screen confirmation.
- Preferred stylist unavailable → silently falls back to "any stylist" with an explicit "{Name} unavailable" caption.
- Pick a different day opens a calendar with a follow-up slot-grid picker.
- More times rotates through additional matched slots.
The panel works on web and mobile. Skipping it does not lose the option; the customer's normal rebooking nudges still fire from the birthday-and-rebooking automations. A client who rebooks at checkout is automatically excluded from the later automated nudge.
On mobile, the panel shows suggested next-visit chips, More times when alternate slots are available, and Skip for now. The web-only Pick a different day control opens the calendar and follow-up slot grid.
Hosted receipt + PDF
Once payment completes, a hosted receipt page is available via a customer-facing URL. The customer can view the receipt in their browser, download a PDF, or have it emailed automatically. The receipt mirrors your venue branding and includes itemised line items, tax, payment method, and any tips.
Completing the order
After payment is recorded, the success screen confirms the order, sends a receipt, and offers to book the customer's next visit.
- The checkout transitions to the success screen.
- A green checkmark shows "Paid $XX.XX" with either "Appointment completed" or "Walk-in sale completed".
- Product stock is decremented automatically.
- If the customer is in your loyalty programme, points are earned automatically.
- The customer's total spend and visit count update on their profile.
Sending a receipt
On the success screen, click or tap "Email Receipt". The button shows "Sending…" while processing, then changes to "Receipt sent" with a green checkmark.
The receipt includes: venue name, customer name, order reference (RCT-XXXX), itemised list with prices, subtotal, tax, tip, discount, and total, plus the venue's address, phone, and email. If a tax registration number is configured, it appears on the receipt.
Receipts can also be sent via SMS if the customer's phone number is available.
Booking the next visit
For booking orders, a prebooking panel appears on the success screen:
- Choose an interval: 4 wks, 6 wks, 8 wks, or Custom.
- Browse available time slots with date navigation.
- Select a slot to book. A confirmation message appears: "Next visit booked" with the service, team member, and date/time.
Voiding an order
Only Owners and Managers can void a completed order. Voiding:
- Creates reversal transactions for all recorded payments
- Restores product stock (if the order was already completed)
- Reverses gift card redemptions and voids gift cards sold on the order
- Reverses loyalty points earned
- Resets the booking payment status to unpaid
A reason is required when voiding an order.
Warning
Voiding an order reverses all financial records associated with it, including gift cards issued, loyalty points earned, and customer spend totals. This action cannot be undone.
Offline payments
If your device loses internet connection, a banner appears: "You are offline. Payments will sync later." with a count of pending transactions (e.g. "(2 pending)").
Eligible cash and external-card payment entries are queued locally and sync automatically when connectivity is restored. A queued entry is labelled Pending sync, does not send a receipt, and is not considered paid until server sync succeeds. Each offline transaction has a unique ID to prevent duplicate payment records; failed completion attempts remain queued for retry.
If payment succeeds but checkout does not refresh
A payment and the screen refresh are separate steps. If OpenChair confirms the payment but cannot reload the latest order or booking, follow the recovery action shown on screen:
| Message | What it means | Safe action |
|---|---|---|
| Payment completed; refresh needed | The payment and checkout completion succeeded, but current details did not load. | Do not charge the customer again. Select Refresh details. |
| Payment recorded; refresh needed | The tender was recorded, but the latest balance did not load. | Do not record or charge it again. Select Refresh details. |
| Payment recorded; checkout incomplete | The tender was recorded, but the completion step failed. | Do not charge again. Select Complete checkout; this retries completion only, not the payment. |
| Checkout completed; refresh needed | Checkout is complete, but the success details did not load. | Do not collect another payment. Select Refresh details. |
These recovery actions reconcile the existing order. They do not create another tender. If a payment is labelled Pending sync, it has not yet been confirmed by the server; wait for sync rather than recording a replacement payment.
Unpaid balance guard
If you try to close the checkout sheet with an unpaid balance, a dialog appears:
- Title: "Unpaid balance"
- Message: "$XX.XX is still outstanding for this booking. You can return to collect payment later."
- Options: "Continue paying" (returns to checkout) or "Close without paying" (closes the sheet)
Role access
All team members can process payments; discounts and voiding are restricted to Owners and Managers.
Checkout on a shared workstation
A staff member must claim the workstation with their own four-digit PIN before starting checkout. The order, workstation and acting operator are recorded together for audit.
- Web workstations support cash and a registered physical card reader.
- Native iOS and Android workstations also support Tap to Pay when it is configured, supported and ready.
- A provider payment attempt belongs to the operator who started it. If its result is uncertain, use the displayed Resume payment hand-off, Retry payment status or Resume payment check action instead of charging again or changing operators.
- If the payment hand-off has not started, an Owner or Manager can recover it after five minutes.
- A blocked compliance check can request Approve this checkout only. An eligible Owner or Manager enters their personal PIN to approve the exact booking and reason for five minutes. This does not unlock discounts, reports, settings or broader management access.
Completing checkout does not automatically lock the workstation. Select Lock now when handing over, or leave it to lock after 15 minutes without deliberate interaction.
| Action | Owner | Manager | Stylist |
|---|---|---|---|
| Open checkout and process payments | Yes | Yes | Yes |
| Add/remove cart items | Yes | Yes | Yes |
| Change item price (any amount) | Yes | Yes | No (range-limited) |
| Apply discount | Yes | Yes | No |
| Redeem gift card | Yes | Yes | Yes |
| Apply tip | Yes | Yes | Yes |
| Void a completed order | Yes | Yes | No |
| Enable/disable walk-out checkout | Yes | No | No |
Platform differences
Most checkout features work on both web and mobile, with Tap to Pay exclusive to mobile.
| Feature | Web | Mobile |
|---|---|---|
| Entry point (booking) | Click booking → Check out | Booking detail → Check out |
| Entry point (walk-in) | Command palette → New Booking / Walk-in | Walk-in button → checkout screen |
| Quick-pay mode | Yes, for simple single-service bookings (Card / Cash buttons) | No separate quick-pay; full checkout always shown |
| Tap to Pay | Not available (browser limitation) | Available on supported devices (AU, NZ, GB) |
| Card terminal | Stripe Terminal JS SDK | Custom Expo native module (iOS Swift / Android Kotlin) |
| Discount presets | 10%, 20%, 100% | Custom amount input |
| Tip presets | 10%, 15%, 20% + custom | No Tip, 10%, 15%, 20% |
| Gift card sale | Quick-add menu → presets ($25 to $200) + custom + recipient | Bottom sheet → same presets + custom + recipient |
| Prebooking (next visit) | Yes, on success screen with interval buttons, More times, Pick a different day, and slot picker | Yes, on success screen with suggested chips, More times, and Skip for now |
| Receipt delivery | "Email Receipt" button on success screen | "Send Receipt" button on success screen |
| Offline indicator | Banner: "You are offline. Payments will sync later." | Same banner |
| Walk-out charge banner | On booking detail (same states) | On booking detail (same states) |
Troubleshooting
| Issue | Solution |
|---|---|
| No payment methods showing at checkout | Ensure your venue has Stripe Connect configured. Card terminal and Tap to Pay require Stripe. Cash is always available as a fallback. |
| "No readers registered" message | No Stripe Terminal readers are linked to your venue. Set up a reader in your Stripe Dashboard, then click the refresh button in the checkout footer. |
| Card terminal shows "Payment Timed Out" | The reader did not respond within 2 minutes. Check that the reader is powered on, charged, and connected to Wi-Fi. Try clicking Go Back and starting the payment again. |
| Tap to Pay not appearing as an option | Tap to Pay is only available on mobile in Australia, New Zealand (Android only), and the United Kingdom. Ensure your device supports NFC and your venue has Stripe Connect configured. |
| Cannot apply a discount | Only Owners and Managers can apply discounts. Stylists do not have permission to discount items. |
| Gift card code not accepted | Verify the code is correct (format: GIFT-XXXXXXXX). The card must be active, not expired, and belong to your venue. If the card balance is zero, it cannot be applied. |
| Walk-out charge shows "Review required" | The order was modified from the original booking (e.g. tip added, price changed, discount applied). Use standard checkout (Cash, Terminal, or Tap to Pay) to collect payment instead. |
| Walk-out charge failed | The customer's saved card was declined. Use standard checkout to collect payment with a different method. The failure reason is shown on the banner. |
| Price edit not saving for a Stylist | Stylists can only adjust prices within the service's configured minimum and maximum price range. If you need to set a price outside this range, ask an Owner or Manager. |
| Order shows "Unpaid balance" when closing | Payment has not been fully recorded. Either continue paying or click "Close without paying" to leave the order open for later. |
FAQ
How do I start a checkout?
Open a booking and choose Check out on web or mobile. Venues using Track service stages use Arrived, Start service, then Check out. For walk-in sales, use the command palette (Cmd/Ctrl+K) → New Booking / Walk-in on web, or the Walk-in button on mobile.
Can I split a payment between multiple methods?
Yes, click Split between methods below the payment buttons, enter the partial amount for the first method, record it, then repeat with a different method until the balance is zero. Once a split payment has been started, you must complete the order.
How do I apply a discount at checkout?
Click + Add Discount and choose a preset (10%, 20%, 100%) or enter a custom dollar amount, then click Apply. Only Owners and Managers can apply discounts. Stylists cannot.
How do I void an order?
Only Owners and Managers can void completed orders. The void reverses all financial records, payments, gift cards, loyalty points, and product stock, and cannot be undone. A reason is required.