AgentCore inicio rápido de pagos
Este tutorial te explica cómo configurar AgentCore los pagos y procesar tu primera microtransacción. Al final, su agente pagará por un recurso utilizando el protocolo x402 en una red de prueba.
Puedes configurar los pagos de dos maneras:
-
Uso de la habilidad de AgentCore pagos: una experiencia de configuración automatizada que aprovisiona todos los recursos mediante una conversación guiada con agentes de programación de IA como Kiro, Claude Code o Codex. La habilidad maneja los comandos CLI, los scripts del SDK y el cableado del framework por usted.
-
Uso de CLI, SDK o Boto3: configuración manual paso a paso mediante la AgentCore CLI, el AWS SDK o la AWS CLI directamente.
Uso de la habilidad de pagos AgentCore
La habilidad de AgentCore pagos automatiza todo el proceso de configuración a través de una experiencia guiada e interactiva. Proporciona los siguientes recursos:
-
PaymentCredentialProvider— Almacena las credenciales del proveedor de pagos en AgentCore Identity.
-
Gestor de pagos: el recurso de nivel superior que coordina las operaciones de pago.
-
Conector de pago: vincula al administrador con sus credenciales a través de la AgentCore CLI.
-
Instrumento de pago: monedero criptográfico que su agente utiliza para pagar a los comerciantes en nombre de un usuario.
-
Sesión de pago: un contexto limitado en el tiempo con límites de gasto.
Esta habilidad también transfiere los pagos a tu agente con una herramienta independiente del marco, por lo que funciona con Strands, el SDK de agentes de LangGraph OpenAI o cualquier marco de Python.
Requisitos previos
Antes de empezar, asegúrate de tener:
-
AWS Cuenta con credenciales configuradas (aws configure)
-
Una AWS región en la que estén disponibles AgentCore los pagos: us-east-1, us-west-2, eu-central-1 o ap-southeast-2. Consulta las AWS regiones admitidas.
-
Node.js Más de 20 instalados (la habilidad instala la AgentCore CLI automáticamente)
-
Un agente que accede a un terminal de pago: esta habilidad le permite a su agente pagar por las API protegidas por la x402. Para las pruebas, puede utilizar el punto final de entorno aislado. https://sandbox.node4all.com/v1/x402-test
-
El kit de herramientas Agent Toolkit para el AWS aws-agents complemento instalado en tu agente de codificación de IA:
ejemplo
- Claude Code
-
/plugin marketplace add aws/agent-toolkit-for-aws
/plugin install aws-agents@agent-toolkit-for-aws
- Codex
-
El plugin se descubre automáticamente en el manifiesto del mercado. Para añadir el mercado, ejecuta el siguiente comando:
codex plugin marketplace add aws/agent-toolkit-for-aws
Invoca la habilidad
La habilidad de pagos forma parte de la agents-build habilidad del kit de herramientas para agentes. AWS Para activarla, describe tu intención en tu agente de programación de IA. Por ejemplo:
-
«Añada pagos a mi agente utilizando el aws-agents plugin agents-build Skill in»
-
«Configura microtransacciones para mi agente usando el aws-agents plugin agents-build Skill in»
-
«Necesito gestionar 402 respuestas de pago obligatorias utilizando el aws-agents plugin agents-build Skill in»
-
«Contrata a mi agente para que pague por las API protegidas por x402 utilizando el plugin agents-build Skill in» aws-agents
La habilidad detecta la intención de pago relacionada con el pago y carga el flujo de trabajo de los pagos automáticamente.
¿Qué hace la habilidad
La habilidad ejecuta un proceso automatizado que aprovisiona tu infraestructura de pagos de principio a fin. La habilidad ejecuta la mayoría de los pasos de forma automática y se detiene dos veces para que tú introduzcas información:
-
Verifica o instala la AgentCore CLI y configura el proyecto
-
Crea el administrador de pagos
-
Pausas: tienes que agentcore add payment-connector introducir los secretos de tu proveedor (credenciales de Coinbase CDP o Stripe Privy)
-
Despliega recursos en tu cuenta () AWS agentcore deploy -y
-
Transfiere una herramienta de pago independiente del marco () a su agente x402_payment_tool.py
-
Crea una cartera (instrumento) por usuario y una sesión con un presupuesto limitado mediante el SDK
-
Pausas: autorizas el monedero (delegación) y lo financias con la red de prueba USDC desde el sitio web de Circle Faucet
-
Establece variables de entorno y ejecuta un pago de prueba con un punto final de pago
Antes de ejecutar el comando connector, obtenga las credenciales de su proveedor:
Si se ejecuta correctamente, el agente llamax402_fetch, detecta un pago402, liquida el pago mediante el AgentCore SDK y vuelve a intentarlo 200 con contenido de pago.
Uso de CLI, SDK o Boto3
En esta sección, se explica cada paso manualmente mediante la AgentCore CLI, la AWS CLI o el AWS SDK (Boto3).
Requisitos previos
Antes de empezar, asegúrese de tener:
-
AWS Cuenta con credenciales configuradas (aws configure)
-
Python 3.10+ instalado
-
Una AWS región en la que estén disponibles AgentCore los pagos: us-east-1, us-west-2, eu-central-1 o ap-southeast-2. Consulta las AWS regiones admitidas.
Instale los paquetes obligatorios:
pip install boto3 bedrock-agentcore[strands-agents] strands-agents strands-agents-tools
Compruebe que sus credenciales estén configuradas:
aws sts get-caller-identity
Si tiene instalada la AgentCore CLI v0.19.0 o posterior, puede usar los comandos de CLI como alternativa al SDK en los pasos 2, 3, 5 y 6. En cada uno de los pasos siguientes se muestran ambas opciones.
Paso 1: Obtenga las credenciales del proveedor de pagos
AgentCore payments se conecta a un proveedor de pagos externo para las operaciones de monedero. Necesitas las credenciales de uno de los proveedores compatibles antes de continuar.
ejemplo
- Coinbase CDP
-
-
Inicie sesión en la plataforma de desarrolladores de Coinbase y cree o seleccione un proyecto.
-
Genere una clave de API y anote el ID de la clave de API, el secreto de la clave de API y el secreto de la cartera.
-
En Proyecto > Carteras > Non-custodial Cartera > Seguridad, habilita la firma delegada.
Utilizará estos tres valores en el siguiente paso:
| Credencial |
Description (Descripción) |
|
API Key ID
|
Identificador público para su proyecto de CDP
|
|
API Key Secret
|
Secreto privado para firmar solicitudes de API
|
|
Wallet Secret
|
Secreto para las operaciones de monedero criptográfico (derivación de direcciones, firma de transacciones)
|
- Privy
-
-
Crea una aplicación privada dedicada en dashboard.privy.io. No reutilices aplicaciones que sirvan para otros fines.
-
Copia el ID de la aplicación y el secreto de la aplicación de la configuración de la aplicación.
-
Vaya a Wallet Infrastructure > Autorización y elija Nueva clave para generar un P-256 key pair.
Utilizará estos cuatro valores en el siguiente paso:
| Credencial |
Description (Descripción) |
|
App ID
|
Su identificador de aplicación Privy
|
|
App Secret
|
Secreto para la autenticación básica de servidor a servidor
|
|
Authorization ID
|
Identificador de clave pública del par de P-256 claves
|
|
Authorization Private Key
|
Clave privada del par de P-256 claves
|
Para obtener todos los detalles, incluidas las mejores prácticas de seguridad y la rotación de credenciales, consulte Requisitos previos.
Paso 2: Almacene las credenciales en Identity AgentCore
Guarde las credenciales de su proveedor de pagos como PaymentCredentialProvider. Esto guarda los AWS secretos en Secrets Manager y no en el código de la aplicación.
ejemplo
- 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 el esquema completo de solicitudes y respuestas, consulte CreatePaymentCredentialProviderla referencia de la API.
Alternativa CLI: almacenar credenciales
Con la AgentCore CLI, el almacenamiento de credenciales se produce automáticamente al añadir un conector de pago (paso 3). Omita este paso si planea usar la ruta CLI.
Paso 3: Cree un administrador de pagos y un conector
Un administrador de pagos es el recurso de nivel superior que coordina las operaciones de pago. Un conector de pago vincula al administrador con las credenciales de su proveedor de pagos. Antes de crear estos recursos, configure las funciones de IAM necesarias, tal y como se describe en las funciones de IAM para AgentCore pagos.
ejemplo
- Console
-
Para ver el tutorial completo de la consola, que incluye la autorización de JWT y las solicitudes personalizadas, consulte Crear un administrador y un conector de pagos.
-
Abre la AgentCore consola Amazon Bedrock.
-
En el panel de navegación, en Crear, selecciona Pagos.
-
Selecciona Crear administrador de pagos.
-
Introduce un nombre para tu gestor de pagos.
-
En Permisos, selecciona Crear y usar un nuevo rol de servicio (o selecciona un rol existente).
-
En Autenticación entrante, selecciona Usar el nombre de usuario de IAM para la autorización de IAM.
-
(Opcional) En la sección Conector de pagos, elige un nombre para el conector y selecciona una autenticación saliente existente o crea una nueva seleccionando tu proveedor (Coinbase o Stripe Privy) e introduciendo tus credenciales.
-
Selecciona Crear administrador de pagos.
- AgentCore CLI
-
La CLI crea el proveedor de credenciales, el administrador de pagos y el conector de pago en un solo flujo. Desde el directorio de su AgentCore proyecto, añada un administrador de pagos y un conector.
Asistente interactivo:
agentcore add payment-manager
El asistente solicita el nombre del administrador, el patrón (interceptor), la opción de pago automático y el límite de gasto predeterminado. A continuación, pregunta si se debe añadir un conector y explica la selección del proveedor y la introducción de las credenciales.
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>
Tras añadirlo, despliéguelo para aprovisionar la infraestructura de pago:
agentcore deploy
El paso de implementación crea las funciones de IAM, almacena las credenciales en AgentCore Identity y aprovisiona el administrador de pagos y el conector. Verás «Creando una infraestructura de pago...» en el resultado.
- AgentCore SDK
-
El AgentCore SDK crea el administrador de pagos, el proveedor de credenciales y el conector en una sola llamada.
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}")
En el caso de Stripe Privy, sustituya payment_credential_provider_config las credenciales de credential_provider_vendor: "StripePrivy" Privy por las correspondientes.
- AWS CLI
-
Crea el administrador de pagos:
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
Cuando el administrador alcance el READY estado, cree un proveedor de credenciales y un conector. Consulte Crear un administrador de pagos y un conector para ver el flujo de trabajo completo de la AWS CLI.
- AWS SDK
-
Primero, cree el administrador de pagos (el mismo para ambos proveedores):
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)
A continuación, cree el conector de pago para su proveedor:
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}")
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}")
Si no tiene una función de servicio, consulte Funciones de IAM para AgentCore pagos para obtener instrucciones sobre cómo crear una. La consola también puede crear un rol en tu nombre. Para ver los esquemas completos de solicitud y respuesta, consulte CreatePaymentManagery CreatePaymentConnectoren la Referencia de la API.
Paso 4: Crea un instrumento de pago
Un instrumento de pago es una cartera criptográfica integrada que su agente utiliza para pagar a los comerciantes en nombre de un usuario. Cada instrumento está asociado a una red de cadenas de bloques específica.
ejemplo
- 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
Guarde la respuesta paymentInstrumentId y redirectUrl de ella.
- 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 el esquema completo de solicitud y respuesta, consulta CreatePaymentInstrumentla referencia de la API.
Financie la cartera y conceda los permisos
Antes de que el agente pueda realizar transacciones, el usuario final debe depositar fondos en la cartera y conceder permisos de firma. Abre la redirectUrl de la respuesta anterior en un navegador. Desde el centro de monederos, el usuario puede:
-
Recarga el monedero mediante transferencia criptográfica, credit/debit tarjeta, Apple Pay, Google Pay o ACH
-
Conceda permiso al agente para firmar transacciones en su nombre
Para un entorno de prueba, financie la cartera con testnet USDC.
Tras la financiación, sondee el estado del instrumento hasta que pase a ser: ACTIVE
ejemplo
- 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 obtener más información sobre los flujos de financiación por proveedor, consulta Cómo financiar el monedero.
Paso 5: Crea una sesión de pago
Una sesión de pago es un contexto de tiempo limitado con límites de gasto opcionales. Cuando la sesión vence o se agote el presupuesto, el agente no podrá realizar más pagos dentro de esa sesión.
ejemplo
- AgentCore CLI
-
Al utilizar la CLI, no es necesario crear una sesión manualmente. Al pasar --auto-session aagentcore invoke, la CLI crea o reutiliza una sesión con el límite de gasto predeterminado que configuraste en el administrador de pagos.
agentcore invoke \
--prompt "your prompt here" \
--payment-instrument-id <INSTRUMENT_ID> \
--auto-session \
--payment-user-id test-user-123
Para usar una sesión específica que creaste a través del SDK, pasa --payment-session-id en lugar 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 el esquema completo de solicitudes y respuestas, consulta CreatePaymentSessionla referencia de la API.
Paso 6: Procesa un pago con un agente de Strands
Con todos los recursos disponibles, cree un agente de Strands que gestione los pagos x402 automáticamente. Cuando el agente llama a un terminal de pago y recibe una respuesta HTTP 402, el complemento de pagos firma la transacción y vuelve a intentar la solicitud.
ejemplo
- AgentCore CLI
-
Invoca al agente desplegado con el contexto de pago. La CLI pasa el instrumento de pago y la sesión al agente en tiempo de ejecución, y el interceptor x402 del agente gestiona el pago automáticamente.
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 pasar una sesión explícita en lugar de crear una automáticamente:
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
-
Usa la PaymentManager clase para generar encabezados de pago cuando recibas una respuesta 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_headerscontiene el encabezado del comprobante de pago. Incluya este encabezado cuando vuelva a intentar enviar la solicitud al punto final de pago.
- AWS CLI
-
Llama process-payment directamente con una carga útil x402 (que se usa cuando gestionas tú mismo la organización de los pagos):
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 el esquema completo de solicitudes y respuestas, consulta la referencia de ProcessPaymentla 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 el esquema completo de solicitud y respuesta de la llamada a la API subyacente, consulta ProcessPaymentla Referencia de la API.
Verifica el pago
Una vez que el agente procese un pago, comprueba la sesión para confirmar que la transacción se ha registrado:
ejemplo
- 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']}")
También puede consultar el saldo del 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")
También puede consultar el saldo del instrumento:
balance = dp_client.get_payment_instrument_balance(
paymentManagerArn=PAYMENT_MANAGER_ARN,
paymentInstrumentId=INSTRUMENT_ID
)
print(f"Remaining balance: {balance['amount']} {balance['currency']}")
Resolución de problemas
Los siguientes problemas se aplican tanto a las rutas de configuración manual como a las basadas en habilidades.
| Problema |
Solución |
|
El administrador de pagos está atascado en CREATING
|
Espere hasta 2 minutos. Si pasa a CREATE_FAILED, compruebe que el ARN y los permisos de su rol de servicio son correctos.
|
|
«no activo» PaymentInstrument
|
El usuario final debe depositar fondos en la cartera y conceder permisos de firma a través de la URL de redireccionamiento antes de que el agente pueda realizar la transacción.
|
|
«La sesión ha caducado o se ha superado el presupuesto»
|
Cree una nueva sesión de pago con un vencimiento más largo o un límite de gasto más alto.
|
|
«CredentialProvider no se ha encontrado»
|
Compruebe que el ARN del proveedor de credenciales coincide con el que creó en el paso 2. Asegúrese de que la región sea coherente en todas las llamadas.
|
|
ProcessPayment LAS devoluciones HAN FALLADO
|
Comprueba que la cartera tenga un saldo en USDC suficiente para el importe de la transacción más las tasas de gas.
|
Limpieza
Elimina los recursos que creaste durante este tutorial:
ejemplo
- 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
Los remove comandos actualizan la configuración local. El seguimiento deploy destruye la infraestructura de pagos de tu cuenta.
- 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.")
Lo que has creado
A través de este tutorial, has creado:
-
PaymentCredentialProvider— Credenciales del proveedor de pagos almacenadas en AgentCore Identity
-
PaymentManager— Top-level recurso que coordina las operaciones de pago
-
PaymentConnector— Integración entre su gestor y el proveedor de pagos externo
-
PaymentInstrument— Un monedero criptográfico integrado, financiado y autorizado por el usuario final
-
PaymentSession— Un contexto de pago limitado en el tiempo y en el presupuesto
-
Strands Agent: un agente de IA que gestiona los pagos de 402 veces al día de forma automática
Siguientes pasos