
Checkout Sessions
Wenden Sie während des gehosteten Checkouts mit
discount_codes einen oder mehrere gestapelte Codes an und nutzen Sie die UI-Steuerungen.Get Discount
Rufe einen Rabatt über seine ID ab, um seinen Status und seine Einschränkungen zu überprüfen.
Get Discount by Code
Suchen und validieren Sie einen Rabatt über seinen Code-Namen (z. B. „SAVE20“).
Create Discount (API)
Erstellen Sie programmatisch neue Rabattcodes.
List & Update Discounts
Durchsuchen und verwalten Sie bestehende Rabatte; aktualisieren oder löschen Sie diese bei Bedarf.
Plan Change Discounts
Wenden Sie Rabattcodes beim Upgraden oder Downgraden von Abonnementplänen an.
Was sind Rabattcodes?
Rabattcodes sind Werbe-Token, die die Bestellsumme beim Checkout reduzieren. Verwenden Sie sie für saisonale Kampagnen, Anreize für Erstkäufe, Rückgewinnungsangebote oder ausgehandelte B2B-Preise. Codes sind prozentual (z. B. 15 % Rabatt) oder als fester Betrag (z. B. 5 $ Rabatt) definiert. Sie können bis zu 20 Codes pro Checkout, Zahlung oder Abonnement kombinieren, sodass ein Kunde sowohl ein Willkommensangebot als auch einen Kampagnencode in derselben Transaktion einlösen kann. Beschränken Sie Codes auf bestimmte Produkte, legen Sie fest, wie oft jeder Kunde sie verwenden kann, setzen Sie Ablaufdaten und bestimmen Sie, wer sie einlösen darf.Hauptvorteile
- Flexible Rabatte: Prozentuale Rabatte oder Rabatte mit festem Betrag
- Kombinierbare Codes: Wenden Sie bis zu 20 Codes pro Checkout, Zahlung oder Abonnement an
- Gezielte Steuerung: Beschränkung nach Produkt, Abonnementzyklen und Kundenberechtigung
- Kampagnenverwaltung: Geplante Startdaten, Ablaufdaten sowie allgemeine und kundenbezogene Nutzungslimits
- Preise pro Währung: Legen Sie den festen Abzugsbetrag, die Betragsobergrenze und den Mindestzwischensumme pro Währung fest
Rabattcodes erstellen
Erstellen Sie Rabattcodes in Ihrem Dodo Payments-Dashboard und wenden Sie diese im gehosteten Checkout oder über API an.
Einrichtung im Dashboard
- Rabattname (erforderlich): Interne Bezeichnung für das Dashboard.
- Code (erforderlich): Die Zeichenfolge, die Kunden beim Checkout eingeben. Generieren Sie einen zufälligen Code oder geben Sie einen eigenen ein (mindestens 3 Zeichen, automatisch in Großbuchstaben umgewandelt).
- Typ (erforderlich): Percentage (prozentualer Rabatt) oder Amount (fester Abzugsbetrag).
- Amount (erforderlich): Bei Percentage der prozentuale Rabatt im Dashboard (z. B.
15für 15 %). Über die API wird derselbe Wert in Basispunkten angegeben (1500). Bei Amount der feste Abzugsbetrag in der Standardwährung des Codes. - Start Date (optional): Planen Sie die Aktivierung des Codes für ein zukünftiges Datum. Lassen Sie das Feld leer, um ihn sofort zu aktivieren.
- Expiration Date (optional): Datum, nach dem der Code nicht mehr eingelöst werden kann.
- Usage Limit (optional, unter Advanced): Maximale Gesamtzahl der Einlösungen über alle Kunden hinweg. Ein Warenkorb mit mehreren Abonnements zählt als eine Einlösung.
- Per-Customer Usage Limit (optional, unter Advanced): Maximale Anzahl der Einlösungen durch einen einzelnen Kunden. Wenn beide Limits festgelegt sind, muss dieser Wert kleiner oder gleich dem allgemeinen Nutzungslimit sein.
- Customer Eligibility (optional): Beschränken Sie, wer den Code einlösen darf — alle Kunden, Erstkunden, bestehende Kunden oder eine manuell ausgewählte Liste.
- Currency Options (optional): Der Rabattbetrag für jede Währung, in der Sie verkaufen. Siehe Optionen pro Währung.
- Product Restriction (optional): Beschränken Sie den Code auf bestimmte Produkte.
- Subscription Cycle Limit (optional, unter Advanced): Anzahl der Abrechnungszyklen, für die der Rabatt gilt. Für eine unbegrenzte Gültigkeit leer lassen.
- Preserve on Plan Change (optional): Rabatt aktiv halten, wenn ein Abonnement den Tarif wechselt (
preserve_on_plan_change). - Metadata (optional): Benutzerdefinierte Schlüssel-Wert-Paare für die interne Nachverfolgung anhängen.
- Require a minimum order value (optional, unter Advanced): Mindestzwischensumme des Warenkorbs (pro Währung), ab der der Code angewendet wird.


Ein prozentualer
amount wird über die API in Basispunkten angegeben — 1500 entspricht 15 %. Ein fester amount ist ein Geldwert und wird durch die Währungsoptionen des Codes bestimmt.Rabattarten
Beide Typen können im selben
discount_codes-Array kombiniert werden und werden in der Reihenfolge des Arrays angewendet.

Kundenberechtigung
Legecustomer_eligibility fest, um zu steuern, wer einen Code einlösen darf:

Optionen pro Währung
Wenn Sie in mehreren Währungen verkaufen, legen Sie für jeden Code das Verhalten pro Währung fest. Unter Währungsoptionen gibt jeder Eintrag Folgendes an:- Betrag — bei einem Rabatt vom Typ Betrag der feste Abzug in dieser Währung; bei einem prozentualen Rabatt die maximale Rabattobergrenze. Wird in der API auf
max_amount_possibleabgebildet. - Standard — Legen Sie eine Währung als Standard fest. Nicht konfigurierte Währungen werden aus dieser Standardwährung umgerechnet.
- Mindestzwischensumme — Der Code wird nur angewendet, wenn der Warenkorb diese Zwischensumme in der jeweiligen Währung erreicht.
0bedeutet, dass kein Mindestwert festgelegt ist.

Die Mindestzwischensumme wird immer anhand der ursprünglichen Preise des Warenkorbs berechnet, nicht anhand der laufenden Summe nach zuvor angewendeten Rabatten. Die Reihenfolge der Rabatte ändert nie, ob ein Mindestwert erreicht wird.Bei einem Abonnement wird der Mindestwert einmal anhand des Produkts und seiner Zusatzoptionen zusammen geprüft. Beispiel: Ein Produkt für $0 erfüllt zusammen mit einer Zusatzoption für $5 einen Mindestwert von $4. Ein Code vom Typ Amount (
flat) wird weiterhin nur auf das Abonnementprodukt angewendet, nicht auf dessen Zusatzoptionen.Checkout-Erlebnis
Kunden geben Rabattcodes in das Checkout-Feld ein. Berechtigte Codes werden sofort angewendet und die Gesamtsummen aktualisiert.
Über Checkout Sessions übergeben Sie
discount_codes (ein Array), um einen oder mehrere Codes vorab anzuwenden. Das Eingabefeld für Rabatte wird standardmäßig angezeigt. Setzen Sie feature_flags.allow_discount_code auf false, um es auszublenden. Codes werden in Array-Reihenfolge angewendet, bis zu einem Maximum von 20.Rabattcodes stapeln
Checkout sessions, payments und subscriptions akzeptieren bis zu 20 gestapelte Codes über das Arraydiscount_codes. Codes werden in Array-Reihenfolge angewendet: Der erste berechtigte Code reduziert den Ausgangspreis, der nächste den bereits rabattierten Preis usw. Wenn Purchasing Power Parity aktiviert ist, entspricht der Ausgangspreis dem um PPP angepassten Betrag. Die Antwort enthält discount_ids (bei payments/subscriptions) und discounts (detailliertere Angaben pro Rabatt, einschließlich Position und verbleibender Abonnementzyklen).
Das einzelne Feld
discount_code ist veraltet, wird aus Gründen der Abwärtskompatibilität jedoch vollständig unterstützt. Es kann nicht mit discount_codes in derselben Anfrage kombiniert werden. Migrieren Sie zu discount_codes (der Array-Form), um Stapelrabatte und die detailliertere Antwort zu nutzen.Wenn bei einem Abonnementpreis Card-Optional at Zero Price aktiviert ist, überspringt ein Code-Stapel, der den heute fälligen Betrag vollständig auf
0 reduziert, auch die Kartenanforderung — der Kunde schließt den Checkout ohne hinterlegte Zahlungsmethode ab, genauso wie bei einem nativen 0-Preis.API-Verwaltung
Create discounts
Create discounts
Erstellen Sie Rabattcodes programmgesteuert mit Typ und Betrag.
API Reference
Sehen Sie sich die API zum Erstellen von Rabatten an.
List and retrieve
List and retrieve
Listen Sie alle Rabatte auf oder rufen Sie Details für Verwaltung und Prüfung ab.
API Reference
Sehen Sie sich die APIs zum Auflisten und Abrufen an.
Get discount by code
Get discount by code
Suchen Sie einen Rabatt anhand seines lesbaren Codes (z. B. “SAVE20”) statt anhand der internen ID.
API Reference
Rabatt nach Codename abrufen.
Update discounts
Update discounts
Ändern Sie die Rabattkonfiguration, etwa Betrag, Ablaufdatum oder Einschränkungen.
API Reference
Erfahren Sie, wie Sie Rabattdetails aktualisieren.
Retrieve a discount
Retrieve a discount
Rufen Sie einen Rabatt anhand seiner ID ab, um Status, Nutzungsanzahl und Einschränkungen vor der Anwendung zu prüfen.
API Reference
Rabatt nach ID abrufen.
Delete discounts
Delete discounts
Deaktivieren oder entfernen Sie nicht mehr benötigte Rabatte.
API Reference
Rabatt löschen.
Manage the customer allow list
Manage the customer allow list
Bei einem Rabatt mit
customer_eligibility auf specific können Sie die Kunden verwalten, die ihn einlösen dürfen:GET /discounts/{discount_id}/customers— listet die verknüpften Kunden auf (paginiert, bis zu 100 pro Seite).POST /discounts/{discount_id}/customers— verknüpft Kunden anhand ihrer IDs. Der Aufruf ist idempotent und akzeptiert bis zu 1000 IDs, die alle bereits in Ihrem Unternehmen existieren müssen. Die Antwort enthält nur die in dieser Anfrage übermittelten IDs. Rufen Sie daher den Endpoint zum Auflisten auf, um die vollständige Allowlist zu lesen.DELETE /discounts/{discount_id}/customers/{customer_id}— trennt einen einzelnen Kunden.
Häufige Anwendungsfälle
- Einführungsangebote: Zeitlich begrenzte Launch-Aktionen für neue Produkte
- Großhandel oder B2B: Vertraglich vereinbarte Rabatte für ausgewählte Produktsets
- Kundenbindung: Rückgewinnungscodes in Workflows zur Abwanderungsprävention
- Saisonale Kampagnen: Auf Feiertagen oder Veranstaltungen basierende Aktionen
Integrationsbeispiele
Rabatt mit Metadata erstellen
Benutzerdefinierte Schlüssel-Wert-Paare für die interne Nachverfolgung anhängen.Rabatte in Checkout Sessions anwenden
Einen oder mehrere gestapelte Rabatte vorab anwenden und die Code-Eingabeoberfläche anzeigen.Rabatte bei Tarifänderungen anwenden
Bieten Sie bei einem Upgrade oder Downgrade des Abonnements eines Kunden einen Aktionspreis an.discount_codes steuert, wie Rabatte behandelt werden:
Lesen Sie alle angewendeten Rabatte aus dem Array
discounts des Abonnements in der Antwort. Jeder Eintrag enthält discount_id, position, cycles_remaining und den ursprünglichen Code.Rabattcodefeld ausblenden
Die Rabatteingabe wird standardmäßig angezeigt. Setzen Sieallow_discount_code auf false, um sie auszublenden.
Bewährte Vorgehensweisen
- Klar benennen: Verwenden Sie einprägsame Codes, die zu den Kampagnennamen passen.
- Zeitlich begrenzen: Fügen Sie Ablaufdaten hinzu, um Dringlichkeit zu erzeugen und Missbrauch zu verhindern.
- Gezielt beschränken: Beschränken Sie den Code auf bestimmte Produkte, um Margenverluste zu vermeiden.
- Früh validieren: Prüfen Sie die Anwendbarkeit des Codes, bevor Sie den Checkout bestätigen.
- Auswirkungen überwachen: Verfolgen Sie Nutzung und Konversion nach Kampagne.