Get Paid IRL (Part 1) Register and setting up card readers
Tags: tutorial, payments, stripe, webdev
Published: 2022-05-18 17:29:08

_Did you know that you can accept in-person payments with [Stripe](https://stripe.com/)?_

_In this series, we’re going to dive headfirst into building an in-person payments web app using [Stripe Terminal](https://stripe.com/docs/terminal) and the [WisePOS E card reader](https://stripe.com/docs/terminal/payments/setup-reader/bbpos-wisepos-e)._

_Stripe Terminal is a set of APIs and SDKs that allow you to process payments with one of [Stripe’s supported card readers](https://stripe.com/docs/terminal/payments/setup-reader) and Stripe’s core payment APIs. In this series, we’ll be integrating using the API-only server-driven integration path._

_In this inaugural post, we walk through the first step: registering a Stripe Terminal reader to your account._ 

_Don’t have a WisePOS E card reader on hand? No worries! We’ll cover how to set up a simulated reader for testing and development. Want to test with the real thing? You can order a card reader from your [Stripe Dashboard’s Terminal shop](https://dashboard.stripe.com/test/terminal/shop)._

# Registering a Stripe Terminal card reader

In this tutorial, we’ll walk through registering a card reader and simulated card reader for Stripe Terminal. For simplicity’s sake, we’ll be using the Stripe Dashboard to register our readers, but you can [use Stripe Terminal’s APIs](https://stripe.com/docs/terminal/payments/connect-reader?terminal-sdk-platform=js&reader-type=smart#register-using-the-api) to build your own registration flow as well.

In order to register a card reader to your Stripe account, you need to take two steps:

1. [**Create a Location**](#creating-a-location) so that you can assign the reader to a physical location
2. [**Register the reader to a Location**](#registering-a-reader-to-a-location) using its registration code

## Creating a Location

Navigate to your Stripe Dashboard and go to the [Terminal dashboard](https://dashboard.stripe.com/test/terminal) by clicking **More** in the navigation menu and then **Terminal**. 

You may be prompted with some pricing information about Terminal. You won’t be charged anything until you start taking live payments. In this series, we’ll only be doing things in test mode.

**With your account in Test mode**, navigate to [**Locations**](https://dashboard.stripe.com/test/terminal/locations) and create a Location. [Locations](https://stripe.com/docs/terminal/fleet/locations) are used to group readers to a physical place. A Stripe Terminal integration could include hundreds of readers across multiple stores. Assigning a reader to a Location makes it easy to filter and retrieve the right readers for the right store. They’re also used to configure the reader, so every reader _must_ be assigned to a Location.

To create a Location click **+New** in the Locations section and enter the location’s Name and Address information.

![Creating a Stripe Location for registering readers by adding a name and address information](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lr4wo1v9ci603b1em8p2.gif)

The next step is registering a WisePOS E reader to your newly created Location.

---

## Registering a card reader to a Location

You can register a device to a Location by clicking **+New** near **Readers**. 

![Stripe's line-up of card readers: the Stripe Reader M2, BBPOS Chipper 2X BT, BBPOS WisePad 3, BBPOS WisePOS E, Verifone P400](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hmlrwqb82aecrptr71d7.png)

### WisePOS E
If you have a WisePOS E, you’ll want to turn it on and connect it to WiFi from the Settings. Keep in mind that the WiFi _must_ use WPA-Personal or WPA2-Personal encryption with password protection. Enterprise and unsecured networks aren’t compatible with Stripe Terminal.

Once your WisePOS E has been connected to WiFi, your reader will automatically show its registration code if it's an unregistered device.

![WisePOS E Reader transitioning from powering on, to WiFi connection, to displaying the registration code on first start up](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/plgx0kft3b4e474gj2rp.jpg)

You can also get the device’s registration code by swiping left on the device to open the Settings menu and clicking **Registration Code**. 

In either case, type the registration code you see on the device in the Registration code field.

![Registering a physical WisePOS E Reader by inputting the registration code displayed on the device in the Register reader modal that's display after clicking +New in Locations](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0apecnu5uo8bwqs1f8hv.gif)

### Simulated WisePOS E
If you don’t have a reader, you can use a simulated WisePOS E for testing and development by inputting `simulated-wpe` as the registration code.

![Clicking +New in our newly created Location and registering a simulated WisePOS E Reader by inputting the simulated-wpe registration code in the Register reader modal that's display after clicking +New in Locations](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/li2ox9k7t3norbwo7y0p.gif)

Whether you’ve set up a simulated or real WisePOS E, you should now see a simulated or physical device registered to your new location. For Stripe’s server-driven integration, this is all that’s required to setup the reader.

---

## Next up: Retrieving and rendering Stripe Terminal Readers

In our next post, we’ll learn how to retrieve our readers from Stripe's Terminal [Reader API](https://stripe.com/docs/api/terminal/readers) and render them in a web app so that we can prompt them to collect in-person payments.

---

## Stay connected

Want to stay up to date on Stripe’s latest integrations, features, and open-source projects?
  
📣 Follow us on [Twitter](https://twitter.com/StripeDev)
💬 Join the official [Discord server](https://stripe.com/go/developer-chat)
📺 Subscribe to our [Youtube channel](https://www.youtube.com/StripeDevelopers)
📧 Sign up for the [Dev Digest](https://go.stripe.global/dev-digest)

---
## About the author

![The author, Charles Watkins](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aqzlent7mkotc9hnl8k7.png)

[Charles Watkins](https://charleswatkins.dev/) is a Developer Advocate at Stripe where he writes, codes, and livestreams about online payments. In his spare time, he enjoys drawing, gaming, and rewatching the first five seasons of Game of Thrones.