Example Applications

    Try Stripe Terminal in minutes by using our example applications and simulated reader.

    A Stripe Terminal integration starts with your point of sale application running at a physical location. Your point of sale application communicates with a reader via the Terminal SDK to collect in-person payments from your customers. Your backend works with your point of sale application to authenticate the Terminal SDK and finalize payments.

    Before starting your own integration, we recommend setting up one of the Terminal example applications. This will give you a better feel for how the components of a Terminal integration fit together and show you the interactions between the SDK, the reader, your point of sale application, and your backend code.

    Step 1: Deploy our example backend

    To get started with our example applications, first set up our Sinatra-based example backend by following the instructions in the README. You can either run the backend locally or deploy it to Heroku with a free account. The example backend works with the example application to authenticate the Terminal SDK and finalize payments.

    Step 2: Run the example application

    Next, build and run one of our example applications:

    1. Clone the example from GitHub:
    git clone https://github.com/stripe/stripe-terminal-js-demo.git
    
    1. Run the following commands to run the example:
    2. cd stripe-terminal-js-demo
      npm install
      npm run start
      
      1. In the running example, enter the URL of the example backend that you deployed in Step 1.
    1. Clone the example app from GitHub:
    git clone https://github.com/stripe/stripe-terminal-ios.git
    1. Open Example/Example.xcodeproj in Xcode.
    2. In AppDelegate.swift, set the URL of the Heroku app you just deployed.
    3. Build and run the app.
    1. Clone the example app from GitHub:
    git clone https://github.com/stripe/stripe-terminal-android.git
    
    1. Import the Example project into Android Studio.
    2. In ApiClient.kt, set the URL of the Heroku app you just deployed.
    3. Build and run the app.

    Step 3: Connect to a simulated reader

    After you have the example running, select the Simulated option to connect to a simulated reader.

    The JavaScript example app connected to a simulated reader

    The iOS example app connected to a simulated reader

    The Android example app connected to a simulated reader

    The simulated reader handles events just like a physical reader, so you can continue to collecting your first payment.

    The simulated reader functionality is built into the SDK, so you can use it to develop and test your own point of sale application without connecting to a physical device.

    Step 4: Collect your first payment

    Finally, collect your first payment using the example application and a simulated reader. Each of our examples features an event log for you to reference as you integrate Terminal in your own application. As you collect your first payment, you’ll see the following sequence:

    • Create payment: Example application collects a payment method via the SDK
    • Collect payment method: Simulated reader receives a card
    • Process and capture: Example application and backend finalize the payment

    Collecting a payment, using the JavaScript example and a simulated reader

    Collecting a payment, using the iOS example app and a simulated reader

    Collecting a payment, using the Android example app and a simulated reader

    Next steps

    Congratulations! You've created your first Stripe Terminal payment. Next, design your full integration, choosing an SDK and reader that work best for your business.

    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.

    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.

    On this page