Pay in Person (Cash at Session)

Let buyers book without paying online — the seller collects cash directly at the session. Bookings are still created, confirmed, and tracked in the dashboard exactly like paid bookings, but Stripe checkout is skipped entirely.

The Short Version

Two-level toggle. The marketplace owner first enables Allow pay in person on a listing type (Hockey, Tutoring, Massage — whichever booking-style types they want it on). Then on each listing of that type, the seller (or owner) flips a per-listing Allow pay in person at session toggle. When buyers book that listing, the booking is created instantly with a "Pay at session" badge throughout the UI and emails — no Stripe redirect, no card details, no online charge.

When to Use This

Built for service marketplaces where sellers prefer cash and don't want online-payment friction blocking signups during ramp-up:

  • Hockey / soccer / sports training sessions
  • Music / language / tutoring lessons
  • Massage, physio, beauty, or other wellness appointments
  • Local services (cleaning, repair, tutoring) where the seller hasn't set up Stripe yet
  • Any case where the seller wants to fill the calendar first and worry about online payment later

Setup — Marketplace Owner

Enable the feature once per listing type so it's available to all sellers (or to you, if you create listings on their behalf).

  1. Go to Store Settings → Listing Form.
  2. Pick the listing type (e.g., "Hockey") and confirm Calendar & Availability is set to either Date Range or Date + Time Slots. The toggle only shows for booking-style listing types — physical-product types don't have a session to pay at.
  3. Toggle Allow pay in person on. Save.
  4. Sellers (and you, in admin mode) will now see a Payment Options section on every listing of that type.

Per-Listing Toggle

Once enabled at the listing-type level, every listing of that type gets a per-listing override:

  1. Open the listing in the seller dashboard (or admin mode).
  2. Scroll to the Payment Options section.
  3. Check Allow pay in person at session. Save.

Different listings of the same type can have different settings. Hockey training session #1 can be cash-at-session while #2 takes online payment via Stripe — entirely the seller's call per listing.

What the Buyer Sees

  • On the listing page: an amber 💵 Pay at session notice above the Book button — "No online payment is taken now — you'll pay the seller directly when you arrive."
  • In the booking modal: the same notice above the price summary, plus the submit button label changes from Book & Pay / Request to Book to Confirm Booking.
  • After booking: a confirmation email with a "Please bring $X in cash to the session" callout instead of a paid receipt.
  • On their My Bookings dashboard: an amber "Pay at session" block, no Pay Now button, the cash amount clearly shown.

What the Seller Sees

  • Booking notification email: includes a "Pay-in-person booking — the buyer will pay you $X in cash at the session" callout.
  • Manage Bookings: a 💵 Cash owing badge next to the booking status, and the price line reads Cash to collect: $X (full amount, no Stripe fee or commission deduction since money never flows through the platform).
  • Approve / Decline (manual approval flow only): the seller still approves or declines the booking like any other request — the only difference is no payment link is sent on approval. The buyer is told their booking is confirmed and to bring cash.

Auto-Approve vs. Manual Approval

Pay-in-person works in both flows but the timing differs:

Auto-approve on

Booking is confirmed instantly when the buyer hits Book. No Stripe redirect, no payment-pending state. Both buyer and seller get a confirmation email immediately.

Manual approval

Standard request flow: booking goes to PENDING, seller gets a request email, buyer is told to wait. When the seller approves, the booking is confirmed and the buyer's approval email simply tells them to bring cash — no payment link.

Things to Know

No automated commission collection

Because the buyer pays the seller directly in cash, the platform never takes a cut. If you charge sellers a commission, you'll need to bill them separately for cash-bookings (e.g., monthly invoice). Online-paid bookings still net commission automatically — only in-person ones are uncollected.

Coupons aren't applied to cash bookings

If a buyer enters a coupon code on a pay-in-person listing, the code is captured on the booking but not validated or discounted (coupon validation lives in the Stripe checkout flow that we skip). The seller can honor the discount manually if they see the code on the booking.

No automated "mark collected"

The seller dashboard shows the booking as confirmed with cash owing, but there's no built-in "mark cash collected" action yet. Sellers track collection in their own bookkeeping. We may add this if multiple customers ask for it.

Pay in Person (Cash at Session) | Prometora Docs