Apple Pay
This guide outlines the basics of using Apple Pay via Checkout and gives you instructions needed for a fluent implementation.
Overview
Apple Pay with Nexi Checkout
Fast, secure Apple Pay payments in your checkout, with a setup that scales from hosted to fully embedded experiences.
Apple Pay lets customers complete payments in seconds using their Apple devices, without manually entering card details.
Key benefits:
- One-tap checkout with Face ID or Touch ID
- No card numbers exposed or stored on your site
- Optimized for mobile and desktop
- Higher conversion on supported devices
Availability & requirements:
Apple Pay is displayed automatically only when all conditions are met:
- For embedded checkout: domain verification
- Customer uses a supported Apple device
- Browser supports Apple Pay (Safari recommended)
- Apple Pay is enabled on your Nexi account
- At least one supported card brand is active
- Apple Pay will not appear if any requirement is missing, this is expected behavior.
- Apple Pay is only supported on iOS (16 or later) operating systems. Supported browsers are: Safari, Firefox, Chrome, and Edge.
- Apple Pay cannot be activated without Visa/Mastercard/Dankort being present on your account.
Functionality table
| Name | Description |
|---|---|
| Payment type | Wallet |
| Subscriptions | ❌ |
| Bin filter | ✅ |
| Refunds | ✅ |
| Partial refund | ✅ |
| Update order | ❌ |
| Cancel payment | ✅ |
| Reservation & charge | ✅ |
| CPSP | ✅ |
| IPSP | ❌ |
| Supported card schemes | Visa, Mastercard and Dankort |
| Currencies | All currencies for Visa and Mastercard. Only DKK for Dankort. |
| Countries | All |
Activation
To activate Apple Pay as a payment method and to add it to your Easy checkout, you need to complete the onboarding journey.
- Login to the Easy admin portal.
- Navigate to ADD-ON on left-hand side menu and ensure the your account is set to LIVE (top-right on screen).
- Click on ENABLE APPLE PAY to activate the the Apple Pay option.

Important information
Embedded checkout - Domain verification is needed. See more information in the Embedded checkout section
Hosted checkout - No further steps are needed. Apple pay is now available in your checkout
Embedded payment page
To activate the embedded checkout for Apple Pay, do the following:
- Login to the Checkout portal.
- Navigate to ADD-ON on left-hand side menu and ensure the your account is set to LIVE (top-right on screen).
- Click on ENABLE APPLE PAY to activate the the Apple Pay option.
- Write your domain name into the domain name box. Ensure that you write the correct domain name.
- Click on DOWNLOAD to get your domain-verification file.
- Upload the domain-verification file to your website at the URL at step 2 in the screenshot below.
- Click on VERIFY DOMAIN.
You have now successfully enabled Apple Pay as Embedded Payment Page in your checkout.

Error codes for domain verification
The following error codes with description can help you to understand if you have not successfully enabled the Apple Pay for embedded checkout.
Error codes
| Error code | Explanation |
|---|---|
| Not found | We couldn’t find your store URL. The domain may be typed incorrectly, or the verification file is missing. Make sure your verification file is placed exactly here: https://[domain]/.well-known/apple-developer-merchantid-domain-association. |
| FileContentIsEmpty | The verification file is there but completely empty. Upload the correct Apple verification file again and ensure it contains content. |
| FileContentShouldNotContainHtml | The verification file contains HTML, which Apple does not accept. Upload the file exactly as you downloaded it from Apple — don’t open, edit, or format it before uploading. |
| FileContentShouldNotContainHtml | The verification file contains HTML, which Apple does not accept. Upload the file exactly as you downloaded it from Apple — don’t open, edit, or format it before uploading. |
| FileContentIsNotCorrect | The file content doesn’t match what Apple expects. You may have uploaded the wrong file. Download a fresh verification file from Apple and upload it to the .well-known folder. |
| FileContentTypeIsNotCorrect | The server is returning the file with the wrong content type. It must be served as text/plain. Adjust your server settings so the file is delivered with MIME type text/plain. |
| ResponseTypeIsNotOk | Your server isn’t responding correctly when accessing the verification file. The URL might be wrong, the file might be inaccessible, or the server may be returning errors like NotFound or BadRequest. Fix those issues and ensure the file contains valid Apple verification content. |
| BadRequest | The domain exists, but the server returned a “Bad Request” response. Usually this happens when the domain URL is typed incorrectly or the verification file isn’t placed in the correct folder. Verify both and try again. |
| NoSuchHostIsKnown | TThe domain cannot be reached at all. Confirm the domain name is correct and active. If the domain is new, DNS may still be updating — wait for DNS propagation and try again. |
Plugins configuration overview
To enable embedded checkout for Apple Pay, you need to prepare your plugin environment and a place for the domain-verification file for the transaction.
In general, the apple-developer-merchantid-domain-association file should be in the ".well-known" folder and the public root path, so that it is accessible via the link: https://[DOMAIN_NAME]/.well-known/apple-developer-merchantid-domain-association.
Usually, there are public folders that contain the root path.
Nginx and Apache should be structured to read this file without the extension from the ".well-known" folder.
Depending on the server and platform, the configuration may differ.
Here are some example configurations for Nginx and Apache servers that we may need to add to the configuration files:
Nginx
Usually in /etc/nginx/{shop}.conf
Nginx code example
# .htaccess, .DS_Store, .htpasswd, etc., but keep .well-known available location ~* /\.(?!well-known\/) { deny all; }
To find out more, please follow this reference link.
Apache
.htaccess in public folder
Apache code example
RewriteCond %{REQUEST_FILENAME} -f RewriteRule
It is important to remember that these are generic examples, and everyone can have their configuration so the best way is to customize the solution on the above requirements.
Below are examples of the given platforms and explanations on how to modify the basic configuration.
WooCommerce
Read more about our WooCommerce plugin here.
Step 1:
Download your domain-verification file from the Checkout portal.
Step 2:
Upload the domain-verification file to your website using an FTP or SFTP client:
- Navigate to the WordPress root directory.
- In this folder, you should find directories “wp-admin”, “wp-content” and “wp-includes” et al.
- Create a new directory with the following name: “.well-known”.
- Paste the domain-verification file inside the “.well-known” directory.
Step 3:
Make sure your server is configured properly so the file is hosted and available at the following path: https://[YOUR_DOMAIN]/.well-known/apple-developer-merchantid-domain-association.
See the example configuration documented by Nexi.
Shopware 6.5
Read more about our Shopware 6.5 plugin here.
Step 1:
Download your domain-verification file from the Checkout portal.
Step 2:
Upload the domain-verification file to your website using an FTP or SFTP client:
- Navigate to the Shopware root directory.
- Go to the “/public” folder.
- Create a new directory with the following name: “.well-known”.
- Paste the domain-verification file inside the “.well-known” directory.
Step 3:
Make sure your server is configured properly so the file is hosted and available at the following path: https://[YOUR_DOMAIN]/.well-known/apple-developer-merchantid-domain-association.
See the example configuration documented by Nexi.
Magento 2
Read more about our Magento 2 plugin here.
Step 1:
Download your domain-verification file from the Checkout portal.
Step 2:
Upload the domain-verification file to your website using an FTP or SFTP client:
- Navigate to the Magento 2 root directory.
- Go to the “/pub” folder.
- Create a new directory with the following name: “.well-known”.
- Paste the domain-verification file inside the “.well-known” directory.
Step 3:
Make sure your server is configured properly so the file is hosted and available at the following path: https://[YOUR_DOMAIN]/.well-known/apple-developer-merchantid-domain-association.
See the example configuration documented by Nexi.
PrestaShop 1.7
Read more about our PrestaShop 1.7 plugin here.
Step 1:
Download your domain-verification file from the Checkout portal.
Step 2:
Upload the domain-verification file to your website using an FTP or SFTP client:
- Navigate to the PrestaShop root directory.
- Create a new directory with the following name: “.well-known”.
- Paste the domain-verification file inside the “.well-known” directory.
Step 3:
Make sure your server is configured properly so the file is hosted and available at the following path (see PrestaShop documentation here): https://[YOUR_DOMAIN]/.well-known/apple-developer-merchantid-domain-association.
Opencart 3.0
Upload the domain-verification file to your website using an FTP or SFTP client:
- Navigate to upload directory
- Create a new directory with the following name: ".well-known"
- Paste the domain-verification file inside the ".well-known" directory
Additional steps if you are running Nginx:
- To make access for that directory, make sure that your nginx config approves the directories with a dot. There might be a case where you need to approve that in your nginx config file.
Read more about our OpenCart 3.0 plugin here.
Oxid 6.5
Step 1:
Download your domain-verification file from the Checkout portal.
Step 2:
Upload the domain-verification file to your website using an FTP or SFTP client:
- Navigate to the Oxid root directory.
- Go to the “/source” folder.
- Create a new directory with the following name: “.well-known”.
- Paste the domain-verification file inside the “.well-known” directory.
Step 3:
Make sure your server is configured properly so the file is hosted and available at the following path: https://[YOUR_DOMAIN]/.well-known/apple-developer-merchantid-domain-association.
JTL-Shop 5
Read more about our JTL-Shop 5 plugin here.
Step 1:
Download your domain-verification file from the Checkout portal.
Step 2:
Upload the domain-verification file to your website using an FTP or SFTP client:
- Navigate to the JTL-Shop root directory.
- In this folder, you should find directories “admin”, “plugins”, “templates”, and more.
- Create a new directory with the following name: “.well-known”.
- Paste the domain-verification file inside the “.well-known” directory.
Step 3:
Make sure your server is configured properly so the file is hosted and available at the following path: https://[YOUR_DOMAIN]/.well-known/apple-developer-merchantid-domain-association.
See an example about configuration documented by Nexi.
User journey
This following section will describe the user journey and payment flow for your customer:
- When your consumer chooses Apple Pay as a payment method in the checkout, they will prompted to Apple Pay window.
- Customer can pay with
- "Pay with Touch ID" or
- "Double click to pay" depending on what system they are using.
Payment flow
If you use paymentMethodsConfiguration parameter to only show the payment method(s) that are preferred for the specific payment, Apple Pay can also be selected.
Apple Pay is available only on Apple devices.
Apple Pay is defined as a Wallet and can be displayed alone and together with other payment methods. It is not recommended to show Apple Pay alone if you do not detect the device used in the webshop before you are going to show the payment options.
If Apple Pay is used alone on devices other than iOS/iPadOS/MacOS, there will be no visible payment methods and it is naturally a poor user experience. Apple Pay can be combined with other Wallet payment methods or together with cards.
Recommended usage of the paymentMethodsConfiguration parameter for Apple Pay.
If you have more than one wallet configured, you can use:
code
paymentMethodsConfiguration:[{"name":"Wallet"}]

If Apple Pay is used as the only wallet, you should include card as well:
code
paymentMethodsConfiguration:[{"name":"Card"},{"name":"ApplePay"}]
