Door POS & Tap to Pay
Turn your phone into a box office. From the Modality mobile app you can sell tickets at the door with cash, a comp, an external card, Tap to Pay on iPhone, a Bluetooth Stripe reader, or a keyed-in card, all against the same event, ticket types, and inventory as your online sales. This guide covers every tender, how the POS order channel works, and how to pair a reader.
Screenshot: the Sell at Door screen in the mobile app, ticket steppers, the Payment tender list (Tap to Pay, Cash, Reader, Manual card, Card (other), Comp), the optional buyer fields, and the sticky total footer.
Demo GIF / screenshot to be added
How Door Sales Work
Door sales live in the mobile app, on an event's Sell at Door screen (switch to it from the check-in tabs at the top of any event's door tools). Unlike online checkout, a Stripe redirect that mints the ticket later from a webhook, a box-office order is minted synchronously: the moment the sale is recorded, the order is marked COMPLETED, the tickets exist, and they're valid for check-in immediately.
Every box-office order is stamped with the POS channel and the tender that was used, so your reports can tell door revenue apart from online sales and break it down by how it was paid. POS reuses the exact same rules as online checkout:
- Oversell-safe capacity, the same atomic reservation guards ticket-type and per-showing inventory, so the door can never sell past capacity.
- Per-showing tier scope, for multi-showtime events, only ticket types offered at the selected showing can be sold.
- Required-base floor, if a tier is marked as a required base, add-ons can't be sold without it (the cart auto-includes the base).
- Dynamic pricing, prices resolve through any attached time-based, demand-based, or tiered pricing rule, exactly as they would online.
The Six Tenders
On the Sell at Door screen, choose tickets and quantities, then pick how the buyer is paying. Which tenders appear depends on the device and how your workspace is set up (see each below).
- Tap to Pay, accept a contactless card or Apple Pay on the iPhone itself, no extra hardware. Card-present; charged on-device. iPhone-only and gated on Apple's entitlement (see below).
- Cash, record a cash sale. Nothing is charged through the app; the order records the amount due at the current effective price.
- Reader, charge a card on a connected Bluetooth Stripe reader (WisePad 3, Stripe M2, or Chipper). Card-present, on the same rail as Tap to Pay.
- Manual card, key a card in by hand via Stripe's payment sheet. No reader and no Apple entitlement, works on any device (including Android and iPad) as long as payments are connected.
- Card (other), a card you took on some other device or terminal outside Modality. It's recorded for your books but not charged here.
- Comp, a free / complimentary ticket. Total is $0 and no payment is taken.
Internally, the order's payment method is stored as CASH, COMP, or CARD_EXTERNAL for the non-card tenders, and all three card rails, Tap to Pay, the Bluetooth reader, and the keyed-in card, record as TAP_TO_PAY since they settle through the same Stripe card charge.
Cash, Comp & External Card
These three tenders take no payment through the app, so a sale completes in one step. They're the fastest path when you're handling money (or free entries) yourself.
- 1
Pick the showing (multi-date events only)
If the event has more than one showtime, tap the showing chip at the top. Only ticket types offered at that showing appear, and the showing's remaining capacity bounds the cart.
- 2
Set ticket quantities
Use the steppers to add tickets. If a tier is a required base, adding an add-on auto-includes it (shown as "Included with add-ons").
- 3
Choose Cash, Comp, or Card (other)
The running total reflects dynamic pricing; a comp sale shows
Free. - 4
Optionally add the buyer
Enter an email (and name) to email their tickets, or leave blank for a walk-up.
- 5
Complete the sale
Tap Issue tickets (comp) or Complete sale. Tickets are minted instantly and the success screen shows the ticket count and amount collected.
Tap to Pay on iPhone
Tap to Pay on iPhone lets you accept contactless cards and Apple Pay with nothing but the iPhone in your hand, no dongle, no reader. It runs on the same Stripe card-present rail as a hardware reader, and the card is charged on-device before the ticket is minted.
Requirements
- A supported iPhone, iPhone XS or later on the latest iOS. Tap to Pay is iPhone-only; it never appears on iPad.
- Payments connected, Tap to Pay pays out through your workspace's connected Stripe account (Stripe Connect). You're prompted to link it once if you haven't.
- Apple's entitlement, Tap to Pay requires Apple's proximity-reader entitlement, which ships in the app build. Builds without it (including the current App Store build) simply hide the tender.
- Owner or admin, only a workspace owner or admin can accept Apple's one-time Tap to Pay Terms & Conditions that enable it for the workspace.
One-time setup
Open Tap to Pay from Settings (or from Studio) to get the iPhone ready before your first sale:
- 1
Connect payments
If your Stripe account isn't linked yet, tap Connect payments and complete Stripe onboarding. You stay on your current plan.
- 2
Set up Tap to Pay
Tap Set up Tap to Pay. The app initializes the reader, then walks you through Apple's one-time Terms & Conditions and configures the on-device reader (this can include a short software update with a progress bar). No charge is taken during setup.
- 3
Ready
When it reports Tap to Pay is ready, you're set to accept cards on that iPhone. Jump straight to an event's door sales from the success card.
GIF: the Tap to Pay setup screen, Connect payments, then Set up Tap to Pay progressing through Preparing → Getting ready → Configuring → the 'Tap to Pay is ready' state.
Demo GIF / screenshot to be added
Taking a Tap to Pay sale
On the Sell at Door screen, Tap to Pay is listed first and selected by default on a supported iPhone. Add tickets, then press Tap to Pay on iPhone. The buyer holds their card or phone to the top of your iPhone; the iOS reader sheet reads the card, then a Processing… screen appears while the charge confirms, followed by a clear outcome, a success screen with the ticket count, or a Declined / Timed out / Payment failed screen with a Try again option. On a decline or timeout the app reassures you that the customer wasn't charged.
Pairing a Bluetooth Reader
Prefer dedicated hardware, or selling on a device without Tap to Pay? Connect a Bluetooth Stripe reader, a WisePad 3, Stripe M2, or Chipper. It uses the same card-present rail as Tap to Pay and needs no Apple entitlement. Pair it once and reuse it across sales for the session.
- 1
Choose the Reader tender
On the Sell at Door screen, select Reader. If nothing is connected yet, you'll see a Connect a reader prompt.
- 2
Power on your reader
Make sure the reader is charged, powered on, and nearby, then tap Connect a reader. The app searches over Bluetooth and lists what it finds.
- 3
Select your reader
Tap your reader in the list to pair it. Once connected, the screen shows the device type and battery level, with a Disconnect option.
- 4
Charge
Add tickets and press Charge on reader. The buyer taps, inserts, or swipes on the reader; the charge confirms and the tickets mint. The reader stays connected for the next sale.
Screenshot: the 'Connect a reader' bottom-sheet searching over Bluetooth and listing a discovered Stripe reader (device type + serial), plus the connected-reader state showing device type and battery percentage.
Demo GIF / screenshot to be added
Keyed-In (Manual) Card
When you have the card number but no reader, a phone order, or a card that won't read, use Manual card. It opens Stripe's secure payment sheet to key in the card details. There's no reader and no Apple entitlement, so it works on any device (including Android and iPad) as long as your workspace has payments connected.
- Add tickets and select Manual card.
- Tap Complete sale. Stripe's payment sheet opens with fields for the card number, expiry, and CVC.
- Enter the card details and confirm. The charge is processed as a direct charge on your connected account.
- On success the tickets mint and the success screen appears; if you cancel the sheet, nothing is charged.
Payments, Fees & Refunds
All three card tenders, Tap to Pay, the Bluetooth reader, and keyed-in card, run as Stripe Connect direct charges on your workspace's connected account, with the platform service fee collected as an application fee, exactly like online checkout. The amount is priced on the server (a card-present PaymentIntent for Tap to Pay and the reader, a card PaymentIntent for the keyed-in sheet) so the charge always matches the recorded sale.
- Comp sales are $0 and carry no fee.
- Cash and Card (other) record the amount due but aren't charged through Stripe here, so no platform fee is taken.
- Card charges carry the same plan-based platform service fee as online paid tickets.
Because card-present and keyed-in charges settle before the ticket is minted, any post-charge failure (sold out, or an error creating the order) triggers an automatic refund of that charge, and the held capacity is released, so you never end up charged without a ticket.
Walk-Ins & Digital Receipts
Leave the buyer fields blank and the sale is a walk-up: tickets attach to a shared walk-in contact and are valid for check-in immediately, no email needed at the door. A card read never hands you the buyer's email, so you can always send a receipt after the sale from the success screen.
- On the success screen, enter the customer's email in the receipt field (it's prefilled if you collected one up front).
- Tap Send. Modality re-homes the order and its tickets to that customer's contact (so it's no longer a walk-in) and emails the branded ticket confirmation.
- You can send another receipt at any time, useful if the address was mistyped or the buyer wants it resent.
Screenshot: the door-sale success screen, 'N tickets sold', the amount collected (or 'Comp, no charge'), the email-a-receipt field with Send button, and the New sale button.
Demo GIF / screenshot to be added
When a real buyer email is entered at checkout, their tickets are emailed automatically and they're upserted as a contact sourced from the door, so door buyers flow into your CRM just like online buyers. Either way the ticket QR codes are ready for check-in the instant the sale completes.