Tap to Pay on iPhone and Stripe Terminal

Tap to Pay on iPhone lets users accept in-person contactless payments with a compatible iPhone and the Stripe Terminal SDK. It requires familiarity with the Terminal SDK and iOS expertise.  
Please see our technical integration documentation here.

Where is Tap to Pay on iPhone available?

Tap to Pay on iPhone is currently available in the US only. Platforms and merchants located outside the US are not permitted to use Tap to Pay on iPhone. If you would like to use Tap to Pay on iPhone in your country, let us know. We'll let you know once we’re able to offer this where you are.

What are the device requirements for integrating Tap to Pay on iPhone?

The iOS SDK for Tap to Pay on iPhone requires iOS mobile devices that meet the following criteria:

Note: iPads do not have NFC reading capabilities so are not supported at this time.

What payment methods are supported with Tap to Pay on iPhone?

The Tap to Pay on iPhone library includes support for Visa, Mastercard, American Express, Discover, contactless cards and NFC-based mobile wallets (Apple Pay, Google Pay, and Samsung Pay) directly in the users’ mobile app.

What is the pricing?

Please visit https://stripe.com/pricing for current pricing.

Are Tap to Pay on iPhone transactions routed as card-present transactions?

Yes. Tap to Pay on iPhone transactions can be identified in the Dashboard as “Card Present” payments like all other Terminal transactions. As with Stripe Terminal, merchants who use Tap to Pay on iPhone to accept payment cards are not liable for any fraudulent-type disputes filed for such transactions.

Stripe Terminal Tap to Pay on iPhone and PCI compliance

Stripe Terminal, including Tap to Pay on iPhone, by default provides E2EE. Users leveraging Tap to Pay on iPhone have access to a pre-filled SAQ C document, directly in your Dashboard under Compliance Settings.

Note: Tap to Pay on iPhone is not supported for use with P2PE.

Is there a way to identify Tap to Pay on iPhone transactions through the Dashboard? Does Tap to Pay on iPhone offer the same functionality as other devices from Stripe Terminal?

Tap to Pay on iPhone transactions can be identified in the Dashboard as “Card Present” payments like all other Terminal transactions. Currently we don’t offer the functionality to identify Tap to Pay on iPhone transactions from other card present charges. Users will continue to have access to the same Dashboard functionality ie. reporting, refunds etc. with the exclusion of hardware devices. iPhone devices currently cannot be tracked in the Dashboard for fleet management purposes.

Is there a way to reconcile the active device count on a Stripe account against Tap to Pay on iPhone billing?

At this time, we do not offer this functionality.

Is PIN supported through Tap to Pay on iPhone for transactions that exceed contactless limits?

The Tap to Pay on iPhone library does not currently support PIN. If a user tries to charge an amount higher than the contactless limit, the cardholder would not be able to submit their payment account’s fallback PIN in order to complete the transaction.

Alternatively, users can explore backup options such as having a traditional payment terminal on location as a default, or displaying a QR code and prompting the customer to scan and checkout with a CNP transaction.

Regional contactless limits are noted at our Support Q&A page. Note: Generally there are no transaction limits for digital wallets like Apple Pay and Google Pay.

Can you collect payment using a physical Terminal card reader as a backup option?

Not all customers will have a contactless payment method. In this event or in the event of a decline, users can continue to collect a payment by switching from Tap to Pay on iPhone to a Terminal card reader. However, users can only have one active connection to a reader at a time. So you’ll need to disconnect the card reader if it’s already connected.


Integration Questions

Does a user need to integrate with the Terminal SDK first and then the Tap to Pay on iPhone SDK?

Yes, users must first have completed the Terminal SDK integration prior to integrating with the Tap to Pay on iPhone SDK. See the iOS documentation for specifics.

When building your Terminal integration, do you need to install the Terminal SDK first before the Tap to Pay on iPhone SDK?

Yes. To access Tap to Pay on iPhone’s functionality users need to install two sets of SDKs. Users must first have a complete Terminal SDK integration prior to integrating with the Tap to Pay on iPhone SDK. Check out our iOS documentation for specifics.

Does Terminal offer a pre-built mobile POS application that users can leverage?

In alignment with our existing Terminal offerings, users need to build their own POS (point-of-sale) application. For users looking for a no-coding required POS, we encourage you to check out our Partners page.

If a user takes a Tap to Pay on iPhone acceptance device to another country that isn’t supported (ie: from the US to FR), would the functionality be automatically blocked? Do additional restrictions need to be set up on their application based around location?

We collect GPS data for location verification during Terminal transactions. Tap to Pay on iPhone will not work if brought across borders. Our system will automatically deny the transaction if a new country is detected. No additional integration work is needed for this feature.

Can a user simulate Tap to Pay on iPhone transactions in the Terminal simulator?

Users can currently simulate the payment collection flow within the iOS simulator.

Is Tap to Pay on iPhone compatible with apps built in React Native?

No. Currently Tap to Pay on iPhone isn’t supported on applications built on React Native.

Is the ability to save card details for online reuse compatible with Tap to Pay on iPhone transactions?

Yes. Tap to Pay on iPhone supports existing Terminal functionality to save card details for future online reuse. The Save Card functionality applies only to physical cards, not mobile wallets. For SetupIntents, only iOS is currently supported.

Is tipping compatible with Tap to Pay on iPhone?

On-reader tipping (see our docs here) is not compatible with Tap to Pay on iPhone. Users are free to implement their own tipping screen before collecting payment or users can use the post-auth flow for tipping (see this flow here) after payment collection. Please note that post-auth tipping must be completed within 3 minutes after payment collection. Due to this function, we recommend presenting tipping before collecting payment for a smoother user experience.

Is Offline mode compatible with Tap to Pay on iPhone?

No. Offline mode is not compatible with Tap to Pay on iPhone.

Is there any way to restrict card types at the Tap to Pay on iPhone level?

No. We don’t offer the functionality to restrict cards at the Tap to Pay on iPhone level.

Do stripe test cards work with Tap to Pay on iPhone?

Yes. See our docs here.

What does it mean if I am seeing error on_behalf_of error

If you are using the on_behalf_of parameter in your PaymentIntent, please make sure to provide the Connected Account ID in the SCPLocalMobileConnectionConfiguration. See our docs for full details.


Apple Related Questions

For Frequently Asked Questions related to Tap to Pay on iPhone, please see Apple’s Merchant FAQ.

How is initial onboarding handled for iPhone devices?

Users will be presented with Apple’s Tap to Pay on iPhone Terms and Conditions the first time they connect to the local reader. In order to register with Apple, merchants must specify a valid Apple ID representing their business before accepting the terms presented by Apple. Note that this flow only needs to be performed once per Stripe account. This flow will be skipped for all subsequent connections using the same Stripe account across all devices, unless otherwise required by Apple.

To learn more about merchant linking, please go to the Tap to Pay on iPhone Business Information section in Apple’s Tap to Pay on iPhone FAQ.

Before using a device to read payment cards, you need to configure it appropriately. This configuration must be done on every device using Tap to Pay on iPhone for the first time. The initial configuration of a device can take up to two minutes. Any subsequent configuration updates typically take just a few seconds. See the ‘Handle device setup’ section for more details.

Are the Tap to Pay on iPhone’s Terms and Conditions (ToS) acceptance steps transparently handled by the Terminal SDK?

The Terms of Service for Tap to Pay on iPhone will show up automatically on the first local reader connection for a given account. This is implicitly handled by the Terminal SDK and no additional code is required to trigger the Terms of Service flow.

When do the Tap to Pay on iPhone’s Terms and Conditions (ToS) steps happen?

The Terms of Service for Tap to Pay on iPhone is presented on the first connectLocalMobileReader for a given connect subaccount. Once the Terms of Service are accepted, it will no longer show up for the given account.

Apple’s docs mention a requirement that “Only an admin user can accept The Terms and Conditions on behalf of a merchant.” Does the merchant need to do anything to indicate that a user is authorized to accept the T&Cs?

We recommend that merchants provide guidance during user onboarding to ensure that the authorized merchant is accepting the terms.

When the Apple TTP screen pops up and shows the business name, how configurable is that for Platforms? Is it specific to the exact DBA of the connected account?

Platforms can configure the business name here. We use the connect account name as the default but you can override this should you choose to do so. You should ensure to specify the correct business name.

Does Stripe support implementations where a merchant directly uses Apple’s proximityReader API?

We currently don’t support directly using Apple’s proximityReader API. Using the proximityReader properly relies on a direct relationship with Apple in order to issue reader connection tokens.

Are there options available for customizing the Tap to Pay on iPhone User Interface?

No. The Tap to Pay on iPhone UI that is triggered when your point-of-sale application is ready to collect a payment. It cannot be customized.

Do you need to set a location for your mobile device when using Tap to Pay on iPhone? Is this required by Apple?

All Terminal hardware readers are required to set a Location. This is an existing requirement that also applies to Tap to Pay on iPhone.

How do I get my iOS app approved by Apple?

Your Tap to Pay on iPhone application will go through the standard Apple App Store review process. Be sure to consider Apple’s Tap to Pay Human Interface Guidelines when building your app.

How do I request and configure the required entitlement to support Tap to Pay on iPhone?

You can directly request an entitlement from the Apple Developer site here.


Support

I have questions about the Terminal iOS SDK integration, transaction processing or Stripe Terminal functionality that are not covered here.

Please reach out to Stripe support.

I have questions about my Apple ID account, Apple Business Register (ABR) account, and/or iPhone hardware.

Users can find support for Apple related issues at the following resources: