모든 글
Deep dive8분 소요

비소모성 환불은 실제로 되돌릴 수 있는 드문 환불이라, 평생 잠금 해제는 당신에게 가격만 잃게 하고 그 이상은 아니다

평생 잠금 해제, 광고 제거 업그레이드, 또는 영구 프로 등급에 대한 비소모성 환불은 기능을 되찾을 수 있으므로 당신이 진정으로 되돌릴 수 있는 유일한 환불입니다. 여기서는 App Store와 Google Play에서의 비용, Apple이 왜 결코 당신에게 먼저 묻지 않는지, 그리고 revoke를 확실히 적용하는 방법을 설명합니다.

열린 황동 자물쇠 옆에 영수증과 열쇠 하나가 놓여, 개발자가 잠금 해제된 기능을 되찾는 비소모성 환불을 나타낸다

핵심 요약

  • 비소모성은 고객이 영구히 보유하는 일회성 구매로, 광고 제거, 평생 프로 잠금 해제, 영구 기능 등입니다. 소모성과 달리 전달 시 아무것도 소진되지 않으므로, 비소모성 환불은 돈을 돌려주는 동시에 기능을 되찾을 수 있는 유일한 환불입니다.
  • 그래서 비소모성 환불은 당신이 맞닥뜨릴 가장 깔끔한 손실이 됩니다. 잃는 것은 판매 가격이고 스토어는 자신의 수수료를 되돌리지만, 연산도 API 호출도 없고, 돈을 냈으나 되찾을 수 없는 전달된 결과물도 없습니다. 손실은 가격 범위로 한정됩니다.
  • 문제는 가격입니다. 평생 잠금 해제는 보통 당신의 단가가 가장 높은 상품으로, 흔히 월 구독의 10배에서 30배에 이르므로, 한 건의 비소모성 환불은 당신 계정의 거의 어떤 다른 환불보다 큰 단일 타격입니다.
  • App Store에서 Apple은 reportaproblem.apple.com을 통해 모든 비소모성 환불을 단독으로 결정하며, 비소모성에는 CONSUMPTION_REQUEST가 없습니다. Apple은 그 증거 요청을 소모성과 자동 갱신 구독에만 보내므로, 비소모성에서는 반론할 기간도 증거 경로도 전혀 없습니다.
  • 그래도 Apple은 그것이 일어났음을 알려줍니다. REFUND App Store Server Notification은 소모성, 비소모성, 비갱신 구독에 대해 발생하며, 서명된 트랜잭션에는 revocationDate와 revocationReason이 담깁니다. StoreKit도 그 상품을 Transaction.currentEntitlements에서 제거하는데, 이것이 기능을 끄라는 신호입니다.
  • Google Play에서는 Play Console 또는 orders.refund API로 비소모성을 직접 환불할 수 있고, revoke를 true로 설정하면 접근이 즉시 종료됩니다. Google 자체의 48시간 셀프서비스 환불은 당신에게 묻지 않고 실행되며, 확인되지 않은 일회성 구매는 3일 후 자동으로 환불되고 취소됩니다.
  • 함정은 접근을 클라이언트에서 통제하는 것입니다. 환불된 비소모성이 캐시된 영수증이나 클라이언트에만 있는 플래그에서 여전히 소유됨으로 표시되면, 고객은 돈이 나간 뒤에도 기능을 보유하고, 당신은 가격을 잃으면서도 잠금 해제를 계속 제공합니다. 취소에 비추어, 실행할 때마다 서버에서 권리를 검증하세요.

평생 잠금 해제, 광고 제거 업그레이드, 또는 영구 프로 등급을 판매하면 당신은 비소모성을 파는 것이며, 이것은 환불이 당신이 준 것을 진정으로 되돌릴 수 있는 유일한 구매입니다. 소모성 환불은 코인이나 크레딧을 전달하느라 이미 쓴 돈을 되찾는 것입니다. 구독 환불은 어차피 임대하고 있던 접근을 되돌리는 것입니다. 비소모성 환불은 다르며, 좁은 의미에서 그것은 당신이 얻을 가장 너그러운 환불입니다. 고객은 아무것도 남기지 않습니다. 당신은 가격을 돌려주고 기능을 되찾으며, 소모성과 달리 당신 쪽 장부에 남는 연산 청구서가 없습니다. 이것이 좋은 소식입니다. 나쁜 소식은 비소모성이 보통 당신이 파는 것 중 단품으로 가장 비싸다는 것이며, 그래서 깔끔하게 되돌릴 수 있는 그 유일한 환불이 동시에 가장 큰 것 중 하나이기도 합니다.

비소모성이란 무엇이며, 왜 그 환불은 다르게 작동하는가

스토어는 모든 구매를 유형으로 분류하고, 그 유형이 환불로 되돌릴 수 있는 것과 없는 것을 정합니다. 비소모성은 소모성의 반대편 끝에 있습니다.

비소모성은 한 번 사서 영구히 보유한다

비소모성 인앱 구매는 영구 권리입니다. 고객은 한 번 구매하면 계정의 존속 기간 내내 그것을 소유합니다. 광고 제거, 평생 프로 등급, 정식 버전 잠금 해제, 영구 기능 팩 등입니다. Apple은 고객의 각 기기 간에 그것을 무료로 복원하고, Google Play는 그것을 계정에 연결합니다. 갱신도 만료도 없으므로 가치는 시간에 걸쳐 계량되지도, 사용 시 소진되지도 않습니다. 그저 켜지고 켜진 채로 있습니다.

전달 시 아무것도 쓰이지 않으므로, 환불은 그것을 깔끔하게 되돌릴 수 있다

이것이 비소모성 환불이 다른 이유의 전부입니다. 코인 팩을 전달하면 코인은 쓰이고 당신의 연산 청구서는 실재하며 이미 나갔습니다. 비소모성을 전달할 때는 플래그 하나를 뒤집습니다. 그 판매에 묶인 사용당 비용이 없으므로, 돈이 되돌아올 때 플래그를 다시 뒤집으면 거의 온전할 수 있습니다. 스토어도 도와줍니다. 두 플랫폼 모두에서 환불된 비소모성은 취소되고, 고객은 접근을 잃으며, 다시 구매해 두 번째 환불을 받을 수 없습니다.

비소모성 환불이 실제로 당신에게 물리는 비용

당신의 보고서에 나타나는 숫자는 되나가는 판매 가격입니다. 비소모성에서 그 숫자는 이야기의 거의 전부이며, 이것이 바로 판매 가격이 손실의 시작에 불과한 소모성과 다른 점입니다.

비용언제 지불하는가환불 시 되돌아오는가
구매 가격구매 시아니요, 전액이 고객에게 되돌아감
그 판매에 대한 스토어 수수료구매 시보통 예, 스토어가 자기 몫을 되돌림
잠금 해제를 전달하기 위한 연산이나 API 호출없음, 플래그를 뒤집을 뿐되찾을 것도 없고 잃을 것도 없음
기능 자체당신이 접근을 부여함예, revoke가 그것을 되찾음
은행 지불 거절 수수료, 분쟁이 은행으로 가면청구 후아니요, 게다가 Google Play에서는 이제 당신도 그것을 지불함

손실은 가격이고, 그 가격이 바로 문제다

발이 묶일 이행 비용이 없으므로, 비소모성 환불은 당신에게 판매 가격을 물리고 그 밖에는 거의 없습니다. 골칫거리는 규모입니다. 월 구독 환불은 몇 달러를 되돌립니다. 평생 잠금 해제는 흔히 30, 60 또는 120달러로 값이 매겨지는데, 바로 고객이 한 번만 지불하기 때문이며, 그래서 한 건의 비소모성 환불이 다른 사용자의 1년치 구독 수익과 맞먹을 수 있습니다. 그것들을 보는 횟수는 구독 환불보다 훨씬 적겠지만, 한 건 한 건의 착지는 더 무겁고, 소수의 평생 환불 무리가 이탈이 잦은 한 달을 능가할 수 있습니다.

두 손이 테이블 너머로 작은 황동 열쇠를 되돌려 주고 동시에 돈이 반대 방향으로 미끄러져 되돌아가, 기능이 회수되고 가격이 반환되는 비소모성 환불을 나타낸다

App Store 쪽, Apple이 결코 당신에게 먼저 묻지 않는 곳

App Store에는 당신을 위한 환불 스위치가 없고, 비소모성에 대해서는 증거 경로도 없습니다. 이 두 가지는 정확히 짚어둘 가치가 있는데, 두 번째 것이 소비 흐름이 모든 것을 아우른다고 여긴 개발자들을 놀라게 하기 때문입니다.

비소모성에는 CONSUMPTION_REQUEST가 없다

Apple은 모든 환불을 스스로, 한 번에 한 요청씩, reportaproblem.apple.com을 통해 결정합니다. 소모성에 대해, 그리고 2024년부터는 자동 갱신 구독에 대해, Apple은 당신의 서버에 CONSUMPTION_REQUEST를 보내고 소비 정보를 되돌려 보낼 12시간을 줍니다. 비소모성에는 그중 아무것도 없습니다. 소비 요청도, 12시간 기간도, 채워 넣을 항목도 없는데, Apple이 영구 잠금 해제를 소유했거나 아니거나로만 취급하며 측정할 것이 없기 때문입니다. 비소모성 환불에서 당신에게 발언권은 없습니다. 당신이 얻는 것은 통지입니다.

REFUND 통지가 그것이 일어났음을 아는 수단이다

당신이 실제로 얻는 것은 REFUND App Store Server Notification입니다. Apple은 그것을 소모성, 비소모성, 비갱신 구독에 대해 보내며, 그 안의 서명된 트랜잭션에는 환불의 타임스탬프인 revocationDate와 revocationReason이 담깁니다. StoreKit은 같은 사실을 기기에서 드러냅니다. 환불된 상품은 Transaction.currentEntitlements에서 빠지고, StoreKit은 당신의 권리 취소 핸들러를 호출하여 앱이 기능을 끌 수 있게 합니다. 통지를 트리거로, 권리 확인을 진실의 원천으로 다루세요. revocationDate가 설정되면 잠금 해제는 끝입니다.

Google Play 쪽, 당신이 환불할 수 있지만 가장 빠른 경로는 당신을 건너뛴다

Google Play는 Apple보다 개발자에게 더 직접적인 통제권을 주지만, 가장 아픈 환불은 여전히 당신 없이 일어납니다.

당신은 비소모성을 직접 환불하고 취소할 수 있다

당신은 Play Console에서, 또는 Play Developer API의 orders.refund 메서드로, 3년 미만의 어떤 주문에 대해서든 비소모성 환불을 발행할 수 있습니다. 그 호출은 revoke 매개변수를 받으며, 그것을 true로 설정하면 그 인앱 항목에 대한 접근이 즉시 종료됩니다. 그러면 Google Play는 고객이 더 이상 그 상품을 소유하지 않는 것으로 취급하고, 환불된 앱을 제거하며, 같은 항목에서 재구매 후 환불하는 반복을 차단합니다. 이곳이 당신이 깔끔한 레버를 가진 유일한 곳입니다. 환불에 revoke를 더하면 영구 잠금 해제를 실제로 되찾습니다.

48시간과 3일 경로는 당신 없이 진행된다

비소모성에 대한 두 가지 Google Play 환불은 당신의 입력 없이 일어납니다. 구매 후 48시간 이내에 고객은 스토어에서 바로 셀프서비스 환불을 받을 수 있고, 당신은 요청받지 않습니다. 별개로, 당신의 서버가 3일 이내에 구매를 한 번도 확인하지 않으면, Google Play는 고객이 지불했으나 상품을 받지 못했다는 전제로 자동으로 그것을 환불하고 취소합니다. 이 둘 다 당신이 판단하기 전에 결정되며, Voided Purchases API는 당신이 권리를 내려놓을 수 있도록 사후에 그것을 알아내는 수단입니다.

비소모성이 지불 거절이 될 때, 돈으로 무엇을 의미하는가

환불은 비소모성 판매를 잃는 값싼 버전입니다. 지불 거절은 비싼 버전이며, 평생 가격에서 둘의 격차는 큽니다.

분쟁 경로는 비용은 더 들고 되돌아오는 것은 더 적다

고객이 스토어 대신 은행으로 가면 판매는 지불 거절로 되돌아오고, 지불 거절은 최종적입니다. App Store에서는 비소모성을 방어할 소비 기간이 없으므로 제출할 것이 없습니다. Google Play에서는 2026년 8월 3일부터, 지불 거절이 구매 가격에서 Play의 서비스 수수료를 뺀 금액에 은행의 지불 거절 수수료를 더한 것을 개발자에게 넘기는 한편, Google은 자신의 서비스 수수료를 계속 부담합니다. 90달러짜리 평생 잠금 해제에서 이것은, 당신이 흡수할 수 있었던 깔끔한 환불을, 은행 수수료가 붙은 더 크고 최종적인 손실로 바꿉니다.

불만인 고객을 환불 레인에 붙잡아 두라

교훈은 모든 스토어가 당신을 밀어붙이는 방향과 같습니다. 환불은 판매를 되돌리고 보통 수수료를 반환하지만, 지불 거절은 둘 다 하지 않고 수수료를 더합니다. 수월한 환불을 받을 수 있는 고객이 은행에 전화하는 일은 드뭅니다. Google Play에서는 24시간 이내에 orders.reviewrefund를 통해 지불 거절 심사에 응답할 수 있고, Google은 거래 세부 정보를 공유하는 Review Refund API를 제공하여 당신을 대신해 사기성 분쟁에 이의를 제기할 수 있게 합니다. 그것을 쓰되 의존하지는 마세요. 더 값싼 수는 분쟁이 시작되기 전에 정직한 환불을 쉽게 만드는 것입니다.

비소모성 환불에서 손실을 줄이는 방법

영구 잠금 해제를 스토어가 환불하는 것을 막을 수는 없습니다. 할 수 있는 것은, 스토어가 환불할 때 당신이 실제로 기능을 되찾고 패턴을 볼 수 있게 하는 것입니다.

서버에서, 실행할 때마다 권리를 검증하라

접근은 캐시된 영수증이나 구매 시 한 번 쓰인 클라이언트 플래그가 아니라, 현재 트랜잭션 상태에 비춘 서버 확인으로 판단하세요. REFUND 통지가 도착하거나, 권리가 사라지거나, Google Play에서 revoke가 설정되면, 당신 쪽에서 기능을 끄세요. 환불되었는데도 여전히 작동하는 비소모성이, 가장 깔끔한 환불이 순수한 손실이 되는 유일한 경우입니다.

평생 및 일회성 상품을 그 자체의 코호트로 지켜보라

비소모성 환불은 드물지만 크기 때문에, 뒤섞인 환불률 안에서 사라집니다. 그것들을 상품별로, 단독으로 추적하세요. 한 평생 등급에서의 무리는 보통 무언가 구체적인 것을 가리킵니다. 가치를 앞질러 간 가격, 업데이트 후 망가진 기능, 또는 잠금 해제가 제공하는 것 이상을 약속한 스토어 등재입니다. 비소모성 환불을 비소모성 판매에 비추어 읽으면 원인은 보통 쉽게 짚어낼 수 있습니다.

빠르게 확인하고, 정당한 환불을 깔끔하게 이행하라

3일 자동 환불을 실수로 유발하지 않도록 모든 구매를 제때 확인하고, 환불이 정당할 때는 불만이 쌓인 고객이 은행으로 확대하게 두는 대신 마찰 없이 기능을 되찾으세요. 환불이 더 작은 손실입니다. 지불 거절이 수수료를 짊어진 쪽입니다.

짧은 버전

비소모성 환불은 당신이 실제로 되돌릴 수 있는 드문 환불입니다. 영구 잠금 해제는 전달하는 데 아무 비용도 들지 않고 곧바로 되찾을 수 있기 때문입니다. 당신은 가격을 잃고, 스토어는 자기 몫을 되돌리며, 소모성처럼 발이 묶인 연산 청구서는 없습니다. 복잡한 점은 평생 잠금 해제가 보통 당신의 가장 비싼 상품이라 환불 한 건 한 건이 큰 단일 타격이라는 것, Apple이 당신이 응답할 소비 요청 없이 그것을 단독으로 결정한다는 것, 그리고 Google Play가 48시간 이내나 3일 확인 시점에 당신 없이 그것을 환불한다는 것입니다. 당신의 서버에서 권리를 검증하고, 깔끔하게 revoke하고, 빠르게 확인하고, 불만인 고객을 지불 거절 레인이 아니라 환불 레인에 붙잡아 두세요.

자주 묻는 질문

비소모성 인앱 구매를 제가 직접 환불할 수 있나요?
Google Play에서는 가능합니다. 3년 미만의 어떤 주문에 대해서든 Play Console 또는 orders.refund API로 비소모성을 환불할 수 있고, revoke 매개변수를 true로 설정하면 접근이 즉시 종료됩니다. App Store에서는 불가능합니다. Apple은 reportaproblem.apple.com을 통해 모든 환불을 결정하며, 비소모성에는 CONSUMPTION_REQUEST가 없으므로 증거 기간이 전혀 없습니다.
Apple이 비소모성 환불에 CONSUMPTION_REQUEST를 보내나요?
아니요. Apple은 CONSUMPTION_REQUEST를 소모성과, 2024년부터는 자동 갱신 구독에만 보냅니다. 비소모성에는 소비 요청도 12시간 기간도 없는데, Apple이 영구 잠금 해제를 단순히 소유했거나 아니거나로 취급하기 때문입니다. 당신은 환불을 응답해야 할 요청이 아니라, REFUND App Store Server Notification과 트랜잭션의 revocationDate를 통해 알게 됩니다.
고객의 비소모성이 환불되었는지 어떻게 아나요?
App Store에서는 REFUND 통지가 발생하고 서명된 트랜잭션에 revocationDate와 revocationReason이 담기며, StoreKit은 상품을 Transaction.currentEntitlements에서 제거합니다. Google Play에서는 Voided Purchases API가 그것을 보고하고 실시간 알림이 취소를 표시합니다. 두 경우 모두, 당신의 서버에서 권리를 확인하고 구매가 취소되면 기능을 끄세요.
비소모성 환불에서 돈을 깔끔하게 돌려받나요?
다른 어떤 환불 유형보다 깔끔하게 받습니다. 구매 가격은 고객에게 되돌아가고 스토어는 보통 그 수수료를 반환하지만, 비소모성은 전달하는 데 아무 비용도 들지 않으므로 소모성처럼 연산이나 API 청구가 당신 쪽에 발이 묶이지 않습니다. 실제로 기능을 취소하기만 하면, 당신의 손실은 본질적으로 판매 가격입니다.
Google Play에서 비소모성 구매를 확인하지 않으면 어떻게 되나요?
3일 이내에 확인하지 않으면, Google Play는 고객이 지불했으나 항목을 받지 못했다는 전제로 그 구매를 자동으로 환불하고 취소합니다. 구매를 검증하는 즉시 당신의 서버에서 purchases.products.acknowledge를 호출하여, 의도하지 않은 환불을 결코 유발하지 않도록 하세요.

출처 및 추가 자료

RefundHalt

App Store와 Google Play 환불 자동 처리

계속 읽기

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

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