Hello,
we are experiencing issues with adding VISA cards via In-App Provisioning on iOS using PassKit. The same flow works correctly with Mastercard, but for VISA cards the Apple broker endpoint returns HTTP 500.
Details
Device: iPhone15,3 (iPhone 15 Pro), iOS 18.6.1 (22G90)
Region: CZ
App: [REDACTED] (version 0.4.3)
Issuer ID: [REDACTED]
Merchant ID and entitlements are configured and validated.
SEID: [REDACTED]
Request flow
GET /broker/v4/devices/{SEID}/issuerProvisioningCertificates?encryptionVersion=EV_ECC_v2
Request ID: B61363A8-0BFF-4CD6-92BC-52C461DFFAAD
Response: 200 OK
Conversation ID: e12c64c9a0b54981adfad8d00800d836
Returned nonce: [REDACTED]
Timestamp: 2025.08.21_14-01-46+0200
POST /broker/v4/devices/{SEID}/cards
Request ID: F29B73CA-CDDE-4C0C-9F40-B87AE006FDDD
Payload fields present (values redacted): encryptedCardData [REDACTED], ephemeralPublicKey [REDACTED], publicKeyHash [REDACTED], nonce [REDACTED], issuerIdentifier [REDACTED], encryptionVersion=EV_ECC_v2
Response: 500 Internal Server Error (latency ~0.41s)
Timestamp: 2025.08.21_14-01-47+0200
Observation
Provisioning succeeds with Mastercard but consistently fails with VISA.
The GET issuerProvisioningCertificates succeeds; the POST …/cards returns 500.
Request
Could you please:
Provide internal error details for Request ID F29B73CA-CDDE-4C0C-9F40-B87AE006FDDD (and/or Conversation ID e12c64c9a0b54981adfad8d00800d836),
Confirm whether the 500 originates before or after the broker’s call to VTS (Visa Token Service), and
Validate that our app/merchant/issuer configuration is fully enabled for VISA push provisioning in our region.
Attached privately: sysdiagnose with full traces (can share via secure channel upon request).
Kind regards,
Martin
Apple Pay
RSS for tagDiscuss how to integrate Apple Pay into your app for secure and convenient payments.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hello!
I have a requirement to read the ICC Public Key Certificate from an EMV credit card to implement a payment validation flow.
Aa far as I understand, I can't use Core NFC for that task since it is not supposed to be used for reading sensitive credit card data and it might be rejected by Apple.
I'm trying to use Tap To Pay as it seems to offer some general card details.
Since Apple's documentation on this side is pretty limited, I'm struggling to understand what is a PaymentCardReader.Token and how can I create one?
Can anyone please help me with setting up Tap to Pay?
multiTokenContexts is defined as follows
(https://developer.apple.com/documentation/passkit/pkpaymentrequest/multitokencontexts)
You can assign a value when initializing PKPaymentRequest (https://developer.apple.com/documentation/passkit/pkpaymentrequest).
However, in actual usage scenarios, when the Apple Pay address changes and PKPaymentRequestShippingContactUpdate (https://developer.apple.com/documentation/passkit/pkpaymentrequestshippingcontactupdate) is triggered, how to update multiTokenContexts?
The documentation and code do not provide updates for this parameter.
In contrast, Apple Pay on the Web provides newMultiTokenContexts as an update when ApplePayShippingContactUpdate (https://developer.apple.com/documentation/apple_pay_on_the_web/applepayshippingcontactupdate) is triggered.
Has anyone encountered this problem? Would you happen to have any solutions? Thank you.
Hi team,
We were wondering what's the correct way of configuring a test environment with Apple Pay.
Not sure if this is explicitly mentioned in the documentation, but in order to avoid having the same certificates shared between test and production, should we have a different merchant identifier (and pair of certificates) for test purposes only?
The above is the main question. However, two follow up questions:
Do you know if payment processors usually allow the merchant ID to be configured, so that only payments generated with the prod certificates can be accepted?
Is there any risk of someone getting hold of the certificates generated for the test environment (which are usually less safe than production) and using that to process payments in production?
Topic:
App & System Services
SubTopic:
Apple Pay
Tags:
Apple Pay on the Web
Apple Pay
Testing
Tap to Pay on iPhone
I am working on implementing merchant token notifications. When calling this endpoint https://developer.apple.com/documentation/merchanttokennotificationservices/merchant-token-event-retrieval, the result contains a CardMetadata object with an expirationDate field (see https://developer.apple.com/documentation/merchanttokennotificationservices/cardmetadata). What is the format of this field? The spec only mentions that it has a maximum length of 8 characters.
I've encountered an issue with Apple Pay in PC Chrome with iOS 18. Below is the scenario and code for reference:
Issue Scenario:
A button is clicked to initiate the Apple Pay process.
A QR code window pops up, which I scan with my phone.
As soon as the session is established, the window closes immediately, not allowing the user to select a payment card.
No errors appear in the console.
Here's the code snippet for handling the Apple Pay button click:
const onApplePayButtonClicked = () => {
if (!window.ApplePaySession) {
return;
}
log('Apple Pay button clicked');
const request = {
countryCode: 'UA',
currencyCode: 'UAH',
merchantCapabilities: ['supports3DS'],
supportedNetworks: ['visa', 'masterCard'],
total: {
label: 'PoC Merchant Apple Pay',
type: 'final',
amount: amount.toString(),
},
};
const session = new window.ApplePaySession(3, request);
session.onvalidatemerchant = async (event) => {
try {
log('Creating ApplePaySession');
const response = await fetchAppleSessionAPI(event.validationURL, applePayMercantId, { deviceId, refreshToken });
log('validateMerchantResponse', response);
session.completeMerchantValidation(response.applePaySessionData);
} catch (error) {
log('validateMerchantError', error);
}
};
session.onshippingmethodselected = () => {
const newTotal = {
label: 'PoC Merchant Apple Pay',
type: 'final',
amount: amount.toString(),
};
session.completeShippingMethodSelection(window.ApplePaySession.STATUS_SUCCESS, {}, newTotal);
};
session.onpaymentauthorized = async (event) => {
log('onpaymentauthorized', event);
const result = {
status: window.ApplePaySession.STATUS_SUCCESS,
};
session.completePayment(result);
log('TOKEN', event.payment.token);
};
session.begin();
};
Troubleshooting Steps Taken:
Verified that window.ApplePaySession is available.
Checked for any console errors—none found.
Confirmed that the QR code scanning and session initiation work as expected.
Expected Behavior:
After scanning the QR code and establishing the session, the user should be able to select a payment card and proceed with the payment flow.
Current Behavior:
The window closes immediately after the session is established, preventing card selection.
Has anyone else faced this issue or has insights on how to resolve it?
Thanks in advance!
Hello,
I am experiencing an issue with the Apple Pay capability on my App ID.
I have created a Merchant ID.
I enabled Apple Pay in the App ID configuration and linked it to the merchant.
However, sometimes when I revisit the App ID in the Apple Developer portal, the Apple Pay capability appears disabled, even though I saved it.
This happens intermittently; at some times the capability is correctly shown as enabled, and other times it disappears.
Context:
I am using Expo Managed Workflow with EAS Build for iOS.
The issue prevents the provisioning profile from including Apple Pay, which causes Stripe isPlatformPaySupported function to return false on ios devices.
Attached:
Screenshots of the App ID page showing Apple Pay enabled and disabled.
Could you please advise why the capability is not being consistently saved, and how to ensure it stays enabled?
Thank you,
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 implemented In-App Provisioning, but when I start the tokenization process, I receive an error before the terms and conditions.
We are testing with a version of the app on TestFlight.
The error message is: Could not add card. Try again later or contact your card issuer for more information.
Could you please help me?
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 everyone.
I encountered a problem when integrating Apple Pay. I obtained all the renewal orders through the Apple interface, and their purchaseDate is 8 hours later than the actual payment time. Why is this happening?
According to the documentation, the purchaseDate value provided by Apple is a millisecond timestamp that represents the actual payment time of the user, so theoretically there shouldn’t be any timezone issues.
This works well in client-initiated subscriptions, but in renewal scenarios, the purchaseDate becomes unreliable. Could this be due to some configuration in the configuration center?
For example, I actually received an Apple notification at 1746686911000 (2025-05-08 06:48:31 Etc/GMT).
However, the data returned by the Apple interface is as shown below:
{
"appAccountToken": "xxxx",
"bundleId": "xxxx",
"currency": "GBP",
"environment": "Production",
"expiresDate": 1762616831000,
"inAppOwnershipType": "PURCHASED",
"isUpgraded": false,
"offerDiscountType": "",
"offerIdentifier": "",
"offerType": 0,
"originalPurchaseDate": 1746456432000,
"originalTransactionId": "320002311698411",
"price": 39990,
"productId": "xxxx",
"purchaseDate": 1746715631000,
"quantity": 1,
"revocationDate": 0,
"revocationReason": 0,
"signedDate": 1746687092825,
"storefront": "GBR",
"storefrontId": "xxxx",
"subscriptionGroupIdentifier": "xxxx",
"transactionId": "320002315815857",
"transactionReason": "RENEWAL",
"type": "Auto-Renewable Subscription",
"webOrderLineItemId": "320001062124562"
}
You can see that the purchaseDate is 1746715631000 (2025-05-08 14:48:31 Etc/GMT), which is even later than the current time.
Can someone explain this behavior that is inconsistent with the documentation, or did I do something wrong?
I would be very grateful for any help anyone can provide.
Topic:
App & System Services
SubTopic:
Apple Pay
Hi team,
I'm currently trying to add a specific subdomain (with a path) to Apple's Sandbox domain list, but it seems Apple only allows the main domain to be entered.
Due to strict client security policies, we aren't allowed to use just the main domain, which is creating a roadblock in our implementation.
Is there any way to add a full subdomain or URL path to the Sandbox configuration? I'm happy to join a call to explain the scenario further if that would help.
Thanks in advance for your support!
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,
I am looking for some help on how to use the Apple Pay Web Merchant Registration API. Have been approved to use the API and attempted to test on a merchant ID set up for testing. Below are steps taken before the request.
Create merchant ID com.test.merchant.
Create Apple Pay Merchant Identity Certificate for using it with the request via p12.
Create Platform Integrator platformintegrator.com.test
With the below request, I am getting a 401. Any input would be much appreciated!
curl --cert-type P12 --cert cert.p12:{password} -i -d '{\
"domainNames":["customer.test.com"],\
"partnerMerchantName": "customer.test.com",\
"partnerInternalMerchantIdentifier":"customer.test.com"}'\
"encryptTo":"com.test.merchant",\
https://apple-pay-gateway-cert.apple.com/paymentservices/registerMerchant
The response:
{
"statusMessage": "Payment Services Exception Unauthorized",
"statusCode": "401"
}
Also tried using the platformintegrator.com.test for the encryptTo but resulted in a 401 as well.
Topic:
App & System Services
SubTopic:
Apple Pay
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 Everyone,
My team is working on an online marketplace for FMBs in Saudi Arabia (with a plan to expand to other markets later). We are currently working on integrating multiple payment gateways with embedded Apple Pay support into our platform.
We’ve encountered an issue with the apple-developer-merchantid-domain-association file. Based on advice from one of our payment partners, we've ensured that the domain association file is uploaded in the correct format. This works successfully with our first payment gateway.
However, for the additional payment gateways we are integrating, we would also like to enable Apple Pay with embedded support. The challenge is that each payment gateway requires its own domain verification, but the verification file uses the same file name. This prevents us from supporting multiple gateways on the same domain.
Has anyone in the house been able to implement a similar solution, or know how we can best implement this?
Please, I'll appreciate advise on how we can configure Apple Pay domain verification to support multiple payment gateways on the same domain? Any specific guidance or best practices would be greatly appreciated.
Best regards,
Topic:
App & System Services
SubTopic:
Apple Pay
Hello,
I have had a problem with Transaction shortcut automation since last month, the automation does not work anymore.
Whenever a transaction is done, I tap in the notification to run the automation but always gives the error "Automation failed".
I can confirm the automation worked last month but suddenly it is not working anymore. Below is the screenshort of the error and the other image is how it appeared in numbers when running the automation.
As you can see, in Jan 8th worked fine (that is why the full name of the card appears). Actually, the other rows are from another shortcut that I have.
I would really appreciate if anyone has any insights about that, or if this happened to you as well.
Thanks in advance! Arnold
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
We are an issuer attempting to implement In-App Provisioning of Payment Cards leveraging Mastercard MDES and have successfully obtained our entitlement from Apple, but have not received the documentation titled "Getting Started with Apple Pay In-App Provisioning, Verification & Security".
The latest copy I have found has been via Scribd for a version 3.0 from June 2020. I've tried contacting Apple Support and the In-App Provisioning Entitlements group but have had no luck.
Thank you!
Topic:
App & System Services
SubTopic:
Apple Pay
I have a question regarding the file apple-developer-merchantid-domain-association.txt.
I understand that this file is used during API access for Apple Pay Web payments. However, is it necessary for our company to access this file during the payment process?
Also, this domain validation file is expected to be placed in the publicly accessible “.well-known” folder on our web server. Is it acceptable for this file to remain readable by third parties on the Internet, including Apple’s servers, without posing any security risks?
Since this file is generated during domain registration on the Apple Developer site and is unique to our domain, we believe there should be no security concerns even if accessed by third parties. However, are there any specific security requirements for this domain validation file?
Please note that the domain validation has already been successfully completed.
We appreciate your time and look forward to your guidance.
Best regards,