As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
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 maneiras:
-
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 CLI, scripts de SDK e fiação de estrutura para você.
-
Usando CLI, SDK ou Boto3 — Uma configuração manual passo a passo usando diretamente a CLI, o SDK ou a AgentCore CLI. AWS AWS
Você pode fornecer credenciais de duas maneiras ao criar um conector Coinbase. Com a criação rápida (recomendada), você autoriza por meio da Coinbase e das provisões de AgentCore pagamentos e armazena as credenciais para você — sem chaves para gerar ou colar. Com o Manual, você fornece as chaves da API Coinbase que você mesmo gerou. O Stripe (Privy) usa somente o fluxo manual. Com a criação rápida, você pula as etapas 1 e 2 da configuração manual.
Usando a habilidade AgentCore Pagamentos
A habilidade AgentCore Payments 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 nível superior 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 no tempo com limites de gastos.
A habilidade também transfere pagamentos para seu agente com uma ferramenta independente de estrutura, por isso 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 onde AgentCore os pagamentos estão disponíveis — Consulte AWS as regiões suportadas.
-
Uma assinatura do Coinbase AWS Marketplace (somente Coinbase) — Se você usa a Coinbase como seu provedor de pagamento, você deve assinar a listagem Coinbase Wallets for AgentCore Payments no Marketplace. AWS Com esta assinatura, as cobranças de uso da sua carteira Coinbase são consolidadas em sua AWS fatura mensal com base nos preços da Coinbase no site da Coinbase. Consulte Assinar carteiras Coinbase para AgentCore pagamentos no AWS Marketplace.
-
Node.js Mais de 20 instalados (a habilidade instala a AgentCore CLI automaticamente)
-
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 mercado, 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 Agent Toolkit for AWS. Para acioná-lo, descreva sua intenção em seu agente de codificação de IA. Por exemplo:
-
“Adicionar pagamentos ao meu agente usando o aws-agents plugin agents-build Skill in”
-
“Configurar microtransações para meu agente usando o aws-agents plugin agents-build Skill in”
-
“Preciso lidar com 402 respostas de pagamento exigido usando o aws-agents plugin agents-build skill in”
-
“Transfira 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 opinião:
-
Verifica ou instala a AgentCore CLI e configura o projeto
-
Cria o gerenciador de pagamentos
-
Pausas — Você adiciona um conector de pagamento. Para o Coinbase com criação rápida (recomendado), você autoriza, por meio da Coinbase e AgentCore dos pagamentos, as credenciais para você — sem segredos para inserir. Para o manual da Coinbase ou o Stripe (Privy), você corre agentcore add payment-connector para inserir os segredos do seu provedor.
-
Implanta recursos em sua AWS conta () agentcore deploy -y
-
Conecta uma ferramenta de pagamento independente de estrutura () x402_payment_tool.py ao seu agente
-
Cria uma carteira por usuário (instrumento) e uma sessão com orçamento limitado por meio do SDK
-
Pausas - Você autoriza a carteira (delegação) e a financia com o testnet USDC no site da Circle faucet https://faucet.circle.com/
-
Define variáveis de ambiente e executa um pagamento de teste em um endpoint pago
Se você usar o fluxo manual (manual da Coinbase ou Stripe Privy), obtenha as credenciais do seu provedor antes de adicionar o conector. Com o Coinbase Quick Create, você ignora isso — você autoriza por meio da Coinbase em vez de colar as chaves.
-
Coinbase CDP (somente manual) — ID da chave de API, segredo da chave de API e segredo da carteira do site da Coinbase Developer Platform (com assinatura delegada ativada). A Coinbase também exige uma assinatura ativa do AWS Marketplace na listagem Coinbase Wallets for AgentCore Payments. Consulte Assinar carteiras Coinbase para AgentCore pagamentos no AWS Marketplace.
-
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 retornando 200 novamente com conteúdo pago.
Usando CLI, SDK ou Boto3
Esta seção mostra cada etapa manualmente usando a AgentCore CLI, AWS a CLI ou o AWS SDK (Boto3).
Pré-requisitos
Antes de começar, verifique se você tem:
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
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 as credenciais do provedor de pagamento (fluxo manual)
As etapas 1 e 2 se aplicam ao fluxo manual de credenciais — Coinbase (manual) ou Stripe (Privy).
Usando o Quick create para Coinbase (recomendado). Pule as etapas 1 e 2 e veja a Etapa 3. AgentCore os pagamentos fornecem as credenciais da Coinbase para você após a autorização por meio da Coinbase — você não obtém nem armazena nenhuma chave.
AgentCore os pagamentos se conectam a um provedor de pagamento externo para operações de carteira. Você precisa das credenciais de um dos provedores compatíveis antes de continuar.
exemplo
- Coinbase CDP
-
-
Faça login na Plataforma de Desenvolvedores da Coinbase e crie ou faça login em sua conta. Selecione um projeto.
-
Navegue até o painel de chaves de API, escolha Criar chave de API secreta e anote o ID da chave de API e o segredo da chave de API. Volte ao seu projeto.
-
Em Produtos > Carteiras > Non-custodial Carteira > Segurança, escolha Gerar novo em Gerar segredo da carteira e anote o segredo da carteira.
-
Em Produtos > Carteiras > Non-custodial Carteira > Segurança, ative a assinatura delegada.
Você usará esses valores na próxima etapa:
| Credencial |
Description |
|
API Key ID
|
Identificador público para seu projeto de 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
-
-
Crie um aplicativo Privy dedicado em https://dashboard.privy.io/ dashboard.privy.io. Não reutilize aplicativos que tenham outras finalidades.
-
Copie o ID do aplicativo e o segredo do aplicativo das configurações do seu aplicativo.
-
Navegue até Wallet Infrastructure > Authorization e escolha Nova chave 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 para 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 melhores práticas de segurança e rotação de credenciais, consulte Pré-requisitos para pagamentos AgentCore Pré-requisitos.
Etapa 2: armazenar credenciais no AgentCore Identity (fluxo manual)
Armazene suas credenciais de provedor de pagamento como um PaymentCredentialProvider. Isso mantém os AWS segredos no Secrets Manager e não no código do seu aplicativo. Se você estiver usando o Coinbase Quick Create, pule esta etapa. AgentCore O Payments cria e armazena o provedor de credenciais para você na Etapa 3.
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ção e resposta, consulte CreatePaymentCredentialProvider a Referência da API.
Alternativa da 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 e conector de pagamentos
Um gerenciador de pagamentos é o recurso de nível superior 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 do IAM necessárias conforme descrito em Funções do IAM para AgentCore pagamentos.
Primeiro, crie o Gerenciador de pagamentos (comum a todos os provedores):
exemplo
- Console
-
-
Abra o AgentCore console https://console.aws.amazon.com/bedrock-agentcore/ Amazon Bedrock.
-
No painel de navegação, em Criar, escolha Pagamentos.
-
Escolha Criar gerente de pagamento, insira um nome e, em Permissões, escolha Criar e usar uma nova função de serviço (ou selecione uma função existente).
-
Em Autenticação de entrada, escolha Usar nome de usuário do IAM.
-
Escolha Criar gerenciador de pagamentos. Você adiciona o conector na seção do provedor abaixo.
Para ver o passo a passo completo do console, incluindo autorização do JWT e solicitações personalizadas, consulte Criar um gerenciador e conector de pagamentos.
- AgentCore CLI
-
agentcore add payment-manager \
--name my-payment-manager \
--auto-payment \
--default-spend-limit 5.00
Adicione o conector na seção do provedor abaixo e executeagentcore deploy.
- AgentCore SDK
-
from bedrock_agentcore.payments.client import PaymentClient
payment_client = PaymentClient(region_name="us-west-2")
manager = payment_client.create_payment_manager(
name="my-first-payment-manager",
authorizer_type="AWS_IAM",
role_arn="<YOUR_SERVICE_ROLE_ARN>",
)
PAYMENT_MANAGER_ID = manager["paymentManagerId"]
Use PAYMENT_MANAGER_ID com payment_client para criar o conector na seção do provedor abaixo.
- AWS CLI
-
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
Aguarde até que o gerente entre em contato READY e crie o conector na seção de provedores abaixo.
- AWS SDK
-
import time
manager = client.create_payment_manager(
name="my-first-payment-manager",
authorizerType="AWS_IAM",
roleArn="<YOUR_SERVICE_ROLE_ARN>"
)
PAYMENT_MANAGER_ID = manager["paymentManagerId"]
while client.get_payment_manager(paymentManagerId=PAYMENT_MANAGER_ID)["status"] != "READY":
time.sleep(5)
Em seguida, crie um conector de pagamento para seu provedor. Escolha a seção Coinbase (criação rápida ou manual) ou a seção Stripe (Privy).
Coinbase — Criação rápida (recomendado)
Com o Quick Create, você não obtém nem armazena credenciais da Coinbase. No console, você conclui isso escolhendo Criação rápida com a Coinbase. Com a AWS CLI, AWS SDK, AgentCore CLI ou AgentCore SDK, passe provisionMode=QUICK_CREATE com uma lista de credenciais vazia. O conector começa em PENDING_AUTHENTICATION e retorna umauthorizationUrl. Você abre o retornado authorizationUrl em um navegador. Depois de autorizar por meio da Coinbase, AgentCore os pagamentos provisionam as credenciais e movem o conector para o. READY
exemplo
- Console
-
-
Na seção Conector de pagamento, escolha Adicionar autenticação de saída > Criar autenticação de pagamento e, em Provedor de pagamento, escolha Coinbase.
-
Escolha Configurações de criação rápida - recomendado e escolha Criar autenticação de pagamento.
-
Uma janela da Coinbase é aberta — faça login ou cadastre-se e autorize (vincule) sua conta Coinbase CDP.
-
AgentCore os pagamentos provisionam a chave da API CDP da Coinbase e o segredo da carteira e os armazenam para você. O conector se move de PENDING_AUTHENTICATION paraREADY.
- AgentCore CLI
-
agentcore add payment-connector \
--manager my-payment-manager \
--name my-coinbase-connector \
--provider CoinbaseCDP \
--provision-mode QUICK_CREATE
agentcore deploy
A CLI abre o fluxo de autorização da Coinbase. Depois de autorizar, o serviço fornece as credenciais e o conector chega. READY
- AgentCore SDK
-
connector = payment_client.create_payment_connector(
payment_manager_id=PAYMENT_MANAGER_ID,
name="my-coinbase-connector",
connector_type="CoinbaseCDP",
credential_provider_configurations=[],
provision_mode="QUICK_CREATE",
)
# Open connector["authorizationUrl"], authorize through Coinbase,
# then poll get_payment_connector until status == "READY".
- AWS CLI
-
aws bedrock-agentcore-control create-payment-connector \
--payment-manager-id "<PAYMENT_MANAGER_ID>" \
--name "my-coinbase-connector" \
--type CoinbaseCDP \
--credential-provider-configurations '[]' \
--provision-mode QUICK_CREATE \
--region us-west-2
A resposta inclui status: PENDING_AUTHENTICATION e umauthorizationUrl. Abra o URL em um navegador e conclua a autorização da Coinbase e, em seguida, faça uma pesquisa até que o conector seja: READY
aws bedrock-agentcore-control get-payment-connector \
--payment-manager-id "<PAYMENT_MANAGER_ID>" \
--payment-connector-id "<PAYMENT_CONNECTOR_ID>" \
--region us-west-2
- AWS SDK
-
connector = client.create_payment_connector(
paymentManagerId=PAYMENT_MANAGER_ID,
name="my-coinbase-connector",
type="CoinbaseCDP",
credentialProviderConfigurations=[],
provisionMode="QUICK_CREATE",
)
PAYMENT_CONNECTOR_ID = connector["paymentConnectorId"]
print(connector["status"], connector.get("authorizationUrl"))
# PENDING_AUTHENTICATION https://...
# Open the authorizationUrl, authorize, then poll get_payment_connector until READY.
Coinbase — Manual
Use as credenciais do Coinbase CDP que você mesmo gerou (Etapas 1—2). Crie o provedor de credenciais e, em seguida, crie o conector referenciando seu ARN. Para ver as instruções manuais do console ou da AgentCore CLI, consulte Criar um gerenciador e conector de pagamentos.
exemplo
- AgentCore CLI
-
agentcore add payment-connector \
--manager <manager-name> \
--name my-coinbase-connector \
--provider CoinbaseCDP \
--api-key-id <YOUR_API_KEY_ID> \
--api-key-secret <YOUR_API_KEY_SECRET> \
--wallet-secret <YOUR_WALLET_SECRET>
agentcore deploy
A CLI armazena as credenciais no AgentCore Identity e cria o conector quando você executa. agentcore deploy
- AgentCore SDK
-
connector = payment_client.create_payment_connector(
payment_manager_id=PAYMENT_MANAGER_ID,
name="my-coinbase-connector",
connector_type="CoinbaseCDP",
credential_provider_configurations=[
{"coinbaseCDP": {"credentialProviderArn": CREDENTIAL_PROVIDER_ARN}}
],
)
- AWS CLI
-
aws bedrock-agentcore-control create-payment-connector \
--payment-manager-id "<PAYMENT_MANAGER_ID>" \
--name "my-coinbase-connector" \
--type CoinbaseCDP \
--credential-provider-configurations '[{"coinbaseCDP":{"credentialProviderArn":"<CREDENTIAL_PROVIDER_ARN>"}}]' \
--region us-west-2
- AWS SDK
-
connector = client.create_payment_connector(
paymentManagerId=PAYMENT_MANAGER_ID,
name="my-coinbase-connector",
type="CoinbaseCDP",
credentialProviderConfigurations=[{"coinbaseCDP": {"credentialProviderArn": CREDENTIAL_PROVIDER_ARN}}],
)
Stripe (Privy) — Manual
O Stripe (Privy) usa somente o fluxo manual. Crie o provedor de credenciais a partir de suas credenciais do Privy (etapas 1 a 2) e, em seguida, crie o conector referenciando seu ARN. Para ver as instruções manuais do console ou da AgentCore CLI, consulte Criar um gerenciador e conector de pagamentos.
exemplo
- AgentCore CLI
-
agentcore add payment-connector \
--manager <manager-name> \
--name my-privy-connector \
--provider StripePrivy \
--app-id <YOUR_APP_ID> \
--app-secret <YOUR_APP_SECRET> \
--authorization-id <YOUR_AUTHORIZATION_ID> \
--authorization-private-key <YOUR_PRIVATE_KEY_BASE64>
agentcore deploy
A CLI armazena as credenciais no AgentCore Identity e cria o conector quando você executa. agentcore deploy
- AgentCore SDK
-
connector = payment_client.create_payment_connector(
payment_manager_id=PAYMENT_MANAGER_ID,
name="my-privy-connector",
connector_type="StripePrivy",
credential_provider_configurations=[
{"stripePrivy": {"credentialProviderArn": CREDENTIAL_PROVIDER_ARN}}
],
)
- AWS CLI
-
aws bedrock-agentcore-control create-payment-connector \
--payment-manager-id "<PAYMENT_MANAGER_ID>" \
--name "my-privy-connector" \
--type StripePrivy \
--credential-provider-configurations '[{"stripePrivy":{"credentialProviderArn":"<CREDENTIAL_PROVIDER_ARN>"}}]' \
--region us-west-2
- AWS SDK
-
connector = client.create_payment_connector(
paymentManagerId=PAYMENT_MANAGER_ID,
name="my-privy-connector",
type="StripePrivy",
credentialProviderConfigurations=[{"stripePrivy": {"credentialProviderArn": CREDENTIAL_PROVIDER_ARN}}],
)
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 obter os esquemas completos de solicitação e resposta, consulte CreatePaymentManager e CreatePaymentConnector na Referência da API Amazon Bedrock AgentCore Control.
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 o 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ção e resposta, consulte CreatePaymentInstrument a Referência da API.
Financie a carteira e conceda permissões
Antes que o agente possa realizar a transação, o usuário final deve financiar a carteira e conceder permissões de assinatura. Abra o redirectUrl da 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 o 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 Financiando a carteira.
Etapa 5: criar uma sessão de pagamento
Uma sessão de pagamento é um contexto limitado no tempo com limites de gastos opcionais. Quando a sessão expira ou o orçamento se esgota, o agente não pode fazer pagamentos adicionais nessa 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 cria ou reutiliza 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ção e resposta, consulte CreatePaymentSession a 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 processe 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 o 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 criá-la 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 tentar novamente a solicitação para o endpoint pago.
- AWS CLI
-
Ligue process-payment diretamente com uma carga útil 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ção e resposta, consulte ProcessPayment a 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 ProcessPayment a 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 equilíbrio 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 equilíbrio 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 |
|
Gerente de pagamentos preso em CREATING
|
Aguarde até 2 minutos. Se for movido para CREATE_FAILED, verifique se o ARN e as permissões da sua 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.
|
|
“A sessão expirou ou o orçamento foi excedido”
|
Crie uma nova sessão de pagamento com uma expiração maior 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. Certifique-se de que a região seja consistente em todas as chamadas.
|
|
ProcessPayment devoluções falharam
|
Verifique se a carteira tem saldo em USDC suficiente 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 da sua conta.
- AgentCore SDK
-
from bedrock_agentcore.payments.client 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 processa pagamentos x402 automaticamente
Próximas etapas