View a markdown version of this page

AgentCore inicio rápido de pagos - Amazon Bedrock AgentCore

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:

  1. Verifica o instala la AgentCore CLI y configura el proyecto

  2. Crea el administrador de pagos

  3. Pausas: tienes que agentcore add payment-connector introducir los secretos de tu proveedor (credenciales de Coinbase CDP o Stripe Privy)

  4. Despliega recursos en tu cuenta () AWS agentcore deploy -y

  5. Transfiere una herramienta de pago independiente del marco () a su agente x402_payment_tool.py

  6. Crea una cartera (instrumento) por usuario y una sesión con un presupuesto limitado mediante el SDK

  7. Pausas: autorizas el monedero (delegación) y lo financias con la red de prueba USDC desde el sitio web de Circle Faucet

  8. 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
sugerencia

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
  1. Inicie sesión en la plataforma de desarrolladores de Coinbase y cree o seleccione un proyecto.

  2. 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.

  3. 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
  1. Crea una aplicación privada dedicada en dashboard.privy.io. No reutilices aplicaciones que sirvan para otros fines.

  2. Copia el ID de la aplicación y el secreto de la aplicación de la configuración de la aplicación.

  3. 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.

  1. Abre la AgentCore consola Amazon Bedrock.

  2. En el panel de navegación, en Crear, selecciona Pagos.

  3. Selecciona Crear administrador de pagos.

  4. Introduce un nombre para tu gestor de pagos.

  5. En Permisos, selecciona Crear y usar un nuevo rol de servicio (o selecciona un rol existente).

  6. En Autenticación entrante, selecciona Usar el nombre de usuario de IAM para la autorización de IAM.

  7. (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.

  8. 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