치터를 밴해도 Apple이나 Google의 환불은 막을 수 없으니, 밴하기 전에 밴당한 플레이어의 환불에 대비해야 합니다
밴은 접근을 끝내지만 스토어의 환불 절차까지 끝내지는 않습니다. 밴당한 플레이어의 환불은 여전히 Apple이나 Google이 결정하고, 여러분이 낼 수 있는 증거에는 엄격한 한계가 있으며, 환불이 번복되면 회수한 것을 되돌려 줘야 할 수도 있습니다. 여러분이 통제할 수 있는 것과 그 비용을 정리했습니다.

핵심 요약
- 앱에서 플레이어를 밴해도 App Store나 Google Play 구매는 취소되지 않습니다. Apple과 Google은 여전히 자체 기준으로 환불을 결정하며, 밴당한 플레이어도 다른 고객처럼 어느 스토어에든 환불을 요청할 수 있습니다.
- App Store 고객이 환불을 요청하면 Apple은 CONSUMPTION_REQUEST를 보내고 12시간 안에 Send Consumption Information으로 응답하라고 요구합니다. 이 요청에는 밴, 부정행위 플래그, 약관 위반을 표시할 필드가 없습니다.
- customerConsented가 true가 아니면 Apple은 소비 데이터를 HTTP 400 InvalidCustomerConsentedError로 거부합니다. 따라서 증거를 보낼 수 있는 것은 소비 데이터 공유에 동의한 밴당한 플레이어뿐입니다.
- Apple의 REFUND_REVERSED 알림은 앱이 환불을 이유로 콘텐츠나 서비스를 회수했다면 이를 복원해야 한다고 명시합니다. 환불했다는 이유로 플레이어를 밴하는 정책과 정면으로 충돌합니다.
- Google Play에서는 개발자가 revoke를 true로 설정해 orders.refund를 호출하면 환불과 접근 종료를 한 번에 처리할 수 있습니다. 다만 3년이 지난 주문은 환불할 수 없고, 소비된 아이템은 직접 앱에서 처리해야 합니다.
- Google Play는 차지백에 대한 여러분의 입장을 24시간 안에 orders.reviewrefund로 제출하라고 요구합니다. 2026년 8월 3일 이후 주문의 경우 차지백에서 지면 구매 가격에서 Play 서비스 수수료를 뺀 금액에 더해 은행의 차지백 수수료까지 부담합니다.
플레이어를 밴하면 게임 접근은 끝나지만 구매에는 아무 영향이 없습니다. 보통 그다음에 오는 것이 밴당한 플레이어의 환불 요청이고, 그 요청은 여러분이 아니라 Apple이나 Google로 갑니다. 각 스토어는 자체 규칙에 따라 결정하며, 돈을 돌려 달라는 치터도 그 대기열에서는 또 하나의 환불 요청일 뿐입니다. 이 점을 전제로 밴을 설계하세요. 분쟁 전체에서 여러분이 완전히 통제할 수 있는 것은 밴 자체뿐이기 때문입니다.
밴과 환불은 서로 다른 결정입니다
계정은 여러분의 서비스 약관이 다스리고, 결제는 스토어의 규칙이 다스립니다. 밴은 누가 플레이할 수 있는지에 대한 여러분의 결정입니다. 환불은 돈을 돌려줄지에 대한 Apple이나 Google의 결정입니다. 어느 결정도 다른 결정을 무효로 만들지 않으며, 스토어는 결정을 내리기 전에 여러분이 누군가를 밴했는지 묻지도 않습니다.
대형 퍼블리셔들도 이를 분명히 말합니다. Riot의 Wild Rift 고객지원 페이지는 서드파티 앱 마켓의 특성상 Riot이 직접 스토어 환불을 해 줄 수 없으며, Apple, Google, Samsung이 환불을 거부하면 Riot이 더 할 수 있는 일은 없다고 플레이어에게 안내합니다. 모든 모바일 개발자가 같은 입장입니다. 스토어의 결정에 영향을 줄 수 있는 곳은 두 군데뿐이고, 그것도 스토어가 요청할 때만 가능합니다.
| 환불 경로 | 결정 주체 | 증거 제출 가능 여부 | 여러분의 기한 |
|---|---|---|---|
| App Store 환불 요청 | Apple | 가능. CONSUMPTION_REQUEST를 받은 뒤 Send Consumption Information으로 제출 | 12시간 |
| 구매 후 48시간 이내 Google Play 환불 | 불가 | 없음 | |
| 구매 후 48시간이 지난 Google Play 환불 | 여러분. 자체 정책과 현지 법률에 따름 | 해당 없음 | 해당 없음 |
| 개발자 검토가 필요한 Google Play 차지백 | Google, 이후 은행 | 가능. orders.reviewrefund로 제출 | 24시간 |
| App Store 구매에 대한 카드 차지백 | Apple과 은행 | 불가 | 없음 |
밴당한 플레이어에 대해 Apple에 알릴 수 있는 것
고객이 소모품부터 자동 갱신 구독까지 어떤 유형의 상품이든 환불을 요청하면 Apple은 CONSUMPTION_REQUEST 알림을 보냅니다. Send Consumption Information으로 답할 수 있는 시간은 12시간입니다. Apple은 이 정보를 다른 요소와 함께 결정에 참고하며, 여러분의 refundPreference도 그중 하나라고 설명합니다.
요청 본문은 작습니다. customerConsented, consumptionPercentage, deliveryStatus, refundPreference, sampleContentProvided가 전부입니다. 그 어디에도 플레이어의 행동을 설명하는 항목이 없으므로, 계정을 부정행위로 밴했다고 Apple에 알릴 수 없습니다. Apple에 알릴 수 있는 것은 구매가 얼마나 사용되었는지, 그리고 환불이 거절되기를 원하는지입니다.
deliveryStatus에는 '밴됨'이라는 값이 없습니다
Apple은 deliveryStatus를 앱이 제대로 작동하는 In-App Purchase를 제공했는지 여부로 정의합니다. 값은 DELIVERED, UNDELIVERED_QUALITY_ISSUE, UNDELIVERED_WRONG_ITEM, UNDELIVERED_SERVER_OUTAGE, UNDELIVERED_OTHER입니다. 상태가 DELIVERED가 아니면 Apple은 consumptionPercentage를 0으로 요구하며, 그렇지 않으면 요청이 실패합니다. 밴당한 플레이어의 구매를 미제공으로 보고하기 전에 신중히 생각하세요. 고객이 아무것도 받지 못했다고 Apple에 알리는 것이고, 이는 환불을 뒷받침하는 가장 강력한 근거가 됩니다.
애초에 답할 수 있는지는 동의가 결정합니다
customerConsented가 true가 아니면 Apple 서버는 ConsumptionRequest를 HTTP 400 InvalidCustomerConsentedError로 거부합니다. Apple 문서는 동의 요청에 들어가야 할 내용도 설명합니다. 예를 들어 고객의 데이터가 환불 검토를 위해 Apple로 전달된다는 점과 고객이 동의를 철회할 수 있다는 점을 명확히 알리는 문구입니다. 한 번도 동의하지 않았거나 동의를 철회한 플레이어에 대해서는 보낼 수 있는 것이 없습니다. 동의는 밴한 뒤가 아니라 가입할 때 받으세요.
Apple이 환불을 번복하면 어떻게 되나요
Apple의 REFUND_REVERSED 알림은 고객이 제기한 분쟁 때문에 App Store가 이미 승인한 환불을 번복했다는 뜻입니다. Apple 문서는 구체적입니다. 앱이 환불을 이유로 콘텐츠나 서비스를 회수했다면 이를 복원해야 한다는 것입니다. 따라서 환불한 사람을 모두 밴하는 규칙에는 되돌리는 경로가 필요합니다. 밴을 환불 이벤트에 연결해 두면 번복이 일어났을 때 깔끔하게 해제할 수 있습니다.

Google Play에서 할 수 있는 일
Google의 환불 페이지는 인앱 구매 후 48시간 이내라면 상황에 따라 환불받을 수 있고, 48시간이 지나면 개발자에게 연락하라고 구매자에게 안내합니다. 또한 같은 아이템은 한 번만 환불받을 수 있으며 환불된 아이템은 구매자에게서 삭제된다고 설명합니다. 따라서 밴당한 플레이어가 처음 48시간 안에 Google에 요청하면 Google이 결정합니다. 그 이후의 요청은 여러분에게 옵니다.
직접 환불하고 구매를 회수하기
Google의 orders.refund 메서드는 구독이나 인앱 주문을 환불합니다. revoke를 true로 설정하면 아이템 접근이 즉시 종료되고 정기 구독도 더 이상 갱신되지 않습니다. Google은 두 가지 제한을 덧붙입니다. 3년이 지난 주문은 환불할 수 없고, 소비된 인앱 아이템은 앱에서 처리해야 합니다. 플레이어가 이미 쓴 재화를 Google이 되찾을 수는 없기 때문입니다. 밴당한 플레이어에게 환불해서 문제를 마무리하기로 했다면, 아이템을 계속 갖지 못하도록 같은 호출에서 revoke하세요.
밴한 계정의 구매는 즉시 거부하기
클라이언트에 아직 스토어가 표시된다면 밴당한 플레이어가 다시 구매하는 것은 실제 위험입니다. Google 결제 가이드는 구매가 여러분의 자격, 사기, 악용 검사를 통과하지 못하면 이를 지급하지도, 확인(acknowledge)하지도 말라고 합니다. 3일간의 확인 기한이 지나도록 기다리면 기술적으로는 주문이 환불되지만, Google은 이에 의존하지 말라고 합니다. 대신 API로 회수하고 환불하세요. 구독은 purchases.subscriptionsv2.revoke로 전액 환불하고, 일회성 상품은 revoke를 true로 설정해 orders.refund를 호출합니다.
차지백 검토에는 24시간 안에 응답하기
Google Play 차지백에 개발자 검토가 필요하면 Google은 PendingRefundReviewNotification을 보내고 orders.reviewrefund를 호출할 시간으로 24시간을 줍니다. Google은 첫 번째 호출만 기록합니다. 본문에는 DECLINE, APPROVE, NEUTRAL 중 하나인 refundPreference, sampleContentProvided 플래그, 선택 항목인 consumptionPercentageMilliunits 값, 최대 1,000개의 consumptionUsageEvents를 넣을 수 있고, 각 이벤트에는 obfuscatedAccountId, 소비 시각, 사용한 내용에 대한 설명을 담을 수 있습니다. 밴 이전에 기록된 사용 이벤트가 곧 증거입니다. 밴 이후의 이벤트는 존재하지 않으니, 계정을 닫을 때도 기록은 보관하세요.
밴당한 플레이어의 환불에 드는 실제 비용
밴 자체에는 비용이 들지 않습니다. 하지만 뒤따르는 환불은 세 가지 방식으로 비용을 만듭니다. 첫째, 그 구매로 번 수익이 이후 정산금에서 빠져나갑니다. 둘째, 그 구매로 이미 발생한 비용은 그대로 남습니다. 셋째, Google Play에서는 이제 차지백에서 지면 은행 수수료까지 더해집니다.
- 컴퓨팅: 플레이어가 환불된 구매로 진행한 모든 매치, 세션, 서버 측 시뮬레이션은 여러분이 이미 비용을 낸 용량입니다.
- API 호출: 안티치트 검사, 매치메이킹 호출, 요청 단위로 과금되는 서드파티 서비스는 밴 이전에 이미 소비되었습니다.
- 스토리지: 밴 증거로 보관하는 인벤토리, 리플레이, 로그는 보관하는 동안 계속 비용이 듭니다.
- 지급금: 플레이어의 구매가 상금, 크리에이터 수익 배분, 제휴 수수료의 재원이었다면 그 돈은 이미 여러분의 계좌를 떠났고 환불과 함께 돌아오지 않습니다.
환불을 요청한 플레이어를 밴해야 할까요?
비슷한 방식을 쓰는 게임은 많습니다. Riot의 고객지원 페이지는 잔액이 마이너스가 되어 밴당한 Wild Rift 플레이어에게 차지백 처리 절차를 따르면 게임에 복귀할 수 있다고 안내합니다. 취소된 결제분을 잠그는 것은 정당화할 수 있습니다. 하지만 환불한 사람을 모두 일괄 밴하는 것은 정당화하기 어렵고, 소비자 규제 기관도 이를 주목하고 있습니다.
2017년 7월 한국소비자원은 Niantic에 불공정하다고 판단한 Pokémon GO 약관의 시정을 요청했으며, 여기에는 환불 없이 계정을 해지하는 조항도 포함되었습니다. 한국소비자원은 이런 관행이 구매를 취소할 수 있는 소비자의 법적 권리를 침해할 수 있다고 밝혔습니다. 규제 기관 한 곳, 사례 하나에 불과하지만 "밴했으니 모든 것을 잃는다"는 방식에 이의가 제기될 수 있다는 분명한 신호입니다.
환불 요청이 와도 흔들리지 않는 밴 체크리스트
- 필요해지기 전에 구매별 소비 내역을 타임스탬프와 함께 기록하세요. Apple과 Google이 묻는 것은 행동이 아니라 사용 내역입니다.
- 소비 데이터 공유 동의를 가입 시점에 받아, 밴당한 플레이어의 CONSUMPTION_REQUEST에도 응답할 수 있게 하세요.
- deliveryStatus는 정직하게 보고하세요. 나중에 계정을 밴했다고 해서 제공된 아이템을 미제공으로 보고하지 마세요.
- 밴한 계정의 구매 및 사용 기록은 계정과 함께 삭제하지 말고 보관하세요.
- 밴한 계정의 신규 스토어 구매를 차단하고, 빠져나간 구매는 환불하고 회수하세요.
- 밴 기록을 환불 이벤트에 연결해 두어, REFUND_REVERSED가 오면 환불로 회수한 것을 정확히 복원할 수 있게 하세요.
자주 묻는 질문
- 밴당한 플레이어도 Apple이나 Google에서 환불을 받을 수 있나요?
- 네. 앱 안에서의 밴은 스토어에서 플레이어의 지위를 바꾸지 않습니다. App Store 환불은 Apple이, 48시간 이내에 요청된 Play 환불은 Google이 결정하며, 플레이어는 은행에 결제 이의를 제기할 수도 있습니다. 여러분이 의견을 낼 수 있는 것은 Apple이 CONSUMPTION_REQUEST를 보내거나 Google이 차지백 검토를 요청할 때뿐입니다.
- 부정행위로 플레이어를 밴했다고 Apple에 알릴 수 있나요?
- 아니요. Apple의 ConsumptionRequest에는 customerConsented, consumptionPercentage, deliveryStatus, refundPreference, sampleContentProvided의 다섯 필드가 있습니다. 그중 어느 것도 플레이어의 행동을 설명하지 않습니다. 구매가 얼마나 사용되었는지 보고하고 refundPreference를 DECLINE으로 설정할 수는 있으며, Apple은 이 선호를 여러 요소 중 하나로 취급합니다.
- Google Play에서 밴당한 플레이어에게 직접 환불해야 하나요?
- 그렇게 할 수 있습니다. 그렇게 한다면 revoke를 true로 설정해 orders.refund를 호출해서 환불과 접근 상실이 함께 일어나게 하세요. Google은 3년이 지난 주문은 환불하지 않으며, 플레이어가 이미 소비한 재화는 Google이 되찾을 수 없으므로 앱에서 처리해야 합니다.
- Apple이 환불을 번복하면 밴은 어떻게 되나요?
- Apple은 REFUND_REVERSED 알림을 보내며, 앱이 환불을 이유로 회수한 콘텐츠나 서비스를 복원해야 한다고 말합니다. 환불이 계정을 제한한 유일한 이유였다면 그 제한은 해제하세요. 부정행위로 인한 밴은 그 자체로 유효하며 환불과 연결되어 있지 않습니다.
- 환불을 요청한 플레이어를 밴하는 것은 합법인가요?
- 플레이어가 어디에 있는지에 따라 다르며, 보기보다 위험합니다. 2017년 한국소비자원은 환불 없이 Pokémon GO 계정을 해지하는 것이 구매를 취소할 수 있는 소비자의 법적 권리를 침해할 수 있다고 밝혔습니다. 환불된 아이템을 회수하는 것은 흔한 관행입니다. 환불 요청 자체를 처벌하면 그런 이의 제기를 부르게 됩니다.
출처 및 추가 자료
- App Store Server API: Send Consumption Information
- App Store Server API: ConsumptionRequest
- App Store Server Notifications: notificationType
- Google Play Developer API: orders.refund
- Google Play Developer API: orders.reviewrefund
- Google Play Billing: Integrate the library, handle rejected or unfulfilled purchases
- Google Play Help: Apps, games, and in-app purchases refund policies
- Play Console Help: Updates to refund protection and chargeback cost responsibility
- Riot Games Support: Cash refunds in Wild Rift
- Korea JoongAng Daily: Pokemon Go panned for unfair refunds policy (July 3, 2017)
RefundHalt
App Store와 Google Play 환불 자동 처리
계속 읽기
과도한 환불 요청은 환불액보다 더 큰 손실을 부릅니다. 두 앱 스토어 모두 이를 품질 신호로 보기 때문입니다
Apple 가이드라인 5.6.4는 과도한 환불 요청을 앱이 품질 기준에 미달한다는 징후로 꼽고, Google의 개발자 배포 계약은 환불률을 근거로 신규 개발자의 앱을 삭제할 수 있게 합니다. 각 스토어가 무엇이라고 규정하는지, 삭제되면 무엇을 잃는지, 위험을 어떻게 피하는지 정리했습니다.
환불을 처리하기 전에 App Store 서버 알림을 검증하세요. 누구나 웹훅 URL로 요청을 보낼 수 있습니다
환불 알림은 서명을 확인하기 전까지는 하나의 HTTPS 요청에 불과합니다. App Store 서버 알림과 Google Play RTDN 메시지를 검증하는 방법, 각 스토어가 무엇에 서명하는지, 그리고 위조된 환불이나 잘못 거부된 환불이 어떤 비용을 초래하는지 설명합니다.