# 支払いの返金とキャンセル 支払いをキャンセルまたは返金する方法をご紹介します。 完了する前に無料で [決済をキャンセル](https://docs.stripe.com/refunds.md#cancel-payment) することができます。また、成功後に決済の全額または一部を返金することもできますが、これには手数料が発生する場合があります。詳細については、Stripe の [料金体系ページ](https://stripe.com/pricing/local-payment-methods) をご覧ください。 返金の際には、お客様のStripe 残高が使用されます (保留中の金額は含まれません)。残高が不足している場合、Stripe はカード取引の場合はその返金を保留にします (他の決済方法への返金は即座にキャンセルされます)。この措置はお客様の Stripe 残高が返金に充当できる金額になるまで続きます。Stripe マイナス残高の問題は、支払いを回収するかアカウント残高に *補充 (トップアップ)* (The act of adding funds to a Stripe account, typically through a transfer from a bank external to Stripe) することで解決できます。地域によっては、Stripe がお客様の銀行口座から自動的に引き落としを行い、マイナス残高を解消する場合があります。 ## 返金リクエスト Stripe は顧客の銀行または*カード発行会社* (The entity that issued a payment card to a cardholder. This could be a bank, such as with the Visa or Mastercard network, or it could be the card network itself, such as with American Express)に返金リクエストを送信します。カードネットワークとカード発行会社によっては、成功した返金が顧客の銀行明細書にリアルタイムで表示されます。また、全額返金されたクレジットカードの支払いについては、不審請求の申請やチャージバックを行うことができません。 次のすべての条件に該当する場合、Stripe から顧客にメールを送信し、返金を通知します。 - 元の支払いが Stripe アカウントの顧客で作成されています。 - 顧客には保存されたメールアドレスがあります。 - [ダッシュボード](https://dashboard.stripe.com/account/emails)で、**顧客に返金のメールを送信する**を有効にしました。 [返金された支払いはダッシュボードで確認](https://dashboard.stripe.com/test/payments?status%5B0%5D=refunded&status%5B1%5D=refund_pending&status%5B2%5D=partially_refunded)できます。 ## 返金する 返金は、[Refunds API](https://docs.stripe.com/api/refunds.md) または[ダッシュボード](https://dashboard.stripe.com/test/payments)を使用して行うことができます。1 件の支払いに対して複数の返金を行うことが可能ですが、総額が元の支払い額を超える返金を実行することはできません。 #### ダッシュボード ダッシュボードで支払いを返金するには、以下の手順を使用します。 1. [支払い](https://dashboard.stripe.com/payments)ページで返金する支払いを探します。 1. 支払いの右にあるオーバーフローメニュー(⋯)をクリックして、**支払いの返金**を選択します。 1. デフォルトでは、全額返金が行われます。一部返金の場合は、該当する返金額を入力します。 1. 返金理由を選択して、**返金**をクリックします。**その他**を選択した場合は、返金の理由を説明するメモを追加する必要があります。 または、特定の決済をクリックし、その詳細ページから返金を行うこともできます。[返金の領収書](https://docs.stripe.com/receipts.md#refund-receipts)を自動送信することも、返金ごとに手動で領収書を送信することも可能です。 > #### 一括返金 > > ダッシュボードでは、複数の支払いを一度にまとめて返金することができます。各支払いの左側にあるボックスをチェックして、返金する支払いを選択します。複数ページの結果にまたがってもかまいません。次に、**返金**をクリックして、返金理由を選択します。この方法で発行できるのは全額返金のみであり、一部返金は個別に行う必要があります。 #### API API を使用して支払いを返金するには、支払い ID または [PaymentIntent](https://docs.stripe.com/api/payment_intents.md) を指定して[返金を作成](https://docs.stripe.com/api.md#create_refund)します。 PaymentIntent を使用して支払いを回収すると、Stripe は[支払い](https://docs.stripe.com/api/charges/object.md)オブジェクトを作成します。 PaymentIntent の成功後に支払いを返金するには、PaymentIntent を使用して返金を作成します。これは、その元になった支払いを返金することと同じです。Stripe Tax API を使用して売上を記録している場合は、必ず[返金を記録](https://docs.stripe.com/tax/custom.md#reversals)してください。 ```curl curl https://api.stripe.com/v1/refunds \ -u "<>:" \ -d payment_intent=pi_Aabcxyz01aDfoo ``` PaymentIntent の一部のみを返金することもできます。その場合は、`amount` パラメーターをセント単位の整数 (または支払い通貨の最小通貨単位) で指定します。 ```curl curl https://api.stripe.com/v1/refunds \ -u "<>:" \ -d payment_intent=pi_Aabcxyz01aDfoo \ -d amount=1000 ``` charge の[オーソリとキャプチャー](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md)を別々に行い、`requires_capture` ステータスの PaymentIntent を返金する場合は、返金処理が異なります。この場合、PaymentIntent に関連付けられている charge はキャプチャーされていない状態となり、直接返金することはできません。[PaymentIntent をキャンセル](https://docs.stripe.com/api/payment_intents/cancel.md)する必要があります。 ### Connect プラットフォームを介した返金 返金の動作は、実装で使用されている [Connect の支払いタイプ](https://docs.stripe.com/connect/charges.md#refund-creation)によって異なります。 - Stripe は、[ダイレクト支払い](https://docs.stripe.com/connect/direct-charges.md#issue-refunds)決済への返金の場合、連結アカウントから直接引き落とします。 - Stripe は、返金を[デスティネーション支払い](https://docs.stripe.com/connect/destination-charges.md#issue-refunds)または[支払いと送金](https://docs.stripe.com/connect/separate-charges-and-transfers.md#issue-refunds)別方式 (`on_behalf_of` ありまたはなし) の支払いに対してプラットフォームから引き落とします。これらの支払いタイプに関連付けられた送金を差し戻し、連結アカウントから返金する金額を回収します。 Connect プラットフォームは、Connect の埋め込みコンポーネント ([payments](https://docs.stripe.com/connect/supported-embedded-components/payments.md) や [決済の詳細](https://docs.stripe.com/connect/supported-embedded-components/payment-details.md) コンポーネントなど) を使用して、連結アカウントがサイトから顧客に返金できるようにすることができます。 ## 返金先 返金は、支払い時に使用された支払い方法に対してのみ行うことができます。異なるカードや銀行口座など、異なる宛先に返金することはできません。 有効期限切れまたはキャンセルされたカードへの返金は、顧客のカード発行会社によって処理され、ほとんどの場合、顧客の代替カードに入金されます。代替カードがない場合、カード発行会社は通常、代替方法 (小切手や銀行口座の預金など) を使用して顧客に返金します。まれに、カードへの返金が[失敗](https://docs.stripe.com/refunds.md#failed-refunds)することもあります。 [ACH](https://docs.stripe.com/payments/ach-direct-debit.md) や [iDEAL](https://docs.stripe.com/payments/ideal.md) など、その他の支払い方法の場合、返金処理は銀行によって異なります。顧客の決済方法が閉鎖されている場合、銀行は Stripe に返金することがあります (この時点で、返金には[失敗](https://docs.stripe.com/refunds.md#failed-refunds)のマークが付いています)。 ## 失敗した返金を処理する 顧客の銀行またはカード発行会社が返金を処理できなかった場合 (銀行口座の閉鎖やカードの問題など)、返金が失敗する可能性があります。この場合、銀行は返金された金額を Stripe に返し、Stripe がそれをお客様の Stripe アカウント残高に返します。このプロセスには、返金試行日から最大 30 日かかる場合があります。 API を使用すると、[Refund (返金)](https://docs.stripe.com/api.md#refund_object) オブジェクトのステータスが `failed` に変わり、次の属性が含まれます。 - `failure_balance_transaction`: Stripe 残高に返された金額を表す [Balance Transaction (取引残高)](https://docs.stripe.com/api.md#balance_transaction_object)の ID。 - `failure_reason`: 返金が失敗した理由。以下のような理由があります。 | 失敗の理由 | 説明 | | ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | `charge_for_pending_refund_disputed` | 返金がまだ保留中の間に、顧客が支払いに対して不審請求の申請を行った場合は、顧客への払い戻しの重複を避けるため、返金する代わりに、不審請求の申請を[受け入れるか反論する](https://docs.stripe.com/disputes/responding.md#decide)ことをお勧めします。 | | `declined` | Stripe の金融パートナーが返金を拒否した場合。 | | `expired_or_canceled_card` | 支払い方法が顧客によってキャンセルされたか、パートナーによって期限切れになった場合。 | | `insufficient_funds` | 残高不足のため保留されていた返金の、返金保留期限が過ぎた場合。 | | `lost_or_stolen_card` | 元のカードの紛失または盗難により返金に失敗した場合。 | | `merchant_request` | ビジネスのリクエストで返金が失敗した場合。 | | `unknown` | 不明な理由により返金に失敗した場合。 | 一部の決済手段では、返金が失敗した理由を示す Stripe の金融パートナーから提供される拒否コードは、`destination_details` ハッシュの `network_decline_code` フィールドで確認できます。 ``` { id: "pyr_1234", destination_details: { blik: { network_decline_code: "decline_code" }, type: 'blik', } } ``` 返金の失敗はまれですが、失敗した場合、Stripe は `refund.failed` *イベント* (A tool to send events to your application via webhook or directly to your cloud infrastructure)を使用してお客様に通知します ([返金関連のすべてのイベント](https://docs.stripe.com/refunds.md#refund-events)をご覧ください)。その場合はお客様が顧客に返金を行う別の方法を手配する必要があります。 ご利用のプラットフォームで [Connect を使用したデスティネーション支払い](https://docs.stripe.com/connect/destination-charges.md#issue-refunds)を使用している場合、失敗した返金による売上はプラットフォームアカウントの Stripe 残高に入金されます。 ## 返金をキャンセルする 返金のタイプによっては、返金額が顧客に届く前にキャンセルできる場合があります。一部のカードの返金は、短期間だけキャンセルに対応しています。返金を支払いの差戻しとして処理しないでください。現在、カードの返金を行うには、ダッシュボードでキャンセルする必要があります。 一部の[支払い方法](https://docs.stripe.com/payments/bank-transfers.md#refunds)の場合、Stripe は、顧客に連絡をして銀行情報を収集してから、返金を処理します。銀行情報がまだ収集されていない場合は、返金をキャンセルできます。このタイプの返金では、API とダッシュボードの両方でのキャンセルがサポートされています。 キャンセルされた返金は `canceled` ステータスに移行します。キャンセルは、返金の失敗の 1 つのタイプであるため、属性 `failure_reason` と `failure_balance_transaction` が [Refund (返金](https://docs.stripe.com/api.md#refund_object)) に含まれています。 ご利用のプラットフォームで [Connect のデスティネーション支払い](https://docs.stripe.com/connect/destination-charges.md#issue-refunds) を使用している場合、キャンセルされた返金による売上は、プラットフォームアカウントの Stripe 残高に入金されます。 To cancel a refund using the Dashboard: 1. Find the payment associated with the refund in the [Payments](https://dashboard.stripe.com/payments) page. 1. Click the overflow menu (⋯) to the right of the payment, then select **Cancel refund**. 1. If there are multiple partial refunds, select the correct refund in the dropdown. 1. Confirm the refund cancellation by selecting **Yes, cancel refund**. Alternatively, you can click a specific payment and cancel the refund from its details page. ## 返金と差戻し 一部の返金 (元の支払いの直後に発行された返金) は、返金ではなく*差戻し* (A reversal is the cancellation of a transaction. Stripe doesn't withhold any fees for payment reversals)の形式で表示されます。差戻しの場合、元の支払いは顧客の明細書から削除され、個別の入金は発生しません。 *IC+* (A pricing plan where businesses pay the variable network cost for each transaction plus the Stripe fee rather than a flat rate for all transactions. This pricing model provides more visibility into payments costs) ユーザーは、通常、差戻しの方がネットワーク手数料が低くなるため、差戻しと返金のコストに差額が生じます。 #### ダッシュボード 返金が差戻しとして実行されるかどうかをダッシュボードで確認するには、以下を行います。 1. 返金に関連する支払いの「支払いの詳細ページ」を開きます。 1. タイムラインで、返金エントリの**詳細を表示する**をクリックします。 1. 差戻しの場合、対応するメッセージが表示されます。 #### API API を使用して、返金が差戻しとして実行されるかどうかを確認するには、以下を行います。 1. `refund.updated` [イベント](https://docs.stripe.com/refunds.md#refund-events)を使用するか、API で[返金を取得](https://docs.stripe.com/api/refunds/retrieve.md)します。 1. 差戻しの場合、`destination_details[card][type] = 'reversal'` が返されます。 ## 返金の追跡 返金を開始すると、Stripe は顧客の銀行またはカード発行会社に返金リクエストを送信します。銀行によって異なりますが、顧客は約 5 〜 10 営業日後に入金として返金を確認できます。返金を確認できない場合、顧客からお客様へ連絡がある場合があります。返金が顧客に表示されない場合は、以下のような理由が考えられます。 - 元の支払いの直後に発行された返金は、返金ではなく差戻しの形で表示されます。差戻しの場合、元の支払いは顧客の明細書から削除され、個別の入金は発行されません。 - 顧客の銀行またはカード発行会社が返金を正しく処理できなかった場合、返金が失敗する可能性があります。銀行は返金された金額を Stripe に返し、Stripe はそれをお客様の Stripe アカウント残高に戻します。このプロセスには、返金のリクエストから最大 30 日かかる場合があります。 顧客から返金に関する問い合わせを受けた場合、その返金に対応する主要な照会番号を提供すると役立ちます。カード返金の場合、これは**アクワイアラー照会番号 (ARN)**、**システム追跡監査番号 (STAN)**、または**検索参照番号 (RRN)** に該当します。ARN、STAN または RRN は、決済フローを遷移する際にカード取引に割り当てられる照会番号です。一方、現地の支払い方法による返金の場合、Stripe または Stripe の金融パートナーによって生成され、受取人の銀行または機関に送信される照会番号を使用することができます。顧客はこうした照会番号を使用して、返金が利用可能になる時期に関する詳細情報を入手できます。また、照会番号があることで、顧客は返金が開始されたという安心感を得ることができます。 返金の照会は以下の条件で利用できます。 - 一部の金融パートナーを対象にサポートされており、対象外の場合は「unavailable (利用不可)」と示されます。 - 返金を開始してから後工程を担当する銀行パートナーから ARN を受け取るまでに最長 7 営業日かかります。 - 差戻しの場合は、元の支払いが処理されないため ARN を使用できません。ARN をサポートしないカードネットワークについて、Stripe はシステム追跡監査番号 (STAN) や検索参照番号 (RRN) など別の照会番号を提供するようにしています。 #### ダッシュボード ダッシュボードを使用して照会番号を確認するには、以下を行います。 1. 返金に関連する支払いの「支払いの詳細ページ」を開きます。 1. タイムラインで、返金エントリの**詳細を表示する**をクリックします。 1. 利用可能な場合、Stripe はクリップボードに ARN または STAN を表示します。 #### API API を使用して照会番号を確認するには、以下を行います。 1. `refund.updated` [イベント](https://docs.stripe.com/refunds.md#refund-events)を使用するか、API で[返金を取得](https://docs.stripe.com/api/refunds/retrieve.md)します。 1. 利用可能な場合、Stripe は以下の API レスポンスシェイプでクレジットカードを返金する照会番号を表示します: ``` { id: "re_1234", destination_details: { card: { reference: "123456", reference_status: "available", reference_type: "acquirer_reference_number", type: "refund" }, type: "card", } } ``` または、選択された国内主要決済手段の照会番号を以下の API レスポンスフォーマットで表示します: ``` { id: "pyr_1234", destination_details: { eu_bank_transfer: { reference: "123456", reference_status: "available" }, type: "eu_bank_transfer", } } ``` ## 支払いをキャンセルする 支払いのステータスが `uncaptured` の場合に限り、ダッシュボードを使用して支払いをキャンセルできます。それ以外のステータスの支払いをキャンセルするには、API を使用する必要があります。 #### ダッシュボード ダッシュボードで未キャプチャーの支払いをキャンセルするには、以下の手順を使用します。 1. [支払い](https://dashboard.stripe.com/payments)ページでキャンセルする支払いを探します。 1. Click the payment, then select **Cancel**. 1. Select a reason for canceling, then click **Yes**. If you select **Other**, you must add a note that explains the reason for canceling the payment. #### API 支払いを回収する予定がなくなった場合、[PaymentIntent をキャンセル](https://docs.stripe.com/api/payment_intents/cancel.md)できます。PaymentIntent は `requires_confirmation` または `requires_payment_method` などの未完了のステータスのままにできます。未完了の PaymentIntent は、決済時の購入完了率の把握に役立つためです。次のコード例は、PaymentIntent のキャンセルリクエストを示したものです。 ```curl curl -X POST https://api.stripe.com/v1/payment_intents/pi_32AkjQ5H4Bas2eAolX13/cancel \ -u "<>:" ``` PaymentIntent は、次のいずれかのステータスの場合にのみキャンセルできます。 - `requires_payment_method` - `requires_capture` - `requires_confirmation` - `requires_action` - `processing` (関連付けられている支払い方法がアメリカの銀行口座である場合のみ) PaymentIntent が正常に完了すると、キャンセルできません。PaymentIntent をキャンセルすると、追加の支払いにその PaymentIntent を使用することができなくなります。キャンセル後の PaymentIntent に対してアプリケーションが操作を実行しようとすると、すべてエラーで失敗します。 ## 返金イベント Stripe は、返金が作成または変更されるたびに、[Events (イベント)](https://docs.stripe.com/api/events.md#events) をトリガーします。また、審査のクローズなど、他のアクションによっても返金に関連するイベントがトリガーされます。 構築済みの Stripe システムが[イベントを処理する](https://docs.stripe.com/webhooks/handling-payment-events.md)ように設定されていることと、[webhook の署名を検証して](https://docs.stripe.com/webhooks.md#verify-events)受信したイベントが Stripe からのものであることを確認していることを確認してください。また、返金処理の状況を顧客や社内チームに通知するための内部ロジックを構築する必要もあります。少なくとも、`refund.created` イベントをリッスンすることをお勧めします。 以下の表には、返金に関連する最も一般的なイベントが示されています。 | イベント | 説明 | | ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `refund.created` | 返金が作成されたときに送信されます。 | | `refund.updated` | 返金が更新されたときに送信されます。更新には、メタデータの追加や、[返金を追跡するための参照番号としての ARN](https://docs.stripe.com/refunds.md#tracing-refunds) などの詳細の提供が含まれます。 | | `refund.failed` | [返金が失敗した](https://docs.stripe.com/refunds.md#failed-refunds)ときに送信されます。 | | `charge.dispute.funds_reinstated` | 不審請求の申請がクローズされた後、[一部返金済みの支払い](https://docs.stripe.com/disputes/best-practices.md#partial-refund-bp)を含め、売上がアカウントに返金されたときに送信されます。 | | `charge.refunded` | 一部返金を含め、支払いが返金されたときに送信されます。`refund.created` をリッスンすると、返金に関する情報を確認できます。 | | `review.closed` | 送信されるのは、[レビュー](https://docs.stripe.com/api/events/types.md#review_object)がクローズされたときです。クローズの理由は `reason` フィールドで確認でき、以下のいずれかになります:`approved`、`disputed`、`canceled`、`refunded`、または `refunded_as_fraud` | | `source.refund_attributes_required` (Deprecated) | 返金や支払い金額の誤りを処理するために、返金の属性が受取側のソースに必要な場合に送信されます。 | | `charge.refund.updated` (非推奨) | 返金が更新されたときに、対応する支払いを含む返金に対してのみ送信されます。代わりに、すべての返金の更新について `refund.updated` をリッスンします。 | ## コストの最適化 取引時間近に大量の返金を処理する場合は、返金コストを削減するために[手動でオーソリとキャプチャー](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md)を行うことをお勧めします。手動でオーソリとキャプチャーを実行することで、支払いがキャプチャーされる前に支払いをキャンセルしたり、また返金を処理する代わりにキャプチャーした金額を減らしたりすることで、コストがより適切に管理されます。 ## See also - [Stripe 残高への資金の追加](https://docs.stripe.com/get-started/account/add-funds.md) - [プラットフォーム残高への資金の追加](https://docs.stripe.com/connect/top-ups.md) - [価格を各地域に適応させる](https://docs.stripe.com/payments/currencies/localize-prices.md)