Hello
My app has implementation of In App Provisioning which is working fine. We have now added Wallet Extensions to it, but my App is not shown in Apple Wallet "From apps on your iphone"
I have uploaded Feedback (FB16450547) at
https://feedbackassistant.apple.com/feedback/16450547
Kindly request for your advice
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
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
Hi, When I try to add a card to wallet, I get this PKPassKitErrorDomain Code=2 error from my logs, and from the SysDiagnose, I get some more detailed error log
Error details:
Date: December 15, 2025
Time: 15:16 UTC
Request URL:
https://nc-pod9-smp-device.apple.com:443/broker/v4/devices/041B4183BA1490022104102123315131EBFE2BE7…
Response:
HTTP Status: 500 – Internal Server Error
Time profile: 0.505452 seconds
Response headers:
Server: Apple
Content-Type: text/html
X-Content-Type-Options: nosniffStrict-Transport-Security: max-age=31536000; includeSubdomainsDate: Mon, 15 Dec 2025 15:16:59 GMT
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=blockCross-Origin-Opener-Policy: same-origin
Content-Length: 170 Connection: close
Response body:
Anyone have faced this problem before?
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.
Apple Sandbox is not available in India, also Apple Pay itself is not supported by Indian Banks. How can I still test using Apple Pay sandbox in India? I am trying to add test cards on my iPhone and it fails to add it. It tries to connect to Issuer, which it should not for sandbox Apple Id.
Can anyone help how to achieve this?
Is MANUAL_ENTRY mandatory for Apple Pay or may an issuer block it and rely only on PKAddPaymentPass?
We plan to set Manual PAN Entry Allowed = N and accept only issuer push provisioning (PKAddPaymentPass).
Is there any Apple Pay programme rule that obliges us to keep MANUAL_ENTRY enabled?
Will disabling it affect “Participating Issuer” listing?
Topic:
App & System Services
SubTopic:
Apple Pay
Hello,
I’m experiencing a strange issue with a newly created Subscription Group in my iOS app.
For all my existing subscription groups, everything works perfectly — initial purchase, renewals, cancellations, all notifications arrive normally.
But for this one newly created group, the first purchase never triggers any server notification from App Store Server Notifications (ASSN).
⸻
📘 Problem Summary
• I created a new Subscription Group in App Store Connect.
• The products are all Approved and Published for over a week.
• Users can successfully purchase the subscription in production.
• The purchase is shown as Purchased in the App Store purchase UI.
• The receipt can be fetched locally on device.
• But my server receives no notifications, including:
• DID_RENEW
• DID_CHANGE_RENEWAL_STATUS
• SUBSCRIBED
• ONE_TIME_CHARGE
• CONSUMPTION_REQUEST
• etc.
The old subscription groups still send notifications normally, so the notification URL and server infrastructure are correct.
Hi,
we are trying to verify our domain and we uploaded the file to our domain
{DOMAIN}/.well-known/apple-developer-merchantid-domain-association.txt and we can access it. But when we want verify the domain in your platform we can't do it and you see the message "Domain verification failed". How can we verified or if we need change something in our side to verify it?
thanks!
Hi Apple Team and Developers,
I’ve been testing the Top-up flow in our app via the TestFlight environment.
Across multiple devices (around 10 tested), everything works fine with no issues.
However, on one specific device — iPhone 14 Pro Max running iOS 18.6.2 — I’ve noticed an intermittent issue:
When performing a Top-up, the Apple UI first shows a successful purchase confirmation.
Immediately afterward, another UI prompt appears asking the player to re-enter their Apple ID password.
At the same time, Apple returns a ghost string that we cannot use to verify the user’s package bundle ID.
This creates potential confusion for users, as they see both a success confirmation and an unexpected password prompt.
I’m unsure if this behavior is expected or if there’s a recommended way to handle or prevent this issue.
Has anyone else encountered something similar, or does Apple have a suggested fix/workaround for this?
For reference, here’s a short video of the issue in action:
\🔗 https://drive.google.com/file/d/1Ml-QpEu4ocoxn-W3wEMsFMbXy2QdwbHB/view?usp=sharing
Any guidance would be greatly appreciated.
Thank you for your support!
Topic:
App & System Services
SubTopic:
Apple Pay
Hello!
We are using "Apple Pay Web Merchant Registration API"
https://developer.apple.com/documentation/applepaywebmerchantregistrationapi
Recently we successfully updated the Payment/identity certificates at our main merchant ID
And we have a few questions:
Do we need make the Domain verification for all of our sub-merchants again after the Certificates update?
How we can check the expiration of domain verification of merchants that we integrate trough API endpoint (https://apple-pay-gateway.apple.com/paymentservices/registerMerchant), and do verified domains via API have an expiration date???
How we can understand does the our universal domain verification file (apple-developer-merchantid-domain-association) have expiration too?
Thanks in advance!
Topic:
App & System Services
SubTopic:
Apple Pay
Why did my sandbox test fail due to not being able to obtain the product list?
Topic:
App & System Services
SubTopic:
Apple Pay
Is there a way to make a subscription's auto-renewal fail in sandbox environment?
Currently, I see no such options (screenshot)
Topic:
App & System Services
SubTopic:
Apple Pay
During our Apple Pay integration testing, we encountered an issue that we're unsure how to resolve. Below are the steps we followed:
Created an Apple Pay sandbox test account for Raul and added a test card, following the documentation here: https://developer.apple.com/apple-pay/sandbox-testing/
Opened the Golfmanager platform and initiated a booking.
For payment, selected Apple Pay as the method.
Raul clicked the Apple Pay button on the Golfmanager UI.
He scanned the QR code using his iPhone, logged in with the test account.
Apple Pay began validating our merchant identity and retrieved the wallet token to proceed with payment.
The Apple Pay payment sheet appeared on Raul's iPhone, showing the card details and the amount requested by Golfmanager.
Suddenly, the Apple Pay sheet closed unexpectedly, and we have no insight into what went wrong or what might be missing on our end.
Here is the video: https://drive.google.com/file/d/1r-73edQ9eBZzXi6HoSYYGjKO8LbxBrZi/view?usp=drive_web
We are trying to develop a coupon/offer code module where our app users can avail a free trail offer for 2 months period after applying the code. We already had a subscription module with monthly & yearly subscriptions with 7 day free trial period. Now, we want to implement a offer/coupon module, where, a user can either select monthly or yearly subscription, and upon entering the offer/coupon code, they will get 2 months free trial (or) a discount on the chosen subscription. (this will overwrite the existing 7 day free trial).
We are confused on choosing the type of “offer/coupon” from AppStore connect. In App Store connect, we have introductory offers, promotional offer & Offer codes. Based on our requirements, we have done research and found that we cannot implement the offer code & promotional codes in the develop environment as there is no possibility to test in Sandbox environment. We observed that we need to push the app to App store and upon approval, we need to implement “offer/coupon” module.
Can some one please suggest or guide us on choosing the best solution for our requirement?
Thanks in advance.
Topic:
App & System Services
SubTopic:
Apple Pay
Tags:
Subscriptions
App Store Connect
In-App Purchase
Hi,
We are trying to make payment from ecomm merchant.
The last request during process is
{
"sessionData": {
"epochTimestamp": "1741082241",
"expiresAt": "1741092241",
"merchantSessionIdentifier": "SSH88312C485D_7E0DD10173",
"nonce": "3f6dc197",
"merchantIdentifier": "5F9BC6BAF8",
"domainName": "libertybank.ge",
"displayName": "Apple Pay Purchase",
"signature": "3080060000",
"operationalAnalyticsIdentifier": "Apple Pay Purchase:5F9BC6BAF8",
"retries": 0,
"pspId": "5F9BC6BAF8"
}
}
which is successfully validated
applePaySession.completeMerchantValidation(data.sessionData)
After this, the "oncancel" handler is triggered in applePay.
Please help us to understand what is wrong.
Please note the domain where the applepay button is located is at
txpg.libertypay.ge Which is successfully verified.
Hi, we are implementing ID&V and there is a requirement regarding the flow for Apple Pay.
In order to clarify the case I will describe the use case scenario or steps to reproduce first:
add a card to the iPhone wallet app (yellow path verification required). Do not complete the ID&V process.
add a card to the Watch via the Wallet inside the iPhone Watch app (yellow path verification required). Same as before, do not complete the ID&V
complete ID&V process using the Issuer App either from iPhone or Watch.
the Issuer app receives the application:openURL:options: callback on its AppDelegate. In the options dictionary, we can not see the UIApplicationOpenURLOptionsSourceApplicationKey populated (it is nil).
At this moment, for the card we are adding there are now two tokens, both to be verified via ID&V process. One is on the iPhone and one is on the Apple Watch associated with the same iPhone.
The url received at step 4 contains the serial number which identifies the digitized card and matches with both the tokens in the iPhone and in the Apple Watch.
We need something to detect programmatically if the digitization process started from the iPhone Wallet app or from the wallet inside the Watch app.
Could you please help us to identify how we could discriminate if the ID&V process has been started for the iPhone token or for the Apple Watch token?
Thanks
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!
Hello,
Apologies if this has been asked before but I have a website that takes subscriptions and payments through PayPal. It's a platform where authors can sell ebooks and anyone who purchaes an ebook, the money goes pretty much directly from the buyer's PayPal to the seller PayPal through the use of PayPal Multiparty where my platform acts as a third party that takes a fee.
I'm currently building a React-Native app for my website and coming close to needing to integrate payment solutions. As far as I'm aware, Apple only allows Apple Pay payments for IAP and subscriptions? How would this work for my model? Can I integrate PayPal into Apple Pay like I do with my website? If not, what's the alternative?
你好,我们6月1日收到比较多的韩国用户反馈购买我们的内购以后,系统会在稍后的几分钟再次多次从用户的卡里扣出相应的款项,但是我们没有办法第一时间反馈给你们,导致很多用户流失,请问我们怎么才能第一时间联系到你们,还有我们怎么才能第一时间知道是你们的系统是否某个功能出了问题,是否也有相应的论坛我们可以第一时间看到你们相关问题的报道,这样我们排查问题就没那么辛苦,感谢
Topic:
App & System Services
SubTopic:
Apple Pay
Hi, I’ve been trying to integrate Apple Pay, but for some reason, the payment button is not showing up.
The project is built with Laravel 11 and Vue. I imported the script as follows:
<script crossorigin crossorigin
src="https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js"
></script>
Then I added the following the steps:
<style>
apple-pay-button {{
--apple-pay-button-width: --apple-pay-button-width: 150px;;
--apple-pay-button-height: --apple-pay-button-height: 30px;;
--apple-pay-button-border-radius: --apple-pay-button-border-radius: 3px;;
--apple-pay-button-padding: --apple-pay-button-padding: 0px 0px;;
--apple-pay-button-box-sizing: border-box;
}
</style>
<apple-pay-button buttonstyle="black" type="plain" locale="en-US"></apple-pay-button>
I followed all the steps from the official Apple Pay demo:
https://applepaydemo.apple.com/
I also configured the Content Security Policy (CSP) to allow all necessary resources. However, when I test my integration, the button doesn’t appear. I’ve checked the console, but there are no errors.
At the same time, I have my certificate imported into the Keychain, and I’ve completed the entire process of creating both the certificate and the private key. However, when I try to validate the session using the certificate and key with Apple’s API, I get an error:
400 The SSL certificate error
https://apple-pay-gateway-cert.apple.com/paymentservices/