-
Notifications
You must be signed in to change notification settings - Fork 7
Description
📌 Summary
We are integrating Tap to Pay on iPhone using the mobile-payments-sdk-react-native SDK (v2025.6.2).
Our app submission for Apple’s Tap to Pay entitlement was rejected because the internal "Tap to Pay on iPhone" button provided by Square does not comply with Apple’s Human Interface Guidelines (HIG).
📋 Apple’s Requirements
According to Apple’s Tap to Pay on iPhone HIG, the button must:
- Use the SF Symbol:
wave.3.right.circleorwave.3.right.circle.fill - Display the exact text: “Tap to Pay on iPhone”
⚠️ Current Issue
When using PromptMode.DEFAULT (the only mode available in the React Native SDK), Square displays its own payment prompt with a non-compliant button:
- The button shows "Tap to Pay on iPhone" text ✅
- But uses a generic contactless icon ❌ instead of the required SF Symbol
Apple’s feedback screenshots highlight this incorrect icon usage.
🛠 Problem with React Native SDK
The TypeScript definitions in enums.d.ts confirm that only PromptMode.DEFAULT is exposed:
export declare enum PromptMode {
DEFAULT = 0
}-
The native iOS SDK supports PromptMode.CUSTOM, which allows building a custom, compliant UI.
-
The React Native SDK does not expose this option, preventing developers from meeting Apple’s HIG.
✅ Requested Solutions
We need one of the following (in order of preference):
- Update Square’s default prompt UI to use the correct SF Symbol (
wave.3.right.circle) for the Tap to Pay button. - Expose
PromptMode.CUSTOMin the React Native SDK, enabling developers to implement a compliant custom prompt. - Provide guidance on how to pass through the native iOS custom prompt mode from React Native.
🌍 Environment
- SDK:
[email protected] - Platform: iOS (Expo / React Native)
- Devices: iPhone XS and newer
- iOS Version: 16.7+
🚧 Impact
This issue is blocking Tap to Pay entitlement approval from Apple.
Without compliance, we cannot release Tap to Pay in production.