I developed a web app using .net c#. The app runs a workflow which included Apple payment. App can work on any browser of any device (even non-IOS).
When the app is browsed using PC windows Chrome browser, the payment sheet will show with QR code to scan using iPhone. If I cancelled the pop-up by clicking on X without scanning the code, and then returned to idle screen and performed another payment, I will reach paymentRequest.Show() but nothing will show and no errors are logged in console.
Note that:
I use Payment Request API
The issue appear on the second payment.
The issue will be solved once I refresh the page.
My app supports both single and separate pages mode and issue appear on both.
I used to see an error "Uncaught NotSupportedError: Failed to execute 'define' on 'CustomElementRegistry': the name apple spinner has already been used with this registry. So I thought the issue might be in loading the apple SDK script multiple times, and solved the issue to be loaded only once. The error disappeared but the issue persist without errors.
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
Hello, we are trying to extend the dates of verified domains following the docs of https://developer.apple.com/documentation/applepayontheweb/maintaining-your-environment#Renew-Your-Domain-Verification and configured the server following https://developer.apple.com/documentation/ApplePayontheWeb/setting-up-your-server
we've download the apple-developer-merchantid-domain-association.txt and update them on their respective locations, click 'ok' button and we get redirected to the main page of the merchant certificate, but the expiration dates have not been extended, we can see on our web crawler that Apple Requested the file and it return a 200.
No popup errors are shown, no console developer error we only get redirected to the merchant certificate information page.
Topic:
App & System Services
SubTopic:
Apple Pay
Hi,
You're here because you've had issues with your implementation of In-App Provisioning Extensions for Apple Pay In-App Provisioning or In-App Verification. To prevent sending sensitive credentials in plain text, create a new report in Feedback Assistant to share the details requested below with the appropriate log profiles installed.
Gathering Required Information for Troubleshooting Apple Pay In-App Provisioning or In-App Verification Issues
While troubleshooting Apple Pay In-App Provisioning or In-App Verification, it is essential that the issuer is able to collect logs on their device and check those logs for error message. This is also essential when reporting issues to Apple. To gather the required data for your own debugging as well as reporting issues, please perform the following steps on the test device:
Install the Apple Pay and Wallet profiles on your iOS or watchOS device. If the issue occurs on Mac, continue to Step 2.
Reproduce the issue and make a note of the timestamp when the issue occurred, while optionally capturing screenshots or video.
Gather a sysdiagnose on the same iOS or watchOS device, or on macOS.
Create a Feedback Assistant report with the following information:
The bundle IDs
App bundle ID
Non-UI app extension bundle ID (if applicable)
UI app extension bundle ID (if applicable)
The serial number of the device.
For iOS and watchOS: Open Settings > General > About > Serial Number (tap and hold to copy).
For macOS: Open the Apple () menu > About This Mac > Serial Number.
The SEID (Secure Element Identifier) of the device, represented as a HEX encoded string.
For iOS and watchOS: Open Settings > General > About > SEID (tap and hold to copy).
For macOS: Open the Apple () menu > About This Mac > System Report > NVMExpress > Serial Number.
The sysdiagnose gathered after reproducing the issue.
The timestamp (including timezone) of when the issue was reproduced.
The type of provisioning failure (e.g., error at Terms & Conditions, error when adding a card, etc.)
The issuer/network/country of the provisioned card (e.g., Mastercard – US)
Last 4 digits of the FPAN
Last 4 digits of the DPAN (if available)
Was this test initiated from the Issuer App? (e.g., yes or no)
The type of environment (e.g., sandbox or production)
Screenshots or videos of errors and unexpected behaviors (optional).
Important: From the logs gathered above, you should be able to determine the cause of the failure from PassbookUIService, PassKit or PassKitCore, and by filtering for your SEID or bundle ID of your app or app extensions in the Console app.
Submitting your feedback
Before you submit to Feedback Assistant, please confirm the requested information above is included in your feedback. Failure to provide the requested information will only delay my investigation into the reported issue within your Apple Pay client.
After your submission to Feedback Assistant is complete, please respond in your existing Developer Forums post with the Feedback ID. Once received, I can begin my investigation and determine if this issue is caused by an error within your client, a configuration issue within your developer account, or an underlying system bug.
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?
Cybersource production support has clarified issue as below
"On the BAD Case, it seems that the Apple Payload did not contain the "onlinePaymentCryptogram" object within the JSON. The Cryptogram is critical and mandatory.
Since the merchant cannot really control this, and since CYBS is just decrypting the payload and uses it, we cannot comment as to why it was missing.
The merchant would need to reach out to Apple and/or decrypt the payment themselves locally to check if and why this data was not present, for troubleshooting purposes."
Hi, I am the developer of this app and I was shared this receipt which strangely does not list my name as the merchant but instead says "The flow network" as you can see below:
What is going on?
Topic:
App & System Services
SubTopic:
Apple Pay
In the docs, I see a button type with label "Pay With [apple logo]. https://developer.apple.com/design/human-interface-guidelines/apple-pay
Although I don't see this type as an option here: https://developer.apple.com/documentation/PassKit/PKPaymentButtonType
Wondering if I'm looking in the right place and if this button type is still available?
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
We are an acquirer/payment provider offering Apple Pay. Our merchants use our hosted checkout to accept payments. After a user pays with Apple Pay on our checkout, the Wallet transaction record shows our checkout domain as the payee. We would like it to display the merchant’s brand/name so users can recognize or contact the merchant.
Is there any parameter or configuration that controls what Wallet shows as the payee? For example, can this be set via a specific field/parameter, or is it strictly derived from the Merchant ID’s display name (or other Apple Pay configuration)? What is the correct approach for a PSP/acquirer to have the merchant’s brand shown in Wallet transaction record?
Additional detail: The field in question is the merchant/payee name shown in the Apple Wallet receipt—directly under the transaction amount at the top of the receipt, and again beneath the “Total” line.
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).
We are experiencing intermittent 403 Forbidden errors during Apple Pay on web merchant validation in our production and sandbox environment.
Has anyone else started seeing 403 Forbidden errors recently (since mid-2025)?
Why would merchant validation be sometimes successful and sometimes fail with 403?
Could this be related to new Apple Pay gateway changes or stricter validation rules?
Any additional debug steps or permanent solutions we should try?
Thank you.
Hi,
For one of my projects, I am using the Web Drop-in component of Adyen PSP on a Salesforce B2B Commerce site. One of the payment methods is Apple Pay. The payment method is rendered, but the Apple Pay button is not clickable. We tried debugging it but could not identify the root cause. Could you advise how this issue can be fixed?
Thanks
Topic:
App & System Services
SubTopic:
Apple Pay
Hello we are trying to renew our certificates.
We are trying to extend the dates of verified domains following the docs https://developer.apple.com/documentation/applepayontheweb/maintaining-your-environment#Renew-Your-Domain-Verification
and configure our server with
https://developer.apple.com/documentation/ApplePayontheWeb/setting-up-your-server
We've downloaded the apple-developer-merchantid-domain-association.txt and update it on their respective locations, click 'ok' button but we get redirected to the main page of the information of the merchant, and it shows the domains without the extending period of time.
No popup showing what has failed or what could be the reason of this error, we only get a redirection to the main page.
Topic:
App & System Services
SubTopic:
Apple Pay
Hi Guys,
I am having an issue verifying a card when it is pending verification in the Apple Watch Wallet App and the iPhone Wallet.
When the user verifies the card in the wallets, they are redirected to verification in my APP. However, the problem is that I don't know which application is calling, whether it is the Apple Watch or the iPhone, because the URL sends me the same serialNumber from the PKPASS. It is impossible to know if the user wants to verify and activate the card on the watch or the iPhone.
Because I only receive the following information in the URL:
myapp://app-url?
passTypeldentifier=paymentpass.com.apple&action =verify&serialNumber=*****
The serialNumber is the same from the iPhone Wallet and the Watch Wallet.
func application(_ app: UIApplication, open url: URL, options:
[UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool
{
let source = options[.sourceApplication]
I try to retrieve the source, but it comes back null. It would be the only way to know the originating App.
Can someone help me solve this problem?
Topic:
App & System Services
SubTopic:
Apple Pay
Team,
We are currently checking out on Apple Pay using ALL and MRU as currencies. We have authorized the payment via Touch ID; however, we are not receiving the onPaymentAuthorized event.
Could you please confirm if Apple Pay supports ALL and MRU currencies? We have confirmed that it works with other currencies.
Thank you!
Topic:
App & System Services
SubTopic:
Apple Pay
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
Currently, on our Production environment, when calling https://apple-pay-gateway.apple.com/paymentservices/paymentSessio,n we are randomly receiving:
"Payment Services Exception merchantId={Value} unauthorized to process transactions on behalf of merchantId={Value} reason={Value} is not a registered merchant in WWDR and isn't properly authorized via Mass Enablement, either."
Since launching Apple Pay on our platform we have received a new Domain Verification File and looking at some of the Domain Verification File that are hosted on the domains they are different to ours.
Questions around the Domain Verification File
Would we have to update every single Domain Verification File every time we receive a new one ?
Does the paymentSession verfiy/call the Domain Verification File on the domain listed at https://[DOMAIN_NAME]/.well-known/apple-developer-merchantid-domain-association ?
What happens if the Domain Verification File doesnt match the one that we currently have ?
Would we have to regrester our Domains everytime we get a new Domain Verification File ?
Topic:
App & System Services
SubTopic:
Apple Pay
Hello,
we develop a banking app and have successfully provisioned our cards (they are in the Wallet). But the method passes() of PassKit library always returns empty list.
What may be the reason of this?
Thanks.
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
Hello everyone,
We're implementing Apple Pay on the web and are already live, processing transactions. However, we've noticed that occasionally the onlinePaymentCryptogram returned in the paymentData contains spaces, causing it to be rejected by acquirers.
Has anyone else encountered this issue? Any insights would be greatly appreciated.