Apple Pay
Apple Pay is a mobile payment and digital wallet service made by Apple. It lets users make payments in iOS apps, on the web using Safari, and in-person contactless payments via their smartphones, smartwatches, or tablets.
The actual payment method depends on the card information that the user adds to their Apple Pay account. Their card information is stored for future purchases, making it easier to pay for their next order. This is also known as payment tokenization. Payment information is securely transferred from the cardholder to us, so we can and complete the payment.
Apple Pay complies with the PSD2 and Strong Customer Authentication (SCA) regulations. The payment is only completed when the customer uses their fingerprint or face recognition feature.
Our technology automatically detects whether your customer is paying from an Apple device using Safari (iPhone, iPad, or a Mac with Touch ID). The Apple Pay button is only shown as a payment method to shoppers paying from an Apple Pay enabled device. After they select Apple Pay as the payment method, the payment is completed with the Touch ID or Face ID, creating a seamless experience for the customer.
If your customers have questions about how to set up Apple Pay on an iPhone, Apple Watch, iPad, or Mac computer, you can share this Set up Apple Pay support article for more information.
Availability
Apple Pay is available in many countries and regions worldwide. See Apple's overview of the countries and regions that support Apple Pay for the current list, which Apple keeps up to date.
Activation
As soon as your account has been approved, Apple Pay is enabled by default. You can go to MONEI Dashboard → Settings → Payment methods to make adjustments to your configured payment methods.
Once activated, Apple Pay is available in the Hosted Payment Page integration. You can also use the Payment Request Component to render the button directly on your website. The Apple Pay button appears automatically for users on an Apple Pay enabled device.
Fees
Apple Pay is not technically considered a payment method. It's a payment tokenization method. The actual payment method used depends on the credit or debit cards the consumer adds to their Wallet app. There are no extra costs to accept Apple Pay through MONEI — you only pay the regular card fees. There are also no extra transaction fees from Apple Pay.
For current pricing, see MONEI fees.
Payouts
Technically speaking, Apple Pay payments are card payments. Apple Pay is the digital wallet consumers use to store their card information. For this reason, the payout process is the same as card settlements and there are no additional transaction fees. Learn more about settlements and when you get paid.
Integration
- Web
- Native iOS App
Web integration
You can start accepting Apple Pay payments on the Web using Hosted Payment Page or Payment Request Component. No additional configuration is required to use Apple Pay in Hosted Payment Page.
Our Payment Request Component gives you a single integration for Apple Pay and Google Pay. Customers see a Google Pay or an Apple Pay button, depending on what their device and browser combination supports.
Open this page in Safari to see the Apple Pay button.
If you prefer to integrate directly against the Apple Pay API, follow the direct API integration guide below.
Register your domain with Apple Pay
If you are using WooCommerce Plugin or custom domain with MONEI Hosted Payment Page your domain is verified automatically.
To register your domain with Apple, you will need to first verify your ownership of the domain. Go to your MONEI Dashboard → Settings → Payment methods, choose Register domain with Apple and follow the instructions in the popup.
You can also verify your domain with Apple using MONEI REST API.
Express checkout
Use express checkout to collect shipping and billing addresses directly in the Apple Pay payment sheet. See the Express Checkout guide for setup and examples.
Direct API Integration
Before you start, you need to:
- Add a card to your Wallet for Safari.
- Serve your application over HTTPS. This is a requirement both in development and in production. One way to get up and running is to use a service like ngrok.
- Register your domain with Apple Pay, both in development and production.
- Follow Apples's instructions.
Include monei.js on your checkout page by adding the script tag to the head of your HTML file.
<head>
<title>Checkout</title>
<script src="https://js.monei.com/v3/monei.js"></script>
</head>
Create Apple Pay Session
const session = new window.ApplePaySession(3, request);
session.onvalidatemerchant = async (event: any) => {
try {
const merchantSession = await monei.api.createApplePaySession({
accountId: 'MONEI_ACCOUNT_ID',
displayName: 'Test Merchant',
domainName: 'example.com',
validationUrl: event.validationURL
});
session.completeMerchantValidation(merchantSession);
} catch (error) {
session.abort();
}
};
Exchange Apple Pay token for MONEI that can be used to confirm payment.
session.onpaymentauthorized = async (event) => {
// Encode Apple Pay token as a base64 string
const paymentToken = JSON.stringify(event.payment.token);
const token = window.btoa(paymentToken);
try {
const result = await monei.api.createToken({
paymentId: '{{payment_id}}',
paymentMethod: {
applePay: {token}
}
});
session.completePayment({
status: window.ApplePaySession.STATUS_SUCCESS
});
return moneiTokenHandler(result.paymentToken);
} catch (error) {
session.completePayment({
status: window.ApplePaySession.STATUS_FAILURE
});
}
};
session.begin();
Confirm the Payment
After you have obtained the MONEI Payment Token, you can confirm the payment using the token.
async function moneiTokenHandler(token) {
try {
const result = await monei.confirmPayment({
paymentId: '{{payment_id}}',
paymentToken: token
});
// At this moment you can show a customer the payment result
// But you should always rely on the result passed to the callback endpoint
// on your server to update the order status
console.log(result);
} catch (error) {
console.error(error);
}
}
Native iOS app integration
If you're building a native iOS application with Apple Pay, you need to create a custom Apple Pay Payment Processing Certificate. This certificate allows your app to decrypt Apple Pay tokens and process payments through MONEI.
Create a Custom Certificate
- Go to Settings → Apple Pay certificates in your MONEI Dashboard
- Click Create certificate to generate a Certificate Signing Request (CSR)
- Download the CSR file
- Go to Apple Developer Portal - Certificates
- Click the + button to create a new certificate
- Select Apple Pay Payment Processing Certificate
- Select your Merchant ID and click Continue
- Upload the CSR file you downloaded from MONEI
- Download the generated certificate (.cer file)
- Return to MONEI Dashboard and upload the certificate to activate it
The private key is securely generated and stored by MONEI. You never need to handle private keys directly.
Until you upload the .cer file, the certificate stays Pending activation on the Apple Pay certificates page.
Initialize Apple Pay
Create your PKPaymentRequest in Swift. The merchantIdentifier is provided by MONEI - obtain it from the Get PaymentMethods API under metadata.applePay.merchantId (both test and production: merchant.com.monei):
let paymentRequest = PKPaymentRequest()
paymentRequest.merchantIdentifier = "merchant.com.monei" // From MONEI API
paymentRequest.countryCode = "ES"
paymentRequest.currencyCode = "EUR"
paymentRequest.supportedNetworks = [.visa, .masterCard, .amex]
paymentRequest.merchantCapabilities = .capability3DS
paymentRequest.paymentSummaryItems = [
PKPaymentSummaryItem(label: "Your Store Name", amount: NSDecimalNumber(value: 10.00))
]
Process Payments
Once the user authorizes the payment, you'll receive a PKPayment object. Send the payment token to your backend, then use the MONEI API to process it:
- Base64 encode the Apple Pay token from
payment.token.paymentData - Create a MONEI payment token using the Create Token API
- Confirm the payment using the token
// In your PKPaymentAuthorizationViewControllerDelegate
func paymentAuthorizationViewController(
_ controller: PKPaymentAuthorizationViewController,
didAuthorizePayment payment: PKPayment,
handler completion: @escaping (PKPaymentAuthorizationResult) -> Void
) {
// Send payment.token.paymentData to your backend
let tokenData = payment.token.paymentData.base64EncodedString()
// Your backend calls MONEI API to process the payment
}
On your backend, exchange the Apple Pay token for a MONEI payment token and confirm the payment.
Before you go live
- Make sure that you are using live (production) mode Account ID and API Key.
- Make sure that you have at least one enabled card processor.
Common questions
How do I activate Apple Pay?
As soon as your account has been approved, Apple Pay is enabled by default. See Activation for details.
What happens after I activate Apple Pay?
Apple Pay becomes available in the Hosted Payment Page integration, and you can also use the Payment Request Component to render the button directly on your website. The Apple Pay button appears automatically for users on an Apple Pay enabled device.
Are there extra fees for Apple Pay?
No. There are no extra costs to accept Apple Pay through MONEI and no extra transaction fees from Apple Pay — you only pay the regular card fees. See Fees.
How are Apple Pay transactions paid out to me?
Apple Pay payments are card payments, so the payout process is the same as card settlements with no additional transaction fees. See Payouts.