# Billing-Integration testen Erfahren Sie, wie Sie Ihre Abrechnungsintegration testen können, um sicherzustellen, dass sie für die Produktion bereit ist. - Verwenden Sie [Testkarten](https://docs.stripe.com/testing.md#cards) und [Kontonummern](https://docs.stripe.com/testing.md#test-account-numbers), um verschiedene Szenarien auszulösen, beispielsweise fehlgeschlagene Zahlungen oder erforderliche Authentifizierung. - Verwenden Sie [Test-Uhren](https://docs.stripe.com/billing/testing/test-clocks.md), um Billing-Objekte im Zeitverlauf und Testereignisse an unterschiedlichen Etappenzielen zu simulieren, zum Beispiel am Ende eines kostenlosen Testzeitraums oder Jahresplans. - In der [allgemeinen Testdokumentation](https://docs.stripe.com/testing.md) erfahren Sie alle Wichtige über Tests innerhalb von Stripe. Testen Sie Ihre Integration gründlich, bevor Sie sie für Kundinnen und Kunden freigeben oder für Live-Aktivitäten verwenden. Nutzen Sie die Ressourcen auf dieser Seite zusätzlich zu allen organisatorischen Richtlinien (z. B. Runbooks, Quality Gates oder Entwicklungschecklisten), um festzustellen, ob Ihre Integration für die Produktionsumgebung bereit ist. ## Grundsätze für die Inbetriebnahme Bevor Sie Ihre Integration live schalten, prüfen Sie diese Checklisten von Stripe: - [Konto-Checkliste](https://docs.stripe.com/get-started/account/checklist.md) - [Checkliste für die Entwicklung](https://docs.stripe.com/get-started/checklist/go-live.md) - [Website-Checkliste](https://docs.stripe.com/get-started/checklist/website.md) So sieht ein typischer Integrationsablauf aus. Eine Billing-Basisintegration (See full diagram at https://docs.stripe.com/billing/testing) If your integration uses [customer-configured Accounts](https://docs.stripe.com/api/v2/core/accounts/create.md#v2_create_accounts-configuration-customer), replace `Customer` and event references in the code examples with the equivalent Accounts v2 API references. For more information, see [Represent customers with Account objects](https://docs.stripe.com/connect/use-accounts-as-customers.md). Stellen Sie bei Abonnement- und wiederkehrenden Umsatzintegrationen sicher, dass zumindest die folgenden Komponenten wie erwartet funktionieren. In der Tabelle sind Ereignisbenachrichtigungen für jede Komponente aufgelistet. Sie können Ihre Integration so konfigurieren, dass diese Ereignisse mit *Webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests)s überwacht werden. In diesem Leitfaden erfahren Sie mehr über [Ereignisbenachrichtigungen](https://docs.stripe.com/billing/testing.md#webhooks) und Tests. | Komponente | Beschreibung | Ereignisse | | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Kundenanmeldung** | Stellen Sie sicher, dass Ihre Integration erfolgreich die Informationen erfassen kann, die Sie benötigen, um einen Kundendatensatz in Stripe zu erstellen. Ihre Kundinnen/Kunden können diese Informationen über Payment Links, Checkout, *Elements* (A set of UI components for building a web checkout flow. They adapt to your customer's locale, validate input, and use tokenization, keeping sensitive customer data from touching your server) oder ein mit der [Stripe API](https://docs.stripe.com/api.md) erstelltes, vollständig nutzerdefiniertes Zahlungsformular eingeben. Gleich welches Formular Sie verwenden, Sie müssen sicherstellen, dass Sie das bei Stripe gespeicherte Kundenobjekt sehen. Sie können das Dashboard oder die API verwenden, um [Kundinnen/Kunden zu verwalten](https://docs.stripe.com/billing/customer.md#manage-customers). | - `customer.created` - `customer.subscription.created` | | **Invoicing** | Abos erstellen am Ende jedes Rechnungsstellungszeitraums *Rechnungen* (Invoices are statements of amounts owed by a customer. They track the status of payments from draft through paid or otherwise finalized. Subscriptions automatically generate invoices, or you can manually create a one-off invoice). Je nach gewählter Zahlungsmethode können Sie eine Rechnung senden, um die Zahlung nachträglich einzuziehen oder um eine automatische Belastung zu bestätigen. Stellen Sie sicher, dass Ihre Integration Rechnungen wie erwartet erstellt und versendet. Lesen Sie die Anleitung, um mehr über das Erstellen und Verwalten von [Rechnungen für Abonnements](https://docs.stripe.com/billing/invoices/subscription.md) zu erfahren. Sie können Testuhren verwenden, um Rechnungsstellungszeiträume zu simulieren, einschließlich der Erstellung und des Versands von Rechnungen. Lesen Sie die Anleitung zu Test-Uhren, um mehr über spezifische [Use-Cases](https://docs.stripe.com/billing/testing/test-clocks/api-advanced-usage.md#use-cases) zum Testen zu erfahren. | - `invoice.created` - `invoice.finalized` - `invoice.finalization_failed` - `invoice.paid` - `invoice.payment_action_required` - `invoice.payment_failed` - `invoice.upcoming` - `invoice.updated` | | **Abonnementverwaltung** | Richten Sie das *Kundenportal* (The customer portal is a secure, Stripe-hosted page that lets your customers manage their subscriptions and billing details) ein, damit Ihre Kundinnen und Kunden ihre *Abonnements* (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) und Rechnungsinformationen verwalten können. Erstellen Sie zum Testen ein Abonnement in einer *Sandbox* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes). Melden Sie sich dann als Testnutzer/in beim Portal an und aktualisieren Sie das Abonnement. Überprüfen Sie im Dashboard oder in der API, ob das Abonnement die Änderung des Kunden/der Kundin widerspiegelt. Lesen Sie den [Integrationsleitfaden](https://docs.stripe.com/customer-management.md), um zu erfahren, wie Sie das Kundenportal einrichten. | - `customer.subscription.deleted` - `customer.subscription.paused` - `customer.subscription.resumed` - `customer.subscription.updated` | | **Testversionen** | Bieten Sie Kundinnen/Kunden eine Testversion Ihrer Dienstleistung an. Um zu prüfen, ob Ihre Testversion korrekt eingerichtet ist, können Sie eine Test-Uhr erstellen. Durch das Abonnement sollte eine Rechnung mit dem Wert Null für den Testzeitraum generiert werden. [Erfahren Sie, wie Sie Testversionen mit Test-Uhren testen können](https://docs.stripe.com/billing/testing.md#trials). Weitere Informationen zur Funktionsweise von Testversionen finden Sie im [Leitfaden zu Abonnement-Testphasen](https://docs.stripe.com/billing/subscriptions/trials.md). | - `customer.subscription.trial_will_end` - `customer.subscription.updated` | | **Fehlgeschlagene Zahlungen** | Zahlungen von Ihren Kund/innen können aus verschiedenen Gründen fehlschlagen. Stellen Sie sicher, dass Ihre Integration mit Fehlern umgehen kann, einschließlich der Wiederholung von Zahlungen. [Erfahren Sie, wie Sie fehlgeschlagene Zahlungen testen](https://docs.stripe.com/billing/testing.md#payment-failures). | - `invoice.finalization_failed` - `invoice.payment_failed` - `invoice.payment_action_required` | ## Test-Uhren Mit Test-Uhren können Sie Billing-Objekte wie *Abonnements* (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) im Zeitverlauf in einer *Sandbox* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes) simulieren, sodass Sie nicht ein Jahr warten müssen, um zu sehen, wie Ihre Integration mit einem Zahlungsausfall für eine jährliche Abonnementverlängerung umgeht. Bei Verwendung von Test-Uhren müssen Sie keinen Code schreiben: Sie können Simulationen im Dashboard erstellen. Sie können auch über die API darauf zugreifen. Erfahren Sie mehr über [Test-Uhren](https://docs.stripe.com/billing/testing/test-clocks.md) und gängige [Use cases](https://docs.stripe.com/billing/testing/test-clocks.md). ## Abonnement-Testzeiträume testen Angenommen, Sie möchten, dass Ihre Kundinnen und Kunden Ihr Produkt mit einem Sieben-Tage-Testzeitraum kostenlos ausprobieren, bevor Sie mit der Zahlung beginnen, und Sie möchten die Zahlungsinformationen im Voraus erfassen. Führen Sie die folgenden Schritte aus, um diese Situation mit Test-Uhren zu simulieren: - Erstellen Sie eine neue Simulation und legen Sie die `frozen_time` auf den 1. Januar fest. - Fügen Sie eine/n Kund/in und seine/ihre Zahlungsmethode hinzu. Verwenden Sie in diesem Fall eine 4242424242424242 [Testkarte](https://docs.stripe.com/testing.md#cards). - Erstellen Sie ein Abonnement und fügen Sie einen kostenlosen Sieben-Tage-Testzeitraum hinzu: #### Dashboard So fügen Sie einem bestehenden Abonnement über das Dashboard einen Testzeitraum hinzu: Suchen Sie das Abonnement, das Sie ändern möchten. 1. Klicken Sie auf **Aktionen**. 1. Klicken Sie auf **Abonnement aktualisieren**. 1. Klicken Sie auf **Kostenlosen Testzeitraum hinzufügen** und geben Sie im Feld **Dauer des kostenlosen Testzeitraums** die Zahl „Sieben“ ein. 1. Klicken Sie auf **Abonnement aktualisieren**. #### API Sie können das Abonnement eines/einer Kund/in mit einem kostenlosen Testzeitraum starten, indem Sie beim Erstellen des Abonnements das Argument `trial_period_days=7` angeben: ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d "items[0][price]={{PRICE_ID}}" \ -d trial_end=1610403705 ``` - Nachdem Sie ein Abonnement mit einem kostenlosen Sieben-Tage-Testzeitraum erstellt haben, wird ein Abonnement mit dem Status `trialing` erstellt. Aufgrund des kostenlosen Testzeitraums wird eine Rechnung mit dem Betrag 0,00 USD generiert. - Verschieben Sie das Datum auf den 5. Januar, um die Ereignisbenachrichtigung [customer.subscription.trial_will_end](https://docs.stripe.com/api/events/types.md#event_types-customer.subscription.trial_will_end) anzuzeigen. Stripe sendet die Benachrichtigung drei Tage vor Ablauf des Testzeitraums. Mit diesem Webhook-Ereignis können Sie Ihre Kund/innen darüber informieren, dass der Testzeitraum in Kürze endet. - Verschieben Sie das Datum auf den 8. Januar. Sie können sehen, dass das Abonnement jetzt den Status `paid` hat und eine Rechnung über 50 USD erstellt wird. - Verschieben Sie das Datum um einen Zyklus (zum Beispiel auf den 8. Februar bei einem monatlichen Abonnement). Sie können sehen, dass das Abonnement erfolgreich verlängert wurde. ### Testzeiträume mit Test-Uhren testen Um zu prüfen, wie Ihre Integration mit Testphasen umgeht, ohne einen vollen Testzeitraum lang auf die Ergebnisse warten zu müssen, erstellen Sie ein neues *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), dessen Wert für `trial_end` ein paar Minuten in der Zukunft liegt. Wenn Sie Checkout verwenden, legen Sie den Wert für [trial_end](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-trial_end) auf mindestens zwei Tage fest. Bei diesem Ansatz erhalten Sie nicht die Ereignisbenachrichtigung `customer.subscription.trial_will_end`, die drei Tage vor Ablauf einer Testphase gesendet wird. Ansonsten verhält es sich genauso wie ein Abonnement mit längerem Testzeitraum. ## Webhook-Benachrichtigungen für Abonnements testen Abonnement-Integrationen beruhen in hohem Maße auf *Webhooks* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests). Sie richten einen Webhook-Endpoint auf Ihrem Server ein und geben an, welche Ereignisbenachrichtigungen überwacht werden sollen. Stripe sendet Benachrichtigungen für Ereignisse wie ein Upgrade oder eine Kündigung eines Abonnements. Sie können Webhooks testen, indem Sie entweder tatsächliche Test-Abonnements erstellen oder indem Sie Ereignisbenachrichtigungen durch die [Stripe-CLI](https://docs.stripe.com/stripe-cli.md) oder über das [Dashboard](https://dashboard.stripe.com/test/account/webhooks) auslösen. Nachdem Sie die Stripe-CLI eingerichtet und mit Ihrem Stripe-Konto verknüpft haben, können Sie Ereignisse aus dem [Abonnement-Lebenszyklus](https://docs.stripe.com/billing/subscriptions/overview.md#subscription-lifecycle) auslösen, um Ihre Webhook-Integration zu testen. Wenn Sie zum Auslösen von Ereignissen die Stripe-CLI verwenden, können Sie Ereignisbenachrichtigungen auf Ihrem Server sehen, sobald sie eingehen. So können Sie Ihre Webhook-Integration direkt ohne Netzwerktunnel oder Firewalls überprüfen. Wenn Sie die Stripe-CLI oder das Dashboard zum Auslösen von Ereignissen verwenden, enthält das von Ihrem Webhook empfangene Ereignis falsche Daten, die nicht den Abonnementinformationen entsprechen. Der zuverlässigste Ansatz zum Testen von Webhook-Benachrichtigungen besteht darin, tatsächliche Test-Abonnements zu erstellen und die dazugehörigen Ereignisse zu verarbeiten. In der folgenden Tabelle werden die häufigsten Ereignisse im Zusammenhang mit Abonnements beschrieben und ggf. Maßnahmen zum Umgang mit den Ereignissen vorgeschlagen. > Die Accounts v2 API ist in GA für Connect-Nutzer/innen (also für diese allgemein verfügbar) und in der öffentlichen Vorschau für andere Stripe-Nutzer/innen. > > Unabhängig davon, ob Sie [Accounts v2](https://docs.stripe.com/connect/use-accounts-as-customers.md)-Objekte oder [Kunden](https://docs.stripe.com/api/customers.md)-Objekte verwenden, um Ihre Kundinnen und Kunden darzustellen, verwenden Sie die `customer.subscription`-Ereignisse zum Verfolgen von Abonnement-Ereignissen. | Ereignis | Beschreibung | | ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `v2.core.account.created` | Wird gesendet, wenn ein [v2 Account](https://docs.stripe.com/api/v2/core/accounts/object.md) erfolgreich erstellt wird. | | `customer.created` | Wird gesendet, wenn [eine Kundin/ein Kunde](https://docs.stripe.com/api/customers/object.md) erfolgreich erstellt wird. | | `customer.subscription.created` | Dieser Status wird vergeben, wenn das Abonnement erstellt wurde. Der kann `status` eines Abonnements kann `incomplete` sein, wenn eine Authentifizierung der Kundin oder des Kunden zum Abschluss der Zahlung erforderlich ist oder wenn Sie `payment_behavior` auf [default_incomplete](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-payment_behavior) gesetzt haben. | | `customer.subscription.deleted` | Wird gesendet, wenn das Abonnement eines/einer Kund/in endet. | | `customer.subscription.paused` | Wird gesendet, wenn sich der `status` eines Abonnement in `paused` ändert. Dies wird beispielsweise gesendet, wenn Sie ein Abonnement so [konfigurieren](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-trial_settings-end_behavior-missing_payment_method), dass es unterbrochen wird, wenn ein [kostenloser Testzeitraum ohne Zahlungsmethode](https://docs.stripe.com/billing/subscriptions/trials/free-trials.md#create-free-trials-without-payment) endet. Die Rechnungsstellung erfolgt erst, wenn das Abonnement [wiederaufgenommen wird(/api/subscriptions/resume). Wir senden dieses Ereignis nicht, wenn Sie den [Zahlungseinzug unterbrechen](https://docs.stripe.com/billing/subscriptions/pause-payment.md), da während dieses Zeitraums weiterhin Rechnungen erstellt werden. | | `customer.subscription.resumed` | Wird gesendet, wenn Sie ein Abonnement wiederaufnehmen, das sich zuvor im Status `paused` befand. Dies gilt nicht, wenn Sie [die Unterbrechung des Zahlungseinzugs aufheben](https://docs.stripe.com/billing/subscriptions/pause-payment.md#unpausing). | | `customer.subscription.trial_will_end` | Wird drei Tage vor [Ablauf des Testzeitraums](https://docs.stripe.com/billing/subscriptions/trials.md) gesendet. Wenn der Testzeitraum kürzer als drei Tage ist, wird dieses Ereignis ausgelöst. | | `customer.subscription.updated` | Wird gesendet, wenn ein Abonnement gestartet oder [geändert wird](https://docs.stripe.com/billing/subscriptions/change.md). So lösen beispielsweise das Erneuern des Abonnements, das Hinzufügen eines Gutscheins, das Anwenden eines Rabatts, das Hinzufügen eines Rechnungspostens und das Ändern von Abonnementplänen alle dieses Ereignis aus. | | `entitlements.active_entitlement_summary.updated` | Wird gesendet, wenn die aktiven Berechtigungen einer Kundin/eines Kunden aktualisiert werden. Wenn Sie dieses Ereignis erhalten, können Sie den Zugriff auf die Funktionen Ihres Produkts gewähren oder deaktivieren. Mehr erfahren über [die Integration mit Berechtigungen](https://docs.stripe.com/billing/entitlements.md). | | `invoice.created` | Wird gesendet, wenn eine Rechnung für ein neues oder verlängertes Abonnement erstellt wird. Wenn Stripe keine erfolgreiche Antwort auf `invoice.created` erhält, verzögert sich die Finalisierung aller Rechnungen mit dem [automatischen Einzug](https://docs.stripe.com/invoicing/integration/automatic-advancement-collection.md) um bis zu 72 Stunden. Erfahren Sie mehr über das [Finalisieren von Rechnungen](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized). - Antworten Sie auf die Benachrichtigung, indem Sie eine Anfrage an die API zur [Finalisierung einer Rechnung](https://docs.stripe.com/api/invoices/finalize.md) senden. | | `invoice.finalized` | Wird gesendet, wenn eine Rechnung erfolgreich finalisiert wurde und bereit für die Bezahlung ist. - Sie können die Rechnung an den Kunden/die Kundin senden. Sehen Sie sich die [Finalisierung der Rechnung](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized) an, um mehr zu erfahren. - Je nach Ihren Einstellungen belasten wir automatisch die Standard-Zahlungsmethode oder versuchen den Einzug. Zeigen Sie [E-Mails nach der Finalisierung](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#emails) an, um mehr zu erfahren. | | `invoice.finalization_failed` | Die Rechnung konnte nicht abgeschlossen werden. Erfahren Sie mehr über [den Umgang mit fehlgeschlagenen Rechnungsabschlüssen](https://docs.stripe.com/tax/customer-locations.md#finalizing-invoices-with-finalization-failures) und [Rechnungsabschlüsse](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized). - Prüfen Sie die Angabe [last_finalization_error](https://docs.stripe.com/api/invoices/object.md#invoice_object-last_finalization_error) der Rechnung, um die Fehlerursache zu ermitteln. - Wenn Sie Stripe Tax verwenden, prüfen Sie das Feld [automatic_tax](https://docs.stripe.com/api/invoices/object.md#invoice_object-last_finalization_error) des Objekts `Invoice`. - Bei `automatic_tax[status]=requires_location_inputs` schlägt der Rechnungsabschluss fehl und Zahlungen können nicht eingezogen werden. Benachrichtigen Sie Ihren Kunden/Ihre Kundin und erfassen Sie den erforderlichen [Kundenstandort](https://docs.stripe.com/tax/customer-locations.md). - Wenn `automatic_tax[status]=failed` wiederholen Sie die Anfrage später noch einmal. | | `invoice.paid` | Wird gesendet, wenn die Rechnung erfolgreich bezahlt wird. Sie können den Zugriff auf Ihr Produkt gewähren, wenn Sie dieses Ereignis erhalten und der `status` des Abonnements `active` ist. | | `invoice.payment_action_required` | Wird gesendet, wenn die Rechnung eine Kundenauthentifizierung erfordert. Erfahren Sie, wie Sie mit dem Abonnement umgehen, wenn die Rechnung [Maßnahmen erfordert](https://docs.stripe.com/billing/subscriptions/overview.md#requires-action). | | `invoice.payment_failed` | Eine Zahlung für eine Rechnung ist fehlgeschlagen. Der PaymentIntent-Status ändert sich in `requires_action`. Der Status des Abonnements ist weiterhin *nur* für die erste Rechnung des Abonnements `incomplete`. Wenn eine Zahlung fehlschlägt, gibt es zahlreiche Aktionen, die Sie durchführen können: - Benachrichtigen Sie die Kundin/den Kunden. - Konfigurieren Sie Ihre [Abonnementeinstellungen](https://dashboard.stripe.com/settings/billing/automatic) im Dashboard, um [Smart Retries](https://docs.stripe.com/billing/revenue-recovery/smart-retries.md) und andere Funktionen zur Umsatzsicherung zu aktivieren. - Wenn Sie PaymentIntents verwenden, erfassen Sie neue Zahlungsinformationen und [bestätigen Sie den PaymentIntent](https://docs.stripe.com/api/payment_intents/confirm.md). - Aktualisieren Sie die [Standard-Zahlungsmethode](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-default_payment_method) für das Abonnement. | | `invoice.upcoming` | Wird ein paar Tage vor der Verlängerung des Abonnements gesendet. Die Anzahl der Tage basiert auf der im [Dashboard](https://dashboard.stripe.com/settings/billing/automatic) festgelegten Anzahl für **Bevorstehende Verlängerungsereignisse**. Bei bestehenden Abonnements wird die Änderung der Anzahl der Tage im nächsten Abrechnungszeitraum wirksam. Sie können bei Bedarf noch [zusätzliche Rechnungsposten hinzufügen](https://docs.stripe.com/billing/invoices/subscription.md#adding-upcoming-invoice-items). | | `invoice.updated` | Wird gesendet, wenn eine Zahlung erfolgreich ist oder fehlschlägt. Wenn die Zahlung erfolgreich ist, wird das Attribut `paid` auf `true` festgelegt und der `status` ist `paid`. Wenn die Zahlung fehlschlägt, wird das Attribut `paid` auf `false` festgelegt und der `status` bleibt `open`. Fehlgeschlagene Zahlungen lösen außerdem das Ereignis `invoice.payment_failed` aus. | | `payment_intent.created` | Wird gesendet, wenn ein [PaymentIntent](https://docs.stripe.com/api/payment_intents.md) erstellt wird. | | `payment_intent.succeeded` | Wird gesendet, wenn die Zahlung für einen PaymentIntent erfolgreich abgeschlossen wurde. | | `subscription_schedule.aborted` | Wird gesendet, wenn ein Abonnementplan storniert wurde, weil das zugehörige Abonnement aufgrund von Zahlungsverzug gekündigt wurde. | | `subscription_schedule.canceled` | Wird gesendet, wenn ein Abonnementplan gekündigt wird, wodurch auch alle aktiven zugehörigen Abonnements gekündigt werden. | | `subscription_schedule.completed` | Wird gesendet, wenn alle [Phasen](https://docs.stripe.com/billing/subscriptions/subscription-schedules.md#subscription-schedule-phases) eines Abonnementplans abgeschlossen sind. | | `subscription_schedule.created` | Wird gesendet, wenn ein neuer Abonnementplan erstellt wird. | | `subscription_schedule.expiring` | Wird 7 Tage vor Ablauf eines Abonnementplans gesendet. | | `subscription_schedule.released` | Wird gesendet, wenn ein Abonnementplan [freigegeben](https://docs.stripe.com/api/subscription_schedules/release.md) wird oder beendet und von dem verbleibenden Abonnement getrennt wird. | | `subscription_schedule.updated` | Wird gesendet, wenn ein Abonnementplan aktualisiert wird. | ## Fehlgeschlagene Zahlungen testen Verwenden Sie entsprechende [Testkreditkartennummern](https://docs.stripe.com/testing.md#cards), um fehlgeschlagene Zahlungen für Abonnements und *Rechnungen* (Invoices are statements of amounts owed by a customer. They track the status of payments from draft through paid or otherwise finalized. Subscriptions automatically generate invoices, or you can manually create a one-off invoice) auszulösen. Einige Abonnement-Updates veranlassen Stripe, das Abonnement in Rechnung zu stellen und einen sofortigen Zahlungsversuch zu unternehmen (dieser synchrone Zahlungsversuch kann bei der ersten Rechnung oder bei bestimmten Rechnungs-Updates erfolgen). Schlägt dieser Versuch fehl, wird das Abonnement im Status `incomplete` erstellt. Um die Auswirkungen fehlgeschlagener Zahlungen auf ein aktives Abonnement zu testen, hängen Sie die Karte [**4000 0000 0000 0341**](https://docs.stripe.com/testing.md#cards) als Standardzahlungsmethode der Kundin/des Kunden an. Verwenden Sie dabei aber einen Testzeitraum, um den Zahlungsversuch zu verzögern (einige Sekunden oder Minuten reichen aus). Das Abonnement wird sofort aktiv, wobei ein [Rechnungsentwurf](https://docs.stripe.com/invoicing/overview.md#draft) erstellt wird, wenn der Testzeitraum endet. Es dauert ca. eine Stunde, bis sich der Rechnungsstatus in „offen“ ändert und versucht wird, die Zahlung einzuziehen, was fehlschlägt. Verwenden Sie [Test-Uhren](https://docs.stripe.com/billing/testing/test-clocks.md), um die Vorwärtsbewegung der Zeit in einer *Sandbox* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes) zu simulieren, wodurch Abrechnungsressourcen wie Abonnements ihren Status ändern und *webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests)-Ereignisse auslösen. So können Sie sehen, wie Ihre Integration mit einer fehlgeschlagenen Zahlung für eine vierteljährliche oder jährliche Verlängerung umgeht, ohne ein Jahr zu warten. ## Zahlungen testen, die 3D Secure erfordern Verwenden Sie die Karte [**4000 0027 6000 3184**](https://docs.stripe.com/testing.md#three-ds-cards), um die 3D Secure-Auslösung für Abonnements und Rechnungen zu simulieren. Wenn ein 3D-Secure Authentifizierungsvorgang ausgelöst wird, können Sie in dem sich öffnenden 3DS-Dialogfeld die Authentifizierung oder das Fehlschlagen des Zahlungsversuchs testen. Wenn die Zahlung erfolgreich authentifiziert wird, ist die Rechnung bezahlt. Gehört die Rechnung zu einem Abonnement mit dem Status `incomplete`, wird das Abonnement aktiv. Wenn der Zahlungsversuch fehlschlägt, ist der Authentifizierungsversuch nicht erfolgreich und die Rechnung verbleibt im Status `open`. ## Zahlungen per Banküberweisung für Rechnungen testen So testen Sie manuelle Zahlungen für Rechnungen per Banküberweisung: 1. Erstellen Sie in einer Sandbox eine Rechnung und legen Sie die Einzugsmethode auf `send_invoice` und das Array `payment_settings[payment_method_types]` auf `[customer_balance]` fest. 1. Suchen Sie die Rechnung im Dashboard und klicken Sie auf **Senden**. 1. Ihren Kundinnen und Kunden wird jeweils eine eindeutige virtuelle Bankkontonummer zugewiesen. Diese können Sie über die [Funding Instructions API](https://docs.stripe.com/payments/customer-balance/funding-instructions.md#create-funding-instructions) abrufen. Außerdem sind die virtuellen Bankdaten sind auf der gehosteten Rechnungsseite sowie der PDF enthalten. ## Die Standard-Zahlungsmethode für Rechnungen und Abonnements testen Verwenden Sie bestimmte [Testkarten-IDs](https://docs.stripe.com/testing.md?testing-method=payment-methods#cards), um Standardzahlungsmethoden zu simulieren, die für Abonnements und Rechnungen verwendet werden. Die angegebene Zahlungsmethode muss an den Kunden/die Kundin des Abonnements oder der Rechnung angehängt werden, wodurch sie als `default_payment method` festgelegt wird. Wenn Sie beispielsweise `pm_card_visa` verwenden, um eine Test-Visa-Zahlungsmethode zu erstellen: 1. Rufen Sie den Endpoint [PaymentMethod Attach](https://docs.stripe.com/api/payment_methods/attach.md) mit `pm_card_visa` und dem/der vorgesehenen Kunden/Kundin für das Abonnement oder die Rechnung auf 1. Erstellen Sie mit der resultierenden Zahlungsmethoden-ID das Abonnement oder die Rechnung mit dieser ID als `default_payment_method`. Jetzt wird diese Zahlungsmethode durch das Abonnement oder die Rechnung belastet. Erfahren Sie mehr über die Verwendung von [Standard-Zahlungsmethoden](https://docs.stripe.com/testing.md?testing-method=payment-methods#cards) für Abonnements und Rechnungen. ## Verifizierung der Steuer-ID des/der Kund/in testen Verwenden Sie diese Test-Steueridentifikationsnummern, um bestimmte Verifizierungsbedingungen in Testumgebungen auszulösen. Die Steueridentifikationsnummer muss die australische Unternehmensnummer (ABN), die EU-Umsatzsteuer-Identifikationsnummer (USt-IdNr.) oder die Umsatzsteuer-Identifikationsnummer (GB-USt.) des Vereinigten Königreichs sein. | Nummer | Typ | | ----------- | ------------------------------------------------ | | `000000000` | Verifizierung erfolgreich | | `111111111` | Verifizierung nicht erfolgreich | | `222222222` | Verifizierung bleibt bis aus Weiteres ausstehend | ## Automatisierte Tests Sie können [automatisierte Tests](https://docs.stripe.com/automated-testing.md) für Ihre Integration einrichten. So optimieren Sie die Tests: - Beachten Sie die [Richtlinie zur Datenaufbewahrung](https://support.stripe.com/questions/test-mode-subscription-data-retention) für abonnementbezogene Daten in einer Sandbox. - Vermeiden Sie die Wiederverwendung von Ressourcen wie [Gutscheinen](https://docs.stripe.com/api/coupons.md) und [Promo-Codes](https://docs.stripe.com/api/promotion_codes.md) für verschiedene Tests. - Verwenden Sie den HTTP-Server [stripe-mock](https://github.com/stripe/stripe-mock), der auf der Stripe API basiert und das Verhalten der API genau widerspiegelt. ## See also - [Sandboxes](https://docs.stripe.com/sandboxes.md) - [Mehrere Konten](https://docs.stripe.com/get-started/account/multiple-accounts.md)