◉RORK LABEN
●EXPO — EAS Observe がネイティブクラッシュも記録(10/07)。SDK 57 は 57.0.21 以降で確認できます●RORK — 09-29 に GPT-6.1 Sol、09-28 に Claude Sonnet 5.5 を追加。モデル選択で使えます●RN 0.88 — React Native 0.88.x の正式リリース予定は 10/12、残り2日●Q&A — AuthSession が Android の standalone で結果を返さない、という問いが長く続いています●WINDOWS — Mac がなくても Windows だけで iPhone アプリを出す手順が共有されています●NEW — Expo Go で通知だけが届かない夜に、先に切り分ける3点●EXPO — EAS Observe がネイティブクラッシュも記録(10/07)。SDK 57 は 57.0.21 以降で確認できます●RORK — 09-29 に GPT-6.1 Sol、09-28 に Claude Sonnet 5.5 を追加。モデル選択で使えます●RN 0.88 — React Native 0.88.x の正式リリース予定は 10/12、残り2日●Q&A — AuthSession が Android の standalone で結果を返さない、という問いが長く続いています●WINDOWS — Mac がなくても Windows だけで iPhone アプリを出す手順が共有されています●NEW — Expo Go で通知だけが届かない夜に、先に切り分ける3点
記事一覧/ビジネス
⟐ ビジネス/2026-09-17初級

「返金してほしい」とレビューに書かれた日、iOS と Android で返事が変わります

レビューで返金を求められたとき、iOS では開発者が返金できず、Android では Play Console から自分で返金できます。ストアごとに変わる返事の組み立て方と、返金後に権利を消し忘れないための確認手順を書き残します。

App Store89Google Play35返金レビュー対応

「課金しましたが、思っていたものと違いました。返金してください」。星ひとつのそのレビューを、朝いちばんに読んだことがあります。

個人開発でアプリを出していると、レビューの返信欄はこちらの声が届く数少ない場所です。相手を待たせたくない一心で、私はその場で「返金の手続きをいたします」と返しました。

数日後、同じ方から二度目のレビューが届きました。返金されていません、という内容でした。

最初にお伝えしたいのは、あれは私が返してよい言葉ではなかった、ということです。iOS のアプリで、開発者が購入を返金する手段は用意されておりません。そして Android では、逆に自分の手で返金できてしまいます。同じ一文のレビューに対して、返事の中身がストアで入れ替わるのです。

iOS では、開発者の手元に返金ボタンがありません

App Store の購入に対する返金は、Apple が受け付けて Apple が判断します。購入した方の側の経路は三つです。

  • Apple のサポートへ連絡して返金を求める経路
  • reportaproblem.apple.com にサインインして返金をリクエストする経路
  • 支払い方法の発行元へ申し立てる経路

いずれの経路にも、開発者が入り込む余地はありません。判断の材料も結果も、Apple と購入者のあいだで完結します。

では開発者には何も届かないのかというと、そうではありません。App Store Server Notifications を設定していれば、Apple が返金を処理した時点で REFUND 通知がサーバーへ届きます。Apple の返金通知のドキュメントでは、この通知の対象は消耗型・非消耗型・非更新サブスクリプションであると明記されております。自動更新サブスクリプションの返金はこの通知には含まれず、別の経路で拾う必要があります。

通知を受け取ったとき、読むべき場所は二つだけです。

{
  "unified_receipt": {
    "latest_receipt_info": [
      {
        "product_id": "com.example.app.coins_100",
        "purchase_date_ms": "1757980800000",
        "cancellation_date_ms": "1758153600000"
      }
    ]
  }
}

同じ product_id の取引が複数並ぶことがありますので、purchase_date_ms がいちばん新しいものを選びます。cancellation_date_ms が、Apple が返金を実行した日時です。返金されていない取引にこのフィールドは入りません。サーバーは 200 を返す必要があります。

要するに iOS では、返金の決定は自分の外側にあり、結果だけが後から流れてきます。この順序を知っているかどうかで、レビューに書ける文が変わります。

Android では自分で返金できます。ただし取り消せません

Google Play はここが反対です。Play Console の「注文管理」を開き、注文 ID か購入者のメールアドレスの完全一致で注文を探し、全額または一部を返金できます。Play Console アプリからも同じ操作ができます。

自由度がある分、こちらには気をつける点がいくつかあります。

一つ目は、返金は取り消せないことです。押し間違えても戻す操作はありません。

二つ目は、一部返金の条件です。有料アプリには一部返金を適用できません。対象はアプリ内購入とサブスクリプションで、しかも 2018 年 3 月より後に発生した注文に限られます。

三つ目は、お金の出どころです。返金した額は次回以降の支払いから差し引かれます。Google の手数料は返ってきますが、返金によって残高がマイナスになり、その状態が 48 時間続くと、受け取り用の銀行口座から引き落とされます。小さく運用していると、この一行を読んでいるかどうかで肝が冷えます。

四つ目は権限です。アカウント所有者以外が返金するには「注文の管理」権限が必要です。自分ひとりで運用していても、いざというときに画面が出ないと慌てますので、平時に一度開いておくことをお勧めします。

返事は二通りを、あらかじめ持っておきます

確かめることiOS(App Store)Android(Google Play)
開発者が返金できるかできませんできます(Play Console の注文管理)
購入者の申請先Apple サポートまたは reportaproblem.apple.comGoogle Play のヘルプ、または開発者へ直接
一部返金開発者の操作対象外アプリ内購入とサブスクのみ(有料アプリは不可)
返金の取り消し該当しませんできません
結果の知り方App Store Server Notifications の REFUND注文管理のステータス表示

この表を手元に置いてから、私は返信の文面を二つに分けました。

iOS 向けには、返金の可否を私が決められないことを先に書き、申請の入り口を具体的に案内します。「Apple の判断になります」とだけ書くと突き放して読まれますので、どこを開けばよいかまで書きます。

Android 向けには、購入日と注文の特定に必要な情報をお尋ねします。メールアドレスの完全一致でしか検索できませんので、そこを最初に聞いておくと往復が一度減ります。

どちらの文面にも、返金の話を始める前に一文を置いております——期待と違ったのは何だったのか、という問いです。

返金したあと、権利を消し忘れることがあります

ここが、私がいちばん長く取り違えていた場所です。

Google Play では、サブスクリプションの「解約」と「返金」は別の操作です。解約しても返金は起きず、購入者は請求期間の終わりまで権利を保ちます。一方、サブスクの最新の注文を返金すると、返金と同時に権利が即座に外れ、以後の更新も止まります。古い注文を返金した場合は返金だけが行われ、サブスクは有効なままです。同じ「返金」という言葉で、結果が三通りに分かれます。

iOS では、通知を受け取ったあとの後始末はすべて自前です。Apple のドキュメントも、返金された取引を保存し、監視し、適切に対処するのは開発者の責任だと書いております。さらに、その結果として行った操作はアプリ内で利用者に伝えるように、とも添えられております。

消耗型のアイテムは、とくに抜けやすいところです。返金が成立しても、既に使い切られた残高は自動では戻りません。戻すのか、戻さないのか、繰り返し返金される方をどう扱うのか——その判断は通知の外側にあります。

返金できるかどうかはストアが決めます。返金のあとに何を戻すかは、私が決めます。

この二つを混ぜないようにしてから、レビューへの返事で口ごもることがなくなりました。課金まわりの権利がどこで消えるのかについては、Family Sharing で IAP が消える4つのトリガーにも近い話を書いております。

謝ることと、約束することのあいだに線を引きました

あの朝の私は、返金できると信じていたわけではなかったのだと思います。ただ、相手の落胆を早く収めたかったのです。できるかどうかを確かめる前に、できると書いてしまいました。

いまは返信を二段に分けております。一段目は、期待と違ったことへのお詫びと、何がどう違ったのかを尋ねる一文だけ。二段目で、ストアごとの手続きを案内します。段を分けると、確かめていないことを一段目に書かずに済みます。

壁紙アプリやヒーリング音源のアプリを長く動かしていて気づいたのは、返金を求める声のうち少なくない数が、お金の話ではなかったということです。購入した機能の場所が分からない、復元の導線に気づいていない——そうした詰まりが、いちばん強い言葉で表に出てきていました。一段目の問いは、そのために置いております。返信の運用そのものを軽くする工夫は、App Store のレビュー返信を半自動化した運用記録に別途まとめました。

まずは、ご自分のストアの返信欄を開いて、直近の返信に「返金します」と書いていないかだけ確かめていただければと思います。私はそこから始めました。書いてしまっていたら、上の表の該当する列を、そのまま二通目の文面にしていただけます。

課金の設計そのものをこれから決める段階でしたら、Rork で作るモバイルアプリの収益化入門のほうが先に立つかもしれません。ここまでお付き合いくださり、ありがとうございます。

シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

⟐ ビジネス2026-08-31
Google Play の期限後、更新を止めた Android アプリを上げるか据え置くかの線引き
更新を止めた Android アプリには、提出の基準とは別の基準が効いています。手元の成果物から実効 targetSdk を並べ、上げる・据え置く・畳むを判断するまでの手順をまとめました。
⟐ ビジネス2026-08-20
target API 36 の8月31日は、更新を出す人と出さない人で意味が違います
Google Play の8月31日には、更新提出に必要な API 36 と、新規ユーザーへの配信を保つための API 35 という別々の条件が重なっています。6本のアプリを運用する側の仕分け方と、延長フォームが誰に出るのかを整理しました。
⟐ ビジネス2026-08-11
新規インストールが止まる4か国を、6本のアプリの流入比率で確かめました
Android の開発者認証は2026年9月30日にブラジル・インドネシア・シンガポール・タイの4か国で始まります。自分のアプリがその期日に本当に影響を受けるのかを、国別インストール比率から判定する手順をまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます