

# AgentCore Schnellstart für Zahlungen
<a name="payments-getting-started"></a>

Dieses Tutorial führt Sie durch die Einrichtung von AgentCore Zahlungen und die Verarbeitung Ihrer ersten Mikrotransaktion. Am Ende bezahlt Ihr Agent für eine Ressource, die das x402-Protokoll in einem Testnetzwerk verwendet.

Sie können Zahlungen auf zwei Arten einrichten:
+  [Nutzung des Skills „ AgentCore Zahlungen](#payments-getting-started-skill)“ — Ein automatisiertes Setup-Erlebnis, bei dem alle Ressourcen im Rahmen eines geführten Gesprächs mit KI-Programmierern wie Kiro, Claude Code oder Codex bereitgestellt werden. Der Skill kümmert sich für Sie um CLI-Befehle, SDK-Skripte und die Framework-Verkabelung.
+  [Verwenden von CLI, SDK oder Boto3](#payments-getting-started-manual) — Eine schrittweise manuelle Einrichtung mit der AgentCore CLI, dem AWS SDK oder der AWS CLI direkt.

## Den Skill „Zahlungen“ verwenden AgentCore
<a name="payments-getting-started-skill"></a>

Der Skill „ AgentCore Zahlungen“ automatisiert den gesamten Einrichtungsprozess mithilfe einer interaktiven, geführten Oberfläche. Sie stellt die folgenden Ressourcen bereit:
+  **PaymentCredentialProvider**— Speichert die Anmeldeinformationen des Zahlungsanbieters in AgentCore Identity.
+  **Payment Manager** — Die Ressource auf oberster Ebene, die Zahlungsvorgänge koordiniert.
+  **Payment Connector — Verbindet** den Manager über die AgentCore CLI mit Ihren Anmeldeinformationen.
+  **Zahlungsinstrument** — Eine Krypto-Wallet, die Ihr Agent verwendet, um Händler im Namen eines Benutzers zu bezahlen.
+  **Zahlungssitzung** — Ein zeitlich begrenzter Kontext mit Ausgabenlimits.

Der Skill überträgt Zahlungen auch über ein Framework-unabhängiges Tool an Ihren Agenten, sodass er mit Strands LangGraph, OpenAI Agents SDK oder einem beliebigen Python-Framework funktioniert.

### Voraussetzungen
<a name="payments-getting-started-skill-prereqs"></a>

Bevor Sie beginnen, stellen Sie sicher, dass Sie über Folgendes verfügen:
+  ** AWS Konto** mit konfigurierten Anmeldeinformationen (`aws configure`)
+  **Eine AWS Region, in der AgentCore Zahlungen verfügbar sind** — us-east-1, us-west-2, eu-central-1 oder ap-southeast-2. [AWS Siehe Unterstützte Regionen](agentcore-regions.md).
+  **Node.js 20\+** installiert (der Skill installiert die AgentCore CLI automatisch)
+  **Ein Agent, der auf einen kostenpflichtigen Endpunkt zugreift** — Mit diesem Skill kann Ihr Agent für x402-geschützte APIs bezahlen. Zum Testen können Sie den Sandbox-Endpunkt verwenden. `https://sandbox.node4all.com/v1/x402-test`
+  **Das [Agent Toolkit für](https://github.com/aws/agent-toolkit-for-aws) das AWS`aws-agents` Plugin**, das in Ihrem AI-Codierungsagenten installiert ist:  
**Example**  

------
#### [ Claude Code ]

  ```
  /plugin marketplace add aws/agent-toolkit-for-aws
  /plugin install aws-agents@agent-toolkit-for-aws
  ```

------
#### [ Codex ]

  Das Plugin wird automatisch aus dem Marketplace-Manifest erkannt. Führen Sie den folgenden Befehl aus, um den Marketplace hinzuzufügen:

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

------

### Rufen Sie den Skill auf
<a name="payments-getting-started-skill-invoke"></a>

Der Zahlungs-Skill ist Teil des `agents-build` Skills im [Agent Toolkit für](https://github.com/aws/agent-toolkit-for-aws). AWS Um ihn auszulösen, beschreiben Sie Ihre Absicht in Ihrem KI-Codierungsagenten. Beispiel:
+ „Füge Zahlungen mit dem `agents-build` Skill `aws-agents` In-Plugin zu meinem Agenten hinzu“
+ „Richten Sie mithilfe des `agents-build` `aws-agents` Skill-In-Plug-ins Mikrotransaktionen für meinen Agenten ein“
+ „Ich muss 402 Antworten mit dem `agents-build` `aws-agents` Skill-In-Plugin bearbeiten, die für Zahlungen erforderlich sind“
+ „Weisen Sie meinen Agenten an, mithilfe des `agents-build` Skill-In-Plug-ins für x402-geschützte APIs zu bezahlen“ `aws-agents`

Der Skill erkennt zahlungsbezogene Absichten und lädt den Zahlungs-Workflow automatisch.

### Was macht der Skill
<a name="payments-getting-started-skill-flow"></a>

Der Skill führt einen automatisierten Prozess durch, der Ihre Zahlungsinfrastruktur durchgängig bereitstellt. Der Skill führt die meisten Schritte automatisch aus und hält zweimal für Ihre Eingabe an:

1. Überprüft oder installiert die AgentCore CLI und richtet das Projekt ein

1. Erstellt den Zahlungsmanager

1.  **Pausen** — Sie laufen`agentcore add payment-connector`, um Ihre Anbietergeheimnisse (Coinbase CDP- oder Stripe Privy-Anmeldeinformationen) einzugeben

1. Stellt Ressourcen für Ihr Konto bereit () AWS `agentcore deploy -y`

1. Verbindet ein Framework-unabhängiges Zahlungstool () mit Ihrem Agenten `x402_payment_tool.py`

1. Erstellt über das SDK eine benutzerspezifische Wallet (Instrument) und eine Sitzung mit begrenztem Budget

1.  **Pausen** [— Sie autorisieren das Wallet (Delegation) und finanzieren es mit Testnet USDC von der Circle Faucet-Website](https://faucet.circle.com/)

1. Legt Umgebungsvariablen fest und führt eine Testzahlung für einen kostenpflichtigen Endpunkt aus

Bevor Sie den Connector-Befehl ausführen, holen Sie sich die Anmeldeinformationen von Ihrem Anbieter:
+  **Coinbase CDP** — API-Schlüssel-ID, API-Schlüsselgeheimnis und Wallet-Secret von der [Coinbase Developer Platform-Website](https://portal.cdp.coinbase.com/) (mit aktivierter delegierter Signatur).
+  **Stripe Privy** [— App-ID, App-Geheimnis, Autorisierungs-ID und privater Autorisierungsschlüssel von der Privy-Dashboard-Website.](https://dashboard.privy.io/)

Ein erfolgreicher Start zeigt, dass der Agent anruft`x402_fetch`, eine erkennt`402`, die Zahlung über das AgentCore SDK abwickelt und den erneuten Versuch mit kostenpflichtigen Inhalten zurückgibt`200`.

## Verwenden von CLI, SDK oder Boto3
<a name="payments-getting-started-manual"></a>

In diesem Abschnitt werden Sie mithilfe der AgentCore CLI, AWS CLI oder AWS SDK (Boto3) manuell durch die einzelnen Schritte geführt.

### Voraussetzungen
<a name="payments-getting-started-manual-prereqs"></a>

Bevor Sie beginnen, stellen Sie sicher, dass Sie über Folgendes verfügen:
+  ** AWS Konto** mit konfigurierten Anmeldeinformationen (`aws configure`)
+  **Python 3.10\+ installiert**
+  **Eine AWS Region, in der AgentCore Zahlungen verfügbar sind** — us-east-1, us-west-2, eu-central-1 oder ap-southeast-2. [AWS Siehe Unterstützte Regionen](agentcore-regions.md).

Installieren Sie die erforderlichen Pakete:

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

Stellen Sie sicher, dass Ihre Anmeldeinformationen konfiguriert sind:

```
aws sts get-caller-identity
```

**Tipp**  
Wenn Sie AgentCore CLI v0.19.0 oder höher installiert haben, können Sie CLI-Befehle als Alternative zum SDK in den Schritten 2, 3, 5 und 6 verwenden. Jeder der folgenden Schritte zeigt beide Optionen.

### Schritt 1: Besorgen Sie sich die Anmeldeinformationen des Zahlungsanbieters
<a name="payments-getting-started-provider-credentials"></a>

AgentCore payments stellt eine Verbindung zu einem externen Zahlungsanbieter für Wallet-Operationen her. Sie benötigen Anmeldeinformationen von einem der unterstützten Anbieter, bevor Sie fortfahren können.

**Example**  

1. Loggen Sie sich auf der [Coinbase Developer Platform](https://docs.cdp.coinbase.com/api-reference/v2/authentication) ein und erstellen oder wählen Sie ein Projekt aus.

1. Generieren Sie einen API-Schlüssel und notieren Sie sich die **API-Schlüssel-ID**, das **API-Schlüsselgeheimnis** und das **Wallet-Secret**.

1. Aktivieren Sie unter **Projekt** > **Wallets** > **Non-custodial Wallet** > **Sicherheit** die Option **Delegiertes Signieren.**
Im nächsten Schritt werden Sie diese drei Werte verwenden:  


| Credential | Description | 
| --- | --- | 
|  `API Key ID`  | Öffentliche Kennung für Ihr CDP-Projekt | 
|  `API Key Secret`  | Privates Geheimnis zum Signieren von API-Anfragen | 
|  `Wallet Secret`  | Geheim für kryptografische Wallet-Operationen (Adressen ableiten, Transaktionen signieren) | 

1. [Erstellen Sie eine **spezielle Privy-App unter** dashboard.privy.io.](https://dashboard.privy.io/) Verwenden Sie Apps, die anderen Zwecken dienen, nicht erneut.

1. Kopieren Sie die **App-ID** und den **App Secret** aus Ihren App-Einstellungen.

1. Navigieren Sie zu **Wallet Infrastructure** > **Authorization** und wählen Sie **New Key**, um ein P-256 key pair zu generieren.
Im nächsten Schritt werden Sie diese vier Werte verwenden:  


| Credential | Description | 
| --- | --- | 
|  `App ID`  | Ihre Privy-Anwendungs-ID | 
|  `App Secret`  | Geheim für Server-zu-Server-Basic-Auth | 
|  `Authorization ID`  | Kennung des öffentlichen Schlüssels aus dem P-256 key pair | 
|  `Authorization Private Key`  | Privater Schlüssel aus dem P-256 key pair | 

Vollständige Informationen, einschließlich bewährter Sicherheitsmethoden und Rotation von Anmeldeinformationen, finden Sie unter [Voraussetzungen](payments-prerequisites.md).

### Schritt 2: Anmeldeinformationen in AgentCore Identity speichern
<a name="payments-getting-started-step2"></a>

Speichern Sie die Anmeldeinformationen Ihres Zahlungsanbieters als PaymentCredentialProvider. Dadurch werden Geheimnisse in AWS Secrets Manager und nicht in Ihrem Anwendungscode aufbewahrt.

**Example**  

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

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

Das vollständige Anfrage- und Antwortschema finden Sie [CreatePaymentCredentialProvider](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_CreatePaymentCredentialProvider.html)in der API-Referenz.

#### CLI-Alternative: Anmeldeinformationen speichern
<a name="payments-getting-started-step2-cli"></a>

Mit der AgentCore CLI erfolgt die Speicherung von Anmeldeinformationen automatisch, wenn Sie einen Zahlungskonnektor hinzufügen (Schritt 3). Überspringen Sie diesen Schritt, wenn Sie den CLI-Pfad verwenden möchten.

### Schritt 3: Erstellen Sie einen Zahlungsmanager und einen Connector
<a name="payments-getting-started-step3"></a>

Ein Zahlungsmanager ist die oberste Ressource, die Zahlungsvorgänge koordiniert. Ein Payment Connector verknüpft den Manager mit den Anmeldeinformationen Ihres Zahlungsanbieters. Bevor Sie diese Ressourcen erstellen, richten Sie die erforderlichen IAM-Rollen ein, wie unter [IAM-Rollen für AgentCore Zahlungen](payments-iam-roles.md) beschrieben.

**Example**  
Eine vollständige Anleitung für die Konsole, einschließlich JWT-Autorisierung und benutzerdefinierter Ansprüche, finden Sie unter [Erstellen eines Zahlungsmanagers und eines Connectors](payments-create-manager.md).  

1. Öffnen Sie die [Amazon AgentCore Bedrock-Konsole](https://console.aws.amazon.com/bedrock-agentcore/).

1. Wählen Sie im Navigationsbereich unter **Build** die Option **Payments** aus.

1. Wählen Sie **Create Payment Manager** aus.

1. Geben Sie einen **Namen** für Ihren Zahlungsmanager ein.

1. Wählen Sie unter **Berechtigungen** die Option **Neue Servicerolle erstellen und verwenden** (oder wählen Sie eine vorhandene Rolle aus).

1. Wählen Sie unter **Inbound Auth die** Option **IAM-Benutzernamen für die IAM-Autorisierung verwenden** aus.

1. (Optional) Wählen Sie im Bereich **Payment Connector** einen Namen für den Connector und wählen Sie entweder eine bestehende ausgehende Authentifizierung aus oder erstellen Sie eine neue, indem Sie Ihren Anbieter (Coinbase oder Stripe Privy) auswählen und Ihre Anmeldeinformationen eingeben.

1. **Wählen Sie „Zahlungsmanager erstellen“.**
Die CLI erstellt den Anmeldeinformationsanbieter, den Payment Manager und den Payment Connector in einem Arbeitsablauf. Fügen Sie aus Ihrem AgentCore Projektverzeichnis einen Zahlungsmanager und einen Connector zusammen hinzu.  
 **Interaktiver Assistent:**   

```
agentcore add payment-manager
```
Der Assistent fordert Sie auf, den Namen des Managers, das Muster (Interceptor), die automatische Zahlungsoption und das Standardausgabenlimit einzugeben. Anschließend fragt er, ob ein Connector hinzugefügt werden soll, und führt die Anbieterauswahl und die Eingabe der Anmeldeinformationen durch.  
 **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 (Geheimt):**   

```
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>
```
Nach dem Hinzufügen bereitstellen, um die Zahlungsinfrastruktur bereitzustellen:  

```
agentcore deploy
```
Im Bereitstellungsschritt werden IAM-Rollen erstellt, Anmeldeinformationen in AgentCore Identity gespeichert und der Zahlungsmanager und der Connector bereitgestellt. In der Ausgabe wird „Zahlungsinfrastruktur wird erstellt...“ angezeigt.
Das AgentCore SDK erstellt den Zahlungsmanager, den Anmeldeinformationsanbieter und den Connector in einem einzigen Aufruf.  

```
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}")
```
Ersetzen Sie für Stripe Privy die `payment_credential_provider_config` durch `credential_provider_vendor: "StripePrivy"` und die entsprechenden Privy-Anmeldeinformationen.
Erstellen Sie den Zahlungsmanager:  

```
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
```
Wenn der Manager den `READY` Status erreicht hat, erstellen Sie einen Anmeldeinformationsanbieter und einen Connector. Den vollständigen AWS CLI-Workflow finden [Sie unter Erstellen eines Zahlungsmanagers und Connectors](payments-create-manager.md).
Erstellen Sie zunächst den Zahlungsmanager (derselbe für beide Anbieter):  

```
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)
```
Erstellen Sie dann den Payment Connector für Ihren Anbieter:  
 **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}")
```
 **Geheimt:**   

```
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}")
```
Wenn Sie noch keine Servicerolle haben, finden Sie unter [IAM-Rollen für AgentCore Zahlungen](payments-iam-roles.md) Anweisungen zum Erstellen einer solchen. Die Konsole kann auch eine Rolle in Ihrem Namen erstellen. Die vollständigen Anfrage- und Antwortschemas finden Sie unter [CreatePaymentManager](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_CreatePaymentManager.html)und [CreatePaymentConnector](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_CreatePaymentConnector.html)in der API-Referenz.

### Schritt 4: Erstellen Sie ein Zahlungsinstrument
<a name="payments-getting-started-step4"></a>

Ein Zahlungsinstrument ist eine eingebettete Krypto-Wallet, die Ihr Agent verwendet, um Händler im Namen eines Benutzers zu bezahlen. Jedes Instrument ist einem bestimmten Blockchain-Netzwerk zugeordnet.

**Example**  

```
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 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
```
Speichern Sie das `paymentInstrumentId` und `redirectUrl` aus der Antwort.

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

Das vollständige Anfrage- und Antwortschema finden Sie [CreatePaymentInstrument](https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_CreatePaymentInstrument.html)in der API-Referenz.

#### Finanzieren Sie das Wallet und gewähren Sie Berechtigungen
<a name="payments-getting-started-step4-fund"></a>

Bevor der Agent Transaktionen durchführen kann, muss der Endbenutzer das Wallet finanzieren und Signaturberechtigungen erteilen. Öffnen Sie die `redirectUrl` aus der obigen Antwort stammende Datei in einem Browser. Über den Wallet-Hub kann der Benutzer:
+ Die Brieftasche mit Kryptotransfer, credit/debit Karte, Apple Pay, Google Pay oder ACH aufladen
+ Erteilen Sie dem Agenten die Erlaubnis, Transaktionen in seinem Namen zu unterzeichnen

Für eine Testumgebung finanzieren Sie das Wallet mit Testnet USDC.

Fragen Sie nach der Finanzierung den Status des Instruments ab, bis dieser wie folgt lautet: `ACTIVE`

**Example**  

```
instrument = manager.get_payment_instrument(
    user_id="test-user-123",
    payment_instrument_id=INSTRUMENT_ID
)
print(f"Status: {instrument['status']}")
```

```
aws bedrock-agentcore get-payment-instrument \
    --payment-manager-arn "$PAYMENT_MANAGER_ARN" \
    --payment-instrument-id "$INSTRUMENT_ID" \
    --region us-west-2
```

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

Weitere Informationen zu den Finanzierungsströmen nach Anbietern findest du unter [Finanzierung des Wallets](payments-how-it-works.md#payments-how-it-works-funding-wallet).

### Schritt 5: Erstellen Sie eine Zahlungssitzung
<a name="payments-getting-started-step5"></a>

Eine Zahlungssitzung ist ein zeitlich begrenzter Kontext mit optionalen Ausgabenlimits. Wenn die Sitzung abläuft oder das Budget aufgebraucht ist, kann der Mitarbeiter innerhalb dieser Sitzung keine weiteren Zahlungen leisten.

**Example**  
Wenn Sie die CLI verwenden, müssen Sie keine Sitzung manuell erstellen. Weiterleiten `--auto-session` an `agentcore invoke` und die CLI erstellt oder verwendet eine Sitzung mit dem Standard-Ausgabenlimit, das Sie im Zahlungsmanager konfiguriert haben.  

```
agentcore invoke \
  --prompt "your prompt here" \
  --payment-instrument-id <INSTRUMENT_ID> \
  --auto-session \
  --payment-user-id test-user-123
```
Um eine bestimmte Sitzung zu verwenden, die Sie über das SDK erstellt haben, geben Sie `--payment-session-id` statt`--auto-session`.

```
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 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
```

```
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)")
```
Das vollständige Anfrage- und Antwortschema finden Sie [CreatePaymentSession](https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_CreatePaymentSession.html)in der API-Referenz.

### Schritt 6: Verarbeiten Sie eine Zahlung mit einem Strons-Agenten
<a name="payments-getting-started-step6"></a>

Wenn alle Ressourcen vorhanden sind, richten Sie einen Strons-Agenten ein, der x402-Zahlungen automatisch abwickelt. Wenn der Agent einen kostenpflichtigen Endpunkt anruft und eine HTTP 402-Antwort erhält, signiert das Zahlungs-Plugin die Transaktion und versucht die Anfrage erneut.

**Example**  
Rufen Sie Ihren eingesetzten Agenten mit Zahlungskontext auf. Die CLI leitet das Zahlungsinstrument und die Sitzung zur Laufzeit an den Agenten weiter, und der x402-Interceptor des Agenten wickelt die Zahlung automatisch ab.  

```
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
```
Um eine explizite Sitzung zu übergeben, anstatt eine automatisch zu erstellen:  

```
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
```
Verwenden Sie die `PaymentManager` Klasse, um Zahlungskopfzeilen zu generieren, wenn Sie eine HTTP 402-Antwort erhalten:  

```
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_headers`enthält den Header des Zahlungsnachweises. Fügen Sie diesen Header hinzu, wenn Sie erneut versuchen, die Anfrage an den kostenpflichtigen Endpunkt zu senden.
Rufen Sie `process-payment` direkt mit einer x402-Nutzlast an (wird verwendet, wenn Sie die Zahlungsorchestrierung selbst übernehmen):  

```
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
```
Das vollständige Anfrage- und Antwortschema finden Sie [ProcessPayment](https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_ProcessPayment.html)in der API-Referenz.

```
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)
```
Das vollständige Anfrage- und Antwortschema des zugrunde liegenden API-Aufrufs finden Sie [ProcessPayment](https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_ProcessPayment.html)in der API-Referenz.

### Überprüfen Sie die Zahlung
<a name="payments-getting-started-verify"></a>

Nachdem der Mitarbeiter eine Zahlung bearbeitet hat, überprüfen Sie die Sitzung, um zu bestätigen, dass die Transaktion aufgezeichnet wurde:

**Example**  

```
session = manager.get_payment_session(
    user_id="test-user-123",
    payment_session_id=SESSION_ID
)
print(f"Status: {session['status']}, Remaining: {session['remainingAmount']}")
```
Sie können auch den Saldo des Instruments überprüfen:  

```
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 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
```

```
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")
```
Sie können auch die Instrumentenbilanz überprüfen:  

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

## Fehlerbehebung
<a name="payments-getting-started-troubleshooting"></a>

Die folgenden Probleme betreffen sowohl die auf Fertigkeiten basierenden als auch die manuellen Setup-Pfade.


| Problem | Lösung | 
| --- | --- | 
| Payment Manager blieb beim ERSTELLEN hängen | Warten Sie bis zu 2 Minuten. Wenn es zu CREATE\_FAILED verschoben wird, überprüfen Sie, ob Ihr Dienstrollen-ARN und Ihre Berechtigungen korrekt sind. | 
| „PaymentInstrument nicht aktiv“ | Der Endbenutzer muss das Wallet finanzieren und über die Umleitungs-URL Signierberechtigungen gewähren, bevor der Agent Transaktionen durchführen kann. | 
| „Die Sitzung ist abgelaufen oder das Budget wurde überschritten“ | Erstellen Sie eine neue Zahlungssitzung mit einem längeren Ablauf oder einem höheren Ausgabenlimit. | 
| „CredentialProvider nicht gefunden“ | Stellen Sie sicher, dass der ARN des Anmeldeinformationsanbieters mit dem übereinstimmt, was Sie in Schritt 2 erstellt haben. Stellen Sie sicher, dass die Region bei allen Anrufen einheitlich ist. | 
| ProcessPayment gibt FAILED zurück | Vergewissern Sie sich, dass die Brieftasche über ein ausreichendes USDC-Guthaben für den Transaktionsbetrag zuzüglich Gasgebühren verfügt. | 

## Bereinigen
<a name="payments-getting-started-cleanup"></a>

Löschen Sie die Ressourcen, die Sie in diesem Tutorial erstellt haben:

**Example**  

```
agentcore remove payment-connector --manager my-payment-manager --name my-coinbase-connector --yes
agentcore remove payment-manager --name my-payment-manager --yes
agentcore deploy
```
Die `remove` Befehle aktualisieren die lokale Konfiguration. Das `deploy` Follow-up zerstört die Zahlungsinfrastruktur in Ihrem Konto.

```
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 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
```

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

## Was du gebaut hast
<a name="payments-getting-started-what-youve-built"></a>

Mit diesem Tutorial haben Sie Folgendes erstellt:
+  **PaymentCredentialProvider**— Die in AgentCore Identity gespeicherten Anmeldeinformationen des Zahlungsanbieters
+  **PaymentManager**— Top-level Ressourcen, die Zahlungsvorgänge koordinieren
+  **PaymentConnector**— Integration zwischen Ihrem Manager und dem externen Zahlungsanbieter
+  **PaymentInstrument**— Eine eingebettete Krypto-Wallet, die vom Endbenutzer finanziert und autorisiert wird
+  **PaymentSession**— Ein zeitlich begrenzter, budgetbegrenzter Zahlungskontext
+  **Strands Agent** — Ein KI-Agent, der x402-Zahlungen automatisch abwickelt

## Nächste Schritte
<a name="payments-getting-started-next-steps"></a>
+  [Connect zu Coinbase x402 Bazaar her, um mehr als 10.000 kostenpflichtige MCP-Tools](payments-connect-bazaar.md) zu entdecken.
+  [Integrieren Sie das Browser-Tool, um auf kostenpflichtige Websites zuzugreifen](payments-browser.md).
+  [Aktivieren Sie Observability](payments-observability.md) zur Überwachung von Zahlungsvorgängen in. CloudWatch
+  [Sehen Sie sich die IAM-Rollen](payments-iam-roles.md) an, um den Zugriff mit den geringsten Rechten für die Produktion zu konfigurieren.