Apple Pay on Paystack works through tokenized card payments. The customer taps Apple Pay at checkout, authenticates with Face ID, Touch ID, or passcode, and the payment processes through their card saved in Apple Wallet. You enable it by verifying your domain with Apple through the Paystack dashboard and including the apple_pay channel in your transaction initialization. No changes to your backend webhook handling are needed.
Apple Pay is a tokenized card payment system. Here is what happens when a customer taps "Pay with Apple Pay" at your checkout:
charge.success event arrives at your webhook endpoint, just like any other payment.The key insight: Apple Pay is not a separate payment rail. It is a better front end for card payments. The money still moves through Visa/Mastercard. Apple Pay just replaces the part where the customer types their card number with a biometric authentication step.
This means Apple Pay transaction fees are typically the same as card transaction fees on Paystack. You are not paying extra for Apple Pay. Check paystack.com/pricing for current rates.
Before Apple Pay works on your website, you need to verify your domain with Apple. Paystack handles most of this process through their dashboard.
Steps:
yourapp.co.ke). If you have multiple domains (e.g., www.yourapp.co.ke and yourapp.co.ke), add each one.apple-developer-merchantid-domain-association) that you need to host on your server.https://yourdomain.com/.well-known/apple-developer-merchantid-domain-association. Apple's servers will fetch this file to verify you control the domain.Here is how to serve the verification file in common setups:
// Express.js: serve the Apple Pay verification file
const express = require('express');
const path = require('path');
const app = express();
// Serve the .well-known directory
app.use(
'/.well-known',
express.static(path.join(__dirname, '.well-known'))
);
// Place the file at:
// your-project/.well-known/apple-developer-merchantid-domain-association
// Next.js: place the file in your public directory
// public/.well-known/apple-developer-merchantid-domain-association
// Next.js serves the public directory at the root automatically
Common mistakes during domain verification:
.txt extension or serve it with the wrong MIME type. The file should be served as-is, without modification./.well-known/ path is not being blocked or redirected.www.yourapp.co.ke but you verified yourapp.co.ke, Apple Pay will not work on the www subdomain. Verify every domain variant your customers might visit.Get weekly developer tips
Join 25,000+ developers. Practical guides, job tips, and new content — straight to your inbox.
No spam. Unsubscribe anytime.
Apple Pay works on Apple devices and Safari. Not everywhere else.
Supported:
Not supported:
This is a significant limitation in Kenya. Android dominates the smartphone market here. The iPhone user base, while growing, is a fraction of total smartphone users. This does not mean Apple Pay is useless. It means you should set your expectations accordingly. Apple Pay will not be your highest-volume payment method. But for the customers who can use it, it offers the fastest checkout experience possible.
Paystack handles device detection automatically. When you include apple_pay in the channels array, Paystack's checkout only shows the Apple Pay option to customers on compatible devices and browsers. Customers on Android or Chrome simply will not see it. You do not need to write device detection code yourself.
Enabling Apple Pay in your Paystack integration requires adding apple_pay to the channels array. That is the only code change.
Transaction Initialize (server-side):
const initializeWithApplePay = async (email, amountKes) => {
const response = await fetch('https://api.paystack.co/transaction/initialize', {
method: 'POST',
headers: {
Authorization: 'Bearer sk_live_YOUR_SECRET_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: email,
amount: amountKes * 100,
currency: 'KES',
channels: ['apple_pay', 'card', 'mobile_money', 'bank_transfer'],
callback_url: 'https://yourapp.co.ke/payment/callback',
}),
});
const data = await response.json();
return data.data.authorization_url;
};
Paystack Inline (client-side popup):
const handler = PaystackPop.setup({
key: 'pk_live_YOUR_PUBLIC_KEY',
email: 'customer@example.com',
amount: 500000, // KES 5,000 in cents
currency: 'KES',
channels: ['apple_pay', 'card', 'mobile_money', 'bank_transfer'],
callback: function (response) {
// Verify the transaction on your server
fetch('/api/verify-payment', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ reference: response.reference }),
});
},
});
handler.openIframe();
The channels array controls which payment methods appear. By listing apple_pay first, you signal to Paystack that it should be prioritized in the display order for compatible devices. For non-Apple devices, Paystack will skip it and show the next available option.
Your webhook handler does not need any changes. Apple Pay payments arrive as a charge.success event with the same payload structure. The channel field will be apple_pay, which is useful for analytics but does not affect your processing logic.
For a customer with an iPhone and a card in Apple Wallet, the Apple Pay checkout looks like this:
Total time from tap to confirmation: about 3 seconds. Compare this with typing a 16-digit card number, expiry date, and CVV, then going through 3D Secure. Or compare with M-Pesa where the customer enters their phone number, waits for the STK push, then enters their M-Pesa PIN.
For the customer, Apple Pay is the fastest option. That speed translates to higher conversion rates on your checkout page, specifically for the subset of customers who have Apple devices and cards in their wallet. Whether that subset is large enough to move your overall numbers depends on your audience.
Kenya is not San Francisco. The iPhone market share is smaller, and M-Pesa is the dominant payment method. So when does Apple Pay actually matter here?
Premium e-commerce. If you sell premium products or services (electronics, fashion, travel), your customer base likely has a higher iPhone penetration. These customers expect a polished checkout experience. Apple Pay delivers it.
International customers. If your business serves tourists, diaspora, or international clients (consulting, freelance, SaaS), many of these customers will have Apple Pay set up and prefer it over entering card details on an unfamiliar website.
Subscription services. Customers who pay monthly (streaming, software, gym memberships) appreciate the speed of Apple Pay for repeat purchases. The biometric authentication is faster than re-entering card details each time, especially if the card is not tokenized for automatic charges.
In-app purchases. If you have an iOS app, Apple Pay is the native payment experience. Users on iPhones expect it. Not offering it feels like an oversight.
B2B with corporate cards. Some Kenyan corporate buyers have Visa or Mastercard corporate cards saved in Apple Wallet. For B2B transactions, Apple Pay can be faster and more secure than manual card entry.
Apple Pay is not going to be your top payment method in Kenya. M-Pesa will hold that spot for the foreseeable future. But adding Apple Pay costs you essentially nothing (a domain verification step and adding a string to an array) and improves the experience for a segment of your paying customers. That is a good trade.
For Apple Pay to work, the customer needs a card from a bank that supports Apple Wallet. In Kenya, several banks have rolled out Apple Wallet support for their Visa and Mastercard debit and credit cards.
The list of supporting banks grows over time. Major banks like Equity, KCB, NCBA, Absa, Standard Chartered, and Stanbic have introduced or are in the process of introducing Apple Wallet support. Check with individual banks for their current status, as rollouts can be phased (e.g., credit cards first, then debit cards).
International card issuers (Revolut, Wise, N26) that are commonly used by diaspora and international customers also support Apple Wallet, which means those customers can pay Kenyan merchants with Apple Pay even if their card was not issued in Kenya.
A customer who has a Kenyan Visa debit card but whose bank does not yet support Apple Wallet cannot use Apple Pay. They fall back to the regular card entry flow or M-Pesa. Your checkout should always have fallback options. Never make Apple Pay the only payment method.
Apple Pay is arguably the most secure card payment method available to your customers. Here is why:
For your business, this means lower fraud risk on Apple Pay transactions compared to manually-entered card transactions. If you operate in a sector with high card fraud rates, Apple Pay provides a cleaner payment channel.
Testing Apple Pay requires an Apple device. You cannot test it on Android or in a desktop browser other than Safari on a Mac with Touch ID.
Testing steps:
staging.yourapp.co.ke, verify that domain separately in the Paystack dashboard. Apple Pay domain verification is per-domain.If you do not have an iPhone for testing, ask a colleague or friend with one to help. You cannot fake Apple Pay in a simulator or emulator for payment testing. The real device is required because Apple Pay depends on the Secure Element chip in the phone.
Apple Pay is one piece of a multi-method checkout. Here is where to go from here:
If you are building payment integrations for the Kenyan market, the McTaba M-Pesa/Daraja micro-course teaches you to build production-grade payment systems. Cards, mobile money, Apple Pay, webhooks, reconciliation. The full picture, not just one piece.
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