대한민국에서 제3자 결제 방식을 사용하여 앱 배포하기

대한민국에서는 앱 마켓 사업자에 의해 배포되는 앱에는 앱 내에 대체 결제 방식을 제공할 수 있도록 최근 전기통신사업법 시행령이 개정되었습니다. 해당 법령을 준수하기 위해 개발자는 StoreKit External Purchase Entitlement(외부 구입 권한)을 사용할 수 있습니다. 해당 Entitlement(권한)을 사용하면 대한민국에서 App Store를 통해 배포되는 앱에만 대체 앱 내 결제 처리 옵션을 제공할 수 있습니다. Apple의 앱 내 구입 시스템을 계속 사용하고자 하는 개발자는 추가 조치 없이 계속 사용할 수 있습니다.

다른 결제 시스템을 사용하고자 하는 개발자는 Xcode에서 Entitlement(권한)를 활성화하고 필요한 StoreKit API를 사용하여 대한민국의 App Store에서만 배포되는 별도의 iOS 및/또는 iPadOS용 앱 바이너리를 제출해야 합니다. Apple에서는 대한민국용 앱을 검토하여 Entitlement(권한) 약관은 물론 앱 심사 지침 및 Apple Developer Program 사용권 계약을 준수하고 있는지 확인할 것입니다.

Entitlement(권한) 요청하기

대한민국에서 배포될 앱에 StoreKit External Purchase Entitlement(외부 구입 권한)를 사용하고자 하는 개발자는 Entitlement(권한) 요청 양식을 제출해 주시기 바랍니다. 양식 요청하는 사람은 Apple Developer Program의 계정 소유자여야 하며, 앱의 번들 ID, 결제 서비스 제공업체 및 웹 사이트 도메인 등의 세부 사항을 제공해야 하고, Entitlement(권한) 약관에 동의해야 합니다.

앱 정보 입력하기

사용하려는 앱의 이름, 설명, 번들 ID(앱의 고유 식별자)를 입력합니다. Entitlement(권한) 요청은 번들 ID마다 하나씩 요청해야 하며 App Store에 아직 게시되지 않은 번들 ID에만 할당할 수 있습니다. Entitlement(권한)를 할당한 다음 대한민국의 App Store에서만 배포될 별도의 iOS 및/또는 iPadOS용 앱 바이너리를 제출해야 합니다.

결제 처리 정보 제공하기

아래의 목록에서 사전 승인된 PSP(결제 서비스 제공업체)를 선택하여 대한민국 스토어를 통해 구매하는 앱 내 구입을 처리합니다. 현재 대한민국에서 배포되는 앱에 결제 처리 시스템을 제공할 수 있는 자격을 갖춘 PSP는 다음과 같습니다.

  • KCP
  • 이니시스
  • 토스
  • NICE

별도의 PSP를 사용하고자 하는 경우 심의를 위해 해당 업체의 이름과 웹 사이트 정보를 입력해주십시오. 다른 모든 PSP와 동일한 기준을 갖춘 PSP가 아닌 한 개발자는 결제 정보를 저장 또는 전송할 수 없습니다. Entitlement(권한)를 할당하기 전에 Apple에서는 개발자가 선택한 PSP가 안전한 결제 처리 시스템을 갖추고 사용자 개인정보의 보호를 위해 노력하고 있는지 확인할 것입니다. 개발자가 선택한 PSP에서는 다음을 제공해야 합니다.

  • 업계 표준에 부합하는 개인정보 보호, 보안 및 사기 방지 서비스.
  • 다양한 결제 지원.
  • 안전한 카드 저장 및 취급을 통한 구독 청구 기능.
  • 개발자의 요청이 있을 때 수수료를 바로 Apple에 지불할 수 있는 기능이 포함된 분할 결제.

참고: Entitlement(권한)마다 하나의 PSP를 사용할 수 있습니다. Entitlement(권한)에 사전 승인된 PSP가 포함되어 있지 않은 경우 요청이 지연 또는 거절될 수 있습니다. PSP를 변경해야 한다면 Entitlement(권한) 업데이트 양식을 제출하시기 바랍니다.

고객 지원 웹 사이트 정보 입력하기

사용자가 개발자의 외부 결제 시스템을 사용하여 구입했을 때 시기적절한 지원을 받을 수 있는 고객 지원 웹 사이트 URL을 입력합니다. 2개 이상의 URL을 사용하고자 하는 경우 사용하는 모든 URL을 입력하시기 바랍니다.

Xcode에서 Entitlement(권한) 구성 및 활성화하기

Entitlement(권한)가 계정에 할당되었다는 확인 이메일을 받고 해당 Entitlement(권한)를 지원하기 위해 Certificates, Identifiers & Profiles(인증서, 식별자 및 프로파일)에서 앱의 앱 ID를 구성한 다음 Xcode 프로젝트, Entitlement(권한) plist 파일 및 info.plist 파일을 업데이트하여 Entitlement(권한) 및 메타데이터 목록을 표시해야 합니다. Entitlement(권한)는 iOS 15iPadOS 15 이후 버전을 사용 중인 기기와 호환됩니다.

Xcode에 활성화된 Entitlement(권한)가 표시된 스크린샷Xcode에 활성화된 Entitlement(권한)가 표시된 스크린샷
  1. Project Navigator(프로젝트 탐색기)에서 .entitlements 파일을 선택합니다. Xcode 13에서 Entitlement(권한) 파일 이름 앞에 노란색 체크 표시 도장 아이콘이 표시됩니다.
  2. Entitlement(권한) plist 파일에서 Entitlements File(권한 파일) 행 위에 포인터를 두고 추가 버튼(+)을 클릭하여 새로운 Entitlement(권한) 키 쌍을 추가합니다.
  3. Entitlement(권한)에 대해 다음의 값을 입력합니다.
    1. Key(키): com.apple.developer.storekit.external-purchase
    2. Type(유형): Boolean(불리언)
    3. Value(값): True(참)
  4. Info.plist 파일 업데이트하기의 설명에 따라 필요한 메타데이터를 Info.plist 파일에 제공합니다.

기기의 다음번 빌드 또는 Xcode Organizer에서 배포 요청 시, Xcode에서는 해당 .entitlements 파일과 캐시된 Provisioning profile(권한 설정 프로파일)이 일치하지 않음을 감지하면 최신 앱 ID 구성에 기반한 새로운 Provisioning profile(권한 설정 프로파일)을 요청하여 코드 서명 절차를 완료하게 됩니다.

Info.plist 파일 업데이트하기

각각의 Entitlement(권한)에 대하여 고유한 데이터 요구 사항을 앱의 Info.plist 파일에 입력해야 합니다. 앱의 info.plist 파일 관리에 대한 자세한 내용은 문서를 참고하시기 바랍니다.

StoreKit External Purchase
  1. Project Navigator(프로젝트 탐색기)에서 iOS 타깃의 Info.plist 파일을 선택합니다.
  2. Entitlement(권한)에 대해 다음의 값을 제공합니다.
    1. Key(키): SKExternalPurchase
    2. Type(유형): Array of String (스트링 배열)
    3. Value(값): KR (대한민국의 단일 ISO 3166-1 alpha-2 국가 코드 값.)

앱 내에 제3자 결제 시스템 제공하기

요구 사항 및 지침

StoreKit External Purchase Entitlement(외부 결제 권한)를 활성화하는 것 외에도 개발자는 필수 StoreKit API를 사용해야 하며 사용자의 개인정보 보호 및 보안, 사기 행위 방지 및 전반적인 사용자 경험 품질 유지를 위해 마련된 사용 요구 사항을 준수해야 합니다.

  • 해당 Entitlement(권한)는 대한민국 App Store의 iOS 또는 iPadOS용 앱에만 사용할 수 있습니다.
  • 해당 Entitlement(권한)는 대한민국 스토어에서만 배포되는 새로운 바이너리에서만 사용할 수 있습니다.
  • 해당 Entitlement(권한)는 Apple의 앱 내 구입 시스템을 사용하는 동일한 앱에서는 사용할 수 없습니다.
  • 해당 Entitlement(권한)를 사용하는 경우 앱 내에 승인된 제3자 결제 시스템을 포함할 수 있습니다. 사용자에게 Apple 외의 다른 제공자를 통해 구입하게 됨을 설명해 주는 외부 결제 모달 시트(그림 1)가 앱에 표시되어야 합니다. 다음의 앱 내 결제 흐름을 반드시 구현해야 합니다.
    • 앱 내에서 고유한 경험 제공하도록 합니다. 웹 보기에서는 제공할 수 없습니다. 사용자는 구입을 완료하는 데 웹 사이트 또는 다른 앱으로 이동해야 할 법적 의무가 있는 경우에만 앱을 벗어날 수 있습니다.
    • 숨겨졌거나 휴면 상태 또는 문서화되지 않은 결제 기능 또는 동작을 포함해서는 안 됩니다.
  • 오해의 소지가 있는 마케팅 활동(예: 유인 판매, 사기 등)에 참여하는 앱의 경우 App Store에서 삭제될 것이며 개발자는 Apple Developer Program에서 제명될 수 있습니다.

필수 StoreKit API 사용하기

  • StoreKit External Purchase Entitlement(외부 결제 권한)을 사용하는 경우 앱에 다음 사항을 구현해야 합니다.
    • 구입하거나 결제 정보를 입력하기 위한 각각의 흐름 이전에 canMakePayments를 확인하도록 합니다. 해당 호출은 사용자가 결제할 수 있는지 여부를 나타냅니다.
    • iOS 또는 iPadOS 15.4 이후 버전을 사용하는 기기에서는 StoreKit External Purchase API를 사용하여 아래에 설명된 바와 같이 사용자에게 외부 결제 시스템 사용을 알리는 앱 내 모달 시트를 표시합니다.
  • 앱에서 StoreKit External Purchase API를 호출하지 않는 경우 StoreKit에서 Storefront 또는 SKStorefront를 사용하여 구입하거나 결제 정보를 입력하기 위한 각각의 흐름 이전에 사용자의 스토어가 대한민국임을 확인하도록 합니다.

앱 내 모달 시트 표시하기

앱 내에서 제3자 결제 시스템을 사용하는 경우 Apple 이외의 제공자를 통해 구입하게 됨을 설명해 주는 모달 시트가 앱 내에 포함되어 있어야 합니다.

iOS 또는 iPadOS 15.4 이후 버전에서는 해당 사항을 StoreKit External Purchase API를 사용하여 구현할 수 있습니다. iOS 또는 iPadOS 15에서 iOS 15.3를 사용하는 기기에서는 그림 1에 제공된 모달 시트의 디자인 및 텍스트를 그대로 따라 모달 시트를 구현해야 합니다.

해당 시트는 아래의 상황 이전에 표시해야 합니다.

  • 기기별로 사용자가 구입하려는 각각의 결제 흐름에서 ‘계속’을 탭하기 전까지.
  • 특정 구입에 해당하지 않더라도 기기별로 사용자가 각각의 결제 정보 입력 흐름에서 ‘계속’을 탭하기 전까지.

그림 1. 외부 결제 모달 시트

앱 내 모달 시트의 예시
한국어

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

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

링크: 더 알아보기

버튼 1: 계속
버튼 2: 취소

영어

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

디자인 사양(4.5 MB)

심사를 위해 App Store Connect에서 앱 제출하기

심사를 위해 App Store Connect에서 새로운 앱 바이너리를 제출할 때 아래의 제출 요구 사항과 더불어 Entitlement(권한)의 이용 약관, 앱 심사 지침 및 Apple Developer Program 사용권 계약을 준수해야 합니다.

  • 외부 결제 흐름을 위한 앱 내 모달 시트가 올바르게 구현되고 테스트 되어야 합니다.
  • PSP가 앱에서 거래를 완료할 준비가 되어 있어야 합니다.
  • 사용자에게 필수 정보를 공개하는 앱 UI의 스크린샷이 제출물에 포함되어 있어야 합니다.
  • App Store Connect에서의 앱 사용 가능 여부는 대한민국으로 한정됩니다.
  • 개발자의 앱이 현재 Apple의 앱 내 구입 시스템을 사용하는 앱의 새로운 버전인 경우 대한민국의 iOS 및/또는 iPadOS App Store에서 기존 앱을 삭제해야 StoreKit External Purchase(외부 결제)가 활성화된 앱의 배포를 승인받을 수 있습니다.

제출물에 빠진 내용이 있거나 사전 승인된 PSP를 선택하지 않은 경우 심사 기간이 지연되거나 앱이 거부당할 수 있습니다. 앱 심사가 완료되면 App Store Connect에 심사 상태가 업데이트되며, 개발자는 알림을 받게 됩니다. 항상 앱의 Entitlement(권한) 세부 정보가 앱의 바이너리와 일치하며 최신 상태인지 확인해야 합니다. Entitlement(권한) 세부 정보(예: PSP)를 업데이트 하려면Entitlement(권한) 업데이트 양식을 제출하시기 바랍니다.

수수료 및 판매 보고서

제3자 앱 내 결제 방식을 사용하도록 Entitlement(권한)를 부여받은 앱은 Apple에 거래 수수료를 지불해야 합니다. Apple에서는 사용자가 지불하는 가격의 26%를 수수료로 부과합니다(부가가치세 총액). 해당 수수료율은 결제 처리 및 관련 활동과 관련된 값을 제외한 할인율입니다. 대한민국 앱용 StoreKit External Purchase Entitlement(외부 결제 권한) 부록에 명시한 바와 같이 적용 가능한 모든 세금의 징수 및 납부의 책임은 개발자에게 있습니다.

이러한 Entitlement(권한)를 사용하는 개발자는 App Store를 통해 판매된 디지털 상품과 콘텐츠의 개별 판매를 기록한 보고서를 Apple에 제출해야 합니다. 이 보고서는 Apple의 회계 월이 끝난 후 매달 15일 이내에 제공해야 합니다. 보고서에 포함해야 할 자세한 내용은 보고서 예시를 참고하시기 바랍니다. 해당하는 개발자는 제출한 보고서를 기반으로 송장을 받게 되며, Apple의 회계 월이 끝난 후 45일 이내에 송장에 명시된 대금을 Apple에 납부해야 합니다. 장차 Apple에서 보고 편의성을 높이고자 기술적인 해결책을 마련하는 경우 개발자는 해당 기술을 도입해야 합니다.

Entitlement(권한)의 약관에 따라 Apple에는 감사 권한이 있음을 유의하시기 바랍니다. 해당 감사 권한을 사용하여 Apple에서는 개발자가 제공하는 Entitlement(권한)를 통한 디지털 거래 기록의 정확성을 재검토할 수 있으며, 이를 통해 Apple에 적절한 수수료를 지불하였는지 확인할 수 있습니다. Apple에 수수료를 지급하지 않는 경우 개발자가 다른 마켓에서 받아야 하는 수익금이 상계될 수 있으며, App Store에서 앱 삭제 또는 Apple Developer Program에서 제명될 수 있습니다.

사용자 지원하기

이러한 Entitlement(권한)를 사용하는 개발자의 경우, 개발자는 대체 결제 옵션으로 인해 발생한 질문이나 문제에 대해 시기적절한 지원을 제공할 의무가 있습니다. Apple에서는 대체 수단을 사용하여 이루어진 구매 사실을 인식할 수 없으므로 환불, 결제내역, 구독 관리를 비롯하여 디지털 상품 및 서비스를 구입할 때 발생할 수 있는 그 밖의 문제에 관하여 사용자를 지원할 수 없습니다. 따라서 이러한 문제와 관련하여 고객을 지원할 책임은 개발자에게 있습니다.

리소스