Hi,
You're here because you've had issues with your implementation of Wallet 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
Apple Pay on the Web
RSS for tagApple Pay on the Web allows you to accept Apple Pay on your website using JavaScript-based APIs.
Posts under Apple Pay on the Web tag
98 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
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
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
Hi,
I want to develop the fastest payment method for my user and preferably without the user also having a mobile app.
The dream is that it happens as easily as possible when the user/guest scans a pass from the wallet.
Hopefully the user just has to approve on the screen.
Can I attach card details/payment methods to a pass in the wallet?
Right now it is a unique QR code for each user, but can I change the pass type to 'tansit', 'loyalty' or 'membership'?
My system right now:
The customer/guest registers on a website and creates a pass and downloads it to the wallet.
The store has a PWA app to scan the customer's/guest's items.
My goal: The guest just scans the pass in the wallet and makes the transaction. Dont need an app or go back to the website/login where the person created the pass for the wallet.
Hi everyone.
I'm having a problem to register a new domain using the Salesforce Commerce Cloud.
Internally, commerce has a plugin that allows me to register my domain with Apple. It works for dev environments.
But now, I'm trying to register my production domain, which uses Akamai, and it is returning error 403 when Apple tries to 'verify' my domain.
My guess is that Akami is blocking something request from Apple.
So, I'd like to know if all requests from Apple to verify my domain use something that allows me to identify these requests, and then, I can create a rule in Akamai to allow this request.
I noticed that one of the information sent in Apple request is:
User-Agent: oslopartner Client 1.0
Is this agent variable or fixed? If it is fixed, I'll try to use it as parameter to identify the Apple requests on Akamai side.
Any other idea will be appreciated.
Thanks in advance
Hello everyone,
I'm working on integrating Apple Pay on the web for my Laravel-based website, aiming to offer a smooth payment experience directly on the site. I've carefully gone through the official Apple documentation and several third-party resources, and I've implemented the initial setup for Apple Pay Web.
However, I've hit a roadblock regarding the payment token verification process. It appears that Apple Pay Web requires a third-party payment processor, such as Stripe or PayPal, to handle the verification of the payment token and complete the transaction. Unfortunately, I don't currently have an account with any of these services and would prefer to avoid relying on an external provider.
I’m wondering if there's any alternative approach to achieve this integration without using a third-party service. Specifically, is there any way for Apple Pay to process payments directly through the website, similar to the "Tap to Pay" feature on iPhone?
My goal is to enable a streamlined payment solution without needing a Stripe, PayPal, or similar account. Any insights, resources, or examples from anyone who's faced a similar scenario would be greatly appreciated.
Thanks for your help!
Hi,
I'm working on implementing Apple Pay on the Web.
I noticed, both on my web but also on official Apple Pay on the Web Demo page (https://applepaydemo.apple.com/apple-pay-js-api) when you're sending request for recurring payment, it takes much longer to get response from Apple server (even in onpaymentauthorized method) than when using regular payment.
You can test on the page mentioned above. When you authorise test card with basic payment it's pretty fast, but when you do authorisation with test card for recurring payment (or Deferred or Automatic Reload) "processing payment" is much longer.
Is there a reason why is this and is there a way to speed it up?
Thank you.
Kind regards,
Zoran
Hi. I have a few questions about using Apple's MPAN tokens. Since Apple doesn't provide MPAN tokens in the sandbox environment, I'm having trouble understanding the differences between the MPAN and DPAN flows. I'm guessing they're the exact same, except when we detect the MPAN we save some information so we can use it in future transactions. If that's correct, my questions are:
What information in the Apple Pay payment data indicates that it's an MPAN vs when it falls back to DPAN
Like DPAN, the MPAN can be found in applicationPrimaryAccountNumber? Or is it found in the merchantTokenIdentifier?
What is the bare minimum data needs to be stored in order for these merchant tokens be reused for future transactions?
We have already completed the Apple Pay(App & Web) implementation according to the provided instructions. We have over 10,000 websites, each with a different domain. As per Apple’s documentation, we need to perform the domain verification process for each domain.
Manually verifying all 10,000 domains is not feasible. For Google Pay, we have a streamlined process, and we would like to know if a similar solution exists for Apple Pay.
Could you please provide us with any recommendations or solutions to facilitate this domain verification process efficiently?
I’m trying to test an AMEX card in the sandbox environment, but it’s not getting added. I have followed and verified the checks below to add the card to Wallet:
Sandbox account is active.
Sandbox user region is set to the US.
Device region is also set to the US.
AMEX card from the provided list is being added.
Tested on iOS version 17.6.1
Devices tested include iPhone 13 and others.
Steps followed to add the card to Wallet:
Open Wallet and tap on "Add Card."
Entered the required test data.
Tapped "Agree" and waited.
Received error: "Issuer does not support this card."
Please let me know if you have any solutions.
Dear Apple Pay Support,
I am writing to request a refund of $1296.59 for a transaction made on September 23, 2024, with Express Oil Change & Tires Engineering. I paid for auto repair services which were not performed. I explained to the merchant the specific repairs my car needed, and they accepted payment with the understanding that these services would be completed. However, after paying, the agreed-upon repairs were not done.
This transaction depleted my savings. I am currently in my final semester of college, and having a working vehicle is essential for attending classes and completing my studies. The lack of promised repairs is creating a significant hardship and is impacting my ability to succeed academically. I have no family support system to fall back on financially; they are facing their own difficulties and I am unable to ask them for assistance.
After discovering the repairs were not completed, I contacted Express Oil Change & Tires Engineering on 9/23/2024 to request they rectify the situation and complete the repairs as originally promised. I explained the significant financial strain this placed on me, especially given the large sum of the purchase. They informed me they would not be able to complete the repairs without further charges.
I understand that Apple Pay acts as an intermediary for payments, and I would appreciate your assistance in contacting the merchant on my behalf to resolve this issue and secure a refund. If direct contact with the merchant is not possible, I request that you consider my difficult circumstances and grant a refund due to the fraudulent nature of this transaction.
Thank you for your time and consideration.
Sincerely,
Jason Joseph
5044102960
Hi there. We're a large team integrating Apple Pay to a payment system.
We'd like to start building the code that decrypts an ApplePayPaymentToken before the web client code that initiates the payment request is complete.
Is there a way to obtain a sample ApplePayPaymentToken for our account to ensure that our decryption code / keys / certificates are configured properly?
(Or the only way to obtain an ApplePayPaymentToken would be through completing of a payment request, i.e. step 29 of page 21 of this document: https://developer.apple.com/apple-pay/Apple-Pay-Merchant-Integration-Guide.pdf)
Thank you
Do Merchant initiated Authorizations work for MasterCard with ApplePay in the US?
Our payment provider let us know that we can not do pre-orders in the US using MasterCard with ApplePay , only VISA works. Is this true?
If yes, any specific reason behind it?
Hello everyone
Searching on the forums about the Mpan and the merchant Token Identifier I found there is no a good or clear way to get one of those, So I wonder if (without the risk to try it in production with a real payment) there is a way to test recurring payments by using an sandbox card or if the only solution is by on given from a bank or a card network for testing (but that solution is even more complex), it this last is the only way, what are the criteria to get the Mpan in the payment data? I know that the card network should support this feature is also a must, but how to know if the car network support Mpan? (is there a list?)
I'm trying to use the simulator from Xcode to emulate an iPhone. I have created a sandbox account and logged in but pressing the Apple Pay button doesn't do anything. I have also tried the demo website for Apple Pay and that doesn't work either.
Does the simulator work at all for Apple Pay on the Web?
Hi,
I was implementing Apple pay button by checking active wallet and at least one cards active.
I am using applePayCapabilities as per DOCS but i am still getting the same type of response with apple pay wallet enabled and without apple pay wallet enabled on different devices as
Loading the Apple Pay SDK:
script.src = "https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js";
script.crossOrigin = "anonymous";
document.head.appendChild(script);
script.onload = function() {
console.log("Apple Pay SDK loaded successfully");
// Initialize Apple Pay or perform actions that require the SDK here
};
script.onerror = function() {
console.error("Error loading Apple Pay SDK");
};
Calling applePayCapabilities method:
window.ApplePaySession.applePayCapabilities("merchant.com.example").then(r => console.log(r))
Output:
{paymentCredentialStatus: "paymentCredentialsAvailable"}
Image attachments of applePayCapabilities:
Devices Config Used:-
Chip - Apple M3 Pro
macOs - Sequoia 15.0.1
memory - 36 GB
Safari Version - 18.0.1
Good day,
I'm attempting to check whether Apple Pay is available using the ApplePay JS API. Prior to upgrading to Safari 18.0+, I was using window.ApplePaySession.canMakePayments to show/hide the Apple Pay option.
I've noticed with the new Safari version, the preferred method of checking the availability of Apple Pay is by using the applePayCapabilities method.
When logging and inspecting the window object in Safari 18.0.1, this method seems to be missing from the ApplePaySession object.
Additionally, my conditional code which is dependent on applePayCapabilities does not execute:
if (typeof window !== 'undefined' && window.ApplePaySession) {
// Safari version 17 and lower
if (window.ApplePaySession.canMakePayments) {
// set Apple Pay available
}
/**
* On Safari version 18 and higher, we must check whether a user has a card saved in their wallet.
* If this is the case, Apple Pay must be presented as the primary payment method. In our case,
* this means selecting Apple Pay as the default payment method.
*/
if (window.ApplePaySession.applePayCapabilities) {
const merchantIdentifier = '***';
const promise = window.ApplePaySession.applePayCapabilities(
merchantIdentifier
);
promise.then(capabilities => {
switch (capabilities.paymentCredentialStatus) {
case ApplePayCapabilities.CREDENTIALS_AVAILABLE:
// set Apple Pay as available and default
break;
case ApplePayCapabilities.UNSUPPORTED:
// not available
break;
default:
// set Apple Pay as available only
}
});
}
}
I feel I'm missing something very simple here, help would be greatly appreciated!
Hi, I recently saw that ApplePay is supported on other browsers and also on computers other than Mac, but on my site I have ApplePay integrated and it doesn't work, do I have to do anything to have it activated on my portal?
I integrated it with Apple Pay API JS
I have a company with 100 merchants now if I want to create Apple Pay for each merchants do I have to have 100 developer accounts or is it possible to to create different merchant ids in one developer account ….i dont want to publish each merchants apps ,itll be purly for web based apple payment
I'm trying to enable merchant tokens in my test environment. I'm using the demo code below:
{
...
"recurringPaymentRequest": {
"paymentDescription": "A description of the recurring payment to display to the user in the payment sheet.",
"regularBilling": {
"label": "Recurring",
"amount": "4.99",
"paymentTiming": "recurring",
"recurringPaymentStartDate": "2023-08-11T11:20:32.369Z"
},
"trialBilling": {
"label": "7 Day Trial",
"amount": "0.00",
"paymentTiming": "recurring",
"recurringPaymentEndDate": "2023-08-11T11:20:32.369Z"
},
"billingAgreement": "A localized billing agreement displayed to the user in the payment sheet prior to the payment authorization.",
"managementURL": "https://applepaydemo.apple.com",
"tokenNotificationURL": "https://applepaydemo.apple.com"
},
...
}
I'm able to see the recurring prompts in the payment sheet, but after processing I do not see the merchant token anywhere. I'm looking in the paymentData object and I do not see the merchantTokenIdentifier. I've tried using the Visa, Mastercard, Amex, and Discover test cards, but still no luck. I seen similar threads on these forums, but never with an answer.
Has anybody been able to test merchant tokens in sandbox?
Does anyone else have this issue?
We have been having this issue for years since we start using Apple Pay on the Web.
I have checked TN3173 Your domain does not automatically re-verify section, we should meet all requirements.
I have emailed applepaymerchantsupport at apple.com several times (Case-ID: 7663879), either saying "still checking", or no response at all.
Our certificate for the Merchant Domains is maintained in Cloudflare, signed with Google Trust Service, rotate every 3 months.
Apple pay working as except with in a domain, when we tried to access in cross domain works with simulations wallet cards . when i try to using in real cards it fails.
did anyone encounter this issue? Thanks in advance for your help!
We have integrated Apple Pay in our web application via MasterCard Gateway. The testing is completed and now we need to move to production environment.
Can anyone guide what is the process to move to production environment?
Do we need to ask our client to create their own Apple Developer account to create merchant Ids and certificates?