# Issuing のオーソリ Issuing を使用してオーソリリクエストを処理する方法をご紹介します。 カードを使用して購入が行われると、オーソリリクエストが生成されます。このリクエストは次のステップに従って承認または拒否されます。 1. Stripe は [Issuing に使用される残高](https://docs.stripe.com/issuing/funding/balance.md)に十分な資金があるかどうか、カードが有効かどうか、および[支出管理](https://docs.stripe.com/issuing/controls/spending-controls.md)でオーソリが許可されているかどうかを確認します。場合によっては、Stripe はこの段階で[即座にオーソリリクエストを承認または拒否します](https://docs.stripe.com/issuing/purchases/authorizations.md#scenarios-without-a-real-time-authorization-request)。 1. Stripe は `issuing_authorization.request` イベントを送信します。リアルタイムのオーソリの Webhook をお持ちでない場合、`issuing_authorization.request` は送信されずにオーソリが承認されます。 > #### Stripe のイベントをリッスンする > > オーソリを同期的に承認/拒否できるように、このイベントをリッスンする[リアルタイムのオーソリ Webhook](https://docs.stripe.com/issuing/controls/real-time-authorizations.md) を設定します。 1. Webhook イベントに直接応答することで、オーソリを[承認または拒否](https://docs.stripe.com/issuing/controls/real-time-authorizations.md)できます。2 秒以内に `issuing_authorization.request` を承認または拒否しない場合、Stripe は [Webhook のタイムアウト設定](https://dashboard.stripe.com/settings/issuing)を使用して、オーソリを承認または拒否します。 1. Stripe は、`issuing_authorization.created` イベントを送信して、[Authorization (オーソリ)](https://docs.stripe.com/api.md#issuing_authorization_object) の作成とその判断を通知します。 (See full diagram at https://docs.stripe.com/issuing/purchases/authorizations) ## リアルタイムのオーソリリクエストを行わない場合のシナリオ 場合によっては、Stripe からお客様に `issuing_authorization.request` イベントを送信せずに、Stripe がカードネットワークからオーソリリクエストを受け取り、リクエストを承認または拒否します。 - Stripe がオーソリリクエストを承認できないと判断した場合 (カードが無効な場合や[支出管理](https://docs.stripe.com/issuing/controls/spending-controls.md)によって許可されなかった場合など)、Stripe はリクエストを拒否します。 - お客様が[リアルタイムのオーソリ Webhook](https://docs.stripe.com/issuing/controls/real-time-authorizations.md) を設定しておらず、Stripe がオーソリリクエストを拒否する理由がない場合、Stripe はそのリクエストを承認します。 その場合も Stripe は `issuing_authorization.created` イベントを送信して、[Authorization (オーソリ)](https://docs.stripe.com/api.md#issuing_authorization_object) が作成されたことを通知します。 ### 返金 多くのビジネスは、返金のオーソリリクエストをリアルタイムで送信します。Stripe では、これらのリクエストを処理するためのデフォルトのロジックを用意しています。ビジネスが返金の送金を続行すると、[Refund Transaction (返金取引)](https://docs.stripe.com/issuing/purchases/transactions.md?issuing-capture-type=refunds#handling-other-transactions)オブジェクトが表示されます。 ## オーソリの更新 Stripe がオーソリリクエストを受け取ると、`issuing_authorization.created` [Webhook](https://docs.stripe.com/webhooks.md) イベントが送信されます。オーソリが承認された場合、 Issuing 残高 から `amount` が差し引かれ、オーソリがキャプチャーされるか、無効化されるか、キャプチャーされずに期限切れになるまでリザーブに留保されます。オーソリが拒否された場合、ステータスは `closed` に設定され、留保は行われません。 オーソリがキャプチャーされると、[取引](https://docs.stripe.com/issuing/purchases/transactions.md)が作成され、オーソリの `status` は `closed` に設定されます。 オーソリリクエストが無効化された場合、`status` が `reversed` に設定され、`amount` が `0` に設定された `issuing_authorization.updated` [Webhook](https://docs.stripe.com/webhooks.md) イベントが送信されます。無効化された金額は Issuing 残高に戻され、これにより元のオーソリによる残高への影響は取り消されます。 Stripe は、一定期間後にオーソリの残高の保留を解除することで、オーソリを期限切れにすることができます。オーソリリクエストがキャプチャーされずに期限切れになった場合、API バージョン 2025-03-31.basil 以降では `status` が `expired` に設定され、API バージョン 2025-03-31.basil 以前ではステータスが `reversed` に設定された `issuing_authorization.updated` [Webhook](https://docs.stripe.com/webhooks.md) イベントが送信されます。`amount` フィールドは、キャプチャーの遅れによって後で承認される残りの金額を表します。期限切れの金額は Issuing 残高に戻され、元のオーソリによる残高への影響は基本的に取り消されます。 次の表は、オーソリに対する操作の順序と、各操作に関連するステータスの一覧です。 | オーソリオブジェクトに対する操作 | ステータス (バージョン 2025-03-31.basil 以降) | | -------------------------------------------- | --------------------------------- | | リアルタイムのオーソリリクエストへの応答を待つ | 保留 | | リアルタイムのオーソリリクエストに関連付けられたレスポンスでオーソリが拒否される | 終了 | | オーソリが承認されるが、キャプチャーは保留される | 保留 | | オーソリが承認され、その後全額キャプチャーされる | 終了 | | オーソリが承認され、その後一部キャプチャーされる | 保留 | | オーソリが承認され、その後全額差戻される | 差戻し済み | | オーソリが承認され、その後一部差戻される | 保留 | | オーソリが承認され、その後 Stripe によって期限切れになる | 期限切れ | | オーソリが承認され、一部キャプチャーされ、その後残高が全額差戻される | 終了 | | オーソリが承認され、一部キャプチャーされ、その後 Stripe によって期限切れになる | 終了 | | オーソリが承認され、一部差戻され、その後残高が全額キャプチャーされる | 終了 | | オーソリが承認され、一部差戻され、その後 Stripe によって期限切れになる | 期限切れ | | オーソリが承認され、Stripe によって期限切れになり、その後全額がキャプチャーされる | 期限切れ | | オーソリが承認され、Stripe によって期限切れになり、その後一部キャプチャーされる | 期限切れ | | オーソリが承認され、Stripe によって期限切れになり、その後全額が差戻される | 差戻し済み | | オーソリが承認され、Stripe によって期限切れになり、その後一部差戻される | 期限切れ | ## 異なる通貨での購入 カードネットワークがサポートする通貨であれば、どの通貨でもカードを使用して購入できます。Stripe は売上を保留する際、カードネットワークの日次レートを使用して、購入の通貨をカードの通貨に自動的に変換します。 `merchant_amount` は、現地通貨での購入費用を表します。`amount` フィールドは、カードの通貨での `Transaction` の予測金額を表し、`Authorization` がキャプチャされるまで確定しません。 ## その他のオーソリを処理する 通常のオーソリに加え、処理に対応できるようにする必要があるその他のオーソリもいくつか存在します。 #### 部分的オーソリ 一部のオーソリは、支出を制限するために部分的にオーソリされます。これにより元の金額より低い特定の金額でオーソリできるので、購入全体に充当できるだけの十分な資金がない場合に便利です。 アメリカのガソリンスタンドは、この特殊な例です。[給油機の取引](https://docs.stripe.com/issuing/purchases/authorizations.md#fuel-dispenser-transactions)の詳細をご確認ください。 部分的にオーソリされると、オーソリリクエストの `is_amount_controllable` フィールドは `true` に設定されます。Webhook レスポンスの本文、または [approve](https://docs.stripe.com/api/issuing/authorizations/approve.md) コールで `amount` を設定することで、承認する金額を指定できます。 キャッシュバックのオーソリを部分的に承認する場合は、キャッシュバックの全額を承認する必要があります。`cashback_amount` を下回る承認済みの `amount` を設定することはできません。 (See full diagram at https://docs.stripe.com/issuing/purchases/authorizations) ### テスト 新しい部分的なオーソリをシミュレーションするには、Issuing テストヘルパーで [Authorization Create (オーソリ作成) API](https://docs.stripe.com/api/issuing/authorizations/test_mode_create.md) を使用できます。 ```curl curl https://api.stripe.com/v1/test_helpers/issuing/authorizations \ -u "<>:" \ -d "card={{ISSUINGCARD_ID}}" \ -d amount=100 \ -d "merchant_data[category]=automated_fuel_dispensers" \ -d is_amount_controllable=true ``` #### 増分オーソリ 増分オーソリは、元のオーソリの後で行う追加のオーソリです。これは、ホテル業界で一般的に使用され、ルームサービスや、チェックアウト後のクリーニング料金などに使用されます。 (See full diagram at https://docs.stripe.com/issuing/purchases/authorizations) 通常のオーソリと同様に、同じ [Webhook の実装](https://docs.stripe.com/issuing/controls/real-time-authorizations.md)を使用して、増分リクエストを承認または拒否することができます。増分オーソリが発生すると、Stripe は元の `Authorization` オブジェクトに対して追加の `issuing_authorization.request` イベントを送信するため、更新後の金額を承認するかどうかを決定できます。このオブジェクトには、リクエストされた増分金額に対応する `pending_request.amount` が含まれた更新後の `pending_request` が設定されます。 (See full diagram at https://docs.stripe.com/issuing/purchases/authorizations) 元のオーソリは承認されたまま残るため、`approved` が `true` であること、そして `status` はまだクリアされていないため `pending` であることに注意してください。最上位の `amount` フィールドは、オーソリに承認された元の金額に対応します。上記の例では、増分金額が承認された場合、`authorization.amount` が 120 USD に更新されます。増分金額が拒否された場合、`approved` は `true` のままになり (元のオーソリリクエストは承認されているため)、`authorization.amount` は 100 USD のままになります。 承認された増分金額は Issuing 残高から差し引かれます。 増分オーソリを承認すると、有効期限が延長されます。 オーソリのリクエストの履歴は、`Authorization` の `request_history` で確認できます。 ### テスト オーソリの増分をシミュレーションするには、Issuing テストヘルパーで [Authorization Increment (オーソリ増分) API](https://docs.stripe.com/api/issuing/authorizations/test_mode_increment.md) を使用できます。 ```curl curl https://api.stripe.com/v1/test_helpers/issuing/authorizations/{{ISSUINGAUTHORIZATION_ID}}/increment \ -u "<>:" \ -d increment_amount=4242 ``` #### 一部差戻し ビジネスがオーソリされた金額を減らすことを決定した場合、一部差戻しを実行できます。 一部差戻しは元のオーソリに影響し、元のオーソリの `amount` と `merchant_amount` を引き下げる `issuing_authorization.updated` イベントを作成します。保留された余剰の売上はすぐに利用可能な残高に戻されます。 ### テスト オーソリの部分差戻しをシミュレーションするには、Issuing テストヘルパーで [Authorization Reverse (オーソリ差戻し) API](https://docs.stripe.com/api/issuing/authorizations/test_mode_reverse.md) を使用できます。`reverse_amount` パラメーターを指定しない場合、全額が差戻されます。 ```curl curl https://api.stripe.com/v1/test_helpers/issuing/authorizations/{{ISSUINGAUTHORIZATION_ID}}/reverse \ -u "<>:" \ -d reverse_amount=4242 ``` #### カード確認 加盟店は、カードの有効性を確認するためにカード認証 (「アカウント認証」「アカウントステータス照会」「ゼロ金額承認」と呼ばれることもあります) を使用できます。この方法では、資金の請求は行いません。 たとえば、サブスクリプションサービスではカード確認を使用して、無料トライアルへの登録に使用されたカードを検証できます。 デフォルトでは、Stripe は基本的なセキュリティチェックに合格したすべてのクレジットカード確認を承認します。 ## 給油機の取引 カード保有者が給油機 ([MCC 5542](https://docs.stripe.com/issuing/categories.md)) で購入しようとすると、1 USD の `issuing_authorization.request` が送信されます (「ステータスチェック」と呼ばれます)。未確定の購入金額に充当するため、デフォルトで 100 USD の金額が留保されます。カード保有者が給油を終了すると、`issuing_authorization.updated` イベントが送信され、購入金額が反映されます。 フィールド `is_amount_controllable` を `true` に設定して給油機で[部分的なオーソリ](https://docs.stripe.com/issuing/purchases/authorizations.md?issuing-authorization-type=partial_authorization#handling-other-authorizations)を許可する場合、全額に満たない承認金額 (例: 50 USD) で応答できます。ただし、給油機で部分的なオーソリが許可されない場合は、ネットワークのデフォルト値 (指定額は Stripe で無視されます) を承認するか、全額のオーソリを拒否する必要があります。 [商用フリートプログラム](https://docs.stripe.com/issuing/customize-your-program.md#card-product-type)の場合、Stripe は燃料が供給された後に、Issuing Authorization [フリート](https://docs.stripe.com/api/issuing/authorizations/object.md#issuing_authorization_object-fleet)および[燃料](https://docs.stripe.com/api/issuing/authorizations/object.md#issuing_authorization_object-fuel)ハッシュで一部の情報を受け取ります。その結果、これらのフィールドの一部は `issuing_authorization.request` Webhook 中には入力されず、後で `issuing_authorization.updated` Webhook で送信されます。 ## プラットフォーム向け金融口座との併用 [FinancialAccounts](https://docs.stripe.com/api/treasury/financial_accounts.md) に保管された売上を使用するクレジットカードのオーソリには、関連リソースへの参照を持つ [`treasury` フィールド](https://docs.stripe.com/api/issuing/authorizations/object.md#issuing_authorization_object-treasury)] があります。[取引](https://docs.stripe.com/api/treasury/transactions.md)、[ReceivedCredit](https://docs.stripe.com/api/treasury/received_credits.md)、[ReceivedDebit](https://docs.stripe.com/api/treasury/received_debits.md)。 ## ダッシュボードまたは API にオーソリ拒否の記録がないシナリオ 場合によっては、Issuing カードによるオーソリが拒否され、お客様と連結アカウントのどちらも Webhook イベントまたはオーソリレコード (`iauth_`) を受信しないことがあります。 この場合、 Stripe サポートに問い合わせて支援を求める前に、拒否されたオーソリに関する情報をできるだけ多く収集してください。 以下の情報を含めることをお勧めします。 - 支払い拒否の時刻 - 購入したカード保有者 (`ich_`) - オーソリに使用されたカード (`ic_`) - オーソリに関与する加盟店 - オーソリに関連する他の状況 関連情報が Stripe に送信される前にオーソリが拒否される可能性があります。この場合、 Stripe はオーソリリクエストの記録を受け取っていないため、該当するカード保有者は、拒否の原因を特定するためにビジネスに直接問い合わせる必要があります。 Stripe がサポートできる Webhook イベントや認証オブジェクトが関連付けられていない状態で、追加の拒否が発生する場合があります。支払い拒否の分類を判断するには、上記の情報を添えて Stripe サポートにお問い合わせください。支払い拒否を調査するのに最も適した手順を決めるお手伝いをします。