모든 글
Deep dive8분 소요

인앱 구매 유형마다 환불 방식이 다르며, 당신의 입장을 물어보는 것은 그중 둘뿐입니다

소비형, 비소비형, 자동 갱신 구독, 비갱신 구독은 각각 자기만의 규칙으로 환불됩니다. 어떤 것은 복원할 수 있고, 어떤 것은 소비되면 사라지며, 개발자에게 증거를 요구하는 것은 소비형 요청과 구독 요청뿐입니다. 당신이 판매하는 인앱 구매 유형이 환불이 당신에게 미치는 영향을 어떻게 바꾸는지 알려드립니다.

따뜻한 조명이 비치는 책상 위에 동전 더미, 자물쇠, 달력, 티켓이 한 줄로 놓여 있어, 인앱 구매 유형마다 환불 방식이 다르다는 것을 보여준다

핵심 요약

  • App Store에는 인앱 구매 유형이 네 가지 있습니다. 소비형, 비소비형, 자동 갱신 구독, 비갱신 구독으로, 각각 다른 규칙으로 환불됩니다. Google Play는 같은 카탈로그를 일회성 상품과 구독으로 분류합니다.
  • 환불이 결정되기 전에 개발자에게 증거를 요구하는 Apple 흐름은 두 가지뿐입니다. 소비형의 CONSUMPTION_REQUEST와, WWDC24 이후 자동 갱신 구독의 CONSUMPTION_REQUEST입니다. 비소비형과 비갱신 구독은 그 창을 거의 열지 않습니다.
  • 소비형은 환불 위험이 가장 높은 유형입니다. 전달 시점에 소비되고, 복원할 수 없으며, 그 가치는 환불이 도착하기 전에 사라집니다. 바로 그래서 Apple이 그것들에 대해 당신의 소비 데이터를 요구하는 것입니다.
  • 비소비형은 영구적이고 복원 가능하므로, 환불은 고객 계정이 여전히 기억하는 권한을 취소해야 합니다. Google Play에서는 72 hours 이내에 승인하지 않은 구매는 자동으로 환불되고 접근 권한이 회수됩니다.
  • 자동 갱신 구독은 시계에 따라 환불됩니다. Apple은 당신이 보내는 숫자가 아니라 경과 시간으로 얼마나 소비되었는지 계산하므로, 당신의 일은 정직한 refundPreference와 그 뒤를 받치는 사용 증거입니다.
  • App Store에서는 오직 Apple만 인앱 구매 환불을 발행할 수 있습니다. Google Play에서는 Play Console에서 직접 주문을 환불할 수 있으며, 그래서 당신이 판매한 상품 유형이 당신 스스로 떠안는 결정이 됩니다.
  • 어떤 유형이든, 환불은 스토어의 수수료를 고객에게 돌려주지만 당신의 지출은 결코 돌려주지 않습니다. 소비형이 이미 유발한 컴퓨팅, API 호출, 스토리지, 지급금은 사라진 채로 남습니다.

App Store Connect나 Play Console에서 고른 인앱 구매 유형은 상품이 어떻게 판매되는지 이상을 결정합니다. 환불이 발생했을 때의 동작, 그 후 고객이 무료로 그 아이템을 되찾을 수 있는지, 그리고 돈이 움직이기 전에 당신의 입장을 물어보는지를 결정합니다. 코인 팩, 평생 잠금 해제, 월간 구독, 일회성 시즌 패스는 네 가지 서로 다른 법적이자 기술적 대상이며, 환불 규칙도 그렇게 다룹니다. 대부분의 개발자는 그것들 전부를 같은 구매 코드로 출시한 다음, 왜 환불이 이토록 일관되지 않게 느껴지는지 의아해합니다. 일관되지 않은 것이 아닙니다. 유형별로 고유한 것입니다.

다음은 각 인앱 구매 유형이 무엇인지, 환불이 그것에 어떻게 작용하는지, 그리고 왜 넷 중 둘만이 결정을 당신의 서버로 거치게 하는지입니다.

네 가지 인앱 구매 유형과, 환불이 왜 그것들을 따라 갈라지는지

Apple은 네 가지 상품 유형을 정의합니다. 소비형은 다 쓰고 다시 사는 것입니다. 게임 화폐, 힌트, 에너지 충전. 비소비형은 한 번 사서 영원히 보유하는 것입니다. 프로 잠금 해제, 광고 제거 업그레이드, 다운로드 가능한 레벨 팩. 자동 갱신 구독은 고객이 해지할 때까지 반복 주기로 청구합니다. 비갱신 구독은 스스로 갱신되지 않는 고정 기간 동안 접근을 부여하며, 단일 기간으로 판매되는 한 시즌 분량의 콘텐츠 같은 것입니다.

Google Play는 같은 카탈로그를 다르게 분류하지만 같은 곳에 도달합니다. 상품을 일회성 상품과 구독으로 나누며, 일회성 상품이 소비형으로 표시되는지는 당신의 앱이 구매 후 그것을 소비하는지에 달려 있습니다. 단어는 다릅니다. 환불의 결과는 다르지 않습니다.

인앱 구매 유형환불 후 복원 가능 여부환불 시점의 가치Apple이 당신의 증거를 요구하는지
소비형아니요, 복원 불가보통 이미 소비됨예, CONSUMPTION_REQUEST
비소비형예, 계정에 연결됨여전히 보유, 권한 취소됨드묾
자동 갱신 구독예, 활성 상태인 동안경과 시간으로 안분예, WWDC24 이후
비갱신 구독당신의 앱이 복원해야 함기간이 일부 경과됨드묾

소비형이야말로 환불 사기가 실제로 노리는 유형

소비형은 당신이 마주할 가장 까다로운 환불 사례이며, Apple이 소비 요청을 그 주위에 만든 것이 바로 이 유형인 것은 우연이 아닙니다. 고객이 10,000 코인을 사고 당신의 서버가 그것을 지급하는 순간, 가치는 전달됩니다. 그들이 그 코인을 쓴 다음 환불을 신청하면, 스토어는 그들의 돈을 돌려줄 수 있지만 코인은 사라졌고 그것을 이행하기 위해 당신이 치른 비용도 마찬가지입니다. Apple 자체 도구도 이를 반영합니다. 소비형은 완료되면 거래 기록에서 벗어나며 취소 날짜를 결코 갖지 않습니다. 취소할 지속적인 것이 아무것도 없기 때문입니다.

바로 그래서 소비형은 증거가 보답하는 상품 유형입니다. 고객이 소비형에 환불을 요청하면, Apple은 당신의 서버에 CONSUMPTION_REQUEST를 보내고 Send Consumption Information 호출을 최대 12 hours 기다립니다. 그 호출에서 당신은 deliveryStatus를 설정하고, 전달했다면 consumptionPercentage를 설정합니다. 그 백분율은 milliunits로 표현되는 0에서 100,000까지의 정수이며, 100,000은 고객이 구매 전체를 사용했음을 의미합니다. 당신의 기록이 완전히 소비되었다고 보여주는 코인 잔액은 당신이 보고할 수 있는 100,000이며, 의도치 않은 구매 주장 앞에 내놓을 수 있는 가장 강력한 단일 사실입니다.

소비형은 복원할 수 없으므로, 타이밍이 전부

소비형은 복원할 수 없기 때문에, 구독을 취소하듯 되찾아 올 수 없습니다. 일단 환불이 승인되면, 당신의 유일한 보호는 판매 시점에 남긴 기록입니다. 전달과 소비가 일어났을 때 그것을 기록하지 않았다면, 당신은 12 hours의 시계 아래에서 그것을 재구성하게 되며, 그것은 데이터를 찾으러 가기에 최악의 순간입니다. 나갈 때가 아니라 들어올 때 기록하십시오.

구독은 당신이 통제할 수 없는 시계로 환불된다

자동 갱신 구독은 대부분의 앱이 돈을 버는 곳이며, WWDC24 환불 업데이트는 마침내 그것들을 소비형과 같은 증거 창으로 거치게 했습니다. App Store Server Notifications version 2.11 이후, 자동 갱신 구독에 대한 환불 요청도 CONSUMPTION_REQUEST를 발생시킵니다. 그래서 예전에는 완전히 당신 없이 결정되던 구독 환불이 이제는 12 hours의 창이 붙은 채 도착합니다.

함정은 소비가 어떻게 측정되는가입니다. 자동 갱신 구독에 대해 Apple은 당신이 사용률을 지어내기를 원하지 않습니다. Apple은 경과 시간으로부터 스스로 소비를 계산하므로, 연간 요금제에 여섯 달 들어간 사람은 당신이 무엇을 보내든 대략 절반 소비된 것으로 읽힙니다. 당신의 지렛대는 백분율이 아닙니다. GRANT_FULL, GRANT_PRORATED, 또는 DECLINE이라는 정직한 refundPreference이며, 당신이 실제로 가진 어떤 사용 신호로든 뒷받침된 것입니다. 증거가 지지하는 선호를 보내고 Apple이 저울질하게 하십시오.

비갱신 구독은 일회성 잠금 해제에 더 가깝다

비갱신 구독은 고객이 한 번 사는 고정 기간이며, 환불 관점에서는 자동 갱신 요금제보다 비소비형처럼 동작합니다. Apple은 그것에 CONSUMPTION_REQUEST를 거의 거치게 하지 않으며, 안분할 자동 갱신도 없습니다. 당신의 앱이 그 기간을 추적하고 고객의 기기 전반에 걸쳐 복원할 책임을 지므로, 환불은 당신 스스로 관리하던 접근 창을 끝내는 것을 의미하며, Apple이 당신을 위해 시간을 재던 창이 아닙니다.

비소비형은 영구적이며, 그것은 양날의 검

비소비형은 판매하기에 가장 깔끔한 것이자 환불 시의 조용한 함정입니다. 한 번 사이고, 고객의 스토어 계정에 영구히 연결되며, 스토어는 요청에 따라 어느 기기에나 그것을 복원할 수 있습니다. 그 영구성은 환불이 도착하기 전까지는 장점이지만, 이제 당신은 계정이 여전히 기억하는 권한을 취소해야 합니다. 당신의 취소 로직이 구매 시점에만 확인하고 결코 재검증하지 않는다면, 환불받은 고객은 구매를 복원하고 유료 기능으로 곧장 걸어 들어올 수 있습니다.

Google Play는 여기서 새 개발자를 걸려 넘어지게 하는 단단한 경계 하나를 더합니다. 당신의 앱이 72 hours 이내에 구매를 승인하지 않으면, Google은 자동으로 그것을 환불하고 권한을 취소합니다. 당신의 청구 코드가 승인하기를 잊은 비소비형은 붕 뜬 상태로 있지 않습니다. 그것은 스스로 되돌려지고, 고객은 자신의 어떤 요청도 없이 자기가 값을 치른 것에 대한 접근을 잃습니다.

스마트폰이 결제 확인을 표시하고 그 옆에 작은 동전 더미가 있으며 몇 개는 옆으로 쓸려 있어, 인앱 구매 유형마다 다른 규칙으로 환불되는 모습을 보여준다

애초에 누가 환불을 발행할 수 있는지가 스토어와 유형에 따라 달라진다

환불 대응을 계획하기 전에, 누가 펜을 쥐고 있는지 아십시오. App Store에서는 모든 상품 유형에 대해 오직 Apple만 인앱 구매 환불을 발행할 수 있습니다. 당신의 StoreKit 코드는 구매를 환불할 수 없고, 당신의 지원 데스크도 할 수 없습니다. 창을 여는 두 유형에 대해 소비 데이터를 보내 Apple의 결정에 영향을 줄 수 있으며, 그것이 당신 직접 통제의 전부입니다.

Google Play는 정반대입니다. 당신은 일회성 상품이나 구독 주문을 Play Console 또는 Voided Purchases와 환불 API에서 전액이든 일부든 직접 환불할 수 있습니다. 그 자유는 또한 책임입니다. 당신이 소비형에 발행한 환불도 여전히 당신 자신의 백엔드에서 그 아이템을 취소해야 합니다. 당신의 코인이 소비되었다는 것을 Google은 모르기 때문입니다. 당신이 고른 상품 유형이 그 취소가 얼마나 깔끔한지를 결정합니다.

각 환불 유형이 실제로 당신에게 얼마를 치르게 하는가

환불된 가격은 모두가 지켜보는 줄이자 청구서의 가장 작은 부분입니다. 어떤 스토어든 환불을 승인할 때 자기 수수료도 함께 되돌리므로, 당신은 정가 전액이 아니라 순수익을 잃습니다. 그것이 좋은 소식이고, 거기서 끝입니다. 스토어가 돌려주는 것은 그것이 가져간 몫입니다. 결코 돌려주지 않는 것은 당신이 판매를 이행하려고 이미 쓴 것이며, 그 숫자는 상품 유형에 따라 급격히 달라집니다.

소비형은 값비싼 환불

환불된 소비형은 그 가격보다 더 들 수 있는 것입니다. 어떤 고객이 5,000 크레딧을 사고, 각각이 유료 추론 호출을 유발하며, 그중 4,000을 쓴 다음 환불을 신청한다고 합시다. 스토어는 가격과 그 수수료를 돌려주지만, 컴퓨팅, 토큰당 API 청구, 당신이 생성한 이미지, 그리고 그 크레딧이 조달한 어떤 크리에이터 지급금도 전부 쓰였습니다. 비소비형 환불은 적어도 권한을 당신의 통제로 되끌어옵니다. 소비형 환불이 되끌어오는 것은 당신이 이미 전체 비용을 치른 판매입니다.

지불 거절은 같은 청구서의 더 무거운 버전

환불과 지불 거절은 다른 사건이며, 그 간극에는 이제 날짜가 붙어 있습니다. 고객이 스토어에 요청하는 대신 자기 은행에 그 청구를 이의 제기하면, 완료된 지불 거절은 은행 최종입니다. August 3 2026 당일 또는 이후에 이루어진 Google Play 주문에 대해, 패소한 지불 거절은 개발자에게 구매 가격에서 Play의 서비스 수수료를 뺀 금액에 더해 카드 네트워크가 정한 정액인 은행의 지불 거절 수수료를 청구합니다. Google Play는 orders.reviewrefund를 통해 24 hours의 창과 함께 지불 거절을 당신의 검토로 거치게 하며, 이는 당신의 증거를 요구하는 유일한 Google 흐름이고, 어떤 상품 유형에도 떨어질 수 있습니다.

유형이 규칙을 결정할 때 어떻게 대응할 것인가

판매 후에 환불이 어느 상품 유형에 떨어지는지는 바꿀 수 없지만, 넷 전부를 같은 방식으로 처리하는 것은 멈출 수 있습니다.

  • 소비형에 대해서는 전달과 소비가 일어나는 바로 그 순간에 그것들을 기록하십시오. 그 로그는 복원할 수 없는 유일한 유형에서 당신 방어의 전부이며, 12 hours의 창은 그것을 처음부터 만들기에 너무나 짧습니다.
  • 비소비형에 대해서는 구매 시점만이 아니라 환불 후에 권한을 재검증하십시오. 복원 호출은 현재 상태를 확인해야 하며, 그래야 환불받은 고객이 유료 기능으로 되걸어 들어올 수 없습니다.
  • 두 증거 창 모두에 자동으로 답하십시오. 12 hours의 소비 요청과 24 hours의 지불 거절 검토는 누군가 받은편지함을 읽기를 기다릴 수 없고, 시간대를 위해 연장되지도 않습니다.
  • 당신의 환불 방어는 다툴 수 있는 두 유형에 대해서만 판단하십시오. 결코 창을 열지 않은 유형에서 환불 수가 늘어나는 것은 당신 증거의 실패가 아니라 상품 또는 가격 신호입니다.

이 중 어느 것도 스토어를 이기는 것이 아닙니다. 실제로 판매된 대상에 당신의 대응을 맞추는 것입니다. RefundHalt는 소비형과 구독의 CONSUMPTION_REQUEST 및 Google Play의 orders.reviewrefund 검토에, 창 안에서, 판매 시점에 당신이 기록한 전달과 사용 증거와 함께 자동으로 답하고, 어떤 창도 당신에게 다투게 해주지 않은 환불을 그 자체 원장에 보관하므로, 당신이 스스로를 판단하는 그 숫자가 정직하게 유지됩니다.

자주 묻는 질문

인앱 구매를 제가 직접 환불할 수 있나요?
스토어에 따라 다릅니다. App Store에서는 모든 상품 유형에 대해 오직 Apple만 인앱 구매 환불을 발행할 수 있으므로, 당신의 유일한 영향력은 그것을 요구하는 두 흐름에서 보내는 소비 데이터입니다. Google Play에서는 일회성 상품이나 구독 주문을 Play Console 또는 환불 API에서 전액이든 일부든 직접 환불할 수 있습니다.
어떤 인앱 구매 유형이 환불 위험이 가장 높나요?
소비형입니다. 소비형은 전달 시점에 소비되고, 복원할 수 없으며, 그 가치는 보통 환불 요청이 도착하기 전에 사라집니다. 바로 그래서 Apple이 소비형에 대해 CONSUMPTION_REQUEST를 보내고 당신의 소비 데이터를 요구하는 것이며, 소비형 뒤에 있는 컴퓨팅이나 API 비용이 그 환불을 판매보다 더 들게 할 수 있는 것입니다.
Apple은 모든 구매 유형에 대해 소비 요청을 보내나요?
아니요. Apple은 소비형에 대해, 그리고 WWDC24 업데이트 이후로는 자동 갱신 구독에 대해 CONSUMPTION_REQUEST를 보냅니다. 비소비형과 비갱신 구독은 그 증거 창을 거의 열지 않습니다. 모든 유형에 대해, 환불 자체는 여전히 당신이 아니라 Apple이 결정합니다.
고객이 환불 후에 소비형을 복원할 수 있나요?
아니요. 소비형은 복원할 수 없으며, 그것이 그들의 환불을 당신에게 최종적으로 만드는 것입니다. 비소비형과 활성 구독은 고객의 스토어 계정에 연결되어 있고 복원할 수 있으므로, 그것들에 대한 환불은 권한을 취소해야 하며, 당신의 백엔드는 구매 시점을 신뢰하기보다 재검증해야 합니다.
구독 환불은 어떻게 다르게 계산되나요?
자동 갱신 구독에 대해 Apple은 당신이 보내는 백분율이 아니라 경과 시간으로 얼마나 소비되었는지 계산하므로, 기간의 절반은 대략 절반 소비된 것으로 읽힙니다. 당신의 역할은 지어낸 소비 숫자가 아니라, 당신이 가진 사용 증거로 뒷받침된 GRANT_FULL, GRANT_PRORATED, 또는 DECLINE이라는 정직한 refundPreference입니다.

출처 및 추가 자료

RefundHalt

App Store와 Google Play 환불 자동 처리

계속 읽기

다음 환불 요청은 이미 오고 있습니다.

이의를 제기하지 못한 환불에 관한 지원 이메일을 하나 더 읽는 시간이면 RefundHalt 설정을 마칠 수 있습니다.