Google Play のプリペイドプランの返金はサブスクリプションとは別のルールで動き、チャージの承認を一度逃すだけでプラン全体が取り消されることがある
プリペイドプランは自動更新されないため、ユーザーは解約できず、チャージで延長します。Google Play のプリペイドプランの返金がどう決まるのか、未承認のチャージがどれほどの損失を生むのか、どの API 呼び出しが何を返金するのかを解説します。

要点
- Google Play のプリペイドプランは決まった請求期間だけアクセスを提供し、自動で更新されることはありません。ユーザーはチャージを購入して期間を延長します。Google によると、プリペイドプランは有効期限まで続くだけなので解約できません。
- Google Play のプリペイドのチャージはすべて新しい購入として扱われ、新しい購入トークンが発行されます。以前のトークンは linkedPurchaseToken フィールドに入ります。Google はチャージのたびに SUBSCRIPTION_PURCHASED 通知を送信します。
- Google Play では、デベロッパーはプリペイドの購入とチャージを一件ずつ承認する必要があります。1 週間以上のプランは 3 日、1 週間未満のプランはプラン期間の半分なので、3 日間のプランなら 1.5 日です。
- デベロッパーが Google Play のプリペイドのチャージの承認期限を逃すと、Google はそのチャージを取り消し、残りの定期購入も取り消して解約し、ユーザーに返金します。
- Google Play のヘルプセンターはユーザーに対し、未使用のプリペイドプランは返金を受けられること、購入から 48 時間を過ぎた返金リクエストはデベロッパーに回されることを案内しています。
- Google は purchases.subscriptionsv2.revoke の fullRefund オプションを、各アイテムの直近の請求を返金するものと説明しています。そのため、チャージを重ねたプリペイドプランでは、ユーザーがこれまでに購入したすべてのチャージではなく、直近の請求が対象になります。
- 2026 年 8 月 3 日以降に行われた Google Play の注文では、チャージバックに負けた場合、デベロッパーは Play のサービス手数料を差し引いた購入価格に加え、銀行のチャージバック手数料を負担します。これは他の注文と同様にプリペイドのチャージにも適用されます。
Google Play のチャージを一件でも承認し損ねると、Google はそのチャージを返金するだけでは済ませません。チャージを取り消し、ユーザーのプリペイドプランの残りも取り消して解約したうえで、返金を行います。これは Google Play のプリペイドプランの返金でもっとも危険な落とし穴であり、しかも完全に自分でコントロールできるものです。それ以外のプリペイドプランの返金事情は通常のサブスクリプションに近いものの、実装の仕方や失うものを変える違いがいくつかあります。
Google Play のプリペイドプランは自動更新サブスクリプションとどう違うか
プリペイドプランは、決まった請求期間のアクセスを販売し、その後は止まる基本プランです。Google の Play Console ヘルプによると、ユーザーはその期間の利用権を得るためにプランを購入し、使い続けたければチャージで終了日を延長します。チャージは同じサブスクリプション内のどのプリペイド基本プランでもよく、期間の長さが違っていても構いません。Google 自身の例では、$59.99 のチャージでプランを 1 年延長しています。
更新がない以上、解約するものもありません。Google の課金ドキュメントには、プリペイドプランは解約できず、やめたいユーザーはプランが有効期限を迎えるのを待つだけだと書かれています。プリペイドプランのサブスクリプション状態は ACTIVE、PENDING、CANCELED のいずれかしかなく、expiryTime は常に存在します。
プリペイドプランがもっとも重要になるのは、定期課金が制限されている地域です。RevenueCat のガイドはインドを例に挙げています。インドでは Reserve Bank of India(インド準備銀行)の規則により、Google が新規ユーザーによる自動更新プランの購入を停止しました。同ガイドは、こうした市場にはプリペイドプランが当然の選択肢だとしています。
| 自動更新の基本プラン | プリペイドの基本プラン | |
|---|---|---|
| 自動で更新されるか | はい | いいえ、ユーザーがチャージを購入する |
| ユーザーが解約できるか | はい | いいえ、expiryTime まで続く |
| 無料トライアルと特典 | あり | なし、特典は自動更新の基本プラン専用 |
| 新しい購入トークン | アップグレード、ダウングレード、再登録時 | チャージのたび |
| 承認 | 新規購入ごとに 3 日以内 | 1 週間以上のプランは 3 日、短いプランは期間の半分 |
| 一時停止できるか | はい | いいえ |
チャージは一件ごとに別の購入
Google はチャージのたびに新しい購入トークンを発行し、新しい購入の linkedPurchaseToken に以前のトークンを入れます。また、チャージごとに SUBSCRIPTION_PURCHASED のリアルタイム デベロッパー通知も送信します。チャージは積み重なります。ユーザーが早めにチャージした場合、追加分は今日からではなく、元の有効期限に加算されます。未消化のチャージは一度に一件しか保持できず、次のチャージがいつ可能になるかは prepaidPlan.allowExtendAfterTime でわかります。
プリペイドの返金は承認期限から始まる
ユーザーは毎回購入フローを通るため、チャージを含むすべてのプリペイド購入を承認する必要があります。Google は 1 週間以上のプランに 3 日を与えています。1 週間未満のプランは期間の半分なので、3 日間のプランは 1.5 日以内、1 日のプランは 12 時間以内に承認しなければなりません。
だからこそ、短いプリペイドプランは見た目以上にリスクが高いのです。週単位や月単位の自動更新プランなら毎回同じ 3 日が与えられます。1 日のプリペイドパスでは 12 時間しかなく、それより長いバックエンド障害が起きれば、支払い済みのユーザーが自動的に返金対象に変わります。RevenueCat のガイドも同じ点を指摘しており、基本プランが 1 日や 3 日しかない場合は 2 回目の注文をすばやく承認する必要があると警告しています。
プリペイドプランの返金を決めるのは誰か
Google Play のプリペイドプランの返金の多くは、あなたの関与なしに決まります。Google の返金ポリシーでは、アプリ内購入(サブスクリプションを含む)から 48 時間以内であれば、状況に応じてユーザーが返金を受けられる場合があります。48 時間を過ぎると、ユーザーはデベロッパーに連絡するよう案内され、デベロッパーが自社のポリシーと適用法に基づいて返金を処理します。Google のサブスクリプションのヘルプページには、プリペイドプラン固有の一文が加えられています。プランが未使用であれば、ユーザーは返金をリクエストできます。
| 返金の経路 | 決めるのは誰か | 反論できるか | 期限 |
|---|---|---|---|
| 購入またはチャージから 48 時間以内のリクエスト | いいえ | なし | |
| 48 時間経過後のリクエスト | あなた(自社ポリシーと現地の法律に基づく) | 該当なし | Google の定めはなし |
| 未承認の購入またはチャージ | 自動 | いいえ | 3 日、1 週間未満のプランは期間の半分 |
| デベロッパーの審査対象となったチャージバック | Google、その後に銀行 | はい、orders.reviewrefund で | 24 時間 |
| デベロッパーの審査がないチャージバック | 銀行 | いいえ | なし |
プリペイドプランでもチャージバックのルールは変わりません。Google が紛争について見解を求めてきたら、24 時間以内に orders.reviewrefund で回答できます。銀行が判断を下した時点で、その決定は最終的なものになります。
プリペイドプランではどの API 呼び出しが何を返金するか
リクエストがあなたのもとに届いたとき、使えるサーバー側のツールは 2 つありますが、返金される対象は同じではありません。
orders.refund は注文を一件ずつ扱う
orders.refund は、サブスクリプションまたはアプリ内の注文を注文 ID で返金します。revoke を true にすると、アクセスは即座に終了します。Google は 3 年より古い注文は返金しません。チャージは一件ごとに独立した購入なので、あるチャージに対応する注文を返金することが、そのチャージだけを正確に返金する方法です。
purchases.subscriptionsv2.revoke はサブスクリプション全体に作用する
purchases.subscriptionsv2.revoke はサブスクリプションを終了させ、revocationContext を受け取ります。Google は fullRefund を各アイテムの直近の請求の全額を返金するもの、proratedRefund を残り期間に応じて日割りで返金するものと説明しています。2 回チャージしたプランでは、直近の請求は最後のチャージです。ユーザーに残高全額の返金を約束する前に、この点を織り込んでおきましょう。
ユーザーにまだ権利があるアクセスを奪わない
Google の課金ドキュメントは、ユーザーがまだ利用権を持っている間にサブスクリプションへのアクセスを取り上げることは Google Play の定期購入ポリシーに違反すると警告しています。プリペイドプランでは、支払い済みの期間そのものが利用権です。直近のチャージだけを返金するなら、それ以前に支払われた期間は、そちらも取り消して返金しない限り有効なままにしておきましょう。

プリペイドプランの返金で失うもの
プリペイドのユーザーは一定の期間分を前払いしており、あなたはアクセスを提供した瞬間から、そのユーザーのためにコストを払い始めています。返金はユーザーのお金を戻しますが、そのコストはそのまま残ります。
- コンピューティング:有料期間中にユーザーが実行したセッション、同期、サーバー側のジョブはすべて、すでに支払い済みのリソースです。
- API 呼び出し:音声、翻訳、地図、モデル推論など、リクエスト単位で課金されるサードパーティのサービスの料金はそのまま請求されます。
- ストレージ:ユーザーが作成したファイルや履歴は、削除するまでストレージ料金に計上され続けます。
- 支払い:購入に紐づく収益分配、クリエイターへの支払い、紹介手数料は、すでにあなたの口座から出ています。
承認漏れのケースがもっとも高くつきます。$59.99 の 1 年分のチャージの承認が遅れると、$59.99 が戻されるだけでは済みません。Google は残りのプランも取り消すため、ユーザーは支払い済みのアクセスを失って返金を受け、あなたがそのユーザーにサービスを提供するためにかけたコストはすべて使われたままになります。
プリペイドプランの実装チェックリスト
- 最初の購入だけでなく、すべてのチャージをサーバーから承認し、数時間たっても未承認の購入があればアラートを出しましょう。
- 短いプランには専用のアラームを設定しましょう。1 日のプランは 12 時間、3 日のプランは 1.5 日しかありません。
- 注文 ID と購入トークンを一件ずつ保存し、linkedPurchaseToken をたどって、一人のユーザーの背後にあるチャージの連鎖全体を把握できるようにしましょう。
- 購入トークンは早めに処理しましょう。Google によると、トークンは有効期限から 60 日後までしか有効でなく、それ以降は Developer API で受け付けられません。
- 一件のチャージを返金するときは、そのチャージの注文に orders.refund を使い、fullRefund が以前のチャージまで対象にすると思い込まないようにしましょう。
- 使用状況を購入ごとに記録し、チャージバックの審査に 24 時間以内に実のある回答ができるようにしましょう。
- SUBSCRIPTION_REVOKED を受け取ったら、プランの状態が期限切れになるため、ただちにアクセスを取り消しましょう。
よくある質問
- ユーザーは Google Play のプリペイドプランを解約できますか?
- いいえ。Google によると、プリペイドプランは自動更新されないため解約できません。プランは有効期限まで続き、ユーザーはそれまでアクセスを維持します。支払いをやめたい場合は、次のチャージを購入しなければよいだけです。
- ユーザーは Google Play のプリペイドプランの返金を受けられますか?
- はい。Google のヘルプセンターによると、未使用のプリペイドプランは返金でき、48 時間以内のリクエストであれば、Google はサブスクリプションを含むあらゆるアプリ内購入を返金することがあります。48 時間を過ぎると、Google はユーザーをデベロッパーに案内し、デベロッパーが自社のポリシーと現地の法律に基づいて返金します。
- プリペイドのチャージを承認しなかったらどうなりますか?
- Google はそのチャージを取り消し、残りの定期購入も取り消して解約し、ユーザーに返金します。1 週間以上のプランは 3 日以内、それより短いプランは期間の半分以内に承認する必要があるため、3 日間のプランなら 1.5 日です。
- プリペイドプランで fullRefund を実行すると、すべてのチャージが返金されますか?
- Google の説明によれば、されません。purchases.subscriptionsv2.revoke の fullRefund オプションは、各アイテムの直近の請求の全額を返金します。チャージは一件ごとに独自の注文を持つ別の購入なので、特定のチャージを返金したいときは、その注文に orders.refund を使いましょう。
- プリペイドプランは無料トライアルに対応していますか?
- いいえ。Google の Play Console ヘルプによると、無料トライアルや導入価格を含む特典は、自動更新の基本プランにしか作成できません。プリペイドプランは購入時とチャージのたびに全額を支払います。
出典と参考資料
- Google Play Billing: Subscription lifecycle (prepaid plans, top-ups, acknowledgement)
- Play Console Help: Understanding subscriptions
- Google Play Help: Cancel, pause, or change a subscription on Google Play
- Google Play Help: Apps, games, and in-app purchases refund policies
- Google Play Developer API: orders.refund
- Google Play Developer API: purchases.subscriptionsv2.revoke
- Google Play Developer API: orders.reviewrefund
- Play Console Help: Updates to refund protection and chargeback cost responsibility
- RevenueCat: Google prepaid plans
RefundHalt
App Store と Google Play の返金を自動処理
続きを読む
過剰な返金リクエストは返金額以上の損失を招く。両ストアがそれを品質シグナルとして扱うからだ
Apple のガイドライン 5.6.4 は、過剰な返金リクエストをアプリが品質基準を満たしていない兆候として挙げています。Google のデベロッパー販売契約も、返金率を根拠に新規デベロッパーのアプリを削除できると定めています。各ストアの規定、削除の実際のコスト、そしてリスクを避ける方法を解説します。
返金に対応する前に App Store サーバー通知を検証する。webhook URL には誰でも POST できるからです
返金通知は、署名を確認するまではただの HTTPS リクエストにすぎません。App Store サーバー通知と Google Play の RTDN メッセージを検証する方法、各ストアが何に署名しているか、そして偽造された返金や誤って拒否された返金がどれだけの損失になるかを解説します。