Hello,
We are currently developing an application that uses the Host-based Card Emulation (HCE) entitlement to enable corporate access functionality. With this entitlement, we have successfully established HCE communication and can interact with our access control systems to unlock doors.
Our question is related to improving the user experience:
We would like this access functionality to work without requiring the app to be in the foreground, as this adds friction for users during entry.
Specifically, we would like to know:
Is it possible for our app to coexist with Apple Wallet as the default contactless app, so that:
Our app handles NFC interactions for corporate access (e.g., opening doors).
Apple Wallet remains the default for payments.
If that coexistence is not possible, and our app is set as the default contactless app,
Will the system still need to launch our app into the foreground to complete a transaction (e.g., to emulate the NFC card)?
Or is there a way to trigger HCE responses in the background (e.g., using a background process or service extension)?
Any guidance on how to configure the app for optimal background access behavior, while maintaining compatibility with Wallet, would be greatly appreciated.
Thank you in advance.
Apple Pay
RSS for tagDiscuss how to integrate Apple Pay into your app for secure and convenient payments.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
So I'm wondering if Apple makes commission on those payments since they're made in the app. For example a user may pay another user to clean their car. This will be handled with Stripe Connect and their balance, payment history, etc will be displayed in the app.
Does Apple charge commission on that?
The section the app review guidelines that I'm refrencing is below, but I'm still a little confused.
3.1.3(e) Goods and Services Outside of the App: If your app enables people to purchase physical goods or services that will be consumed outside of the app, you must use purchase methods other than in-app purchase to collect those payments, such as Apple Pay or traditional credit card entry.
Topic:
App & System Services
SubTopic:
Apple Pay
Hello,
We’re seeing an issue where the Apple Pay button is visible in Safari but not clickable for certain users, while it works normally for others. This happens on our site (https://store-qa2.enphase.com/
) as well as on other sites for the same affected users.
Currently, we display the Apple Pay button based on the following condition:
Boolean(window.ApplePaySession) && ApplePaySession.canMakePayments();
For affected users, the button shows up as expected, but it’s not interactive. All users (both affected and unaffected) are on the latest versions of Safari and macOS/iOS.
Could someone clarify what additional conditions Safari/Apple Pay requires for the button to be fully functional? And under what circumstances could it be visible but not clickable?
Topic:
App & System Services
SubTopic:
Apple Pay
Hi, we are implementing the push provisioning via the Apple Wallet Extension starting from the example at https://developer.apple.com/documentation/passkit/implementing-wallet-extensions.
To correctly manage the push provisioning on Apple Watch, specifically for a card tokenised in the iPhone but not in the Watch, we need to know if there is a connected Apple Watch to the iPhone.
We are using the following code from the Apple Wallet Extension example to detect whether there is a connected watch:
WCSession* session = [WCSession defaultSession];
session.delegate = delegate;
[session activateSession];
In the main target of the app, at the end of the activation the system correctly calls the delegate method:
session:activationDidCompleteWithState:error:
but we noticed it is not being called in the UI extension context (the one having NSExtensionPointIdentifier: com.apple.PassKit.issuer-provisioning.authorization).
We don't understand why the delegate is not being called in the UI extension, can you please help?
Thanks!
Steps to Reproduce:
Start with a card not added in the Apple Wallet app
Open the Apple Wallet app
Click on add card
Select the app to launch the Wallet Extension flow
The Apple Wallet Extension with UI is on screen and invokes the activateSession method, the delegate method is not invoked and session.isPaired returns "no".
Xcode Version
16.2
macOS Version
15.6.1 (24G90)
Feedback ID
FB20082564
What is the version policy for the Apple Pay SDK Javascript ?
The documentation refers to this link :
https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js
The future updates will overrride the file on that link ? Is there a way to be notified of any changes ?
We are using a previous version named v1 :
https://applepay.cdn-apple.com/jsapi/v1/apple-pay-sdk.js
What are the risks not using changing to the lastesdt link ?
Thank you for your help.
I am writing regarding an issue I have encountered while attempting to complete a payment using test users created within the Sandbox environment of Apple Pay. The problem persists specifically when trying to make payments through the demo page at https://applepaydemo.apple.com/.
Problem Description:
When initiating a payment process with either of the following test user accounts.
The flow proceeds as follows:
The Apple Pay window appears correctly.
Processing begins but does not conclude successfully.
After processing concludes, there is no prompt for 'Pay with Touch ID'.
Additional Information:
Device & OS Version: MacOS 15.3.2
Browser & Version: Safari 18.3.1
Real Device or Simulator: Real device used
First Occurrence: Before January 1st, 2025
Custom Configurations or Backend Used: No custom configurations or backend modifications are being utilized during interaction with the demo page.
Could you please provide assistance in resolving this issue?
Hello,
I am currently testing an Adyen integration with Sylius and need to verify Apple Pay with Cartes Bancaires in the sandbox environment. Could you please advise how Cartes Bancaires can be tested in Apple Pay Sandbox (e.g. cards details)?
Thank you in advance for your guidance.
Best regards,
Grzegorz
Hello,
I'm experiencing an irregular issue with Apple Pay merchant domain verification. As you know, Apple requires domain verification every two months to maintain Apple Pay functionality.
The problem is that while the verification sometimes happens automatically without any issues, other times it fails to complete, even though the required file "apple-developer-merchantid-domain-association.txt" is correctly available on our server.
When automatic verification fails, the Apple Pay service becomes non-functional on our website, forcing us to perform a manual verification to restore the pending service.
Is it normal to encounter such inconsistent automatic verification processes?
What could be causing these intermittent verification failures, whereas manual verification always succeed? suggesting this might not be related to IP address restrictions described on the Apple documentation.
Thank you in advance,
For the pushToken sent by APNS to register a wallet pass for update notifications, is there a max length or size that APNS will send? I save the token in my database and have it defined as varchar(256), but I have had some instances where the pushToken is larger than that. I'd like to know if there's an absolute max size that APNS will send. Then I'll know if I should reject requests with tokens larger than what's expected, and/or if I need to make the token size larger in the database.
Hello,
We are working on integrating billing into our dating app, targeted at the Russian market. Our main requirement is to support subscriptions with automatic renewal and cancellation.
We understand that, according to App Store Review Guideline, all digital subscriptions should use Apple In-App Purchase (IAP). However, we are unsure how this applies in Russia, where some local regulations may limit the use of non-Russian payment processors, and where not all Russian bank cards are accepted by Apple.
Our question is:
-For iOS apps in Russia, is it strictly required to use Apple IAP for subscriptions?
-Are there any approved exceptions allowing integration with local processors such as Robokassa or YooKassa?
-How are other developers currently handling subscriptions for the Russian market?
We want to ensure full compliance and avoid any risk of rejection or removal.
Thank you in advance for any clarification.
Best regards,
Dan
We are working with a large fintech org on project connected with provisioning payment cards to Apple Wallet.
When we add a previously provisioned card to the Wallet (using the Wallet UI, Add card -> Previous card). It adds the card on one device showing the Express Travel card screen after the card is added allowing the user to set the card as an express travel card during the provisioning flow but never on our other devices. All of the test devices are clean and have only the same single card provisioned.
What triggers the Express Travel Card screen to be shown during the add previous card flow? (Why is it showing on one device and not another).
iOS 16 and earlier
On iOS 16 and earlier, Apple Pay on the Web required Safari—and all interactions with the Apple Pay API to come from the parent/top level page. In order to facilitate the Apple Pay button in an HTML inline frame (iframe), there will need to be cross frame communication between the child and parent pages. Cross frame communication should be secure and robust, therefore the use of postMessage for this purpose is recommended.
The expectation is for all communication with Apple Pay to occur from the parent page, so the iframe must relay all Apple Pay related events to the parent to handle. Some examples:
Apple Pay availability: The parent calls applePayCapabilities, then sends the message of the response to the iframe, which then uses the value to toggle the visibility of the Apple Pay button.
Apple Pay session: The iframe receives an onclick() event when the Apple Pay button is clicked and sends the message to the parent (providing details about the transaction). The parent create the payment request to obtain the session validation URL, and eventually receive session credentials and invokes completeMerchantValidation() to prevent the payment sheet. After the payment is authorized by the Payment Service Provider (PSP), the parent either:
Redirects the parent page to a payment success page; or
Sends a message to the iframe to complete the transaction flow itself.
iOS 17 and later
On IOS 17 and later, the iframe HTML element should include the allow="payment" attribute, which should facilitate the cross frame communications instead of needing a dedicated JavaScript library. This means all of the Apple Pay code/calls can reside in the iframe page—which is typically a hosted page from a Payment Service Provider (PSP), all the parent page—typically a merchant—has to do is add the attribute mentioned above to the iframe element.
Important: Regardless of the iOS version, the PSP/merchant always needs to make sure the parent page domain is the one registered in the Developer portal, and used in the request to generate a merchant session via ApplePaySession.
Cheers,
Paris X Pinkney | WWDR | DTS Engineer
Hey,
Please help us to know how to get our payments of sales with iOS app we have, since beginning, our amount is pending with them and despite sevarel attempts they are providing the real issue and solutions for matter. Please suggest how to fix this issue.
Topic:
App & System Services
SubTopic:
Apple Pay
Hi,
We have app in which we take donations from people and send to non-profit organisations. I have read that Apple Pay can be integrated on non profit platforms to take donations, but we are middle man, we are not non profit .. we take donations, cut our platform fees and then sent to donations to non profit orgs.
My question is can we integrate Apple Pay in our iOS app to take donations from apple? as we have integrated Apple Pay on the web.
Topic:
App & System Services
SubTopic:
Apple Pay
Tags:
Apple Pay on the Web
Apple Pay
Tap to Pay on iPhone
We created apps for many credit unions in Canada. Some of those apps has the feature to directly add users' debit cards to Apple Wallet (which is called by Apple as "in-app provisioning"). The feature has been working fine for at least 6 years for many credit unions. Recently, after updating one of those existing apps, we found out that the in-app provisioning is no longer working. Found it very strange, as we didn't touch the code base related to this feature for a very long time. One thing we found out is that the option to add in-app provisioning entitlement is missing during generating "provisioning profile" for the app. Is this a misconfiguration by App? Or do we need to request for additional entitlement migration as mentioned in the page: https://developer.apple.com/help/account/reference/provisioning-with-managed-capabilities ? Apple, please help, it's rather urgent.
When I use my iPhone to scan the apple pay QR code in chrome, the url is https://applepaydemo.apple.com/apple-pay-js-api, I keep geting the "Service Unavailable" error.
Wonder know if you guys meet this error as well? Btw, the QR code feature needs IOS 18.
We have finished integrating Apple Pay in our app and our payment processor is requiring us to send the 3dSecure version used for apple pay (2.1,2.2,2.3,etc.). I believe this only applies to mastercard but would appreciate if anyone has run into something similar and what you specified. I have not been able to find anything in Apple's documentation specifying the version that is used.
Hi Team,
For last 24 hours one of our team members is unable to login to apple dev portal due to two factor authentication not being sent.
Error we are getting is "Verification codes can't be sent to this phone number at this time. Please try again later"
Topic:
App & System Services
SubTopic:
Apple Pay
When accessing https://applepaydemo.apple.com/payment-request-api, the "Approve with Side Button" prompt is displayed, but it does not appear when using our test domain.
I implemented the Payment Request API based on the sample source code from the following URL. On an iPhone device, the Apple Pay payment screen is displayed, but the "Approve with Side Button" icon below the amount does not appear, and instead a spinning loading icon is shown continuously.
Could you please help identify the cause?
■ Reference URL:
https://applepaydemo.apple.com/payment-request-api
■ Changed parameter:
"merchantIdentifier": "〇〇.dev"
■ Accessed domain:
〇〇test.com
■ Test device:
iPhone 13
iOS: 18.4.1
Topic:
App & System Services
SubTopic:
Apple Pay
Hey everyone, hoping someone here has run into this before.
I have a fully functional App Clip (com.didyoucatchit.app.Clip) linked to my main app (com.didyoucatchit.app). The Clip builds and runs perfectly, but I’m seeing issues trying to enable Apple Pay for it.
When I try to link my Merchant ID under the “On Demand Install Capable” capability in the Apple Developer portal, I get this error:
A relationship in the provided entity is not allowed for this request.
The relationship 'undefined' can not be included in a 'bundleIdCapabilities' request.
Here’s what I have already configured and confirmed:
App Clip capabilities in Xcode include:
Apple Pay Payment Processing
Associated Domains (appclips:app.didyoucatchit.com)
Provisioning profile includes:
Apple Pay Payment Processing
Associated Domains
In-App Purchase
On-Demand Install Capable
Entitlements file for the Clip:
<key>com.apple.developer.associated-domains</key>
<array>
<string>appclips:app.didyoucatchit.com</string>
</array>
<key>com.apple.developer.in-app-payments</key>
<array>
<string>merchant.com.didyoucatchit.app</string>
</array>
<key>com.apple.developer.parent-application-identifiers</key>
<array>
<string>$(AppIdentifierPrefix)com.didyoucatchit.app</string>
</array>
Merchant ID (merchant.com.didyoucatchit.app) is active and connected to Stripe
Stripe Apple Pay configuration matches the same merchant ID and certificate
Both provisioning profiles have been refreshed and downloaded
However:
The portal still throws the “relationship 'undefined'” error anytime I try to modify the Clip’s capabilities
In testing, Apple Pay doesn’t show up as a payment option in the Clip (using Stripe’s Payment Element integration)
Questions:
Is this a known issue with the Developer portal when linking App Clips to merchant IDs?
Is there a specific way to re-establish the parent–child relationship between the main app and the App Clip so the bundleIdCapabilities request includes the proper relationship JSON?
Are there any additional configuration steps required when using Stripe for Apple Pay inside an App Clip?
System Setup:
Xcode: 16.2 (build 16C5032a)
macOS: Sequoia 15.3.1
iOS: 18.5 (testing on physical device)
Merchant ID: merchant.com.didyoucatchit.app
Main App ID: com.didyoucatchit.app
App Clip ID: com.didyoucatchit.app.Clip
Any help or insight would be hugely appreciated
Thanks in advance!