Apple Pay processed a transaction but the account has insufficient funds. Later the transaction is declined. Is it expected from Apple Pay? Does Apple Pay throws an error if the account has insufficent funds- iOS Swift ?
Does anyone know the code to handle this scenario in Swift iOS?
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
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
Hello,
I'm experiencing an irregular issue with Apple Pay merchant domain verification. As you know, Apple requires domain verification every two months to maintain Apple Pay functionality.
The problem is that while the verification sometimes happens automatically without any issues, other times it fails to complete, even though the required file "apple-developer-merchantid-domain-association.txt" is correctly available on our server.
When automatic verification fails, the Apple Pay service becomes non-functional on our website, forcing us to perform a manual verification to restore the pending service.
Is it normal to encounter such inconsistent automatic verification processes?
What could be causing these intermittent verification failures, whereas manual verification always succeed? suggesting this might not be related to IP address restrictions described on the Apple documentation.
Thank you in advance,
Hi,
I set up a Sandbox Tester account in my company’s Apple Developer Program and signed in on my iPhone under Settings → App Store → Sandbox Account.
When I go to Wallet → Add, I only see options for Credit or Debit Card or Travel Card. The option to add an Apple Pay Sandbox Card is missing, and when I try entering the test card numbers from Apple’s documentation (developer.apple.com/apple-pay/sandbox-testing), the card is not valid.
Has anyone experienced this and found a solution? Thanks!
PS: I can't post this to Wallet Category, I keep getting error that it contains sensitive text.
We are encountering an issue where Apple Pay shows an unexpected popup with a message and an "OK" button when confirming a payment (after double-tapping the power button). This issue began appearing last week without any changes to the codebase or configurations.
Steps to Reproduce:
Open the app and initiate an Apple Pay payment.
Add a valid card if not already present.
Confirm the payment using the side button (double-tap).
Instead of completing the transaction, a popup appears with a generic message and an "OK" button.
Expected Behavior:
Apple Pay should process the payment and provide a confirmation or error based on the transaction status.
Actual Behavior:
A popup appears with a generic title and an “OK” button. The transaction is not processed.
Environment Details:
Platform: iOS
Apple Pay integration has been functioning correctly for years
No recent updates to Apple Pay-related code or configuration
Configurations Checked:
App Identifier is correctly set with the bundle ID
Apple Pay Payment Processing is enabled in the App ID configuration
Correct Merchant ID is selected and matches in Xcode capabilities
*.entitlements file contains correct Apple Pay entitlement
Payment Processing Certificates are valid and in place
Additional Notes:
The issue appeared suddenly without any modifications to the app. We suspect it may be due to external changes (e.g., Apple system update or merchant validation issue).
Please advise on any further steps we can take to diagnose or resolve this issue.
Topic:
App & System Services
SubTopic:
Apple Pay
Hi - I have a question. I am trying to understand when Apple Pay will be available on non-IOS desktop devices (specifically Google Chrome). I was hoping to understand better the process, specifically the following:
How can I get the Apple Pay QR code installed on my desktop checkout page on Google Chrome?
How long does this process usually take?
If I work with Stripe, do I need to get approval from them to install the Apple QR code onto my Google Chrome checkout page?
Is this readily available to all merchants (i.e., installing Apple Pay on Google Chrome)/
I have not seen this on any other checkout pages yet. Are there any examples you could point me to of merchants that have installed Apple Pay onto non-IOS desktop so I could trial the process (i.e., a list of existing merchants that have put the QR code onto their Google Chrome checkout pages)?
Hello,
Please help.
We have been experiencing what appears to be a TLS handshake error in our Apple Pay merchant validation requests (2-way TLS) since June 25, 2025.
We are aware of the encryption algorithm changes made in February 2025, and our system was functioning correctly at that time. However, the error started occurring suddenly and only recently.
Could you please clarify the following points?
Have there been any changes to the TLS configuration (cipher suites, certificates, protocol versions, etc.) on the Apple Pay server side since June 2025?
Have there been any updates to the specifications or recommended settings for merchant validation requests?
Is there any way to contact Apple for technical support regarding this issue other than through the Developer Forums?
Our Merchant Identity Certificate has already been renewed and is confirmed to be valid.
Topic:
App & System Services
SubTopic:
Apple Pay
We are integrating iOS 16 recurring payments in our app, everything works fine but we have a few questions
Question 1
let recurringPaymentRequest = PKRecurringPaymentRequest(
paymentDescription: "Pro Membership",
regularBilling: regularBilling,
managementURL: url
)
we assume managementURL is supposed to come in the user's wallet where he/she can tap to change the recurring payment option to our backend, but in the wallet, the transaction appears without this URL and have no indication that it is a recurring payment, Can someone guide what we missed
Question 2
For apps that only have apple pay on mobile, managementURL can open the app as a deep link from the Wallet app and the user can update or delete the payment method for the automatic reload payment from the app directly,
Question 3
For cancellation, the recurring payment app should have some UI where the user can tap which hit our backend and remove the apple pay merchant token from our system and apply cancellation business logic, no apple API involves in the cancellation of recurring payment
Can i use apple pay integration into my web iframe?In my situation, canMakePayment() returns null when i check browser support apple pay or not in Iframe
To continue your enrollment, complete your purchase now
But when I tried to purchase
I am not able to pay
Topic:
App & System Services
SubTopic:
Apple Pay
Hello Apple Devs,
We’re currently trying to integrate Apple Pay on the web using Apple Pay JS. We've followed the official documentation closely, but we're running into a blocker during the merchantSession validation phase.
We successfully retrieved a merchantSession, which looks like this:
json
{
"displayName": "Our Name",
"domainName": "https://pay.ourdomain.co",
"epochTimestamp": ,
"expiresAt": ****************,
"merchantIdentifier": "",
"merchantSessionIdentifier": ",
"nonce": "",
"operationalAnalyticsIdentifier": our name "t:",
"pspId": "",
"retries": 0,
"signature": "*****************..."
}
Issue:
Shortly after initiating the session, we receive a cancel event with the following info:
ApplePayCancelEvent {
type: "cancel",
sessionError: {
code: "unknown",
info: {}
}
}
We're unsure what causes the cancellation. There are no clear error messages or hints in the logs to identify what went wrong.
What We’ve Checked:
The merchantSession is returned successfully from our backend.
The domainName matches our frontend domain (https://pay.durdomain.co).
The session hasn’t expired when tested.
We're using Apple Pay JS APIs as described in the documentation.
Help Needed:
What can trigger an ApplePayCancelEvent with an "unknown" error code?
Any insight or guidance would be deeply appreciated. Thanks in advance!
I have the HCE entitlements, but it's not clear from the documentation I have, how to configure my app as the default app for the double tap of the power button.
Nor can i see where this is in iOS 18.2 settings. The closest I can find is 'Settings > Default Apps > Contactless App', which still shows only Wallet after I install my app with all the new entitlements and provisioning profile. I have these entitlement successfully provisioning my app:
<key>com.apple.developer.nfc.hce</key>
<true/>
<key>com.apple.developer.nfc.hce.iso7816.select-identifier-prefixes</key>
<array>
<string>A0000000031010</string>
<string>A00000002501</string>
<string>A0000000049999</string>
<string>A0000000041010</string>
</array>
<key>com.apple.developer.nfc.hce.default-contactless-app</key>
<true/>
The documentation here: https://developer.apple.com/support/hce-transactions-in-apps/ also references a link to changes in Info.plist, but the url takes me to storekit-external-entitlement documentation about dating apps in the netherlands ???!!!???
Any help would be appreciated to at least get started by allowing me to change the double tap action to my app.
Thanks
Topic:
App & System Services
SubTopic:
Apple Pay
We have an Apple Pay account and have successfully created and verified the payment processing certificate in our Apple Developer account.
When initiating an Apple Pay payment, the Apple session is created successfully with the correct data return from api , but it is not accepted with the error: “Payment not completed.”
The issue occurs even though the merchant validation step works without errors.
Our websites where this is happening are:
https://magicdeliver.com/
https://www.pulsarmodular.com/
Could you please help us identify the cause of the issue and guide us on resolving it?
I am attempting to verify my domain
https://technoq.genesistechnologies.tech
for use with Apple Pay Merchant ID. However, when I attempt verification, the process fails with the message:
“Domain verification failed.”
Unfortunately, no additional details are provided.
I have already completed the following steps:
Downloaded the verification file apple-developer-merchantid-domain-association.txt.
Placed it in the .well-known directory as instructed.
Confirmed that it is publicly accessible at:
https://technoq.genesistechnologies.tech/.well-known/apple-developer-merchantid-domain-association.txt
Verified that a valid SSL certificate is configured for the domain.
Could you please advise on why the verification might be failing and what additional steps I should take to resolve this issue?
I am trying to do a mass enablement of a merchant ids for a psp.
The ids have been approved by apple. I am attempting to add more using the Post Request: https://apple-pay-gateway.apple.com/paymentservices/registerMerchant
(https://developer.apple.com/documentation/applepaywebmerchantregistrationapi/register_merchant) but am always getting a Refuse to connect error.
What authentication is required to get a 200 successful response?
Hi Support,
When the applepay express transit option is used on emv payment cards,
like this
iPhone - Open “Settings” → “Wallet & Apple Pay” → “Express Transit Card”.
And a emv single card has been enabled under Express Transit
And on transit reader Apple Enhanced contactless Polling support is provided, ( with VAS not supported, user authentciation not supported)
Sometimes ATQB response also comes from the iPhone or iWatch instead of the ATQA response, and then it causes the transit reader to report as collision error in the polling.
Sequence of the packets:
WUPA
WUPB
ECP frame
WUPA
WUPB
ATQB
WUPA
ATQA
Topic:
App & System Services
SubTopic:
Apple Pay
I'm implementing Apple Pay in my Flutter web app and I'm following the guidelines for domain verification using the apple-developer-merchantid-domain-association file.
When I access the file at https://mydomain.com/.well-known/apple-developer-merchantid-domain-association through my web app, the browser silently downloads the file instead of displaying its content on the webpage.
My question is:
Is this the expected behavior for the apple-developer-merchantid-domain-association file? Should the browser download the file silently, or is there another step required, such as displaying the content on the webpage for verification purposes?
I've consulted some resources and they indicate that the file download is the correct behavior. However, I'd appreciate confirmation from the community to ensure I'm implementing the verification process correctly.
Summary is how do we know if apple has verified it?
Hi support,
Since June 26th 2025 we are experiencing an issue with the ApplePay SSL server certificate installed on our servers in Production environment.
We are facing an exception error during the initializing of a payment session while calling the url:
https://apple-pay-gateway.apple.com/paymentservices/startSession
The exception is Untrusted Server Certificate Chain:
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Untrusted Server Certificate Chain
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1915)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:306)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:300)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1577)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:213)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1010)
at sun.security.ssl.Handshaker.process_record(Handshaker.java:946)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1034)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1343)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1370)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1354)
It seems that the issue occurs randomly: we are experiencing this exception on most of our payment transactions, but there are some cases of users that have correctly paid on our site using this method and in those cases this error did not appear.
We installed the new certificate on our servers on July 3rd 2025 and renewed on Aug 7th 2025.
The new certificate validity is:
Not Before: Aug 6 18:43:52 2025 GMT
Not After : Nov 4 18:08:57 2025 GMT
I must specify that this issue is blocking the correct placement of AppleyPay orders of our customers.
Can you please help us find the problem and a possible solution?
Topic:
App & System Services
SubTopic:
Apple Pay
Hello,
I am following up on my previous feedback (Feedback ID: FB17175593) regarding the in-app provisioning failure for Apple Pay. In that report, I detailed errors encountered during the card addition process (notably issues related to a missing teamID and cryptographic material errors). Could you please provide an update on the investigation progress? I appreciate your assistance and look forward to your response.
We have developed Apple Wallet Extension for our App. The in-app provisioning for the card is working. However when we try to add the card from Wallet extension it gives error saying "Your issuer does not yet offer support for this card".
From the apple documentation we can see the issues is same as mentioned in Scenario 2 at following link https://applepaydemo.apple.com/in-app-provisioning#8.4
We are getting eligibilityStatus as 0
Below is the response from Wallet captured using SysDiagnosis
https://crt-pod1-smp-device.apple.com:443/broker/v4/devices/0434320BCB1A90022306073796318273728D0A367FA927F4/cards 200 Time profile: 1.77856 seconds
{
x-conversation-id = ......
Content-Type = "application/json"
x-pod = "crt-pod1"
x-xss-protection = "1; mode=block"
Server = "Apple"
x-pod-region = "paymentpass.com.apple"
regionbrokerurl = "https://crt-pod1-smp-device.apple.com:443/broker"
Date = "Wed, 06 Aug 2025 11:39:30 GMT"
Content-Length = "488"
x-envoy-upstream-service-time = "1400"
Strict-Transport-Security = "max-age=31536000; includeSubdomains"
cross-origin-opener-policy = "same-origin"
x-keystone-correlationid = ......
x-content-type-options = "nosniff"
Vary = "accept-language"
x-frame-options = "SAMEORIGIN"
}
{
applicationIdentifier = ......;
auxiliaryCapabilities = {
};
cardType = 4;
deviceProvisioningDataExpected = 1;
eligibilityStatus = 0;
identifier = ......;
learnMoreURL = "https://www.apple.com/ae/apple-pay/banks/ae/en-ae.html";
nonce = ......;
paymentApplications = (
{
appletTypeIdentifier = Argon;
paymentType = Credit;
}
);
region = "paymentpass.com.apple";
sanitizedPrimaryAccountNumber = 7008;
sanitizedPrimaryAccountPrefix = "";
}