Apple Pay

RSS for tag

Discuss how to integrate Apple Pay into your app for secure and convenient payments.

Apple Pay Documentation

Posts under Apple Pay subtopic

Post

Replies

Boosts

Views

Activity

Gathering Required Information for Troubleshooting Apple Pay In-App Provisioning or In-App Verification Issues
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
0
0
5k
Jan ’26
Gathering Required Information for Troubleshooting Apple Pay on the Web Merchant Issues
Hi, To ensure the issue is not caused by an error within your app or web service request, please review the Apple Pay Merchant Integration Guide. Additionally, please review the following technotes on Apple Pay: TN3173: Troubleshooting issues with your Apple Pay merchant identifier configuration TN3174: Diagnosing issues with the Apple Pay payment sheet on your website TN3175: Diagnosing issues with displaying the Apple Pay button on your website TN3176: Troubleshooting Apple Pay payment processing issues TN3206: Updating Apple Pay certificates If the resources above don’t help identify the cause of the error, please provide more information about your app or web services to get started. To prevent sending sensitive credentials in plain text, create a report in Feedback Assistant to share the details requested below. Additionally, if the error is something we need to investigate further, the appropriate engineering teams also have access to the same information and can communicate with you directly within Feedback Assistant for more information, as needed. Please follow the instructions below to submit your report. For issues occurring with your native app or web service, perform the following steps: Install the Apple Pay profile 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 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 of when the issue was reproduced. 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 merchant domain in the Safari Web Inspector. See Inspecting Safari on macOS to learn more. 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 website. 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 web implementation, a configuration issue within your developer account, or an underlying system bug. Cheers, Paris X Pinkney |  WWDR | DTS Engineer
0
0
3.9k
Mar ’26
Integrating Apple Pay into an HTML inline frame (iframe) on your website
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
0
0
3.4k
Mar ’25
Can two Apple Pay integrations coexist on one domain?
We're an ecommerce/payments platform where tenants embed our Apple Pay checkout into their existing website via an iframe. Our checkout is served entirely from our own domain (b.com) - none of our code runs in the tenant's top-level context. We manage Merchant Identity certificate and Payment Processing certificate, shared across tenants, and tenants are onboarded by registering their domain against our Merchant Id. Our specific scenario: a tenant's domain (a.com) already has its own, independent Apple Pay integration - their own Merchant ID, their own Merchant Identity/Payment Processing certs, and their own apple-developer-merchantid-domain-association file already hosted at a.com/.well-known/, used for a different part of their business with a different PSP. We now want to embed our checkout (iframe source = b.com) into a different part of a.com's site, registered under our own Merchant ID, without disrupting a.com's existing integration. We understand that per Apple's iframe guidance, the parent/top-level page domain must be registered and passed as initiativeContext during merchant validation - so b.com (our iframe source) being registered isn't sufficient on its own; a.com (the top-level document) also needs to be registered, under our merchant bucket, concurrently with its own existing registration under its separate Merchant ID. Given that: Is it supported for the same domain (a.com) to be registered concurrently under two unrelated Payment Merchant IDs - ours for the embedded flow, and the tenant's own for their existing flow? Our analysis says no, but we'd appreciate a definitive answer. If so, how is domain verification expected to work in that case? The well-known path (a.com/.well-known/apple-developer-merchantid-domain-association) can only serve one file - how should a.com host verification for two independent registrations at the same domain and path? Is there a documented or recommended pattern for this "platform iframe on domain X, where domain X already has its own separate, unrelated Apple Pay merchant registration" case, distinct from the general "PSP registers a merchant's domain" flow? We've read the Web Merchant Registration API docs and the "Apple Pay Web and Ecommerce site hosting Multiple Merchants on a Single Domain Site" thread, but those address a single integrator managing many merchants, not two independent integrators needing to register the same top-level domain simultaneously.
1
0
92
3d
AssistiveTouch no longer confirms Apple Pay payments after updating to iOS 27
After updating my iPhone 15 to iOS 27, the AssistiveTouch button no longer works to confirm Apple Pay payments or other actions that require confirmation through AssistiveTouch. I normally use the following sequence: Long-press the AssistiveTouch button to open Apple Pay. After Apple Pay opens, use the same long-press gesture on AssistiveTouch to confirm the payment. Before updating to iOS 27, this worked normally. When navigating through the AssistiveTouch menu step by step, the behavior seems to indicate that the Apple Pay action is supposed to be followed by the AssistiveTouch confirmation action. However, on my device, after Apple Pay opens, the AssistiveTouch button no longer performs the confirmation action. It seems as if the long-press gesture is no longer being recognized for the confirmation step. This is particularly noticeable because the Apple Pay interface opens correctly, but there is no response when I perform the same long-press gesture that previously confirmed the payment. Has anyone else experienced this behavior on iOS 27? Could this be a bug or an intentional change in how AssistiveTouch handles Apple Pay confirmation? Device: iPhone 15 OS: iOS 27
1
0
146
3d
Apple Pay Domain Reverify Failed
We are attempting to integrate the Apple Pay service into our website and have successfully verified our domain with Apple manually. However, we consistently receive an 'ApplePay reverify failed' email a month before the expiration time. Upon checking, we updated the SSL certificate for the domain before receiving the email, and the link still works fine in the browser. We would greatly appreciate any feedback from someone who can help us with this issue.
2
0
459
6d
Error Domain=PKPassKitErrorDomain Code=2
We are getting this error frequently and our customers are getting increasing frustrated when they are unable to add their credit card to Apple Wallet. There is no clear explanation on when this error arises. I sincerely request help to understand the cause of this issue. Device info: Apple iOS 26.6.1.
0
0
84
1w
In App Provisioning PKErrorHTTPResponseStatusCodeKey=500
Hello, we are developing in app provisioning of our American Express network cards. After clicking add to apple wallet in our app, I launch the PKAddPaymentPassViewController and click next. It loads for a few seconds and then I get: [<private>] ProvisioningOperationComposer: Step '<private>' failed with error Error Domain=PKProvisioningErrorDomain Code=5 UserInfo={PKErrorHTTPResponseStatusCodeKey=500} Does anyone have any insight on what this error means?
5
1
1.4k
1w
Guideline 3.1.3(d) vs. EU External Purchase Link Entitlement — real-time one-to-many servic
Hello, We are the developers of UbiFit Go, a fitness marketplace app (Portugal/EU). We offer live, real-time group fitness classes via video call, purchased as a credit pack exclusively on our external website (Stripe), and consumed in-app via a native button — with no links, buttons, or WebViews pointing to our website inside the app (only static informational text, e.g. "manage your credits from your account on our website"). Guideline 3.1.3(d) states that "one-to-few and one-to-many real-time services must use in-app purchase." We would like to confirm: Does this static-text-only pattern (no in-app link of any kind) still fall under 3.1.3(d), or is it exempt because there is no purchase flow or redirection happening inside the app at all? If it does fall under 3.1.3(d), does the EU External Purchase Link Entitlement (per the Digital Markets Act) apply to real-time one-to-many services such as live group fitness classes, or is that entitlement limited to non-real-time digital goods? We want to ensure full compliance before implementing this feature. Thank you.
0
0
58
1w
Apple Pay disabled after 26.6 beta update
I'm on a 16" MacBook Pro M4 Max w/ 36 GB RAM Apple Pay had been working with the beta releases with not issues, but after the macOS 26.6 beta update, Apple Pay was deactivated and is showing an error message: Apple Pay has been disabled because the security settings of this Mac were modified I found suggested fixes on the non-beta Apple forums (since this issue has apparently struck past release-versions of macOS), but none of them have worked. Does anyone here have any notions? Thanks!
3
0
431
3w
problem with timeout on handshake
Good morning, We are experiencing issues with timeouts during the certificate handshake. We have checked the certificates and they are valid. Please could you assist us? Details are as follows: 2026-08-25T06:32:08.163472945Z – first error 2026-08-25T06:42:42.649765367Z 2026-08-25T15:53:01.713486959Z 26 August 2026 14:54:20.693697592Z 26 August 2026 15:09:43.343099296Z 26 August 2026 15:42:55.565622994Z An SSLHandshakeException has occurred. The certificates provided may not be valid {message={I/O error on POST request for ‘https://apple-pay-gateway.apple.com/paymentservices/paymentSession’: Remote host terminated the handshake}}} After one minute, we observe an error: 2026-08-25T15:56:35.280529678Z Calling Apple {url=https://apple-pay-gateway.apple.com/paymentservices/paymentSession} Then: 25 August 2026 15:57:35.504558588Z An SSLHandshakeException has occurred. The certificates provided may not be valid {message={I/O error on POST request for ‘https://apple-pay-gateway.apple.com/paymentservices/paymentSession’: Remote host terminated the handshake
2
1
305
4w
Physical book sales on app
I would like to sell physical printed books via my app on Apple. Is it permitted to do this? Can I link out to my physical bookstore outside of the App? What details or documentation do I need to provide to Apple to get this approved on the App Store?
1
0
224
Aug ’26
iOS 27 Beta 6 Apple Pay provisioning fails with SES.presentationTimedOut
I am seeing a reproducible Apple Pay card provisioning failure on iOS 27 Beta 6 (24A5418b). The card eligibility check succeeds and the Apple Pay provisioning response contains a valid termsID, but provisioning subsequently enters the Secure Element storage-management stage and fails with: SEStorageManagementSheet Code 4 SES.presentationTimedOut The Terms & Conditions screen therefore never appears and provisioning cannot continue. I reproduced the same system-level failure through multiple independent provisioning paths: First-party Apple Wallet provisioning with manual card entry Wallet-initiated provisioning that redirects to the issuer app Issuer-app initiated in-app provisioning The issue affects multiple issuers, including East West Bank and Mercury. The same iPhone successfully provisioned Chase UK and HSBC Hong Kong cards on an earlier iOS 27 beta build, and Apple Pay provisioning worked normally on iOS 26. I have already tested different network conditions, reset network settings, and removed two existing Apple Pay cards before reproduction. The behavior remains unchanged. Two separate sysdiagnoses show the same failure path. During the latest reproduction, SESUIServiceApp was successfully launched, but provisioning ultimately failed during SEStorageManagementSheet presentation with SES.presentationTimedOut. The captured RunningBoard state also showed SESUIServiceApp in a background/suspended state rather than maintaining a successful remote presentation. I have submitted the complete diagnostics and sysdiagnose files through Feedback Assistant: FB24403156 Could an Apple Wallet / Apple Pay engineer please review this Feedback and investigate the SESUIServiceApp / SEStorageManagementSheet remote presentation path on iOS 27? For privacy reasons, I am not attaching the full sysdiagnose publicly here; the diagnostic files are attached to FB24403156
2
0
271
Aug ’26
In-App Provisioning fails at eligibility with errorCode 40001
Our issuer app's in-app provisioning fails at ProvisioningStepEligibility with PKPaymentWebServiceErrorDomain Code=40001 "Invalid Card - Check the information on your card and try again." (HTTP 403), before Terms & Conditions are presented. Setup: Mastercard/US, PNO Payment Data Configuration 3 (Encrypted FPAN), EV_ECC_V2, TestFlight build, initiated from the issuer app. The certificate fetch (issuerProvisioningCertificates?encryptionVersion=EV_ECC_v2) returns 200, the ephemeral public key is uncompressed 65 bytes with a leading 0x04, and the Configuration 3 payload contains all eight required keys with correctly hex-encoded nonce and nonceSignature. Since the request reaches the eligibility step and returns a card-level error rather than a cryptography error, the rejection appears to be on the card data itself rather than the envelope. Filed with sysdiagnose, timestamps, and full correlation identifiers as FB24418152. We would appreciate help determining whether errorCode 40001 originates from Apple's validation of the decrypted payload or is relayed from the PNO, and if Apple decrypted it, which field failed validation. Thank you
0
0
238
Aug ’26
Being added to the Payment Service Provider list
Hello, We are an acquirer and payment service provider offering Apple Pay to our merchants through our hosted checkout page. We started processing Apple Pay transactions in production at the beginning of this month. However, we cannot find our company name on the Payment Service Providers list below: https://developer.apple.com/apple-pay/payment-platforms/ Could you please advise us on the process and requirements for having our company added to this Payment Service Providers list?
0
0
220
Aug ’26
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.
2
0
837
Aug ’26
Apple domain reverification
Hi, I uploaded the files for the domain verification and the domains got verified, now when the ssl certificate is about to expire i get emails for it but after i renewed it before it expired the emails wont stop and when i try to reverify through the portal I get "Domain verification failed.". When i redownload new domain files and upload them to my server and try to reverify, it works. can someone think why would this happen?
0
0
487
Aug ’26
Apple Pay on the Web – Merchant Domain Verification Fails with Let’s Encrypt Cert
Posting this here because I lost way too many hours on it and hopefully someone finds this before going down the same rabbit hole. Apple Support's support was basically asking me to check the docs and this forum for solutions. I guess it's better than saying "google it yourself", but not much better ;) The issue was that Apple Pay merchant domain verification kept failing, both automated and manual. I checked pretty much everything: domain association file HTTPS DNS TLS App Service configuration Merchant ID openssl verification The interesting part was that everything looked perfectly healthy. Browsers were happy, OpenSSL reported Verify return code: 0 (ok), and there were no TLS errors. Turned out the problem was Apple's verification mechanism incompatibility with the new Generation Y cert chain, which is used as default by Let's Encrypt. My site was using a Let’s Encrypt ECDSA certificate with this chain: → YE1 → Root YE → ISRG Root X2 I reissued it as RSA (still Let’s Encrypt), which resulted in: → YR2 → Root YR → ISRG Root X1 Apple Pay domain verification started working immediately. If you’re using Certbot: sudo certbot certonly --manual --preferred-challenges http --key-type rsa --rsa-key-size 2048 --force-renewal --cert-name yourdomain.com -d yourdomain.com I don’t know whether Apple Pay currently has an issue with Let’s Encrypt’s newer Generation Y ECDSA hierarchy, or whether something in their merchant validation infrastructure doesn’t like that chain. If you’ve already checked the usual stuff and everything looks correct, this is definitely worth trying before spending another day debugging.
0
0
465
Aug ’26
In-App Provisioning Internal Server Error 500
We are implementing In-App Provisioning functionality for our Bank but there is always 500 Internal Server Error respond by Apple server once we tried to add card to apple wallet. Our code let request = PKAddPaymentPassRequest() request.activationData = try decodeBase64(payload.activationDataText, field: "activationDataText") request.encryptedPassData = try decodeBase64(payload.encryptedDataText, field: "encryptedDataText") request.ephemeralPublicKey = try decodeBase64(payload.ephemeralPublicKeyText, field: "ephemeralPublicKeyText") return request Because of fPanId is not required so we are not pass it to Apple server and that field generated once the card already added to wallet. Please help us investigate the issue, thanks! FeedbackId 24065847 (In-App Provisioning 500 Internel Error)
11
1
655
Aug ’26
Gathering Required Information for Troubleshooting Apple Pay In-App Provisioning or In-App Verification Issues
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
Replies
0
Boosts
0
Views
5k
Activity
Jan ’26
Gathering Required Information for Troubleshooting Apple Pay on the Web Merchant Issues
Hi, To ensure the issue is not caused by an error within your app or web service request, please review the Apple Pay Merchant Integration Guide. Additionally, please review the following technotes on Apple Pay: TN3173: Troubleshooting issues with your Apple Pay merchant identifier configuration TN3174: Diagnosing issues with the Apple Pay payment sheet on your website TN3175: Diagnosing issues with displaying the Apple Pay button on your website TN3176: Troubleshooting Apple Pay payment processing issues TN3206: Updating Apple Pay certificates If the resources above don’t help identify the cause of the error, please provide more information about your app or web services to get started. To prevent sending sensitive credentials in plain text, create a report in Feedback Assistant to share the details requested below. Additionally, if the error is something we need to investigate further, the appropriate engineering teams also have access to the same information and can communicate with you directly within Feedback Assistant for more information, as needed. Please follow the instructions below to submit your report. For issues occurring with your native app or web service, perform the following steps: Install the Apple Pay profile 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 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 of when the issue was reproduced. 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 merchant domain in the Safari Web Inspector. See Inspecting Safari on macOS to learn more. 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 website. 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 web implementation, a configuration issue within your developer account, or an underlying system bug. Cheers, Paris X Pinkney |  WWDR | DTS Engineer
Replies
0
Boosts
0
Views
3.9k
Activity
Mar ’26
Integrating Apple Pay into an HTML inline frame (iframe) on your website
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
Replies
0
Boosts
0
Views
3.4k
Activity
Mar ’25
Can two Apple Pay integrations coexist on one domain?
We're an ecommerce/payments platform where tenants embed our Apple Pay checkout into their existing website via an iframe. Our checkout is served entirely from our own domain (b.com) - none of our code runs in the tenant's top-level context. We manage Merchant Identity certificate and Payment Processing certificate, shared across tenants, and tenants are onboarded by registering their domain against our Merchant Id. Our specific scenario: a tenant's domain (a.com) already has its own, independent Apple Pay integration - their own Merchant ID, their own Merchant Identity/Payment Processing certs, and their own apple-developer-merchantid-domain-association file already hosted at a.com/.well-known/, used for a different part of their business with a different PSP. We now want to embed our checkout (iframe source = b.com) into a different part of a.com's site, registered under our own Merchant ID, without disrupting a.com's existing integration. We understand that per Apple's iframe guidance, the parent/top-level page domain must be registered and passed as initiativeContext during merchant validation - so b.com (our iframe source) being registered isn't sufficient on its own; a.com (the top-level document) also needs to be registered, under our merchant bucket, concurrently with its own existing registration under its separate Merchant ID. Given that: Is it supported for the same domain (a.com) to be registered concurrently under two unrelated Payment Merchant IDs - ours for the embedded flow, and the tenant's own for their existing flow? Our analysis says no, but we'd appreciate a definitive answer. If so, how is domain verification expected to work in that case? The well-known path (a.com/.well-known/apple-developer-merchantid-domain-association) can only serve one file - how should a.com host verification for two independent registrations at the same domain and path? Is there a documented or recommended pattern for this "platform iframe on domain X, where domain X already has its own separate, unrelated Apple Pay merchant registration" case, distinct from the general "PSP registers a merchant's domain" flow? We've read the Web Merchant Registration API docs and the "Apple Pay Web and Ecommerce site hosting Multiple Merchants on a Single Domain Site" thread, but those address a single integrator managing many merchants, not two independent integrators needing to register the same top-level domain simultaneously.
Replies
1
Boosts
0
Views
92
Activity
3d
AssistiveTouch no longer confirms Apple Pay payments after updating to iOS 27
After updating my iPhone 15 to iOS 27, the AssistiveTouch button no longer works to confirm Apple Pay payments or other actions that require confirmation through AssistiveTouch. I normally use the following sequence: Long-press the AssistiveTouch button to open Apple Pay. After Apple Pay opens, use the same long-press gesture on AssistiveTouch to confirm the payment. Before updating to iOS 27, this worked normally. When navigating through the AssistiveTouch menu step by step, the behavior seems to indicate that the Apple Pay action is supposed to be followed by the AssistiveTouch confirmation action. However, on my device, after Apple Pay opens, the AssistiveTouch button no longer performs the confirmation action. It seems as if the long-press gesture is no longer being recognized for the confirmation step. This is particularly noticeable because the Apple Pay interface opens correctly, but there is no response when I perform the same long-press gesture that previously confirmed the payment. Has anyone else experienced this behavior on iOS 27? Could this be a bug or an intentional change in how AssistiveTouch handles Apple Pay confirmation? Device: iPhone 15 OS: iOS 27
Replies
1
Boosts
0
Views
146
Activity
3d
Apple Pay Domain Reverify Failed
We are attempting to integrate the Apple Pay service into our website and have successfully verified our domain with Apple manually. However, we consistently receive an 'ApplePay reverify failed' email a month before the expiration time. Upon checking, we updated the SSL certificate for the domain before receiving the email, and the link still works fine in the browser. We would greatly appreciate any feedback from someone who can help us with this issue.
Replies
2
Boosts
0
Views
459
Activity
6d
Error Domain=PKPassKitErrorDomain Code=2
We are getting this error frequently and our customers are getting increasing frustrated when they are unable to add their credit card to Apple Wallet. There is no clear explanation on when this error arises. I sincerely request help to understand the cause of this issue. Device info: Apple iOS 26.6.1.
Replies
0
Boosts
0
Views
84
Activity
1w
In App Provisioning PKErrorHTTPResponseStatusCodeKey=500
Hello, we are developing in app provisioning of our American Express network cards. After clicking add to apple wallet in our app, I launch the PKAddPaymentPassViewController and click next. It loads for a few seconds and then I get: [<private>] ProvisioningOperationComposer: Step '<private>' failed with error Error Domain=PKProvisioningErrorDomain Code=5 UserInfo={PKErrorHTTPResponseStatusCodeKey=500} Does anyone have any insight on what this error means?
Replies
5
Boosts
1
Views
1.4k
Activity
1w
Guideline 3.1.3(d) vs. EU External Purchase Link Entitlement — real-time one-to-many servic
Hello, We are the developers of UbiFit Go, a fitness marketplace app (Portugal/EU). We offer live, real-time group fitness classes via video call, purchased as a credit pack exclusively on our external website (Stripe), and consumed in-app via a native button — with no links, buttons, or WebViews pointing to our website inside the app (only static informational text, e.g. "manage your credits from your account on our website"). Guideline 3.1.3(d) states that "one-to-few and one-to-many real-time services must use in-app purchase." We would like to confirm: Does this static-text-only pattern (no in-app link of any kind) still fall under 3.1.3(d), or is it exempt because there is no purchase flow or redirection happening inside the app at all? If it does fall under 3.1.3(d), does the EU External Purchase Link Entitlement (per the Digital Markets Act) apply to real-time one-to-many services such as live group fitness classes, or is that entitlement limited to non-real-time digital goods? We want to ensure full compliance before implementing this feature. Thank you.
Replies
0
Boosts
0
Views
58
Activity
1w
Apple Pay disabled after 26.6 beta update
I'm on a 16" MacBook Pro M4 Max w/ 36 GB RAM Apple Pay had been working with the beta releases with not issues, but after the macOS 26.6 beta update, Apple Pay was deactivated and is showing an error message: Apple Pay has been disabled because the security settings of this Mac were modified I found suggested fixes on the non-beta Apple forums (since this issue has apparently struck past release-versions of macOS), but none of them have worked. Does anyone here have any notions? Thanks!
Replies
3
Boosts
0
Views
431
Activity
3w
Apple Account Binding for Wallet Pas
Does anyone know how to implement Apple Account Binding for Wallet Pass function like https://www.ticketswest.com/customer-service/nfc-apple-account-binding/apple-account-bin
Replies
0
Boosts
0
Views
130
Activity
3w
problem with timeout on handshake
Good morning, We are experiencing issues with timeouts during the certificate handshake. We have checked the certificates and they are valid. Please could you assist us? Details are as follows: 2026-08-25T06:32:08.163472945Z – first error 2026-08-25T06:42:42.649765367Z 2026-08-25T15:53:01.713486959Z 26 August 2026 14:54:20.693697592Z 26 August 2026 15:09:43.343099296Z 26 August 2026 15:42:55.565622994Z An SSLHandshakeException has occurred. The certificates provided may not be valid {message={I/O error on POST request for ‘https://apple-pay-gateway.apple.com/paymentservices/paymentSession’: Remote host terminated the handshake}}} After one minute, we observe an error: 2026-08-25T15:56:35.280529678Z Calling Apple {url=https://apple-pay-gateway.apple.com/paymentservices/paymentSession} Then: 25 August 2026 15:57:35.504558588Z An SSLHandshakeException has occurred. The certificates provided may not be valid {message={I/O error on POST request for ‘https://apple-pay-gateway.apple.com/paymentservices/paymentSession’: Remote host terminated the handshake
Replies
2
Boosts
1
Views
305
Activity
4w
Physical book sales on app
I would like to sell physical printed books via my app on Apple. Is it permitted to do this? Can I link out to my physical bookstore outside of the App? What details or documentation do I need to provide to Apple to get this approved on the App Store?
Replies
1
Boosts
0
Views
224
Activity
Aug ’26
iOS 27 Beta 6 Apple Pay provisioning fails with SES.presentationTimedOut
I am seeing a reproducible Apple Pay card provisioning failure on iOS 27 Beta 6 (24A5418b). The card eligibility check succeeds and the Apple Pay provisioning response contains a valid termsID, but provisioning subsequently enters the Secure Element storage-management stage and fails with: SEStorageManagementSheet Code 4 SES.presentationTimedOut The Terms & Conditions screen therefore never appears and provisioning cannot continue. I reproduced the same system-level failure through multiple independent provisioning paths: First-party Apple Wallet provisioning with manual card entry Wallet-initiated provisioning that redirects to the issuer app Issuer-app initiated in-app provisioning The issue affects multiple issuers, including East West Bank and Mercury. The same iPhone successfully provisioned Chase UK and HSBC Hong Kong cards on an earlier iOS 27 beta build, and Apple Pay provisioning worked normally on iOS 26. I have already tested different network conditions, reset network settings, and removed two existing Apple Pay cards before reproduction. The behavior remains unchanged. Two separate sysdiagnoses show the same failure path. During the latest reproduction, SESUIServiceApp was successfully launched, but provisioning ultimately failed during SEStorageManagementSheet presentation with SES.presentationTimedOut. The captured RunningBoard state also showed SESUIServiceApp in a background/suspended state rather than maintaining a successful remote presentation. I have submitted the complete diagnostics and sysdiagnose files through Feedback Assistant: FB24403156 Could an Apple Wallet / Apple Pay engineer please review this Feedback and investigate the SESUIServiceApp / SEStorageManagementSheet remote presentation path on iOS 27? For privacy reasons, I am not attaching the full sysdiagnose publicly here; the diagnostic files are attached to FB24403156
Replies
2
Boosts
0
Views
271
Activity
Aug ’26
Timeouts on paymentservices/paymentSession
Hello. We are an acquirer and we have timeouts in about 7-8% of requests to https://apple-pay-gateway.apple.com/paymentservices/paymentSession in the last 30 minutes since 07:00 EET. Our timeout is 60 seconds. We've checked and don't see any issues on our side. There were no changes in our infrastructure setup.
Replies
0
Boosts
0
Views
299
Activity
Aug ’26
In-App Provisioning fails at eligibility with errorCode 40001
Our issuer app's in-app provisioning fails at ProvisioningStepEligibility with PKPaymentWebServiceErrorDomain Code=40001 "Invalid Card - Check the information on your card and try again." (HTTP 403), before Terms & Conditions are presented. Setup: Mastercard/US, PNO Payment Data Configuration 3 (Encrypted FPAN), EV_ECC_V2, TestFlight build, initiated from the issuer app. The certificate fetch (issuerProvisioningCertificates?encryptionVersion=EV_ECC_v2) returns 200, the ephemeral public key is uncompressed 65 bytes with a leading 0x04, and the Configuration 3 payload contains all eight required keys with correctly hex-encoded nonce and nonceSignature. Since the request reaches the eligibility step and returns a card-level error rather than a cryptography error, the rejection appears to be on the card data itself rather than the envelope. Filed with sysdiagnose, timestamps, and full correlation identifiers as FB24418152. We would appreciate help determining whether errorCode 40001 originates from Apple's validation of the decrypted payload or is relayed from the PNO, and if Apple decrypted it, which field failed validation. Thank you
Replies
0
Boosts
0
Views
238
Activity
Aug ’26
Apple Pay In-App Provisioning - error when adding a card
Please take a look at: FB22280049
Replies
5
Boosts
0
Views
1k
Activity
Aug ’26
Being added to the Payment Service Provider list
Hello, We are an acquirer and payment service provider offering Apple Pay to our merchants through our hosted checkout page. We started processing Apple Pay transactions in production at the beginning of this month. However, we cannot find our company name on the Payment Service Providers list below: https://developer.apple.com/apple-pay/payment-platforms/ Could you please advise us on the process and requirements for having our company added to this Payment Service Providers list?
Replies
0
Boosts
0
Views
220
Activity
Aug ’26
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.
Replies
2
Boosts
0
Views
837
Activity
Aug ’26
Apple domain reverification
Hi, I uploaded the files for the domain verification and the domains got verified, now when the ssl certificate is about to expire i get emails for it but after i renewed it before it expired the emails wont stop and when i try to reverify through the portal I get "Domain verification failed.". When i redownload new domain files and upload them to my server and try to reverify, it works. can someone think why would this happen?
Replies
0
Boosts
0
Views
487
Activity
Aug ’26
Apple Pay on the Web – Merchant Domain Verification Fails with Let’s Encrypt Cert
Posting this here because I lost way too many hours on it and hopefully someone finds this before going down the same rabbit hole. Apple Support's support was basically asking me to check the docs and this forum for solutions. I guess it's better than saying "google it yourself", but not much better ;) The issue was that Apple Pay merchant domain verification kept failing, both automated and manual. I checked pretty much everything: domain association file HTTPS DNS TLS App Service configuration Merchant ID openssl verification The interesting part was that everything looked perfectly healthy. Browsers were happy, OpenSSL reported Verify return code: 0 (ok), and there were no TLS errors. Turned out the problem was Apple's verification mechanism incompatibility with the new Generation Y cert chain, which is used as default by Let's Encrypt. My site was using a Let’s Encrypt ECDSA certificate with this chain: → YE1 → Root YE → ISRG Root X2 I reissued it as RSA (still Let’s Encrypt), which resulted in: → YR2 → Root YR → ISRG Root X1 Apple Pay domain verification started working immediately. If you’re using Certbot: sudo certbot certonly --manual --preferred-challenges http --key-type rsa --rsa-key-size 2048 --force-renewal --cert-name yourdomain.com -d yourdomain.com I don’t know whether Apple Pay currently has an issue with Let’s Encrypt’s newer Generation Y ECDSA hierarchy, or whether something in their merchant validation infrastructure doesn’t like that chain. If you’ve already checked the usual stuff and everything looks correct, this is definitely worth trying before spending another day debugging.
Replies
0
Boosts
0
Views
465
Activity
Aug ’26
unable to add sandbox mastercard to iwatch wallet
unable to add sandbox mastercard to iwatch wallet, no issue for amex. slightly difficult and failed but in the end managed to add visa after several manual input sandbox test card. Please take a look at 23315137
Replies
3
Boosts
0
Views
770
Activity
Aug ’26
In-App Provisioning Internal Server Error 500
We are implementing In-App Provisioning functionality for our Bank but there is always 500 Internal Server Error respond by Apple server once we tried to add card to apple wallet. Our code let request = PKAddPaymentPassRequest() request.activationData = try decodeBase64(payload.activationDataText, field: "activationDataText") request.encryptedPassData = try decodeBase64(payload.encryptedDataText, field: "encryptedDataText") request.ephemeralPublicKey = try decodeBase64(payload.ephemeralPublicKeyText, field: "ephemeralPublicKeyText") return request Because of fPanId is not required so we are not pass it to Apple server and that field generated once the card already added to wallet. Please help us investigate the issue, thanks! FeedbackId 24065847 (In-App Provisioning 500 Internel Error)
Replies
11
Boosts
1
Views
655
Activity
Aug ’26