RORK LABEN
SDK58 — Expo SDK 58 のベータが始まりました。React Native 0.88 の RC を同梱し、ベータ期間は3〜4週間と公式に書かれています11/01 — Google Play の対象 API レベル、延長を申請した場合の配信期限は11月1日です。残り44日ですEASENV — ローカルビルドに渡したはずの秘密が、中身ではなく変数名の文字列のまま届く、という報告が長く開いたままですNEW — 推奨された移行先が、すでに停止していました。廃止表を74行突き合わせた記録ですUISCENE — iOS 27 では新しい画面ライフサイクルが必須です。SDK 57 では自分で有効にする設定で、既定になるのは 58 からですCREDIT — 「AI のエラーには消費しない」がどこまでを指すのかは、同じ修正を何度か頼んだ日の記録を取ると見えてきますSDK58 — Expo SDK 58 のベータが始まりました。React Native 0.88 の RC を同梱し、ベータ期間は3〜4週間と公式に書かれています11/01 — Google Play の対象 API レベル、延長を申請した場合の配信期限は11月1日です。残り44日ですEASENV — ローカルビルドに渡したはずの秘密が、中身ではなく変数名の文字列のまま届く、という報告が長く開いたままですNEW — 推奨された移行先が、すでに停止していました。廃止表を74行突き合わせた記録ですUISCENE — iOS 27 では新しい画面ライフサイクルが必須です。SDK 57 では自分で有効にする設定で、既定になるのは 58 からですCREDIT — 「AI のエラーには消費しない」がどこまでを指すのかは、同じ修正を何度か頼んだ日の記録を取ると見えてきます
記事一覧/ビジネス
ビジネス/2026-09-17初級

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

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

App Store89Google Play35返金2レビュー対応

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

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

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

最初にお伝えしたいのは、あれは私が返してよい言葉ではなかった、ということです。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-07-12
ストア手数料は率ではなく構造で下げる — Apple SBP と 2026年6月 Google Play 新料金の実務
Apple の Small Business Program と2026年6月30日に始まった Google Play の新料金体系を、個人開発者の手数料設計として整理します。実効手数料を計算するコードと損益分岐の試算つきです。
ビジネス2026-07-11
アプリを公開すると本名は表示されるのか — App Store と Google Play の開発者名義の決め方
個人開発者がアプリを公開すると本名や住所はどこまで表示されるのか。App Storeの販売者名、Google Playの表示名と住所公開の要件、EU配信での事業者情報の扱いを整理し、公開範囲を抑えたい場合の現実的な選択肢と名義を最初に決めておく意味を説明します。
ビジネス2026-06-14
Rorkで作ったアプリの説明文、最初の3行だけは自分で書き直す
Rorkが生成したアプリ説明文をそのまま貼っていませんか。App Storeで実際に読まれるのは「もっと見る」より上の数行だけです。iOSとGoogle Playで役割がまるで違う説明文の先頭を、自分の言葉で書き直す手順をまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます