# Abonnement mit Stablecoin-Zahlungen einrichten
Erfahren Sie, wie Sie ein Abonnement für Stablecoins einrichten und abrechnen.
Verwenden Sie diesen Leitfaden, um ein *Abonnement* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis) einzurichten, das wiederkehrende *Stablecoin* (A cryptocurrency that's pegged to the value of a fiat currency or other asset in order to limit volatility)-Zahlungen aus der Krypto-Wallet eines Kunden/einer Kundin abhebt.
# Von Stripe gehostete Seite
> This is a Von Stripe gehostete Seite for when api-integration is checkout. View the full page at https://docs.stripe.com/billing/subscriptions/stablecoins?api-integration=checkout.
## Produkt und Preis erstellen [Dashboard]
[Produkte](https://docs.stripe.com/api/products.md) stehen für den von Ihnen angebotenen Artikel oder Dienst. [Preise](https://docs.stripe.com/api/prices.md) geben an, wie viel und wie häufig Sie für ein Produkt berechnen. Dies schließt ein, wie viel ein Produkt kostet, welche Währung Sie akzeptieren und ob es sich um eine einmalige oder eine wiederkehrende Zahlung handelt. Wenn Sie nur ein paar wenige Produkte und Preise haben, können Sie diese im Dashboard erstellen und verwalten.
In diesem Leitfaden wird ein Stock-Foto-Service als Beispiel verwendet, für den Kund/innen ein monatliches Abonnement mit dem Betrag von 15 USD berechnet werden. Um dies zu modellieren:
1. Gehen Sie zur Seite [Produkte](https://dashboard.stripe.com/products?active=true) und klicken Sie auf **Produkt erstellen**.
1. Geben Sie einen **Namen** für das Produkt an. Sie können optional eine **Beschreibung** hinzufügen und ein Bild des Produkts hochladen.
1. Wählen Sie einen **Produktsteuercode** aus. Erfahren Sie mehr über [Produktsteuercodes](https://docs.stripe.com/tax/tax-codes.md).
1. Wählen Sie **Wiederkehrend** aus. Geben Sie im Anschluss daran **15** für den Preis ein und wählen Sie **USD** als Währung aus.
1. Wählen Sie, ob die **Steuer im Preis berücksichtigt** werden soll. Sie können entweder den Standardwert aus Ihren [Steuereinstellungen](https://dashboard.stripe.com/test/settings/tax) verwenden oder den Wert manuell festlegen. Wählen Sie in diesem Beispiel **Auto** aus.
1. Wählen Sie **Monatlich** als **Abrechnungszeitraum** aus.
1. Klicken Sie auf **Weitere Preisoptionen**. Wählen Sie dann **Pauschalpreis** als Preismodell für dieses Beispiel aus. Erfahren Sie mehr über [Pauschalpreise](https://docs.stripe.com/products-prices/pricing-models.md#flat-rate) und andere [Preismodelle](https://docs.stripe.com/products-prices/pricing-models.md).
1. Fügen Sie eine interne **Preisbeschreibung** und einen [Lookup-Schlüssel](https://docs.stripe.com/products-prices/manage-prices.md#lookup-keys) hinzu, um bestimmte Preise in Zukunft zu organisieren, abzufragen und zu aktualisieren.
1. Klicken Sie auf **Weiter**. Klicken Sie dann auf **Produkt hinzufügen**.
Zeichnen Sie nach Erstellen des Produkts und des Preises die Preis-ID auf, sodass Sie diese in nachfolgenden Schritten verwenden können. Die ID wird auf der Preisseite angezeigt und sieht in etwa so aus: `price_G0FvDp6vZvdwRZ`.
## Checkout-Sitzung erstellen [Serverseitig]
Ihre Kundin / Ihr Kunde muss Sie autorisieren, ihre/seine Krypto-Wallet für zukünftige Zahlungen über Stripe zu verwenden.
Fügen Sie Ihrer Website eine Schaltfläche zum Bezahlen hinzu, über die ein serverseitiger Endpoint aufgerufen wird, um eine [Checkout-Sitzung](https://docs.stripe.com/api/checkout/sessions.md) zu erstellen.
```html
Checkout
```
Erstellen Sie eine Checkout-Sitzung im `subscription`-Modus, um die erforderlichen Informationen zu erfassen. Leiten Sie Ihre Kundinnen und Kunden nach dem Erstellen der Checkout-Sitzung an die in der Antwort zurückgegebene [URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) weiter.
```curl
curl https://api.stripe.com/v1/checkout/sessions \
-u "<>:" \
--data-urlencode "success_url=https://example.com/success" \
-d "line_items[0][price]={{RECURRING_PRICE_ID}}" \
-d "line_items[0][quantity]=1" \
-d "payment_method_types[0]=crypto" \
-d mode=subscription
```
## Bestätigen, dass die Zahlung erfolgreich durchgeführt wurde
Wenn Ihre Kund/innen ihre Zahlung erfolgreich abschließen, werden sie von Stripe an die URL weitergeleitet, die Sie im `success_url`-Parameter angegeben haben. Hierbei handelt es sich in der Regel um eine Seite auf Ihrer Website, auf der Ihre Kund/innen darüber informiert werden, dass ihre Zahlung erfolgreich durchgeführt wurde.
Nach erfolgreicher Zahlung wechselt der zugrunde liegende Status des *PaymentIntent* (The Payment Intents API tracks the lifecycle of a customer checkout flow and triggers additional authentication steps when required by regulatory mandates, custom Radar fraud rules, or redirect-based payment methods) von `wird verarbeitet` zu `erfolgreich`.
Sie können auf verschiedene Weise bestätigen, dass die Zahlung erfolgreich ist:
#### Dashboard
Erfolgreiche Zahlungen werden in der [Zahlungsliste](https://dashboard.stripe.com/payments) des Dashboards angezeigt. Wenn Sie auf eine Zahlung klicken, gelangen Sie zur Seite mit den Zahlungsdetails. Der Abschnitt **Checkout-Übersicht** enthält Abrechnungsinformationen und die Liste der gekauften Artikel, die Sie zur manuellen Ausführung der Bestellung verwenden können.

> Durch Senden von E-Mail-Benachrichtigungen über erfolgreich abgeschlossene Kundenzahlungen kann Stripe Ihnen helfen, den Überblick über eingehende Zahlungen zu behalten. Im Dashboard können Sie Ihre [E-Mail-Benachrichtigungen konfigurieren](https://dashboard.stripe.com/settings/user).
#### Webhooks
Wir senden die folgenden Checkout-Ereignisse, wenn sich der Zahlungsstatus ändert:
| Ereignisname | Beschreibung | Nächste Schritte |
| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| [checkout.session.completed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.completed) | Der Kunde/die Kundin hat die Zahlung nach der Übermittlung des Checkout-Formulars erfolgreich autorisiert. | Warten Sie, bis die Zahlung erfolgt ist oder fehlschlägt. |
| [invoice.paid](https://docs.stripe.com/api/events/types.md#event_types-invoice.paid) | Die Kundenzahlung war erfolgreich. | Wickeln Sie die Kundenbestellung ab. |
| [invoice.payment_failed](https://docs.stripe.com/api/events/types.md#event_types-invoice.payment_failed) | Die Zahlung wurde abgelehnt oder ist aus einem anderen Grund fehlgeschlagen. | Senden Sie der Kundin/dem Kunden eine E-Mail und bitten Sie sie/ihn, die Zahlung erneut zu versuchen. |
Ihr Webhook-Code muss alle diese Checkout-Ereignisse verarbeiten können.
Jede Webhook-Nutzlast in Checkout beinhaltet das [Session-Objekt von Checkout](https://docs.stripe.com/api/checkout/sessions.md) und Rechnungs-Webhooks enthalten das [Invoice](https://docs.stripe.com/api/invoices/object.md)-Objekt. Beide enthalten Informationen über die *Kunden/Kundinnen* (Customer objects represent customers of your business. They let you reuse payment methods and give you the ability to track multiple payments) und den *PaymentIntent* (The Payment Intents API tracks the lifecycle of a customer checkout flow and triggers additional authentication steps when required by regulatory mandates, custom Radar fraud rules, or redirect-based payment methods).
Stripe sendet den Webhook `checkout.session.completed` an Ihren Server, bevor Ihre Kund/innen weitergeleitet werden. Ihre Annahme des Webhooks (ein beliebiger `2xx`-Statuscode) löst die Weiterleitung der Kund/innen an die `success_url` aus. Wenn Stripe innerhalb von 10 Sekunden nach erfolgreicher Zahlung keine volle Empfangsbestätigung erhält, werden Ihre Kund/innen automatisch zur `success_url`-Seite weitergeleitet.
Wir empfehlen die [Verwendung von Webhooks](https://docs.stripe.com/webhooks.md), um den Erfolg der Zahlung zu bestätigen und die gekauften Waren zu versenden bzw. Dienstleistungen zu erbringen. Nachfolgend finden Sie ein Beispiel für einen Webhook-Endpoint, der den Erfolg oder Misserfolg einer Zahlung handhabt:
#### Ruby
```ruby
# Don't put any keys in code. See https://docs.stripe.com/keys-best-practices.
# Find your keys at https://dashboard.stripe.com/apikeys.
client = Stripe::StripeClient.new('<>')
# You can find your endpoint's secret in your webhook settings
endpoint_secret = 'whsec_...'
# Using Sinatra
post '/webhook' do
payload = request.body.read
event = nil
# Verify webhook signature and extract the event
# See https://stripe.com/docs/webhooks#verify-events for more information.
sig_header = request.env['HTTP_STRIPE_SIGNATURE']
begin
event = Stripe::Webhook.construct_event(
payload, sig_header, endpoint_secret
)
rescue JSON::ParserError => e
# Invalid payload
status 400
return
rescue Stripe::SignatureVerificationError => e
# Invalid signature
status 400
return
end
case event['type']
when 'checkout.session.completed'
session = event['data']['object']
subscription_id = session.subscription
# Find the subscription or save it to your database.
# invoice.paid may have fired before this so there
# could already be a subscription.
find_or_create_subscription(subscription_id)
when 'invoice.paid'
invoice = event['data']['object']
subscription_id = invoice.parent.subscription_details.subscription
# Find the subscription or save it to your database.
# checkout.session.completed may not have fired yet
# so we may need to create the subscription.
subscription = find_or_create_subscription(subscription_id)
# Fulfill the purchase
fulfill_order(invoice)
# Record that the subscription has been paid for
# this payment period. invoice.paid will fire every
# time there is a payment made for this subscription.
record_as_paid_for_this_period(subscription)
when 'invoice.payment_failed'
invoice = event['data']['object']
# Send an email to the customer asking them to retry their payment
email_customer_about_failed_payment(invoice)
end
status 200
end
```
Sie können Informationen über die Kund/innen, Zahlungen oder Abonnements abrufen, indem Sie die `Kunden`-, `PaymentIntent`- oder `Abo`-Objekte abrufen, auf die von den Eigenschaften `Kunde/Kundin`, `payment_intent` und `Abo` in der Webhook-Nutzlast verwiesen wird.
### Posten aus einem Webhook abrufen
Checkout-Webhooks geben standardmäßig keine `line_items` zurück. Um die mit der Checkout-Sitzung erstellten Posten abzurufen, führen Sie eine zusätzliche Anfrage mit der ID der Checkout-Sitzung durch:
#### curl
```bash
curl https://api.stripe.com/v1/checkout/sessions/{{CHECKOUT_SESSION_ID}}/line_items \
-u <>:
```
#### Stripe-CLI
```bash
stripe get /v1/checkout/sessions/{{CHECKOUT_SESSION_ID}}/line_items
```
### Webhooks lokal testen
Verwenden Sie die [Stripe-CLI](https://docs.stripe.com/stripe-cli.md), um Webhooks lokal zu testen. Nach der Installation können Sie Ereignisse an Ihren Server weiterleiten:
```bash
stripe listen --forward-to localhost:4242/webhook
Ready! Your webhook signing secret is '{{WEBHOOK_SIGNING_SECRET}}' (^C to quit)
```
Erfahren Sie mehr über die [Einrichtung von Webhooks](https://docs.stripe.com/webhooks.md).
#### Drittanbieter-Plugins
Sie können Plugins wie [[Zapier]](https://stripe.com/works-with/zapier) verwenden, um Ihre Systeme für die Bestellausführung automatisch mit Informationen aus Stripe-Zahlungen zu aktualisieren.
Nachfolgend finden Sie einige Beispiele für unterstützte Automatisierungen mithilfe von Plugins:
- Aktualisieren der zur Bestellungsverfolgung verwendeten Tabellen nach einer erfolgreichen Zahlung
- Aktualisieren der Bestandsverwaltungssysteme nach einer erfolgreichen Zahlung
- Auslösen von Benachrichtigungen an interne Kundenservice-Teams mittels E-Mail oder Chat
## Testen Sie Ihre Integration.
Testen Sie die Integration Ihrer Kryptozahlung, indem Sie die Weiterleitungsseite der Zahlung mit Ihren Test-API-Schlüsseln öffnen. Sie können einen erfolgreichen Zahlungsablauf kostenlos mit [Testnet-Assets](https://docs.stripe.com/billing/subscriptions/stablecoins.md#testnet-assets) testen.
1. Erstellen Sie in einer *Sandbox* eine neue Transaktion mit der von Ihnen gewählten Integrationsmethode und öffnen Sie die entsprechende Weiterleitungs-URL.
1. Verbinden Sie Ihre bevorzugte Wallet und Ihr bevorzugtes Zahlungsnetzwerk.
1. Schließen Sie die Zahlung ab und bestätigen Sie, dass Sie an die erwartete URL weitergeleitet werden.
### Zahlungen mit Testnet-Assets testen
Die meisten Kryptowährungen bieten Testnet-Assets oder -Token ohne Geldwert an, die Sie zum Testen von Blockchain-Transaktionen verwenden können. Stripe empfiehlt die MetaMask-Wallet, das Polygon Amoy Testnet und den Circle-Faucet zum Testen, aber Sie können Ihre eigenen bevorzugten Dienste verwenden.
#### Wallet installieren
1. [Laden Sie die MetaMask-Erweiterung](https://metamask.io/download) für Ihren Webbrowser herunter.
1. [Erstellen Sie eine neue Wallet](https://support.metamask.io/start/creating-a-new-wallet/) oder [importieren Sie eine bestehende](https://support.metamask.io/start/use-an-existing-wallet/).
#### Testnet aktivieren
1. Wählen Sie in Ihrer MetaMask-Wallet im Hauptmenü **Netzwerke** aus.
1. Klicken Sie auf **Benutzerdefiniertes Netzwerk hinzufügen**.
1. Geben Sie die folgenden Details ein:
- **Netzwerkname**: `Amoy`
- **Standard-RPC-URL**: `https://rpc-amoy.polygon.technology/`
- **Ketten-ID**: `80002`
- **Währungssymbol**: `POL`
- **Explorer-URL blockieren**: `https://amoy.polygonscan.com/`
1. Klicken Sie auf **Speichern**.
#### Token importieren
1. Wählen Sie in Ihrer MetaMask-Wallet unter **Token** die Option **Amoy** aus dem Netzwerk-Dropdown-Menü aus.
1. Klicken Sie auf das Überlaufmenü (⋯) und wählen Sie **Token importieren** aus.
1. Klicken Sie auf **Netzwerk auswählen** > **Amoy**.
1. Fügen Sie unter **Token Vertragsadresse** die Testnet-Vertragsadresse für Polygon Amoy ein:
```
0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582
```
Das Feld **Tokensymbol** wird automatisch mit `USDC` und das Feld **Dezimalstellen** mit `6` aktualisiert.
1. Klicken Sie auf **Weiter**.
1. Verifizieren Sie, dass Sie den `USDC`-Token importieren, und klicken Sie dann auf **Importieren**.
Ihre MetaMask-Wallet zeigt jetzt **POL** und **USDC** in der Tokenliste an.
Beim Testen von Rückerstattungen kann es vorkommen, dass der an Ihre Wallet gesendete Token einen anderen Vertrag hat als derjenige, der für die Zahlung verwendet wurde. Wir empfehlen Ihnen, den [transaction_hash](https://docs.stripe.com/api/refunds/object.md?rds=1#refund_object-destination_details-crypto-reference) Ihrer Rückerstattung im Block Explorer zu überprüfen und den Vertrag dieses Tokens zu Ihrer Wallet hinzuzufügen. Beispielsweise könnte für Sepolia ETH-USDC-Rückerstattungen die Token-Vertragsadresse `0x58277ebcabbe2a6694fbca8daf9e23163dbacf3e` angezeigt werden.
#### Testnet-Assets abrufen
> Um einige Testnet-Faucets zu verwenden, müssen Sie möglicherweise eine kleine Menge an Mainnet-Token halten.
1. Öffnen Sie [faucet.circle.com](https://faucet.circle.com/)
1. Klicken Sie auf **USDC**.
1. Wählen Sie unter **Netzwerk** **Polygon POS Amoy** aus.
1. Fügen Sie unter **Senden an** Ihre Wallet Adresse ein.
1. Klicken Sie auf **20 USDC senden**.
Zusätzlich zu USDC für Zahlungen benötigen Sie POL, um Transaktionskosten zu bezahlen:
1. Öffnen Sie [faucet.polygon.technology](https://faucet.polygon.technology/).
1. Wählen Sie unter **Kette und Token auswählen** **Polygon Amoy** und **POL** aus.
1. Klicken Sie unter **Ihre Identität verifizieren** auf die Drittanbieterplattform, bei der Sie sich authentifizieren möchten, und schließen Sie den Anmeldeprozess ab.
1. Fügen Sie unter **Wallet-Adresse eingeben** Ihre Wallet-Adresse ein.
1. Klicken Sie auf **Anspruch**.
Die Durchführung von Testnet-Transaktionen kann einige Minuten dauern. Überprüfen Sie Ihre Wallet, um zu bestätigen, dass die Überweisungen von USDC und POL durchgeführt wurden.
### Weitere Testnet-Faucets
Weitere Optionen zum Testen von Token finden Sie in diesen Faucet-Diensten:
- [Paxos USDP](https://faucet.paxos.com/)
- [Devnet SOL](https://faucet.solana.com/)
- [Sepolia ETH](https://faucets.chain.link/sepolia)
- [Amoy POL](https://faucet.polygon.technology/)
# Payment Intents API
> This is a Payment Intents API for when api-integration is paymentintents. View the full page at https://docs.stripe.com/billing/subscriptions/stablecoins?api-integration=paymentintents.
## Produkt und Preis erstellen [Dashboard]
[Produkte](https://docs.stripe.com/api/products.md) stehen für den von Ihnen angebotenen Artikel oder Dienst. [Preise](https://docs.stripe.com/api/prices.md) geben an, wie viel und wie häufig Sie für ein Produkt berechnen. Dies schließt ein, wie viel ein Produkt kostet, welche Währung Sie akzeptieren und ob es sich um eine einmalige oder eine wiederkehrende Zahlung handelt. Wenn Sie nur ein paar wenige Produkte und Preise haben, können Sie diese im Dashboard erstellen und verwalten.
In diesem Leitfaden wird ein Stock-Foto-Service als Beispiel verwendet, für den Kund/innen ein monatliches Abonnement mit dem Betrag von 15 USDC berechnet werden. Um dies zu modellieren:
1. Gehen Sie zur Seite [Produkte](https://dashboard.stripe.com/products?active=true) und klicken Sie auf **Produkt erstellen**.
1. Geben Sie einen **Namen** für das Produkt an. Sie können optional eine **Beschreibung** hinzufügen und ein Bild des Produkts hochladen.
1. Wählen Sie einen **Produktsteuercode** aus. Erfahren Sie mehr über [Produktsteuercodes](https://docs.stripe.com/tax/tax-codes.md).
1. Wählen Sie **Wiederkehrend** aus. Geben Sie im Anschluss daran **15** für den Preis ein und wählen Sie **USDC** als Währung aus.
1. Wählen Sie, ob die **Steuer im Preis berücksichtigt** werden soll. Sie können entweder den Standardwert aus Ihren [Steuereinstellungen](https://dashboard.stripe.com/test/settings/tax) verwenden oder den Wert manuell festlegen. Wählen Sie in diesem Beispiel **Auto** aus.
1. Wählen Sie **Monatlich** als **Abrechnungszeitraum** aus.
1. Klicken Sie auf **Weitere Preisoptionen**. Wählen Sie dann **Pauschalpreis** als Preismodell für dieses Beispiel aus. Erfahren Sie mehr über [Pauschalpreise](https://docs.stripe.com/products-prices/pricing-models.md#flat-rate) und andere [Preismodelle](https://docs.stripe.com/products-prices/pricing-models.md).
1. Fügen Sie eine interne **Preisbeschreibung** und einen [Lookup-Schlüssel](https://docs.stripe.com/products-prices/manage-prices.md#lookup-keys) hinzu, um bestimmte Preise in Zukunft zu organisieren, abzufragen und zu aktualisieren.
1. Klicken Sie auf **Weiter**. Klicken Sie dann auf **Produkt hinzufügen**.
Zeichnen Sie nach Erstellen des Produkts und des Preises die Preis-ID auf, sodass Sie diese in nachfolgenden Schritten verwenden können. Die ID wird auf der Preisseite angezeigt und sieht in etwa so aus: `price_G0FvDp6vZvdwRZ`.
## Abo erstellen [Serverseitig]
Erstellen Sie ein Abonnement mit einem Preis und einer Kundin / einem Kunden. Setzen Sie den Wert [payment_behavior](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-payment_behavior) auf `default_incomplete`, damit der Abonnementstatus `incomplete` bleibt, bis der/die Nutzer/in die Zahlung abgeschlossen hat. Legen Sie den Parameter `payment_settings.save_default_payment_method` auf `on_subscription` fest, um die Zahlungsmethode zu speichern, sobald das Abonnement aktiviert wurde.
```curl
curl https://api.stripe.com/v1/subscriptions \
-u "<>:" \
-d customer={{CUSTOMER_ID}} \
-d payment_behavior=default_incomplete \
-d "items[0][price]={{PRICE_ID}}" \
-d "payment_settings[save_default_payment_method]=on_subscription" \
-d "payment_settings[payment_method_types][0]=crypto" \
-d "expand[0]=latest_invoice.payments" \
-d "expand[1]=latest_invoice.confirmation_secret"
```
Die API-Antwort enthält die erste [Rechnung](https://docs.stripe.com/api/invoices.md) des Abonnements. Verwenden Sie die enthaltene PaymentIntent-ID in `latest_invoice.payments`, um das Abonnement im nächsten Schritt zu bestätigen.
## Erstellen Sie ein PaymentIntent [Serverseitig]
Rufen Sie die [Payment Intents API](https://docs.stripe.com/api/payment_intents.md) auf, um die Zahlung zu veranlassen. Legen Sie den Wert von `payment_intents_id` auf die PaymentIntents-ID fest, die im vorherigen Schritt von der Subscriptions API zurückgegeben wurde. Legen Sie den Wert des Parameters `payment_method_types` auf `crypto` fest:
```curl
curl https://api.stripe.com/v1/payment_intents/:id/confirm \
-u "<>:" \
-d "payment_method_data[type]=crypto" \
--data-urlencode "return_url=https://www.example.com" \
-d "mandate_data[customer_acceptance][type]=online" \
-d "mandate_data[customer_acceptance][online][ip_address]=127.0.0.0" \
-d "mandate_data[customer_acceptance][online][user_agent]=device" \
-d "mandate_data[customer_acceptance][accepted_at]=1660000000"
```
Das API-Antwortobjekt enthält den Status `requires_action` und eine Weiterleitungs-URL in [next_action.redirect_to_url.url](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-next_action-redirect_to_url-url). Leiten Sie die Kundschaft an diese URL weiter, um die Einrichtung der Abonnementzahlung abzuschließen. Nachdem sie den Zahlungsablauf abgeschlossen haben, werden sie an die von Ihnen angegebene [return_url](https://docs.stripe.com/api/payment_intents/create.md#create_setup_intent-return_url) zurückgeleitet.
## Ereignisse nach der Zahlung verarbeiten
Stripe übermittelt ein [payment_intent.succeeded](https://docs.stripe.com/api/events/types.md#event_types-payment_intent.succeeded)-Ereignis, wenn die Zahlung abgeschlossen ist. Verwenden Sie im Dashboard einen *Webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) oder eine Partnerlösung, um diese Ereignisse zu empfangen und Aktionen auszuführen (Versenden einer Bestellbestätigung per E-Mail an die Kund/innen, Erfassen des Verkaufs in einer Datenbank oder Einleiten des Versandablaufs).
Überwachen Sie diese Ereignisse, statt auf einen Callback vom Client zu warten. Auf dem Client könnte der Kunde/die Kundin das Browserfenster schließen oder die App beenden, bevor der Callback erfolgt ist und böswillige Clients könnten die Antwort manipulieren. Wenn Sie Ihre Integration so einrichten, dass asynchrone Ereignisse überwacht werden, hilft Ihnen dies auch dabei, in Zukunft mehr Zahlungsmethoden zu akzeptieren. Hier erhalten Sie Informationen zu den [Unterschieden zwischen allen unterstützten Zahlungsmethoden](https://stripe.com/payments/payment-methods-guide).
- **Manuelles Bearbeiten von Ereignissen im Dashboard**
Verwenden Sie das Dashboard, um [Ihre Testzahlungen im Dashboard anzuzeigen](https://dashboard.stripe.com/test/payments), E-Mail-Belege zu senden, Auszahlungen zu bearbeiten oder fehlgeschlagene Zahlungen erneut zu versuchen.
- **Erstellen eines benutzerdefinierten Webhooks**
[Build a custom webhook](https://docs.stripe.com/webhooks/handling-payment-events.md#build-your-own-webhook) handler to listen for events and build custom asynchronous payment flows. Test and debug your webhook integration locally with the Stripe CLI.
- **Integrieren einer vorgefertigten App**
Bearbeiten Sie häufige Unternehmensereignisse, wie z. B.[Automatisierung](https://stripe.partners/?f_category=automation) oder[Marketing und Vertrieb](https://stripe.partners/?f_category=marketing-and-sales), indem Sie eine Partneranwendung integrieren.
## Testen Sie Ihre Integration.
Testen Sie die Integration Ihrer Kryptozahlung, indem Sie die Weiterleitungsseite der Zahlung mit Ihren Test-API-Schlüsseln öffnen. Sie können einen erfolgreichen Zahlungsablauf kostenlos mit [Testnet-Assets](https://docs.stripe.com/billing/subscriptions/stablecoins.md#testnet-assets) testen.
1. Erstellen Sie in einer *Sandbox* eine neue Transaktion mit der von Ihnen gewählten Integrationsmethode und öffnen Sie die entsprechende Weiterleitungs-URL.
1. Verbinden Sie Ihre bevorzugte Wallet und Ihr bevorzugtes Zahlungsnetzwerk.
1. Schließen Sie die Zahlung ab und bestätigen Sie, dass Sie an die erwartete URL weitergeleitet werden.
### Zahlungen mit Testnet-Assets testen
Die meisten Kryptowährungen bieten Testnet-Assets oder -Token ohne Geldwert an, die Sie zum Testen von Blockchain-Transaktionen verwenden können. Stripe empfiehlt die MetaMask-Wallet, das Polygon Amoy Testnet und den Circle-Faucet zum Testen, aber Sie können Ihre eigenen bevorzugten Dienste verwenden.
#### Wallet installieren
1. [Laden Sie die MetaMask-Erweiterung](https://metamask.io/download) für Ihren Webbrowser herunter.
1. [Erstellen Sie eine neue Wallet](https://support.metamask.io/start/creating-a-new-wallet/) oder [importieren Sie eine bestehende](https://support.metamask.io/start/use-an-existing-wallet/).
#### Testnet aktivieren
1. Wählen Sie in Ihrer MetaMask-Wallet im Hauptmenü **Netzwerke** aus.
1. Klicken Sie auf **Benutzerdefiniertes Netzwerk hinzufügen**.
1. Geben Sie die folgenden Details ein:
- **Netzwerkname**: `Amoy`
- **Standard-RPC-URL**: `https://rpc-amoy.polygon.technology/`
- **Ketten-ID**: `80002`
- **Währungssymbol**: `POL`
- **Explorer-URL blockieren**: `https://amoy.polygonscan.com/`
1. Klicken Sie auf **Speichern**.
#### Token importieren
1. Wählen Sie in Ihrer MetaMask-Wallet unter **Token** die Option **Amoy** aus dem Netzwerk-Dropdown-Menü aus.
1. Klicken Sie auf das Überlaufmenü (⋯) und wählen Sie **Token importieren** aus.
1. Klicken Sie auf **Netzwerk auswählen** > **Amoy**.
1. Fügen Sie unter **Token Vertragsadresse** die Testnet-Vertragsadresse für Polygon Amoy ein:
```
0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582
```
Das Feld **Tokensymbol** wird automatisch mit `USDC` und das Feld **Dezimalstellen** mit `6` aktualisiert.
1. Klicken Sie auf **Weiter**.
1. Verifizieren Sie, dass Sie den `USDC`-Token importieren, und klicken Sie dann auf **Importieren**.
Ihre MetaMask-Wallet zeigt jetzt **POL** und **USDC** in der Tokenliste an.
Beim Testen von Rückerstattungen kann es vorkommen, dass der an Ihre Wallet gesendete Token einen anderen Vertrag hat als derjenige, der für die Zahlung verwendet wurde. Wir empfehlen Ihnen, den [transaction_hash](https://docs.stripe.com/api/refunds/object.md?rds=1#refund_object-destination_details-crypto-reference) Ihrer Rückerstattung im Block Explorer zu überprüfen und den Vertrag dieses Tokens zu Ihrer Wallet hinzuzufügen. Beispielsweise könnte für Sepolia ETH-USDC-Rückerstattungen die Token-Vertragsadresse `0x58277ebcabbe2a6694fbca8daf9e23163dbacf3e` angezeigt werden.
#### Testnet-Assets abrufen
> Um einige Testnet-Faucets zu verwenden, müssen Sie möglicherweise eine kleine Menge an Mainnet-Token halten.
1. Öffnen Sie [faucet.circle.com](https://faucet.circle.com/)
1. Klicken Sie auf **USDC**.
1. Wählen Sie unter **Netzwerk** **Polygon POS Amoy** aus.
1. Fügen Sie unter **Senden an** Ihre Wallet Adresse ein.
1. Klicken Sie auf **20 USDC senden**.
Zusätzlich zu USDC für Zahlungen benötigen Sie POL, um Transaktionskosten zu bezahlen:
1. Öffnen Sie [faucet.polygon.technology](https://faucet.polygon.technology/).
1. Wählen Sie unter **Kette und Token auswählen** **Polygon Amoy** und **POL** aus.
1. Klicken Sie unter **Ihre Identität verifizieren** auf die Drittanbieterplattform, bei der Sie sich authentifizieren möchten, und schließen Sie den Anmeldeprozess ab.
1. Fügen Sie unter **Wallet-Adresse eingeben** Ihre Wallet-Adresse ein.
1. Klicken Sie auf **Anspruch**.
Die Durchführung von Testnet-Transaktionen kann einige Minuten dauern. Überprüfen Sie Ihre Wallet, um zu bestätigen, dass die Überweisungen von USDC und POL durchgeführt wurden.
### Weitere Testnet-Faucets
Weitere Optionen zum Testen von Token finden Sie in diesen Faucet-Diensten:
- [Paxos USDP](https://faucet.paxos.com/)
- [Devnet SOL](https://faucet.solana.com/)
- [Sepolia ETH](https://faucets.chain.link/sepolia)
- [Amoy POL](https://faucet.polygon.technology/)
# Setup Intents API
> This is a Setup Intents API for when api-integration is setupintents. View the full page at https://docs.stripe.com/billing/subscriptions/stablecoins?api-integration=setupintents.
## Produkt und Preis erstellen [Dashboard]
[Produkte](https://docs.stripe.com/api/products.md) stehen für den von Ihnen angebotenen Artikel oder Dienst. [Preise](https://docs.stripe.com/api/prices.md) geben an, wie viel und wie häufig Sie für ein Produkt berechnen. Dies schließt ein, wie viel ein Produkt kostet, welche Währung Sie akzeptieren und ob es sich um eine einmalige oder eine wiederkehrende Zahlung handelt. Wenn Sie nur ein paar wenige Produkte und Preise haben, können Sie diese im Dashboard erstellen und verwalten.
In diesem Leitfaden wird ein Stock-Foto-Service als Beispiel verwendet, für den Kund/innen ein monatliches Abonnement mit dem Betrag von 15 USD berechnet werden. Um dies zu modellieren:
1. Gehen Sie zur Seite [Produkte](https://dashboard.stripe.com/products?active=true) und klicken Sie auf **Produkt erstellen**.
1. Geben Sie einen **Namen** für das Produkt an. Sie können optional eine **Beschreibung** hinzufügen und ein Bild des Produkts hochladen.
1. Wählen Sie einen **Produktsteuercode** aus. Erfahren Sie mehr über [Produktsteuercodes](https://docs.stripe.com/tax/tax-codes.md).
1. Wählen Sie **Wiederkehrend** aus. Geben Sie im Anschluss daran **15** für den Preis ein und wählen Sie **USD** als Währung aus.
1. Wählen Sie, ob die **Steuer im Preis berücksichtigt** werden soll. Sie können entweder den Standardwert aus Ihren [Steuereinstellungen](https://dashboard.stripe.com/test/settings/tax) verwenden oder den Wert manuell festlegen. Wählen Sie in diesem Beispiel **Auto** aus.
1. Wählen Sie **Monatlich** als **Abrechnungszeitraum** aus.
1. Klicken Sie auf **Weitere Preisoptionen**. Wählen Sie dann **Pauschalpreis** als Preismodell für dieses Beispiel aus. Erfahren Sie mehr über [Pauschalpreise](https://docs.stripe.com/products-prices/pricing-models.md#flat-rate) und andere [Preismodelle](https://docs.stripe.com/products-prices/pricing-models.md).
1. Fügen Sie eine interne **Preisbeschreibung** und einen [Lookup-Schlüssel](https://docs.stripe.com/products-prices/manage-prices.md#lookup-keys) hinzu, um bestimmte Preise in Zukunft zu organisieren, abzufragen und zu aktualisieren.
1. Klicken Sie auf **Weiter**. Klicken Sie dann auf **Produkt hinzufügen**.
Zeichnen Sie nach Erstellen des Produkts und des Preises die Preis-ID auf, sodass Sie diese in nachfolgenden Schritten verwenden können. Die ID wird auf der Preisseite angezeigt und sieht in etwa so aus: `price_G0FvDp6vZvdwRZ`.
## SetupIntent erstellen [Serverseitig]
Erstellen Sie einen [SetupIntent](https://docs.stripe.com/api/setup_intents.md), um die kundenseitige Zahlungsmethode für spätere Zahlungen zu speichern. Der SetupIntent dokumentiert die Schritte dieses Einrichtungsvorgangs.
Erstellen Sie einen SetupIntent auf Ihrem Server, wobei der Wert [payment_method_types](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-payment_method_types) auf `crypto` festgelegt ist, und geben Sie die ID des Kunden/der Kundin sowie die [usage=off_session](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-usage) an.
```curl
curl https://api.stripe.com/v1/setup_intents \
-u "<>:" \
-d confirm=true \
--data-urlencode "return_url=https://www.example.com" \
-d usage=off_session \
-d customer=cus_00000000000000 \
-d "payment_method_data[type]=crypto" \
-d "payment_method_types[]=crypto" \
-d "mandate_data[customer_acceptance][type]=online" \
-d "mandate_data[customer_acceptance][online][ip_address]=127.0.0.0" \
-d "mandate_data[customer_acceptance][online][user_agent]=device"
```
Das API-Antwortobjekt enthält eine [payment_method](https://docs.stripe.com/api/setup_intents/object.md#setup_intent_object-payment_method)-ID und eine Weiterleitungs-URL in [next_action.redirect_to_url.url](https://docs.stripe.com/api/setup_intents/object.md#setup_intent_object-next_action-redirect_to_url-url). Leiten Sie die Kundin oder den Kunden an diese URL weiter, um die Einrichtung der Abonnementzahlung abzuschließen. Nachdem sie den Zahlungsablauf abgeschlossen haben, werden sie an die als Ihre [return_url](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-return_url) angegebene URL zurückgeleitet.
## Abo erstellen [Serverseitig]
Erstellen Sie ein Abonnement mit einem Preis und einer Kundin/einem Kunden. Legen Sie den Wert des Parameters `default_payment_method` auf die `payment_method`-ID aus der SetupIntent-Antwort fest.
```curl
curl https://api.stripe.com/v1/subscriptions \
-u "<>:" \
-d customer={{CUSTOMER_ID}} \
-d "items[0][price]={{PRICE_ID}}" \
-d default_payment_method={{PAYMENT_METHOD_ID}} \
-d off_session=true
```
Wenn Sie Abonnements erstellen, werden Kundinnen und Kunden ausstehende Zahlungen automatisch über deren voreingestellte Standardzahlungsmethode berechnet. War eine Zahlung erfolgreich, so ändert sich der Status im Stripe-Dashboard in **Aktiv**. Der Preis, den Sie zuvor festgelegt haben, bestimmt den Betrag für zukünftige Abrechnungen.
## Ereignisse nach der Zahlung verarbeiten
Stripe übermittelt ein [payment_intent.succeeded](https://docs.stripe.com/api/events/types.md#event_types-payment_intent.succeeded)-Ereignis, wenn die Zahlung abgeschlossen ist. Verwenden Sie im Dashboard einen *Webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) oder eine Partnerlösung, um diese Ereignisse zu empfangen und Aktionen auszuführen (Versenden einer Bestellbestätigung per E-Mail an die Kund/innen, Erfassen des Verkaufs in einer Datenbank oder Einleiten des Versandablaufs).
Überwachen Sie diese Ereignisse, statt auf einen Callback vom Client zu warten. Auf dem Client könnte der Kunde/die Kundin das Browserfenster schließen oder die App beenden, bevor der Callback erfolgt ist und böswillige Clients könnten die Antwort manipulieren. Wenn Sie Ihre Integration so einrichten, dass asynchrone Ereignisse überwacht werden, hilft Ihnen dies auch dabei, in Zukunft mehr Zahlungsmethoden zu akzeptieren. Hier erhalten Sie Informationen zu den [Unterschieden zwischen allen unterstützten Zahlungsmethoden](https://stripe.com/payments/payment-methods-guide).
- **Manuelles Bearbeiten von Ereignissen im Dashboard**
Verwenden Sie das Dashboard, um [Ihre Testzahlungen im Dashboard anzuzeigen](https://dashboard.stripe.com/test/payments), E-Mail-Belege zu senden, Auszahlungen zu bearbeiten oder fehlgeschlagene Zahlungen erneut zu versuchen.
- **Erstellen eines benutzerdefinierten Webhooks**
[Build a custom webhook](https://docs.stripe.com/webhooks/handling-payment-events.md#build-your-own-webhook) handler to listen for events and build custom asynchronous payment flows. Test and debug your webhook integration locally with the Stripe CLI.
- **Integrieren einer vorgefertigten App**
Bearbeiten Sie häufige Unternehmensereignisse, wie z. B.[Automatisierung](https://stripe.partners/?f_category=automation) oder[Marketing und Vertrieb](https://stripe.partners/?f_category=marketing-and-sales), indem Sie eine Partneranwendung integrieren.
## Testen Sie Ihre Integration.
Testen Sie die Integration Ihrer Kryptozahlung, indem Sie die Weiterleitungsseite der Zahlung mit Ihren Test-API-Schlüsseln öffnen. Sie können einen erfolgreichen Zahlungsablauf kostenlos mit [Testnet-Assets](https://docs.stripe.com/billing/subscriptions/stablecoins.md#testnet-assets) testen.
1. Erstellen Sie in einer *Sandbox* eine neue Transaktion mit der von Ihnen gewählten Integrationsmethode und öffnen Sie die entsprechende Weiterleitungs-URL.
1. Verbinden Sie Ihre bevorzugte Wallet und Ihr bevorzugtes Zahlungsnetzwerk.
1. Schließen Sie die Zahlung ab und bestätigen Sie, dass Sie an die erwartete URL weitergeleitet werden.
### Zahlungen mit Testnet-Assets testen
Die meisten Kryptowährungen bieten Testnet-Assets oder -Token ohne Geldwert an, die Sie zum Testen von Blockchain-Transaktionen verwenden können. Stripe empfiehlt die MetaMask-Wallet, das Polygon Amoy Testnet und den Circle-Faucet zum Testen, aber Sie können Ihre eigenen bevorzugten Dienste verwenden.
#### Wallet installieren
1. [Laden Sie die MetaMask-Erweiterung](https://metamask.io/download) für Ihren Webbrowser herunter.
1. [Erstellen Sie eine neue Wallet](https://support.metamask.io/start/creating-a-new-wallet/) oder [importieren Sie eine bestehende](https://support.metamask.io/start/use-an-existing-wallet/).
#### Testnet aktivieren
1. Wählen Sie in Ihrer MetaMask-Wallet im Hauptmenü **Netzwerke** aus.
1. Klicken Sie auf **Benutzerdefiniertes Netzwerk hinzufügen**.
1. Geben Sie die folgenden Details ein:
- **Netzwerkname**: `Amoy`
- **Standard-RPC-URL**: `https://rpc-amoy.polygon.technology/`
- **Ketten-ID**: `80002`
- **Währungssymbol**: `POL`
- **Explorer-URL blockieren**: `https://amoy.polygonscan.com/`
1. Klicken Sie auf **Speichern**.
#### Token importieren
1. Wählen Sie in Ihrer MetaMask-Wallet unter **Token** die Option **Amoy** aus dem Netzwerk-Dropdown-Menü aus.
1. Klicken Sie auf das Überlaufmenü (⋯) und wählen Sie **Token importieren** aus.
1. Klicken Sie auf **Netzwerk auswählen** > **Amoy**.
1. Fügen Sie unter **Token Vertragsadresse** die Testnet-Vertragsadresse für Polygon Amoy ein:
```
0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582
```
Das Feld **Tokensymbol** wird automatisch mit `USDC` und das Feld **Dezimalstellen** mit `6` aktualisiert.
1. Klicken Sie auf **Weiter**.
1. Verifizieren Sie, dass Sie den `USDC`-Token importieren, und klicken Sie dann auf **Importieren**.
Ihre MetaMask-Wallet zeigt jetzt **POL** und **USDC** in der Tokenliste an.
Beim Testen von Rückerstattungen kann es vorkommen, dass der an Ihre Wallet gesendete Token einen anderen Vertrag hat als derjenige, der für die Zahlung verwendet wurde. Wir empfehlen Ihnen, den [transaction_hash](https://docs.stripe.com/api/refunds/object.md?rds=1#refund_object-destination_details-crypto-reference) Ihrer Rückerstattung im Block Explorer zu überprüfen und den Vertrag dieses Tokens zu Ihrer Wallet hinzuzufügen. Beispielsweise könnte für Sepolia ETH-USDC-Rückerstattungen die Token-Vertragsadresse `0x58277ebcabbe2a6694fbca8daf9e23163dbacf3e` angezeigt werden.
#### Testnet-Assets abrufen
> Um einige Testnet-Faucets zu verwenden, müssen Sie möglicherweise eine kleine Menge an Mainnet-Token halten.
1. Öffnen Sie [faucet.circle.com](https://faucet.circle.com/)
1. Klicken Sie auf **USDC**.
1. Wählen Sie unter **Netzwerk** **Polygon POS Amoy** aus.
1. Fügen Sie unter **Senden an** Ihre Wallet Adresse ein.
1. Klicken Sie auf **20 USDC senden**.
Zusätzlich zu USDC für Zahlungen benötigen Sie POL, um Transaktionskosten zu bezahlen:
1. Öffnen Sie [faucet.polygon.technology](https://faucet.polygon.technology/).
1. Wählen Sie unter **Kette und Token auswählen** **Polygon Amoy** und **POL** aus.
1. Klicken Sie unter **Ihre Identität verifizieren** auf die Drittanbieterplattform, bei der Sie sich authentifizieren möchten, und schließen Sie den Anmeldeprozess ab.
1. Fügen Sie unter **Wallet-Adresse eingeben** Ihre Wallet-Adresse ein.
1. Klicken Sie auf **Anspruch**.
Die Durchführung von Testnet-Transaktionen kann einige Minuten dauern. Überprüfen Sie Ihre Wallet, um zu bestätigen, dass die Überweisungen von USDC und POL durchgeführt wurden.
### Weitere Testnet-Faucets
Weitere Optionen zum Testen von Token finden Sie in diesen Faucet-Diensten:
- [Paxos USDP](https://faucet.paxos.com/)
- [Devnet SOL](https://faucet.solana.com/)
- [Sepolia ETH](https://faucets.chain.link/sepolia)
- [Amoy POL](https://faucet.polygon.technology/)