Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Overview
About Stripe payments
Upgrade your integration
Payments analytics
Online payments
OverviewFind your use caseManaged Payments
Use Payment Links
Build a checkout page
Build an advanced integration
Build an in-app integration
Payment methods
Add payment methods
Manage payment methods
Faster checkout with Link
Payment interfaces
Payment Links
Checkout
Web Elements
In-app Elements
Payment scenarios
Custom payment flows
Flexible acquiring
Orchestration
In-person payments
Terminal
    Overview
    Accept in-person payments
    Integration design
    Select your reader
    Design an integration
    Quickstart
    Example applications
    Testing
    Terminal setup
    Set up your integration
    Connect to a reader
    Accepting a payment
    Collect card payments
    Additional payment methods
    Accept offline payments
    Mail order and telephone order payments
    Regional considerations
    During checkout
    Collect tips
    Collect and save payment details for future use
    Flexible authorizations
    After checkout
    Refund transactions
    Provide receipts
    Customize checkout
    Cart display
    Collect on-screen inputs
    Collect swiped data
    Collect tapped data for NFC instruments
    Apps on devices
      Build and test your app
      Prepare for app review
      Submit your app for review
      Deploy your app in the Dashboard
      Deploy your app with the API
      Monitor your deployment
      Troubleshooting
    Manage readers
    Order, return, replace readers
    Register readers
    Manage locations and zones
    Configure readers
    Encryption
    References
    API references
    Mobile readers
    Smart readers
    SDK migration guide
    Deployment checklist
    Stripe Terminal reader product sheets
Other Stripe products
Financial Connections
Crypto
Climate
HomePaymentsTerminalApps on devices

Prepare for app review

Learn how to prepare your app for Stripe's review process.

Copy page

Stripe reviews all apps built for Terminal devices before approving them for deployment. The review process helps prevent putting payment information at risk or violating industry-standard best practices for payment devices.

App review at a glance

Stripe reviews the device asset version of your app. This process doesn’t require any action from you.

  1. A reviewer downloads your app and installs it on a Terminal smart reader.
  2. Using the instructions you provided, the reviewer interacts with your app and identifies potential problems, focusing on your app’s payment collection user interface.
  3. After the reviewer determines there are no present issues, they approve your app for deployment. Stripe notifies you of app approval. The reviewer might reject your app if they’re unable to follow instructions, or if the app contains features that might put payment information at risk.

The exact amount of time and effort required to review each app varies because no two apps are alike.

App review guidelines

Use the guidelines below to help with a timely and successful app review.

Build multi-tenant apps

If you’re a platform building apps for Terminal devices on behalf of individual businesses, we encourage you to build a multi-tenant app that serves all of your users. You can build business-specific workflows, such as different image or graphics assets per business, into your app’s configuration and settings. This approach also removes the need for you to submit individual apps per business.

Prevent collecting keyed payment card numbers or PINs

Use the Terminal reader running the app to request payment from a customer and collect sensitive card and PIN information. The Terminal SDK allows you to display an appropriate prompt on the device screen.

Make sure that your app doesn’t display user interface elements (for example, an input field) that allow the manual entry of PINs, authentication values, or payment information.

Support sandbox payments

During development and testing, use a DevKit device to accept sandbox payments. This allows Stripe to use a physical Terminal test card when we review your app.

If you must accept live payments, make sure the app accepts a minimal charge amount, such as 1 USD (or equivalent in another currency).

Address technical defects

Use your DevKit to identify defects before submitting your app for review.

Examples of common defects include:

  • The app fails to install because of an error during its build process.
  • The app crashes before we can interact with the app’s payment UI.
  • The app can’t detect or connect to the reader.

Make sure to address the technical defects that can prevent us from successfully interacting with or using your app. We reject apps that can’t be fully reviewed due to technical defects.

Write clear and complete instructions

When you submit your app for review, assume that Stripe hasn’t seen it before. Make sure your instructions are self-contained and don’t assume any special knowledge to complete the review. We must be able to follow your instructions exactly as submitted.

Include the following with your app’s instructions:

  • Login information, such as a username or password (if applicable)
  • Fixed authentication code that remains valid indefinitely (if applicable)
  • How to reach your payment collection UI
  • How to exercise the app fully to highlight any problems

Don’t provide credentials that permit access to sensitive information or to functionality that can cause any side effects. For example, an app that accepts orders for food must not cause any actual food preparation to occur as a result of orders placed during app review.

Submit your app for review

Follow the steps to submit your app for review.

Skip app review

You can skip app review and move directly to deployment in these cases:

  • To use the API or test your app, you can limit the compatible_device_types to only DevKit device types (stripe_s700_devkit).
  • If you previously uploaded a test device asset version and Stripe reviewed and approved that version’s APK, you can upload it again for live mode.

Next steps

  • Submit your app for review
  • Deploy your app
Was this page helpful?
YesNo
Need help? Contact Support.
Join our early access program.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc