> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# v1.70.0 (24. Dezember 2025)

> Inline-Checkout-Unterstützung, Verwendung vorhandener Zahlungsmethoden für sofortige Checkouts, Verwaltung von Abonnementplänen über das Dashboard, Generierung kurzer Zahlungslinks, Überspringen von Erfolgseiten mit redirect_immediately und Aktivierung von On-Demand-Abonnements für alle Unternehmen

## Neue Funktionen 🚀

1. **Inline-Checkout - Vollständig eingebettete Checkout-Erlebnisse (BETA)**

   Betten Sie den Dodo Payments-Checkout direkt in Ihre Website ein, um ein nahtloses, markenbezogenes Zahlungserlebnis zu schaffen. Im Gegensatz zum Overlay-Checkout, der als Modal geöffnet wird, bettet der Inline-Checkout das Zahlungsformular direkt in Ihr Seitenlayout ein.

   <Frame>
     <img src="https://mintcdn.com/dodopayments/HpxJAc8zNlxzewa_/images/inline-checkout/cover.png?fit=max&auto=format&n=HpxJAc8zNlxzewa_&q=85&s=99c1a92ef01680248a421d3f057b02cd" alt="Inline Checkout Cover Image" style={{ maxHeight: '500px', width: 'auto' }} width="839" height="565" data-path="images/inline-checkout/cover.png" />
   </Frame>

   ### Vorteile

   * **Vollständig integriert**: Erstellen Sie Checkout-Erlebnisse, die nahtlos mit Ihrer Website verschmelzen
   * **Benutzerdefinierte Bestellübersichten**: Erstellen Sie eine benutzerdefinierte UI, die in Echtzeit mit dem Checkout synchronisiert wird
   * **Maximale Kontrolle**: Volle Kontrolle über Layout und Design des Checkouts
   * **PCI-konform**: Dodo Payments verarbeitet alle sensiblen Zahlungsinformationen sicher
   * **Echtzeitsynchronisation**: Verwenden Sie SDK-Ereignisse, um Ihre UI mit dem Checkout-Zustand synchron zu halten

   ### So funktioniert es

   Initialisieren Sie das SDK mit `displayType: 'inline'` und betten Sie den Checkout in ein Container-Element ein:

   ```typescript theme={null}
   import { DodoPayments } from "dodopayments-checkout";

   // Initialize the SDK for inline mode
   DodoPayments.Initialize({
     mode: "test",
     displayType: "inline",
     onEvent: (event) => {
       if (event.event_type === "checkout.breakdown") {
         // Update your UI with real-time tax and total calculations
         const breakdown = event.data?.message;
       }
     },
   });

   // Open checkout in a specific container
   DodoPayments.Checkout.open({
     checkoutUrl: "https://test.dodopayments.com/session/cks_123",
     elementId: "dodo-inline-checkout" // ID of the container element
   });
   ```

   ### Hauptmerkmale

   * **Echtzeit-Aufschlüsselungsereignisse**: Empfangen Sie `checkout.breakdown`-Events, sobald Kunden ihre Daten eingeben
   * **Eigene Bestellübersichten**: Bauen Sie Ihre eigene Preisübersicht, die sich in Echtzeit aktualisiert
   * **Nahtlose Integration**: Der Checkout-Rahmen übernimmt die Zahlungserfassung, während Sie das Layout kontrollieren
   * **SDK-Methoden**: Verwenden Sie `open()`, `close()` und `isOpen()`, um den Checkout programmatisch zu steuern

   <Check>
     Ergebnis: Vollständig integrierte Checkout-Erlebnisse, die zu Ihrer Marke passen und maximale Kontrolle über den Zahlungsablauf bieten.
   </Check>

   <Tip>
     Verwenden Sie Inline Checkout, wenn Sie maximale Kontrolle über das Checkout-Design wünschen. Nutzen Sie den [Overlay-Checkout](/developer-resources/overlay-checkout) für eine schnellere Integration mit minimalen Änderungen an bestehenden Seiten.
   </Tip>

   Erfahren Sie mehr: [Inline Checkout Guide](/developer-resources/inline-checkout)

2. **Erstellen Sie Zahlungen, Abonnements und Checkouts mit vorhandenen Zahlungsmethoden**\
   Optimieren Sie Checkout-Flows, indem Sie gespeicherte Zahlungsmethoden bestehender Kunden verwenden. Der neue `payment_method_id`-Parameter ermöglicht es Ihnen, Zahlungen, Abonnements oder Checkout-Sitzungen mit einer zuvor gespeicherten Zahlungsmethode des Kunden zu erstellen.

   ### Vorteile

   * **Schnellerer Checkout**: Überspringen Sie die Erfassung der Zahlungsmethode für wiederkehrende Kunden
   * **Einkäufe mit einem Klick**: Ermöglichen Sie sofortige Käufe mit gespeicherten Zahlungsmethoden
   * **Abonnementverwaltung**: Erstellen Sie ganz einfach Abonnements mit vorhandenen Zahlungsmethoden
   * **Verbesserte Konversion**: Reduzieren Sie die Checkout-Reibung für wiederkehrende Kunden

   ### So funktioniert es

   Verwenden Sie `payment_method_id` beim Erstellen von Checkout-Sitzungen, Zahlungen oder Abonnements:

   <Tabs>
     <Tab title="Checkout Sessions">
       ```javascript theme={null}
       const session = await client.checkoutSessions.create({
         product_cart: [{ product_id: 'prod_123', quantity: 1 }],
         customer: {
           customer_id: 'cus_123'
         },
         payment_method_id: 'pm_abc123',
         confirm: true
       });
       ```
     </Tab>

     <Tab title="One-Time Payments">
       ```javascript theme={null}
       const payment = await client.payments.create({
         product_cart: [{ product_id: 'prod_123', quantity: 1 }],
         customer_id: 'cus_123',
         payment_method_id: 'pm_abc123'
       });
       ```
     </Tab>

     <Tab title="Subscriptions">
       ```javascript theme={null}
       const subscription = await client.subscriptions.create({
         customer_id: 'cus_123',
         product_id: 'prod_subscription',
         payment_method_id: 'pm_abc123'
       });
       ```
     </Tab>
   </Tabs>

   <Warning>
     Wenn `payment_method_id` in Checkout-Sitzungen verwendet wird, muss `confirm` auf `true` gesetzt und ein vorhandenes `customer_id` angegeben werden. Die Zahlungsmethode wird hinsichtlich der Währung der Zahlung auf Berechtigung überprüft.
   </Warning>

   <Info>
     Die Zahlungsmethode muss zum Kunden gehören und mit der Währung der Zahlung kompatibel sein. Bei fehlgeschlagener Validierung wird eine Fehlermeldung zurückgegeben.
   </Info>

3. **Änderungen der Abonnementpläne im Dashboard mit Updates zum nächsten Abrechnungsdatum**

   Verwalten Sie Abonnementpläne direkt über das Dashboard mit verbesserter Kontrolle. Sie können jetzt Abonnementpläne ändern und das nächste Abrechnungsdatum in einer einzigen Aktion aktualisieren, was Ihnen vollständige Flexibilität bei der Verwaltung von Abonnements gibt.

   <Frame>
     <img src="https://mintcdn.com/dodopayments/vqwKWj9TjLp0w5lS/images/changelog/subscription-plan-changes.png?fit=max&auto=format&n=vqwKWj9TjLp0w5lS&q=85&s=23d2cf888e9d70316e3a110c10bb77c6" alt="Abonnementplan-Änderungen im Dashboard" style={{ maxHeight: '500px', width: 'auto' }} width="1909" height="962" data-path="images/changelog/subscription-plan-changes.png" />
   </Frame>

   ### Dashboard-Funktionen

   * **Planänderungen**: Abonnements mit einem Klick upgraden oder downgraden
   * **Kontrolle des Abrechnungsdatums**: Aktualisieren Sie das nächste Abrechnungsdatum beim Ändern von Plänen
   * **Prorationsoptionen**: Wählen Sie aus, wie Prorationen beim Ändern von Plänen behandelt werden
   * **Visuelle Vorschau**: Sehen Sie genau, wie sich Planänderungen auf die Abrechnung auswirken, bevor Sie bestätigen

   ### Anwendungsfälle

   * **Kundensupport**: Abonnementpläne schnell an Kundenanfragen anpassen
   * **Promotions-Upgrades**: Temporäres Upgrade von Kunden mit bestimmten Abrechnungsdaten
   * **Planmigrationen**: Sanfter Übergang von Kunden zwischen Abonnementstufen
   * **Abrechnungsanpassung**: Abrechnungsdaten über mehrere Abonnements hinweg anpassen

   <Check>
     Ergebnis: Vollständige Kontrolle über das Abonnement-Management direkt im Dashboard, wodurch der Bedarf an API-Aufrufen für häufige Abonnementanpassungen reduziert wird.
   </Check>

   <Tip>
     Verwenden Sie das Dashboard für schnelle Änderungen von Abonnementplänen und die API für das programmatische Abonnement-Management in Ihrer Anwendung.
   </Tip>

4. **Kurze Links für Zahlungs-URLs**\
   Generieren Sie sauberere, besser teilbare Zahlungslinks mit unserer neuen Funktion für kurze Links. Kurze Links bieten verkürzte Checkout-URLs mit benutzerdefinierten Slugs, die einfacher mit Kunden zu teilen oder auf Ihrer Website einzubetten sind.

   <Frame>
     <img src="https://mintcdn.com/dodopayments/vqwKWj9TjLp0w5lS/images/changelog/short-links.png?fit=max&auto=format&n=vqwKWj9TjLp0w5lS&q=85&s=c5361cb37520128513ed5e3b1111fbb1" alt="Kurze Links Funktion für Zahlungs-URLs" style={{ maxHeight: '500px', width: 'auto' }} width="1915" height="962" data-path="images/changelog/short-links.png" />
   </Frame>

   ### Vorteile

   * **Sauberere URLs**: Ersetzen Sie lange Zahlungs-URLs durch kurze, markenbezogene Links
   * **Besseres Vertrauen**: Professionell aussehende Links, die das Vertrauen der Kunden stärken
   * **Einfacheres Teilen**: Vereinfachte URLs, die perfekt für SMS, E-Mail oder soziale Medien sind
   * **Benutzerdefinierte Slugs**: Erstellen Sie einprägsame, markenbezogene kurze Links für Ihre Produkte

   ### So funktioniert es

   Aktivieren Sie kurze Links beim Erstellen von Checkout-Sitzungen oder Zahlungslinks:

   <Tabs>
     <Tab title="Checkout Sessions">
       ```javascript theme={null}
       const session = await client.checkoutSessions.create({
         product_cart: [{ product_id: 'prod_123', quantity: 1 }],
         short_link: true,
         return_url: 'https://yourapp.com/success'
       });
       ```
     </Tab>

     <Tab title="Payment Links">
       ```javascript theme={null}
       const payment = await client.payments.create({
         product_cart: [{ product_id: 'prod_123', quantity: 1 }],
         short_link: true,
         return_url: 'https://yourapp.com/success'
       });
       ```
     </Tab>
   </Tabs>

   <Check>
     Ergebnis: Ein verkürzter Zahlungslink, der sich einfacher teilen lässt und professioneller wirkt, wodurch Konversionsraten und Kundenvertrauen steigen.
   </Check>

   <Info>
     Kurzlinks werden in Ihrem Dashboard verwaltet und können über die [List Short Links API](/api-reference/products/get-products-short-links) eingesehen werden.
   </Info>

5. **`redirect_immediately`-Flag – Überspringen der Zahlungs-Erfolgsseite**\
   Steuern Sie den Checkout-Ablauf mit dem neuen `redirect_immediately`-Flag. Wenn aktiviert, werden Kunden unmittelbar nach Abschluss der Zahlung weitergeleitet, wodurch die standardmäßige Erfolgsseite für ein schnelleres, nahtloseres Erlebnis umgangen wird.

   ### Anwendungsfälle

   * **Schnellerer Checkout-Fluss**: Reibung reduzieren, indem Zwischenseiten übersprungen werden
   * **Benutzerdefinierte Erfolgseiten**: Direkt zu Ihrer markenbezogenen Erfolgseite umleiten
   * **Mobile Optimierung**: Verbesserung des mobilen Checkout-Erlebnisses durch sofortige Umleitungen
   * **Eingebettete Checkouts**: Nahtlose Integration mit Overlay- oder eingebetteten Checkout-Flows

   ### So funktioniert es

   Aktivieren Sie sofortige Umleitungen in Checkout-Sitzungen, Zahlungen oder Abonnements:

<Tabs>
  <Tab title="Checkout Sessions">
    ```javascript theme={null}
    const session = await client.checkoutSessions.create({
      product_cart: [{ product_id: 'prod_123', quantity: 1 }],
      feature_flags: {
        redirect_immediately: true
      },
      return_url: 'https://yourapp.com/success'
    });
    ```
  </Tab>

  <Tab title="One-Time Payments">
    ```javascript theme={null}
    const payment = await client.payments.create({
      product_cart: [{ product_id: 'prod_123', quantity: 1 }],
      redirect_immediately: true,
      return_url: 'https://yourapp.com/success'
    });
    ```
  </Tab>

  <Tab title="Subscriptions">
    ```javascript theme={null}
    const subscription = await client.subscriptions.create({
      customer_id: 'cus_123',
      product_id: 'prod_subscription',
      redirect_immediately: true,
      return_url: 'https://yourapp.com/success'
    });
    ```
  </Tab>
</Tabs>

<Tip>
  Verwenden Sie `redirect_immediately: true`, wenn Sie eine benutzerdefinierte Erfolgsseite haben, die eine bessere Benutzererfahrung bietet als die standardmäßige Zahlungs-Erfolgsseite.
</Tip>

<Note>
  Wenn `redirect_immediately` aktiviert ist, werden Kunden unmittelbar nach Abschluss der Zahlung zu Ihrer `return_url` weitergeleitet, wobei die standardmäßige Erfolgsseite vollständig übersprungen wird.
</Note>

6. **On-Demand-Abonnements - Für alle Unternehmen verfügbar**\
   On-Demand-Abonnements sind jetzt für alle Unternehmen aktiviert, was Ihnen flexible Abrechnungssteuerung für nutzungsbasierte und gemessene Dienste bietet.

   ### Was dies ermöglicht

   * **Nutzungsbasierte Abrechnung**: Erstellen Sie Abonnements und berechnen Sie Kunden basierend auf der tatsächlichen Nutzung
   * **Flexible Abrechnungszyklen**: Berechnen Sie Kunden auf Abruf anstelle von festen Intervallen
   * **Gemessene Dienste**: Perfekt für API-Nutzung, Speicher, Rechenzeit und andere gemessene Ressourcen
   * **Manuelle Abrechnungssteuerung**: Erstellen Sie bei Bedarf manuelle Abrechnungen, um die vollständige Kontrolle über den Abrechnungszeitpunkt zu haben

   ### So funktioniert es

   Erstellen Sie ein On-Demand-Abonnement und berechnen Sie Kunden nach Bedarf:

   ```javascript theme={null}
   // Create an on-demand subscription
   const subscription = await client.subscriptions.create({
     customer_id: 'cus_123',
     product_id: 'prod_api_access',
     on_demand: true
   });

   // Charge the customer when usage occurs
   await client.subscriptions.charge(subscription.id, {
     amount: 4900,
     currency: 'USD',
     description: 'API usage for September: 1,000 requests'
   });
   ```

   <Check>
     Ergebnis: Volle Kontrolle darüber, wann und wie viel Kunden berechnet wird – perfekt für nutzungsbasierte Geschäftsmodelle.
   </Check>

   Erfahren Sie mehr: [On-Demand-Abonnements](/developer-resources/ondemand-subscriptions)

7. **Allgemeine Fehlerbehebungen und Verbesserungen**\
   Dieses Release umfasst Leistungsverbesserungen, UI-Optimierungen und behebt kleinere Fehler für ein zuverlässigeres, reibungsloseres Erlebnis.
