View a markdown version of this page

AgentCore inicio rápido de pagos - Base amazónica AgentCore

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:

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

  2. Crea el administrador de pagos

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

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

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

  6. Crea un monedero (instrumento) por usuario y una sesión con un presupuesto limitado a través del SDK

  7. Pausas: autorizas el monedero (delegación) y lo financias con Testnet USDC desde el sitio web de Circle faucet https://faucet.circle.com/

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

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

nota

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

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

  3. En Productos > Monederos > Non-custodial Monedero > Seguridad, selecciona Generar nuevo en Generar secreto del monedero y anota el secreto del monedero.

  4. 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
  1. Crea una aplicación Privy dedicada en dashboard.privy.io. https://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 desde la configuración de la aplicación.

  3. 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
  1. Abra la AgentCore consola de Amazon Bedrock.

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

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

  4. En Autenticación entrante, selecciona Usar nombre de usuario de IAM.

  5. 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
  1. 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.

  2. Selecciona Crear configuraciones rápidas (recomendado) y, a continuación, selecciona Crear autenticación de pago.

  3. Se abre una ventana de Coinbase: inicia sesión o regístrate y autoriza (vincula) tu cuenta de Coinbase CDP.

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