Designing an Integration Beta

    Learn about Terminal integration options to choose an SDK and reader combination that works best for you.

    Before you place orders or begin integrating, it’s important to understand the big picture. Stripe Terminal supports a wide range of use cases. You can mix and match Terminal readers with point of sale software and SDKs to build a totally customized solution, or simply extend Stripe payments to your existing point of sale.

    This document breaks the decision process into three major steps:

    1. Choose the SDK that works best with your existing software and desired reader.
    2. Compare readers to pick one that works for your integration and desired user experience.
    3. Plan your deployment.

    Use this document to plan the best integration for you, with choices that complement each other.

    Choosing your SDK

    The Stripe Terminal SDK is available for JavaScript, iOS, and Android. If you already have an app in one of these programming languages, use the corresponding SDK. For new apps, use a language you’re comfortable in.

    Choosing your reader

    Terminal is designed to support a number of user experiences. Currently, Stripe Terminal offers two kinds of readers, the BBPOS Chipper 2X BT and the Verifone P400:

    BBPOS Chipper™ 2X BT

    The handheld, mobile reader that connects to iOS and Android apps

    A depiction of product creation in the Stripe Dashboard
    • Create a roaming cashier experience, where customers can pay anywhere
    • Works with iOS and Android SDKs

    • Uses Bluetooth, optimized for mobile checkout experiences
    • Accepts tap, swipe, and dip payment methods

    Verifone® P400

    The countertop reader with customer-facing screen for JS, iOS, and Android apps

    A sample of Stripe Checkout Session creation code
    • Create a countertop checkout, with customizable customer-facing display
    • Works with JavaScript SDKs
      Coming soon: iOS, Android
    • Requires internet connection, best for stationary counter checkout
    • Accepts tap, swipe, and dip payment methods

    Planning your deployment

    After you choose an SDK and a reader, understand what’s required for your Terminal integration. The architecture, features, and physical deployment differ slightly by reader choice.

    BBPOS Chipper 2X BT

    If you use a BBPOS Chipper 2X BT, the integrated SDK facilitates all communication between Terminal components. This integration relies on your app, running on a mobile device or tablet, to display a checkout UI for both the customer and the person operating the reader.

    Verifone P400

    If you use a Verifone P400, the reader screen provides the customer-facing checkout experience. It runs Stripe reader software to connect to your app and to Stripe over the internet. It communicates payment activity directly to Stripe, and receives and displays information from your app, such as updated cart details.

    Your app provides the UI for the employee using the reader. The Verifone P400 is compatible with JavaScript, iOS, and Android SDKs. If you integrate your app with the JavaScript SDK, you can run it in the browser on a mobile device or tablet, as long as the device is connected to the same local network as the reader.

    Next steps

    Now that you know what type of integration you'd like to build, start integrating the Stripe Terminal SDK.

    The BBPOS and Chipper™ name and logo are trademarks or registered trademarks of BBPOS Limited in the United States and/or other countries. The Verifone® name and logo are either trademarks or registered trademarks of Verifone in the United States and/or other countries. Use of the trademarks does not imply any endorsement by BBPOS or Verifone.


    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


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

    On this page