エージェント型チェックアウト

エージェント型チェックアウトは、エージェント型コマースで取引を完了する段階です。セッションの状態機械、範囲限定決済トークン、人間参加の接点、注文 Webhook、現在も決着していないチャージバックの問題を扱います。

初回公開:2026年7月3日 · 最終更新:2026年8月6日 · Advanced
言語

エージェント型チェックアウトは、AI エージェントが買い物客に代わって購入を作成・更新・確定する、エージェント型コマースの取引完了機能です。ACP と UCP の構成要素の一つですが、独自のプロトコルではありません。決済は範囲限定トークンを使い、注文確認は署名付きの完全な Webhook で通知します。販売者は merchant-of-record のままなので、精算・返金・チャージバックは販売者と PSP が担いますが、AI エージェントが買い手だった場合のチャージバック証拠の扱いは 2026 年半ば時点でも未解決です。

TL;DR — エージェント型チェックアウトは、チェックアウトセッションを作成・更新・完了またはキャンセルし、決済を委任して注文を確認する取引完了機能です。ACP と UCP の構成要素の一つであり、単独のプロトコルではありません。技術的な中核は 状態機械です。ACP は not_ready_for_paymentready_for_payment → 必要なら requires_escalation / authentication_requiredcompleted と進み、UCP の incompleterequires_escalationready_for_complete に対応します。エスカレーション状態は人間参加の接点です。決済委任には販売者固定・金額上限・時間制限・単回使用の範囲限定トークンを使います。注文確認はプッシュ通知で、販売者は HMAC 署名付きの完全なオブジェクトを Webhook で POST します。チャージバックの証拠の枠組みは 2026 年半ば時点でも未解決です。

Evidence for this claim OpenAI's commerce specification models checkout as a stateful API flow with explicit completion and escalation states. Scope: OpenAI commerce implementation; other agentic checkout systems may use different state names. Confidence: high · Verified: OpenAI Commerce: Checkout specification Evidence for this claim OpenAI's delegated-payment specification uses scoped payment tokens and keeps the merchant as merchant of record. Scope: OpenAI delegated-payment flow, not a guarantee that every agentic checkout implementation handles payment identically. Confidence: high · Verified: OpenAI Commerce: Payment specification

範囲: 全プロトコルではなく、取引の段階

エージェント型チェックアウトは一つの機能です。ACPではAgentic Checkoutブロックで、Product Feed、Delegate Payment、Delegate Authentication、Orders/Webhooksと並ぶ五つのブロックの一つです。UCPでは広い機能交渉型仕様の中にあるチェックアウト機能です。姉妹記事は周辺のプロトコルとビジネス背景を扱いますが、このページは取引完了の仕組み、つまりセッションのライフサイクル、決済委任、人間の介入、注文確認、責任に集中します。UCPの/.well-known/ucpプロファイルや、2026年3月の方針転換が発見に与えた影響はここでは再説明しません。

ACP の姉妹記事から引き継ぐ前提が一つあります。エージェントはクロールされた HTML ではなく、フィードと API に対して取引します。したがって最適化するのはページのコピーではなく、チェックアウトの 信頼性です。

チェックアウトセッションの状態機械

最も重要な点は、チェックアウトが 状態を持つセッションであり、その状態が定義された機械の中を進むことです。

ACPのCheckoutリファレンスには、incompletenot_ready_for_paymentrequires_escalationauthentication_requiredready_for_paymentpending_approvalcomplete_in_progresscompletedcanceledin_progressexpiredが記載されています。成功経路はnot_ready_for_paymentready_for_paymentin_progresscompletedで、もう一つの終端状態はcanceledです。ACPのライフサイクル概念では、必須のフルフィルメント選択肢を提供するとセッションがnot_ready_for_paymentからready_for_paymentへ移り、決済失敗時には再試行のためready_for_paymentへ戻ることがあります。

興味深いのは、成功経路にない状態です。

  • requires_escalation / authentication_required — エージェントだけでは進められず、人間または追加認証が必要です。 - pending_approval — B2B の発注書承認などを待っています。 - expired — セッションがタイムアウトしました(CheckoutSession には expires_at が含まれます)。

UCPのチェックアウトもincompleterequires_escalationready_for_completeと進み、requires_escalationを通じてcontinue_urlで人間に制御を戻します。別々の二つのプロトコルに収束した同じパターンです。**チェックアウトは、常に人間への確認なしで完了できるとは限りません。**これは後付けの制限ではなく、設計の中心です。

Escalation is a first-class checkout state: the agent pauses, a human completes the required step, and the same session resumes. 出典: Agentic Commerce Protocol

The happy path assembles the cart and fulfillment choice, becomes ready for payment, processes a scoped payment token, and completes. When a step-up is needed, the session enters requires escalation or authentication. A human completes login, 3-D Secure, or approval, then the session resumes at payment processing.

© Patrick Stox LLC · CC BY 4.0 ·

ACP に対する実務的な注意です。不正なリクエストは invalid_requestrequest_not_idempotentprocessing_errorservice_unavailable のいずれかを type に持つ HTTP レベルのエラーオブジェクトを返します。正しいセッション内のビジネスロジック上の問題は、HTTP エラーではなく messages[] 配列内の MessageError オブジェクトとして返ります。両方を処理する必要があります。

決済委任の仕組み

決済委任レイヤーの要点は、カード情報そのものがエージェントに届かないことです。カード番号を渡す代わりに、買い手の決済情報を 範囲限定トークンに変換します。

OpenAI の Delegated Payment 仕様では、委任決済のペイロードを販売者の PSP またはボールトへ直接送り、PSP またはボールトが PCI の範囲外で委任決済に限定した決済トークンを返します。そのトークンは四つの軸で制限されます。

  • reason — 現在の値は"one_time"で、1回だけ使います。
  • max_amount — チェックアウトの合計額を上限とし、過剰請求には使えません。
  • expires_at(RFC 3339)— トークンには厳格な有効期限があります。
  • merchant_id + checkout_session_id — 一つの販売者と一つのセッションに固定されます。

委任トークンは、販売者固定・金額上限・時間制限・単回使用です。これによりエージェントは、再利用可能なカード資格情報を保持することなく決済できます。ACPではStripeのShared Payment Tokenが最初の対応実装として説明され、今後さらにPSPが増える見込みです。UCPは決済instrumenthandlerを分離する並行モデルを使います。

**PCI対象範囲はここで実際に判断すべき事項です。**OpenAIの仕様は、Delegated Payment Specとの直接統合ではカード会員データを直接扱うためPCI対象範囲に影響し得ること、また直接統合にはPCI DSSレベル1が必要なことを明記しています。多くの加盟店にとっては、ネットワークトークンや委任を処理するPSPによるトークン化経路が、カード会員データを自社環境から出しておく方法です。「CHDを直接扱う」か「PSPにトークン化させる」かが最初のアーキテクチャ判断で、Decisionタブで整理します。

人間が介入しなければならない場所

「買い物客が承認する」という説明は正しいものの曖昧です。プロトコルレベルのトリガーは具体的であり、名前を明示することで、行き止まりにせず引き継ぎを設計できます。

  • 3-D Secure / step-up。 ACPはInterventionCapabilitiesでモデル化します。対応型は3dsaddress_verificationenforcementalways / conditional / optionaldisplay_contextnative / webview / modal / redirectです。結果はAuthenticationResultとして返り、authenticateddeniedrejectedabandonedcancelednot_supportedなどになります。
  • requires_escalation / authentication_required状態。 人間または追加チェックが必要だというセッション状態です。
  • B2Bのapproval_required PaymentDataはB2Bフィールド(purchase_order_numberpayment_termsdue_dateapproval_required)を持ち、エージェント型チェックアウトはDTCだけではありません。
  • UCPのcontinue_url引き継ぎ。 UCPのrequires_escalationは、買い手自身がログイン、確認、年齢チェックを完了するためのcontinue_urlを提示します。同じ接点でも、プロトコルは異なります。

要点は、きれいにエスカレーションする取引のほうが、黙って行き止まりになる取引より優れていることです。経路を第一級のフローとして設計してください。

注文確認はプルではなくプッシュ

購入後、エージェントのプラットフォームは注文状態を求めて API をポーリングし続けません。販売者が署名付き Webhook をプッシュします。

ACP の Webhook リファレンスによると、販売者は注文イベントを POST して同期を保ちます。イベント型は新規注文の order_create と状態変更の order_update です。注文状態には createdmanual_reviewconfirmedcanceledshippedfulfilled が含まれます。実装上の重要点は三つです。

  • リクエストは署名必須です。 Merchant-Signature ヘッダーの HMAC 署名を使います。署名なしまたは不正な署名は 401 です。 - data には完全な Order オブジェクトを入れます。 差分ではなく、毎回全状態を送ります。 - 処理するレスポンス: 200 は成功、401 は署名不正、429 はレート制限です。

注文が通ったことをプラットフォームはどう知るのでしょうか。署名付きの完全なオブジェクトをPOSTしてこちらから伝え、プラットフォームの429によるバックプレッシャーを処理します。

不正、チャージバック、責任 — 決着したことと未決着のこと

ここは最も率直で差別化される節です。決着済みと未解決の境界がどこにあるのかを、明確に説明します。 “settled” “open”

決着していること: merchant-of-record。 OpenAI 自身の決済仕様は、OpenAI が merchant-of-record ではないと述べています。ACP では販売者が自分の PSP を用意し、精算、返金、チャージバック、コンプライアンスは販売者と PSP に残ります。Rye の Arjun Bhargava も独立に、両プロトコルは販売者を merchant-of-record とし、フルフィルメント、チャージバック、異議申立ての責任を負わせると確認しています。

決着していないこと: チャージバックの証拠の枠組み。 merchant-of-record という立場は、既定では誰が異議申立ての負担を負うかを示すだけです。買い手が AI エージェントに仲介された場合に、どう勝つかは示しません。従来の防御は IP、端末、閲覧行動、人間が購入をクリックした記録など、人間が作った証拠に依存します。エージェント生成の認証ログは別種の証拠であり、カードネットワークのルールはそれを前提に書かれていません。業界の分析でも、カードネットワーク、発行者、プラットフォーム提供者がまだ答えを検討中です。 “customer” “buy”

新しい枠組みは登場中で、完成していません。 Visa の Trusted Agent Protocol は、利用者体験を損なわずに販売者がエージェントの身元と意図をリアルタイムで検証し、なりすましを防ぐ標準ベースの枠組みと説明されています。Mastercard の Agent Pay(2025 年 4 月発表)は Digital Enablement Service の拡張である Agentic Tokens を使います。第三者報道では、トークンが正しく発行され承認時に受け入れられた場合の不正責任は標準的なトークン取引と同じとされますが、Mastercard 自身の文書で確認されるまでは報告として扱います。Visa の消費者向け無過失責任保証はカード保有者を守るもので、販売者側のチャージバック問題は解決しません。

販売者が実装してテストすべきこと

既存の内容は、フィードの整理やロイヤルティプログラムなど戦略面の準備を扱います。ここでは、導入を有効にする前に実際に構築して検証する運用レイヤーを扱います。

  • PCI の方針を決める。 トークン化またはネットワークトークンの経路と、CHD を直接扱う Level 1 の経路を比較します。多くの販売者は PSP に委任を保持させます。 - 再試行を冪等にする。 ACP に request_not_idempotent エラー型があるのは理由があります。エージェントや不安定なネットワークは作成・完了を再試行するため、冪等性キーを送り、同じキーの反復呼び出しを安全にして二重請求や二重注文を防ぎます。 - Webhook 署名を検証する。 受信する注文 Webhook ごとに Merchant-Signature HMAC を検証し、不一致を拒否し、負荷時も 200 / 429 を正しく返します。 - エスカレーションをサンドボックスで模擬する。 requires_escalation / authentication_required を強制し、3DS step-up を実行して、AuthenticationResultdenied / rejected / abandoned も扱うことを確認します。 - フィードとチェックアウトの価格を一致させる。 フィードの価格とチェックアウトの価格が違うと信頼が急速に失われます。 - エージェント注文の帰属を用意する。 完了したエージェント型チェックアウトには GA4 セッションがない場合があるため、訪問を待たず注文または OMS レベルで追跡します。 authenticated

テスト手順書とチートシートのタブで、これを具体的な合格判定に落とし込みます。

2026 年半ばの状況

宣伝資料ではなく導入の現実を見てください。Shopify の社長 Harley Finkelstein によると、AI チェックアウトツールを実際に使っていた Shopify 販売者は約 12 社で、全体の販売者数に比べれば無視できる規模でした。OpenAI も、導入、精度、複数商品カートの難しさを受け、2026 年 3 月に Instant Checkout の完全なチャット内版を発見とリダイレクトへ縮小しました。数千万 SKU のリアルタイムカタログ正規化は十年規模の問題であり、消費者は Apple Pay、Google Wallet、Amazon ワンクリックなど信頼するチェックアウトを今も選びます。

これはエージェント型チェックアウトが実体のないものだという意味ではありません。委任決済と署名付き注文Webhookを使ってセッションをプログラムから作成・更新・完了するプロトコル機能は、実在し、仕様化され、構築する価値があります。ただし「もう普通」ではなく、最後の段階をチャット内で閉じるかサイトで閉じるかは実装の選択で、すでに一度変わっており、今後も変わり得ます。

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.