Stripe Terminal Overview Beta

    Use Stripe Terminal to accept in-person payments, extending Stripe payments to your point of sale.

    Stripe Terminal makes it possible to integrate Stripe payments into your existing in-person checkout flow, or build in-person payments into your native mobile or web-based application.

    Terminal comes with easy-to-use SDKs for modern development environments, pre-certified readers, and tools for ordering and managing readers from the Stripe Dashboard. It works seamlessly with other Stripe products, letting you build a SaaS platform or marketplace using Connect, or initiate subscriptions in-store with Billing. Terminal reduces the burden of compliance, deployment, and logistics—so you can focus on building your ideal product and in-person payments experience.

    Features

    Terminal’s features are designed to take the complexity out of in-person payments:

    • Online compatibility: Unify your online and in-person payments in a single system
    • Flexible SDKs: Integrate your existing POS, or build a modern POS tailored to your business
    • Reader choices: Choose from different readers to achieve the checkout experience you want
    • Easy ordering & fleet management: Order pre-certified readers and monitor your fleet from the Stripe Dashboard

    How Terminal works

    A Stripe Terminal deployment consists of three main components:

    • Your web-based or mobile app
    • A Stripe Terminal reader
    • The Stripe Terminal SDK

    The SDK mediates the interactions between your point of sale application logic, the firmware running on the reader, and the Stripe API to allow you to accept in-person payments as seamlessly as you accept online payments with Stripe. The SDK is available for JavaScript, iOS, and Android.

    Stripe Terminal offers a selection of pre-certified readers that accept payment details (EMV, contactless, and swiped), encrypt sensitive card information, and return a token to your application (through the Stripe Terminal SDK) so you can confirm payment. You can order readers and accessories from the Stripe Dashboard and get them shipped to a location of your choice. As a Connect platform, you can even enable your connected accounts to receive readers and accessories at their business location.

    Use cases

    Stripe Terminal is built for businesses, with developers and platforms in mind. Its flexible design supports a wide range of use cases, including the following examples:

    • Extend your online business to the physical world
    • Enable in-person payments for your Connect platform, with readers for each connected account
    • Collect payment in-store, and use those card details to initiate an online subscription with Billing
    • Build a new, customized point of sale solution, or keep your existing solution, while taking advantage of the Stripe API for processing payments

    Choose an SDK that works best for you, and combine it with a reader that provides the user experience you want. The documentation provides all you need to design your point of sale, place orders, integrate, and deploy.

    Scope of integration

    The full scope of an integration consists of five major steps. Follow this order of operations as you go.

    1. Follow the quickstart to get up and running with a test integration in minutes.
    2. Design your integration plan to create your ideal in-person payments experience.
    3. Initialize the SDK in your Javascript, iOS, or Android app.
    4. Using a simulated reader, accept in-person payments with Terminal.
    5. Order a reader and test card.

    From there, explore the docs to see all you can do with your Terminal integration. We recommend testing your integration and reviewing the checklist before going live.

    Next steps

    Read on to get started with Terminal!

    Questions?

    We're always happy to help with code or other questions you might have! Search our documentation, contact support, or connect with our sales team. You can also chat live with other developers in #stripe on freenode.

    Was this page helpful? Yes No

    Send

    Thank you for helping improve Stripe's documentation. If you need help or have any questions, please consider contacting support.

    On this page