View a markdown version of this page

AgentCore início rápido de pagamentos - Amazon Bedrock AgentCore

AgentCore início rápido de pagamentos

Este tutorial explica como configurar AgentCore pagamentos e processar sua primeira microtransação. Ao final, seu agente pagará por um recurso usando o protocolo x402 em uma rede de teste.

Você pode configurar pagamentos de duas formas:

  • Usando a habilidade de AgentCore pagamentos — uma experiência de configuração automatizada que provisiona todos os recursos por meio de uma conversa guiada com agentes de codificação de IA, como Kiro, Claude Code ou Codex. A habilidade lida com comandos de CLI, scripts de SDK e cabeamento de estrutura para você.

  • Usando CLI, SDK ou Boto3 — Uma configuração manual passo a passo usando a CLI, o SDK ou a CLI diretamente AgentCore . AWS AWS

Usando a habilidade de AgentCore pagamentos

A habilidade de AgentCore pagamentos automatiza todo o processo de configuração por meio de uma experiência interativa e guiada. Ele fornece os seguintes recursos:

  • PaymentCredentialProvider— Armazena as credenciais do provedor de pagamento no AgentCore Identity.

  • Gerenciador de pagamentos — O recurso de alto nível que coordena as operações de pagamento.

  • Conector de pagamento — vincula o gerente às suas credenciais por meio da AgentCore CLI.

  • Instrumento de pagamento — Uma carteira criptográfica que seu agente usa para pagar comerciantes em nome de um usuário.

  • Sessão de pagamento — Um contexto limitado por tempo com limites de gastos.

A habilidade também conecta pagamentos ao seu agente com uma ferramenta independente de estrutura, então funciona com Strands, LangGraph OpenAI Agents SDK ou qualquer estrutura Python.

Pré-requisitos

Antes de começar, verifique se você tem:

  • AWS Conta com credenciais configuradas () aws configure

  • Uma AWS região em que AgentCore os pagamentos estão disponíveis — us-east-1, us-west-2, eu-central-1 ou ap-southeast-2. Consulte AWS Regiões suportadas.

  • Node.js Mais de 20 instalados (a habilidade instala a CLI automaticamente AgentCore )

  • Um agente que acessa um endpoint pago — A habilidade permite que seu agente pague por APIs protegidas por x402. Para testar, você pode usar o endpoint https://sandbox.node4all.com/v1/x402-test sandbox.

  • O kit de ferramentas do agente para AWS aws-agents plug-in instalado em seu agente de codificação de IA:

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

    O plug-in é descoberto automaticamente no manifesto do mercado. Para adicionar o marketplace, execute o seguinte comando:

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

Invoque a habilidade

A habilidade de pagamentos faz parte da agents-build habilidade do kit de ferramentas do agente para AWS. Para acioná-lo, descreva sua intenção em seu agente de codificação de IA. Por exemplo:

  • “Adicionar pagamentos ao meu agente usando a agents-build habilidade no aws-agents plugin”

  • “Configurar microtransações para meu agente usando o aws-agents plugin agents-build skill in”

  • “Preciso lidar com 402 respostas obrigatórias de pagamento usando o agents-build skill in aws-agents plugin”

  • “Contratar meu agente para pagar por APIs protegidas por x402 usando agents-build o skill in plugin” aws-agents

A habilidade detecta a intenção relacionada ao pagamento e carrega o fluxo de trabalho de pagamentos automaticamente.

O que a habilidade faz

A habilidade executa um processo automatizado que provisiona sua infraestrutura de pagamento de ponta a ponta. A habilidade executa a maioria das etapas automaticamente e faz uma pausa duas vezes para sua entrada:

  1. Verifica ou instala a AgentCore CLI e configura o projeto

  2. Cria o gerenciador de pagamentos

  3. Pausas — Você corre agentcore add payment-connector para inserir os segredos do seu provedor (credenciais Coinbase CDP ou Stripe Privy)

  4. Implanta recursos em sua AWS conta () agentcore deploy -y

  5. Conecta uma ferramenta de pagamento independente da estrutura () x402_payment_tool.py ao seu agente

  6. Cria uma carteira por usuário (instrumento) e uma sessão com orçamento limitado por meio do SDK

  7. Pausas — Você autoriza a carteira (delegação) e a financia com o testnet USDC do site Circle faucet

  8. Define variáveis de ambiente e executa um pagamento de teste em um endpoint pago

Antes de executar o comando do conector, obtenha as credenciais do seu provedor:

  • CDP da Coinbase — ID da chave da API, segredo da chave da API e segredo da carteira do site da Coinbase Developer Platform (com a assinatura delegada ativada).

  • Stripe Privy — ID do aplicativo, segredo do aplicativo, ID de autorização e chave privada de autorização do site do painel Privy.

Uma execução bem-sucedida mostra o agente ligandox402_fetch, detectando um402, liquidando o pagamento por meio do AgentCore SDK e a tentativa retornando 200 com conteúdo pago.

Usando CLI, SDK ou Boto3

Esta seção mostra cada etapa manualmente usando a AgentCore CLI, a AWS CLI ou o AWS SDK (Boto3).

Pré-requisitos

Antes de começar, verifique se você tem:

  • AWS Conta com credenciais configuradas () aws configure

  • Python 3.10+ instalado

  • Uma AWS região em que AgentCore os pagamentos estão disponíveis — us-east-1, us-west-2, eu-central-1 ou ap-southeast-2. Consulte AWS Regiões suportadas.

Instale os pacotes obrigatórios:

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

Verifique se suas credenciais estão configuradas:

aws sts get-caller-identity
dica

Se você tiver a AgentCore CLI v0.19.0 ou posterior instalada, poderá usar os comandos da CLI como alternativa ao SDK nas etapas 2, 3, 5 e 6. Cada etapa abaixo mostra as duas opções.

Etapa 1: Obter credenciais do provedor de pagamento

AgentCore os pagamentos se conectam a um provedor de pagamento externo para operações de carteira. Você precisa de credenciais de um dos provedores compatíveis antes de continuar.

exemplo
Coinbase CDP
  1. Faça login na Coinbase Developer Platform e crie ou selecione um projeto.

  2. Gere uma chave de API e anote o ID da chave da API, o segredo da chave da API e o segredo da carteira.

  3. Em Projeto > Carteiras > Non-custodial Carteira > Segurança, ative a Assinatura delegada.

Você usará esses três valores na próxima etapa:

Credencial Description

API Key ID

Identificador público para seu projeto CDP

API Key Secret

Segredo privado para assinar solicitações de API

Wallet Secret

Segredo para operações de carteira criptográfica (derivação de endereços, assinatura de transações)

Privy
  1. Crie um aplicativo Privy dedicado em dashboard.privy.io. Não reutilize aplicativos que tenham outras finalidades.

  2. Copie o ID do aplicativo e o segredo do aplicativo das configurações do seu aplicativo.

  3. Navegue até Wallet Infrastructure > Authorization e escolha New Key para gerar um par de P-256 chaves.

Você usará esses quatro valores na próxima etapa:

Credencial Description

App ID

Seu identificador de aplicativo Privy

App Secret

Segredo da autenticação básica de servidor para servidor

Authorization ID

Identificador de chave pública do par de P-256 chaves

Authorization Private Key

Chave privada do par de P-256 chaves

Para obter detalhes completos, incluindo as melhores práticas de segurança e rotação de credenciais, consulte Pré-requisitos.

Etapa 2: armazenar credenciais no Identity AgentCore

Armazene suas credenciais de provedor de pagamento como um PaymentCredentialProvider. Isso mantém AWS segredos no Secrets Manager e não no código do seu aplicativo.

exemplo
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}")

Para ver o esquema completo de solicitações e respostas, consulte CreatePaymentCredentialProvidera Referência da API.

Alternativa de CLI: armazenar credenciais

Com a AgentCore CLI, o armazenamento de credenciais acontece automaticamente quando você adiciona um conector de pagamento (Etapa 3). Ignore esta etapa se você planeja usar o caminho da CLI.

Etapa 3: criar um gerenciador de pagamentos e um conector

Um gerente de pagamentos é o recurso de alto nível que coordena as operações de pagamento. Um conector de pagamento vincula o gerente às suas credenciais de provedor de pagamento. Antes de criar esses recursos, configure as funções necessárias do IAM conforme descrito em Funções do IAM para AgentCore pagamentos.

exemplo
Console

Para ver o passo a passo completo do console, incluindo autorização do JWT e declarações personalizadas, consulte Criar um gerenciador e conector de pagamentos.

  1. Abra o AgentCore console Amazon Bedrock.

  2. No painel de navegação, em Criar, escolha Pagamentos.

  3. Escolha Criar gerenciador de pagamentos.

  4. Insira um nome para seu gerente de pagamentos.

  5. Em Permissões, escolha Criar e usar uma nova função de serviço (ou selecione uma função existente).

  6. Em Autenticação de entrada, escolha Usar nome de usuário do IAM para autorização do IAM.

  7. (Opcional) Na seção Conector de pagamento, escolha um nome para o conector e selecione uma autenticação de saída existente ou crie uma nova selecionando seu provedor (Coinbase ou Stripe Privy) e inserindo suas credenciais.

  8. Escolha Criar gerenciador de pagamentos.

AgentCore CLI

A CLI cria o provedor de credenciais, o Payment Manager e o Payment Connector em um único fluxo. No diretório do seu AgentCore projeto, adicione um gerenciador de pagamentos e um conector juntos.

Assistente interativo:

agentcore add payment-manager

O assistente solicita o nome do gerente, o padrão (interceptor), a opção de pagamento automático e o limite de gastos padrão. Em seguida, ele pergunta se deseja adicionar um conector e analisa a seleção do provedor e a entrada de credenciais.

Non-interactive (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>

Non-interactive (Privado):

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>

Depois de adicionar, implante para provisionar a infraestrutura de pagamento:

agentcore deploy

A etapa de implantação cria funções do IAM, armazena credenciais no AgentCore Identity e provisiona o Payment Manager e o Connector. Você verá “Criando infraestrutura de pagamento...” na saída.

AgentCore SDK

O AgentCore SDK cria o Payment Manager, o provedor de credenciais e o conector em uma única chamada.

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}")

Para o Stripe Privy, substitua a por credential_provider_vendor: "StripePrivy" e payment_credential_provider_config as credenciais correspondentes do Privy.

AWS CLI

Crie o Gerenciador de Pagamentos:

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

Depois que o gerente atingir o READY status, crie um provedor e um conector de credenciais. Consulte Criar um gerenciador e conector de pagamentos para ver o fluxo de trabalho completo da AWS CLI.

AWS SDK

Primeiro, crie o Gerenciador de Pagamentos (o mesmo para os dois provedores):

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)

Em seguida, crie o Conector de Pagamento para seu provedor:

CDP da Coinbase:

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}")

Privado:

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}")

Se você não tiver uma função de serviço, consulte Funções do IAM para AgentCore pagamentos para obter instruções sobre como criar uma. O console também pode criar uma função em seu nome. Para ver os esquemas completos de solicitação e resposta, consulte CreatePaymentManagere CreatePaymentConnectorna Referência da API.

Etapa 4: criar um instrumento de pagamento

Um instrumento de pagamento é uma carteira criptográfica incorporada que seu agente usa para pagar comerciantes em nome de um usuário. Cada instrumento está associado a uma rede blockchain específica.

exemplo
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

Salve a paymentInstrumentId e redirectUrl da resposta.

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}")

Para ver o esquema completo de solicitações e respostas, consulte CreatePaymentInstrumenta Referência da API.

Financie a carteira e conceda permissões

Antes que o agente possa realizar transações, o usuário final deve financiar a carteira e conceder permissões de assinatura. Abra redirectUrl a resposta acima em um navegador. No hub da carteira, o usuário pode:

  • Recarregue a carteira usando transferência criptográfica, credit/debit cartão, Apple Pay, Google Pay ou ACH

  • Conceda permissão ao agente para assinar transações em seu nome

Para um ambiente de teste, financie a carteira com testnet USDC.

Após o financiamento, pesquise o status do instrumento até que ele se torneACTIVE:

exemplo
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)

Para obter mais detalhes sobre fluxos de financiamento por provedor, consulte Financiamento da carteira.

Etapa 5: criar uma sessão de pagamento

Uma sessão de pagamento é um contexto limitado por tempo com limites de gastos opcionais. Quando a sessão expira ou o orçamento está esgotado, o agente não pode fazer pagamentos adicionais dentro dessa sessão.

exemplo
AgentCore CLI

Ao usar a CLI, você não precisa criar uma sessão manualmente. Passe --auto-session para agentcore invoke e a CLI criará ou reutilizará uma sessão com o limite de gastos padrão que você configurou no gerenciador de pagamentos.

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

Para usar uma sessão específica que você criou por meio do SDK, passe --payment-session-id em vez de--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)")

Para ver o esquema completo de solicitações e respostas, consulte CreatePaymentSessiona Referência da API.

Etapa 6: Processar um pagamento com um agente da Strands

Com todos os recursos disponíveis, crie um agente Strands que gerencie pagamentos x402 automaticamente. Quando o agente liga para um endpoint pago e recebe uma resposta HTTP 402, o plug-in de pagamentos assina a transação e repete a solicitação.

exemplo
AgentCore CLI

Invoque seu agente implantado com contexto de pagamento. A CLI passa o instrumento de pagamento e a sessão para o agente em tempo de execução, e o interceptor x402 do agente processa o pagamento automaticamente.

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

Para passar por uma sessão explícita em vez de criar uma automaticamente:

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

Use a PaymentManager classe para gerar cabeçalhos de pagamento ao receber uma resposta 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_headerscontém o cabeçalho do comprovante de pagamento. Inclua esse cabeçalho ao repetir a solicitação no endpoint pago.

AWS CLI

Ligue process-payment diretamente com uma carga x402 (usada quando você mesmo gerencia a orquestração de pagamentos):

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

Para ver o esquema completo de solicitações e respostas, consulte ProcessPaymenta Referência da API.

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)

Para ver o esquema completo de solicitação e resposta da chamada de API subjacente, consulte ProcessPaymenta Referência da API.

Verifique o pagamento

Depois que o agente processar um pagamento, verifique a sessão para confirmar se a transação foi registrada:

exemplo
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']}")

Você também pode verificar o saldo do instrumento:

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")

Você também pode verificar o saldo do instrumento:

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

Solução de problemas

Os problemas a seguir se aplicam aos caminhos de configuração manual e baseados em habilidades.

Problema Solução

O gerente de pagamentos está preso em CREATING

Aguarde até 2 minutos. Se for movido para CREATE_FAILED, verifique se o ARN e as permissões da função de serviço estão corretos.

“PaymentInstrument não ativo”

O usuário final deve financiar a carteira e conceder permissões de assinatura por meio do URL de redirecionamento antes que o agente possa realizar a transação.

“Sessão expirada ou orçamento excedido”

Crie uma nova sessão de pagamento com uma expiração mais longa ou um limite de gastos maior.

“CredentialProvider não encontrado”

Verifique se o ARN do provedor de credenciais corresponde ao que você criou na Etapa 2. Garanta que a região seja consistente em todas as chamadas.

ProcessPayment falha nas devoluções

Verifique se a carteira tem saldo suficiente em USDC para o valor da transação mais as taxas de gás.

Limpeza

Exclua os recursos que você criou durante este tutorial:

exemplo
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

Os remove comandos atualizam a configuração local. O acompanhamento deploy destrói a infraestrutura de pagamento em sua conta.

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.")

O que você construiu

Por meio desse tutorial, você criou:

  • PaymentCredentialProvider— Credenciais do provedor de pagamento armazenadas no Identity AgentCore

  • PaymentManager— Top-level recursos que coordenam as operações de pagamento

  • PaymentConnector— Integração entre seu gerente e o provedor de pagamento externo

  • PaymentInstrument— Uma carteira criptográfica incorporada, financiada e autorizada pelo usuário final

  • PaymentSession— Um contexto de pagamento limitado no tempo e com orçamento limitado

  • Strands Agent — Um agente de IA que gerencia pagamentos x402 automaticamente

Próximas etapas