Strong Customer Authentication Transactions
Starting March 14, 2022, the Financial Conduct Authority (FCA) will require Strong Customer Authentication (SCA) for users in the United Kingdom, which may impact how they complete online purchases. These requirements already apply to users in the European Economic Area (EEA) as of December 31, 2020. While the App Store and Apple Pay support SCA, you need to verify your app’s implementation of StoreKit and Apple Pay to ensure purchases are handled correctly.
What’s changing
Regulations in the United Kingdom and European Union require SCA for certain online purchases in order to protect against fraud. When certain transactions are initiated via credit or debit card on a website, in an app, or on the App Store, they must be authenticated by the bank or payment service provider before they can be completed.
- For auto-renewable subscriptions, SCA is required only for the first transaction. Subsequent renewals are out of scope of the regulation.
- Purchases under €30 or £25 may not require SCA.
- Purchases made with Apple Pay, which already meets SCA requirements, will not require additional authentication.
- Purchases made with mobile phone billing, other payment services, or an Apple Account balance will not require additional authentication.
Handling transactions with StoreKit
For in-app purchases that require SCA, the user is prompted to authenticate their credit or debit card. They’re taken out of the purchase flow to the bank or payment service provider’s website or app for authentication, then redirected to the App Store where they’ll see a message letting them know that their purchase is complete. Handling this interrupted transaction is similar to Ask to Buy purchases that need approval from a family organizer or when users need to agree to updated App Store terms and conditions before completing a purchase.
Make sure your app properly handles interrupted transactions by initializing a transaction observer to respond to new transactions and synchronize pending transactions with Apple. This observer helps your app handle SCA transactions, which can update your payment queue to a state of “failed” or “deferred” as the user exits the app. When the user is redirected to the App Store after authentication, a new transaction with a state of “purchased” is immediately delivered to the observer and may include a new value for the transactionIdentifier
property. You can test interrupted purchase scenarios in sandbox for a specific Sandbox Apple Account.
Resources
- Learn about billing and purchases in Europe
- Setting up the Transaction Observer for the Payment Queue
- Offering, Completing, and Restoring In-App Purchases
- Testing In-App Purchases with Sandbox
- Testing In-App Purchases in Xcode
Handling transactions with Apple Pay
Apple Pay includes built-in authentication and doesn’t require additional authentication by banks. However, to avoid issues with payments made with Apple Pay on your apps and websites, make sure you’re using the correct country code on payment requests and showing the final amount on the payment sheet.
The countryCode
value on the PKPaymentRequest
(for apps) and ApplePayPaymentRequest
(for websites) should be set to the correct two-letter country code for the country in which you’re processing the funds. Setting this correctly ensures a PSD2-compliant cryptogram when the merchant countryCode
and the user’s card issuer both fall within the EEA.
Show the final amount, not a pending amount, on the payment sheet. This will help with dynamic linking, where the transaction amount and a merchant identifier are included in the cryptogram to prove the origin and authenticity of the transaction.