> ## Documentation Index
> Fetch the complete documentation index at: https://waffo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ステーブルコイン決済

> USDC と USDT の受け入れ：2 つの連携方式のどちらを選ぶか、送信すべき正確なチェーンの値、各方式での受取アドレスの扱い、金額と小数のルール、支払い期限、購入者の送金完了が意味すること・意味しないこと、法定通貨での精算、そしてステーブルコイン注文が Portal のどこに表示されるか。

このページでは、通常のウォレット / ホスト型チェックアウト経由のステーブルコイン受け入れを扱います。x402 プロトコル上に
構築された AI エージェント向けの経路は、独自の対象範囲、リクエストフィールド、エラー動作を持ち、
[x402 ステーブルコイン収単](/docs/ja/developer-docs/use-cases/x402-stablecoin-acquiring) に記載されています。
例外ケースと返金は
[ステーブルコインの例外と返金](/docs/ja/support/stablecoin-exceptions-faq) にあります。

受け入れは加盟店契約ごとに有効化されます。構築を始める前に、CRYPTO 決済プロダクトとチェーンセットのプロビジョニングを
連携チームに依頼してください。

## ステーブルコインを受け入れる方法はいくつあり、どちらを選べばよいですか？

2 つあり、これは 1 つの連携のバリエーションではありません。誰が支払者であるか、そしてお客様のサーバーが何をするかが異なります。

| | ウォレット / ホスト型チェックアウト経路 | x402 署名経路 |
| - | - | - |
| 支払者 | 暗号資産ウォレットを持つ人 | 通常は AI エージェント |
| 記載場所 | このページ | [x402 ステーブルコイン収単](/docs/ja/developer-docs/use-cases/x402-stablecoin-acquiring) |
| 通貨 | `USDC` と `USDT` | `USDC` のみ |
| チェーン | 契約しているチェーンセット | Base のみ |
| 支払者の支払い方法 | 受取アドレスへ送金する | オンチェーンの承認に署名する |
| 受取アドレス | 注文ごとに発行 | `wallet/inquiry` が返す加盟店レベルのアドレス |
| 支払い期限 | 注文の有効期限 | 402 チャレンジ内のタイムアウト |
| 返金 | `order/refund` の `refundAddress` | 同じ |

好みではなく支払者で選んでください。ウォレットを持つ人間は x402 チャレンジに支払えず、エージェントにはチェックアウトを
描画するブラウザーがありません。両方に販売するなら、両方を連携します。

## ステーブルコインを受け入れるには、注文作成時に何を送信しますか？

ウォレット経路では、3 つの要素がステーブルコイン注文を識別します。

| フィールド | 値 |
| - | - |
| `payMethodType` | `CRYPTO` |
| `payMethodName` | `USDC` または `USDT` |
| `payMethodProperties.cryptoChain` | 購入者が支払うチェーン — [値は下記](#what-exactly-do-i-put-in-the-chain-field) |

この決済手段は単一の国ではなくグローバルの地域コード `GLB` の下でカタログ登録されているため、購入者の国で絞り込まれません。
価格設定は他のクロスカレンシー注文と同じです。`orderCurrency` と `orderAmount` は価格設定通貨（通常は `USD`）のままにし、
`userCurrency` に購入者が実際に支払う通貨である `USDC` または `USDT` を設定してください。
[価格設定通貨の戦略](/docs/ja/developer-docs/use-cases/pricing-currency) を参照してください。

## 購入者にチェーンを選ばせる処理は自分で作る必要がありますか？

自社のチェックアウトページを運用する場合のみです。

* **Waffo のホスト型チェックアウト** — `payMethodProperties.cryptoChain` を省略してください。コンサルテーションのステップが
  これを不足フィールドとして、その注文で利用可能なチェーンの選択肢とともに返し、チェックアウトが注文確定前に購入者の選択を
  収集します。
* **自社のチェックアウトページ** — チェーンの選択肢を自分で提示し、選ばれた値を `payMethodProperties.cryptoChain` で
  返送してください。

返された選択肢の一覧は正本として扱ってください。お客様のアカウントとそのステーブルコインで利用可能なものを反映しており、
下記のプラットフォーム全体の一覧より狭いことがあります。

## 購入者が間違ったチェーンを選べないよう、1 つのチェーンだけを提示できますか？

はい。選択肢の一覧はそのためにあります。注文で提示されるチェーンはアカウントの設定から来るため、単一チェーンの設定は
単一チェーンの選択肢一覧を生み、ホスト型チェックアウトでは実質的にチェーンのセレクターが表示されません。クライアント側で
一覧を絞り込むのではなく、希望するチェーンセットを連携担当者に依頼してください。クライアント側のフィルターでは、
`order/create` では広い集合が依然として受け付けられてしまいます。

これが防**げない**ことにも注意してください。チェーンを絞り込むのは購入者がどの注文に支払うかの選択肢を減らすことであって、
購入者が自分のウォレットから別のチェーンで送金するのを止めることはできません。それが
[ステーブルコインの例外と返金](/docs/ja/support/stablecoin-exceptions-faq) の `WRONG_CHAIN` のケースです。

## チェーンのフィールドには正確に何を入れますか？

チェーンの**コード**を文字列で入れます — `Base` ではなく `BASE` であり、数値のチェーン ID でもありません。照合は
大文字小文字を区別せず、各チェーンの略称もコードの代わりに受け付けられますが、コードを送信してください。それが注文に
返される値であり、返金の経路が読み取る値です。

| チェーン | 送信するコード | 略称も受け付け | アドレスファミリー |
| - | - | - | - |
| Ethereum | `ETHEREUM` | `ETH` | EVM |
| Polygon | `POLYGON` | `MATIC` | EVM |
| Arbitrum One | `ARBITRUM` | `ARB` | EVM |
| Base | `BASE` | `BASE` | EVM |
| Optimism | `OPTIMISM` | `OP` | EVM |
| Avalanche | `AVALANCHE` | `AVAX` | EVM |
| BNB Smart Chain | `BSC` | `BSC` | EVM |
| Solana | `SOLANA` | `SOL` | Solana |
| Tron | `TRON` | `TRX` | Tron |

テストネットは別のコードで、サンドボックスがそれ用に設定されている場合に使用できます。

| テストネット | コード | 対応するメインネット |
| - | - | - |
| Ethereum Sepolia | `ETH-SEPOLIA` | `ETHEREUM` |
| Polygon Amoy | `AMOY` | `POLYGON` |
| Arbitrum Sepolia | `ARBITRUM_SEPOLIA` | `ARBITRUM` |
| Base Sepolia | `BASE_SEPOLIA` | `BASE` |
| Optimism Sepolia | `OPTIMISM_SEPOLIA` | `OPTIMISM` |
| Avalanche Fuji | `FUJI` | `AVALANCHE` |
| Solana Testnet | `SOLANA_TEST` | `SOLANA` |

Tron と BNB Smart Chain にはテストネットのコードがないため、この 2 つはテストネットで検証できません。

よく話題になる命名上の 2 点：

* **`BSC` は BNB Smart Chain です。** チェーンのコードは `BSC` で、ネットワークは BNB Smart Chain です。「BNB」単体は
  ネットワークのトークンであり、チェーンコードではありません。`BSC` を送信してください。
* **Avalanche は C-Chain を指します。** 有効なのは C-Chain（EVM）のアドレスのみで、X-Chain と P-Chain のアドレスは
  返金を含めて即座に拒否されます。

構築の基準にすべきは**アドレスファミリー**の列です。チェーンが受け付けるアドレス形式を決めるもので、特に返金で重要になります。
[ステーブルコインの例外と返金](/docs/ja/support/stablecoin-exceptions-faq) を参照してください。

## チェーンのフィールドは必須ですか？ 省略するとどうなりますか？

リクエスト上は必須ではありませんが、チェーンがなければ注文は支払えないため、省略した場合は次の 2 つの結果のいずれかになり、
デフォルトが適用されることはありません。

* **ホスト型チェックアウト**では、コンサルテーションが利用可能な選択肢とともに不足フィールドとして報告し、購入者の選択が
  それを補います。
* **自社のチェックアウト**では、同じ不足フィールドのレスポンスが返り、選択を収集して再送信するのはお客様の役割です。

フォールバックのチェーンはありません。最も安いチェーンや最も人気のあるチェーンが自動的に選ばれるとは考えないでください。

## どのステーブルコインがサポートされていますか？

ウォレット経路では `USDC` と `USDT`、x402 経路では `USDC` のみです。その他のトークンはありません — 非ステーブルコインの
トークンも、小規模なトークンも、加盟店が発行するトークンもです。

それ以外のものを受取アドレスに送っても有効な支払いにはなりません。チェーンのネイティブトークン（たとえば ETH）や
他のトークンの送金は注文を支払ったことにならず、注文とは別のチェーンでの送金も同様です。

## 最小金額や最大金額はありますか？

はい。ステーブルコイン特有のルールではなく、他の決済手段と同じく契約上のものです。公開されている
[決済手段カタログ](/docs/ja/essentials/payment-methods) には `USDC` と `USDT` のカタログレベルの範囲が記載されています。
お客様に実際に適用される範囲は、その決済手段についての自社の設定エントリーの `orderAmountMin` / `orderAmountMax` であり、
`/api/v1/paymethodconfig/inquiry` または Portal の **Service → Payin** から確認できます。

注文を作成する前に確認してください。範囲外の金額は注文作成時に `A0008` で拒否されます。アカウントレベルの 2 つの上限との
違いは
[上限・通貨・設定エラー](/docs/ja/support/error-codes-and-limits-supplement) を参照してください。

## ステーブルコインの金額は小数何桁ですか？

Waffo のすべての API フィールドで 2 桁です。小数 2 桁の法定通貨とまったく同じです。
[通貨と金額](/docs/ja/developer-docs/core-concepts/currency) を参照してください。オンチェーンではこれらのトークンは小数 6 桁の
最小単位を使いますが、その変換は Waffo が処理するため、リクエストにもレポートにも最小単位は現れません。ブロックエクスプローラーでは
送信したものとは異なる単位で金額が表示されます。

したがって、トークンのオンチェーンの精度は送信する内容を**変えません**。どのチェーンでも同じ `orderAmount` の文字列が正しく、
自分でスケーリングすることはありません。最小単位を自分で組み立てる唯一の場所は x402 署名経路で、チャレンジと署名の両方が
最小単位です。その変換は当該ページに記載されています。

## 受取アドレスは自社のものですか、注文ごとですか、固定ですか？

経路によって異なり、2 つの答えは本当に別物です。

| 経路 | アドレス | キャッシュできるか |
| - | - | - |
| ウォレット / ホスト型チェックアウト | **注文ごと**に発行 | **いいえ** |
| x402 署名経路 | `wallet/inquiry` が返す**加盟店レベル**の受取アドレス | いいえ — 注文ごとに取得し、そのまま使用する |

ウォレット経路では、アドレスは 1 つの注文に紐づけられ、その注文が終了すると解放されます。つまり、後で**別の**注文に
発行されることがあります。これがこのルールが推奨ではなく絶対である理由です。キャッシュしたアドレスへの送金は、
キャッシュした対象の注文を支払わず、そのアドレスが別の注文に移った後はその注文に紐づけることもできません。

どちらの経路でも、Invoiceに印刷したりハードコードしたりできる自社専用のアドレスは提供されません。いずれの場合もアドレスは
Waffo のものであり、Waffo がオンチェーンで受領し、契約に従ってお客様に精算します。

## 購入者が使い回されたアドレスに支払いました。どうなりますか？

良い結果にはなりません。これは対処するのではなく、そもそも起きないよう設計すべきものです。注文のアドレスが解放された後に
そこへ遅れて送金されたものは、
[ステーブルコインの例外と返金](/docs/ja/support/stablecoin-exceptions-faq) の未照合ケースのいずれかになります。元の注文は
支払われず、現在そのアドレスを保持している注文も支払われません。金額と注文が対応しないためです。

実務的なガード：その注文の決済ページ以外でステーブルコインのアドレスを表示しない、購入者に「前回のアドレスを再利用」させない、
期限切れの注文の QR コードを表示しない。

## 決済の QR コードには金額が含まれていますか？

含まれていると想定しないでください。購入者への確実な指示は、**注文の金額を正確に、注文のトークンで、注文のチェーン上で、
期限内に送る**ことです。この 4 つすべてを決済ページから伝えてください。金額を事前入力するウォレットは利便性であって
保証ではなく、購入者が金額を編集すれば、支払い済みの注文ではなく過払いまたは過少払いのケースになります。

## 購入者にはどのくらいの支払い時間がありますか？

注文の有効期限で、これは他のすべての決済手段と同じ仕組みです。`order/create` で `orderExpiredAt` を送信しない限り、
契約上のデフォルトが適用されます。
[決済のタイムアウトと確定](/docs/ja/support/payment-timeout-and-finality-faq) を参照してください。

ステーブルコイン固有の計画すべき点が 2 つあります。

* 期限は、購入者の操作だけでなく**購入者の操作とチェーンの承認時間**の両方をカバーする必要があります。ウォレットへの
  リダイレクトには十分な期限でも、承認の遅いチェーンでは足りないことがあります。
* 期限が切れた後に到着した送金は注文を支払いません。それは `LATE_PAID` のケースとなり、後から閉じた注文に紐づける方法は
  ありません。

## 購入者のウォレットは送金成功と表示しているのに、注文がまだ処理中なのはなぜですか？

送金がオンチェーンで承認要件を満たして初めて注文が成功へ進み、その待ち時間は Waffo ではなくチェーンの性質だからです。
ウォレットの「送信済み」表示は、決済が確定したというイベントとは異なります。待ち時間はチェーンによって大きく異なります。

* ほぼ即時の決定的ファイナリティを持つチェーン（たとえば Avalanche、Polygon）が最も速く確定します。
* Ethereum メインネットはブロックの承認数を待つため、目に見えて遅くなります。
* オプティミスティックロールアップの L2（Arbitrum、Base、Optimism）が最も遅く、シーケンサーは数秒で送金を受け付けますが、
  承認はバッチが Ethereum 上で確定するのを待ちます。

そのため、購入者には「ネットワークの承認待ち」の状態を表示し、成功の正本は決済結果の Webhook または注文照会のみとして
扱ってください。ウォレット自身の確認画面や、自分で確認したブロックエクスプローラーは決して正本にしないでください。

## 注文がしばらく処理中のままです。まだ待機中ですか、それとも失敗しましたか？

チェーンではなく注文を読んでください。最終状態でない注文はまだ進行中です。ステートマシンは他のすべての決済手段と同じであり、
どの状態が最終でどれがそうでないかについても同じルールが適用されます。
[決済のライフサイクル](/docs/ja/developer-docs/core-concepts/payment-lifecycle) と
[決済のタイムアウトと確定](/docs/ja/support/payment-timeout-and-finality-faq) を参照してください。

してはいけないのは、チェーンが遅いことから失敗を推測することや、ブロックエクスプローラーで送金を見つけたことから成功を
推測することです。注文が有効期限までに最終状態に到達しなければ、注文は閉じます。資金が仕様外で到着した場合は例外ケースの
いずれかとなり、注文 ID とトランザクションハッシュがあればサポートが確認できます。

## 受け取るのはステーブルコインですか、法定通貨ですか？

法定通貨です。購入者が支払った USDC または USDT は、決済成功時に `USD/USDC` および `USD/USDT` の通貨ペアで換算され、
その後のすべて — 未精算残高、精算バッチとレポート、出金 — は精算通貨のままです。お客様がステーブルコインを保有することは
ないため、トークンの価格変動リスクもオンチェーン手数料のリスクも負いません。

換算は注文作成時ではなく**決済成功時**に行われるため、レートはその時点のレートです。ステーブルコイン注文は他の
クロスカレンシー注文と同じ仕組みを使うため、レートの仕組みやレートを固定できるかどうかは、ここで特別扱いされるのではなく
[為替レート](/docs/ja/support/exchange-rates-faq) と
[価格設定通貨の戦略](/docs/ja/developer-docs/use-cases/pricing-currency) で扱われます。

## ステーブルコインの注文は Portal のどこに表示されますか？

通常の取引一覧に表示され、他と同じように絞り込めます。次の 2 つのフィルターでたどり着けます。

| フィルター | 値 |
| - | - |
| 決済手段タイプ | `CRYPTO` |
| 決済手段 | `USDC` または `USDT` |

Portal が提供**しない**のは、オンチェーンの詳細です。取引一覧にも取引詳細にも、チェーンの列、チェーンのフィルター、
トランザクションハッシュ、承認数、ネットワーク手数料の数値はありません。チェーンが現れる唯一の場所は返金のドロワーで、
元の決済が使用したチェーンとして読み取り専用で表示されます。

したがって、照合に注文ごとのチェーンやトランザクションハッシュが必要な場合、Portal のエクスポートから取得する計画は
立てないでください。x402 経路ではハッシュを API から取得でき、成功時に返される精算レシートに含まれます。その形式は
当該ページに記載されています。ウォレット経路では、注文 ID を添えてサポートにご連絡ください。

## ステーブルコインを有効化するには何が必要ですか？

プロビジョニングのステップが 2 つあり、いずれも連携担当者と手配します。契約上の CRYPTO 決済プロダクトと、チェーンセットです。
両方が揃うまで、ステーブルコインの注文作成は契約で許可されていないものとして拒否されます（`A0010`）。

有効化自体は通常の手順に従い、ステータスの確認場所も同じです。
[決済手段の有効化](/docs/ja/support/payment-enrollment-faq) を参照してください。後からチェーンを追加するのは、決済手段を
追加するのと同じ種類の依頼です。Waffo 側の設定変更であり、お客様が自分で切り替えられるものではありません。

## 次にどこを見ればよいですか？

* [ステーブルコインの例外と返金](/docs/ja/support/stablecoin-exceptions-faq) —
  過払い、過少払い、遅延、誤ったチェーン、誤ったトークン、および返金に必要なもの
* [x402 ステーブルコイン収単](/docs/ja/developer-docs/use-cases/x402-stablecoin-acquiring) —
  AI エージェント経路の全体
* [決済のタイムアウトと確定](/docs/ja/support/payment-timeout-and-finality-faq) —
  注文の有効期限と、どの状態が最終か
* [自社の決済手段設定を読む](/docs/ja/support/payment-method-config-and-limits-faq) —
  `USDC` / `USDT` についての自社の金額範囲と利用可否
* [精算レポート](/docs/ja/support/settlement-reports-faq) — 換算されたステーブルコイン決済が精算にどう現れるか


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.