Apple Pay

Allow customers to securely make payments using Apple Pay on their iPhone, iPad, or Apple Watch.

View as MarkdownInstall skills

Allow customers to securely make payments using Apple Pay on their iPhone, iPad, or Apple Watch.

Apple Pay is SCA-ready. As of September 2019, a regulation called Strong Customer Authentication (SCA) requires businesses in Europe to request additional authentication for online payments. Apple Pay fully supports SCA as it already handles payment flows with a built-in layer of authentication (biometric or password). Learn more about SCA.

Refer to Apple's compatibility documentation to learn which devices support Apple Pay.

Apple Pay is compatible with most VINR products and features. VINR users can accept Apple Pay in iOS applications on iOS 9 and above, and on the web in Safari starting with iOS 10 or macOS Sierra. There are no additional fees to process Apple Pay payments — pricing is the same as for other card transactions.

Apple Pay is available to cardholders at participating banks in supported countries. For more information, refer to Apple's participating banks documentation.

PropertyValue
Customer locationsWorldwide except India
Presentment currencySee supported presentment currencies
Payment confirmationCustomer-initiated
Payment method familyWallet
Recurring paymentsYes
Payout timingStandard payout timing applies
Connect supportYes
Dispute supportYes
Manual capture supportYes
Refunds / Partial refundsYes / Yes

Apple Pay is available to merchants in the following regions:

  • Europe — All EEA countries plus the United Kingdom
  • United States — All 50 states and DC
  • Canada
  • Australia and New Zealand
  • Singapore, Hong Kong, Japan

Contact your VINR account manager to confirm availability in your region.

VINR productSupported
Hosted CheckoutYes — Apple Pay appears automatically for eligible devices
Payment ElementYes
Express Checkout ElementYes
Payment LinksYes
Native iOS SDKYes
React Native SDKYes
Terminal (in-person)Yes — via NFC contactless
InvoicingNo

Payment flowAsk

When a customer taps the Apple Pay button:

  1. The device presents the Apple Pay payment sheet with the stored card.
  2. The customer authenticates with Face ID, Touch ID, or passcode.
  3. Apple generates a one-time cryptogram and sends it to VINR.
  4. VINR decrypts the cryptogram and authorises the payment with the card network.
  5. The payment is captured and confirmed; you receive a payment.completed webhook.

The payment_method.card.wallet.type field is set to apple_pay on the resulting payment.

In-app purchase eligibility for Apple PayAsk

This guide explains how to configure your app to accept Apple Pay directly for physical goods, services, and other eligible items. VINR processes these payments and you pay only VINR's standard processing fees.

For digital products, content, and subscriptions sold in the United States or European Economic Area (EEA), your app can accept Apple Pay by redirecting to an external payment page. You can use the following payment UIs:

  • VINR Checkout
  • Web Elements
  • Payment Links (best for a limited number of products and prices)

In other regions, your app cannot accept Apple Pay for digital products, content, or subscriptions.

Accept Apple PayAsk

VINR offers a variety of methods to add Apple Pay as a payment method. Select the integration method you prefer:

Add the VINR iOS SDK via Swift Package Manager:

dependencies: [
    .package(
        url: "https://github.com/vinr/vinr-ios-sdk.git",
        from: "1.0.0"
    )
]

Configure Apple Pay in your AppDelegate:

import VinrSDK

VinrAPI.defaultPublishableKey = "pk_live_..."

// Register supported networks — add .cartesBancaires only for EUR transactions
let supportedNetworks: [PKPaymentNetwork] = [.visa, .masterCard, .amex]

Then present the Apple Pay payment sheet using PKPaymentAuthorizationController. VINR handles merchant validation and token decryption automatically. See Merchant tokens if you need to support recurring or deferred payments.

Install the VINR React Native SDK:

npm install @vinr/react-native-sdk
# or
yarn add @vinr/react-native-sdk

Wrap your app with the VinrProvider and use the useApplePay hook:

import { useApplePay, VinrProvider } from '@vinr/react-native-sdk';

function CheckoutButton() {
  const { presentApplePay, confirmApplePayPayment } = useApplePay();

  const pay = async () => {
    const { error } = await presentApplePay({
      cartItems: [{ label: 'Your order', amount: '20.00' }],
      country: 'US',
      currency: 'USD',
    });
    if (!error) {
      await confirmApplePayPayment('pay_...');
    }
  };

  return <Button onPress={pay} title="Buy with Apple Pay" />;
}

You can accept Apple Pay on the web using Checkout or Elements. No additional configuration is required to use Apple Pay in Checkout. For Elements, use the Express Checkout Element or Payment Element — Apple Pay appears automatically for eligible devices and browsers.

Web integration considerations

  • iframes with Elements — The iframe origin must match the top-level origin (except for Safari 17+ when specifying the allow="payment" attribute). Two pages share an origin if the protocol, host, and port are identical.
  • Top-level domain and iframe domain — If the top-level domain differs from the iframe domain, both must be registered as payment method domains on the associated account.
  • Embedded checkout (ui_mode: 'embedded') — Supports only Safari 17 or later and iOS 17 or later.

Use of Apple Pay on the web is subject to the Apple Pay on the Web terms of service.

Register your domain with Apple PayAsk

To use Apple Pay on the web, you must register all domains that show an Apple Pay button with Apple. This includes top-level domains (for example, yourstore.com) and subdomains (for example, shop.yourstore.com), in both production and testing.

www is a subdomain (for example, www.yourstore.com) and must also be registered separately.

VINR handles Apple merchant validation for you, including creating an Apple Merchant ID and Certificate Signing Request. Do not follow the merchant validation process in the Apple Pay documentation directly. Instead, register your domain with VINR:

You can do this on the Payment method domains page in the VINR Dashboard, or via the API using your live secret key:

curl https://api.vinr.com/v1/payment_method_domains \
  -u YOUR_SECRET_KEY: \
  -d "domain_name=example.com"

Do not register the same domain more than once per account.

When using direct charges with Connect, you need to configure the domain for each connected account separately using the API. This is not required for connected accounts using other charge types.

After registering your domains, you can accept live Apple Pay payments on your site.

Recurring paymentsAsk

We recommend implementing Apple Pay merchant tokens to enable merchant-initiated transactions (MIT) such as recurring and deferred payments and automatic reloads. Merchant tokens (MPANs) connect your business with your customer's Apple Wallet payment method, work across multiple devices, and keep payment information active when a card is moved to a new device.

Test Apple PayAsk

To test Apple Pay, use a real credit card number with your test API keys. VINR recognises that you're in test mode and returns a successful test card token without charging the card.

You cannot save VINR test cards or Apple Pay test cards to an Apple Pay wallet for testing.

If Apple Pay does not appear as a payment option, check that your device and integration meet the requirements listed above.

See alsoAsk

Was this page helpful?
Edit on GitHub

Last updated on

On this page