# 入金モードのステーブルコイン決済 API のみの入金アドレスでステーブルコインによる決済を受け付けます。 入金モードは、リクエストされたネットワークごとに入金アドレスを返す、APIのみの暗号資産決済フローです。顧客が資金を入金アドレスに送金すると、資金がオンチェーンで決済された後、[PaymentIntent](https://docs.stripe.com/api/payment_intents.md) が自動的に*キャプチャー* (Another way to say that you receive payment for a charge is to say that you "capture" the charge. Capturing the charge is often asynchronous and takes place after authorization. The capture is what transfers the money from the customer to you)されます。 ## Before you begin 入金モードへのアクセスが必要です。 > 顧客は世界中でステーブルコインを決済に利用できますが、ステーブルコインの決済を受け付けることができるのはアメリカ企業のみです。 ステーブルコイン決済の受け付けを開始するには、以下のようにします: 1. [Stripe アカウントを設定](https://docs.stripe.com/get-started/account/set-up.md)していることを確認してください。 1. ダッシュボードの[決済手段](https://dashboard.stripe.com/settings/payment_methods)設定に移動し、**ステーブルコインと暗号資産**の決済手段をリクエストします。[機械決済](https://docs.stripe.com/payments/machine.md)のみにステーブルコインまたは暗号資産による決済を受け付ける場合は、マシン決済専用の別の[決済方法設定](https://docs.stripe.com/payments/payment-method-configurations.md)を作成することをお勧めします。 1. Stripe はアクセスリクエストを審査し、必要に応じて詳細をご連絡する場合があります。リクエストを審査する間、決済手段は**保留中**と表示されます。 1. リクエストが承認されると、ダッシュボードで**ステーブルコインと暗号資産**が有効になります。 ## PaymentIntent を作成する `暗号資産`の決済手段と `mode: "deposit"` にして [PaymentIntent](https://docs.stripe.com/api/payment_intents.md) を作成します。`deposit_options.networks` を使用して、入金アドレスのネットワークを指定します。 > #### API バージョン > > この機能には `2026-03-04.preview` API バージョンが必要です。Stripe クライアントの初期化時に `Stripe-Version` ヘッダーを `2026-03-04.preview` に設定します。 ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -H "Stripe-Version: 2026-03-04.preview" \ -d amount=5000 \ -d currency=usd \ -d "payment_method_types[]=crypto" \ -d "payment_method_data[type]=crypto" \ -d "payment_method_options[crypto][mode]=deposit" \ -d "payment_method_options[crypto][deposit_options][networks][]=base" \ -d "payment_method_options[crypto][deposit_options][networks][]=tempo" \ -d "payment_method_options[crypto][deposit_options][networks][]=solana" \ -d confirm=true ``` ## PaymentIntent レスポンス 確定された `PaymentIntent` には`next_action` に `crypto_display_details` が含まれ、これには各ネットワークの入金アドレスと `supported_tokens` が含まれます: ```json { "id": "pi_123", "amount": 5000, "currency": "usd", "status": "requires_action", "next_action": { "type": "crypto_display_details", "crypto_display_details": { "deposit_addresses": { "base": { "address": "0xbase_address", "supported_tokens": [ { "token_currency": "usdc", "token_contract_address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" } ] }, "tempo": { "address": "0xtempo_address", "supported_tokens": [ { "token_currency": "usdc", "token_contract_address": "0x20c000000000000000000000b9537d11c60e8b50" } ] }, "solana": { "address": "So1ana_deposit_address", "supported_tokens": [ { "token_currency": "usdc", "token_contract_address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" } ] } } } } } ``` 顧客に入金アドレスを、予想される金額とサポートされるトークンとともに提示します。顧客は指定されたネットワーク上の入金アドレスに正しいトークンを送信します。 ## 決済ライフサイクル 次の手順を使用して、入金モードの `PaymentIntent` が確認から完了までどのように移動するかを理解します。 1. `PaymentIntent` は、入金アドレスの詳細とともに`requires_action` ステータスになります。[Stripe ダッシュボード](https://dashboard.stripe.com/payments)では、顧客が資金を送金するのを待っている間、これらの PaymentIntents が**未完了**として表示されます。 1. 顧客がチェーン上の入金アドレスに資金を送金します。 1. Stripe はオンチェーン取引を検出し、取引の詳細を検証している間、`PaymentIntent` を `processing` に移動します。 1. 検証が完了すると、`PaymentIntent` は `succeeded` に移行します。 > #### 送金検出の遅延 > > ネットワークが送金を確認してから弊社が検出するまでに数分かかる場合があります。 取引が検証に失敗した場合、または入金を照合できない場合、`PaymentIntent` は `requires_payment_method` に戻ります。それ以外の場合、`PaymentIntent` は `requires_action` のままになります。 ## 取引内容 `PaymentIntent`が成功したら、`PaymentIntent`で`latest_charge`を展開し、チェーン上の取引詳細を取得します。Charge の[payment_method_details.crypto](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-crypto)ハッシュには、取引ハッシュ、買い手ウォレットアドレス、ネットワーク、トークン通貨などのフィールドが含まれます。 ## 障害モード 次のシナリオを使用して、入金を `PaymentIntent` と照合できない場合を理解してください。 - **ネットワークまたは資産の誤り**: 顧客が送信したトークンのネットワークまたはトークン契約が入金アドレスと一致しない場合、資金を自動的に照合または返金することはできません。 - **有効期限後の資金**: `PaymentIntent` の有効期限後に顧客が資金を送金した場合、資金を自動的に照合したり、返金したりすることはできません。 - **過払いまたは過少決済**: 顧客が送金するトークン金額は、`PaymentIntent` の金額と正確に一致する必要があります。顧客が指定した金額より多い、または少ない金額を送金した場合、資金を自動的に照合または返金することはできません。 - 送金されるトークンの金額は、`PaymentIntent` の金額と正確に一致している必要があります。法定通貨とステーブルコインでは小数点以下の精度が異なるため、送金を計算する際にこの違いを考慮してください。たとえば、USD では小数点以下第 2 位を使用しますが、USDC では 6 位を使用します。1.01 USD (101 補助単位) の `PaymentIntent` を履行するには、顧客が 1.010000 USDC (1,010,000 補助単位) を正確に送金する必要があります。 ## 返金 入金モードの決済を返金すると、検出されたオンチェーン取引から送金側のウォレットアドレスに資金が返金されます。 > 返金する前に、必ず宛先アドレスを確認してください。顧客が交換ウォレットまたは一括ウォレットから支払った場合、返金された資金を回収できない可能性があります。 ## トークンとネットワークサポート `暗号資産`の決済手段と `mode: deposit` を使用した `PaymentIntents` は、次のネットワークで USDC に対応しています。 | Network | トークン | トークンコントラクトアドレス | | ------- | ---- | ------------------------------------------------ | | Tempo | USDC | `0x20c0000000000000000000000000b9537d11c60e8b50` | | Base | USDC | `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | | Solana | USDC | `EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v` | ## 組み込みをテストする [サンドボックス](https://docs.stripe.com/sandboxes.md)は暗号資産テストネットを監視しないため、送信されたテストネット取引を自動的に検出することはできません。代わりに、[テストヘルパーエンドポイント](https://docs.stripe.com/api/payment_intents/simulate_crypto_deposit.md?api-version=2026-03-04.preview)を使用して、サンドボックスPaymentIntentsの暗号資産入金をシミュレーションします。これにより、チェーン上の取引に依存することなく、組み込みをすぐに検証できます。 ```curl curl https://api.stripe.com/v1/test_helpers/payment_intents/{{PAYMENT_INTENT_ID}}/simulate_crypto_deposit \ -u "<>:" \ -H "Stripe-Version: 2026-03-04.preview" \ -d transaction_hash=0x00000000000000000000000000000000000000000000000000000testsuccess \ -d network=base \ -d token_currency=usdc \ -d buyer_wallet=0x0000000000000000000000000000000000000000 ``` さまざまな結果をシミュレーションするには、`transaction_hash` を次のいずれかに設定します。 | 取引ハッシュ | 結果 | | --------------------------------------------------------------------- | ---------------------------------------------------------------- | | `0x00000000000000000000000000000000000000000000000000testsuccess` | `PaymentIntent` は 15 秒以内に成功します | | `0x0000000000000000000000000000000000000000000000000000000testfailed` | 決済は失敗し、`PaymentIntent` は 15 秒以内に `requires_payment_method` に戻ります |