Tap To Pay (Stripe Terminal)

Tap To Pay (Stripe Terminal)

Tap to Pay with Stripe Terminal allows you to accept contactless cards and mobile wallets directly on a compatible smartphone or dedicated reader without extra hardware

The Stripe Tap to Pay add-on connects your WebToNative app to Stripe Terminal — Google's and Apple's native contactless payment APIs. When a customer is ready to pay, your website calls a single JavaScript function and the SDK handles everything: discovering the reader, showing the native payment UI, collecting the card, and returning the result to your website.

Your website, backend, and Stripe account remain fully under your control — WebToNative sits in the middle as the native bridge between your web payment flow and the device's payment hardware.

This is available for both Android and iOS, and you will need to contact the sales team to access this add-on.

Where to Find It In Your Dashboard

My Apps ➡️ Edit your app ➡️ Add-ons ➡️ +ADD ➡️Monetization & Payments ➡️ Tap to Pay (Stripe Terminal) ➡️ Contact Support

Supported payment methods

Supported methods vary by country and device. Typically includes:

  1. Contactless Visa
  2. Mastercard
  3. American Express
  4. Discover
  5. Apple Pay
  6. Google Pay
  7. NFC-enabled wallets

What you need before you start

For everyone (both platforms): an active Stripe account with Stripe Terminal enabled, a WebToNative application, a backend server, and an HTTPS-capable website that can call WebToNative JavaScript APIs.

iOS — Tap to Pay on iPhoneAndroid — Tap to Pay
Apple Developer AccountGoogle Play Developer Account
Stripe account with Terminal enabledStripe account with Terminal enabled
Apple Tap to Pay entitlement approvalSupported Android device with NFC
Supported iPhone model and iOS versionStripe Terminal configuration
NFC enabledStripe-supported country
Physical device for final testing — simulators not supportedPhysical device for testing
💡

Apple must approve your application before Tap to Pay works on real devices. Purchasing this add-on does not guarantee Apple's approval. Only the Apple Developer Account Holder can submit the entitlement request. See the Apple Tap to Pay entitlement guide for details. https://developer.apple.com/tap-to-pay/ (opens in a new tab)

What WebToNative handles — and what you handle

What WebToNative handlesYou are responsible for
Stripe Terminal initialisationStripe account setup & Dashboard config
Reader discovery and connectionConnection Token API (backend)
Native Tap to Pay UICreate PaymentIntent API (backend)
Contactless card collectionCapture PaymentIntent (if manual capture)
Payment Intent confirmationOrder management & inventory updates
Secure Stripe communicationRefunds via Stripe API
Payment result callback to the websiteStripe Webhooks & customer records

Backend APIs you must implement

/connection_token

Securely generates a Stripe Connection Token. The SDK automatically calls this endpoint when initializing — your server requests the token from Stripe and returns it. Never expose your Stripe Secret Key in the app or website — this must run on a backend.

/create_payment_intent

Your backend creates a Stripe PaymentIntent for the transaction amount and returns the client_secret. Your website then passes this client_secret to the SDK when calling makeTapToPay().

/capture_payment_intent

Required only when using capture_method (=) manual in your PaymentIntent. Explicitly captures the funds after the card is authorised.

Payment flow — end-to-end

Customer taps Pay ↓ Website creates PaymentIntent ↓ Backend → Stripe returns client_secret ↓ Website calls WTN.Stripe.makeTapToPay() ↓ SDK shows native Tap to Pay UI ↓ Customer taps card/wallet ↓ SDK confirms PaymentIntent with Stripe ↓ Callback returns to your website ↓ Backend updates order & inventory

⚠️

Never expose Stripe Secret Keys in the app or website. Always use HTTPS. Store sensitive credentials on the backend only. Verify payment status server-side before fulfilling orders.

Official documentations

Tap to Pay on iPhone Overview

Supported PSPs, regions, design guidance, and app review requirements for Tap to Pay on iPhone. https://developer.apple.com/tap-to-pay/ (opens in a new tab)

Request Tap to Pay Entitlement

Official guide to request and configure the Tap to Pay entitlement. Only the Developer Account Holder can submit. https://developer.apple.com/contact/request/tap-to-pay-on-iphone/ (opens in a new tab)

Stripe Terminal — Tap to Pay

Complete integration guide: setup, supported countries, devices, SDK integration, and best practices. https://stripe.com/docs/terminal/payments/collect-payment?terminal-sdk-type=ios#tap-to-pay (opens in a new tab)

Stripe Terminal Overview

Learn about Stripe Terminal, supported hardware, Tap to Pay, and in-person payment solutions.
https://stripe.com/docs/terminal (opens in a new tab)

Frequently Asked Questions

Do I need a backend?

Yes — a backend is required. The SDK cannot create Connection Tokens or PaymentIntents on its own. Your backend must implement at minimum a Connection Token endpoint and a PaymentIntent creation endpoint. Never handle Stripe Secret Keys in your website's frontend code.

Can I use my existing Stripe account?

Yes — the SDK works with your own Stripe account. You retain full control of your Stripe Dashboard, account settings, and payment data. WebToNative does not have access to your Stripe account.

Can I use automatic or manual capture?

Yes. Your backend controls the PaymentIntent configuration. If you use automatic capture (the default), funds are captured immediately when the card is confirmed. If you use manual capture, you must also implement the capture endpoint on your backend and call it separately after the payment is authorized.

Does purchasing this add-on guarantee Apple's approval?

No. Apple's Tap to Pay entitlement is a separate approval process managed entirely by Apple. WebToNative has no involvement in that process. Only the Apple Developer Account Holder can submit the entitlement request. Without Apple's approval, Tap to Pay will not work on real devices in production.

Can I test without a physical device?

For development, set isSimulated: true in the makeTapToPay() call — this uses Stripe's simulated reader and doesn't require NFC or a physical card. However, all final testing must be done on a supported physical device before submitting to the app stores or going live in production.

Is Tap to Pay available in my country?

Stripe Terminal and Tap to Pay availability varies by country. Check stripe.com/docs/terminal for the current list of supported countries and devices before purchasing this add-on. If your country is not supported, the feature cannot be used.