What app developers need to know to offer alternative payments for App Store apps in South Korea.
Table of Contents:
Alternative payments are finally here for the App Store. At least in South Korea, with a number of important caveats.
On March 15, 2022, detailed rules from the Korea Communications Commission went into effect preventing Apple and Google from mandating that app developers have to use their payment systems. These rules resulted from an amendment to the Telecommunications Business Act in South Korea which was signed into law in August 2021.
Now, Apple has finally provided app developers with detailed guidance for how to use a third-party payments provider in South Korea.
👉Read more: Epic v. Apple Ruling: What It Means for Your App
Here are 7 takeways you need to know before considering whether to offer alternative payments in South Korea:
The commission assessed is the normal App Store revenue split of 30% to Apple, less the fees associated with payment processing and related features.
App developers offering alternative payments in South Korea will need to provide all end user support functions related to payment processing issues, refund requests, subscription management, and more. Apple will not field any support requests related to third-party payments and will direct users to your support URL(s).
Developers interested in offering alternate payments in South Korea must request a special entitlement called the StoreKit External Purchase Entitlement for use within a build of your app specific to the South Korea App Store storefront.
App developers who want to offer alternative payments in South Korea must create a new app binary. This app will need to use a new bundle ID that has not been previously published on the App Store.
Apple has pre-approved four payment services providers (PSP) in South Korea for payment processing:
Each of these providers all meet Apple’s criteria which includes having broad payment support, industry standard privacy and security, fraud prevention, subscription billing, and split payments support. The special entitlement permits usage of only one PSP. You may request a PSP not on the pre-approved list, but Apple will consider additional PSPs at their discretion.
Before collecting payment information, you must inform users that the app is using alternative payments via a modal sheet conforming to a design provided by Apple.
Apple is requiring that the in-app payment experience for apps in South Korea taking advantage of alternative payments is fully native. No web views are permitted.
👉Read more: The App Store Rejected My App, Now What
It remains to be seen whether app developers will widely adopt alternative payments in South Korea or anywhere else in the world should they become available in other juristidations.
Arguably, Apple’s requirements allow compliance with South Korea law while trying to minimize as much end user confusion as possible.
For app developers and publishers, owning the customer transaction can sound enticing. As we’ve shown in this article, there are important considerations that make it a less straightforward decision.
At Nami, we’re tracking the global regulatory pressure that has been building for some time that may force Apple and Google to more widely permit a solution such as what’s now available in South Korea.
We’ll have more to say in the future about the approach we’re taking with our product. In the meantime, we are 100% committed to providing a great experience for developers who depend on native Apple and Google billing.
if(window.strchfSettings === undefined) window.strchfSettings = {};
window.strchfSettings.stats = {url: "https://nami.storychief.io/en/app-store-alternative-payments-south-korea?id=561211902&type=26",title: "Offering App Store Alternative Payments in South Korea - 7 Takeaways",id: "51b60849-ff21-4408-b48f-9543da3cae59"};
(function(d, s, id) {
var js, sjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {window.strchf.update(); return;}
js = d.createElement(s); js.id = id;
js.src = "https://d37oebn0w9ir6a.cloudfront.net/scripts/v0/strchf.js";
js.async = true;
sjs.parentNode.insertBefore(js, sjs);
}(document, 'script', 'storychief-jssdk'))