HTTP 402
x402プロトコルの基盤となるHTTP 402 Payment Requiredステータスコードの仕組みを解説します。
数十年にわたって「将来の使用のために予約」されてきたHTTP 402 Payment Required。x402はこのステータスコードをついに実用化します。
HTTP 402とは
HTTP 402はリソースへのアクセスに支払いが必要であることを示す標準HTTPレスポンスステータスコードです。x402ではこのステータスコードを以下の目的で活用します:
- クライアント(バイヤーまたはエージェント)に支払いが必要であることを通知する
- 金額・通貨・送金先アドレスなど支払いの詳細を伝える
- プログラムで支払いを完了するために必要な情報を提供する
x402がHTTP 402を使う理由
HTTP 402を使う主な目的は、Webリソースへのアクセスに対してフリクションのないAPIネイティブな支払いを実現することです。特に以下のユースケースに適しています:
- M2M(マシン間)決済(例:AIエージェント)
- API呼び出しや有料コンテンツなどの従量課金モデル
- アカウント作成や従来の決済システムを介さないマイクロペイメント
402ステータスコードを使うことで、x402プロトコルはWebとネイティブに互換性を持ち、あらゆるHTTPベースのサービスに簡単に統合できます。
V2での支払いヘッダー
x402 V2では支払い通信に3つの標準ヘッダーを使用します:
| ヘッダー | 方向 | 内容 |
|---|---|---|
| PAYMENT-REQUIRED | サーバー → クライアント | Base64エンコードされた支払い要件オブジェクト |
| PAYMENT-SIGNATURE | クライアント → サーバー | Base64エンコードされた支払いペイロードオブジェクト |
| PAYMENT-RESPONSE | サーバー → クライアント | Base64エンコードされた決済レスポンスオブジェクト |
PAYMENT-REQUIRED:サーバーからのBase64エンコードされた支払い要件を含みます。402ステータスコードとともに返され、受け付ける支払いスキーム・価格・ネットワーク・送金先アドレスなどの詳細が含まれます。PAYMENT-SIGNATURE:クライアントからのBase64エンコードされた支払いペイロードを含みます。402レスポンスを受け取った後にリクエストをリトライする際にクライアントが送信し、支払いを承認したことを証明します。PAYMENT-RESPONSE:サーバーからのBase64エンコードされた決済レスポンスを含みます。決済の成否にかかわらずサーバーが返し、支払い結果についての構造化されたフィードバックを提供します。
すべてのヘッダーは有効なBase64エンコードJSON文字列を含みます。このエンコードにより、さまざまなHTTP実装間での互換性が確保され、JSONペイロード内の特殊文字による問題を防ぎます。
まとめ
HTTP 402はx402プロトコルの基盤であり、サービスがHTTPレスポンス内で直接支払い要件を宣言できるようにします:
- 支払いが必要であることをシグナルする
- 必要な支払い詳細を伝える
- 標準HTTPワークフローとシームレスに統合できる