Distributing dating apps in the Netherlands
To comply with an order from the Netherlands Authority for Consumers and Markets (ACM), developers distributing dating apps on the Netherlands App Store can choose to do one of the following: 1) continue using Apple’s in-app purchase system, 2) use a third-party payment system within the app, 3) include an in-app link directing users to the developer’s website to complete a purchase, or 4) use a third-party payment system within the app and include a link directing users to the developer’s website to complete a purchase.
Developers of dating apps who want to continue using Apple’s in-app purchase system may do so and no further action is needed. Those who want to use a different payment system will need to request the StoreKit External Purchase Entitlement or the StoreKit External Purchase Link Entitlement, or both.
The entitlements that comply with the ACM order are only available for dating apps on the App Store in the Netherlands, and apps distributed pursuant to those entitlements must only be used in an iOS and/or iPadOS app on the Netherlands storefront. Apple will review each dating app submitted to ensure it complies with the terms and conditions of the entitlement, as well as the App Review Guidelines and the Apple Developer Program License Agreement.
Requesting an entitlement
If you’re interested in using the StoreKit External Purchase Entitlement or the StoreKit External Purchase Link Entitlement, get started by submitting an entitlement request form. You’ll need to be an Account Holder in the Apple Developer Program; provide details such as your app’s bundle ID, payment service provider, and website domain; and agree to the entitlement’s terms and conditions.
-
Select entitlement type
The StoreKit External Purchase Entitlement. For dating apps on the Netherlands storefront, this entitlement lets you use a third-party payment system within your app’s native user interface.
The StoreKit External Purchase Link Entitlement. For dating apps on the Netherlands storefront, this entitlement lets you include an in-app link directing users to a website you own or are responsible for to complete a purchase.
-
Enter your app’s information
App name and description. Enter your app’s name, then describe the primary purpose of your app and how it works.
Bundle ID. Enter the bundle ID (the app’s unique identifier) that you plan to use. Entitlement requests are per bundle ID and assigned entitlements can only be used with the single binary associated with the bundle ID.
-
Enter your payment processing information
Enter the name and website of your payment service provider (PSP). Before your entitlement can be assigned, you must certify that your PSP meets the following criteria:
- Meets Level 1 Payment Card Industry (PCI) compliance for handling credit and debit card data, or complies with the Payment Services Directive when not handling credit and debit card data
- Makes a customer service process available for users, including a process to dispute unauthorized transactions, manage subscriptions (if applicable), and request refunds
- Denominates all prices for the sale of digital goods and services to users in the Netherlands in the euro currency
-
Enter your website information
Website domain. If you’re requesting the StoreKit External Purchase Link Entitlement, you’ll need to provide the website domain (where users will complete purchases) for your destination URL. For example, if your app will link to “https://example.com/subscription-sign-up/”, enter “https://example.com”.
Note that the website domain you provide on the entitlement request form and the destination URL you provide in the Xcode Info.plist file must match the app binary you submit to App Review at all times.
Customer support website. Enter the URL for your customer support website where users can get timely support for purchases made through your external payment system. If you plan to use more than one URL, list every URL.
Configuring and enabling the entitlement in Xcode
After you’ve received an email confirmation that the entitlement has been assigned to your account and you’ve configured the app ID in Certificates, Identifiers, and Profiles to support this entitlement, you’ll need to update your Xcode project, entitlements plist file, and Info.plist file to list the entitlement and metadata. The entitlement is compatible with devices running iOS 15 and iPadOS 15 or later.
- In the Project navigator, select the .entitlements file. In Xcode 13, the filename is prefixed with an icon.
- In the entitlements plist file, add a new entitlement key pair by holding the pointer over the Entitlements File row and clicking the add button (+).
- Provide the following values for the entitlement:
- Key: com.apple.developer.storekit.external-purchase-link or com.apple.developer.storekit.external-purchase
- Type: Boolean
- Value: True
- Provide the required metadata in your Info.plist file as described in Updating your Info.plist file.
On the next build to your device or distribution request in Xcode Organizer, Xcode will detect that the .entitlements file and cached provisioning profile don’t match, and will request a new provisioning profile based on the latest app ID configuration to complete the code signing process.
Updating your Info.plist file
Each entitlement has unique requirements for the data that must be entered into your app’s Info.plist file. For details on managing your app’s Info.plist file, view documentation.
StoreKit External Purchase
- Select the Info.plist file from the Project Navigator in your iOS target.
- Provide the following values for this entitlement:
- Key: SKExternalPurchase
- Type: Array of String
- Value: A single ISO 3166-1 alpha-2 country code value for the country Netherlands, nl
StoreKit External Purchase Link
- Select the Info.plist file from the Project Navigator in your iOS target.
- Provide the following values for this entitlement:
- Key: SKExternalPurchaseLink
- Type: Dictionary with string values
- Key: A single ISO 3166-1 alpha-2 country code value for the country Netherlands, nl
- Value: A single destination URL
Note: At all times, the destination URL (link to your website) that you provide in the Info.plist file in Xcode must match the value in your app binary submitted to App Review. Make sure that each value is a string that:
- Uses the https scheme;
- Forms a valid, absolute URL;
- Contains no query parameters; and
- Contains 1,000 or fewer ASCII characters.
Providing a third-party payment system within your app
Requirements and guidelines
In addition to enabling the StoreKit External Purchase Entitlement, you’ll need to use required StoreKit APIs, and follow usage requirements designed to help protect people’s privacy and security, prevent scams and fraudulent activity, and maintain the overall quality of the user experience.
- The entitlement can only be used with a dating app for iOS and/or iPadOS on the Netherlands storefront. If your app is available in multiple regions, the entitlement may be included in your app, but can only be used in the version of the app on the Netherlands storefront, when on iOS or iPadOS.
- The entitlement cannot be used in the same app with Apple’s in-app purchase system in the Netherlands storefront.
- When using the entitlement, you may include a third-party payment system within the app. The app must surface the External Purchase Modal Sheet (Figure 1) that explains the user is going to make purchases through a source other than Apple. The in-app payment flow you implement must:
- Provide a native experience within the app. It may not be within a web view. The user can leave the app only when legally required to go to a website or another app to complete the purchase.
- Not contain any hidden, dormant, or undocumented payment functionality or behavior.
- If your app engages in misleading marketing practices, such as bait and switch, scams, or fraud, it will be removed from the App Store and you may be removed from the App Store and you may be removed from the Apple Developer Program.
Using required StoreKit APIs
- When using the StoreKit External Purchase entitlement, your app must:
- Check canMakePayments prior to each flow to make a purchase or enter payment information. This call indicates whether the user is allowed to make payments.
- Use the StoreKit External Purchase API for devices running iOS or iPadOS 15.4 or later to display an in-app modal sheet that informs users of an external payment system, as described below.
- When your app is not calling the StoreKit External Purchase API, use Storefront or SKStorefront in StoreKit to confirm that the Netherlands is the user’s storefront prior to each flow to make a purchase or enter payment information.
Displaying the in-app modal sheet
When using a third-party payment system within your app, your app must include an in-app modal sheet that explains purchases are made through a source other than Apple.
For iOS or iPadOS 15.4 or later, this is implemented by using the StoreKit External Purchase API. For devices running iOS or iPadOS 15 to iOS 15.3, you’ll need to implement the modal sheet by following exactly the modal sheet’s design and text provided in Figure 1.
This sheet must be displayed prior to:
- Each payment flow where the user would make a purchase, until the user taps "I Understand", on a per-device basis.
- Each flow to enter payment information, even if not for a specific purchase, until the user taps "I Understand", on a per-device basis.
English
Title: Your payment will be managed by the developer. You will no longer be transacting with Apple.
Body: All purchases in this app will be processed by a service provider selected by the developer “developerName”. The developer will be responsible for the payment methods and related features such as subscriptions and refunds. App Store features, such as your stored App Store payment method, subscription management, and refund requests, will not be available.
Learn More
Action: I Understand
Dutch
Title: Je betaling wordt beheerd door de ontwikkelaar. Je hebt geen transacties meer met Apple.
Body: Alle aankopen in deze app worden verwerkt door een serviceaanbieder geselecteerd door de ontwikkelaar 'developerName'. De ontwikkelaar is verantwoordelijk voor de betaalmethodes en gerelateerde functies zoals abonnementen en terugbetalingen. App Store-functies, zoals je bewaarde App Store-betaalmethode, abonnementsbeheer en verzoeken tot terugbetaling, zijn niet beschikbaar..
Lees meer
Action: Ik begrijp het
Linking to your website from your app
Requirements and guidelines
In addition to enabling the StoreKit External Purchase Link Entitlement, you’ll need to use required StoreKit APIs, and follow usage requirements designed to help protect people’s privacy and security, prevent scams and fraudulent activity, and maintain the overall quality of the user experience.
- The entitlement can only be used with a dating app for iOS and/or iPadOS on Netherlands storefront. If your app is available in multiple regions, the entitlement may be included in your app, but can only be used in the version of the app on the Netherlands storefront, when on iOS or iPadOS.
- The entitlement cannot be used in the same app with Apple’s in-app purchase system in the Netherlands storefront.
- When using the entitlement, you may include a link in your app to direct users to make purchases on a website you own or are responsible for. The link must:
- Surface the External Purchase Link Modal Sheet (Figure 2), that explains the user is leaving the app and going to the web to make purchases through a source other than Apple;
- Open a new window in the default browser installed on the user’s device; the link may not open a web view in the app;
- Not pass additional parameters in the URL, so that user or device data is not transmitted to the developer without the user’s knowledge or permission;
- Go directly to your website without any redirect or intermediate link or landing page;
- Be submitted with your app to App Review, and be resubmitted if the URL changes.
- Your App Store product page’s metadata cannot include information about purchasing on your website or a link to your website for purchasing.
- If your app engages in misleading marketing practices, such as bait and switch, scams, or fraud, it will be removed from the App Store and you may be removed from the Apple Developer Program.
Using required StoreKit APIs
- When using the StoreKit External Purchase Link Entitlement, your app must:
- Check canMakePayments prior to each instance of linking a user out to an external website for purchasing digital goods and services.
- Use the StoreKit External Purchase Link API for devices running iOS and iPadOS 15.4 or later to display an in-app modal sheet that informs users of an external payment system, as described below.
- Unless you’re calling the StoreKit External Purchase Link API, use Storefront or SKStorefront in StoreKit to confirm that the Netherlands is the user’s storefront prior to each instance of linking a user out to an external website for purchasing digital goods and services.
Displaying the in-app modal sheet
Your app must display an in-app modal sheet explaining to the user that they’ll be leaving the app and going to the web to make a purchase through a source other than Apple. This modal sheet must be displayed prior to each instance of linking to an external website for purchasing digital goods and services, until the user taps "I Understand", on a per-device basis.
For iOS or iPadOS 15.4 or later, this is implemented by using the StoreKit External Purchase Link API. For devices running iOS or iPadOS 15 to iOS 15.3, you’ll need to implement the modal sheet by following exactly the modal sheet’s design and text provided in Figure 2.
English
Title: You’re about to leave the app and go to an external website. You will no longer be transacting with Apple.
Body: Any accounts or purchases made outside of this app will be managed by the developer “developerName". The developer will be responsible for the payment methods and related features such as subscriptions and refunds. App Store features, such as your stored App Store payment method, subscription management, and refund requests, will not be available.
Learn More
Action: I Understand
Dutch
Title: Je staat op het punt de app te verlaten en naar een externe website te gaan. Je hebt geen transacties meer met Apple.
Body: Alle accounts of aankopen die aangemaakt of gedaan zijn buiten deze app worden beheerd door de ontwikkelaar 'developerName'. De ontwikkelaar is verantwoordelijk voor de betaalmethodes en gerelateerde functies zoals abonnementen en terugbetalingen. App Store-functies, zoals je bewaarde App Store-betaalmethode, abonnementsbeheer en verzoeken tot terugbetaling, zijn niet beschikbaar.
Lees meer
Action: Ik begrijp het
Submitting your app for review in App Store Connect
When submitting your new app binary for review in App Store Connect, make sure to follow these submission requirements as well as the terms and conditions of the entitlement, the App Review Guidelines, and the Apple Developer Program License Agreement.
- Your in-app modal sheet for your external payment flow is properly implemented and tested.
- The website your app links to for purchases and support is fully functional.
- Your PSP is ready to complete transactions from your app.
- Screenshots of your app’s UI where you make the required disclosures to users are included with your submission.
If your submission is incomplete, review times may be delayed or your app may be rejected. Once your app has been reviewed, its status will be updated in App Store Connect and you’ll be notified.
At all times, you’ll need to make sure your app’s entitlement details match your app’s binary, and are up to date. To make updates to your entitlement details, such as PSP and website domain, submit an entitlement update form.
Commission and sales reporting
Consistent with the interim relief ruling of the Rotterdam district court, dating apps that are granted an entitlement to link out or use a third-party in-app payment provider will pay Apple a commission on transactions. Apple will reduce its commission by 3% on the price paid by the user, net of value-added taxes. This is a reduced rate that excludes value related to payment processing and related activities. Developers will be responsible for the collection and remittance of any applicable taxes, such as the Netherlands’ value-added tax (VAT), for sales processed by a third-party payment provider.
Developers using these entitlements will be required to provide a report to Apple recording each sale of digital goods and content that has been facilitated through the App Store. This report will need to be provided weekly within 15 calendar days following the end of Apple’s fiscal week (Sunday through Saturday). To learn about the details that will need to be included in the report, view an example report. Qualifying developers will receive an invoice based on the reporting and will be required to remit payment to Apple for the amount invoiced within 45 days following the end of Apple’s fiscal month. In the future, if Apple develops technical solutions to facilitate reporting, developers will be required to adopt such technologies.
Please note that Apple has audit rights pursuant to the entitlement’s terms and conditions. This will allow Apple to review the accuracy of a developer’s record of digital transactions as a result of the entitlement, ensuring the appropriate commission has been paid to Apple. Failure to pay Apple’s commission could result in the offset of proceeds owed to you in other markets, removal of your app from the App Store, or removal from the Apple Developer program.
Supporting users
If you’re a developer using one of these entitlements, it will be your responsibility to provide timely support to customers if questions or issues arise stemming from alternative payment options. Because Apple will not be aware of purchases made using alternative methods, Apple will not be able to assist users with refunds, payment history, subscription management, and other issues encountered when purchasing digital goods and services through these alternative purchasing methods. You’ll be responsible for addressing such issues with customers.