Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
AgentCore inicio rápido de pagos
Este tutorial te explica cómo configurar AgentCore los pagos y procesar tu primera microtransacción. Al final, tu agente pagará por un recurso mediante el protocolo x402 en una red de prueba.
Puedes configurar los pagos de dos maneras:
-
Usa la habilidad de AgentCore pagos: una experiencia de configuración automatizada que aprovisiona todos los recursos a través de una conversación guiada con agentes de codificación de IA como Kiro, Claude Code o Codex. Esta habilidad se encarga automáticamente de los comandos de la CLI, los scripts del SDK y el cableado de los marcos.
-
Uso de la CLI, el SDK o Boto3: una configuración manual paso a paso que utiliza directamente la AgentCore CLI, el AWS SDK o la CLI. AWS
Puedes proporcionar las credenciales de dos maneras al crear un conector de Coinbase. Con Quick create (recomendado), autorizas a través de Coinbase y las disposiciones de AgentCore pago y almacena las credenciales automáticamente, sin necesidad de generar o pegar claves. Con Manual, usted proporciona las claves de API de Coinbase que ha generado usted mismo. Stripe (Privy) utiliza únicamente el flujo manual. Con la creación rápida, te saltas los pasos 1 y 2 de la configuración manual.
Uso de la habilidad AgentCore Pagos
La habilidad de AgentCore pagos automatiza todo el proceso de configuración a través de una experiencia interactiva y guiada. Proporciona los siguientes recursos:
-
PaymentCredentialProvider— Almacena las credenciales del proveedor de pagos en AgentCore Identity.
-
Payment Manager: el recurso de nivel superior que coordina las operaciones de pago.
-
Conector de pagos: vincula al administrador con sus credenciales a través de la AgentCore CLI.
-
Instrumento de pago: una billetera criptográfica que su agente usa para pagar a los comerciantes en nombre de un usuario.
-
Sesión de pago: un contexto de tiempo limitado 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 LangGraph, el SDK de OpenAI Agents 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 AgentCore los pagos están disponibles: consulta AWS las regiones compatibles.
-
Una suscripción a Coinbase AWS Marketplace (solo Coinbase): si utilizas Coinbase como proveedor de pagos, debes suscribirte a la lista de monederos para pagos de Coinbase de Marketplace. AgentCore AWS Con esta suscripción, los cargos por el uso de tu monedero de Coinbase se consolidan en tu AWS factura mensual en función de los precios de Coinbase en el sitio web de Coinbase. https://docs.cdp.coinbase.com/wallets/pricing Consulta Suscríbete a los monederos de Coinbase para realizar pagos en Marketplace. AgentCore AWS
-
Node.js Más de 20 instalados (la habilidad instala la CLI automáticamente) AgentCore
-
Un agente que accede a un punto final de pago: la habilidad permite a su agente pagar por las API protegidas por el sistema x402. Para realizar las pruebas, puede usar el punto final de prueba. https://sandbox.node4all.com/v1/x402-test
-
El kit de herramientas del agente 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 complemento 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 incluida en el kit de herramientas para agentes. AWS Para activarla, describe tu intención en tu agente de codificación de IA. Por ejemplo:
-
«Añada pagos a mi agente usando agents-build Skill in aws-agents Plugin»
-
«Configura microtransacciones para mi agente usando agents-build Skill in aws-agents Plugin»
-
«Necesito gestionar 402 respuestas de pago mediante agents-build skill in aws-agents plugin»
-
«Envía un correo electrónico a mi agente para que pague las API protegidas por x402 usando agents-build skill in plugin» aws-agents
Esta habilidad detecta la intención relacionada con el pago y carga el flujo de trabajo de 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 introduzcas tus datos:
-
Verifica o instala la AgentCore CLI y configura el proyecto
-
Crea el administrador de pagos
-
Pausas: añades un conector de pago. En el caso de Coinbase con Quick create (recomendado), autorizas las credenciales por ti a través de Coinbase y AgentCore Payments Provisions, sin necesidad de introducir secretos. En el caso de Coinbase manual o Stripe (Privy), corres agentcore add payment-connector para introducir los secretos de tu proveedor.
-
Despliega recursos en tu AWS cuenta () agentcore deploy -y
-
Transfiere una herramienta de pago independiente del marco () a su agente x402_payment_tool.py
-
Crea un monedero (instrumento) por usuario y una sesión con un presupuesto limitado a través del SDK
-
Pausas: autorizas el monedero (delegación) y lo financias con Testnet USDC desde el sitio web de Circle faucet https://faucet.circle.com/
-
Establece las variables de entorno y ejecuta un pago de prueba en un terminal de pago
Si utilizas el flujo manual (manual de Coinbase o Stripe Privy), solicita las credenciales de tu proveedor antes de añadir el conector. Con Coinbase Quick create, te saltas esto: autorizas a través de Coinbase en lugar de pegar las claves.
Si se ejecuta correctamente, el agente llamax402_fetch, detecta un pago402, liquida mediante el AgentCore SDK y, al volver a intentarlo, devuelve 200 contenido de pago.
Uso de la CLI, el SDK o Boto3
En esta sección se explica cada paso de forma manual mediante la AgentCore CLI, AWS la CLI o el AWS SDK (Boto3).
Requisitos previos
Antes de empezar, asegúrese de tener:
Instale los paquetes obligatorios:
pip install boto3 bedrock-agentcore[strands-agents] strands-agents strands-agents-tools
Verifique que sus credenciales estén configuradas:
aws sts get-caller-identity
Si tiene instalada la AgentCore CLI v0.19.0 o una versión posterior, puede usar los comandos de la 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 (flujo manual)
Los pasos 1 y 2 se aplican al flujo manual de credenciales: Coinbase (manual) o Stripe (Privy).
Uso de Quick create para Coinbase (recomendado). Omita los pasos 1 y 2 y consulte el paso 3. AgentCore Payments te proporciona las credenciales de Coinbase una vez que autorizas a través de Coinbase; no obtienes ni guardas ninguna clave.
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 inicie sesión en su cuenta. Seleccionar un proyecto.
-
Navega hasta tu panel de claves de API, elige Crear clave de API secreta y anota el ID de la clave de API y el secreto de la clave de API. Vuelve a tu proyecto.
-
En Productos > Monederos > Non-custodial Monedero > Seguridad, selecciona Generar nuevo en Generar secreto del monedero y anota el secreto del monedero.
-
En Productos > Monederos > Non-custodial Monedero > Seguridad, habilita la firma delegada.
Usarás estos 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 con monederos criptográficos (derivación de direcciones, firma de transacciones)
|
- Privy
-
-
Crea una aplicación Privy dedicada en dashboard.privy.io. https://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 desde la configuración de la aplicación.
-
Ve a Wallet Infrastructure > Autorización y elige Nueva clave para generar un par de P-256 claves.
Usarás estos cuatro valores en el siguiente paso:
| Credencial |
Description (Descripción) |
|
App ID
|
El identificador de su 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 claves P-256
|
|
Authorization Private Key
|
Clave privada del par de P-256 claves
|
Para obtener más información, incluidas las prácticas recomendadas de seguridad y la rotación de credenciales, consulta los requisitos previos.
Paso 2: Almacenar las credenciales en AgentCore Identity (flujo manual)
Guarde las credenciales de su proveedor de pagos como PaymentCredentialProvider. Esto guarda los AWS secretos en Secrets Manager en lugar de guardarlos en el código de la aplicación. Si utilizas Coinbase Quick create, omite este paso. AgentCore payments crea y almacena el proveedor de credenciales automáticamente en el paso 3.
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, consulta la referencia CreatePaymentCredentialProvider de la API.
Alternativa a la CLI: almacenar credenciales
Con la AgentCore CLI, el almacenamiento de credenciales se realiza automáticamente al agregar un conector de pago (paso 3). Omita este paso si planea usar la ruta de la CLI.
Paso 3: Cree un administrador de pagos y un conector
Un gestor de pagos es el recurso de nivel superior que coordina las operaciones de pago. Un conector de pagos vincula al administrador con las credenciales de su proveedor de pagos. Antes de crear estos recursos, configura las funciones de IAM necesarias tal y como se describe en Funciones de IAM para AgentCore los pagos.
En primer lugar, cree el gestor de pagos (común a todos los proveedores):
ejemplo
- Console
-
-
Abra la AgentCore consola de Amazon Bedrock.
-
En el panel de navegación, en Crear, selecciona Pagos.
-
Selecciona Crear gestor de pagos, introduce un nombre y, en Permisos, elige Crear y usar un nuevo rol de servicio (o selecciona un rol existente).
-
En Autenticación entrante, selecciona Usar nombre de usuario de IAM.
-
Selecciona Crear administrador de pagos. Añades el conector en la sección de proveedores que aparece a continuación.
Para ver el tutorial completo sobre la consola, que incluye la autorización de JWT y las solicitudes personalizadas, consulta Cómo crear un gestor de pagos y un conector.
- AgentCore CLI
-
agentcore add payment-manager \
--name my-payment-manager \
--auto-payment \
--default-spend-limit 5.00
Añade el conector en la sección de proveedores que aparece a continuación y, a continuación, ejecuta. agentcore 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"]
Utilice PAYMENT_MANAGER_ID con payment_client para crear el conector en la sección de proveedores que aparece a continuación.
- 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
Espere a que el administrador se comunique con usted READY y, a continuación, cree el conector en la sección de proveedores que aparece a continuación.
- 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)
Luego, crea un conector de pagos para tu proveedor. Elige la sección Coinbase (creación rápida o manual) o la sección Stripe (Privy).
Coinbase: creación rápida (recomendado)
Con la creación rápida, no se obtienen ni se almacenan las credenciales de Coinbase. En la consola, completa esto seleccionando Creación rápida con Coinbase. Con la AWS CLI, el AWS SDK, la AgentCore CLI o el AgentCore SDK, pase provisionMode=QUICK_CREATE con una lista de credenciales vacía. El conector comienza PENDING_AUTHENTICATION y devuelve un. authorizationUrl Abre el devuelto authorizationUrl en un navegador. Tras la autorización a través de Coinbase, AgentCore Payments aprovisiona las credenciales y mueve el conector aREADY.
ejemplo
- Console
-
-
En la sección Conector de pagos, selecciona Añadir autenticación saliente > Crear autenticación de pago y, en el caso del proveedor de pagos, elige Coinbase.
-
Selecciona Crear configuraciones rápidas (recomendado) y, a continuación, selecciona Crear autenticación de pago.
-
Se abre una ventana de Coinbase: inicia sesión o regístrate y autoriza (vincula) tu cuenta de Coinbase CDP.
-
AgentCore payments aprovisiona la clave API del CDP de Coinbase y el secreto de Wallet y los almacena automáticamente. El conector se mueve de aPENDING_AUTHENTICATION. READY
- AgentCore CLI
-
agentcore add payment-connector \
--manager my-payment-manager \
--name my-coinbase-connector \
--provider CoinbaseCDP \
--provision-mode QUICK_CREATE
agentcore deploy
La CLI abre el flujo de autorización de Coinbase. Tras la autorización, el servicio proporciona las credenciales y el conector llegaREADY.
- 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
La respuesta incluye status: PENDING_AUTHENTICATION y unauthorizationUrl. Abre la URL en un navegador y completa la autorización de Coinbase, luego sondea hasta que el conector esté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
Usa las credenciales del CDP de Coinbase que generaste tú mismo (pasos 1 y 2). Cree el proveedor de credenciales y, a continuación, cree el conector que haga referencia a su ARN. Para ver el tutorial manual de la consola o la AgentCore CLI, consulte Crear un administrador y un conector de pagos.
ejemplo
- 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
La CLI almacena las credenciales en AgentCore Identity y crea el conector cuando se ejecutaagentcore 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
Stripe (Privy) utiliza únicamente el flujo manual. Crea el proveedor de credenciales a partir de tus credenciales de Privy (pasos 1 y 2) y, a continuación, crea el conector que haga referencia a su ARN. Para ver el tutorial manual de la consola o la AgentCore CLI, consulta Cómo crear un administrador y un conector de pagos.
ejemplo
- 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
La CLI almacena las credenciales en AgentCore Identity y crea el conector cuando se ejecutaagentcore 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}}],
)
Si no tiene una función de servicio, consulte Funciones de AgentCore pago de IAM 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 CreatePaymentManager y CreatePaymentConnector en la referencia de la API de AgentCore control de Amazon Bedrock.
Paso 4: Crear un instrumento de pago
Un instrumento de pago es una billetera 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 cadena 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
Guarda el paymentInstrumentId y redirectUrl de la respuesta.
- 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 solicitudes y respuestas, consulta CreatePaymentInstrument la referencia de la API.
Financia el monedero y concede permisos
Antes de que el agente pueda realizar una transacción, el usuario final debe depositar fondos en la cartera y conceder los permisos de firma. Abre redirectUrl 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
-
Concede permiso al agente para firmar transacciones en su nombre
Para un entorno de prueba, financia la billetera con testnet USDC.
Tras la financiación, sondea el estado del instrumento hasta que se convierta en: 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 caduca o se agota el presupuesto, el agente no puede realizar más pagos dentro de esa sesión.
ejemplo
- AgentCore CLI
-
Al usar la CLI, no es necesario crear una sesión manualmente. Pase --auto-session a agentcore invoke y la CLI creará o reutilizará una sesión con el límite de gastos predeterminado que configuró 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 hayas creado 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 la referencia CreatePaymentSession de la API.
Paso 6: Procesa un pago con un agente de Strands
Con todos los recursos disponibles, crea un agente de Strands que gestione automáticamente los pagos x402. Cuando el agente llama a un terminal de pago y recibe una respuesta HTTP 402, el plugin de pagos firma la transacción y vuelve a intentar la solicitud.
ejemplo
- AgentCore CLI
-
Invoca a tu agente desplegado con el contexto de pago. La CLI transfiere 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 crearla 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. Incluye este encabezado cuando vuelvas a intentar enviar la solicitud al terminal de pago.
- AWS CLI
-
Llama process-payment directamente con una carga útil x402 (que se usa cuando te encargas tú mismo de 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 ProcessPayment la 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 ProcessPayment la referencia de la API.
Verifique el pago
Después de 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 puedes comprobar 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 comprobar el equilibrio 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 la configuración manual como a la basada en habilidades.
| Problema |
Solución |
|
El administrador de pagos se quedó atrapado en CREATING
|
Espera hasta 2 minutos. Si pasa a CREATE_FAILED, comprueba que el ARN y los permisos de tu rol de servicio sean correctos.
|
|
«no está activo» PaymentInstrument
|
El usuario final debe depositar fondos en el monedero 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»
|
Crea una nueva sesión de pago con una fecha de caducidad más larga o un límite de gastos más alto.
|
|
«CredentialProvider no se encontró»
|
Verifique que el ARN del proveedor de credenciales coincida con el que creó en el paso 2. Asegúrese de que la región sea uniforme en todas las llamadas.
|
|
ProcessPayment devoluciones FALLIDAS
|
Comprueba que la billetera tenga un saldo suficiente en USDC para el monto de la transacción más las tarifas de gas.
|
Limpieza
Elimine los recursos que creó 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 pago de su cuenta.
- 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.")
Lo que has creado
A través de este tutorial, creaste:
-
PaymentCredentialProvider— Las credenciales del proveedor de pagos almacenadas en AgentCore Identity
-
PaymentManager— Top-level recurso para coordinar las operaciones de pago
-
PaymentConnector— Integración entre su gestor y el proveedor de pagos externo
-
PaymentInstrument— Una billetera criptográfica integrada, financiada y autorizada por el usuario final
-
PaymentSession— Un contexto de pago limitado en el tiempo y el presupuesto
-
Strands Agent: un agente de inteligencia artificial que gestiona automáticamente los pagos x402
Siguientes pasos