View a markdown version of this page

AgentCore 支払いのクイックスタート - Amazon Bedrock AgentCore

AgentCore 支払いのクイックスタート

このチュートリアルでは、AgentCore 支払いを設定し、最初のマイクロトランザクションを処理する方法について説明します。最終的に、エージェントはテストネットワークの x402 プロトコルを使用してリソースの料金を支払います。

支払いは 2 つの方法で設定できます。

  • AgentCore Payments スキルの使用 — Kiro、Claude Code、Codex などの AI コーディングエージェントとのガイド付き会話を通じてすべてのリソースをプロビジョニングする自動セットアップエクスペリエンス。このスキルは、CLI コマンド、SDK スクリプト、フレームワークのワイヤリングを自動的に処理します。

  • CLI、SDK、または Boto3 の使用 — AgentCore CLI、 AWS SDK、または AWS CLI を直接使用するstep-by-stepの手動セットアップ。

AgentCore Payments スキルの使用

AgentCore Payments スキルは、インタラクティブなガイド付きエクスペリエンスを通じてセットアッププロセス全体を自動化します。次のリソースをプロビジョニングします。

  • PaymentCredentialProvider — 支払いプロバイダーの認証情報を AgentCore Identity に保存します。

  • Payment Manager — 支払いオペレーションを調整する最上位のリソース。

  • Payment Connector — AgentCore CLI を介してマネージャーを認証情報にリンクします。

  • 支払い手段 — エージェントがユーザーに代わってマーチャントの支払いに使用する暗号ウォレット。

  • Payment Session — 支出制限のある時間制限付きコンテキスト。

また、このスキルはフレームワークに依存しないツールを使用してエージェントに支払いをルーティングするため、Strands、LangGraph、OpenAI Agents SDK、または任意の Python フレームワークで動作します。

前提条件

開始する前に、以下を確認してください。

  • AWS 認証情報が設定されたアカウント (aws configure)

  • AgentCore 支払いが利用可能な AWS リージョン — us-east-1、us-west-2、eu-central-1、または ap-southeast-2。「サポートされている AWS リージョン」を参照してください。

  • Node.js 20+ がインストールされている (スキルは AgentCore CLI を自動的にインストールします)

  • 有料エンドポイントにアクセスするエージェント — このスキルにより、エージェントは x402 で保護された APIsに対して料金を支払うことができます。テストには、サンドボックスエンドポイント を使用できますhttps://sandbox.node4all.com/v1/x402-test

  • AI コーディングエージェントにインストールされている Agent Toolkit for AWS aws-agentsプラグイン:

    Claude Code
    /plugin marketplace add aws/agent-toolkit-for-aws /plugin install aws-agents@agent-toolkit-for-aws
    Codex

    プラグインはマーケットプレイスマニフェストから自動的に検出されます。マーケットプレイスを追加するには、次のコマンドを実行します。

    codex plugin marketplace add aws/agent-toolkit-for-aws

スキルの呼び出し

支払いスキルは、 エージェントツールキットのagents-buildスキルの一部です。 AWSこれをトリガーするには、AI コーディングエージェントでインテントを記述します。例えば、次のようになります。

  • aws-agents 「プラグインのagents-buildスキルを使用してエージェントに支払いを追加する」

  • aws-agents 「プラグインのagents-buildスキルを使用してエージェントのマイクロトランザクションを設定する」

  • aws-agents 「 プラグインのagents-buildスキルを使用して 402 Payment Required レスポンスを処理する必要があります」

  • agents-build 「スキルインaws-agentsプラグインを使用して x402 で保護された APIs」

スキルは支払い関連のインテントを検出し、支払いワークフローを自動的にロードします。

スキルの動作

スキルは、支払いインフラストラクチャをend-to-endプロビジョニングする自動プロセスを実行します。スキルはほとんどのステップを自動的に実行し、入力のために 2 回一時停止します。

  1. AgentCore CLI を検証またはインストールし、プロジェクトをセットアップします

  2. 支払いマネージャーを作成します。

  3. 一時停止agentcore add payment-connectorを実行してプロバイダーシークレット (Coinbase CDP または Stripe Privy 認証情報) を入力します。

  4. リソースを AWS アカウントにデプロイします (agentcore deploy -y)

  5. フレームワークに依存しない支払いツール (x402_payment_tool.py) をエージェントにワイヤリングする

  6. SDK を介してユーザーごとのウォレット (計器) と予算制限付きセッションを作成します。

  7. 一時停止Circle 蛇口ウェブサイトのウォレット (委任) を承認し、テストネット USDC で資金を提供します。

  8. 環境変数を設定し、有料エンドポイントに対してテスト支払いを実行します

コネクタコマンドを実行する前に、プロバイダーから認証情報を取得します。

  • Coinbase CDPCoinbase Developer Platform ウェブサイトの API キー ID、API キーシークレット、ウォレットシークレット (委任署名が有効)。

  • Stripe PrivyPrivy ダッシュボードウェブサイトのアプリ ID、アプリシークレット、認可 ID、認可プライベートキー。

実行が成功するとx402_fetch、エージェントが を呼び出し、 を検出し402、AgentCore SDK を介して支払いを決済し、有料コンテンツ200で再試行して を返します。

CLI、SDK、または Boto3 の使用

このセクションでは、AgentCore CLI、 AWS CLI、または AWS SDK (Boto3) を使用して、各ステップを手動で説明します。

前提条件

開始する前に、以下を確認してください。

  • AWS 認証情報が設定されたアカウント (aws configure)

  • Python 3.10 以降がインストールされている

  • AgentCore 支払いが利用可能な AWS リージョン — us-east-1、us-west-2、eu-central-1、または ap-southeast-2。「サポートされている AWS リージョン」を参照してください。

必要なパッケージをインストールします。

pip install boto3 bedrock-agentcore[strands-agents] strands-agents strands-agents-tools

認証情報が設定されていることを確認します。

aws sts get-caller-identity
ヒント

AgentCore CLI v0.19.0 以降がインストールされている場合は、ステップ 2、3、5、6 で SDK の代わりに CLI コマンドを使用できます。以下の各ステップは、両方のオプションを示しています。

ステップ 1: 支払いプロバイダーの認証情報を取得する

AgentCore 支払いは、ウォレットオペレーションのために外部支払いプロバイダーに接続します。先に進む前に、サポートされているプロバイダーのいずれかの認証情報が必要です。

Coinbase CDP
  1. Coinbase 開発者プラットフォームにログインし、プロジェクトを作成または選択します。

  2. API キーを生成し、API キー IDAPI キーシークレットおよびウォレットシークレットを書き留めます。

  3. Project > Wallets > Non-custodial Wallet > Security で、委任署名を有効にします。

次のステップでは、次の 3 つの値を使用します。

[認証情報] 説明

API Key ID

CDP プロジェクトのパブリック識別子

API Key Secret

API リクエストに署名するためのプライベートシークレット

Wallet Secret

暗号化ウォレットオペレーション (アドレスの取得、トランザクションの署名) のシークレット

Privy
  1. dashboard.privy.io専用の Privy アプリを作成します。他の目的を果たすアプリは再利用しないでください。

  2. アプリ設定からアプリ IDアプリシークレットをコピーします。

  3. ウォレットインフラストラクチャ > 認可に移動し、新しいキーを選択して P-256 キーペアを生成します。

次のステップでは、次の 4 つの値を使用します。

[認証情報] 説明

App ID

Privy アプリケーション識別子

App Secret

server-to-server基本認証のシークレット

Authorization ID

P-256 キーペアからのパブリックキー識別子

Authorization Private Key

P-256 キーペアからのプライベートキー

セキュリティのベストプラクティスや認証情報のローテーションなどの詳細については、「前提条件」を参照してください。

ステップ 2: AgentCore Identity に認証情報を保存する

支払いプロバイダーの認証情報を PaymentCredentialProvider として保存します。これにより、アプリケーションコードではなく AWS Secrets Manager にシークレットが保持されます。

Coinbase CDP
import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-west-2") credential_provider = client.create_payment_credential_provider( name="my-coinbase-credentials", credentialProviderVendor="CoinbaseCDP", coinbaseCdpConfig={ "apiKeyId": "<YOUR_CDP_API_KEY_ID>", "apiKeySecret": "<YOUR_CDP_API_KEY_SECRET>", "walletSecret": "<YOUR_CDP_WALLET_SECRET>" } ) CREDENTIAL_PROVIDER_ARN = credential_provider["credentialProviderArn"] print(f"Credential provider created: {CREDENTIAL_PROVIDER_ARN}")
Privy
import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-west-2") credential_provider = client.create_payment_credential_provider( name="my-privy-credentials", credentialProviderVendor="StripePrivy", stripePrivyConfig={ "appId": "<YOUR_PRIVY_APP_ID>", "appSecret": "<YOUR_PRIVY_APP_SECRET>", "authorizationId": "<YOUR_PRIVY_AUTHORIZATION_ID>", "authorizationPrivateKey": "<YOUR_PRIVY_PRIVATE_KEY_BASE64>" } ) CREDENTIAL_PROVIDER_ARN = credential_provider["credentialProviderArn"] print(f"Credential provider created: {CREDENTIAL_PROVIDER_ARN}")

リクエストとレスポンスの完全なスキーマについては、 API リファレンスのCreatePaymentCredentialProvider」を参照してください。

CLI の代替方法: 認証情報を保存する

AgentCore CLI では、支払いコネクタを追加すると認証情報ストレージが自動的に実行されます (ステップ 3)。CLI パスを使用する場合は、このステップをスキップします。

ステップ 3: Payment Manager とコネクタを作成する

Payment Manager は、支払いオペレーションを調整する最上位のリソースです。Payment Connector は、マネージャーを支払いプロバイダーの認証情報にリンクします。これらのリソースを作成する前に、AgentCore 支払いの IAM ロールの説明に従って、必要な IAM ロールを設定します。

Console

JWT 認可やカスタムクレームを含むコンソールの詳細なチュートリアルについては、「Payment Manager と Connector の作成」を参照してください。

  1. Amazon Bedrock AgentCore コンソールを開きます。

  2. ナビゲーションペインのビルドで、支払いを選択します。

  3. Payment Manager の作成を選択します。

  4. Payment Manager の名前を入力します。

  5. アクセス許可で新しいサービスロールを作成して使用する (または既存のロールを選択する) を選択します。

  6. Inbound Auth で、IAM 認可に IAM ユーザー名を使用する を選択します。

  7. (オプション) Payment connector セクションで、コネクタの名前を選択し、既存のアウトバウンド認証を選択するか、プロバイダー (Coinbase または Stripe Privy) を選択して認証情報を入力して新しい認証を作成します。

  8. Payment Manager の作成を選択します。

AgentCore CLI

CLI は、認証情報プロバイダー、 Payment Manager、 Payment Connector を 1 つのフローに作成します。AgentCore プロジェクトディレクトリから、支払いマネージャーとコネクタを一緒に追加します。

インタラクティブウィザード:

agentcore add payment-manager

ウィザードは、マネージャー名、パターン (インターセプター)、自動支払いトグル、デフォルトの使用制限を求めます。次に、コネクタを追加するかどうかを尋ね、プロバイダーの選択と認証情報の入力について説明します。

非インタラクティブ (Coinbase CDP):

agentcore add payment-manager \ --name my-payment-manager \ --auto-payment \ --default-spend-limit 5.00 agentcore add payment-connector \ --manager my-payment-manager \ --name my-coinbase-connector \ --provider CoinbaseCDP \ --api-key-id <YOUR_CDP_API_KEY_ID> \ --api-key-secret <YOUR_CDP_API_KEY_SECRET> \ --wallet-secret <YOUR_CDP_WALLET_SECRET>

非インタラクティブ (プライベート):

agentcore add payment-manager \ --name my-payment-manager \ --auto-payment \ --default-spend-limit 5.00 agentcore add payment-connector \ --manager my-payment-manager \ --name my-privy-connector \ --provider StripePrivy \ --app-id <YOUR_PRIVY_APP_ID> \ --app-secret <YOUR_PRIVY_APP_SECRET> \ --authorization-id <YOUR_PRIVY_AUTHORIZATION_ID> \ --authorization-private-key <YOUR_PRIVY_PRIVATE_KEY_BASE64>

追加したら、 をデプロイして支払いインフラストラクチャをプロビジョニングします。

agentcore deploy

デプロイステップでは、IAM ロールを作成し、AgentCore Identity に認証情報を保存して、 Payment Manager と Connector をプロビジョニングします。出力に「支払いインフラストラクチャの作成」が表示されます。

AgentCore SDK

AgentCore SDK は、1 回の呼び出しで Payment Manager、認証情報プロバイダー、コネクタを作成します。

from bedrock_agentcore.payments import PaymentClient payment_client = PaymentClient(region_name="us-west-2") response = payment_client.create_payment_manager_with_connector( payment_manager_name="my-first-payment-manager", payment_manager_description="Payment manager for my agent.", authorizer_type="AWS_IAM", role_arn="<YOUR_SERVICE_ROLE_ARN>", payment_connector_config={ "name": "my-coinbase-connector", "description": "Coinbase CDP connector", "payment_credential_provider_config": { "name": "my-coinbase-provider", "credential_provider_vendor": "CoinbaseCDP", "credentials": { "api_key_id": "<YOUR_CDP_API_KEY_ID>", "api_key_secret": "<YOUR_CDP_API_KEY_SECRET>", "wallet_secret": "<YOUR_CDP_WALLET_SECRET>", }, }, }, wait_for_ready=True, max_wait=300, poll_interval=5, ) PAYMENT_MANAGER_ARN = response["paymentManager"]["paymentManagerArn"] PAYMENT_CONNECTOR_ID = response["paymentConnector"]["paymentConnectorId"] print(f"Payment Manager ARN: {PAYMENT_MANAGER_ARN}") print(f"Connector ID: {PAYMENT_CONNECTOR_ID}")

Stripe Privy の場合は、 payment_credential_provider_configcredential_provider_vendor: "StripePrivy"および対応する Privy 認証情報に置き換えます。

AWS CLI

Payment Manager を作成します。

aws bedrock-agentcore-control create-payment-manager \ --name "my-first-payment-manager" \ --authorizer-type AWS_IAM \ --role-arn "<YOUR_SERVICE_ROLE_ARN>" \ --region us-west-2

マネージャーがREADYステータスに達したら、認証情報プロバイダーとコネクタを作成します。完全な CLI ワークフローについては、「Payment Manager とコネクタの作成」を参照してください。 AWS

AWS SDK

まず、 Payment Manager を作成します (両方のプロバイダーで同じ)。

import time manager = client.create_payment_manager( name="my-first-payment-manager", authorizerType="AWS_IAM", roleArn="<YOUR_SERVICE_ROLE_ARN>" ) PAYMENT_MANAGER_ARN = manager["paymentManagerArn"] print(f"Payment Manager created: {PAYMENT_MANAGER_ARN}") # Wait for the manager to reach READY state while True: status = client.get_payment_manager(paymentManagerArn=PAYMENT_MANAGER_ARN) if status["status"] == "READY": break print(f"Status: {status['status']}... waiting") time.sleep(5)

次に、プロバイダーの Payment Connector を作成します。

Coinbase CDP:

connector = client.create_payment_connector( paymentManagerArn=PAYMENT_MANAGER_ARN, name="my-coinbase-connector", paymentConnectorType="CoinbaseCDP", credentialProviderArn=CREDENTIAL_PROVIDER_ARN ) PAYMENT_CONNECTOR_ID = connector["paymentConnectorId"] print(f"Connector created: {PAYMENT_CONNECTOR_ID}")

プライベート:

connector = client.create_payment_connector( paymentManagerArn=PAYMENT_MANAGER_ARN, name="my-privy-connector", paymentConnectorType="StripePrivy", credentialProviderArn=CREDENTIAL_PROVIDER_ARN ) PAYMENT_CONNECTOR_ID = connector["paymentConnectorId"] print(f"Connector created: {PAYMENT_CONNECTOR_ID}")

サービスロールがない場合は、サービスロールの作成手順について AgentCore 支払いの IAM ロールを参照してください。コンソールは、ユーザーに代わってロールを作成することもできます。リクエストとレスポンスの完全なスキーマについては、 API リファレンスのCreatePaymentManager」とCreatePaymentConnector」を参照してください。

ステップ 4: 支払い手段を作成する

支払い手段は、エージェントがユーザーに代わってマーチャントに支払うために使用する埋め込み暗号ウォレットです。各機器は、特定のブロックチェーンネットワークに関連付けられます。

AgentCore SDK
from bedrock_agentcore.payments import PaymentManager manager = PaymentManager( payment_manager_arn=PAYMENT_MANAGER_ARN, region_name="us-west-2" ) instrument = manager.create_payment_instrument( user_id="test-user-123", payment_connector_id=PAYMENT_CONNECTOR_ID, payment_instrument_type="EMBEDDED_CRYPTO_WALLET", payment_instrument_details={ "embeddedCryptoWallet": { "network": "ETHEREUM", "linkedAccounts": [{"email": {"emailAddress": "your-email@example.com"}}] } }, ) INSTRUMENT_ID = instrument["paymentInstrumentId"] REDIRECT_URL = instrument["paymentInstrumentDetails"]["redirectUrl"] print(f"Instrument created: {INSTRUMENT_ID}") print(f"Fund the wallet at: {REDIRECT_URL}")
AWS CLI
aws bedrock-agentcore create-payment-instrument \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-connector-id "$PAYMENT_CONNECTOR_ID" \ --user-id "test-user-123" \ --payment-instrument-type "EMBEDDED_CRYPTO_WALLET" \ --payment-instrument-details '{ "embeddedCryptoWallet": { "network": "ETHEREUM", "linkedAccounts": [{"email": {"emailAddress": "your-email@example.com"}}] } }' \ --client-token "$(uuidgen)" \ --region us-west-2

レスポンスredirectUrlから paymentInstrumentIdと を保存します。

AWS SDK
import uuid dp_client = boto3.client("bedrock-agentcore", region_name="us-west-2", endpoint_url="https://bedrock-agentcore.us-west-2.amazonaws.com") instrument = dp_client.create_payment_instrument( userId="test-user-123", paymentManagerArn=PAYMENT_MANAGER_ARN, paymentConnectorId=PAYMENT_CONNECTOR_ID, paymentInstrumentType="EMBEDDED_CRYPTO_WALLET", paymentInstrumentDetails={ "embeddedCryptoWallet": { "network": "ETHEREUM", "linkedAccounts": [{"email": {"emailAddress": "your-email@example.com"}}] } }, clientToken=str(uuid.uuid4()), ) INSTRUMENT_ID = instrument["paymentInstrumentId"] REDIRECT_URL = instrument["paymentInstrumentDetails"]["redirectUrl"] print(f"Instrument created: {INSTRUMENT_ID}") print(f"Fund the wallet at: {REDIRECT_URL}")

完全なリクエストとレスポンスのスキーマについては、 API リファレンスのCreatePaymentInstrument」を参照してください。

ウォレットに資金を提供し、アクセス許可を付与する

エージェントが取引する前に、エンドユーザーはウォレットに資金を提供し、署名権限を付与する必要があります。ブラウザで上記のレスポンスredirectUrlから を開きます。ウォレットハブから、ユーザーは次のことができます。

  • 暗号転送、クレジットカード/デビットカード、Apple Pay、Google Pay、または ACH を使用してウォレットを補充する

  • エージェントに代わってトランザクションに署名するアクセス許可をエージェントに付与する

テスト環境の場合は、ウォレットに testnet USDC を注入します。

資金調達後、 になるまで計測ステータスをポーリングしますACTIVE

AgentCore SDK
instrument = manager.get_payment_instrument( user_id="test-user-123", payment_instrument_id=INSTRUMENT_ID ) print(f"Status: {instrument['status']}")
AWS CLI
aws bedrock-agentcore get-payment-instrument \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-instrument-id "$INSTRUMENT_ID" \ --region us-west-2
AWS SDK
while True: inst_status = dp_client.get_payment_instrument( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentInstrumentId=INSTRUMENT_ID ) if inst_status["status"] == "ACTIVE": print("Instrument is active and funded.") break print(f"Instrument status: {inst_status['status']}... waiting for funding") time.sleep(10)

プロバイダー別の資金フローの詳細については、「Funding the wallet」を参照してください。

ステップ 5: 支払いセッションを作成する

支払いセッションは、オプションの支出制限がある時間制限付きコンテキストです。セッションの有効期限が切れるか、予算が枯渇した場合、エージェントはそのセッション内でそれ以上の支払いを行うことはできません。

AgentCore CLI

CLI を使用する場合、セッションを手動で作成する必要はありません。--auto-session に渡すagentcore invokeと、 CLI は支払いマネージャーで設定したデフォルトの使用制限でセッションを作成または再利用します。

agentcore invoke \ --prompt "your prompt here" \ --payment-instrument-id <INSTRUMENT_ID> \ --auto-session \ --payment-user-id test-user-123

SDK で作成した特定のセッションを使用するには、 --payment-session-id の代わりに を渡します--auto-session

AgentCore SDK
from bedrock_agentcore.payments import PaymentManager manager = PaymentManager( payment_manager_arn=PAYMENT_MANAGER_ARN, region_name="us-west-2" ) session = manager.create_payment_session( user_id="test-user-123", limits={"maxSpendAmount": {"value": "5.00", "currency": "USD"}}, expiry_time_in_minutes=60 ) SESSION_ID = session["paymentSessionId"] print(f"Session created: {SESSION_ID} (expires in 60 minutes, $5.00 limit)")
AWS CLI
aws bedrock-agentcore create-payment-session \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --user-id "test-user-123" \ --expiry-time-in-minutes 60 \ --limits '{"maxSpendAmount": {"value": "5.00", "currency": "USD"}}' \ --client-token "$(uuidgen)" \ --region us-west-2
AWS SDK
session = dp_client.create_payment_session( userId="test-user-123", paymentManagerArn=PAYMENT_MANAGER_ARN, expiryTimeInMinutes=60, limits={"maxSpendAmount": {"value": "5.00", "currency": "USD"}}, clientToken=str(uuid.uuid4()), ) SESSION_ID = session["paymentSessionId"] print(f"Session created: {SESSION_ID} (expires in 60 minutes, $5.00 limit)")

完全なリクエストとレスポンスのスキーマについては、 API リファレンスのCreatePaymentSession」を参照してください。

ステップ 6: Strands エージェントで支払いを処理する

すべてのリソースを配置したら、x402 支払いを自動的に処理する Strands エージェントを作成します。エージェントが有料エンドポイントを呼び出して HTTP 402 レスポンスを受信すると、支払いプラグインはトランザクションに署名し、リクエストを再試行します。

AgentCore CLI

支払いコンテキストを使用してデプロイされたエージェントを呼び出します。CLI は実行時に支払い手段とセッションをエージェントに渡し、エージェントの x402 インターセプターは自動的に支払いを処理します。

agentcore invoke \ --prompt "Access the premium endpoint at https://example-x402-merchant.com/paid-api" \ --payment-instrument-id <INSTRUMENT_ID> \ --auto-session \ --payment-user-id test-user-123

自動作成の代わりに明示的なセッションを渡すには:

agentcore invoke \ --prompt "Access the premium endpoint at https://example-x402-merchant.com/paid-api" \ --payment-instrument-id <INSTRUMENT_ID> \ --payment-session-id <SESSION_ID> \ --payment-user-id test-user-123
AgentCore SDK

クラスを使用してPaymentManager、HTTP 402 レスポンスを受け取ったときに支払いヘッダーを生成します。

import uuid from bedrock_agentcore.payments import PaymentManager manager = PaymentManager( payment_manager_arn=PAYMENT_MANAGER_ARN, region_name="us-west-2" ) # When you receive a 402 response, generate payment proof payment_required_request = { "statusCode": 402, "headers": payment_required["headers"], "body": payment_required["body"], } payment_proof_headers = manager.generate_payment_header( user_id="test-user-123", payment_instrument_id=INSTRUMENT_ID, payment_session_id=SESSION_ID, payment_required_request=payment_required_request, client_token=str(uuid.uuid4()), )

payment_proof_headers には、支払い証明ヘッダーが含まれています。有料エンドポイントへのリクエストを再試行する場合は、このヘッダーを含めます。

AWS CLI

x402 ペイロードを使用してprocess-payment直接 を呼び出します (自分で支払いオーケストレーションを処理する場合に使用されます)。

aws bedrock-agentcore process-payment \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-session-id "$SESSION_ID" \ --payment-instrument-id "$INSTRUMENT_ID" \ --payment-type "CRYPTO_X402" \ --payment-input '{ "cryptoX402": { "version": "2", "payload": { "scheme": "exact", "network": "eip155:84532", "amount": "100000", "asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e", "payTo": "0xMERCHANT_ADDRESS", "maxTimeoutSeconds": 300, "extra": {"name": "USDC", "version": "2"} } } }' \ --client-token "$(uuidgen)" \ --region us-west-2

完全なリクエストとレスポンスのスキーマについては、 API リファレンスのProcessPayment」を参照してください。

AWS SDK
from strands import Agent from strands_tools import http_request from bedrock_agentcore.payments.integrations.config import AgentCorePaymentsPluginConfig from bedrock_agentcore.payments.integrations.strands.plugin import AgentCorePaymentsPlugin config = AgentCorePaymentsPluginConfig( payment_manager_arn=PAYMENT_MANAGER_ARN, user_id="test-user-123", payment_instrument_id=INSTRUMENT_ID, payment_session_id=SESSION_ID, region="us-west-2", ) plugin = AgentCorePaymentsPlugin(config=config) agent = Agent( system_prompt="You are a helpful assistant that can access paid APIs.", tools=[http_request], plugins=[plugin], ) # The agent handles 402 responses automatically response = agent("Access the premium endpoint at https://example-x402-merchant.com/paid-api") print(response)

基盤となる API コールの完全なリクエストとレスポンスのスキーマについては、 API リファレンスのProcessPayment」を参照してください。

支払いを確認する

エージェントが支払いを処理したら、セッションをチェックしてトランザクションが記録されたことを確認します。

AgentCore SDK
session = manager.get_payment_session( user_id="test-user-123", payment_session_id=SESSION_ID ) print(f"Status: {session['status']}, Remaining: {session['remainingAmount']}")

計測バランスを確認することもできます。

balance = manager.get_payment_instrument_balance( user_id="test-user-123", payment_instrument_id=INSTRUMENT_ID ) print(f"Remaining balance: {balance['amount']} {balance['currency']}")
AWS CLI
aws bedrock-agentcore get-payment-session \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-session-id "$SESSION_ID" \ --region us-west-2 aws bedrock-agentcore get-payment-instrument-balance \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-instrument-id "$INSTRUMENT_ID" \ --region us-west-2
AWS SDK
session_status = dp_client.get_payment_session( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentSessionId=SESSION_ID ) print(f"Session status: {session_status['status']}") print(f"Amount spent: {session_status.get('spentAmount', '0.00')} USD")

計測バランスを確認することもできます。

balance = dp_client.get_payment_instrument_balance( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentInstrumentId=INSTRUMENT_ID ) print(f"Remaining balance: {balance['amount']} {balance['currency']}")

トラブルシューティング

スキルベースと手動の両方の設定パスには、次の問題が適用されます。

問題 ソリューション

Payment Manager が CREATING でスタックする

最大 2 分待ちます。CREATE_FAILED に移動する場合は、サービスロールの ARN とアクセス許可が正しいことを確認します。

PaymentInstrument not active」

エンドユーザーは、エージェントが取引する前に、ウォレットに資金を提供し、リダイレクト URL を介して署名アクセス許可を付与する必要があります。

「セッションの有効期限切れまたは予算超過」

有効期限が長いか、使用制限がより高い新しい支払いセッションを作成します。

CredentialProvider not found」

認証情報プロバイダーの ARN がステップ 2 で作成したものと一致していることを確認します。リージョンがすべての呼び出しで一貫していることを確認します。

ProcessPayment が FAILED を返す

ウォレットに取引金額とガス料金に十分な USDC 残高があることを確認します。

クリーンアップ

このチュートリアルで作成したリソースを削除します。

AgentCore CLI
agentcore remove payment-connector --manager my-payment-manager --name my-coinbase-connector --yes agentcore remove payment-manager --name my-payment-manager --yes agentcore deploy

remove コマンドはローカル設定を更新します。フォローアップにより、アカウントの支払いインフラストラクチャがdeploy破棄されます。

AgentCore SDK
from bedrock_agentcore.payments import PaymentClient payment_client = PaymentClient(region_name="us-west-2") payment_client.delete_payment_manager( payment_manager_id="<paymentManagerId>" ) print("Payment Manager deleted.")
AWS CLI
aws bedrock-agentcore delete-payment-instrument \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-instrument-id "$INSTRUMENT_ID" \ --region us-west-2 aws bedrock-agentcore-control delete-payment-connector \ --payment-manager-id "$PAYMENT_MANAGER_ID" \ --payment-connector-id "$PAYMENT_CONNECTOR_ID" \ --region us-west-2 aws bedrock-agentcore-control delete-payment-manager \ --payment-manager-id "$PAYMENT_MANAGER_ID" \ --region us-west-2
AWS SDK
# Delete payment instrument dp_client.delete_payment_instrument( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentInstrumentId=INSTRUMENT_ID ) # Delete payment connector client.delete_payment_connector( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentConnectorId=PAYMENT_CONNECTOR_ID ) # Delete payment manager client.delete_payment_manager( paymentManagerArn=PAYMENT_MANAGER_ARN ) print("All payment resources deleted.")

構築したもの

このチュートリアルでは、以下を作成しました。

  • PaymentCredentialProvider — AgentCore Identity に保存されている支払いプロバイダー認証情報

  • PaymentManager — 支払いオペレーションを調整する最上位のリソース

  • PaymentConnector — マネージャーと外部支払いプロバイダーの統合

  • PaymentInstrument — エンドユーザーが資金を提供し、承認した埋め込み暗号ウォレット

  • PaymentSession — 時間制限付き、予算制限付きの支払いコンテキスト

  • ストランドエージェント — x402 支払いを自動的に処理する AI エージェント

次の手順