View a markdown version of this page

Create a payment session - Amazon Bedrock AgentCore
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

Create a payment session

A payment session is a time-bounded payment context that optionally enforces a spending budget. When the session expires or the budget is reached, further payment requests within that session are denied. For the complete request and response schema, see CreatePaymentSession in the API Reference.

Tip

You can automate the steps on this page with the AgentCore Payments skill in the Amazon agent toolkit. The skill is part of the aws-agents plugin and lets an AI coding agent create your Payment Manager, connector, and credential provider with the AgentCore CLI, create a payment instrument and session using the AgentCore SDK, and add a process payment tool to your agent. For details, see the quickstart and the Amazon agent toolkit on GitHub.

Example
AgentCore SDK
from bedrock_agentcore.payments import PaymentManager manager = PaymentManager( payment_manager_arn=PAYMENT_MANAGER_ARN, region_name="us-west-2" ) # Create payment session with payment limits session = manager.create_payment_session( user_id="test-user-123", limits={"maxSpendAmount": {"value": "100.00", "currency": "USD"}}, expiry_time_in_minutes=60 )
Amazon CLI
aws bedrock-agentcore create-payment-session \ --payment-manager-arn "arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/my-manager" \ --user-id "test-user-123" \ --expiry-time-in-minutes 60 \ --limits '{"maxSpendAmount": {"value": "100.00", "currency": "USD"}}' \ --client-token "$(uuidgen)" \ --region us-west-2
Amazon SDK
import boto3 import uuid dp_client = boto3.client("bedrock-agentcore", region_name="us-west-2", endpoint_url="https://bedrock-agentcore.us-west-2.amazonaws.com") # Create payment session with payment limits session = dp_client.create_payment_session( userId="test-user-123", paymentManagerArn=PAYMENT_MANAGER_ARN, expiryTimeInMinutes=120, limits={"maxSpendAmount": {"value": "100.00", "currency": "USD"}}, clientToken=str(uuid.uuid4()), )

Get a payment session

Example
AgentCore SDK
session = manager.get_payment_session( user_id="test-user-123", payment_session_id="payment-session-abc123" ) limit = session["limits"]["maxSpendAmount"] available = session["availableLimits"]["availableSpendAmount"] print(f"Remaining: {available['value']} of {limit['value']} {limit['currency']}")
Amazon CLI
aws bedrock-agentcore get-payment-session \ --payment-manager-arn "arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/my-manager" \ --payment-session-id "payment-session-abc123" \ --region us-west-2
Amazon SDK
from decimal import Decimal response = dp_client.get_payment_session( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentSessionId="payment-session-abc123" ) session = response["paymentSession"] limit = session["limits"]["maxSpendAmount"] available = session["availableLimits"]["availableSpendAmount"] spent = Decimal(limit["value"]) - Decimal(available["value"]) print(f"Spent: {spent} / {limit['value']} {limit['currency']}")