Card readers
Buy a Stripe Terminal reader, set it up and register it, see whether it is online, and understand how a card-present payment reaches the patient ledger.
Card-present payments run through Stripe Terminal on the practice's own Stripe account, so the practice stays the merchant of record. Smileline drives the reader from the server: the desk starts the payment, the reader prompts for the card, and Stripe tells Smileline the outcome.
Open Settings → Payments in Smileline: the Card readers card lists every reader registered on the connected account with whether it is online, plus links to the setup guide, the Stripe shop and the Stripe reader list.
The card only appears once the Stripe account is connected and payments are enabled (see Set up booking deposits).
Which readers work
Smileline sends payments to the reader through Stripe, so it works with Stripe's smart readers — the ones that connect to Wi‑Fi or Ethernet themselves:
- BBPOS WisePOS E — countertop reader with a touchscreen.
- Stripe Reader S700 (or the S710 with cellular) — countertop or handheld, larger screen, longer battery.
Both are sold in the UK and the US. Bluetooth readers (Stripe Reader M2, BBPOS WisePad 3) and Tap to Pay on a phone need Stripe's mobile app SDK instead, so they do not work with Smileline.
Buy a reader
Order readers from the practice's own Stripe Dashboard: Terminal → Shop (dashboard.stripe.com/terminal/shop). Sign in to the Stripe account that is connected in Settings → Payments — a reader can only be registered to the account that will take its payments. Prices and shipping depend on the country; the shop shows them.
The optional dock (WisePOS E) or hub (S700) adds a wired Ethernet port and keeps the reader charged. Wi‑Fi alone is fine for a reception desk.
Set up and register the reader
Anyone with write access to the practice's Stripe account can register a reader. Keep the reader plugged in and switched on afterwards: it installs its own software updates while idle.
Power it on
WisePOS E: fit the battery (unless it shipped fitted), then charge it. S700: plug in the supplied USB‑C power adapter. Hold the power button on the right until the screen turns on.
Connect it to the network
Swipe right from the left edge of the reader's screen, tap Settings and
enter the admin passcode 07139. Choose WiFi settings and join the
practice Wi‑Fi. If you have the Ethernet dock or hub, plug its cable into the
router and seat the reader; the reader prefers Ethernet whenever it is
docked.
The reader talks to Stripe over the internet, so it does not need to be on the same network as the computer running Smileline.
Get a pairing code
A reader that has never been registered shows a pairing code (three words,
such as apple-elegant-beach) on its screen after it connects. If it does
not, open Settings on the reader again and tap Generate pairing code.
Register it in Stripe
In the Stripe Dashboard go to Terminal → Readers (dashboard.stripe.com/terminal/readers) and click Register reader. Enter the pairing code, then:
- Name the reader after where it lives, such as
Reception— this is the name staff pick when taking a payment. If you skip it, Stripe uses the pairing code as the name, which is why a reader can appear as three random words. - Pick the reader's location, or create one. Make one Stripe Terminal location per practice site, with that site's address.
- Click Register.
Check it in Smileline
Open Settings → Payments. The reader is listed under Card readers with its name, model, serial number and Online.
Register the reader with the Stripe Dashboard in live mode. A reader registered while the Dashboard is in test mode belongs to the test account and never appears in Smileline.
To rename a reader or move it to another site, edit it in the Stripe Dashboard under Terminal → Readers; Smileline reads the list from Stripe each time the Payments page loads.
The reader shows Offline
Offline means the reader is not currently talking to Stripe. It is not a Smileline setting. Check, in order:
- The reader is switched on and, ideally, plugged in. On battery it sleeps and the screen goes dark; press the power button once to wake it.
- The Wi‑Fi icon is in the reader's status bar (or the Ethernet icon when docked). If not, reconnect under Settings → WiFi settings.
- Restart the reader: hold the power button, choose power off, then turn it back on.
- If the reader shows a pairing code, it is no longer registered. Register it again as above.
Reload the Payments page after each step; the status comes straight from Stripe. When taking a payment, the reader picker shows each reader with its status and preselects an online one. A payment sent to an offline reader is refused by Stripe, cancelled by Smileline and recorded as failed; bring the reader online and take it again.
How a payment is recorded
- A payment is created on the practice's Stripe account and sent to the reader. Until the card is presented it shows as processing.
- When Stripe confirms the payment it is posted to the patient's ledger once, as a payment with the card-terminal payment method and Stripe's payment reference.
- A declined card is recorded as failed with the decline reason. The same payment can be presented to the reader again — Smileline never creates a second charge for the same attempt.
- Cancelling stops the reader and cancels the payment. If Stripe reports the payment was already taken, it is recorded as paid instead.
If Stripe cannot confirm the outcome — the reader went offline mid-payment and Stripe would not confirm the cancellation — the payment is marked uncertain and a Card terminal payment needs reconciling task is created for the patient. Reconciling asks Stripe for the outcome and applies it; nobody is asked to present the card again until that is done.
Booking deposits
A booking deposit paid through Stripe is posted to the patient's ledger as a payment when Stripe confirms it, and a refund of that deposit is posted as a refund of that payment. Both are recorded once however many times Stripe delivers the event.
Stripe webhook events
The Stripe Connect webhook must be subscribed to payment_intent.succeeded,
payment_intent.payment_failed and payment_intent.canceled in addition to
the deposit events, or terminal outcomes only arrive when someone reconciles
the payment by hand.