Hello. I have a few questions about the implementation of Apple Pay payments on websites. Could you help me
From the documentation:
Apple Pay issues an Apple Pay Merchant Token if the user’s payment network supports merchant-specific payment tokens. Otherwise, Apple Pay issues a device token for the payment request.
How can we determine whether a token is a merchant token or a device token?
Is it possible to determine this by any of the token fields? https://developer.apple.com/documentation/passkit/payment-token-format-reference
Is it possible to understand this in other ways?
Can I make recurring payments with the device token if it was issued instead of the merchant token?
Is it necessary to include the tokenNotificationURL when generating a merchant token, or can we generate one without specifying it?
What does the applicationExpirationDate field in the merchant token represent? Is this the date when the device token or merchant token expires and payments cannot be made with it?
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
hI, I’m looking for some clarity on the rules around in app purchasing, so I play a game with in app purchases that you have random odds of getting items out of loot boxes, they split the loot into sections, so featured, mega rare, rare and common. for each of these sections they give a % chance that they show of what chance you have to get an item out of that section, I.e featured is 1.24% and common is 74% ect.
my question is should they then have to display the odds of what each item has in those sections as well or is it good enough just to have the sections with % chance? So each section could have 10 items in, should those items have a % next to as well?
any advice you can give with this would be appreciated, if needs be I can send picture examples of what I’m explaining
Topic:
App & System Services
SubTopic:
Apple Pay
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
Hello,
I could not find where I can change the sellers name. Why is the first letter always capitalized?
Do I have to change it via Developer-Account or App-Development or Payment-Provider?
Topic:
App & System Services
SubTopic:
Apple Pay
My account has reached it's 99 merchant ID limit and I have applied and got approval for using the API that allows me to exceed the limit.
I was testing the API according to the documentation in Postman, but I am getting the following error:
POST https : //apple- pay-gateway.apple.com/paymentservices/registerMerchant
Error: read ECONNRESET
Please find below the cURL we are using according to the docs:
curl --location 'https://apple-pay-gateway.apple.com/paymentservices/registerMerchant'
--header 'Content-Type: application/json'
--data '{
"domainNames": "https://checkout.montypay.com",
"encryptTo": "merchant.test.montypay",
"partnerInternalMerchantIdentifier": "merchant.test.montypay",
"partnerMerchantName": "Test"
}'
Please note that I tried the Live and the sandbox endpoints and both gave the same error.
we are experiencing an issue when making an HTTP call to: "https://apple-pay-gateway-cert.apple.com/paymentservices/registerMerchant". The response we are receiving back is HTTP Status Code 401 Unauthorized.
We noticed the issues started around "Jan 24, 2025 at 9:51:46.327 am" and is still carrying on.
Some other examples of when the calls failed:
Jan 27, 2025 at 3:04:31.387 pm
Jan 27, 2025 at 9:46:04.068 am
Jan 27, 2025 at 3:36 pm
All of the above dates and times are UK GMT +0 times.
As the problem is around HTTP status code of 401 Unauthorised its tough to show what's actually happening.
Like I stated above everything was working correctly before the 24th of Jan and nothing has changed or been modified on our side.
I have even tried to do the following:
Use the first set of Certs to perform a test
Still returns 401
Delete a Cert and re generating them from scratch to perform a test with those set of Certs
Still returns 401
I have just tried to process another HTTP call to the paymentservices/registerMerchant and I could inspect the headers of the request and im hoping this helps in your investigation.
Headers:
x-keystone-correlationid = 8f9a3c16-f78f-4f9b-9484-63190ef14a77
Date = Tue, 28 Jan 2025 10:00:43 GMT
x-envoy-upstream-service-time = 4
x-apay-service-response-details = via_upstream
We also found an article that has us a bit worried about this issue. Article here: https://developer.apple.com/news/?id=2x8awlvm
States that Apple/Apple Pay will be making some changes to the ciphers in the coming months. With this article and the issues we seeing on Sandbox Environment we are worried that come the 4th of February as stated in the article that our Production Environment will be effected and we will stop being able to use Apple Pay so that gives us about a week to fix any issues/change code that might come out of it.
Please could you come back with some information around the Article posted and if our Production Environment would be impacted.
Issue Description
In our Apple Pay integration process, the validation URL returned from the onvalidatemerchant callback is:
https://apple-pay-gateway.apple.com/paymentservices/startSession
However, according to Apple’s official documentation (reference link), the correct validation URL is:
https://apple-pay-gateway.apple.com/paymentservices/paymentSession
We are seeking clarification and assistance regarding the following issues:
Issue 1
Will continuing to use the startSession URL cause problems or errors? Are there functional differences between the two URLs (startSession and paymentSession)? Does Apple still officially support startSession, or are we required to switch to paymentSession?
Issue 2
We occasionally experience the following 400 error, even though the URL we use for validation is the one returned from the onvalidatemerchant callback:
400: {
"statusMessage": "Payment Services Exception merchantId=*** not registered for domain=***.com",
"statusCode": "400"
}
We have verified the following:
Our Merchant ID and certificates are valid.
All Apple Pay configuration details, including merchant domain verification and placement of the .well-known/apple-developer-merchantid-domain-association file, have been correctly set up and verified.
However, we still encounter the error intermittently.
Questions:
If we need to transition to using paymentSession, how should we do this?
Could this error be related to the use of startSession? If not, how should we troubleshoot further?
Support Needed
Confirmation and clarification on the proper usage and differences between the two URLs: startSession and paymentSession.
Guidance on how we can investigate and resolve the 400 error to ensure that the Apple Pay validation process works consistently.
We appreciate your assistance and support!
Has anyone had any success enabling Apple Pay checkout for a Google Chrome or Firefox users (macOS or PC)? This was rolled out in iOS 18 but Shopify support hasn't been able to help:
https://www.theverge.com/2024/6/13/24177851/apple-ios-18-pay-chrome-scanning-code-wwdc-2024
Thanks
Hello,
We have implemented In-App Verification using both SMS and mobile app options. While SMS functions as expected, selecting the mobile app for verification in the Wallet app does not open our app on the first attempt. Instead, the verification window simply dismisses.
However, if I select "Complete Verification" again and choose the mobile app, deep linking works as expected, and our app opens correctly.
This issue occurs with any bank card and app I’ve tested in Wallet. Could this be a bug in the Wallet app where deep linking fails on the first attempt but works on the second?
Hello,
I'm building an expense management app and have the necessary FinanceKit entitlements. However I'm based in India and hence do not have access to an Apple Card. Is there anyway to test FinanceKit with some sort of mock data?
I have tried following the developer documentation and built a minimal implementation to share via Testflight to my users. However it's failing to get any transaction data.
I'm unable to debug the code myself and if anyone here has valid entitlements along with Apple Card, I'd appreciate if you could debug an example project I made below:
https://github.com/tanmays/FinanceKitExample
Feedback #FB14136552
Hi.
I am writing to request clarification regarding the renewal period of the merchant certificate. According to the documentation, Apple issues merchant certificates for 25 months, and this has been the case for several years. However, in the past six months, the issued certificates have been valid for only 3 months, which causes significant inconvenience.
I have reviewed the documentation again and contacted support, but I was only referred back to the same information stating that the certificate should be valid for 25 months. Could you please clarify whether there have been any recent changes to the renewal policy? Additionally, is there a way to extend the certificate's validity to the expected 25-month period?
I would greatly appreciate your assistance in resolving this issue.
Topic:
App & System Services
SubTopic:
Apple Pay
The details provided in this documentation do not seem have instructions on configuring authentication for the user webhook. I plan on using oauth with the webhook, but I do not know where to provide the relevant issuer and client id/secret to the merchant token management service.
Can i, personally, create .pkpass for other companies using my apple developer ID?
In order to create .pkpass, I need to create passTypIdentifier and teamIdentifier using apple developer ID
Is it okay to create those two identifiers and create coupons or membership cards for other companies?
I just wonder if it is against the law or developer guide.
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
I'm currently working on an AppIntent in my app to import Apple Pay transactions via Transaction triggers in Shortcuts. While I can access the transaction name with the following code:
@Parameter(title: "Transaction")
var transaction: String
I'm not sure how to retrieve the full details of the transaction, including:
Card or Pass
Merchant
Amount
Name
At the moment, transaction only provides the name as a string, but I need access to the complete transaction data. I know that by selecting specific fields like Amount, Merchant, etc., I can retrieve each piece of data individually, but it would be much easier and more user-friendly to simply retrieve the entire transaction object at once.
Has anyone successfully retrieved all details of an Apple Pay transaction in this context, and if so, could you share how to do so?
Topic:
App & System Services
SubTopic:
Apple Pay
Tags:
Shortcuts
Apple Pay
App Intents
Tap to Pay on iPhone
After opening the Apple Pay Popup and try to close the popup (without scanning the QR Code), the oncancel handler (accociated with the created session) doesn't fire.
Meanwhile if the merchant scanned the QR code and the UI of the popup changed, then cancel the popup manually (using close (X) button), it fires the session.oncancel event handler.
Here is applied setup:
const { ApplePaySession } = window;
if (!(ApplePaySession && ApplePaySession.canMakePayments())) {
return new Error('Apple Pay Session is not available');
}
const paymentCapabilities = await ApplePaySession.applePayCapabilities(
applePaymentOptionsMetaData.merchantIdentifier,
);
if (paymentCapabilities.paymentCredentialStatus === 'applePayUnsupported') {
console.error('ApplePaySession is not supported.');
return;
}
const request = {
"countryCode": "KW",
"currencyCode": "KWD",
"merchantCapabilities": [
"supports3DS"
],
"supportedNetworks": [
"VISA",
"MASTERCARD"
],
"billingContact": {
"phoneNumber": "201000000000",
"emailAddress": "example@test.com",
"givenName": "Ahmed",
"familyName": "Sharkawy"
},
"total": {
"amount": "3.085",
"label": "Merchant Testing"
}
}
const session = new ApplePaySession(5, request);
session.onvalidatemerchant = async event => {
if (debug) {
console.info('Creating merchant session and validating merchant session');
console.info('onvalidatemerchant event', event);
}
try {
// Validation Merchant Request
session.completeMerchantValidation(data);
} catch (error: any) {
session.completePayment({ status: ApplePaySession.STATUS_FAILURE });
}
};
session.onpaymentauthorized = async (event) => {
session.completePayment({ status: ApplePaySession.STATUS_SUCCESS });
};
// This doesn't fire
session.oncancel = () => {
console.info('EVENT: oncancel');
};
session.begin();
Hello
My app has implementation of In App Provisioning which is working fine. We have now added Wallet Extensions to it, but my App is not shown in Apple Wallet "From apps on your iphone"
I have uploaded Feedback (FB16450547) at
https://feedbackassistant.apple.com/feedback/16450547
Kindly request for your advice
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)?
Hi, I'm developer in fintech company, we have setup process for onboarding merchants for our partner and processing payments with usage of Apple Pay API. Daily system is processing ca. 10k payments but every day ca. 100 of transactions are declined because of merchant validation error:
request to https://apple-pay-gateway.apple.com/paymentservices/paymentSession (with all required parameters in body)
is returning response with status code 417
"statusMessage": "Payment Services Exception
merchantId={root merchant id}
unauthorized to process transactions on behalf of
merchantId={merchant id hash}
reason={merchant id hash} is
not a registered merchant in WWDR and isn't properly authorized via Mass
Enablement, either."
Issue impacts recurring merchants, most of their transactions are processed successfully but randomly some of them are failing with such reason. All prerequisites are met: merchant have deployed 'apple-developer-merchantid-domain-association' certificate, certificates are valid and not expired. Apple Support is not able to provide any information based on provided requests timestamps. We would to know what may be the reason just part of the requests are failing and what 417 error code means.
Topic:
App & System Services
SubTopic:
Apple Pay
So we are developing an NFC reader for a client and one of the requirements was Apple ECP. We submitted a product plan and it was approved and we were given access to the specific documentation for ECP. We are looking to only use Loyalty passes via NFC. Not Apple Pay. We wish to develop passes that have NFC capability and apparently you need another approval for NFC Entitlement. Apple just denied our application. No reason given, just denied. How are we suppose to develop a solution when we can only do one side of the development? Also we are seeing VAS mentioned and believe we also need access to this documentation as well, but no idea where to request it. Nothing in our developer portal or wpc portal. Can someone from Apple please steer us in the right direction.
As we understand it we need:
Approved hardware product plan (which we have)
Access to ECP 2.0 documentation (which we have)
Access to VAS protocol documentation (we don't have)
NFC entitlement to be able to create NFC enabled passes.
Let me know what we need to do or if I am not understanding things correctly.
Thanks