Design a custom POS integration
Choose your country, reader, and integration type to learn how to build your custom point of sale.
How a custom integration works
A custom Terminal integration usually includes:
- Your point-of-sale application
- Your back end
- The Terminal SDK or a server-driven integration
- A supported reader or Tap to Pay device
The Terminal SDK or server-driven integration coordinates communication between your point-of-sale application, the reader, and Stripe so you can collect in-person payments and manage them with the rest of your Stripe payments.
For smart readers, use a server-driven integration to control the reader directly with the Stripe API. Use the iOS, Android, or React Native SDKs for smart readers, mobile readers, and Tap to Pay. Use the JavaScript SDK only for web-based POS integrations with smart readers. The reader collects payment details, and your integration uses Terminal SDK or API flows to complete the payment.
Integration scope
Most custom integrations follow these steps:
- Choose the country, reader, and integration platform for your checkout environment.
- Build and test your integration with the simulated reader .
- Connect to a reader and collect payments from your point-of-sale application.
- Order readers, register them to locations, and review the launch checklist before going live.
Choose your integration options
Use the selectors to choose your country, reader, and integration platform to show only the setup steps and code samples that apply to your specific configuration. If you’re unsure which reader to choose, see Select your reader for a comparison of available readers.
Country:
Reader:
Architecture:
the related setting reader
- All-in-one, Android-based smart reader that can run your custom application or standalone mode
- For handheld or countertop use; optional dock available for mounted or countertop use cases
- Contactless, chip, and swipe payments
Use it in a server-driven integration
- Write your point-of-sale app for any device
- Access Stripe features using the Stripe API
- Communicate with the reader using Stripe and your server
Limitations
Server-driven integration doesn’t support:
- Mobile readers
- Collect payments while offline
If you don’t write code, you can accept in-person payments with standalone mode without building a custom integration.
Architecture
In a server-driven integration, your POS device connects to your server. Your server then makes Stripe API calls, and Stripe updates the reader and returns the result.
The structure of the integration looks like this:
Prototype with simulated or physical readers
You can use simulated and physical readers as you’re building your integration.
Use the simulated reader
When you begin writing your application, you can test it with a simulated reader and simulated cards—no reader hardware required. This lets you build and verify your complete integration without needing physical hardware. The Terminal Quickstart demonstrates an app at this stage of development.
Use a physical reader
When you’re ready to work with actual hardware, you can extend your integration to a physical device. Follow these steps:
- Order a Stripe Reader the related setting and physical test cards
- Connect to the reader over the internet
- Test your logic with physical test cards
Organize readers and locations
Stripe requires a Location to be associated with every Terminal reader, including a simulated reader. Before you connect a reader to a Terminal integration, you must create one or more Locations, either in the Dashboard or using the API. When you connect to your reader, specify one of those locations.
Locations represent physical places where your readers operate. Stripe needs location information to process payments correctly and keep your reader up to date. If your business requires you to move your readers frequently, your locations can use addresses that represent a primary place of business.
Next steps
- See the Terminal quickstart for a full code example using the simulated reader
- Set up your integration to start writing your own code
- Order readers, accessories, and test cards when you’re ready to work with physical hardware
