チーターをBANしてもAppleやGoogleの返金は止められないので、BANする前にBANされたプレイヤーの返金に備えておきましょう
BANはアクセスを止めますが、ストアの返金手続きまでは止めません。BANされたプレイヤーの返金は引き続きAppleかGoogleが判断し、あなたが出せる証拠には厳しい制限があり、返金が取り消されれば取り上げたものを元に戻さなければならないこともあります。あなたが管理できることと、それにかかるコストを整理します。

要点
- アプリ内でプレイヤーをBANしても、App StoreやGoogle Playでの購入は取り消されません。AppleとGoogleは引き続き独自の基準で返金を判断し、BANされたプレイヤーも他の顧客と同じように、どちらのストアにも返金を求められます。
- App Storeの顧客が返金を求めると、AppleはCONSUMPTION_REQUESTを送り、12時間以内にSend Consumption Informationで回答するよう求めます。このリクエストには、BAN、不正行為のフラグ、規約違反を伝えるフィールドがありません。
- customerConsentedがtrueでない限り、Appleは消費データをHTTP 400 InvalidCustomerConsentedErrorで拒否します。そのため証拠を送れるのは、消費データの共有に同意したBAN済みプレイヤーについてだけです。
- AppleのREFUND_REVERSED通知には、返金を理由にアプリがコンテンツやサービスを取り消した場合はそれを復元する必要がある、と書かれています。返金したプレイヤーをBANするポリシーとは真っ向からぶつかります。
- Google Playでは、開発者はrevokeをtrueにしてorders.refundを呼び出せば、返金とアクセス停止を一度に行えます。ただし3年を超えた注文は返金できず、消費済みアイテムは自分のアプリで処理する必要があります。
- Google Playはチャージバックについてのあなたの言い分を24時間以内にorders.reviewrefundで求めます。2026年8月3日より後の注文では、チャージバックに負けると、購入価格からPlayのサービス手数料を引いた額に加え、銀行のチャージバック手数料を負担することになります。
プレイヤーをBANするとゲームへのアクセスは終わりますが、購入には何の影響もありません。次に来るのはたいていBANされたプレイヤーの返金リクエストで、その宛先はあなたではなくAppleかGoogleです。各ストアは独自のルールで判断し、返金を求めるチーターも、そのキューの中ではただの返金リクエストの一つにすぎません。この前提でBANを設計してください。争いの中であなたが完全にコントロールできるのは、BANそのものだけだからです。
BANと返金は別々の判断です
アカウントを律するのはあなたの利用規約で、支払いを律するのはストアのルールです。BANは誰にプレイさせるかというあなたの判断です。返金はお金を戻すかどうかというAppleやGoogleの判断です。どちらの判断も相手を打ち消すことはなく、ストアが判断の前に、あなたが誰かをBANしたかを尋ねることもありません。
大手パブリッシャーもはっきりそう言っています。RiotのWild Riftサポートページは、サードパーティのアプリマーケットプレイスの性質上、Riot自身がストアの返金を行うことはできず、Apple、Google、Samsungが返金を拒否した場合はそれ以上Riotにできることはない、とプレイヤーに伝えています。これはすべてのモバイル開発者に共通する立場です。ストアの判断に影響を与えられるのは2か所だけで、それもストアから求められたときに限られます。
| 返金の経路 | 判断するのは | 証拠を送れるか | あなたの期限 |
|---|---|---|---|
| App Storeの返金リクエスト | Apple | 可能。CONSUMPTION_REQUESTの後、Send Consumption Informationで送る | 12時間 |
| 購入から48時間以内のGoogle Play返金 | 不可 | なし | |
| 購入から48時間以降のGoogle Play返金 | あなた。自社のポリシーと現地の法律に従う | 該当なし | 該当なし |
| 開発者による審査が必要なGoogle Playのチャージバック | Google、その後に銀行 | 可能。orders.reviewrefundで送る | 24時間 |
| App Store購入に対するカードのチャージバック | Appleと銀行 | 不可 | なし |
BANされたプレイヤーについてAppleに伝えられること
顧客が返金を求めると、消耗型アイテムから自動更新サブスクリプションまで、どの製品タイプでもAppleはCONSUMPTION_REQUEST通知を送ります。Send Consumption Informationで回答できる時間は12時間です。Appleは、この情報を他の要素とあわせて判断の材料にすると説明しており、あなたのrefundPreferenceもその一つです。
リクエストボディは小さく、含まれるのはcustomerConsented、consumptionPercentage、deliveryStatus、refundPreference、sampleContentProvidedだけです。プレイヤーの行動を表す項目はないので、アカウントを不正行為でBANしたとAppleに伝えることはできません。伝えられるのは、購入がどれだけ使われたかと、返金を拒否してほしいかどうかです。
deliveryStatusに「BAN済み」という値はありません
AppleはdeliveryStatusを、アプリが正常に機能するIn-App Purchaseを提供したかどうか、と定義しています。値はDELIVERED、UNDELIVERED_QUALITY_ISSUE、UNDELIVERED_WRONG_ITEM、UNDELIVERED_SERVER_OUTAGE、UNDELIVERED_OTHERです。ステータスがDELIVERED以外なら、AppleはconsumptionPercentageを0にするよう求め、そうでなければリクエストは失敗します。BANされたプレイヤーの購入を未提供として報告する前に、よく考えてください。それは顧客が何も受け取っていないとAppleに伝えることであり、返金を認める最も強い理由になります。
そもそも回答できるかは同意で決まります
customerConsentedがtrue以外のとき、AppleのサーバーはConsumptionRequestをHTTP 400 InvalidCustomerConsentedErrorで拒否します。Appleのドキュメントは、同意を求める際に含めるべき内容も示しています。たとえば、顧客のデータが返金審査のためにAppleへ送られること、そして顧客が同意を撤回できることを明確に伝える文言です。一度も同意していない、または同意を撤回したプレイヤーについては、送れるものが何もありません。同意はBANの後ではなく、登録時に取得してください。
Appleが返金を取り消した場合
AppleのREFUND_REVERSED通知は、顧客が申し立てた異議によって、App Storeが一度認めた返金を取り消したことを意味します。Appleのドキュメントは具体的で、返金を理由にアプリがコンテンツやサービスを取り消した場合は、それを復元する必要があるとしています。つまり、返金した人を全員BANするルールには、元に戻す手段が必要です。BANを返金イベントにひも付けておけば、取り消しがあったときにきれいに解除できます。

Google Playでできること
Google自身の返金ページは、アプリ内購入から48時間以内なら状況によっては返金を受けられる場合があり、48時間を過ぎたら開発者に連絡するよう購入者に案内しています。また、同じアイテムの返金は一度きりで、返金されたアイテムは購入者から削除されるとも書かれています。つまり、BANされたプレイヤーが最初の48時間以内にGoogleに頼めば、判断するのはGoogleです。それ以降のリクエストは、あなたのもとに届きます。
自分で返金して購入を取り消す
Googleのorders.refundメソッドは、サブスクリプションやアプリ内の注文を返金します。revokeをtrueにするとアイテムへのアクセスは即座に終わり、定期購入の更新も止まります。Googleは制限を2つ挙げています。3年を超えた注文は返金できないこと、そして消費済みのアプリ内アイテムはアプリ側で処理する必要があることです。プレイヤーがすでに使った通貨をGoogleは取り戻せないからです。BANしたプレイヤーに返金して決着をつけると決めたなら、アイテムを手元に残させないよう、同じ呼び出しでrevokeしてください。
BANしたアカウントからの購入はすぐに拒否する
クライアントにまだストアが表示されているなら、BANされたプレイヤーが再び購入するのは現実的なリスクです。Googleの課金ガイドには、購入があなたの資格、不正、乱用のチェックを通らなかった場合は、付与も承認もすべきではないと書かれています。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、消費日時、使われた内容の説明を含められます。BAN前に記録された利用イベントこそが証拠です。BAN後のイベントは存在しないので、アカウントを閉じるときも履歴は残しておいてください。
BANされたプレイヤーの返金で実際にかかるお金
BAN自体には何のコストもかかりません。しかし、その後に来る返金は3つの面でコストになります。1つ目に、その購入で得た収益が後の支払いから差し引かれます。2つ目に、その購入ですでに発生したコストは払ったままです。3つ目に、Google Playではチャージバックに負けると、今は銀行の手数料も上乗せされます。
- コンピューティング:返金された購入でプレイヤーが行ったマッチ、セッション、サーバー側シミュレーションは、すべてあなたが支払い済みのキャパシティです。
- API呼び出し:チート対策のチェック、マッチメイキングの呼び出し、リクエスト単位で課金されるサードパーティサービスは、BANの前にすでに消費されています。
- ストレージ:BANの証拠として保管するインベントリ、リプレイ、ログは、保管している限りコストがかかり続けます。
- 支払い済みのお金:プレイヤーの購入が賞金、クリエイターへの収益分配、アフィリエイト報酬の原資になっていた場合、そのお金はすでにあなたの口座を出ており、返金とともに戻ってくることはありません。
返金を求めたプレイヤーはBANすべきでしょうか
似たことをしているゲームは数多くあります。Riotのサポートページは、残高がマイナスになってBANされたWild Riftのプレイヤーに、チャージバックの手順に従えばゲームに戻れると案内しています。取り消された支出をロックするのは正当化できます。しかし返金した人を一律にBANするのは正当化しにくく、消費者保護の規制当局もそこに目を向けています。
2017年7月、韓国消費者院はNianticに対し、不公正と判断したPokémon GOの規約の修正を求めました。その中には、返金なしでアカウントを停止する条項も含まれていました。同院は、この慣行が購入を取り消すという消費者の法的権利を侵害するおそれがあると指摘しました。規制当局一つ、事例一つにすぎませんが、「BANしたのだから全部失う」という扱いには異議が唱えられうるという明確なシグナルです。
返金リクエストが来ても揺るがないBANチェックリスト
- 必要になる前から、購入ごとの消費をタイムスタンプ付きで記録しておく。AppleもGoogleも、尋ねるのは行動ではなく利用状況です。
- 消費データ共有の同意を登録時に取得し、BANされたプレイヤーのCONSUMPTION_REQUESTにも回答できるようにしておく。
- deliveryStatusは正直に報告する。後からアカウントをBANしたからといって、提供済みのアイテムを未提供と言わない。
- BANしたアカウントの購入履歴と利用履歴は、アカウントと一緒に削除せず保管する。
- BANしたアカウントからのストアでの新規購入をブロックし、すり抜けたものは返金して取り消す。
- BANの記録を返金イベントにひも付け、REFUND_REVERSEDが来たときに返金で取り上げたものを正確に戻せるようにする。
よくある質問
- BANされたプレイヤーでもAppleやGoogleから返金を受けられますか?
- はい。アプリ内のBANは、ストアにおけるプレイヤーの立場を変えません。App Storeの返金はAppleが、48時間以内に求められたPlayの返金はGoogleが判断し、プレイヤーは銀行に請求への異議を申し立てることもできます。あなたが意見を言えるのは、AppleがCONSUMPTION_REQUESTを送ってきたときか、Googleがチャージバックの審査を求めてきたときだけです。
- 不正行為でプレイヤーをBANしたことをAppleに伝えられますか?
- いいえ。AppleのConsumptionRequestにはcustomerConsented、consumptionPercentage、deliveryStatus、refundPreference、sampleContentProvidedの5つのフィールドしかありません。どれもプレイヤーの行動を表すものではありません。伝えられるのは購入がどれだけ使われたかで、refundPreferenceをDECLINEにすることもできますが、Appleはその希望を複数ある要素の一つとして扱います。
- Google PlayでBANしたプレイヤーに自分で返金すべきですか?
- 可能です。その場合は、revokeをtrueにしてorders.refundを呼び出し、返金とアクセス停止を同時に行ってください。Googleは3年を超えた注文を返金しません。また、プレイヤーがすでに消費した通貨はGoogleが取り戻せないため、アプリ側で処理する必要があります。
- Appleが返金を取り消したら、BANはどうなりますか?
- AppleはREFUND_REVERSED通知を送り、返金を理由に取り消したコンテンツやサービスをアプリが復元する必要があるとしています。返金がアカウントを制限した唯一の理由なら、その制限は解除してください。不正行為によるBANはそれ自体で成り立つもので、返金とは結び付いていません。
- 返金を求めたプレイヤーをBANするのは合法ですか?
- プレイヤーがどこにいるかによりますし、見た目よりリスクは大きいです。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 サーバー通知を検証する。webhook URL には誰でも POST できるからです
返金通知は、署名を確認するまではただの HTTPS リクエストにすぎません。App Store サーバー通知と Google Play の RTDN メッセージを検証する方法、各ストアが何に署名しているか、そして偽造された返金や誤って拒否された返金がどれだけの損失になるかを解説します。