Docs/Door POS & Tap to Pay

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.
Prices are always computed on the server, the app never dictates the amount charged. For card tenders the authorized amount comes from a server-priced Stripe PaymentIntent, and the sale re-verifies it against Stripe before minting tickets.

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.

A buyer's email is optional at the door. Enter one and their tickets are emailed and attached to their contact record; leave it blank for a fast walk-up sale, the tickets are still valid for check-in immediately, and you can email a receipt afterward (see Digital Receipts).

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. 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. 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. 3

    Choose Cash, Comp, or Card (other)

    The running total reflects dynamic pricing; a comp sale shows Free.

  4. 4

    Optionally add the buyer

    Enter an email (and name) to email their tickets, or leave blank for a walk-up.

  5. 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.
Tap to Pay is rolling out under a development-distribution restriction, so it's enabled only in dev / ad-hoc builds on registered devices for now. Cash, comp, external card, the Bluetooth reader, and keyed-in card all work in standard builds today.

One-time setup

Open Tap to Pay from Settings (or from Studio) to get the iPhone ready before your first sale:

  1. 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. 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. 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.

If a Tap to Pay charge succeeds but the ticket can't be minted (for example the last seat sold out in the same instant), the charge is automatically refunded, you'll see a "sold out, payment refunded" message rather than a charged-but-no-ticket state.

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. 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. 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. 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. 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.

  1. Add tickets and select Manual card.
  2. Tap Complete sale. Stripe's payment sheet opens with fields for the card number, expiry, and CVC.
  3. Enter the card details and confirm. The charge is processed as a direct charge on your connected account.
  4. On success the tickets mint and the success screen appears; if you cancel the sheet, nothing is charged.
The Manual card tender only appears when your workspace has a connected Stripe account and a publishable key is available. If payments aren't connected, it's hidden.

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.

An event whose window is entirely in the past can't take a card sale, Stripe rejects a charge for an ended event, so the door screen shows a "This event has ended" warning. A recurring event with a future showing stays sellable.

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.

  1. On the success screen, enter the customer's email in the receipt field (it's prefilled if you collected one up front).
  2. 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.
  3. 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.