Distributing apps using a third-party payment provider in South Korea

The Telecommunications Business Act in South Korea was recently amended to mandate that apps distributed by app market operators in South Korea be allowed to offer an alternative payment processing option within their apps. To comply with this law, developers can use the StoreKit External Purchase Entitlement. This entitlement allows apps distributed on the App Store solely in South Korea the ability to provide an alternative in-app payment processing option. Developers 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 enable the entitlement in Xcode, use required StoreKit APIs, and submit a separate app binary for iOS and/or iPadOS that is distributed solely on the App Store in South Korea. Apple will review this South Korea-specific app to ensure it complies with the terms and conditions of the entitlement, as well as the App Store Review Guidelines and the Apple Developer Program License Agreement.

Requesting an entitlement

If you’re interested in using the StoreKit External Purchase Entitlement for apps in South Korea, 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.

Enter your app’s information

Enter your app’s name, description, and bundle ID (the app’s unique identifier) that you plan to use. Entitlement requests are per bundle ID and can only be assigned to a bundle ID that has not yet been published on the App Store. After your entitlement has been assigned, you’ll need to submit your app as a separate app binary for iOS and/or iPadOS that will be distributed on the App Store solely in South Korea.

Provide your payment processing information

Select a pre-approved payment service provider (PSP) from the list below to process in-app purchases made through the South Korea storefront. The following PSPs are currently qualified to provide a payment processing system for apps distributed in South Korea:

  • KCP
  • Inicis
  • Toss
  • NICE

If you prefer to use a different PSP, enter their name and website information for consideration. Note that developers cannot store or transmit payment information, unless they are a PSP who meets the same criteria required of all other PSPs. Before your entitlement can be assigned, we’ll need to verify your PSP meets the criteria of having a secure payment processing system and an established track record of protecting user privacy. Your PSP will need to offer the following:

  • Privacy, security, and fraud prevention services consistent with industry standards.
  • Broad payment support.
  • Subscription billing capabilities with secure card storage and handling.
  • Split payments, with the ability to pay commission directly to Apple at the developer’s request.

Note: You may only use one PSP per entitlement. If your entitlement request doesn’t include a pre-approved PSP, your request may be delayed or denied. If you need to change your PSP, submit an entitlement update form.

Enter your customer support website information

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 your app’s 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.

Screenshot of the entitlement being enabled in XcodeScreenshot of the entitlement being enabled in Xcode
  1. In the Project navigator, select the .entitlements file. In Xcode 13, the filename is prefixed with an yellow checkmark seal icon.
  2. 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 (+).
  3. Provide the following values for the entitlement:
    1. Key: com.apple.developer.storekit.external-purchase
    2. Type: Boolean
    3. Value: True
  4. 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
  1. Select the Info.plist file from the Project Navigator in your iOS target.
  2. Provide the following values for this entitlement:
    1. Key: SKExternalPurchase
    2. Type: Array of String
    3. Value: KR (The single ISO 3166-1 alpha-2 country code value for South Korea.)

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 an app for iOS or iPadOS on the App Store in South Korea.
  • The entitlement can only be used with a new binary distributed solely on South Korea storefront.
  • The entitlement cannot be used in the same app with Apple’s in-app purchase system.
  • When using the entitlement, you may include an approved third-party payment system within the app. The app must surface the External Purchase Modal Sheet (Figure 1), explaining that 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 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 South Korea 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 "Continue", on a per-device basis.
  • Each flow to enter payment information, even if not for a specific purchase, until the user taps "Continue", on a per-device basis.

Figure 1. External Purchase Modal Sheet

Example of in-app modal sheet
Korean

Title: 이 앱은 App Store의 안전한 비공개 지불 시스템을 지원하지 않습니다.

Body: 이 앱의 모든 구입 관련 사항은 “<Developer Name>” 앱 개발자가 관리합니다. 더 이상 Apple과의 거래는 이뤄지지 않습니다. 저장된 App Store에 대한 지불 방법과 구독 관리, 구입 요청, 가족 공유 및 환불 요청과 같은 관련 기능을 이용할 수 없습니다. Apple은 이 개발자를 통한 거래에서 개인 정보 보호 또는 보안에 대한 책임을 지지 않습니다.

Link: 더 알아보기

Button 1: 계속
Button 2: 취소

English

Title: This app does not support the App Store’s private and secure payment system.

Body: All purchases in this app will be managed by the developer “<Developer Name>”. You will no longer be transacting with Apple. Your stored App Store payment method and related features, such as subscription management, Ask to Buy, Family Sharing, and refund requests, will not be available. Apple is not responsible for the privacy or security of transactions made with this developer.

Link: Learn More

Button 1: Continue
Button 2: Cancel

Design Specifications (4.5 MB)

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 Store Review Guidelines, and the Apple Developer Program License Agreement.

  • Your in-app modal sheet for your external payment flow is properly implemented and tested.
  • 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.
  • Your app availability in App Store Connect is limited to South Korea.
  • If your app is a new version of an app that currently uses Apple’s in-app purchase system, you must remove the existing app from the App Store on iOS and/or iPadOS in South Korea before your StoreKit External Purchase-enabled app can be approved for distribution.

If your submission is incomplete or you selected a PSP that is not already approved, 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 will 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, submit an entitlement update form.

Commission and sales reporting

Apps that are granted an entitlement to use a third-party in-app payment provider will pay Apple a commission on transactions. Apple will charge a 26% commission on the price paid by the user, gross of any 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, as specified in the StoreKit External Purchase Entitlement Addendum for Apps in South Korea.

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 monthly within 15 calendar days following the end of Apple’s fiscal month. 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 this entitlement, 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 will be responsible for addressing such issues with customers.

Resources