Card terminals live under Settings → Card Terminals. That page is the only place to register or remove a device — you charge one from an invoice, not from there.
Before you register anything
Two things have to be true or registration fails on the spot:
- SalesThumb Payments has to be connected. If your shop hasn't finished payments onboarding, registering comes back with "Your shop hasn't finished payments onboarding yet. Go to Settings → Payments to connect." See Understanding your payments application status if you're not sure where yours stands.
- You need the Record payments permission. Registering, deregistering, and charging a terminal all require it. By default only Owner and Admin have it — Manager, Service Writer, Front Desk, and Technician do not. An owner can grant it to one person or to a whole permission set under Settings → Team → Permission Sets.
Everyone at the shop can *see* the Card Terminals page and the Terminal tile in Collect payment, because the list itself isn't permission-gated — only the actions are. That's the usual explanation for "it works for the owner but not for me."
Card terminals aren't gated to a plan tier. Payments onboarding plus that permission is the whole gate.
Registering a device
Wake the terminal and get to its registration screen so you can read the 6-digit code off it, then in SalesThumb click Register terminal and fill in three fields:
- Name — what you'll see in the picker when you charge, so "Front desk" or "Bay 2" beats "Terminal 1." This name is also sent to the processor as the device name.
- Registration code — the 6-digit code showing on the device screen right now.
- Collects signatures — turn this on only for a device that actually captures signatures. It tells SalesThumb to have the device attempt a signature during a charge.
Click Register and the device appears in the list immediately.
If it fails, the message reads "Couldn't register that device — check the 6-digit code is current and try again." That means the processor rejected the code, almost always because it's gone stale. Go back to the device, pull a fresh registration code, and retype it — don't reuse a code off a screen that's been sitting there.
You'll also see VIRTUAL_DEVICE and VIRTUAL_DEVICE_SIGNATURE mentioned on that page. Those are sandbox test codes that let the flow be exercised without physical hardware. If you're a real shop taking real money, ignore them and use the code on your device.
What the ACTIVE badge does and doesn't tell you
Every registered terminal shows a green ACTIVE badge. That badge means exactly one thing: the registration record exists in SalesThumb. It is not a heartbeat.
SalesThumb never polls the device. There's no online/offline indicator, no "last seen" timestamp, and no alert when a reader drops off Wi-Fi. The badge reads ACTIVE for a terminal that's unplugged and sitting in a drawer. There is an inactive state in the database, but nothing in the app ever sets it — registering writes ACTIVE, and removing a terminal deletes the record outright.
So when someone reports "the terminal shows offline," what they're actually looking at is one of the charge errors below.
Charging a customer on the terminal
Open the invoice, click Collect payment, and pick the Terminal tile. Choose the device — if you only have one, it's already selected — and click Charge. The other four collection methods are covered in How to collect payment on an invoice.
Two things to know before you click:
- It always charges the full invoice balance. There's no amount field on this tab. For a partial payment, use the Record tab instead.
- The minimum is 50 cents.
The panel switches to "Sent to the terminal," the customer taps or inserts on the device, and SalesThumb rechecks the invoice every couple of seconds until the money lands — then it flips to "Payment received" and the invoice is marked paid on its own. The confirmation comes from the processor, not from the tablet, so you don't need to record anything afterward.
When the charge doesn't work
Each message points at a different part of the chain:
- "Couldn't send the charge to the terminal — try again" — SalesThumb built the charge but the processor couldn't hand it to the device. This is the real "terminal is offline" case: check power, check that it's on the shop network, wake it from sleep, then retry.
- "Unable to start the terminal charge — try again" — the failure happened before the device was ever involved. The reader is not the problem. Retry once; if it repeats, take the payment another way and email info@roffik.com.
- "Terminal not found or inactive" — that device was deregistered, possibly from another computer. Reload Settings → Card Terminals and register it again.
- "Invoice is already paid" or "Cannot collect payment on a VOID invoice." — someone already collected, or the invoice was voided or refunded. Look at the invoice's payment list before doing anything else.
- A permission error naming shop.recordPayments — that's the Record payments permission from the top of this article.
The one that trips people up: a decline never shows in SalesThumb. If the card is declined on the device, the Terminal panel doesn't change — it sits on "Sent to the terminal," because it's watching for a successful payment, not for a failure. The decline reason appears on the terminal's own screen. Read it there, close the dialog, and start a new charge. Why was my customer's card declined? covers which reasons are worth a retry and which mean "ask for a different card."
Is it safe to tap Charge twice?
Mostly — and here's the exact rule, because "mostly" isn't good enough when it's someone's card.
Sending the same invoice to the same terminal for the same amount within about five minutes is treated as a retry of the original request, so the processor replays that first charge instead of creating a second one. That covers the realistic cases: a dropped response, a staff member re-tapping the button, the front desk not being sure it went through.
Outside that window, or for a different amount, it's treated as a genuinely new charge and the customer's card can be run twice. So if a few minutes have passed and you're unsure, open the invoice and check its payments before re-sending. Don't just tap again.
Renaming, removing, and re-registering
There's no rename button and no edit dialog on this page. To change a terminal's name or flip its signature setting, register the same device again with a current code — SalesThumb recognizes it and updates the existing entry rather than creating a duplicate row.
To remove one, click the trash icon on its card and confirm. That unbinds the device at the processor and deletes it from SalesThumb. It's immediate, with no undo beyond re-registering. If the processor side of the removal fails for any reason, SalesThumb still deletes its own record so you're not stuck staring at a terminal you can't get rid of — the trade-off being that a device removed that way may still be bound on the processor's side. If a removed device later refuses to re-register, that's the case to email info@roffik.com about.
There's no "pause" or "disable" state. Deregistering is the only way to take a terminal out of the picker.
Two terminals, one cash drawer
Yes, you can run two — and they don't interact with the drawer at all. There's no cap on how many terminals a shop registers, and each one is its own entry in the picker. Terminals are scoped to the shop they were registered at, so a reader at one location never appears at another.
Cash drawer sessions only track cash: the opening float, the drops, payouts, pickups, and adjustments you log by hand, and the counted cash at close-out. A terminal charge is card money settling to your merchant account — it never touches a drawer session and never moves the expected-drawer total. Two people charging on two terminals while one drawer session is open is completely fine; the variance math doesn't know or care. See How cash drawer sessions work for the part that does bite, which is that you can't have two open sessions for the same *drawer name* — a drawer rule, not a terminal one.
Refunding a terminal charge
Nothing special. A card-present charge produces the same kind of payment record as a keyed-in one, so you refund it from the invoice like any other card payment. That requires the Issue refunds permission — Owner and Admin by default. See Refund and customer credit handling.
Things that genuinely don't exist yet
Worth saying plainly so nobody goes hunting:
- No online/offline or "last seen" status, and no alert when a reader drops off the network.
- No rename or edit — re-register the device instead.
- No partial-amount charge on a terminal.
- No tip field on the Terminal tab — the tip options live on the Record tab.
- No terminal registration or charging from the mobile app. Both are web-only; the mobile invoice screen can only record a payment you already collected some other way.
- SalesThumb doesn't sell or ship terminal hardware, and there's no order-a-reader flow in the app. Email info@roffik.com to sort out which devices work with your account.
Q: The terminal is powered on and on Wi-Fi, but the charge says it couldn't be sent. Now what? A: Reboot the reader first — that clears most of it. If it still won't take a charge, deregister it, pull a fresh 6-digit code from the device, and register it again. Take the customer's payment through Pay here or Charge card in the meantime so nobody's standing at the counter waiting.
Q: I sent a charge, the customer walked out, and I never saw "Payment received." Did it go through? A: Check the invoice itself, not the dialog. The invoice's payment list and status are the source of truth — the dialog is just watching them. If the invoice is still unpaid, the charge didn't land.