# Gemeinsam genutzte Zahlungstoken Erfahren Sie, wie Sie gemeinsam genutzte Zahlungstoken verwenden. > Geteilte Zahlungstoken (Shared Payment Tokens, SPTs) sind für Agenten, Kundinnen und Kunden sowie Verkäufer/innen in den USA verfügbar. # Verkäufer/innen > This is a Verkäufer/innen for when agent-seller is seller. View the full page at https://docs.stripe.com/agentic-commerce/concepts/shared-payment-tokens?agent-seller=seller. Als Verkäufer/in erhalten Sie vom Agenten einen [Shared Payment Token (SPT)](https://docs.stripe.com/api/shared-payment/granted-token.md). Ein SPT ist eine begrenzte Berechtigung zur Nutzung der Zahlungsmethode des Kunden bzw. der Kundin. Der Agent vergibt SPTs an Ihr [Stripe-Profil](https://docs.stripe.com/get-started/account/profile.md), wobei jedes SPT mit Nutzungs- und Ablaufbeschränkungen versehen ist. Registrierung und Verarbeitung von Zahlungsmethoden (See full diagram at https://docs.stripe.com/agentic-commerce/concepts/shared-payment-tokens) ## Before you begin - Indem Sie SPTs nutzen, stimmen Sie den [Allgemeinen Geschäftsbedingungen](https://stripe.com/legal/ssa-services-terms#stripe-agentic-commerce-seller-services-preview) zu. - Wenn Sie noch kein Stripe-Konto haben, [erstellen Sie eines](https://stripe.com/register). - Vergessen Sie nicht, Ihr [Stripe-Profil](https://docs.stripe.com/get-started/account/profile.md) im Stripe-Dashboard zu erstellen. ## Testen Sie den Empfang eines SPT Als Verkäufer/in können Sie den Empfang eines von einem Agenten gewährten SPT mit Testhelfern simulieren. Mit der folgenden Anfrage erhält Ihr Konto ein SPT mit einer Testzahlungsmethode. Dabei werden Beschränkungen simuliert, die Agenten festlegen können, wie Währung, Höchstbetrag und Gültigkeitsdauer. ```curl curl https://api.stripe.com/v1/test_helpers/shared_payment/granted_tokens \ -u "<>:" \ -d payment_method=pm_card_visa \ -d "usage_limits[currency]=usd" \ -d "usage_limits[max_amount]=1000" \ -d "usage_limits[expires_at]=1751587220" ``` ### Legen Sie Nutzungsbeschränkungen fest Verwenden Sie den Parameter `usage_limits`, um den Höchstbetrag und das Zeitfenster festzulegen. Der Agent stellt den Höchstbetrag so ein, dass er dem Gesamtbetrag der Transaktion entspricht. ### Geben Sie die Zahlungsmethode an Verwenden Sie den Parameter `payment_method`, um die Zahlungsmethode anzugeben, die die Kundin oder der Kunde für den Kauf ausgewählt hat. ## Testen Sie Ihre Live-Modus-Integration Um Ihre Integration im Live-Modus zu testen, verwenden Sie [link-cli](https://link.com/agents), um SPTs über Ihr persönliches Link-Konto auszugeben. `link-cli` kann Anmeldedaten für einmalige geteilte Zahlungstoken bereitstellen. Befolgen Sie die Anweisungen unter [link.com/agents](https://link.com/agents), um die `link-cli`-Skills zu installieren oder als MCP-Server in Ihrem bevorzugten Agenten zu registrieren. 1. Melden Sie sich bei Ihrem persönlichen Link-Konto an oder [registrieren Sie sich](https://app.link.com), falls Sie noch kein Konto haben. ```bash npx @stripe/link-cli auth login ``` 1. Wählen Sie die Zahlungsmethode, die Sie verwenden möchten. Falls Sie noch keine haben, [fügen Sie eine Zahlungsmethode hinzu](https://app.link.com/wallet). ```bash npx @stripe/link-cli payment-methods list ``` 1. Erstellen Sie eine Ausgabenanfrage, um ein einmaliges SPT für Ihr Unternehmensprofil auszustellen. ```bash npx @stripe/link-cli spend-request create \ --payment-method-id csmrpd_xxx \ --context "Machine payments with SPTs in live mode" \ --amount 100 \ --credential-type shared_payment_token \ --network-id profile_... \ --request-approval ``` ## Gemeinsames Zahlungstoken verwenden Nachdem Sie ein gewährtes `SharedPaymentToken` erhalten haben, erstellen Sie einen `PaymentIntent`, um die Zahlung abzuschließen. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1000 \ -d currency=usd \ -d "payment_method_data[shared_payment_granted_token]=spt_123" \ -d confirm=true ``` Wenn Sie mit dem SPT einen `PaymentIntent` bestätigen, legt Stripe `payment_method` auf eine neue `PaymentMethod` fest, die aus der ursprünglichen Zahlungsmethode der Kundin oder des Kunden geklont wurde. Nachfolgende Ereignisse wie Rückerstattungen und Berichte verhalten sich so, als hätten Sie die `PaymentMethod` direkt angegeben. Sie können Details zum gewährten `SharedPaymentToken` abrufen, einschließlich begrenzter Informationen über die zugrunde liegende Zahlungsmethode. Dazu gehören beispielsweise die Marke der Karte, die letzten vier Ziffern und Nutzungslimits. ```curl curl https://api.stripe.com/v1/shared_payment/granted_tokens/spt_123 \ -u "<>:" ``` ``` { "id": "spt_123", "object": "shared_payment.granted_token", "created": 1751500820, "deactivated_at": null, "deactivated_reason": null, "usage_limits": { "currency": "usd", "expires_at": 1780671764, "max_amount": 1000 } ... } ``` ### Webhook-Ereignisse überwachen Wir senden in folgenden Situationen Ereignisse an Sie und den Agenten: - Sie verwenden einen gewährten SPT, um eine Zahlung zu akzeptieren. - Der Agent widerruft einen gewährten SPT. Sie können keine Zahlung mit einem widerrufenen SPT erstellen. | Ereignis | Beschreibung | Anwendungsbereich | | ------------------------------------------ | ------------------------------------------------------- | --------------------------------------------------------------------------------------------- | | `shared_payment.granted_token.deactivated` | Der SPT wurde deaktiviert (widerrufen oder abgelaufen). | Überwachen Sie dieses Ereignis, um zu erfahren, wann Sie ein SPT nicht mehr verwenden können. | # Agenten > This is a Agenten for when agent-seller is agent. View the full page at https://docs.stripe.com/agentic-commerce/concepts/shared-payment-tokens?agent-seller=agent. Verwenden Sie als Agent [geteilte Zahlungstoken (Shared Payment Tokens, SPTs)](https://docs.stripe.com/api/shared-payment/issued-token/.md), um Verkäuferinnen und Verkäufern zur Zahlungsabwicklung umfassenden Zugriff auf die Zahlungsmethode der Kundin oder des Kunden zu gewähren. Registrierung und Verarbeitung von Zahlungsmethoden (See full diagram at https://docs.stripe.com/agentic-commerce/concepts/shared-payment-tokens) ## Before you begin - Indem Sie SPTs nutzen, stimmen Sie den [Allgemeinen Geschäftsbedingungen](https://stripe.com/legal/ssa-services-terms#stripe-agentic-commerce-agent-services-preview) zu. - Wenn Sie noch kein Stripe-Konto haben, [erstellen Sie eines](https://stripe.com/register). - Vergessen Sie nicht, Ihr [Stripe-Profil](https://docs.stripe.com/get-started/account/profile.md) im Stripe-Dashboard zu erstellen. ## Erfassen Sie das Stripe-Profil der Verkäuferin oder des Verkäufers Erfassen Sie beim Verkäufer-Onboarding das Stripe-Profil der Verkäuferin bzw. des Verkäufers. Verkäufer/innen können ein neues Profil erstellen oder ihr aktuelles Profil im [Stripe-Dashboard](https://dashboard.stripe.com/profiles) aufrufen. Diesem Profil stellen Sie für jede Transaktion ein SPT aus. ## Erfassen Sie die Zahlungsdaten der Kundin oder des Kunden Verwenden Sie das [Payment Element](https://docs.stripe.com/payments/payment-element.md), um Zahlungsdaten sicher zu erfassen und mehrere Zahlungsmethoden über eine einzige Integration zu unterstützen. Es sorgt automatisch dafür, dass Kundinnen und Kunden nur von Verkäuferinnen und Verkäufern unterstützte Zahlungsmethoden angezeigt werden. Die URL Ihrer Bezahlseite muss mit `https://` rather anstelle von `http://` for beginnen, damit Ihre Integration funktioniert. Sie können Ihre Integration ohne HTTPS testen, müssen es aber [aktivieren](https://docs.stripe.com/security/guide.md#tls), bevor Sie live Zahlungen akzeptieren. ### Richten Sie Stripe.js ein Das Payment Element steht in Stripe.js automatisch zur Verfügung. Fügen Sie das Stripe.js-Script auf Ihrer Bezahlseite ein, indem Sie es in den `head` Ihrer HTML-Datei einbinden. Laden Sie Stripe.js immer direkt von `js.stripe.com`, um die PCI-Konformität zu gewährleisten. Fügen Sie das Script nicht in ein Bundle ein und hosten Sie selbst keine Kopie davon. ```html Checkout ``` Erstellen Sie auf Ihrer Bezahlseite eine `Stripe`-Instanz mit dem folgenden JavaScript: ```javascript // Set your publishable key: remember to change this to your live publishable key in production // See your keys here: https://dashboard.stripe.com/apikeys const stripe = Stripe('<>'); ``` ### Payment Element zu Ihrer Checkout-Seite hinzufügen > #### Widersprüchliche iFrames > > Platzieren Sie das Payment Element nicht in einem anderen `iframe`, da es im Widerspruch zu Zahlungsmethoden steht, die zur Zahlungsbestätigung eine Weiterleitung zu einer anderen Seite erfordern. Das Payment Element benötigt einen Container auf Ihrer Bezahlseite. Erstellen Sie in Ihrem Zahlungsformular einen leeren DOM-Knoten mit einer eindeutigen ID. ```html
``` Nachdem Ihr Formular geladen wurde, erstellen Sie eine `Elements`-Instanz mit `mode`, `amount`, `currency` und `paymentMethodCreation`. Geben Sie `sellerDetails` an und übergeben Sie das `networkBusinessProfile` der Verkäuferin oder des Verkäufers, um sicherzustellen, dass Stripe die von dem/der Verkäufer/in unterstützten Zahlungsmethoden anzeigt. So können Sie andere Zahlungsmethoden unterstützen als Verkäufer/innen und gleichzeitig Käuferinnen und Käufern kompatible Zahlungsmethoden anzeigen. Erstellen Sie dann eine Instanz des Payment Element und verbinden Sie sie mit dem Container-DOM-Knoten. ```javascript const options = { mode: 'payment', amount: 1000, currency: 'usd', paymentMethodCreation: 'manual', sellerDetails: { networkBusinessProfile: "profile_123" }, // Fully customizable with appearance API. appearance: {/*...*/}, }; // Set up Stripe.js and Elements to use in checkout formconst elements = stripe.elements(options); // Create and mount the Payment Element const paymentElementOptions = { layout: 'accordion'}; const paymentElement = elements.create('payment', paymentElementOptions); paymentElement.mount('#payment-element'); ``` ### Adressen einholen Standardmäßig erfasst das Payment Element nur die erforderlichen Angaben zur Rechnungsadresse. Einige Verhaltensweisen, wie z. B. die [Berechnung der Steuer](https://docs.stripe.com/api/tax/calculations/create.md) oder die Eingabe der Versanddaten, erfordern die vollständige Adresse Ihrer Kundin/Ihres Kunden. Sie können Folgendes tun: - Verwenden Sie das [Address Element](https://docs.stripe.com/elements/address-element.md), um die Vorteile der Funktionen der automatischen Vervollständigung und Lokalisierung zu nutzen, um die vollständige Adresse Ihrer Kundin oder Ihres Kunden zu erfassen. Dies trägt dazu bei, eine möglichst genaue Steuerberechnung zu gewährleisten. - Erfassen Sie Adressdaten mit Ihrem eigenen benutzerdefinierten Formular. ### Erstellen Sie die PaymentMethod Wenn die Kundin oder der Kunde Ihr Zahlungsformular absendet, erstellen Sie eine `PaymentMethod` und senden Sie sie an Ihren Server, um ein SPT zu erstellen. ```javascript const form = document.getElementById('payment-form'); const submitBtn = document.getElementById('submit'); const handleError = (error) => { const messageContainer = document.querySelector('#error-message'); messageContainer.textContent = error.message; submitBtn.disabled = false; } form.addEventListener('submit', async (event) => { // We don't want to let default form submission happen here, // which would refresh the page. event.preventDefault(); // Prevent multiple form submissions if (submitBtn.disabled) { return; } // Disable form submission while loading submitBtn.disabled = true; // Trigger form validation and wallet collection const {error: submitError} = await elements.submit(); if (submitError) { handleError(submitError); return; } // Create the PaymentMethod using the details collected by the Payment Element const {error, paymentMethod} = await stripe.preparePaymentMethod({ elements, params: { billing_details: { name: 'Jenny Rosen', } } }); if (error) { // This point is only reached if there's an immediate error when // creating the PaymentMethod. Show the error to your customer (for example, payment details incomplete) handleError(error); return; } // Create the Shared Payment Token const res = await fetch("/create-spt", { method: "POST", headers: {"Content-Type": "application/json"}, body: JSON.stringify({ paymentMethodId: paymentMethod.id, }), }); const data = await res.json(); // Handle any next actions or errors. See the Handle any next actions step for implementation. handleServerResponse(data); }); ``` ## Stellen Sie Verkäuferinnen und Verkäufern geteilte Zahlungstoken aus Erstellen Sie als Agent ein `SharedPaymentIssuedToken` für die Transaktion. Verwenden Sie dazu die Zahlungsmethode Ihrer Kundin oder Ihres Kunden und das Stripe-Profil der Verkäuferin oder des Verkäufers. Legen Sie Nutzungsbeschränkungen wie Währung, Höchstbetrag und Gültigkeitsdauer fest. Diese Anfrage gibt eine `SharedPaymentToken`-ID zurück, die Sie dem/der Verkäufer/in zur Zahlungsabwicklung mitteilen. ```curl curl https://api.stripe.com/v1/shared_payment/issued_tokens \ -u "<>:" \ -d payment_method=pm_1RgaZbFPC5QUO6ZCe2ekOCNX \ -d "seller_details[network_business_profile]=profile_123" \ -d "usage_limits[currency]=usd" \ -d "usage_limits[expires_at]=1751587220" \ -d "usage_limits[max_amount]=1000" \ --data-urlencode "return_url=http://example.com/agent-checkout/return" ``` ### Unterstützte Zahlungsmethoden | Zahlungsmethode | Verfügbarkeit | | -------------------------------------------------------------------- | --------------- | | [Karten](https://docs.stripe.com/payments/cards/overview.md) | ✓ Unterstützt 1 | | [Link](https://docs.stripe.com/payments/wallets/link.md) | ✓ Unterstützt | | [Apple Pay](https://docs.stripe.com/apple-pay.md) | ✓ Unterstützt | | [Google Pay](https://docs.stripe.com/google-pay.md) | ✓ Unterstützt | | [Klarna](https://docs.stripe.com/payments/klarna.md) | ✓ Unterstützt | | [Affirm](https://docs.stripe.com/payments/affirm.md) (eingeschränkt) | ✓ Supported 2,3 | 1 In Zusammenarbeit mit den Kartennetzwerken kann Stripe in Ihrem Namen Token bereitstellen und verwenden, die über die Programme Agent Pay von Mastercard und Visa Intelligent Commerce ausgestellt wurden. 2 Ein Agent interagiert möglicherweise nicht programmgesteuert mit der Kreditantragsoberfläche von Affirm in der Webansicht; der/die Käufer/in muss die Person sein, die navigiert und bestätigt. Außerdem kann er/sie den Affirm-Bezahlvorgang nicht in einem Browser auf dem Gerät rendern, über das der Agent keine Navigationskontrolle hat. 3 Wenn ein Agent Affirm an Kundinnen und Kunden vermarktet, muss er die [Marketing-Compliance-Leitfäden](https://docs.affirm.com/developers/docs/compliance_and_guidelines) von Affirm erfüllen und den Affirm-[Leitfaden](https://businesshub.affirm.com/hc/en-us/articles/10653174159636-Affirm-Marketing-Compliance-Guides) verwenden, der sich auf die Affirm-Zahlungsoptionen bezieht, die Sie Ihrer Kundschaft anzeigen. ### Führen Sie Folgeaktionen durch Ein `SharedPaymentToken` kann in den Status `requires_action` übergehen, wenn zum Abschluss einer von dem/der Verkäufer/in erstellte Zahlung zusätzliche kundenseitige Aktionen erforderlich sind. Dabei kann es sich z. B. um 3D Secure-Authentifizierung oder eine Weiterleitung für eine lokale Zahlungsmethode handeln. In diesem Fall müssen Sie diese Aktion durchführen. Bei Kartenzahlungen löst Stripe 3D Secure in folgenden Fällen möglicherweise automatisch aus: - Branchenrichtlinien verlangen es. - Der Aussteller fordert es an. - Der/die Verkäufer/in fordert es während der Nutzung des `SharedPaymentToken` zum Verarbeiten eines `PaymentIntent` an. - Es kommen bestimmte Stripe-Optimierungen zur Anwendung. Wenn Stripe 3D Secure auslöst, leitet Stripe die Kundin oder den Kunden zur Nutzeroberfläche der Bank weiter. Wenn das SPT in den Status `requires_action` wechselt, sendet Stripe den Webhook `shared_payment.issued_token.requires_action`. Rufen Sie das SPT auf Ihrem Server ab. ```curl curl https://api.stripe.com/v1/shared_payment/issued_tokens/spt_123 \ -u "<>:" ``` ``` { "id": "spt_123", "object": "shared_payment.issued_token", "status": "requires_action", "next_action": { "type": "use_stripe_sdk", "use_stripe_sdk": { "value": "ewogICJ0eXBlIjogInN0cmlwZV8zZHN 2X2ZpbmdlcnByaW50IiwKICAic291cmNlIjogInNyY18xQThYeUwyZVp2S1lsbzJDOXhROXpSNXQiLAogICJvbmVfY2xpY2tfYXV0aCI6IHRydWUKfQ==" } } ... } ``` Zeigen Sie auf Ihrem Client den nächsten Aktionsablauf an. Stripe zeigt die Nutzeroberfläche zur Authentifizierung automatisch in einem Popup-Modal an, wenn Sie `handleNextAction` aufrufen. #### JavaScript ```javascript const handleServerResponse = async (response) => { if (response.error) { // Show error from server on payment form } else if (response.status === "requires_action") { // Use Stripe.js to handle the required next action const result = await stripe.handleNextAction({ hashedValue: response.next_action.use_stripe_sdk.value }); const actionError = result && (result as any).error; if (actionError) { // Show error from Stripe.js in payment form } else { // Actions handled, show success message } } else { // No actions needed, show success message } } ``` Nachdem die Kundin oder der Kunde die erforderliche Aktion ausgeführt hat, sendet Stripe den Webhook `shared_payment.issued_token.active`, sofern Sie den `SharedPaymentToken` nicht zwischenzeitlich deaktiviert haben. ### Widerrufen Sie ein SPT Als Agent können Sie das SPT jederzeit widerrufen. Durch den Widerruf kann der/die Verkäufer/in es nicht zum Erstellen einer Zahlung verwenden. ```curl curl -X POST https://api.stripe.com/v1/shared_payment/issued_tokens/spt_123/revoke \ -u "<>:" ``` ### Webhook-Ereignisse überwachen Wir senden Ihnen und dem/der Verkäufer/in in folgenden Fällen Ereignisse: - Verkäufer/innen verwenden ein gewährtes SPT, um eine Zahlung zu akzeptieren. - Sie widerrufen ein SPT. Verkäufer/innen können mit einem widerrufenen SPT keine Zahlung erstellen. | Ereignis | Beschreibung | Anwendungsbereich | | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `shared_payment.issued_token.requires_action` | Das SPT erfordert zusätzliches kundenseitiges Handeln, bevor der/die Verkäufer/in die Zahlung abschließen kann. | Sie überwachen dieses Ereignis, um das SPT abzurufen, die `next_action` zu überprüfen und den erforderlichen Authentifizierungs- oder Weiterleitungsablauf auf der Agentenschnittstelle anzuzeigen. | | `shared_payment.issued_token.active` | Die Kundin oder der Kunde hat die erforderliche Aktion ausgeführt und das SPT seinen Weg durch den Zahlungsablauf fortsetzen. | Sie überwachen dieses Ereignis, um zu erfahren, dass das SPT nach Abschluss der erforderlichen Aktion wieder verwendet werden kann. | | `shared_payment.issued_token.used` | Sie erhalten dieses Ereignis, wenn der/die Verkäufer/in das SPT nutzt. | Sie überwachen dieses Ereignis, um die Kundin oder den Kunden darüber zu informieren, dass die Zahlung abgewickelt wurde. | | `shared_payment.issued_token.deactivated` | Der SPT wurde deaktiviert (widerrufen oder abgelaufen). | Sie überwachen dieses Ereignis, um nachzuverfolgen, wann ein SPT nicht mehr gültig ist. |