Card Reader (Stripe M2)

Tattoo Studio Pro accepts in-person card payments through a Bluetooth-paired Stripe M2 reader (Stripe’s BBPOS WisePOS hardware). Pair the reader once in Settings > Payments, then collect contactless, chip, or swipe payments — with optional tip — directly inside the mobile checkout flow.

New in v4.2.0. Mobile app only — the web app continues to redirect to Stripe’s hosted checkout for card payments.

Requirements

The card reader sits on top of your Stripe Connect account, so a few things need to be in place first.

  • A Stripe M2 reader. You order it from Stripe directly; Tattoo Studio Pro does not sell or ship readers.
  • Your Stripe Connect account status must be “Complete” in Settings > Payments. If onboarding is not finished, the reader section will not appear.
  • The Tattoo Studio Pro mobile app, version 4.2.0 or later, on iOS or Android.
  • Bluetooth turned on, on the device running the app.
  • Location permission granted to the app (required by the Stripe Terminal SDK for Bluetooth reader discovery).
  • The reader’s battery charged and the reader powered on.

Pairing a Reader

  1. Open the mobile app and go to Settings > Payments
  2. Scroll to the Card Reader section
  3. Tap Discover readers. The app scans for nearby readers over Bluetooth (this can take up to about 30 seconds)
  4. Tap your reader in the list when it appears
  5. The app connects, runs any pending firmware update Stripe requires, and shows a green Connected badge with the reader’s serial number when finished

The pairing persists across app launches. You don’t have to re-pair every shift; the app remembers the reader and reconnects automatically when it’s nearby and powered on.

Simulated Reader (for testing)

If you toggle on Use simulated reader in the Card Reader section, the app skips Bluetooth and connects to a virtual reader provided by Stripe’s SDK. Use this to test the checkout flow before your real reader arrives, or to walk a new staff member through the in-person payment screen without taking a real card.

Simulated payments don’t move real money, don’t appear on your Stripe payouts, and are clearly flagged in reports as test transactions. Turn the toggle back off and disconnect before going live.

Taking a Payment

Once a reader is paired, the regular checkout flow adds a Card (Reader) option.

  1. From the Queue, tap Checkout on the client
  2. Add services and products as usual
  3. On the payment step, pick Card (Reader) as the payment method
  4. Optionally enter a tip amount before collecting payment
  5. Tap Charge $X.XX. The reader wakes up and prompts the client to tap, insert, or swipe their card
  6. The reader handles the transaction. The app shows a spinner while Stripe authorizes
  7. On success, the checkout completes, the appointment auto-marks Completed (if there’s a linked appointment), and you can email a receipt if your studio has that enabled

If the reader is paired but offline (out of Bluetooth range, battery dead, powered off), the Card (Reader) option is greyed out with a status hint so staff don’t tap it and stall the line.

Tips

Enter the tip amount on the payment step before tapping Charge. The reader collects the full amount (sale + tip) in one auth, and the tip is recorded against the artist for the commission and tips reports.

Reports

Card-reader transactions appear in your reports the same way as hosted-checkout card payments, with one extra detail.

  • Payment method: each transaction is tagged as Card (Reader) vs Card (Hosted) so you can split out in-person volume from online checkout volume
  • Stripe payouts: settlements land in your connected Stripe account just like any other Stripe charge
  • Tips: rolled into the Tips report against the assigned artist

Troubleshooting

The Card Reader section doesn’t appear in Settings > Payments

  • Your Stripe Connect account status must be Complete. Finish onboarding first.
  • Confirm you’re on mobile app v4.2.0 or later. The reader is mobile-only and pre-4.2 builds don’t include the SDK.

Reader doesn’t appear in the discover list

  • Power-cycle the reader (hold the power button until it shuts off, wait five seconds, power it back on).
  • Confirm Bluetooth is on, on the device running the app.
  • Confirm the app has Location permission. iOS and Android both require Location for Bluetooth Low Energy discovery, even though the app doesn’t track your location.
  • Check the reader’s battery. A nearly-dead reader will not advertise itself.
  • Move the reader within about 10 feet of the phone or tablet. Walls and metal counter underframes cut Bluetooth range fast.

Reader connects but checkout says “reader offline”

  • Step away from sources of interference (microwaves, dense Wi-Fi access points, USB-3 hubs all create 2.4 GHz noise).
  • Bring the reader closer to the device. If it works at 2 feet but not at 6 feet, it’s a Bluetooth range issue.
  • Power-cycle the reader and re-pair from Settings > Payments.

Firmware update appears stuck

  • Don’t quit the app or power the reader off mid-update. Firmware updates can take up to 10 minutes the first time you pair a new reader.
  • Keep the reader plugged in or fully charged while updating. A reader that loses power mid-update may need Stripe support to recover.
  • If the update has been spinning for more than 15 minutes with no progress, force-quit the app, power-cycle the reader, and re-pair. The SDK resumes the update from where it left off.

Payment is declined

  • Ask the client to try a different card or a different payment method (Apple Pay, Google Pay, or a swap to a chip card if the contactless tap is failing).
  • Try the swipe magnetic stripe as a last resort.
  • Check the client’s bank for issuer-side blocks (large or out-of-pattern charges sometimes trigger holds).
  • If declines are repeated across multiple cards, contact Stripe support to confirm your account is in good standing.

Tip didn’t make it to the report

  • Confirm the tip was entered on the payment step before tapping Charge. Tips added after the charge don’t post.
  • Refresh the Tips report. There can be a short delay between checkout and report population.
  • Verify the artist was assigned on the line item (commission and tip attribution both key off the assigned artist).

Best Practices

  1. Keep the reader charged. Put it on its charging dock or cable at the end of every shift. A dead reader during peak hours kills throughput.
  2. Pair once, leave it. The reader remembers its pairing, so re-pairing daily isn’t necessary. If it stops auto-reconnecting reliably, that’s usually a Bluetooth setting on the device, not the reader.
  3. Have a fallback ready. Even with a paired reader, keep the hosted-checkout card option enabled so you can fall back if the reader has a problem mid-shift.
  4. Use the simulated reader for training. Walk new front-desk staff through the in-person payment screen with the simulated reader on, before the first live transaction.
  5. One reader per device for now. The current SDK pairing is one-to-one. If you want two cash wraps to take in-person card simultaneously, pair a separate reader on each device.
  • Payments and Checkout: full checkout flow, payment method options, and Stripe Connect setup
  • Online Deposits: collect deposits via a hosted Stripe link before appointments
  • Reports: how card-reader transactions and tips appear in reports

Was this article helpful?

See how it works

Book a 20 min demo