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."
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
Created
Dear Apple Developer Support,
I would like to request a technical escalation to the engineering team regarding an ongoing issue with Apple Pay domain verification.
Error returned by Apple
Even though Apple’s request to our domain returns HTTP 200, the verification still fails with:
resultCode: 13014
resultString: "Domain verification failed. Review your TLS Certificate configuration to confirm that the certificate is accessible and a supported TLS Cipher Suite is used."
requestUrl: https://developer.apple.com/services-account/QH65B2/account/ios/identifiers/verifyDomain
TLS Certificate Validation
We performed a full TLS analysis:
Certificate issued by Sectigo Public Server Authentication CA DV E36 (public trusted CA)
Full and correct certificate chain
No handshake errors
Configuration fully valid
SSL Labs rating: A
From our side, the TLS configuration is confirmed to be correct.
Accessibility of the .well-known file
The file is publicly and accessible
It returns 200 OK and the content is exactly identical to the file downloaded from the Apple Developer Portal, without any modification.
Our network team confirmed that Apple’s verification request also receives HTTP 200 when pressing “Verify” in the Apple Developer Console.
Network-side findings
We monitored Apple’s request in real time. Findings:
TLS handshake succeeds
No cipher mismatch
File delivered correctly
Status: 200 OK
No redirect or transformation applied
Despite this, Apple still returns error 13014.
Request for engineering review
We kindly request that an Apple engineer verify the following:
The actual TLS handshake performed by Apple's verification service (cipher suite, protocol negotiation, SNI, trust chain).
Whether the Sectigo issuing CA is fully trusted and supported by your domain-verification backend.
If there is an internal reason behind error 13014—since the external message does not provide actionable details.
Whether the response is rejected for reasons other than TLS, given that the file is accessible and the request returns 200.
The exact condition that leads Apple to report “TLS Certificate configuration is incorrect” in this case.
This issue is blocking an urgent deployment and must be resolved as soon as possible.
Existing case reference
Case ID: 102760005987
We are fully available to provide:
full response headers
packet captures (PCAP)
SSL/TLS diagnostics
file integrity checks
server configuration details
or join a technical call (Teams / WebEx)
Thank you in advance for the escalation.
Andrea
Topic:
App & System Services
SubTopic:
Apple Pay
My client has provided me with admin access to the Apple Developer console. However, when I log in, I am prompted to enroll in the Apple Developer Program. Should I proceed with the enrollment myself, or does the client need to complete the enrollment from their own account?
Topic:
App & System Services
SubTopic:
Apple Pay
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.
During checkout at apple.com using a non-supported Apple Pay on the Web browser, apple.com presents a QR like code offering to "Scan Code with iPhone" to pay. The payment continues using Apple Pay on the iPhone after scan.
We already offer Apple Pay and Apple Pay on the Web. Is this QR code option available for us for non-supported browsers? Could you point me to the docs to add it? Thank you.
Topic:
App & System Services
SubTopic:
Apple Pay
We have been using ApplePay on the web for years, but we are running into a problem since today in sandbox where domainName is missing from the create payment sessions request. We haven't changed anything related to this request any time recently.
Static payment sessions url being hit in sandbox: https://apple-pay-gateway-cert.apple.com/paymentservices/paymentSession
request format:
"merchantIdentifier": "merchant.com.identifier",
"displayName": "Test Store",
"initiative": "web",
"initiativeContext": "test.example.com",
"domainName": "test.example.com"
response format:
{
"epochTimestamp": 1763533367972,
"expiresAt": 1763536967972,
"merchantSessionIdentifier": "<merchantSessionIdentifier>",
"nonce": "<nonce>",
"merchantIdentifier": "<merchantIdentifier>",
"displayName": "Test Store",
"signature": "<signature>",
"initiative": "web",
"initiativeContext": "test.example.com",
"signedFields": [
"merchantIdentifier",
"merchantSessionIdentifier",
"initiative",
"initiativeContext",
"displayName",
"nonce"
],
"operationalAnalyticsIdentifier": "Test Store:<identifier>",
"retries": 0,
"pspId": "<pspId>"
}
Production create session request to https://apple-pay-gateway.apple.com/paymentservices/paymentSession is behaving as expected, sending the following fields as response: epochTimestamp, expiresAt, merchantSessionIdentifier, nonce, merchantIdentifier, domainName, displayName, signature, operationalAnalyticsIdentifier, retries, pspId
Claude seems to suggest this is a response when Messages for Business is enabled, but this ApplePay Payment Processing merchant is only configured for Apple Pay on the Web.
Any ideas or pointers to check for? We are worried this will spill over in production as well, which will break our ApplePay integration.
Thanks in advance!
Topic:
App & System Services
SubTopic:
Apple Pay
Hi everyone,
I’m encountering a strange issue with Apple Pay in our React Native iOS app using the Stripe React Native SDK.
Summary of the Problem:
• Apple Pay shows up as an available payment method inside the Stripe Payment Sheet.
• When I tap Apple Pay, the Apple Pay sheet opens normally.
• After confirming payment, the Apple Pay sheet immediately closes, and nothing happens.
• No payment is created and no request reaches Stripe’s servers.
On Stripe Dashboard the PaymentIntent remains incomplete, with no errors, which means the failure happens before Stripe receives anything.
Environment
• React Native with @stripe/stripe-react-native
• StripeProvider configured with:
<StripeProvider
publishableKey={...}
merchantIdentifier="merchant.com.app.venga"
stripeAccountId={...}
urlScheme="venga"
>
Apple Pay works on our web checkout with the same merchant identifier.
We have verified all of the required Apple Pay setup:
• Merchant ID exists, active, and matches exactly.
• Merchant ID added to the iOS app target in Xcode → Signing & Capabilities.
• Apple Pay capability enabled.
• Merchant domain is verified (web checkout works).
• Apple Pay certificate and merchant certificate are valid.
• Stripe publishable key and merchantIdentifier are correct.
• Stripe SDK correctly initialized.
• Device region supports Apple Pay.
Extra Observations:
• The PaymentIntent’s allowed_payment_methods includes "card" and Apple Pay does appear in the payment sheet.
• But after tapping Pay → the Apple Pay sheet closes instantly.
• There is no callback with an error, and nothing appears in Stripe logs.
• We are testing in Sweden. As far as I know Apple Pay should work fine here.
Questions:
What could cause the Apple Pay sheet to dismiss instantly after attempting a payment?
Could this be caused by a merchant ID mismatch—even if Apple Pay appears in the sheet?
Is there any Apple-device-level requirement (region, wallet config, card type) that could cause this silent failure?
Is there a way to get more detailed logs when Apple Pay closes before Stripe receives anything?
Any help or suggestions would be greatly appreciated. Thanks!
We are working with two types of wallet passes. Provisioning works successfully for one pass type via wallet extensions, but the same process is not functioning for the other. For the second pass type, we are able to generate the required data for pull provisioning and send it to Apple. Additionally, in-app push provisioning for this pass type completes without issue. We would appreciate guidance on how to further debug and resolve this provisioning problem.
We have updated the PNO metadata to include the associatedApplicationIdentifiers for our wallet extensions and the issuer app. While we are able to successfully provision the card to Apple Wallet via pull provisioning, we are unable to retrieve the payment passes that have already been provisioned. How can we address this issue?
let passLibrary = PKPassLibrary()
let paymentPassLibrary = self.passLibrary.passes(of: .secureElement)
paymentPassLibrary is an empty array even though we have passes provisioned.
PLATFORM AND VERSION
iOS
Development environment: Xcode Version 16.2 (16C5032a), macOS 14.6.1
Run-time configuration: iOS 26
DESCRIPTION OF PROBLEM
We would like to seek clarification on how to determine whether a card used via Apple Pay is a credit or debit card before sending the transaction request.
Currently, we can retrieve the card type information (credit/debit) from the Apple Pay response payload, but this is only available after the payment has been processed.
However, we need to determine the card type in advance, as our system calculates and applies transaction fees based on the card type, which should be added to the total transaction amount before submission.
Could you please advise if there is any parameter, API field, or pre-authorization mechanism available to identify the card type prior to initiating the transaction request?
We would appreciate your guidance or any related documentation for implementing this.
STEPS TO REPRODUCE
Initiate Apple pay
Payment from Apple pay
Getting payload
we can retrieve the card type information (credit/debit) from the Apple Pay response payload, but this is only available after the payment has been processed.
We need to identify if there's any way to know the card user selected(whether it is credit/debit) before processing the payment.
Hi all,
I’m running into a confusing issue with Apple Pay domain verification. Apple’s documentation says to host the verification file at:
https://yourdomain.com/.well-known/apple-developer-merchantid-domain-association
And the portal itself seems to expect the file to be served with .txt extension during verification. My first verification passed, but subsequent checks are failing — and I’m wondering if this mismatch is the cause.
Should I Keep the .txt and configure my server to serve it at both paths?
Would appreciate any insights or official clarification.
Thanks!
Topic:
App & System Services
SubTopic:
Apple Pay
I recently created a Sandbox account and successfully added an Apple Pay test MasterCard to the sandbox Wallet to run a test.
Yesterday, I created a different account and tried to add a MasterCard on another device, but I received a "Card device limit" error.
I then deleted the card from the original device (where it had been successfully added) and tried to re-add it, but this device also failed.
I was able to confirm that a JCB card can be added, but I need to test with MasterCard. What should I do to resolve this?
Topic:
App & System Services
SubTopic:
Apple Pay
We’re attempting to call the Apple Pay Web Merchant Registration API using our Platform Integrator flow and consistently receive 401 Unauthorized, despite successful TLS/mTLS.
Details:
Endpoint: https://apple-pay-gateway-cert.apple.com/paymentservices/registerMerchant (POST)
Payload:
{
"domainNames": ["breakerfy.com"],
"encryptTo": "platformintegrator.ai.packman",
"partnerInternalMerchantIdentifier": "merchant.ai.packman.1",
"partnerMerchantName": "breakerfy",
"merchantUrl": "https://breakerfy.com"
}
Domain association:
URL: https://breakerfy.com/.well-known/apple-developer-merchantid-domain-association
What we tried:
We created a Payment Platform Integrator ID (platformintegrator.ai.packman)
We created a CertificateSigningRequest
We used the certificate signing request to create an Apple Pay Platform Integrator Identity Certificate and downloaded the signed certificate.
We exported the Private Key from keychain access in PKCS 12 format
We converted both the private key and the signed certificate to PEM format
We created a merchant id
We used the converted keys to send requests to the API
We received {
"statusMessage": "Payment Services Exception Unauthorized",
"statusCode": "401"
}
we also tried curl with the original p12 file and also had no luck.
What could be the issue ?
Topic:
App & System Services
SubTopic:
Apple Pay
For Apple Pay testing, I have tried the following:
Sign into the Sandbox Account via Developer Settings:
Settings > Developer > Sandbox Account
Keep your main Apple ID for everything else
Add Test Cards to Wallet:
Try adding the test card numbers (MasterCard and Visa Debit, as we support only those) Apple provides in their documentation. Unfortunately, none of them are added to the wallet. All the time it gives 'Could Not Add Card'.
I tried on devices with iOS 18+.
Can anyone advise on this?
Thanks
Topic:
App & System Services
SubTopic:
Apple Pay
Basic information: The issuer has implemented the feature to active Apple Card via URL Verification. The feature implemented by issuer is supported both in the APP and Clips. When Apple queries the activation method from UnionPay, UnionPay returns the "URL" activation method to Apple. Additionally, the apple-app-site-association file has been correctly deployed, and the configuration for Universal Links has been completed. Both the APP and Clips have undergone testing for Universal Link calls.
The desired experiece is that when the APP is installed, Apple Wallet launches the APP, and the user completes the activation within the APP, and if the APP is not installed, Apple Wallet calls Clips, and the user completes the activation in Clips.
Problem description: Under iOS 17 and iOS 18, when triggering Apple Pay card activation, the APP or Clips can be called as expected, and the activation can be completed well. However, Under iOS 26, regardless of whether the APP is installed, under the same circumstances, an internal browser within Apple Wallet opens to access the H5 page corresponding to the URL, instead of redirecting to the APP or Clips. Please assist in confirming whether this is a new feature of iOS 26 and how the same user experience can be achieved.
Hi ,
This is regarding the ApplePayRecurringPayment Request and Apple Pay on Web functionality. Does Apple Pay on web providing functionality that collects payments from the stored credit card issuer bank (or) it only provides secured wallet functionality that provides a token which then has to be utilized to send a seperate payment request through a third party payment gateway to collect the payments from the credit card issuer bank.
thanks
Topic:
App & System Services
SubTopic:
Apple Pay
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
We are having trouble trying to renew our Apple Pay Merchant Identity Certificate. We can create the CSR file and add to the developer portal. We then convert this to a .pem and then a .p12.
When we test the certificate in Postman however, we see the following error:
"statusMessage": "Payment Services Exception pspId=xxxx unauthorized to process transactions on behalf of merchantId=xxxx reason=xxxx is not a registered merchant in WWDR and isn't properly authorized via Mass Enablement, either.",
"statusCode": "417"
We are sending the following POST request to 'https://apple-pay-gateway.apple.com/paymentservices/paymentSession':
{"merchantIdentifier": "merchant.com.xxxx.applepaytest",
"domainName": "beta-xxxx.com",
"displayName": "beta-xxxx.com"}
Anyone got any ideas what the issue may be?
In the meantime I will look at completing our domain verification as that is also due soon and we thought it may possibly have something to do with the certificate issues we are seeing.
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!
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