The first and only US-based cloud POS with live GSX integration · Now open to the public

Invoicing & Payments

BenchOS connects to your own Stripe account. You are the merchant of record. Every card swipe, payment link, and subscription goes straight to you. BenchOS never holds or touches your revenue.

BenchOS Payments dashboard showing card transactions, payment links, and cash drawer status BenchOS Payments dashboard in light mode

Cards at the counter

Pair Stripe Terminal card readers and take tap, chip, or swipe payments right from the invoice. The charge is a direct charge on your connected Stripe account. You are the merchant of record, not BenchOS. Stripe bills you their standard processing rate. On the free plan, BenchOS adds a 0.5% platform fee; on Pro and AASP, there is no BenchOS fee at all.

  • Stripe Terminal: tap, chip, swipe, or manual entry
  • You keep a direct Stripe relationship. Deposits, disputes, refunds are yours
  • Pair multiple readers across locations from Settings
  • Reader auto-selects per workstation when you link a station
Card Payment
Amount$347.50
ReaderFront Counter
MethodTap · Visa ····4242
Payment succeeded

Payment links & invoicing

Generate a Stripe payment link from any invoice and send it by email or text. The customer pays online and the payment records itself. The invoice balance updates, the ticket reflects it, and there's nothing to reconcile.

  • One-click link generation from the invoice
  • Send via email or SMS (Twilio) with the Pay button embedded
  • Deposits and partial payments: collect a deposit up front, bill the rest at pickup
  • Balance tracking is automatic. The database owns the math
Payment Link
InvoiceINV-260905-JKS2
Balance due$589.00
Deposit paid$100.00
Email link Text link

Recurring subscriptions

Set up monthly or annual service plans, maintenance agreements, or device protection. Cancel, pause, or resume from inside BenchOS without logging into Stripe. The billing runs on your connected account. BenchOS shows MRR, renewal dates, and payment status.

  • Create subscriptions from any product with a recurring price
  • Cancel (at period end or immediately), pause, and resume in-app
  • MRR, ARR, and per-subscription metrics computed from Stripe
  • Failed-payment notifications routed to your Slack or email
Subscriptions
$2,847MRR
23Active
$34.2kARR
Next renewalSep 15, 2026
All payments current

Cash management & till

A full cash drawer workflow: set the morning float, accept cash payments through the day, and close with a blind count at night. BenchOS computes expected vs. counted and shows the over/short. The expected figure is revealed only after the count is entered, so it can't be fudged to match.

  • Morning float with denomination counter
  • Cash sales post to the ledger automatically
  • Pay-in, pay-out, and drop-to-safe with required reasons
  • X report (mid-shift) and Z report (end-of-day close)
  • Historical reconciliation across locations in Reports
  • Opt-in per location. Off by default. A till problem never blocks a card payment
Till Session
Opening float$200.00
Cash sales+$463.50
Drop to safe−$300.00
Expected$363.50
Counted$363.50
Balanced

Card on file

Save a customer's card securely through Stripe and charge it again for follow-up work, warranty deposits, or repeat service. No need to ask for the card number a second time. Card details live in Stripe, never in BenchOS. We store only the last four digits and the card type.

  • Save during any payment: card reader or online
  • One-click re-charge from the invoice
  • Cards stored in Stripe, masked in BenchOS
  • Staff and the customer portal can see saved methods
Saved Cards
Visa ····4242 09/28
Amex ····1003 03/27
Charge ····4242 → $247.00

Why your numbers are always right

Most repair-shop software computes totals in the browser: JavaScript adds up line items, applies tax, and writes the result to the database. It works until it doesn't. A partial page load, a stale cache, a race condition between two tabs, and the invoice says one thing while the payment link charges another.

The database owns the math

In BenchOS, every financial total (subtotals, tax, balances, payments totals, over/short) is computed by Postgres triggers from line items and payments. The application can create inputs (add a line, record a payment) but it structurally cannot author a total. A write that tries to set a money field is silently stripped before it reaches the database.

Balances can't drift

Because there is exactly one place that computes each number, there is no drift: the invoice, the ticket, the payment link, the PDF, and the customer portal all read the same value from the same source. A deposit collected yesterday and a card charge today net correctly by construction, not by hoping two code paths agree.

Built from the scars

This isn't a theoretical architecture decision. It was built after finding real invoices that showed "$0.00 Paid in Full" because line items hadn't finished loading, and payment links that billed the wrong amount because a cached total disagreed with the records. Those bugs are structurally impossible now.

Your shop's money, handled right

Cards, payment links, subscriptions, and cash drawers. All flowing through your own Stripe account, with totals the database guarantees. Start free. Upgrade when you need it.

More features

Repair Tickets Inventory & POs Apple GSX Customer Portal Multi-Location All features →