本文へスキップ
App Store Refund Management

Apple返金リクエストへの対応方法:収益を失う前に

開発者がApple返金リクエストを効果的に処理し、消費情報リクエストに回答し、返金結果を追跡し、アプリのエンタイトルメントを同期させて収益の漏れを減らす方法を解説します。

5 min read
Apple返金リクエストへの対応方法:収益を失う前に

返金リクエストは、お客様の操作から始まります。開発者側では、それはバックエンドが処理するか、あるいは取りこぼすかの一連のイベントになります。

Appleからサーバーに情報を求められることがあります。これには回答期限があります。その後、結果が通知として届き、アプリのアクセス状態をそれに合わせて変更する必要があります。この連鎖のどこか一つでも欠けていれば、返金自体はそのまま実行されます。ただ、それを知るのが後になるだけです。支払いレポートを見て、あるいは戸惑ったユーザーからの連絡で気づくことになります。

Appleが返金を承認するかどうかは、あなたには決められません。それはAppleの判断であり、どんな開発者向けツールを使ってもそれは変わりません。あなたが決められるのは、リクエストが届いたときにシステムの準備ができているかどうかです。

このガイドでは、Apple返金リクエストの前、最中、後に何をすべきかを解説します。運用面のより広い全体像については、 App Store返金管理のガイドで周辺のワークフローを解説しています。

重要ポイント

• 返金の最終判断はAppleが行います。開発者が返金リクエストを承認・却下することはありません。

• Appleから消費情報を求められることがあります。その場合、開発者は同意を得たうえで、期限内に回答できます。

• 返金通知はバックエンドに届かなければなりません。届かなければ、そのイベントはあなたにとって存在しないも同然です。

• 返金結果は、単に記録するだけでなく、アプリケーションの状態を変更すべきものです。

• Appleが回答期限を設けている場合、タイミングが重要です。返金リクエストは営業時間を待ってくれません。

• 自動化の主な役割は、抜け漏れを防ぐことです。通知の見逃し、期限超過、エンタイトルメント更新の漏れなどです。

お客様がApple返金をリクエストすると何が起こるのか

お客様はAppleを通じてリクエストを送信します。Appleはそれを審査し、その過程であなたに情報を求めることがあり、判断を下し、その結果をサーバーに通知します。

ステップ

内容

開発者側

1

お客様がAppleに返金リクエストを送信

対応は不要 — ただしエンドポイントは稼働している必要があります

2

Appleがリクエストの審査を開始

この段階は可視化されません

3

AppleがCONSUMPTION_REQUESTを送信することがある

トランザクションとお客様を特定する

4

要件を満たしている場合に回答する

同意を確認し、データを準備し、期限内に送信

5

Appleが判断を下す

決定権はなし

6

結果が通知として届く

REFUND、REFUND_DECLINED、または後からREFUND_REVERSED

7

記録とアクセス権の更新が必要

エンタイトルメント状態を結果に合わせて変更

ステップ3は条件付きです。Appleが消費情報のリクエストを送るのは特定の購入タイプや状況に限られ、すべての返金リクエストに対して自動的に送られるわけではありません。常に届くことを前提にしたロジックを組むと、抜けが生じます。

Apple返金リクエストが収益上の問題になり得る理由

返金された金額は目に見えるコストですが、最大のコストであることはめったにありません。サブスクリプション期間の返金は、すでに計上した収益を取り消し、通常はその先の更新の流れも断ち切ります。その更新分は、おそらく予測に組み込まれていたはずのものです。

次に状態の問題があります。結果の通知が届かなければ、お客様は有料アクセスを保持し続けます。データベース上は有効、Apple上は返金済み。誰かが苦情を言うまで、この二つが照合されることはありません。

その周辺には、より目立たないコストがあります。手作業で突き合わせる必要のある支払いレポート、本来なら不要だったはずのアクセスに関するサポート対応、夜間に届いて回答が遅れたApp Store返金リクエスト。さらに返金履歴がなければ、繰り返し発生している原因は見えないままです。

開発者はAppleの返金判断をコントロールできるのか

できません。返金の最終判断はAppleが行います。開発者ができるのは、該当する場合に求められた消費情報を提供することと、その結果として生じるアプリケーション状態を自社側で管理することです。

この線引きを明確にしておくことで、無駄な労力を大きく減らせます。

あなたがコントロールできること

• 通知がバックエンドに届き、処理されるかどうか

• トランザクションが保存され、後から検索できるかどうか

• トランザクションが特定のユーザーアカウントに紐づいているかどうか

• 消費データが正確で、事前に準備されているかどうか

• それを送信するための有効な同意を得ているかどうか

• Appleの期限内に回答するかどうか

• 結果が出た後にエンタイトルメント、記録、レポートが更新されるかどうか

コントロールできないこと

• 個々の返金に対するAppleの最終判断

• Appleがその判断の背景にある要素をどう評価するか

• Appleのお客様向け返金ポリシーと対象条件

Apple返金リクエストへの対応方法

8つのステップがあります。そのほとんどは、返金リクエストが発生する前に行うものです。

1. App Store Server Notificationsがバックエンドに届くようにする

返金イベントは、あなたが設定したサーバーエンドポイントに届きます。それが到達不能だったり、未検証だったり、気づかないうちに失敗していたりすれば、あなたの視点からはそれらのイベントは失われます。設定方法と署名付きペイロードの形式は、Appleの App Store Server Notificationsリファレンスに記載されています。署名を検証し、成功レスポンスを返し、処理する前に受信内容をログに残してください。

2. トランザクションとお客様を特定する

通知が参照するのはAppleのトランザクション識別子であり、あなたの識別子ではありません。突き合わせるための保存済みトランザクション記録と、そこからユーザーアカウントにたどり着く手段が必要です。後者を担うのが appAccountTokenです。購入時に付与されるUUIDです。これは任意項目であるため、多くのチームが後になってマッチング用のヒューリスティックを書く羽目になります。

3. Appleが消費情報を要求したかどうかを確認する

CONSUMPTION_REQUEST通知は、Appleが返金リクエストを審査する過程で、お客様による製品の利用状況を尋ねていることを意味します。返金が実行されたという通知ではなく、すべての返金に対して届くわけでもありません。専用のハンドラーを持つ別個のイベントタイプとして扱ってください。

4. 同意要件を確認する

消費データは、Appleの要件を満たしている場合にのみ送信してください。Appleの Send Consumption Informationのドキュメントはこの点について明確です。お客様のデータを共有する前に本人から有効な同意を得る必要があり、それを取得するのはAppleではなくあなたの責任です。通知には同意の有無を示す情報は含まれておらず、自社の記録から把握しておく必要があります。お客様が同意していない場合、Appleのガイダンスでは回答しないこととされています。

したがって同意はアプリ側の問題であり、返金リクエストが発生する前に取得しておくものです。後から付け足すやり方では機能しません。

5. 正確な消費情報を準備する

ペイロードはその購入で実際に何が起きたかを記述するものなので、推定ではなく自社の記録から値を取得してください。各フィールドとその有効な値は、特定の項目を提供しない場合の示し方も含めてAppleのドキュメントに記載されています。見せ方よりも正確さが重要です。これはAppleのプロセスへの入力であって、あなたが展開する主張ではありません。

6. Appleの定める期限内に回答する

Appleの現行ドキュメントでは、通知から12時間以内の回答が求められています。古い実装を信頼するのではなく、ドキュメントのページを確認してください。Appleはこのエンドポイントを改訂しており、現在は複数のバージョンが文書化されています。リクエストは夜間や週末にも届くため、この12時間という期限が、このステップを自動化する最も現実的な理由です。

7. 最終結果を追跡する

結果を保存してください。REFUNDは返金が承認されたことを、REFUND_DECLINEDは承認されなかったことを意味します。REFUND_REVERSEDは、Appleが以前に承認した返金を取り消したことを意味します。最初の二つは処理していても三つ目を忘れているチームは珍しくなく、その結果、本来アクセス権を持つはずのお客様がアクセスできない状態になります。

8. エンタイトルメントとアクセス状態を更新する

アプリのアクセス状態は、トランザクションの状態と一致しているべきです。返金が承認されたら、 返金後のアクセス権の取り消しを行います。返金が取り消されたら、アクセス権を復元します。これはクライアント側のチェックではなくサーバー側のイベントで駆動してください。そうすれば、お客様が二度とアプリを開かなくても状態は正しく保たれます。

必要以上の収益を失わずにApple返金を処理する方法

Apple返金の処理方法を知ることは、すべての返金を阻止しようとすることとは別物です。

正当なリクエストもあります。二重に課金された、コンテンツがアンロックされなかった、解約したつもりだったのにサブスクリプションが更新された。こうした場合に有効な対応は、根本にある問題を修正することです。

それ以外は、規律の問題です。正確なトランザクション記録、迅速なイベント処理、正直な消費データ、一貫したエンタイトルメント、そして検索可能な返金履歴。最後の一つは、繰り返し発生する原因を浮かび上がらせます。他と比べて返金率が突出して高い製品、リリース後の急増、何に課金されるのかが不明瞭なペイウォールなどです。これらはどれも返金をなくすものではありません。避けられる損失を減らし、アプリケーションの状態を正確に保つこと。それが現実的なゴールです。

Apple返金をリクエストしたいお客様はどうすればよいのか

お客様は開発者に返金をリクエストするわけではありません。Appleでの購入の返金リクエスト方法や、App Storeコンテンツの返金リクエスト方法を知りたい場合、その経路はApple自身のプロセスです。reportaproblem.apple.comにサインインし、「返金をリクエスト」を選び、理由と対象のアイテムを選択して送信します。Appleの アプリやコンテンツの返金をリクエストするページに手順が説明されており、リクエストの進捗更新には通常24〜48時間かかると記されています。

これがお客様向けの半分です。この記事のそれ以外の部分はすべて開発者向けの半分であり、両者は異なるタイムラインで動いています。

Appleの返金ポリシーと開発者の返金管理の違い

この二つは混同されがちなので、切り分けておく価値があります。Appleの返金ポリシーはお客様側を規定するものです。誰が、どのプロセスで、どのような条件で返金をリクエストできるか。Appleは、対象条件は国や地域によって異なり得ること、Apple Media Services利用規約が基準となること、現地の法律が定める場合には消費者保護の権利が適用されることを明記しています。開発者はこれらを一切設定しません。

開発者の返金管理は、その線引きのあなた側にあるすべてです。イベントの受信、トランザクションの特定、求められたときの回答、結果の追跡、アクセス権の更新、そして収益への影響の把握。Appleのポリシーはお客様に何が起こるかを定め、あなたのシステムはアプリに何が起こるかを定めます。

開発者はいつApple返金処理を自動化すべきか

手作業での処理は、量が少なく、一人が頭の中で把握できるうちは機能します。

それが破綻するのは、ごくありふれた理由からです。通知が午前3時に届く。返金ハンドラーを書いたエンジニアが別チームに異動する。トランザクションIDはあるシステムに、アカウントは別のシステムにある。誰かが通知を読む前に回答期限が過ぎ、四半期末に財務部門がその穴に気づく。

自動化がカバーするのは、決定論的な部分です。通知の受信と検証、トランザクションとユーザーの突き合わせ、期限の追跡、エンタイトルメントの更新、検索可能な履歴の保持。Appleの判断に影響を与えることはなく、そうできると示唆するツールがあれば、それはプロセスを誤って伝えています。

App Store返金管理ソフトウェアが実際に果たすべき役割

App Store返金管理ソフトウェアは、手作業の処理が残す特定の隙間を埋めるものであるべきです。

通知を監視・検証し、イベントが失敗しているエンドポイントに消えないようにすること。消費情報のリクエストと返金結果では処理が異なるため、返金イベントのタイプを区別すること。手作業が集中するのはトランザクションとアカウントの照合なので、それを紐づけること。人が見逃しがちなのは回答期限なので、それを追跡すること。その周辺として、同意状態を含む消費情報ワークフローのサポート、検索可能な返金履歴、エンタイトルメントの同期、そしてパターンが読み取れる程度に明確なレポートが必要です。

価値は機能の数にあるのではありません。これらのステップのどれ一つとして、誰かが確認を思い出すことに依存していない、という点にあります。

これらのルールはどこに記載されているか

上記のApple固有の記述はすべて、Apple自身のドキュメントに基づいています。構築の前にこれらを直接読み、定期的に再確認してください。返金関連のAPIは一度ならず変更されています。

Send Consumption Information — 同意要件、回答期限、リクエストのフィールド。ステップ4から6の一次情報源です。

App Store Server Notifications — エンドポイントの設定、署名付きペイロードの形式、およびCONSUMPTION_REQUEST、REFUND、REFUND_DECLINED、REFUND_REVERSEDを含む通知タイプ。

アプリやコンテンツの返金をリクエストする — Appleのお客様向けプロセスと、対象条件が国や地域によって異なるという注記。

まとめ

Appleの返金結果を決めるのはあなたではありません。あなたが決めるのは、自社のシステムがそれにどれだけ速く、どれだけ正確に反応するかです。

要点はいくつかに絞られます。確実に届く通知、特定できるトランザクション、Appleに求められたときに送る正確な情報、記録される結果、実態と一致するエンタイトルメント、そして収益への影響を把握できる十分な可視性です。

今週一つだけ確認するなら、エンドポイントを確認してください。App Store Server NotificationsのURLが稼働し、検証済みで、受信内容をログに記録していることを確かめてください。この記事の他のすべては、その一点が機能していることを前提としています。

返金の量が手作業での追跡の限界を超えたら

返金イベントが手作業で監視できないほど頻繁になったら、専用のシステムでそれらを監視し、回答ワークフローを管理し、結果を追跡し、繰り返しの運用作業を削減できます。 RefundSensorは、プロセスのその側面、つまりAppleではなく開発者の側を担います。

よくある質問

できません。返金の最終判断はAppleが行います。開発者ができるのは、Appleから求められた場合に消費情報を提供することだけです。

通知がバックエンドに届くようにし、トランザクションを特定し、同意を確認し、求められた場合には正確な消費データを提供し、返金結果を自社システムに反映させてください。

Appleが返金審査の過程で、お客様が購入をどのように利用したかについての情報を求める通知です。返金が承認されたことを意味するものではありません。

Appleの現行ドキュメントでは12時間の回答期限が定められています。自動処理により、期限の見逃しを防げます。

できません。開発者がAppleの返金判断を阻止したり覆したりすることはできません。消費情報は、Appleが考慮する可能性のある材料の一つにすぎません。

返金が承認されたら、関連するエンタイトルメントを取り消してください。後にAppleが返金を取り消した場合は、エンタイトルメントを復元してください。

お客様はreportaproblem.apple.comを通じて、Appleに直接返金をリクエストします。開発者がお客様の返金リクエストを処理することはありません。

できます。通知、トランザクションの照合、期限、エンタイトルメントの更新、返金記録は自動化でき、手作業を減らせます。

#Apple Refunds#App Store Server Notifications#CONSUMPTION_REQUEST#Refund Management#Subscription Entitlements#Revenue Recovery
Refund SensorRefund Sensor TeamRefund defense for App Store and Google Play developers