Quick Sale is the counter register. Somebody walks in with no appointment, buys an air freshener or a $60 headlight restoration, pays cash or hands you a card, and you need a receipt in under a minute. You'll find it in the sidebar under Customer flow → Quick Sale, or from the + New button in the header on any page of the app.
Understand one thing before anything else: Quick Sale records money, it does not charge cards. There's no card reader wired into this screen and no keyed-card form. If the customer is paying by card, you run that charge somewhere else — a terminal, or the card-on-file flow on a regular invoice — and then use Quick Sale to write down what happened. The screen even says so under the Card button: "Charge the card in the dashboard or use a saved card-on-file before submitting — we record the receipt here."
What Complete sale actually creates
One tap does all of this in a single database transaction — it all succeeds or none of it does:
- Creates a customer record, if you didn't attach an existing one
- Creates an invoice that is already marked PAID, with a normal invoice number, your line items, and the tax line
- Records a COMPLETED payment against that invoice for whatever a gift card didn't cover
- Redeems the gift card, if you applied one
There is no draft stage and no "collect payment later." The sale is closed the instant you tap the button. That's the entire point of the screen — and it's also why the last section of this article matters.
Who's allowed to ring one up
This is the first-week surprise. Completing a quick sale requires the Record payments permission, and by default only Owners and Admins have it. Managers, Service writers, Front desk, and Technicians are all set to off out of the box — including the front-desk employee this screen was built for.
On top of that, Front desk, Service writer, and Technician don't see Quick Sale in the sidebar at all; it's filtered out of their rail. The + New menu in the header still lists it for everyone, so they can reach the screen, fill out a whole sale, tap Complete sale, and only then get stopped with the raw server message: "You don't have permission to do this (requires "shop.recordPayments")."
To fix it, go to Settings → Team & Permissions → Permissions, click the person, and turn on Record payments. That grants it to that one person without changing their role. More on how the defaults are laid out in Set up team roles and permissions.
Adding the line items
Each row is a name, a price, a quantity, and a Tax checkbox that starts checked. Type the name free-hand ("Air freshener", "Hours of labor"), or hit Search catalog & inventory to pull from everything your shop sells — services, Sales Matrix tint/ceramic/PPF/flat-glass pricing, film SKUs, and inventory items. Picking a catalog row fills in the name and the retail price when that row carries one; for things priced by the foot or by the square foot there's no fixed price to copy, so whatever you typed stays.
A few real limits:
- Prices are dollars, entered plainly — "25", "$25", and "25.00" all work.
- Quantity has to be a whole number. Type 2.5 and the sale gets rejected. For half an hour of labor, put the number in the price instead.
- A $0 line is silently dropped. Rows with no name or no price never reach the sale, so you can't ring up a free add-on just to show it on the receipt. If nothing survives, you get "Add at least one line item with a label and price."
- No negative lines. There's no discount row and no way to type a minus — if you're knocking money off, type the discounted price.
- Fifty lines maximum.
Also worth knowing: selling an inventory item through Quick Sale does not reduce its stock count. The catalog picker copies the name and price and nothing else — every quick-sale line is recorded as a plain service line with no link back to the item. If you moved physical stock, adjust it yourself in Inventory.
Attaching a customer (or not)
The Customer card is optional. Start typing in Search existing customers (it needs at least 2 characters, and shows the top 8 matches) and click the person to attach them, or ignore it entirely.
If you skip it, SalesThumb still creates a customer row behind the scenes — that's how the invoice gets an owner. With the Or label the walk-in field filled in, you get a customer named whatever you typed ("Blue Tesla"). Leave it blank and you get one named "WALK-IN" with the date and time as the last name.
The gotcha: every anonymous quick sale creates a brand-new customer record, and those records show up in your Customers list like any other. Ring up twenty walk-ins on a Saturday and you have twenty new rows. If the person is a repeat customer, take the extra three seconds to search and attach them — that's what puts the sale on their history.
How tax is figured
Tax on this screen is your shop's single default rate (Settings → Sales Tax) applied to every line that still has its Tax box checked. The totals panel spells it out — your tax label, the rate as a percentage, and the taxable subtotal it's being applied to. Uncheck Tax on anything exempt; the on-screen hint suggests gift cards and prepaid service.
Here's the trap, and it's a genuine one: Quick Sale does not honor the tax-exempt flag on a customer. Regular invoices do — attach a tax-exempt customer there and the rate drops to zero automatically. Quick Sale never looks at that flag. If a resale or nonprofit customer walks in and you ring them up here, they get charged tax unless you manually uncheck Tax on every line. For a tax-exempt regular, it's safer to build a normal invoice. See Setting your tax rate for how exemptions are set up in the first place.
Payment method: Card, Cash, or ACH
Three buttons, and Card is preselected. That's the whole list — no check, no financing, no "other." Whichever you pick becomes the method on the payment record, which is what your end-of-day close breaks out by method.
Cash has its own gap worth planning around: a cash quick sale does not touch your cash drawer session. Drawer math is built entirely from the events you log by hand, so a $40 cash sale doesn't raise the expected drawer total and will show up as a $40 overage at close-out unless somebody logs a matching Cash drop. See How cash drawer sessions work.
Paying with a gift card
Click Pay with gift card, type the code, and hit Check balance — that's a read-only lookup, nothing is spent yet. If the card is good you'll see its balance and an amount field pre-filled with the smaller of the balance and the sale total. Adjust it if you're only applying part, then Apply. The card shows up as a green deduction line, and the Complete sale button changes to the amount you're still collecting by card, cash, or ACH.
The card isn't actually spent until you complete the sale, and it's spent inside the same transaction that creates the invoice — so there's never a state where the card is drained but the sale didn't record. If someone else drains the card in the seconds between your balance check and your tap, the whole sale is rejected rather than going through under-collected. Two people applying the same card at the same moment can't both win; the balance can't go negative.
What you'll see when a code doesn't work: "Gift card not found.", "This gift card isn't active.", "This gift card has expired.", "This gift card has no balance left.", or "Too many attempts — try again in a bit." That last one is a rate limit — 30 lookups per 10 minutes — and it's there because a code is the only thing guarding a card's balance. More in Selling and redeeming gift cards.
If a gift card covers the entire sale, you still have to pick a payment method. A $0 payment record gets written under that method so the sale has payment history instead of an invoice floating with none.
Coupons don't work here
There's no coupon field on Quick Sale, and there's no workaround — coupons can only be applied to an invoice that's still DRAFT or SENT, and a quick sale invoice is born PAID. If the customer has a code, build a regular invoice instead (Invoices → New invoice), apply the coupon there, then collect payment on it. See Creating and managing coupons and How to collect payment on an invoice.
Tips
Quick Sale has a plain Tip (optional) dollar field — type the amount. It deliberately doesn't use the None / 15% / 18% / 20% preset row that the invoice payment dialog shows, because there's no ticket total to take a percentage of until the moment you submit.
The tip rides on the payment record, not the invoice total. That means the receipt shows the sale amount with the tip noted separately, and the tip does show up in your shop-level numbers — Revenue Overview's tips figure and the end-of-day close both read it.
What it does not do is credit a tech. Per-installer tip tracking is fed by tip entries recorded under Settings → Team, and Quick Sale never creates one. So a tip taken here won't appear against anybody on the Tips Report or in Payroll Summary unless somebody records it there by hand. If tips at your counter belong to a specific installer, build that step into your close-out routine — see Tip payouts to installers — taxes and 1099 vs W-2.
"Internal notes" isn't internal
The field at the bottom is labeled Internal notes (optional), and the label is wrong. Whatever you type there is saved onto the invoice, and the invoice notes print on the customer-facing invoice PDF — the one you'd hand or email to somebody. Put a reference number or a technician's name in there, not a comment about the customer.
After the sale — the receipt buttons
The Sale complete screen shows the amount, the invoice number, the tip if there was one, the gift card amount and remaining balance if you used one, and four buttons. Two of them do less than they look like:
- Open receipt — goes to the invoice. This one works as expected.
- Print — opens the same invoice page in a new tab. It does not trigger a print dialog. To actually print a receipt, open the invoice and use Share → Download PDF.
- Email customer — also just opens the invoice page. No email is sent. To email a receipt, download the PDF and send it yourself, or use the Collect payment dialog's send options on a regular invoice.
- New sale — clears the form for the next customer. Use this rather than the browser back button; it's what resets the safety key described below.
Double-taps and dropped connections
Every sale carries a one-time key that's generated when the screen loads and only replaced when you tap New sale. If the same sale gets submitted twice — a double-tap, a spotty connection, a retry — the server recognizes the key and hands back the original invoice instead of creating a second one. The gift card doesn't get charged twice either. The Complete sale button also disables itself while the sale is in flight. You can stop worrying about the double-charge case; it's covered.
Fixing a quick sale that was rung up wrong
This is the honest part, and it's the answer nobody wants: there is no undo.
- You can't void it. Void is only available on DRAFT, SENT, and PARTIAL invoices. A quick sale invoice is PAID from birth.
- You can't delete it. Bulk delete skips every PAID invoice, and skips anything with a payment attached regardless of status.
- The Refund button won't appear on the payment. That button only shows on payments that went through card processing and carry a processor reference. A quick sale payment is a hand-recorded row — there's nothing at the processor to reverse — so the affordance is correctly absent.
So what do you actually do? Handle the money in the real world — cash back out of the drawer, or refund the card in whatever tool you charged it on — and leave a paper trail. The invoice itself will stay PAID in SalesThumb. The system does allow a paid invoice to be relabeled as refunded for bookkeeping, but there's no button for it in the app today, so if you need that on the record, email info@roffik.com and say which invoice. Every quick sale is written to the audit log with who rang it, the total, the method, and the line count, so the trail exists either way.
The practical lesson: slow down for two seconds before tapping Complete sale, because that tap is final. If a sale is genuinely complicated — a discount, a coupon, a tax-exempt customer, anything you might need to edit — build a regular invoice instead and collect payment on it. Refund and customer credit handling covers the refund side once a real processed payment is involved.
On the phone
The mobile app has the same Quick Sale screen, running the same one-shot sale, with the same gift-card panel and the same double-tap protection. Three differences to expect:
- No walk-in label field. You either attach a real customer or the sale is filed under a generic walk-in — you can't name the sale "Blue Tesla" from the phone.
- No catalog or inventory picker. Line item names are typed by hand.
- No payment method is preselected. You have to pick Card, Cash, or ACH before you can submit.
Mobile also needs your account to have Sales access on top of the Record payments permission, or the screen shows "Sales access needed" instead. See Mobile app access: what's set up today (the app itself is in beta).
Quick answers
Q: Can I take a partial payment on a quick sale? A: No. The sale closes fully paid or not at all. Use a regular invoice for anything that leaves a balance.
Q: Does the customer get a receipt automatically? A: No. Nothing is emailed or texted when a quick sale completes. Open the invoice and use Share → Download PDF if they want one.
Q: Can I change the price on a line after the sale? A: No — line items are only editable while an invoice is DRAFT or SENT.
Still stuck? Use the in-app help widget or email info@roffik.com.