# Gutscheine und Promo-Codes Nutzen Sie Gutscheine und Promo-Codes, um Rabatte zu Abonnements und Abonnementposten hinzuzufügen. Erstellen und verwalten Sie Gutscheine und Aktionscodes, um über das Dashboard oder die Stripe-APIs Rabatte auf die Abonnements, Abonnement-Posten oder Rechnungen einer Endkundin oder eines Endkunden anzuwenden. Verwenden Sie Gutscheine für Folgendes: - [Rabatte](https://docs.stripe.com/api/discounts.md) auf ein Abonnement, einen Abonnement-Posten oder eine Rechnung anwenden - Einen Gutschein so festlegen, dass er einmalig, für eine bestimmte Anzahl von Monaten oder auf unbestimmte Zeit gilt - Rechnungsbeträge anteilig oder pauschal verringern ## Gutscheine im Vergleich zu Aktionscodes Dies sind die Unterschiede zwischen einem Gutschein und einem Aktionscode: - [Gutscheine](https://docs.stripe.com/billing/subscriptions/coupons.md#coupons): Sie entscheiden, wer den Rabatt erhält und wann. Dies sind Backend-gesteuerte Rabatte (Ihr System entscheidet, wer den Rabatt erhält). - [Aktionscodes](https://docs.stripe.com/billing/subscriptions/coupons.md#promotion-codes): Ihre Endkundin oder Ihr Endkunde entscheidet, wann ein Rabatt angewendet wird. Dies ist ein für Endkundinnen und Endkunden sichtbarer Code, der einen Gutschein umschließt und Gutscheinen eine Verteilungs- und Kontrollebene hinzufügt. Viele Aktionscodes können auf einen einzigen Gutschein verweisen. Aktionscodes erben die Produkteinschränkungen ihres übergeordneten Gutscheins. Wenn ein Gutschein beispielsweise nur für bestimmte Produkte gilt, gelten für jeden daraus erstellten Aktionscode die gleichen Einschränkungen. Auf dieser Seite hat „Rabatt“ zwei Bedeutungen. Allgemeinsprachlich ist ein Rabatt jede Form von Preisnachlass. In der Stripe-API ist ein [Rabatt](https://docs.stripe.com/api/discounts/object.md) ein spezifisches Objekt, das die Anwendung eines Gutscheins auf eine Kundin oder einen Kunden, ein Abonnement oder eine Rechnung darstellt. Wenn eine Kundin oder ein Kunde einen Gutschein einlöst, erstellt Stripe ein `Discount`-Objekt, um diese Einlösung nachzuverfolgen. Sie können bis zu 20 Rabatte auf ein Abonnement, einen Abonnement-Posten oder eine Rechnung anwenden. Dieses Limit gilt gemeinsam für Gutscheine und Aktionscodes. | | **Gutschein** | **Aktionscode** | | --- | --- | --- | | Definition | API-Objekt, das die Rabattlogik definiert. Wenden Sie dies über das Dashboard oder die API direkt auf das Abonnement einer Endkundin oder eines Endkunden an. | Für Endkundinnen und Endkunden sichtbarer Code, der Ihren Gutscheinen zugeordnet ist. Dies ist die Zeichenfolge, die die Endkundin oder der Endkunde beim Bezahlvorgang eingibt. Beispielsweise können `FALLPROMO` und `SPRINGPROMO` beide einem einzigen Gutschein mit 25 % Rabatt zugeordnet werden. | | Use Case | Ihr Sales-Team schließt einen Vertrag mit einer Endkundin oder einem Endkunden über einen ausgehandelten Rabatt von 20 % auf das Jahresabonnement ab. Ihr Backend wendet den Rabatt direkt an und die Endkundin oder der Endkunde gibt nie etwas ein. | Ihr Marketing-Team startet eine Social Media-Kampagne und möchte, dass Creators den Code `EXAMPLE2026` teilen, der neuen Abonnentinnen und Abonnenten 3 Monate lang 25 % Rabatt gewährt. Dieser gilt nur für neue Endkundinnen und Endkunden bei einem Mindestumsatz von 50 USD und Sie möchten ihn auf 500 Einlösungen begrenzen. | | Auf eine bestimmte Endkundin oder einen bestimmten Endkunden beschränken | ❌ Nicht unterstützt | ✓ Unterstützt | | Nur auf den ersten Kauf anwenden | ❌ Nicht unterstützt | ✓ Unterstützt | | Mindestumsatz zum Einlösen | ❌ Nicht unterstützt | ✓ Unterstützt | | Ohne Löschung deaktivieren | Sie können Gutscheine nur löschen, nicht deaktivieren. Durch das Löschen werden bestehende Rabatte nicht entfernt, aber neue Anwendungen verhindert. Wenn Sie einen Gutschein löschen, werden die zugehörigen Aktionscodes archiviert. | Sie können den Aktionscode archivieren, indem Sie das Flag `aktiv` umschalten | Um Rabatte für einmalige Zahlungen zu verwenden, lesen Sie stattdessen den Artikel [Rabatte für einmalige Zahlungen hinzufügen](https://docs.stripe.com/payments/checkout/discounts.md). Mit Gutscheinen für Leistungszeiträume können Sie Rabatte basierend auf dem Zeitpunkt der Leistungserbringung anwenden, nicht auf dem Zeitpunkt, an dem die Rechnung ausgestellt wurde. Zum Beispiel gilt ein Rabatt für Leistungen im Januar auch für den Januar, unabhängig davon, ob die Rechnung im Februar erstellt wird. Registrieren Sie sich, um an der privaten Vorschau teilzunehmen. ### Sind Sie daran interessiert, Rabatte nach Leistungszeitraum anzuwenden? Enter your email to request access. ```bash curl https://docs.stripe.com/preview/register \ -X POST \ -H "Content-Type: application/json" \ -H "Referer: https://docs.stripe.com/billing/subscriptions/coupons" \ -d '{"email": "EMAIL", "preview": "service_period_coupons_preview"}' ``` ## Gutscheine Um eine Kundenzahlung zu reduzieren, lösen Sie einen Gutschein ein und erstellen Sie ein [Discount](https://docs.stripe.com/api/discounts/object.md)-Objekt für ein Abonnement bzw. eine Kundin oder einen Kunden. In den folgenden Abschnitten erfahren Sie, wie Sie Gutscheine erstellen und verwalten. ### Gutschein erstellen Gutscheine können im Dashboard oder mit der [API](https://docs.stripe.com/api/coupons/create.md) erstellt werden: #### Dashboard 1. Navigieren Sie im Dashboard zum Abschnitt [Produkte](https://dashboard.stripe.com/test/products?active=true). 2. Klicken Sie auf **Gutscheine**. 3. Klicken Sie auf **+ Neu**. 4. Im Dialogfenster **Gutschein erstellen** legen Sie die Eckdaten des Gutscheins fest. 5. Nun klicken Sie auf **Gutschein erstellen**. Die folgenden Einstellungen gelten für Gutscheine. Der Name ist die einzige Einstellung, die Sie nach der Erstellung des Gutscheins bearbeiten können. | Einstellung | Beschreibung | | --- | --- | | **Name** | Die Gutscheinbezeichnung, die auf Quittungen und Abrechnungen erscheint. | | **ID** (optional) | Eindeutige Gutscheinkennung in der API. Wenn Sie dieses Feld unausgefüllt lassen, generiert Stripe die ID. | | **Typ** | Gibt an, ob es sich um einen pauschalen oder anteiligen Preisnachlass handelt. | | **Prozentualer Rabatt** oder **Rabattbetrag** | Gibt an, für welchen Rabattbetrag der Gutschein tatsächlich gilt. Wenn Sie Verkäufe in mehreren Währungen tätigen, können mit einem einzelnen Gutschein verschiedene Rabattbeträge für unterschiedliche Währungen definiert werden. Für Gutscheine mit mehreren Währungen gelten die gleichen Regeln wie für [Preise in mehreren Währungen](https://docs.stripe.com/products-prices/how-products-and-prices-work.md#multiple-currencies). | | **Auf bestimmte Produkte anwenden** (optional) | Begrenzt den Artikeltyp, für den der Gutschein eingelöst werden kann. | | **Dauer** | Gibt die Gültigkeitsdauer des Gutscheins an. | | **Ablaufdatum** (optional) | Ermöglicht die Eingrenzung des Einlösezeitraums und die Festlegung der Einlösehäufigkeit. | | **Codes** (optional) | Ermöglicht die Erstellung von [Promo-Codes](https://docs.stripe.com/billing/subscriptions/coupons.md#promotion-codes--promotion-codes) für den Gutschein. | #### API ```curl curl https://api.stripe.com/v1/coupons \ -u "<>:" \ -d duration=once \ -d id=free-period \ -d percent_off=100 ``` Die Tabelle zeigt die verschiedenen Gutscheinparameter. | Einstellung | Beschreibung | | --- | --- | | `id` | Eine eindeutige Gutscheinkennung. | | `percent_off` oder `amount_off` | Rabattbetrag der Zwischensumme vorbehaltlich Gültigkeit. | | `currency` (sofern `amount_off` konfiguriert ist) | Der ISO-Code mit drei Buchstaben für die Währung des abzuziehenden Betrags. | | `currency_options` (wenn `amount_off` eingestellt ist) (optional) | Wenn Sie Verkäufe in mehreren Währungen tätigen, werden die Beträge von der Zwischensumme für verschiedene Währungen abgezogen. Für Gutscheine mit mehreren Währungen gelten die gleichen Regeln wie für [Preise in mehreren Währungen](https://docs.stripe.com/products-prices/how-products-and-prices-work.md#multiple-currencies). | | `duration` | Gibt die Gültigkeitsdauer des Gutscheins an. Mögliche Werte sind **einmalig**, **unbegrenzt** und **wiederholt**. | | `max_redemptions` (optional) | Summe aller möglichen Gutscheineinlösungen durch die gesamte Kundschaft. | | `redeem_by` (optional) | Datum der letzten Einlösemöglichkeit. | | `applies_to` (optional) | Begrenzt die Artikelanzahl, für die der Gutschein innerhalb einer Rechnung eingelöst werden kann. | ### Berechtigte Produkte festlegen #### Dashboard Um die rabattberechtigten Produkte festzulegen, tragen Sie diese in das Feld **Auf bestimmtes Produkt anwenden** ein. Die Liste zugelassener Produkte gilt auch für die mit dem Gutschein verknüpften Gutschein-Codes. Ist ein Gutschein auf bestimmte Produkte beschränkt, die in einem Abonnement nicht enthalten sind, wird kein Rabatt angewendet, wenn der Gutschein für dieses Abonnement eingelöst wird. #### API Um die rabattberechtigten Produkte festzulegen, tragen Sie die entsprechenden Produkt-IDs in den `applies_to`-Hash des Gutscheins ein. Die Liste zugelassener Produkte gilt auch für die mit dem Gutschein verknüpften Gutschein-Codes. Ist ein Gutschein auf bestimmte Produkte beschränkt, die in einem Abonnement nicht enthalten sind, wird kein Rabatt angewendet, wenn der Gutschein für dieses Abonnement eingelöst wird. Wenn Sie [Änderungen](https://docs.stripe.com/billing/subscriptions/change.md) an einem Abo vornehmen, berechnet Stripe die anteilmäßige Verrechnung und wendet vorhandene Rabatte an. Sie können die anteiligen Posten auf der erzeugten Rechnung nicht weiter rabattieren. ### Gutscheine auf Abonnements anwenden Nachdem Sie Gutscheine erstellt haben, erstellen Sie einen Rabatt, indem Sie sie auf ein Abonnement anwenden. Sie können den Gutschein anwenden, wenn Sie das Abonnement erstellen oder indem Sie [das bestehende Abonnement eines Kunden/einer Kundin aktualisieren](https://docs.stripe.com/api.md#update_subscription). #### Dashboard 1. Öffnen Sie im Dashboard die Seite [Abos](https://dashboard.stripe.com/test/subscriptions?status=active). 2. Klicken Sie das jeweilige Abonnement an. 3. Klicken Sie auf **Aktionen**. 4. Klicken Sie auf **Abonnement aktualisieren**. 5. Klicken Sie auf **Gutschein hinzufügen**. 6. Wählen Sie einen oder mehrere Gutscheine aus den Dropdown-Menüs aus und klicken Sie auf **Absenden**. #### API > #### Verwenden Sie die Accounts v2 API zum Darstellen von Kundinnen und Kunden > > Die Accounts v2 API ist allgemein für Connect-Nutzer/innen verfügbar und für andere Stripe-Nutzer/innen in der öffentlichen Vorschau. Wenn Sie an der Accounts v2 Vorschau teilnehmen, müssen Sie eine [Vorschauversion](https://docs.stripe.com/api-v2-overview.md#sdk-and-api-versioning) in Ihrem Code angeben. > > Um der Vorschau von Accounts v2 beizutreten, gehen Sie zu [Kontovorschauen und -funktionen](https://dashboard.stripe.com/settings/previews) in Ihrem Dashboard und aktivieren Sie **wiederverwendbare Zahlungsmethoden für Global Payouts**. > > Für die meisten Anwendungsfälle empfehlen wir, [Ihre Kundinnen und Kunden als vom Kunden bzw. von der Kundin konfigurierte Account-Objekte abzubilden](https://docs.stripe.com/accounts-v2/use-accounts-as-customers.md), anstatt [Customer](https://docs.stripe.com/api/customers.md)-Objekte zu verwenden. #### Accounts v2 ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer_account={{CUSTOMERACCOUNT_ID}}" \ -d "items[0][price]={{PRICE_ID}}" \ -d "discounts[0][coupon]=free-period" ``` #### Customers v1 ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d "items[0][price]={{PRICE_ID}}" \ -d "discounts[0][coupon]=free-period" ``` Auch wenn für Kundinnen/Kunden keine gespeicherte Zahlungsmethode vorhanden ist, können Sie ein Abo erstellen, sofern nach Anwendung von Gutscheinen [keine sofortige Zahlung](https://docs.stripe.com/billing/subscriptions/deferred-payment.md) erforderlich ist. ### Checkout-Gutscheine anwenden Sie können Gutscheine auf Checkout-Sitzungen anwenden, indem Sie den `discounts`-Parameter in der [API](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-discounts) einrichten. Um Sitzungen mit angewendeten Rabatt zu erstellen, übergeben Sie die Gutschein-ID in dem Parameter `coupon` an das Array `discounts`. #### curl ```bash curl https://api.stripe.com/v1/checkout/sessions \ -u <>: \ -d "line_items[][price]"="{{PRICE_ID}}" \ -d "line_items[][quantity]"=1 \ -d mode=subscription \ -d "discounts[][coupon]"="{{COUPON_ID}}" \ -d success_url="https://example.com/success" ``` ### Gutscheine entfernen Gutscheine können im Dashboard oder mit der [API](https://docs.stripe.com/api/coupons/delete.md) entfernt werden. Wird ein Gutschein gelöscht, kann er für künftige Abonnements und Rechnungen nicht mehr eingelöst werden. Bei bereits vorhandenen Abonnements und Rechnungen bleibt der Rabatt jedoch bestehen. #### Dashboard 1. Navigieren Sie im Dashboard zum Abschnitt [Produkte](https://dashboard.stripe.com/test/products?active=true). 2. Klicken Sie auf **Gutscheine**. 3. Klicken Sie den gewünschten Gutschein an. 4. Klicken Sie auf das Überlaufmenü (⋯). 5. Nun klicken Sie auf **Gutschein löschen**. #### API ```curl curl -X DELETE https://api.stripe.com/v1/coupons/free-period \ -u "<>:" ``` ### Gültigkeitsdauer Die Gültigkeitsdauer gibt an, wie lange der eingelöste [Rabatt](https://docs.stripe.com/api/.md#discounts) gültig ist. So ist ein Gutschein über 50 % Rabatt mit 4 Monaten Gültigkeitsdauer ab dem Einlösedatum auf alle Rechnungen anwendbar, die in diesen Viermonatszeitraum fallen. Wird dieser Gutschein innerhalb dieses Zeitraums für ein Jahresabonnement eingelöst, wird der 50-prozentige Preisnachlass auf das gesamte Jahresabonnement angewendet. Bei monatlichen Abonnements gilt der Gutschein dagegen nur für die ersten 4 Monate. Im Falle von Abonnements mit wöchentlichem Zyklus wird ein Gutschein mit 4 Monaten Gültigkeitsdauer auf alle Rechnungen in diesen ersten 4 Monaten angerechnet. Wird die Gültigkeitsdauer in der API konfiguriert, muss bei dem Wert `repeating` unter `duration_in_months` die Anzahl der Monate eingegeben werden, die der Gutschein gültig ist. Wird als Gültigkeitsdauer dagegen `once` eingerichtet, ist der Gutschein nur für die erste Rechnung gültig. Wenn Sie die Laufzeit auf `forever` einstellen, gilt der Gutschein auf unbestimmte Zeit für alle Rechnungen. > Wenn ein Abonnement einen Gutschein mit `duration=once` verwendet, gilt der Gutschein nur für die nächste Rechnung und gilt nach Abschluss der Rechnung als verwendet. Nachdem der Gutschein angewendet wurde, enthält das Array `discounts` des Abonnements diesen Rabatt nicht mehr. Konkret heißt das Folgendes: > > - Bevor ein Gutschein auf eine Rechnung angewendet wird, enthalten die `discounts` des Abonnements das Rabattobjekt. - Nachdem die Rechnung, die den Gutschein verwendet hat, abgeschlossen oder bezahlt wurde, wird der Rabatt für die `discounts` des Abonnements nicht mehr angezeigt. - Die Rechnung, die den Gutschein verbraucht hat, zeigt weiterhin den angewendeten Rabatt auf der Rechnungsressource und den Posten an. > > Dieses Verhalten kann zu zwei häufig beobachteten Zuständen führen: einer Antwort eines Abonnements, die keinen Rabatt anzeigt (da ein Gutschein mit `duration=once` bereits verbraucht wurde), oder einer Antwort eines Abonnements, die den Rabatt nur in `discounts` anzeigt, wenn der Gutschein nicht angewendet wurde. > Wenn Sie einen Gutschein auf ein [rückdatiertes Abo](https://docs.stripe.com/billing/subscriptions/backdating.md) anwenden, beginnt die Gültigkeit des Gutscheins mit dem rückdatierten Startdatum und nicht mit dem Zeitpunkt, an dem Sie den API-Aufruf tätigen. Bei `Wiederholungsgutscheinen` bedeutet dies, dass der rückdatierte Zeitraum einen Teil der Gültigkeitsdauer des Gutscheins verbraucht. Die `duration_in_months` des Gutscheins muss länger sein als der rückdatierte Zeitraum, wenn der Rabatt auf Rechnungen nach dem rückdatierten Zeitraum angewendet werden soll. Weitere Informationen finden Sie unter [Rückdatierung und Rabatte](https://docs.stripe.com/billing/subscriptions/backdating.md#backdating-discounts). ### Einlöseobergrenzen Einlöseobergrenzen legen fest, wie oft ein Gutschein angewendet werden kann. Wird hier beispielsweise der Wert 50 festgelegt, kann der Gutschein bis zu 50 Mal angewendet werden. Dabei kann es sich um je einen einzelnen für 50 verschiedene Kund/innen, eine/n einzelne/n Kund/in oder mehrere Kund/innen handeln, die den Gutschein zusammen maximal 50 Mal einlösen können. Unbegrenzt gültige Gutscheine mit Ablaufdatum sind für ihre jeweiligen Besitzer/innen unbegrenzt gültig, können nach dem Ablaufdatum aber nicht mehr von anderen Personen angewendet werden. ## Promo-Codes Aktionscodes sind an Kundinnen und Kunden gerichtete Codes, die Sie für Gutscheine erstellen. Beispielsweise können HERBSTAKTION und FRÜHJAHRSAKTION beide auf den gleichen 25 %-Rabattgutschein verweisen. Sie können Aktionscodes direkt an Ihre Kundinnen und Kunden weitergeben, die sie dann während der Zahlung verwenden können. Wenn Sie das *Kundenportal* (The customer portal is a secure, Stripe-hosted page that lets your customers manage their subscriptions and billing details) implementiert und Promo-Codes aktiviert haben, können Kund/innen beim Up- oder Downgrade ihrer bestehenden Abonnements im Portal einen Rabatt anwenden. > Bei Abonnements werden Promo-Code- und Preisaktualisierungen getrennt voneinander angewendet, was zu unerwarteten Aktualisierungen führen kann. Beispielsweise kann eine fehlgeschlagene Zahlung dazu führen, dass eine Preiserhöhung fehlschlägt, der mit der Preiserhöhung enthaltene Promo-Code jedoch erfolgreich ist. > Im Kundenportal werden Aktionscodes angezeigt, die auf ein Abonnement angewendet wurden. Wenn Sie nicht möchten, dass Kund/innen den Aktionscode selbst anwenden oder möglicherweise mit anderen teilen, sollten Sie entweder [Beschränkungen für den Aktionscode festlegen](https://docs.stripe.com/billing/subscriptions/coupons.md#promo-code-config) oder direkt [einen Gutschein anwenden](https://docs.stripe.com/billing/subscriptions/coupons.md#discount-subscriptions). Konfigurieren Sie Ihre Promo-Codes, indem Sie Empfangsberechtigte, Erstbestellungen, Mindestbestellwerte, Ablaufdaten und Einlöseobergrenzen festlegen. ### Einschränkungen Für Promo-Codes gelten einige Einschränkungen. - Sie können Promo-Codes mit Höchstbeträgen nicht auf Folgendes anwenden: - [Abonnementposten-Objekte](https://docs.stripe.com/api/subscription_items/object.md) - [Rechnungsposten-Objekte](https://docs.stripe.com/api/invoiceitems/object.md) - [Abonnement-Objekte](https://docs.stripe.com/api/subscriptions/object.md), wenn Sie eine Aktualisierung vornehmen - Zukünftige Phasen von [Abonnementzeitplan-Objekten](https://docs.stripe.com/api/subscription_schedules/object.md) ### Promo-Codes erstellen #### Dashboard Promo-Codes können im Dashboard unter [Gutschein erstellen](https://docs.stripe.com/billing/subscriptions/coupons.md#create-a-coupon) erstellt werden. Bei diesem **Code** muss die Groß-/Kleinschreibung beachtet werden. Er ist unter allen offenen Promo-Codes einzigartig. Hier ein Beispiel: - Mehrere kundenspezifische Promo-Codes können mit demselben **Code** erstellt werden. Dies gilt jedoch nicht für Promo-Codes ohne Kundenbeschränkung. - Wurde bereits ein Promo-Code ohne Kundenbeschränkung erstellt, kann mit demselben **Code** also kein weiterer Promo-Code erstellt werden. - Sie können einen Promo-Code mit einem **Code** erstellen, diesen [deaktivieren](https://docs.stripe.com/billing/subscriptions/coupons.md#deactivate) und dann einen neuen Promo-Code mit demselben **Code** erstellen. 1. Im Dashboard klickt man unter [Gutschein erstellen](https://dashboard.stripe.com/test/coupons/create) auf die Schaltfläche **Kunden-Promo-Codes verwenden** 2. Geben Sie einen Code ein. Diesen Code geben Kundinnen und Kunden bei der Zahlung ein, um den Rabatt einzulösen. Wenn Sie keinen Code festlegen, generiert Stripe einen für Sie. 3. Stellen Sie Einlösebedingungen auf. So können Sie den Gutschein beispielsweise auf Erstbestellungen beschränken. #### API Bei dem `code` muss die Groß-/Kleinschreibung beachtet werden. Er ist unter allen Promo-Codes einzigartig. Hier ein Beispiel: - Mehrere kundenspezifische Promo-Codes können mit demselben `code` erstellt werden. Dies gilt jedoch nicht für Promo-Codes ohne Kundenbeschränkung. - Wurde bereits ein Promo-Code ohne Kundenbeschränkung erstellt, kann mit demselben `code` also kein weiterer Promo-Code erstellt werden. - Sie können einen Promo-Code mit `code: NEWUSER` erstellen, ihn durch die Weitergabe von `active: false` deaktivieren und anschließend einen neuen Promo-Code mit `code: NEWUSER` anlegen. Um einen [Aktionscode](https://docs.stripe.com/api/promotion_codes.md) zu erstellen, geben Sie einen vorhandenen `Coupon` und alle Einschränkungen an (z. B. nur für einen bestimmte `Customer` aktiviert). Sie können die Zeichenfolge des Codes (z. B. `FALL25OFF`) im Parameter `code` angeben. Wenn Sie keine Zeichenfolge für den Code angeben, generiert Stripe eine zufällige. #### Accounts v2 ```curl curl https://api.stripe.com/v1/promotion_codes \ -u "<>:" \ -d "coupon={{COUPON_ID}}" \ -d code=ALICE20 \ -d "customer_account={{CUSTOMERACCOUNT_ID}}" ``` #### Customers v1 ```curl curl https://api.stripe.com/v1/promotion_codes \ -u "<>:" \ -d "coupon={{COUPON_ID}}" \ -d code=ALICE20 \ -d "customer={{CUSTOMER_ID}}" ``` Promo-Codes übernehmen die Eckdaten des zugrunde liegenden Gutscheins. ### Promo-Codes konfigurieren In den Promo-Code-Einstellungen können Sie die folgenden Variablen verändern: - Teilnahmeberechtigte - Einlöseobergrenze - Ablaufdatum - Mindestbetrag ### Kundenbeschränkung #### Dashboard Führen Sie die folgenden Schritte aus, um einen Aktionscode auf eine bestimmte Kundin/einen bestimmten Kunden zu beschränken: 1. Wählen Sie auf der Seite [Gutschein erstellen](https://dashboard.stripe.com/test/coupons/create) die Option **Auf eine bestimmte Kundin/einen bestimmten Kunden beschränken** aus. 2. Wählen Sie den entsprechenden Kunden/die entsprechende Kundin aus. Wenn Sie keine bestimmte Kundin/keine bestimmten Kunden angeben, kann jede/r Kund/in den Promo-Code einlösen. #### API Um einen Aktionscode auf einen bestimmten Kunden/eine bestimmte Kundin zu beschränken, geben Sie beim Erstellen des Promo-Codes einen `customer_account` oder einen `customer` an. Wenn Sie keinen bestimmten Kunden/keine bestimmte Kundin angeben, kann jeder Kunde/jede Kundin den Aktionscode einlösen. ### Erstbestellungen Beschränkt den Gutschein auf Kunden, die noch keine Transaktionshistorie auf Ihrer Plattform haben. Diese Einstellung verhindert, dass Kunden den Gutschein verwenden, wenn Folgendes auf sie zutrifft: - Sie haben einen PaymentIntent initiiert, auch wenn die Zahlung nie abgeschlossen wurde. - Sie haben ein Abonnement für einen Testzeitraum, auch wenn es später gekündigt wurde. #### Dashboard Um einen Aktionscode auf Erstkunden zu beschränken, wählen Sie auf der Seite [Erstellen eines Gutschein](https://dashboard.stripe.com/test/coupons/create) die Option **Nur für erstmalige Bestellung**. #### API Beschränken Sie den Aktionscode auf Erstkundinnen und -kunden, indem Sie den Parameter `first_time_transaction` des Attributs`restrictions` festlegen. ### Mindestbestellwert #### Dashboard Um einen Mindestbetrag für einen Promo-Code festzulegen, gehen Sie unter [Gutschein erstellen](https://dashboard.stripe.com/test/coupons/create) auf **Mindestbestellwert erforderlich** und geben Sie einen Mindestbetrag ein. Da die Erfüllung der Code-Bedingungen beim Einlösen überprüft wird, gilt der Mindestbestellwert bei Abonnements nur für die erste Zahlung. Wenn der Coupon mehrere Währungen unterstützt, kann der Mindestbetrag pro Währung unterschiedlich ausfallen. #### API Bei Promo-Codes können Sie einen Mindesttransaktionsbetrag für einen berechtigten Rabatt festlegen, indem Sie die Eigenschaften `minimum_amount` und `minimum_amount_currency` konfigurieren. Da die Einschränkungen des Promo-Codes zum Zeitpunkt der Einlösung geprüft werden, gilt der Mindesttransaktionsbetrag nur für die Erstzahlung eines Abonnements. Wenn Sie Verkäufe in mehreren Währungen tätigen, legen Sie den Mindesttransaktionsbetrag für verschiedene Währungen fest, indem Sie die Eigenschaft `currency_options` konfigurieren. ### Ablaufdatum #### Dashboard Um ein Ablaufdatum für einen Promo-Code festzulegen, gehen Sie unter [Gutschein erstellen](https://dashboard.stripe.com/test/coupons/create) auf **Ablaufdatum hinzufügen** und geben ein Datum ein, an dem der Gutschein abläuft. Liegt für den betreffenden Gutschein bereits ein Ablaufdatum vor, kann das Ablaufdatum des Promo-Codes nicht später als das des Gutscheins liegen. Beispiel: Ein Gutschein soll ein Jahr lang angeboten werden, ab Empfang aber nur eine Woche einlösbar sein. In diesem Fall würden Sie das Ablaufdatum des Gutscheins ein Jahr in die Zukunft verlegen, das des Promo-Codes dagegen auf eine Woche nach seiner Erstellung festsetzen. #### API Mit `expires_at` kann man ein Ablaufdatum für den Promo-Code festlegen. Wurde für den zugrunde liegenden Gutschein bereits ein `redeem_by` eingerichtet, kann das Ablaufdatum des Promo-Codes nicht später sein als Ablaufdatum des Gutscheins. Wird `promotion_code[expires_at]` nicht festgelegt, wird `expires_at` automatisch mit dem `redeem_by`-Wert des Gutscheins ausgefüllt. - Beispiel: Ein Gutschein soll ein Jahr lang angeboten werden, jedoch nur eine Woche ab dem Empfang einlösbar sein. In diesem Fall würden Sie `pon[redeem_by]` ein Jahr in die Zukunft verlegen, `motion_code[expires_at]` dagegen auf eine Woche nach seiner Erstellung festsetzen. ### Einlöseobergrenzen #### Dashboard Um festzulegen, wie oft der Aktionscode von Ihren Kundinnen und Kunden insgesamt eingelöst werden kann, wählen Sie auf der Seite [Gutschein erstellen](https://dashboard.stripe.com/test/coupons/create) die Option **Anzahl der Einlösungen dieses Codes begrenzen** und geben Sie die Anzahl ein. Weitere Informationen finden Sie unter [Einlösungslimits](https://docs.stripe.com/billing/subscriptions/coupons.md#redemption-limits). Weist der zugrunde liegende Gutschein bereits eine Einlöseobergrenze auf, kann die des Promo-Codes nicht darüber liegen. #### API Begrenzen Sie die Gesamtzahl der Male, die ein Aktionscode von Ihren Kundinnen und Kunden eingelöst werden kann, indem Sie `max_redemptions` verwenden, was ähnlich wie bei Gutscheinen funktioniert. Wenn für den zugrundeliegenden Gutschein bereits die Anzahl der `max_redemptions` festgelegt wurde, darf bei dem Aktionscode die Anzahl der `max_redemptions` nicht größer sein als bei dem Gutschein. Siehe [Einlösungslimits](https://docs.stripe.com/billing/subscriptions/coupons.md#redemption-limits) für weitere Informationen. ### Promo-Codes deaktivieren #### Dashboard So können Sie Promo-Codes wieder deaktivieren: 1. Navigieren Sie im Dashboard zum Abschnitt [Produkte](https://dashboard.stripe.com/test/products?active=true). 2. Klicken Sie auf **Gutscheine**. 3. Klicken Sie den Gutschein an, dessen Promo-Code ausgesetzt werden soll. 4. Klicken Sie in der entsprechenden Zeile mit dem Promo-Code auf das Überlaufmenü (⋯). 5. Anschließend klicken Sie auf **Promo-Code archivieren**. Wenn allerdings der zugrunde liegende Gutschein für einen Promo-Code ungültig wird, werden auch alle verknüpften Promo-Codes dauerhaft inaktiv. Ein Promo-Code wird auch dann dauerhaft inaktiv, wenn Einlöseobergrenze oder Ablaufdatum erreicht sind. Diese Promo-Codes können nicht wieder aktiviert werden. #### API Mit dem Parameter `active` können Sie festlegen, ob ein Promo-Code aktuell einlösbar sein soll. Wenn allerdings der zugrunde liegende Gutschein für einen Promo-Code ungültig wird, werden auch alle verknüpften Promo-Codes dauerhaft inaktiv. Ein Promo-Code wird auch dann dauerhaft inaktiv, wenn `max_redemptions` oder `expires_at` erreicht sind. Diese Promo-Codes können nicht reaktiviert werden. ### Promo-Codes auf Abonnements anwenden Nachdem Sie einen Promo-Code erstellt haben, können Sie einen Rabatt einlösen, indem Sie den Promo-Code auf ein Abonnement anwenden. Für die Anwendung von Promo-Codes gibt es zwei Möglichkeiten: - [Neuerstellung eines Abonnements](https://docs.stripe.com/api.md#create_subscription) - [Aktualisierung eines bestehenden Kundenabonnements](https://docs.stripe.com/api.md#update_subscription) #### Dashboard 1. Navigieren Sie im Dashboard zu **Billing** > **Abonnements**. 2. Klicken Sie das jeweilige Abonnement an. 3. Klicken Sie auf **Aktionen** > **Abonnement aktualisieren** > **Gutschein hinzufügen**. 4. Wählen Sie einen Aktionscode im Dropdown-Menü aus und klicken Sie auf **Absenden**. #### API 1. Rufen Sie den passenden `PromotionCode` ab, indem Sie [Ihre PromoCodes auflisten](https://docs.stripe.com/api/promotion_codes/list.md) und die Zeichenfolge des Codes angeben, den Ihr Kunde/Ihre Kundin im Parameter [Code](https://docs.stripe.com/api/promotion_codes/list.md#list_promotion_code-code) eingegeben hat. 2. Um den Aktionscode einzulösen, verwenden Sie die Aktionscode-ID im folgenden API-Aufruf: #### Accounts v2 ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer_account={{CUSTOMERACCOUNT_ID}}" \ -d "items[0][price]={{PRICE_ID}}" \ -d "discounts[0][promotion_code]={{PROMOTIONCODE_ID}}" ``` #### Customers v1 ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d "items[0][price]={{PRICE_ID}}" \ -d "discounts[0][promotion_code]={{PROMOTIONCODE_ID}}" ``` ### Promo-Codes zu Checkout hinzufügen Aktivieren Sie Promo-Codes mit der API, indem Sie den Parameter [allow_promotion_codes](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-allow_promotion_codes) in Checkout. Wenn `allow_promotion_codes` in einer Checkout-Sitzung aktiviert ist, enthält Checkout ein Feld zum Einlösen von Promo-Codes, das Ihre Kund: innen nutzen können. ![Aktionscode-Feld in Checkout](https://b.stripecdn.com/docs-statics-srv/assets/promo_code_checkout.c07ef6d4f0b1b3f9a8a7e4bbba83d56f.png) Aktionscode-Feld in Checkout ## Kombinierbare Gutscheine und Promo-Codes Sie können der Zahlungsliste einer Kundin/eines Kunden mehrere Gutscheine, Promo-Codes oder eingelöste [Rabatte](https://docs.stripe.com/api/.md#discounts) hinzufügen. Dies können Sie tun, [während Sie ein Abonnement erstellen](https://docs.stripe.com/api.md#create_subscription) oder indem Sie ein [bestehendes Kundenabonnement aktualisieren](https://docs.stripe.com/api.md#update_subscription). Wir unterstützen mehrere Rabatte für Abonnements und einzelne Abonnementposten. Wenn Sie ein Abonnement mit kombinierbaren Rabatten erstellen, gilt jeder Rabatt für alle Artikel im Abonnement. Die Reihenfolge der Rabatte ist wichtig, wenn Sie sowohl `amount_off` als auch `percent_off` verwenden. Beispielsweise werden die folgenden kombinierbaren Rabatte unterschiedlich angewendet: - 20% off *then* 5 USD off - 5 USD off *then* 20% off #### Dashboard 1. Navigieren Sie im Dashboard zu **Billing** > **Abonnements**. 2. Klicken Sie das jeweilige Abonnement an. 3. Klicken Sie auf **Aktionen** > **Abonnement aktualisieren** > **Gutschein hinzufügen**. 4. Wählen Sie die gewünschten Gutscheine in den Dropdown-Menüs aus und klicken Sie auf **Absenden**. 5. Klicken Sie das gewünschte Produkt an. 6. Klicken Sie auf **Gutscheine hinzufügen**. 7. Wählen Sie die gewünschten Gutscheine in den Dropdown-Menüs aus und klicken Sie auf **Absenden**. #### API #### Accounts v2 ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer_account={{CUSTOMERACCOUNT_ID}}" \ -d "items[0][price]={{PRICE_ID}}" \ -d "items[0][discounts][0][coupon]=item-coupon" \ -d "items[0][discounts][1][promotion_code]=item-promo" \ -d "discounts[0][coupon]=sub-coupon" \ -d "discounts[1][promotion_code]=sub-promo" ``` #### Customers v1 ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d "items[0][price]={{PRICE_ID}}" \ -d "items[0][discounts][0][coupon]=item-coupon" \ -d "items[0][discounts][1][promotion_code]=item-promo" \ -d "discounts[0][coupon]=sub-coupon" \ -d "discounts[1][promotion_code]=sub-promo" ``` ### Einschränkungen Es gelten einige Einschränkungen für die Verwendung mit mehreren Rabatten. - Sie können bis zu 20 Einträge im Parameter `discounts` festlegen. - Jeder Eintrag unter `discounts` muss einzigartig sein. - Sie können nicht einen Gutschein und einen aus demselben Gutschein stammenden Promo-Code übergeben. - Sie können nicht einen Gutschein und einen aus demselben Gutschein stammenden Rabatt übergeben. - Eingelöste Rabatte müssen bereits mit der Kundin/dem Kunden oder dem Abonnement verknüpft sein, das Sie aktualisieren. ### Abonnement aktualisieren Sie müssen keine `discounts` festlegen, wenn Sie keine Änderungen an bestehenden Rabatten vornehmen möchten. Bei der Aktualisierung von `discounts` müssen Sie alle zuvor festgelegten Optionen für `coupon`, `promotion_code` oder `discount` übergeben, die in das Abonnement übernommen werden sollen. Übergeben Sie `discounts = ""`, um alle Rabatte aus dem Abonnement zu löschen. Wenn für ein Abonnement keine Rabatte angegeben sind, wird auf den Rechnungen der Rabatt auf Kundenebene angegeben, falls einer vorhanden ist. Wenn Sie bereits mehr als einen Rabatt für ein Abonnement mit dem neuen Parameter `discounts` festgelegt haben, können Sie das Abonnement nicht mit den veralteten Parametern `coupon` oder `promotion_code` aktualisieren. Ebenso können Sie die Phasen eines Zeitplans nicht mit den veralteten Parametern `coupon` oder `promotion_code` aktualisieren, wenn Sie mehr als einen Rabatt für eine frühere Phase festgelegt haben. Durch die Aktualisierung von `discounts` fallen keine anteilmäßigen Gebühren an und es wird auch keine gesonderte Rechnung erstellt. Die neuen Rabatte werden angewendet, wenn die nächste Abo-Rechnung planmäßig erstellt wird. > Durch die Aktualisierung von Promo-Codes, Gutscheinen oder Rabatten auf Abonnementebene werden keine anteilmäßigen Verrechnungen von Rechnungsposten erstellt. Nur Änderungen, die sich auf abrechnungsfähige Beträge für den aktuellen Abrechnungszyklus auswirken, werden anteilig verrechnet, z. B. das Ändern von `price` oder `quantity` für den Posten eines Abonnements, das Hinzufügen oder Entfernen von Posten eines Abonnements oder das Ändern von Ankern für Abrechnungszyklen. > > Wenn Sie jedoch eine Rabattänderung mit einer Aktualisierung, die eine anteilmäßige Verrechnung auslöst, kombinieren (z. B. durch Ändern einer Artikelmenge und Modifizieren eines Rabatts in demselben API-Aufruf), berechnet Stripe die Beträge der anteilmäßigen Verrechnung anhand des aktualisierten Preis- und Rabattstatus des Abonnements. Die Belastung oder Gutschrift der anteilmäßigen Verrechnung spiegelt die geänderten Rabatte wider. ## Alternative Rabattverfahren Gutscheine sind das gängigste Verfahren für Rabatte auf Abonnements. Es gibt aber auch noch die folgenden Möglichkeiten: - Negatives [Kundensaldo](https://docs.stripe.com/api.md#customer_object-balance). - Negative [Rechnungsposten](https://docs.stripe.com/billing/invoices/subscription.md#adding-draft-invoice-items). - [Alternativpreise](https://docs.stripe.com/products-prices/manage-prices.md#create-price) unterhalb des üblichen Produktpreises. Dabei bieten negative Rechnungsposten die Möglichkeit, genau aufzuschlüsseln, welcher Rabatt zu welchem Zeitpunkt aus welchem Grund angewendet wurde. ## See also - [Abonnements ändern](https://docs.stripe.com/billing/subscriptions/change.md) - [Anteilmäßige Verrechnungen](https://docs.stripe.com/billing/subscriptions/prorations.md) - [Mit Rechnungen arbeiten](https://docs.stripe.com/billing/invoices/subscription.md) - [Coupons API](https://docs.stripe.com/api.md#coupons) - [Promotion Codes API](https://docs.stripe.com/api.md#promotion_codes)