View a markdown version of this page

AgentCore démarrage rapide des paiements - Base rocheuse de l'Amazonie AgentCore

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AgentCore démarrage rapide des paiements

Ce didacticiel vous explique comment configurer AgentCore les paiements et traiter votre première microtransaction. À la fin, votre agent paiera pour une ressource en utilisant le protocole x402 sur un réseau de test.

Vous pouvez configurer les paiements de deux manières :

  • Utilisation de la compétence AgentCore Paiements — Une expérience de configuration automatisée qui fournit toutes les ressources par le biais d'une conversation guidée avec des agents de codage IA tels que Kiro, Claude Code ou Codex. La compétence gère les commandes CLI, les scripts SDK et le câblage du framework pour vous.

  • À l'aide de la CLI, du SDK ou de Boto3  : configuration manuelle étape par étape à l'aide de la AgentCore CLI, du AWS SDK ou de la CLI directement. AWS

Vous pouvez fournir des informations d'identification de deux manières lorsque vous créez un connecteur Coinbase. Avec Quick create (recommandé), vous autorisez via Coinbase et AgentCore les dispositions relatives aux paiements et vous stockez les informations d'identification pour vous, aucune clé à générer ou à coller. Avec Manual, vous fournissez des clés d'API Coinbase que vous avez générées vous-même. Stripe (Privy) utilise uniquement le flux manuel. Avec Quick Create, vous ignorez les étapes 1 et 2 de la configuration manuelle.

Utilisation de la compétence AgentCore Paiements

La compétence AgentCore Paiements automatise l'ensemble du processus de configuration grâce à une expérience interactive et guidée. Il met à disposition les ressources suivantes :

  • PaymentCredentialProvider— Stocke les informations d'identification du fournisseur de paiement dans AgentCore Identity.

  • Gestionnaire de paiements — La ressource de haut niveau qui coordonne les opérations de paiement.

  • Connecteur de paiement  : relie le gestionnaire à vos informations d'identification via la AgentCore CLI.

  • Instrument de paiement  : portefeuille cryptographique que votre agent utilise pour payer les commerçants au nom d'un utilisateur.

  • Session de paiement — Un contexte limité dans le temps avec des limites de dépenses.

La compétence transfère également les paiements à votre agent à l'aide d'un outil indépendant du framework. Elle fonctionne donc avec Strands LangGraph, le SDK OpenAI Agents ou tout autre framework Python.

Conditions préalables

Avant de commencer, assurez-vous d'avoir :

  • AWS Compte avec informations d'identification configurées (aws configure)

  • Une AWS région où AgentCore les paiements sont disponibles — voir AWS Régions prises en charge.

  • Un abonnement à Coinbase AWS Marketplace (Coinbase uniquement) — Si vous utilisez Coinbase comme fournisseur de paiement, vous devez vous abonner à la liste des portefeuilles Coinbase pour les AgentCore paiements sur Marketplace. AWS Avec cet abonnement, les frais d'utilisation de votre portefeuille Coinbase sont consolidés dans votre AWS facture mensuelle en fonction des tarifs de Coinbase sur le site Web de Coinbase. Voir S'abonner aux portefeuilles Coinbase pour les AgentCore paiements AWS sur Marketplace.

  • Node.js Plus de 20 installés (la compétence installe automatiquement la AgentCore CLI)

  • Un agent qui accède à un terminal payant  : cette compétence permet à votre agent de payer pour des API protégées par x402. Pour les tests, vous pouvez utiliser le point de terminaison https://sandbox.node4all.com/v1/x402-test sandbox.

  • L'Agent Toolkit pour AWS aws-agents le plugin installé dans votre agent de codage AI :

    Exemple
    Claude Code
    /plugin marketplace add aws/agent-toolkit-for-aws /plugin install aws-agents@agent-toolkit-for-aws
    Codex

    Le plugin est découvert automatiquement à partir du manifeste de la place de marché. Pour ajouter la place de marché, exécutez la commande suivante :

    codex plugin marketplace add aws/agent-toolkit-for-aws

Invoquez la compétence

La compétence en matière de paiements fait partie de la agents-build compétence de la boîte à outils des agents pour AWS. Pour le déclencher, décrivez votre intention dans votre agent de codage IA. Par exemple :

  • « Ajouter des paiements à mon agent à l'aide du aws-agents plugin agents-build Skill in »

  • « Configurer des microtransactions pour mon agent à l'aide du aws-agents plugin agents-build Skill in »

  • « Je dois gérer 402 réponses au paiement requis en utilisant agents-build Skill in aws-agents plugin »

  • « Transférez à mon agent le paiement des API protégées par x402 à l'aide du plugin agents-build Skill in » aws-agents

La compétence détecte les intentions liées au paiement et charge automatiquement le flux de travail des paiements.

À quoi sert la compétence

La compétence exécute un processus automatisé qui approvisionne votre infrastructure de paiement de bout en bout. La compétence exécute automatiquement la plupart des étapes et s'arrête deux fois pour votre saisie :

  1. Vérifie ou installe la AgentCore CLI et configure le projet

  2. Crée le gestionnaire de paiement

  3. Pauses  : vous ajoutez un connecteur de paiement. Pour Coinbase avec Quick Create (recommandé), vous autorisez via Coinbase et AgentCore Payments fournit les informations d'identification pour vous, sans aucun secret à saisir. Pour Coinbase Manual ou Stripe (Privy), vous devez entrer agentcore add payment-connector les secrets de votre fournisseur.

  4. Déploie des ressources sur votre AWS compte () agentcore deploy -y

  5. Transfère un outil de paiement indépendant du framework (x402_payment_tool.py) à votre agent

  6. Crée un portefeuille (instrument) par utilisateur et une session limitée par budget via le SDK

  7. Pauses — Vous autorisez le portefeuille (délégation) et vous le financez avec testnet USDC depuis le site Web de Circle Faucet

  8. Définit des variables d'environnement et exécute un paiement de test sur un terminal payant

Si vous utilisez le flux manuel (Coinbase manual ou Stripe Privy), obtenez les informations d'identification de votre fournisseur avant d'ajouter le connecteur. Avec Coinbase Quick create, vous ignorez cette étape : vous autorisez via Coinbase au lieu de coller des clés.

En cas d'exécution réussie, l'agent appellex402_fetch, détecte un402, règle le paiement via le AgentCore SDK, puis tente de revenir 200 avec du contenu payant.

À l'aide de la CLI, du SDK ou de Boto3

Cette section vous guide à travers chaque étape manuellement à l'aide de la AgentCore CLI, de la AWS CLI ou du AWS SDK (Boto3).

Conditions préalables

Avant de commencer, assurez-vous d'avoir :

Installez les packages requis :

pip install boto3 bedrock-agentcore[strands-agents] strands-agents strands-agents-tools

Vérifiez que vos informations d'identification sont configurées :

aws sts get-caller-identity
Astuce

Si la AgentCore CLI v0.19.0 ou une version ultérieure est installée, vous pouvez utiliser les commandes CLI comme alternative au SDK aux étapes 2, 3, 5 et 6. Chaque étape ci-dessous montre les deux options.

Étape 1 : Obtenir les informations d'identification du fournisseur de paiement (flux manuel)

Les étapes 1 et 2 s'appliquent au flux d'informations d'identification manuel : Coinbase (manuel) ou Stripe (Privy).

Note

Utilisation de Quick Create pour Coinbase (recommandé). Ignorez les étapes 1 et 2 et passez à l'étape 3. AgentCore payments vous fournit les informations d'identification Coinbase après votre autorisation via Coinbase — vous n'obtenez ni ne stockez aucune clé.

AgentCore payments se connecte à un fournisseur de paiement externe pour les opérations de portefeuille. Vous avez besoin des informations d'identification de l'un des fournisseurs pris en charge avant de continuer.

Exemple
Coinbase CDP
  1. Connectez-vous à la plateforme pour développeurs Coinbase et créez ou connectez-vous à votre compte. Sélectionner un projet.

  2. Accédez à votre tableau de bord des clés d'API, choisissez Créer une clé d'API secrète et notez l'ID de clé d'API et le secret de clé d'API. Revenez à votre projet.

  3. Dans Produits > Portefeuilles > Non-custodial Portefeuille > Sécurité, choisissez Générer un nouveau sous Générer un secret de portefeuille et notez le secret du portefeuille.

  4. Dans Produits > Portefeuilles > Non-custodial Portefeuille > Sécurité, activez la signature déléguée.

Vous utiliserez ces valeurs à l'étape suivante :

Informations d'identification Description

API Key ID

Identifiant public pour votre projet CDP

API Key Secret

Secret privé pour la signature des demandes d'API

Wallet Secret

Secret pour les opérations de portefeuille cryptographiques (obtention d'adresses, signature de transactions)

Privy
  1. Créez une application Privy dédiée sur https://dashboard.privy.io/ dashboard.privy.io. Ne réutilisez pas les applications qui servent à d'autres fins.

  2. Copiez l'identifiant de l'application et le secret de l'application depuis les paramètres de votre application.

  3. Accédez à Wallet Infrastructure > Authorization et choisissez New Key pour générer une paire de P-256 clés.

Vous utiliserez ces quatre valeurs à l'étape suivante :

Informations d'identification Description

App ID

L'identifiant de votre application Privy

App Secret

Secret pour l'authentification de base de serveur à serveur

Authorization ID

Identifiant de clé publique issu de la paire de P-256 clés

Authorization Private Key

Clé privée issue de la paire de P-256 clés

Pour plus de détails, y compris les meilleures pratiques en matière de sécurité et la rotation des informations d'identification, consultez la section Conditions préalables.

Étape 2 : stocker les informations d'identification dans AgentCore Identity (flux manuel)

Enregistrez les informations d'identification de votre fournisseur de paiement sous forme de fichier PaymentCredentialProvider. Cela permet de conserver les AWS secrets dans Secrets Manager plutôt que dans le code de votre application. Si vous utilisez Coinbase Quick create, ignorez cette étape. AgentCore payments crée et enregistre le fournisseur d'informations d'identification pour vous à l'étape 3.

Exemple
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}")

Pour le schéma complet de la demande et de la réponse, consultez CreatePaymentCredentialProvider la référence de l'API.

Alternative à la CLI : stocker les informations d'identification

Avec la AgentCore CLI, le stockage des informations d'identification s'effectue automatiquement lorsque vous ajoutez un connecteur de paiement (étape 3). Ignorez cette étape si vous prévoyez d'utiliser le chemin CLI.

Étape 3 : Création d'un gestionnaire de paiement et d'un connecteur

Un gestionnaire de paiement est la ressource de haut niveau qui coordonne les opérations de paiement. Un connecteur de paiement relie le gestionnaire aux informations d'identification de votre fournisseur de services de paiement. Avant de créer ces ressources, configurez les rôles IAM requis comme décrit dans Rôles IAM pour AgentCore les paiements.

Tout d'abord, créez le gestionnaire de paiement (commun à tous les fournisseurs) :

Exemple
Console
  1. Ouvrez la AgentCore console Amazon Bedrock.

  2. Dans le volet de navigation, sous Créer, sélectionnez Paiements.

  3. Choisissez Créer un gestionnaire de paiement, entrez un nom et, sous Autorisations, choisissez Créer et utiliser un nouveau rôle de service (ou sélectionnez un rôle existant).

  4. Dans Inbound Auth, choisissez Utiliser le nom d'utilisateur IAM.

  5. Choisissez Créer un gestionnaire de paiement. Vous ajoutez le connecteur dans la section fournisseur ci-dessous.

Pour la présentation complète de la console, y compris l'autorisation JWT et les réclamations personnalisées, voir Création d'un gestionnaire de paiement et d'un connecteur.

AgentCore CLI
agentcore add payment-manager \ --name my-payment-manager \ --auto-payment \ --default-spend-limit 5.00

Ajoutez le connecteur dans la section fournisseur ci-dessous, puis exécutezagentcore 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"]

Utilisez PAYMENT_MANAGER_ID with payment_client pour créer le connecteur dans la section fournisseur ci-dessous.

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

Attendez que le responsable vous READY contacte, puis créez le connecteur dans la section fournisseur ci-dessous.

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)

Créez ensuite un connecteur de paiement pour votre fournisseur. Choisissez la section Coinbase (création rapide ou manuelle) ou la section Stripe (Privy).

Coinbase — Création rapide (recommandé)

Avec Quick create, vous n'obtenez ni ne stockez les informations d'identification Coinbase. Dans la console, vous pouvez terminer cela en choisissant Quick Create with Coinbase. Avec la AWS CLI, le AWS SDK, la AgentCore CLI ou le AgentCore SDK, transmettez provisionMode=QUICK_CREATE avec une liste d'informations d'identification vide. Le connecteur démarre PENDING_AUTHENTICATION et renvoie unauthorizationUrl. Vous ouvrez le fichier renvoyé authorizationUrl dans un navigateur. Une fois que vous avez autorisé via Coinbase, AgentCore Payments fournit les informations d'identification et déplace le connecteur versREADY.

Exemple
Console
  1. Dans la section Connecteur de paiement, choisissez Ajouter une authentification sortante > Créer une authentification de paiement, et pour Fournisseur de paiement, choisissez Coinbase.

  2. Choisissez Configurations de création rapide - recommandé, puis choisissez Créer une autorisation de paiement.

  3. Une fenêtre Coinbase s'ouvre : connectez-vous ou inscrivez-vous et autorisez (lien) votre compte Coinbase CDP.

  4. AgentCore payments fournit la clé API Coinbase CDP et le secret du portefeuille et les stocke pour vous. Le connecteur se déplace de PENDING_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 ouvre le flux d'autorisation Coinbase. Une fois que vous avez autorisé, le service fournit les informations d'identification et le connecteur atteintREADY.

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 réponse inclut status: PENDING_AUTHENTICATION et unauthorizationUrl. Ouvrez l'URL dans un navigateur et complétez l'autorisation Coinbase, puis interrogez jusqu'à ce que le connecteur soit 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 — Manuel

Utilisez les informations d'identification Coinbase CDP que vous avez générées vous-même (étapes 1 et 2). Créez le fournisseur d'informations d'identification, puis créez le connecteur faisant référence à son ARN. Pour consulter la procédure pas à pas manuelle de la console ou de l'AgentCore interface de ligne de commande, voir Création d'un gestionnaire de paiement et d'un connecteur.

Exemple
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 stocke les informations d'identification dans AgentCore Identity et crée le connecteur lors de l'exécutionagentcore 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) — Manuel

Stripe (Privy) utilise uniquement le flux manuel. Créez le fournisseur d'informations d'identification à partir de vos informations d'identification Privy (étapes 1 et 2), puis créez le connecteur faisant référence à son ARN. Pour consulter la procédure pas à pas manuelle de la console ou de l'AgentCore interface de ligne de commande, voir Création d'un gestionnaire de paiement et d'un connecteur.

Exemple
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 stocke les informations d'identification dans AgentCore Identity et crée le connecteur lors de l'exécutionagentcore 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 vous n'avez pas de rôle de service, consultez la section Rôles IAM pour les AgentCore paiements pour savoir comment en créer un. La console peut également créer un rôle en votre nom. Pour consulter l'intégralité des schémas de demande et de réponse, consultez CreatePaymentManager et consultez le CreatePaymentConnector manuel Amazon Bedrock AgentCore Control API Reference.

Étape 4 : Création d'un instrument de paiement

Un instrument de paiement est un portefeuille cryptographique intégré que votre agent utilise pour payer les commerçants au nom d'un utilisateur. Chaque instrument est associé à un réseau blockchain spécifique.

Exemple
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

Enregistrez le paymentInstrumentId et redirectUrl à partir de la réponse.

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}")

Pour le schéma complet de la demande et de la réponse, consultez CreatePaymentInstrument la référence de l'API.

Financez le portefeuille et accordez des autorisations

Avant que l'agent puisse effectuer des transactions, l'utilisateur final doit approvisionner le portefeuille et accorder des autorisations de signature. Ouvrez l'redirectUrlextrait de la réponse ci-dessus dans un navigateur. Depuis le hub de portefeuille, l'utilisateur peut :

  • Rechargez le portefeuille par virement cryptographique, credit/debit par carte, Apple Pay, Google Pay ou ACH

  • Autoriser l'agent à signer des transactions en son nom

Pour un environnement de test, approvisionnez le portefeuille avec testnet USDC.

Après le financement, effectuez un sondage sur l'état de l'instrument jusqu'à ce qu'il devienne ACTIVE :

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

Pour plus de détails sur les flux de financement par fournisseur, consultez Financer le portefeuille.

Étape 5 : Création d'une session de paiement

Une session de paiement est un contexte limité dans le temps avec des limites de dépenses facultatives. Lorsque la session expire ou que le budget est épuisé, l'agent ne peut pas effectuer d'autres paiements au cours de cette session.

Exemple
AgentCore CLI

Lorsque vous utilisez la CLI, il n'est pas nécessaire de créer une session manuellement. Passez --auto-session à agentcore invoke et la CLI crée ou réutilise une session avec la limite de dépenses par défaut que vous avez configurée sur le gestionnaire de paiement.

agentcore invoke \ --prompt "your prompt here" \ --payment-instrument-id <INSTRUMENT_ID> \ --auto-session \ --payment-user-id test-user-123

Pour utiliser une session spécifique que vous avez créée via le SDK, passez --payment-session-id au lieu 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)")

Pour le schéma complet de la demande et de la réponse, consultez CreatePaymentSession la référence de l'API.

Étape 6 : Traiter un paiement avec un agent Strands

Une fois toutes les ressources en place, créez un agent Strands qui gère automatiquement les paiements x402. Lorsque l'agent appelle un terminal payant et reçoit une réponse HTTP 402, le plug-in de paiement signe la transaction et réessaie la demande.

Exemple
AgentCore CLI

Invoquez votre agent déployé avec le contexte de paiement. La CLI transmet l'instrument de paiement et la session à l'agent au moment de l'exécution, et l'intercepteur x402 de l'agent gère le paiement automatiquement.

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

Pour passer une session explicite au lieu d'en créer une automatiquement, procédez comme suit :

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

Utilisez cette PaymentManager classe pour générer des en-têtes de paiement lorsque vous recevez une réponse 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_headerscontient l'en-tête de la preuve de paiement. Incluez cet en-tête lorsque vous réessayez d'envoyer la demande au terminal payant.

AWS CLI

Appelez process-payment directement avec une charge utile x402 (utilisée lorsque vous gérez vous-même l'orchestration des paiements) :

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

Pour le schéma complet de la demande et de la réponse, consultez ProcessPayment la référence de l'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)

Pour le schéma complet de demande et de réponse de l'appel d'API sous-jacent, consultez ProcessPayment la référence de l'API.

Vérifiez le paiement

Une fois que l'agent a traité un paiement, vérifiez la session pour confirmer que la transaction a été enregistrée :

Exemple
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']}")

Vous pouvez également vérifier la balance de l'instrument :

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

Vous pouvez également vérifier la balance de l'instrument :

balance = dp_client.get_payment_instrument_balance( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentInstrumentId=INSTRUMENT_ID ) print(f"Remaining balance: {balance['amount']} {balance['currency']}")

Résolution des problèmes

Les problèmes suivants s'appliquent à la fois aux méthodes de configuration basées sur les compétences et manuelles.

Problème Solution

Le gestionnaire de paiement est bloqué dans CREATION

Attendez jusqu'à 2 minutes. S'il passe à CREATE_FAILED, vérifiez que l'ARN et les autorisations de votre rôle de service sont corrects.

« PaymentInstrument  Non actif »

L'utilisateur final doit approvisionner le portefeuille et accorder des autorisations de signature via l'URL de redirection avant que l'agent puisse effectuer une transaction.

« Session expirée ou budget dépassé »

Créez une nouvelle session de paiement avec une date d'expiration plus longue ou une limite de dépenses plus élevée.

« CredentialProvider  Non trouvé »

Vérifiez que l'ARN du fournisseur d'informations d'identification correspond à ce que vous avez créé à l'étape 2. Assurez-vous que la région est cohérente pour tous les appels.

ProcessPayment les retours ont échoué

Vérifiez que le solde du portefeuille en USDC est suffisant pour le montant de la transaction, plus les frais de gaz.

Nettoyage

Supprimez les ressources que vous avez créées au cours de ce didacticiel :

Exemple
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

Les remove commandes mettent à jour la configuration locale. Le suivi deploy détruit l'infrastructure de paiement de votre compte.

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

Ce que tu as construit

Dans le cadre de ce didacticiel, vous avez créé :

  • PaymentCredentialProvider— Informations d'identification du fournisseur de paiement stockées dans AgentCore Identity

  • PaymentManager— coordination Top-level des ressources pour les opérations de paiement

  • PaymentConnector— Intégration entre votre responsable et le fournisseur de paiement externe

  • PaymentInstrument— Un portefeuille cryptographique intégré, financé et autorisé par l'utilisateur final

  • PaymentSession— Un contexte de paiement limité dans le temps et le budget

  • Strands Agent — Un agent IA qui gère automatiquement les paiements x402

Étapes suivantes