To enable Apple Pay on Paystack: (1) Request Apple Pay activation from Paystack support or enable it in your dashboard, (2) download the domain verification file from your Paystack dashboard, (3) host it at https://yourdomain.com/.well-known/apple-developer-merchantid-domain-association, (4) verify the domain in your Paystack dashboard. Once verified, Apple Pay appears automatically on Paystack checkout for customers on Apple devices.
Apple Pay removes the biggest source of checkout friction: typing card numbers. Customers with cards saved in their Apple Wallet can pay with Face ID or Touch ID in seconds. No card number, no expiry, no CVV. Just a biometric confirmation and done.
For merchants, Apple Pay can improve conversion rates on Apple devices. The checkout is faster, the customer does not need to find their card, and the payment experience feels native to their device.
Apple Pay on Paystack works across all supported currencies (NGN, GHS, ZAR, KES, USD) and all Paystack markets. It is available on Safari on iPhone, iPad, and Mac. Chrome and Firefox on these devices may not support Apple Pay due to browser restrictions.
The setup effort is small: one file to host, one verification step. After that, Apple Pay works automatically without any code changes to your checkout.
Step 1: Enable Apple Pay on your Paystack account
Check your Paystack dashboard under Settings for Apple Pay options. If Apple Pay is not available, contact Paystack support to request activation. Approval may depend on your account type and business category.
Step 2: Download the domain verification file
In your Paystack dashboard, navigate to the Apple Pay settings section. Download the domain association file. This file is specific to your Paystack account.
Step 3: Host the file on your domain
Place the file at exactly this path on your web server:
https://yourdomain.com/.well-known/apple-developer-merchantid-domain-association
The file must be:
.well-known directory)Content-Type of text/plain or application/octet-streamHere is how to set this up on common platforms:
// Express.js: serve the verification file
var express = require('express');
var path = require('path');
var app = express();
// Serve the Apple Pay verification file
app.get('/.well-known/apple-developer-merchantid-domain-association', function(req, res) {
res.sendFile(path.join(__dirname, 'apple-developer-merchantid-domain-association'));
});
For static hosting (Vercel, Netlify, GitHub Pages), place the file in a .well-known directory in your project root. Make sure your hosting platform does not ignore dotfiles or dot-directories.
Step 4: Verify in your Paystack dashboard
Back in your Paystack dashboard, enter your domain and click "Verify." Paystack (through Apple) will check that the file is accessible at the correct path. If verification succeeds, Apple Pay is enabled for that domain.
Get weekly developer tips
Join 25,000+ developers. Practical guides, job tips, and new content — straight to your inbox.
No spam. Unsubscribe anytime.
Vercel (Next.js)
Place the file in the public/.well-known/ directory of your Next.js project. Vercel serves files from public/ at the root of your domain.
public/
.well-known/
apple-developer-merchantid-domain-association
Netlify
Same approach: place the file in the build output directory under .well-known/. If Netlify ignores dotfiles, add a _headers file or configure your build to include them.
Nginx
location /.well-known/apple-developer-merchantid-domain-association {
alias /var/www/yoursite/.well-known/apple-developer-merchantid-domain-association;
default_type text/plain;
}
Apache
Ensure the .well-known directory is not blocked by your .htaccess. Apache sometimes blocks directories starting with a dot.
After deploying, test by visiting https://yourdomain.com/.well-known/apple-developer-merchantid-domain-association in your browser. You should see the file contents (a long string of characters). If you get a 404 or a redirect, fix the hosting configuration before attempting verification.
Once domain verification is complete, Apple Pay appears on your Paystack checkout automatically. If you use Initialize Transaction (redirect or popup), Apple Pay shows up as a payment option for customers on supported Apple devices. You do not need to change your initialization code, add new parameters, or modify your frontend.
If you are restricting payment channels with the channels parameter, make sure apple_pay is included in the array to allow it:
// Include apple_pay in your channels list
body: JSON.stringify({
email: 'customer@example.com',
amount: 500000,
channels: ['card', 'bank_transfer', 'apple_pay'],
})
If you omit the channels parameter entirely (showing all channels), Apple Pay is included by default for eligible devices.
Testing Apple Pay requires an Apple device with a card added to Apple Wallet. Paystack test mode may have limited Apple Pay support. Here is how to test:
If the Apple Pay button does not appear:
Apple Pay transactions generate the same charge.success webhook as other payment channels. The channel field in the webhook payload is "apple_pay".
app.post('/webhooks/paystack', function(req, res) {
res.sendStatus(200);
var event = req.body;
if (event.event === 'charge.success') {
var channel = event.data.channel;
console.log('Payment channel: ' + channel);
// 'apple_pay' for Apple Pay transactions
// Fulfill the order the same way regardless of channel
fulfillOrder(event.data.reference);
}
});
Your fulfillment logic should not differentiate between Apple Pay and card payments. The money is the same. The only reason to track the channel is for analytics: knowing what percentage of your customers use Apple Pay helps you understand your audience.
If you accept payments on multiple domains (a staging domain, a production domain, and a mobile web domain), you need to verify each one separately. The verification file is the same, but you host it on each domain and verify each in your Paystack dashboard.
Common multi-domain scenarios:
www.yoursite.com and yoursite.com are different domains. Verify both if customers might access either.staging.yoursite.com for testing and yoursite.com for production. Verify staging if you want to test Apple Pay there.shop.yoursite.com and app.yoursite.com if you have separate web properties. Verify each one that hosts a checkout.KES 2,999
The definitive guide to building payment systems with Paystack — from your first transaction to production-grade payment infrastructure across Africa. 9 modules, 47 lessons. Free preview available.
Start Paystack Course