앱 개발자를 위한 환불 구조, 스토어 정책 변경, 수익 보호 전략을 다룹니다.
아이가 부모의 휴대폰에서 코인 팩을 구매하면 Apple과 Google 모두 그것을 환불하며, 어느 쪽도 먼저 개발자에게 묻지 않습니다. 규제 당국이 그렇게 만들도록 했기 때문입니다. 이러한 무단 인앱 결제 환불이 각 스토어에서 어떻게 처리되는지, 돈이 오가는 15분의 창, 그리고 실제로 얼마의 손실이 되는지 설명합니다.
글 읽기
앱 내 구매를 환불하면 영수증에는 가격과 세금이 함께 돌아가는 것으로 표시됩니다. 그 세금은 애초에 당신의 돈이 아니었습니다. Apple 과 Google 이 merchant of record 로서 이를 징수하고 납부하며, 환불 시 당신의 몫에는 손대지 않고 되돌립니다. 환불이 실제로 얼마의 비용인지, 그리고 세금이 당신의 것이 되는 유일한 설정을 설명합니다.
고객이 상위 등급으로 옮기면 스토어는 이전 요금제의 사용하지 않은 날짜에 대해 구독 업그레이드 환불을 발생시키고, 당신의 수익을 자동으로 줄입니다. App Store와 Google Play에서 업그레이드 환불이 어떻게 작동하는지, 그리고 Apple이 왜 그 금액을 당신의 서버로 보내지 않는지 설명합니다.
환불은 더 작아진 판매가 아니라, 스토어가 이후 정산금에서 다시 빼내는 돈이며, 흔히 판매 후 몇 주 뒤에, 때로는 은행 계좌에서 곧바로 빠져나갑니다. App Store와 Google Play에서 환불 금액이 실제로 언제 빠져나가는지, 그리고 왜 정산금이 대시보드와 결코 맞지 않는지 설명합니다.
평생 잠금 해제, 광고 제거 업그레이드, 또는 영구 프로 등급에 대한 비소모성 환불은 기능을 되찾을 수 있으므로 당신이 진정으로 되돌릴 수 있는 유일한 환불입니다. 여기서는 App Store와 Google Play에서의 비용, Apple이 왜 결코 당신에게 먼저 묻지 않는지, 그리고 revoke를 확실히 적용하는 방법을 설명합니다.
결제를 App Store나 Google Play 밖으로 옮기면 Apple과 Google은 당신의 환불을 처리하지 않습니다. 대체 결제 환불이 실제로 당신에게 얼마의 비용이 되는지, 왜 스토어의 환불 심사 흐름이 사라지는지, 그리고 은행이 차지백을 강제할 때 누가 비용을 부담하는지 설명합니다.
소모성 인앱 구매, 즉 코인 팩, 젬 번들, AI 크레딧 한 묶음은 누군가 돌려달라고 요청하기 전에 이미 돈을 들여 제공해 버린 유일한 구매입니다. App Store와 Google Play에서 소모성 환불이 여러분에게 얼마의 비용을 치르게 하는지, 그리고 여러분의 답변이 실제로 의미를 갖는 유일한 시간대가 무엇인지 여기서 설명합니다.
무료 체험에서 유료 요금제로 전환되는 지점이 대부분의 구독 환불이 시작되는 곳입니다. 고객이 해지를 잊었고, 가장 먼저 보는 것이 청구이기 때문입니다. 이 글에서는 무료 체험 환불이 App Store와 Google Play에서 당신에게 얼마의 비용을 초래하는지, 왜 이의를 제기하기 어려운지, 그리고 어떻게 막을 수 있는지 설명합니다.
Apple과 Google이 서버로 보내는 모든 환불에는 사유 코드가 담겨 있습니다. Google Play는 각 무효화에 아홉 가지 사유 중 하나와 출처를 찍고, Apple은 환불이 앱을 탓하는지 여부를 표시합니다. 각 코드가 무엇을 뜻하는지, 이를 수정, 대응, 수용으로 어떻게 분류하는지, 그리고 금액으로 얼마의 가치가 있는지 설명합니다.
대부분의 앱 환불과 지불거절은 여러분에게 묻지 않고 Apple, Google 또는 은행이 결정합니다. 실제로 앱 환불을 줄일 수 있는 지점은 여기입니다. 구매를 제때 승인하고, 깔끔하게 전달하며, 모든 계정에 태그를 붙이고, 돈이 빠져나가기 전에 두 개의 증거 제출 창구에 답하는 것입니다.
고객은 앱 환불을 받을 수 있는 시간이 48시간이라고 생각합니다. 진짜 창은 훨씬 더 깁니다. Apple은 구매 후 최대 90일까지 환불 요청을 받고, 은행 차지백은 구매 후 최대 120일까지 Google Play 판매를 되돌릴 수 있습니다. 여기에서는 당신의 매출을 되돌릴 수 있는 상태로 유지시키는 모든 시계와, 그 긴 꼬리가 얼마나 많은 비용을 발생시키는지 소개합니다.
고객이 Apple에 환불을 요청하면, 당신에게는 소비 데이터를 보낼 12시간이 주어집니다. Apple 자체 문서는 그것을 판결이 아니라 여러 요인 중 하나라고 부릅니다. 당신의 데이터가 실제로 무엇을 움직이는지, DECLINE에도 왜 여전히 환불로 끝날 수 있는지, 그리고 그 한 번의 밀어붙임이 달러로 얼마의 가치가 있는지 살펴봅니다.
Google Play는 구매마다 안정적인 해시 id를 찍을 수 있게 해 주고, 분쟁이 도착하면 그것을 되읽어 줍니다. 설정해 두면 지불 거절 검토가, 사용 내역을 보고해야 하는 바로 그 사용자에게 정확히 연결됩니다. 건너뛰면 24시간의 시계 아래에서 맨 주문 id 하나로 추측하며 맞춰야 합니다.
고객이 당신의 앱이 청구한 것을 구별하지 못하면, 그들은 당신이 아니라 은행에 연락하고, 그 분쟁은 지불 거절로 착지합니다. Apple은 모든 것을 apple.com/bill로 표시하며 아무것도 변경하지 못하게 합니다. Google Play는 명세서 표시 이름을 설정할 수 있게 해줍니다. 각각의 비용과 당신이 통제할 수 있는 것을 여기서 설명합니다.
App Store 가 이미 승인한 환불을 되돌릴 때, Apple 은 여러분의 서버가 취소했던 접근 권한을 복원하기를 기대합니다. App Store 와 Google Play 에서 환불, 환불 거절, 되돌려진 환불 알림이 어떻게 작동하는지, 그리고 이를 무시할 때 각각 어떤 대가가 따르는지 설명합니다.
고객에게 환불되면 Apple과 Google 모두 각자의 수수료를 돌려주므로, 당신이 잃는 것은 스토어의 몫이 아닙니다. 이 글에서는 당신 앱의 환불 비용을 누가 부담하는지, 당신의 정산금에서 실제로 무엇이 빠져나가는지, 그리고 왜 지불 거절이 일반 환불보다 비용이 더 큰지 설명합니다.
구독을 해지하면 스토어는 다음 청구만 멈추고, 고객은 기간이 끝날 때까지 이용 권한을 유지하며 돈은 움직이지 않습니다. 환불은 이미 처리된 결제를 되돌리고 이용 권한까지 함께 회수합니다. 두 가지가 갈라지는 지점, 각각의 비용, 그리고 왜 환불만 서버에 도달하는지를 설명합니다.
소비형, 비소비형, 자동 갱신 구독, 비갱신 구독은 각각 자기만의 규칙으로 환불됩니다. 어떤 것은 복원할 수 있고, 어떤 것은 소비되면 사라지며, 개발자에게 증거를 요구하는 것은 소비형 요청과 구독 요청뿐입니다. 당신이 판매하는 인앱 구매 유형이 환불이 당신에게 미치는 영향을 어떻게 바꾸는지 알려드립니다.
앱 환불 법은 EU, 영국, 미국에서 서로 다르지만 대부분의 앱 판매에서는 결과가 같다. EU의 14일 청약철회권은 대개 결제 시점에 포기되고, 미국 구매자는 스토어 정책에 의존하며, 어떤 법정 환불도 개발자가 대응할 여지를 주지 않는다. 개발자에게 의견을 묻는 스토어 흐름은 단 두 가지뿐이다.
친선 사기는 실제 고객이 여러분의 인앱 구매를 산 뒤 사용하고 나서, 은행에 그 청구가 잘못되었다고 알리는 것입니다. 상품은 사라지고 돈은 되돌아갑니다. 이것이 앱 개발자에게 얼마의 비용을 치르게 하는지, 왜 늘고 있는지, 그리고 Apple 과 Google 이 반박하도록 주는 짧은 시간 창을 설명합니다.
Apple 은 App Store 환불을 약 이틀 만에 결정하지만, 그 돈이 카드에 반영되기까지는 최대 30 일, 휴대폰 요금 청구에서는 최대 60 일이 걸릴 수 있습니다. 여기서는 결제 수단별 실제 App Store 환불 처리 시간, Google Play 와의 비교, 그리고 왜 느린 환불이 이의를 제기할 수 없는 지급 거절로 바뀔 수 있는지를 설명합니다.
Apple 은 두 개의 리포트로 환불을 보여주고, Google 은 또 다른 두 개로 보여주며, 여러분의 서버는 네 번째를 본다. 어느 집계도 일치하지 않으며, 그 격차는 의도된 것이다. 여기서는 각 창구가 환불을 왜 서로 다르게 귀속시키는지, 그리고 환불 리포트를 거래 단위로 여러분 자신의 기록과 대조하는 방법을 설명한다.
Google Play에서는 Console에서 주문의 일부를 비율이나 금액으로 환불할 수 있고, Google 수수료와 손실을 나눠 부담할 수 있습니다. App Store에서는 어떤 환불도 발행할 수 없습니다. 여기서는 부분 환불이 각 스토어에서 어떻게 작동하는지, 그리고 그것이 여러분에게 얼마의 비용을 들게 하는지 설명합니다.
대부분의 모바일 앱은 유료 거래의 2%에서 5%를 환불한다. 하지만 Apple과 Google은 이 수치를 서로 다른 대시보드에 숨겨 놓는다. 여기서는 앱 환불율을 어디서 찾을 수 있는지, 플랜과 카테고리별 정상 수치는 어느 정도인지, 그리고 수수료를 제외했을 때 환불 한 건이 실제로 얼마의 비용이 되는지를 설명한다.
Apple은 환불 알림을 최대 다섯 번 재시도하고 Google Play는 Pub/Sub의 최소 한 번 전달에 실려 있어, 같은 환불이 당신의 서버로 두 번 이상 도달할 수 있습니다. 여기서는 잔액을 이중으로 차감하거나 API 할당량을 두 번 소진하지 않으면서 중복된 환불 알림을 처리하는 방법을 설명합니다.
Family Sharing 환불은 결제 한 건을 되돌리지만, 최대 다섯 명의 가족 구성원이 유료 기능을 계속 사용할 수 있습니다. Apple은 REVOKE를 보내고, 그 접근을 종료하는 것은 당신의 서버가 할 일이라고 기대합니다. 가족 공유 환불이 어떻게 작동하는지, 그리고 한 건이 얼마의 비용이 드는지 설명합니다.
환불 처리는 고객이 이미 떠난 뒤에야 실행되므로, 그 안의 버그는 실제로 돈을 잃기 전까지 보이지 않은 채로 남습니다. 두 스토어 모두 먼저 테스트 환경에서 환불을 발생시킬 수 있게 해줍니다. 여기서는 환불이 진짜가 되기 전에 App Store와 Google Play에서 인앱 구매 환불을 테스트하는 방법을 설명합니다.
환불되는 가격은 청구서에서 가장 작은 항목입니다. 환불은 스토어 수수료까지 함께 되돌리므로 당신은 자기 몫을 잃고, 그 구매를 제공하려고 이미 쓴 연산, API 호출, 스토리지, 지급액은 돌아오지 않습니다. 2026년 8월 3일 이후의 Google Play 지불거절은 그 위에 은행 수수료까지 더합니다. 다음이 전체 청구서입니다.
구독 환불은 단일 판매가 아니라 청구 기간 전체를 되돌립니다. App Store에서는 Apple이 결정하고 당신의 서버는 결과만 알게 됩니다. Google Play에서는 전액 환불인지 일할 환불인지 당신이 직접 고릅니다. 각 스토어가 구독 환불을 어떻게 처리하는지, 그리고 환불 한 건이 당신에게 얼마의 비용을 물리는지 알아봅니다.
App Store나 Google Play의 환불은 스토어가 지급하고 스토어가 결정한다. 차지백은 고객의 은행이 돈을 되찾아 가는 것으로, 은행이 결정하며 이의를 제기할 수 없다. 앱 개발자에게 이 둘의 차이는 이제 돈의 문제다. 2026년 8월 3일 부터 Google Play가 차지백 비용을 당신에게 떠넘기기 때문이다.
Google Play가 조용히 차지백을 대신 부담하기를 중단했습니다. 2026년 8월 3일 당일 또는 그 이후에 이루어진 주문에 대해, 분쟁이 제기된 주문마다 당신은 Play의 서비스 수수료를 뺀 구매 대금에 은행 수수료를 더해 되갚게 됩니다. 무엇이 바뀌었는지, 이제 차지백 한 건의 비용이 얼마인지, 그리고 당신이 반박할 수 있는 24시간의 창구를 정리합니다.
Apple이 당신의 고객 중 한 명에게 환불하면, 그 환불은 서버 작업이 실행되기 전에 이미 트랜잭션의 revocationDate로 앱 내부에 들어와 있습니다. 이 글은 StoreKit 2의 환불 감지가 기기에서 어디에 나타나는지, revocationDate와 revocationReason이 무엇을 알려주는지, 그리고 왜 클라이언트는 속도를 위한 것이고 서버는 진실을 위한 것인지 설명합니다.
App Store와 Google Play의 모든 환불은 시계를 작동시키며, 대부분은 당신 없이 흘러갑니다. Apple의 가장 짧은 환불 기한은 12시간, Google의 지불 거절 기한은 24시간이며, 2026년 8월 3일부터는 놓친 지불 거절 기한이 단순한 판매 손실이 아니라 청구서가 됩니다. 당신의 계정에 닿는 모든 기한을 여기서 정리합니다.
Google Play는 구매가 환불, 차지백, 또는 무효화되는 즉시 무효화된 구매 알림을 서버로 푸시할 수 있습니다. 이 알림은 purchaseToken, orderId, productType, refundType를 담고 있으며, 의미하는 바는 단 하나, 접근 권한을 취소하라는 것입니다. 이를 읽고 연결하는 방법을 소개합니다.
3년 이내의 Google Play 주문이라면 어느 것이든 API 호출 한 번으로 환불할 수 있으며, 그때 접근 권한을 취소할지 여부도 선택할 수 있습니다. 분쟁이 지불 거절로 번지기 전에 직접 환불하면 2026년 8월 3일부터 개발자에게 부과되는 은행 수수료를 아낄 수 있습니다. 아래에서 orders.refund 사용법을 설명합니다.
고객이 Apple에 환불을 요청할 때 Send Consumption Information 페이로드가 여러분의 답변입니다. Apple은 이를 열두 개 필드에서 다섯 개로, 필수 세 개와 선택 두 개로 줄였습니다. 아래에서 각 필드, 각각이 받아들이는 값, 그리고 이를 보내야 하는 12시간의 창을 설명합니다.
Apple의 Get Refund History 엔드포인트는 고객의 전체 App Store 환불 내역을 서명된 트랜잭션으로 반환합니다. 모든 필드, revision 토큰이 어떻게 페이지를 나누는지, 왜 앱 단위가 아니라 고객 단위인지, 그리고 놓친 환불이 얼마의 손실인지 설명합니다.
Apple의 인앱 환불 요청은 고객이 앱을 떠나지 않고, Apple이 만들고 심사하는 시트에서 환불을 신청하게 해줍니다. beginRefundRequest가 무엇을 반환하는지, 서버에서 시작되는 CONSUMPTION_REQUEST와 48시간 타이머, 그리고 이 버튼을 출시할 가치가 있는지 정리합니다.
Google Play는 구매가 환불되거나 지불 거절되면 조용히 그 구매를 무효화합니다. Voided Purchases API는 그러한 주문의 목록이며, 이를 통해 접근 권한을 회수할 수 있습니다. 여기서는 모든 필드, 30일 기간, 주문을 숨기는 revoke 옵션, 그리고 그 비용을 설명합니다.
Apple은 App Store Server Notifications V2를 통해 네 가지 환불 메시지를 보내지만, 대부분의 앱은 두 가지만 처리합니다. REFUND는 권한을 회수하라고 알리고, REFUND_DECLINED는 판매를 그대로 유지하라는 뜻이며, REFUND_REVERSED는 판매를 되돌려주면서 당신이 회수한 것을 복원하라고 요청합니다. 각각 무엇이 필요한지 설명합니다.
WWDC24 이후 모든 Apple CONSUMPTION_REQUEST 는 consumptionRequestReason, 즉 고객이 직접 밝힌 환불 사유를 담고 있습니다. 값은 UNINTENDED_PURCHASE 부터 LEGAL 까지 다섯 가지이며, 각각은 12시간의 대응 창 안에서 여러분이 돌려보내는 내용을 바꿔야 합니다. 여기서 그 하나하나를 읽는 방법을 설명합니다.
은행이 Google Play 결제를 취소하면 Google은 당신의 서버로 PendingRefundReviewNotification을 보내고 24시간 카운트다운을 시작합니다. ReviewRefund API를 통해 환불 선호와 실제 소비 증거로 응답하지 않으면 이 분쟁은 당신 없이 결정됩니다. 여기서 그 전체 흐름을 필드별로 살펴봅니다.
고객이 환불을 요청하면 Apple은 당신의 서버에 CONSUMPTION_REQUEST를 보내지만, 그 거래에는 상대가 누구인지 전혀 담겨 있지 않습니다. appAccountToken은 구매를 당신의 사용자에게 연결하는 UUID입니다. 이것을 설정하면 실제 데이터로 Apple에 답할 수 있습니다. 건너뛰면 그저 추측할 뿐입니다.
서버가 사흘 안에 확인하지 않은 구매를 Google Play는 자동으로 환불하고 취소합니다. 이것은 고객의 결정이 아니라 통합 실수이며, 완전히 예방할 수 있습니다. 정확한 규칙과 그것이 왜 발동하는지, 잃어버린 매출 한 건이 실제로 얼마의 비용인지 설명합니다.
몇 번이고 반복해서 환불을 요구하는 고객은 우연이 아닙니다. 환불 악용은 금액을 되돌려주게 할 뿐 아니라 이미 쓴 연산 자원까지 앗아갑니다. 그리고 두 스토어 모두 그 패턴을 엮어낼 신원 신호, 즉 Apple 의 appAccountToken 과 Google 의 난독화 계정 ID 를 제공합니다.
Apple과 Google 모두, 고객이 구매한 것을 그대로 유지한 채로 환불이 나갈 수 있다. 접근 권한이 자동으로 제거되는 경우는 정확히 언제인지, 서버가 직접 처리해야 하는 경우는 언제인지, 그리고 대부분의 연동이 놓치는 단 하나의 알림이 무엇인지 여기서 정확히 설명한다.
Only two refund flows ever ask for your evidence: Apple's consumption request and Google Play's chargeback review. Everything else, the 48-hour Play refund, support refunds, voided purchases, unacknowledged trials, is decided without you. Here is the full map, what you can prevent, and what you can only record.
When a customer asks Apple for a refund, Apple asks you first. Here's exactly what the CONSUMPTION_REQUEST notification contains, what Apple expects back, how to answer one end to end, and why most developers silently forfeit.
Google quietly rewrote who pays when a Play purchase gets disputed with the bank. For orders placed after August 3, 2026, a lost chargeback comes out of your pocket, and you get 24 hours to fight back. What changed, what it costs, and how to be ready.
Blanket-declining every refund is as wrong as ignoring them. A field guide to measuring what refunds cost you and writing policy rules that protect revenue and your review score at the same time.