はじめに
AI Agent(以下、Agent)の普及によって、Eコマースにおいては単に商品を探すだけでなく、ユーザーに代わって購入や決済まで行う未来が現実味を帯びてきています。このようなAgentic Commerceの世界においては、「Agentはどのように決済を行い、ユーザーの購入意思をどのように証明するのか」が極めて重要となります。
今回は、Googleが公開している Agent Payments Protocol(AP2) のサンプルコードを実際に動かし、その仕組みを確認してみました。
Agent Payments Protocol(AP2)とは
AP2は、Agentがユーザーに代わって決済する際の認可や証跡を扱うオープンプロトコルです。
単にAgentから決済APIを呼び出すだけではなく、以下の情報を改ざん防止・検証可能な形で扱います。
- 誰が購入を許可したのか
- 何を購入するのか
- いくら支払うのか
といった情報をAP2では、**Mandate(マンデート/認可情報)**と呼ばれるデータ構造で保持・管理します
User
↓
Agent
↓
Checkout
↓
Mandate
↓
Payment
補足
AP2自体が決済サービスを提供するわけではなく、クレジットカード決済やx402といった既存の決済手段と組み合わせて利用する設計
AP2の基本的な流れ
AP2では、主に Checkout Mandate と Payment Mandate の2つの認可情報を使用します。
User
↓
Shopping Agent
↓
Merchant
↓
Checkout
↓
Checkout Mandate
↓
Payment Mandate
↓
Payment
- Checkout Mandate: 購入する商品やその条件を表す
- Payment Mandate: その購入に対する支払いの認可を表す
これらを組み合わせることで、何を購入し、その支払いを誰が認可したのかを客観的に検証できるようになる。
利用環境
今回はAP2公式リポジトリにあるPythonのサンプルを利用する。
動作環境・必要なツール
- Python 3.11以上
- uv
- Google API Key
事前準備
git clone https://github.com/google-agentic-commerce/AP2.git
cd AP2
uv sync
export GOOGLE_API_KEY="YOUR_API_KEY"
ツールおよびAPIキーの取得手順は以下を参照してください
- uvのインストール
- GOOGLE_API_KEYの取得(Google AI Studioを利用する場合)
サンプルを動かす
AP2にはユーザー不在で自動決済するシナリオ(Human-not-present / Autonomous)も用意されていますが、今回は基本となるユーザーがその場で確認・認可する(Human Present)のクレジットカード決済シナリオを動かしてみます。
bash code/samples/python/scenarios/a2a/human-present/cards/run.sh
実行すると、以下のようにローカルテスト用のURLが表示されるため、指定のポートへアクセスします。
$ bash code/samples/python/scenarios/a2a/human-present/cards/run.sh
Setting up the Python virtual environment...
Virtual environment activated.
Installing project in editable mode...
~中略~
INFO: Started server process [36541]
INFO: Waiting for application startup.
+-----------------------------------------------------------------------------+
| ADK Web Server started |
| |
| For local testing, access at http://0.0.0.0:8000. |
+-----------------------------------------------------------------------------+
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
・・・
ブラウザからShopping Agentの画面にアクセスする
Agentの動き
1.商品選択〜カートに追加
ユーザーが「コーヒーメーカーが欲しい」といった要望を入力すると、root_agentが起動します。続いてshopperAgentが起動し、予算などを考慮して該当する商品を検索・提案します。


2.配送先・支払い方法設定
shipping_address_collector・payment_method_collectorによって配送先情報と支払い方法の収集・設定が行われます。


3.Mandateの生成・保存
今回の例では、商品と合計金額が8,980円、支払い方法としてAMEXの下四桁4444のカードが選択されている(注:デモ用のダミーデータ)。

ADK(Agent Development Kit)のTraceを確認すると、決済処理の裏側で Mandate がどのように生成・受け渡されているかを追跡できます。
一連の呼び出しの流れは以下の通りです
1.create_checkout_mandateが実行され、購入内容に対するCheckout Mandateを生成
2.create_payment_mandateが実行され、支払いに関するPayment Mandateを生成
3.send_signed_mandates_to_credentials_providerによって署名付きのMandateがCredentials Providerへ送信
4.最終的にinitiate_paymentを実行して最終的な決済処理を開始
State を確認すると、認可情報として payment_mandate_sdjwt が生成されていることがわかります。

SD-JWTについて
AP2では認可情報(Mandate)のデータ表現に SD-JWT(Selective Disclosure JWT)を採用しています。これにより、ユーザーのプライバシーに配慮しつつ、必要な検証機関(決済事業者など)に対して必要な情報のみを選択的に開示・検証させることが可能になります。
Payment Mandateには、取引ID、支払先、支払金額・通貨、支払い手段など、今回の支払いを特定するための情報が含まれている。
payment_mandate_sdjwtの中身(SD-JWTデコード)
{
"vct": "mandate.payment.1",
"transaction_id": "R1cKwn3W6I5BCh6o2Qb2ywX8sE9vSPQB8rZ_FsnBNgM",
"payee": {
"id": "merchant_1",
"name": "Generic Merchant",
"website": "https://demo-merchant.example"
},
"payment_amount": {
"amount": 898000,
"currency": "JPY"
},
"payment_instrument": {
"id": "stub",
"type": "card",
"description": "Card ••••2424"
},
"iat": 1789946958,
"exp": 1789950558
}
- transaction_id: この取引を一意に識別するID
- payee: 誰に支払うかを表す支払先(加盟店)情報
- payment_amount: いくら支払うかを表す金額と通貨
- payment_instrument: どの支払い方法(クレジットカードの種類など)を使うか
4.認証・決済
OTP(ワンタイムパスワード)認証などを経て、最終的な支払いが実行されます。

ポイント
1.AP2対応の明示(Agent Card等による宣言)
Merchant Agent や Credentials Provider がプロトコルレベルでAP2に対応していることを、Agent Card 等を通じて相互に宣言・確認します。
2.証明可能な認可情報(Mandate)の安全な授受
Agentは単に「この商品を購入します」というリクエストを送るのではなく、「誰に・いくら・どの手段で支払うか」を明記し、電子署名されたMandateを安全に受渡します。
3.改ざん耐性と安全な決済実行
決済事業者や Credentials Provider は、渡されたMandateの署名と内容を検証したうえで、必要なユーザー認証(OTP等)を経て安全に決済を完了します。
まとめ
今回は、Googleが公開している Agent Payments Protocol(AP2) のサンプルコードを通じて、Agentic Commerceの決済メカニズムを確認しました。
AP2では、Checkout Mandate と Payment Mandate を組み合わせることで、Agent主導の購入・決済に対して「確実な合意形成」と「検証可能性」をもたらしています。
AI Agentの役割が「情報の検索・提案」から「操作の代行・決済」へと進化する中で、「Agentにどこまでの権限を委任し、その操作の正当性をいかに証明するか」 は業界全体の大きなテーマです。AP2は、これからのAgentic Commerce時代を支える標準プロトコルの有力な候補として、非常に参考になるプロトコルと言えます。

