>100 Views
May 08, 26
スライド概要
jp-stripes-osaka-16-agent-payments
Developer
JP_Stripes Osaka #16 AIエージェントの決済 何が来て、日本で何が試せるか 岡本秀高 (Hidetaka Okamoto) Senior Field Engineer @ CircleCI / 2026.5.8
自己紹介 Hidetaka Okamoto (岡本秀高 ) ● Stripe -> CircleCI Senior Field Engineer ● https://wp-kyoto.net / https://hidetaka.dev ● 年間150本ペースくらいで記事を書く人 2
Agenda アジェンダ 01 なぜ「エージェントの決済」が必要なのか 7分 02 機械が機械に払う — x402 / MPP 8分 03 機械が SaaS を契約する — Stripe Projects 5分 04 AI のマネタイズ — Meter API 3分 05 Watch List & まとめ 2分 3 / 40
なぜ「エージェントの決済」が必要なのか 決済はずっと、ある前提で作られてきた 4 / 40
なぜ「エージェントの決済」が必要なのか 決済はずっと、ある前提で作られてきた 「人間が、ブラウザの前にいる」 4 / 40
なぜ「エージェントの決済」が必要なのか 決済フローは人間が操作する前提で作られている 操作 検証 判断 決済フォーム操作 3DS / 生体認証 ストア・ PF選定 16桁を画面に手で打つ前提 本人が指紋・顔・SMSで 応答する前提 信頼できるストアか? 決済情報を渡して良いか? 5 / 40
なぜ「エージェントの決済」が必要なのか 決済フローを AI のために再構築する 「誰が、誰に、何のために払うのか」で 3つに切る。 Layer 1 Layer 2 選ぶ 支払う Layer 3 継続する 7 / 40
Layer 1 人がエージェントに、 ECを委任する 選ぶ 誰が払う? 顧客の財布から、エージェント経由で。 代表的な体験: ChatGPT で「この条件のジャケット買って」 → ChatGPT がカートを作って決済する。 8 / 40
Layer 2 機械が機械に、 APIを払う 支払う 誰が払う? エージェントが、自分の予算から、 APIに直接。 代表的な体験: 天気APIに 0.001ドル払って次の 3日間予報を取る。 MCP toolに従量で払う。レポートに 0.01ドル。 9 / 40
Layer 3 機械が、 SaaS を契約する 誰が払う? 継続する エージェントが、開発者の Stripeアカウント経由で サードパーティ SaaSの月額/年額を契約する。 代表的な体験: 「Cloudflare Workers と Neon を用意して」と頼む → エージェントがプロビジョニングと契約まで完了。 10 / 40
01 — 整理 3つのレイヤーそれぞれで必要なものが異なる レイヤー テーマ Stripeの機能・製品 Layer 1 人が委任 ACP / SPT / Link Agent Wallet 日本からの実機テスト △ 概念のみ エージェントに決済情報を託す仕組み Layer 2 機械→機械 x402 / MPP ✅ 検証可能 エージェントが自律的に決済するための仕組み Layer 3 機械→ SaaS契約 Stripe Projects ✅ 無料プランのみ可能 SaaSを作る際の体験に寄り添った仕組み 11 / 40
Supplement to Layer 1 ACP と SPT を、丁寧に 人がエージェントにECを委任する、その内側 日本ではまだ動かない。だからこそ、概念は今のうちに固めておく。
Supplement — なぜACPか 従来のチェックアウトは、エージェントには重すぎる 従来のWebチェックアウト ACPが要求するもの 1. ページ遷移する マーチャントが、 2. カード番号を入力する エージェントを「人間と同じ 3. 3DSをポップアップで突破する 買い手」として扱える共通仕様。 4. 完了画面でリダイレクト それが ACP。 → どれもブラウザDOM前提。 Supplement 2 / 14
Supplement — ACPとは ACP を一行で言うと ACP = Agentic Commerce Protocol エージェントが、人間に代わって買い物するためのプロトコル 2025.9 に OpenAI / Stripe が共同発表。現在は OpenAI / Stripe / Meta の三者が共同管理するオープン仕様。 Supplement 3 / 14
Supplement — 登場人物 ACPの世界には、 4人のプレイヤーがいる Buyer Agent Merchant Payment Provider 人 エージェント 売り手 決済 商品を欲しい個人。 カードを持っているが、 直接マーチャントとは話さ ない。 ChatGPT、Gemini、 自社エージェント。 買い手の代理人。 Shopify、Stripe等の上で 動くお店。Product Feedと Checkout APIを公開す る。 Stripe等の決済処理者。 SPTを発行・検証し、 実際にお金を動かす。 「Buyer は Agent に委任する」「Agent は Merchant と話す」「Merchant は Payment Provider と決済する」 Supplement 4 / 14
Supplement — フェーズ整理 ACPでの買い物は、 3フェーズで進む 1 2 3 Discover Compose Pay 商品を見つける カートを作る 決済する エージェントが、 Productデータから 候補を絞り込む Checkout Session を作成。 価格・税金・送料・在庫を確定する SPTを添えて支払いを実行する。 ここで初めてお金が動く 以降、3フェーズを1枚ずつ見ていく。 Supplement 5 / 14
Phase 1 / 3 Discover: エージェントが商品を見つける ・ マーチャントは Product Feed をACP仕様で公開する ・ ChatGPT等のエージェントが、このフィードをクロール・インデックスする ・ ユーザーが「赤いダウンジャケット 5万円以下」と言うと、エージェントが候補を返す ・ ここまで、お金は 1円も動かない ECサイトのSEOに似ているが、対象は「 Google」ではなく「 ChatGPTのようなAI買い物代行」。 Stripe Profile / Agentic Commerce Suite が、このフィード提供を簡単にする。 Supplement 6 / 14
Phase 2 / 3 Compose: エージェントが Checkout Session を作る POST https://merchant.example.com/acp/checkout_sessions { "items": [{ "id": "sku_red_jacket", "qty": 1 }], "buyer": { "shipping_address": {...} } } ・ エージェントがマーチャントAPIを叩いて、カートを生成する ・ 価格・税金・送料・在庫が確定する ・ Buyer に「これでいいですか?」と確認を取れる状態になる ・ 依然、お金はまだ動いていない Supplement 7 / 14
Phase 3 / 3 Pay: ここで、 SPTが必要になる ジレンマ エージェントは Buyer の代理だが、Buyer のカード番号をエージェントに渡したくない。 でも決済を完了させるには、何らかの「支払い権限の証明」が要る。 解 = 限定スコープのトークンを発行する。 これが SPT (Shared Payment Tokens)。 Supplement 8 / 14
Supplement — SPTとは SPT を一行で言うと SPT = Shared Payment Tokens カード番号を出さずに、支払い権限だけを渡す代理トークン カード番号自体は、エージェントにもマーチャントにも露出しない。 Stripeが裏でカード本体に変換し、決済を実行する。 Supplement 9 / 14
SPTなどのエージェント向け決済は Linkを利用する
Supplement — 全体像 ACP + SPT は、こう動く ① Buyer 「赤ジャケ 買って」と頼む ② → Wallet SPT を発行 (金額・期限付き ) ③ → Agent ACPで商品検索 →カート作成 ④ → Agent Merchant に SPT を提示 ⑤ → Stripe SPTを検証→ カードで決済 カード番号は、Buyer のWallet と Stripe の間にしか存在しない。Agent も Merchant も SPT しか見ない。 Supplement 11 / 14
Supplement — SPTのスコープ SPTには、4つの制約が刻まれる ¥ @ ◷ ↺ 金額上限 マーチャント指定 有効期限 用途 「最大 50,000円まで」。 超える支払いは拒否され る。 「Uniqlo Online のみ」な ど、 使えるお店が限定される。 「今から30分間だけ有効」 など、 時間で自動失効する。 1回限り (one-time) か、 継続課金可 (recurring) か。 Buyer が「このエージェントには、このスコープでだけ払う権限を渡す」と決める仕組み。 Supplement 10 / 14
Supplement — 日本から ACP / SPT、日本からどこまで触れるか △ 概念理解と仕様読みは可能 ❌ 実機でSPTを発行・受領する ・ docs.stripe.com の ACP 仕様は 誰でも読める ・ SPT は買い手側・売り手側ともに US 限定 (2026.5時点) ・ Product Feed のフォーマットを 日本のmerchantとして用意できる ・ ChatGPT Instant Checkout も US の特定マーチャントから順次 ・ Checkout Session のスタブ実装は サンドボックスで作れる ・ 日本のStripeアカウントでは、 「受領できるSPT」がまだない 「日本に来たとき、すぐ動ける merchant」になっておく価値は、すでに今ある。 Supplement 13 / 14
Supplement — まとめ Layer 1 のまとめ 1 ACP は、エージェントとマーチャントが話すための共通プロトコル仕様。 Discover / Compose / Pay の3フェーズで進む。 2 SPT は、カード番号を出さずに支払い権限を渡すトークン。 金額上限・マーチャント指定・有効期限・用途の4制約が刻まれる。 3 日本では実機で動かないが、仕様読みとmerchant 側 PoC は今からできる。 来たときに即動けるよう、Product Feed の準備からは始められる。 → ここから、Layer 2「機械が機械に払う」へ Supplement 14 / 14
Layer 2 機械が機械に払う x402 / MPP の世界 HTTPの上で、価値が動く。
02 — x402 入門 x402 を一行で言うと HTTP 402 + ウォレット署名 = x402 「決済が必要」を返すサーバと、「署名して払う」クライアントだけで成立する、機械間の支払いプロトコ ル。 13 / 40
02 — x402 入門 HTTP 402 は、29年間ずっと「予約」されてきた 1997 2025 HTTP/1.1 仕様で 402 Payment Required を予約 Coinbase が x402 として HTTP 402 を実用プロトコル化 「予約席に、ようやくお客さんが座った」 14 / 40
02 — x402 フロー x402 のフロー 1 2 3 4 Request HTTP 402 Sign & Retry Settle & Serve 「HTTP 402 - Payment Required」の 次に何をやるべきかが x402 で整理された 16 / 40
02 — x402 入門 x402 を支える顔ぶれ 設計 共同推進 Coinbase Cloudflare プロトコルのオーナー / 仕様策定 Workersテンプレート / facilitator運用 採用済み (アダプター ) Stripe / Vercel / AWS / Alchemy / Google (AP2) 15 / 40
Step 1 / 4 事前に支払い用のウォレットを登録しておく $ purl wallet add $ purl balance Network ethereum ethereum-sepolia base base-sepolia tempo Balance 0.000000 USDC 0.000000 USDC 0.000000 USDC 0.000000 USDC 0.000000 USDC 17 / 40
Step 2 / 4
リクエストすると、レスポンスで支払いを要求される
$ brew install stripe/purl/purl
$ purl http://localhost:8787/premium/1 --network base-sepolia
HTTP/1.1 402 Payment Required
{
"amount": "10000",
"asset": "USDC",
"network": "base-sepolia",
"payTo": "0xa8ca...3c6b",
"facilitator": "https://x402.org/facilitator"
}
17 / 40
Step 3 / 4 登録されたウォレットを利用して支払いリクエストを送信 GET /premium/1 HTTP/1.1 X-PAYMENT: eyJzaWduYXR1cmUi... (Base Sepolia上で署名された USDC 0.01 の支払いペイロード ) purl がやってくれること: ローカルウォレットを開く(パスワードを聞かれる) → EIP-712で署名 → X-PAYMENT に詰めて再送信 19 / 40
Step 4 / 4
ファシリテータが検証・決済し、サーバが本体を返す
HTTP/1.1 200 OK
{
"secret": "This is the protected content you paid for!",
"data": { "foo": "bar" }
}
オンチェーン残高は: Base Sepolia USDC 20.000000 → 19.990000
(差分 0.01 = 商品価格)
20 / 40
x402での請求と支払いを手元で試せるツール https://github.com/cloudflare/templa tes/tree/main/x402-proxy-template https://www.purl.dev/ 20 / 40
02 — Stripe側 MPP は x402 を内包する、マルチメソッド版 MPP (Machine Payments Protocol) Stripe + Tempo 共同制作 (2026.3) / HTTP 402 ベースのオープン仕様 x402 (crypto) SPT (fiat) USDC on Base / Solana / Tempo — Coinbaseがメンテ — Stripeはアダプター カード / Klarna / Affirm — Stripe独自プリミティブ x402だけだと、Crypto決済に閉じる。 MPPはカードなどの従来決済手段でも決済できるようにする 22 / 40
02 — 日本から Layer 2、日本から「まだできない」こと ❌ 本番 stablecoin 決済を「受領」する側になること ・ Stripe x402 の本番 stablecoin 受領は US 事業者のみ(2026.5時点) ・ 顧客として支払う側( USDCで払う)はグローバル可だが、お金の動きは個人ウォレット側 ・ つまり日本の事業者が「 x402で受け取って稼ぐ」のは、まだ仕様が来ていない段階 学ぶ・触る・PoCする分には、日本からまったく問題ない。 24 / 40
Layer 3 機械が SaaS を契約する Stripe Projects の世界 カード番号も、SaaSのアカウントUIも、エージェントは触らない。
03 — Stripe Projects 入門 Stripe Projects を一行で言うと Stripeを介して、 SaaSを契約・管理する CLI 複数のSaaSアカウントの作成・契約管理・ APIキー操作を、Stripeアカウント1つに集約する。 Stripe Sessions 2026 (2026.4.29) で開発者プレビュー解禁。 26 / 40
03 — Stripe Projects 入門 現時点で 32 プロバイダー / 45 サービスが繋がる Cloudflare Vercel Hosting / Database / Auth Analytics / AI / Search Railway Render Supabase Stripe Hugging Face Netlify Neon Communications / CI/CD Observability / Cache GitLab Fly.io 28 / 40
Step 1 / 4 作成中のアプリを Stripe Projectsに登録する pnpm create next-app stripe-project-vercel cd stripe-project-vercel stripe projects init │ Project stripe-project-vercel │ ✓ Created .projects/ │ ✓ Updated .gitignore │ ✓ Created .agents/skills/stripe-projects-cli/ │ ✓ Created .claude/skills/stripe-projects-cli 19 / 40
Step 2 / 4 Linkを利用して決済手段を登録 + 利用枠を設定 % stripe projects billing Billing Method No payment method configured. Next steps stripe projects billing add Monthly usage limit per provider in USD: 10 Limit per provider: $10.00 USD Applied to: All connected and future providers Resets: 1st of each month 19 / 40
Step 3 / 4 利用したい SaaSを追加する $ stripe projects add vercel ✔ Select your plan › hobby ● Free The perfect starting place for your web app or personal project. ✓ 8 credentials created for Vercel: VERCEL_PLAN=•••••••• VERCEL_TEAM_ID=team•••••••• USではここで登録したカードによるサブスク申し込みが行われる 19 / 40
Step 4 / 4 Stripe Projectsが取得した APIキーなどでデプロイ % stripe projects env Values are redacted. clerk-plan CLERK_PLAN=•••••••• set -a && source .env && set +a npx vercel deploy --prod --token "$VERCEL_TOKEN" \ --scope "$VERCEL_ORG_ID" --yes 19 / 40
03 — 日本から Layer 3、日本から「できる」こと ✅ CLI操作・catalog確認・無料プラン契約まで完走できる ・ stripe projects init で初期化、AGENTS.md などの自動生成 ・ stripe projects catalog で 32プロバイダー / 45サービスを確認 ・ Cloudflare Workers / Neon の Free プラン契約・APIキー発行 ・ revtrona.com に「触ってみた」記事あり、追体験できる 31 / 40
03 — 日本から Layer 3、日本から「まだできない」こと ❌ 有料プランへのアップグレード( =実際にお金が動く部分) ・ 2026.4 時点、日本ユーザーは有料プラン契約に未対応( Stripe Docsに明記) ・ 内部的には SPT 経由でプロバイダーへ支払う仕組み = SPT 自体が US 限定 ・ ただし「動かして体験する」「自分の CLAUDE.mdに溶かす」までは日本からでも完走できる 32 / 40
Monetize マネタイズも、形が変わる Meter API / Streaming Payments の世界 「シート単価×人数」というSaaSの公式は、AIで割れる。
04 — マネタイズ これまで:シート課金 月額 × 人数。 ・ 人数で値付けが決まる ・ AIで生産性が上がるほど、シート数は減るインセンティブ ・ 一方で、AI機能を増やすほどモデル推論コストは線形に増える ・ 結果:マージンが薄くなる 34 / 40
04 — マネタイズ これから:使った量で課金 トークン × 単価。 ・ 価値を生んだ「行為の量」で値付けが決まる ・ トークン消費 / APIコール / エージェントタスク数 が課金単位 ・ 推論コストと収益が連動する → マージンが安定する ・ Cursor、Replit、Vercel が既にこの形に寄せている 35 / 40
04 — マネタイズ Stripe Billing の Meter API が、その測定基盤になる $ curl https://api.stripe.com/v1/billing/meter_events \ -d event_name="hidetaka_tokens" \ -d "payload[stripe_customer_id]"=cus_xxx \ -d "payload[value]"=1500 ・ Meter / MeterEvent はGA。日本のStripeアカウントでも使える ・ 高スループット用に Meter Event Streams API (v2, 10,000 req/sec) もある ・ 既存の subscription 課金と組み合わせて「定額 + 従量超過」も可 36 / 40
import { streamText, UIMessage, convertToModelMessages } from 'ai';
import { anthropic } from '@ai-sdk/anthropic';
import { meteredModel } from '@stripe/ai-sdk/meter';
export async function POST(req: Request) {
const stripeApiKey = process.env.STRIPE_SECRET_KEY;
const model = meteredModel(
anthropic('claude-sonnet-4-5'),
stripeApiKey,
'cus_MKzqLpRocXRLB5',
);
const { messages }: { messages: UIMessage[] } = await req.json();
const result = streamText({
model,
messages: convertToModelMessages(messages),
});
return result.toUIMessageStreamResponse();
}
36 / 40
Wrap up まとめ 1 AIエージェントの決済は、 3層に分けて理解する。 人がECを委任する/機械が APIを払う/機械が SaaSを契約する。 2 日本からも、Layer 2 (x402) と Layer 3 (Stripe Projects) は今夜試せる。 Layer 1 (ACP / SPT / Link) は仕様読みと観測に留める。 3 SaaSのマネタイズは「シート」から「使った量」へ。 Meter API がその測定基盤になる。 39 / 40
Q&A / Discussion ありがとうございました @hidetaka_dev / revtrona.com / hidetaka.dev JP_Stripes Osaka #16 — 2026.5.8