스토어 함정 #3: 기부라고 부를 수 없다
2026-05-30
태그: Windows · Microsoft Store · 스토어 함정
또 하나의 스토어 함정입니다. 이번 건은 정말 뜻밖이었습니다.
무슨 일이 있었나
무료 Windows 도구 앱이 있습니다. 사용자가 개발을 지원할 수 있는 방법을 추가하고 싶어서 인앱 애드온을 만들었습니다 — 간단한 "Support the Author" 구매였습니다. Store 등록에는 스폰서 옵션이라고 표시되었고, 인앱 UI에는 "Consider buying the dev a coffee"라고 적혀 있었으며, 구매는 Microsoft Store 자체의 IAP 시스템을 통해 처리되었습니다.
인증 결과가 돌아왔습니다:
Status: Attention needed
10.8.2 Third-Party In-Product Purchases
Any developer donations must only be made through a secure third-party purchase processing API. Please use one of those methods or remove any donation options that use the Microsoft API.
잠깐만 — 인앱 구매 API로 기부를 받아서 거절당한다고요?
정책
Microsoft Store 정책 10.8.2는 다음과 같이 규정합니다:
You must use the Microsoft payment request API or a secure third-party purchase API to receive voluntary donations from users. However, if the user receives digital goods or services in return, including but not limited to additional features or removal of advertising, you must use the Microsoft Store in-product purchase API instead.
번역: 사용자로부터 자발적인 기부를 받으려면 Microsoft payment request API 또는 안전한 타사 구매 API를 사용해야 합니다. 하지만 사용자가 그 대가로 디지털 상품이나 서비스를 받는 경우, 추가 기능이나 광고 제거 등을 포함하되 이에 국한되지 않고, Microsoft Store in-product purchase API를 대신 사용해야 합니다.
여기서 두 가지 다른 Microsoft API를 구분해야 합니다:
- Microsoft Payment Request API: 일반 결제 요청에 사용, 기부를 받을 수 있습니다
- Microsoft Store In-Product Purchase API: 디지털 상품 및 서비스의 인앱 구매에 사용, 기부를 받는 데 사용할 수 없습니다
어떤 API를 사용해야 하나
반드시 Microsoft 인앱 구매 API를 사용해야 하는 경우
사용자가 돈을 지불하고 앱 내에서 어떤 디지털 혜택을 받는 경우(아래에 국한되지 않음), 반드시 인앱 구매 API를 사용해야 합니다:
- 기능 잠금 해제: 무료 버전에서 Pro로 업그레이드, 고급 도구 잠금 해제, VIP 권한 활성화
- 광고 제거: 앱 내 광고를 영구적 또는 정기적으로 제거하기 위해 결제
- 디지털 화폐/아이템: 게임 내 골드, 다이아몬드, 스킨, 또는 앱 내 토큰/포인트
- 구독 서비스: 월간 또는 연간 유료 멤버십 서비스
주의: 이러한 행위를 "후원", "팁", "기부"로 포장하더라도, 사용자가 결제한 후 위의 디지털 변화 중 하나가 발생하면(예: VIP 전용 배지 부여, 팝업 제거), Microsoft는 이를 "디지털 제품 구매"로 간주하며 인앱 구매 API를 사용해야 합니다.
절대로 Microsoft 인앱 구매 API를 사용하면 안 되는 경우
다음 시나리오에서 인앱 구매 API를 사용하면 거절됩니다:
- 실물 상품: 옷, 책, 하드웨어 기기 판매
- 현실 세계 서비스: 영화표 예매, 배달 주문, 택시 호출, 호텔 예약
- 순수 자선 기부/현실 도박: 허가된 자선 단체를 위한 모금, 또는 법적으로 허용된 현실 도박
- 순수 개인 팁(보상 없음): 사용자가 단순히 코딩이 힘들다고 생각해서 돈을 주지만, 앱 내에 기능이나 인터페이스 변화가 없는 경우. 타사 결제 또는 Payment Request API를 사용해야 합니다
간단한 판단 기준
사용자가 결제한 후, 앱의 코드 로직(또는 데이터베이스 필드)이 변경되어야 합니까?
- 변경 필요 (예:
isPro가true로 변경, 또는adCount가0으로 변경) → 반드시 Microsoft 인앱 구매 API 사용 - 변경 불필요 (코드가 전혀 변하지 않음, 사용자가 단순히 애정을 표현하거나 실물 배달을 기다리는 경우) → 반드시 타사 결제 또는 Microsoft Payment Request API 사용
내 경우로 돌아가서
제 애드온 이름은 "Support the Author"였고 슬로건은 "Consider buying the dev a coffee"였습니다 — 표현상으로는 완전히 팁이었습니다. 하지만 Store 인앱 구매 API를 사용하고 있었고, 정책은 순수 팁에 대해 이를 명시적으로 금지하고 있습니다.
하지만 실제로 이 애드온은 사용자에게 서포터 배지와 같은 변화를 주었습니다 — 즉, 이미 디지털 상품이었습니다. 위의 판단 기준에 따르면, 변화가 있으면 디지털 상품이고, 디지털 상품은 인앱 구매 API를 사용해야 합니다. 즉, 이 결제는 이론적으로 인앱 구매 API를 통해서만 처리될 수 있었고, Payment Request API나 타사 결제를 사용할 수 없었습니다.
그래서 문제는 결제 방식이 아니라 설명이 잘못되었다는 것이었습니다. "Support the Author"를 "Upgrade to Pro"로 변경하고, "Consider buying the dev a coffee"를 구체적인 보상을 설명하는 텍스트로 바꾸니 통과되었습니다.
요약
- Microsoft 인앱 구매 API는 디지털 상품 및 서비스 거래에만 사용할 수 있습니다 — 사용자 결제 후 앱 내에 실질적인 변화가 있어야 합니다
- 순수 팁(앱 내 변화 없음)은 인앱 구매 API를 사용할 수 없으며, Payment Request API나 타사 결제를 사용해야 합니다
- 판단 기준: 사용자가 결제한 후 코드/데이터베이스가 변경되어야 합니까? 변경됨 → 인앱 구매 API; 변경되지 않음 → 타사 결제
- 명명과 설명은 실제 행동과 일치해야 합니다: 결제 후 변화가 있다면 구체적인 보상으로 설명하고, 기부, 후원, 팁이라는 표현을 피하세요
스토어 함정 시리즈의 일부입니다.