> ## 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.84.0 (February 20, 2026)

> Product-level analytics, Verifi RDR dispute prevention, DodoPayments CLI, customer portal UI revamp, inline checkout payment method updates, Tax ID prefill, return URL query params, customer email update API, and Bun adapter

## Neue Funktionen

### 1. **Produktbezogene Analysen**

Jedes Produkt verfügt jetzt über ein **dediziertes Analyse-Dashboard**. Navigiere zu **Produkte > \[Produkt auswählen]**, um detaillierte Metriken für dieses Produkt aufzurufen, organisiert auf fünf Registerkarten:

<Frame>
  <img src="https://mintcdn.com/dodopayments/QP0nYJEAkU83kGFn/images/product-analytics/overview.png?fit=max&auto=format&n=QP0nYJEAkU83kGFn&q=85&s=f2ce88b712ba0205839cd334d0f2a367" alt="Produktspezifische Analysen" style={{ maxHeight: '500px', width: 'auto' }} width="2368" height="1564" data-path="images/product-analytics/overview.png" />
</Frame>

| Registerkarte  | Was du erhältst                                                                                                                                          |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Übersicht**  | Gesamterlös, Anzahl erfolgreicher Zahlungen, 30-Tage-Umsatztrenddiagramm (täglich oder kumulativ) und eine nach Filter durchsuchbare Transaktionstabelle |
| **Kunden**     | Top 3 Kunden nach Ausgaben mit Podestansicht sowie eine vollständige Kundenaufgeschlüsselungstabelle                                                     |
| **Retention**  | Kundenabwanderungsrate, Umsatzabwanderungsrate und ein Doppel-Linien-Trenddiagramm zur Mustererkennung                                                   |
| **Abonnenten** | Alle Abonnements für das Produkt mit Status, Startdatum, nächstem Abrechnungsdatum und Betrag                                                            |
| **MRR**        | Monatsrecurring-Revenue-Stapelbalkendiagramm mit Aufschlüsselung in New MRR, Expansion MRR, Churned MRR und Net New MRR                                  |

Alle Registerkarten unterstützen einen **Datumsfilter** (Standard: Alle Zeiten), damit du jeden Zeitraum analysieren kannst.

<Tip>
  Verwende den Retention-Tab, um Produkte mit hoher Abwanderung frühzeitig zu erkennen, und den MRR-Tab, um zu verfolgen, ob Expansion-Umsatz den Churn-Umsatz Monat für Monat übersteigt.
</Tip>

Mehr erfahren: [Product-Level Analytics](/features/analytics-and-reporting#product-level-analytics)

### 2. **Verifi RDR-Unterstützung für Dodo Payments**

Dodo Payments unterstützt jetzt **Visa Rapid Dispute Resolution (RDR)** powered by Verifi – ein automatisiertes Streitvermeidungstool, das berechtigte Visa-Streitigkeiten **bevor sie zu formellen Rückbuchungen werden**, löst. Wenn ein Karteninhaber eine Streitigkeit initiiert, fängt RDR sie ab und erstattet automatisch, wenn der Betrag unter deinem konfigurierten USD-Schwellenwert liegt.

**Warum es wichtig ist**

| Vorteil                          | Auswirkung                                                                                                                                |
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| **Niedrigere Streitquote**       | RDR-gelöste Streitfälle zählen nicht zum Visa-Schwellenwert von 0,9 %                                                                     |
| **Streitgebühr bleibt bestehen** | Eine Streitgebühr wird weiterhin bei RDR-gelösten Transaktionen erhoben – dies deckt die Kosten für den Einspruch bei Visa in Ihrem Namen |
| **Kein operativer Aufwand**      | Keine Beweissammlung oder Fristen für Antworten                                                                                           |
| **Besseres Kundenerlebnis**      | Karteninhaber erhalten sofortige Rückerstattungen                                                                                         |
| **Kontoschutz**                  | Fernbleiben vom Dispute Monitoring Program (VDMP) von Visa                                                                                |

<Warning>
  Wenn du Visas Streitquote von 0,9 % oder 100 Streitfälle/Monat überschreitest, wird das VDMP ausgelöst – mit steigenden Strafen bis zu über 50.000 \$ pro Monat. RDR hilft dir, deutlich unter diesen Schwellen zu bleiben.
</Warning>

**So funktioniert es**

1. Der Karteninhaber initiiert eine Streitigkeit bei seiner Bank
2. RDR fängt die Streitigkeit ab, bevor sie zu einer formellen Rückbuchung wird
3. Liegt der Transaktionsbetrag unter oder gleich deinem Schwellenwert, wird automatisch eine Rückerstattung ausgelöst
4. Die Streitigkeit wird sofort gelöst und **zählt nicht** zu deiner Streitquote

<Info>
  Transaktionen, die automatisch über RDR rückerstattet werden, erscheinen in deinem Dodo Payments-Dashboard als **verlorene Streitigkeit**. Das ist erwartungsgemäß – die Rückerstattung wurde automatisch ausgelöst, um eine formelle Rückbuchung zu verhindern.
</Info>

Um Verifi RDR in deinem Konto zu aktivieren, kontaktiere **[support@dodopayments.com](mailto:support@dodopayments.com)**, um deinen Schwellenwert zu konfigurieren.

Mehr erfahren: [Visa RDR Documentation](/features/transactions/disputes#visa-rapid-dispute-resolution-rdr)

### 3. **DodoPayments CLI**

Wir stellen die brandneue **DodoPayments CLI** (`dodopayments-cli`) vor – verwalte deinen gesamten Dodo Payments-Workflow direkt über das Terminal. Speziell für Entwickler, die die Kommandozeile bevorzugen, ermöglicht die CLI das Verwalten von Produkten, Zahlungen, Kunden, Rabatten, Lizenzen, Add-ons, Rückerstattungen und sogar das Erstellen von Checkout-Sessions, ohne den Editor zu verlassen.

**Installation**

<CodeGroup>
  ```bash npm (Recommended) theme={null}
  npm install -g dodopayments-cli
  ```

  ```bash Bun theme={null}
  bun install -g dodopayments-cli
  ```
</CodeGroup>

**Wichtige Befehle**

| Befehl                  | Beschreibung                                                           |
| ----------------------- | ---------------------------------------------------------------------- |
| `dodo login`            | Authentifiziere dich mit deinem API-Schlüssel (öffnet den Browser)     |
| `dodo products list`    | Liste aller Produkte                                                   |
| `dodo payments list`    | Liste aller Zahlungen                                                  |
| `dodo customers create` | Erstelle einen neuen Kunden                                            |
| `dodo checkout new`     | Erstelle eine Checkout-Session und erhalte die URL                     |
| `dodo wh listen`        | Leite Live-Test-Webhooks per WebSocket an deinen lokalen Server weiter |
| `dodo wh trigger`       | Sende gefälschte Webhook-Payloads an beliebige Endpunkte               |

**Webhook-Tests**

Die CLI umfasst zwei leistungsstarke Tools für die Entwicklung:

* **`dodo wh listen`** – Öffnet eine WebSocket-Verbindung, um Echtzeit-Test-Webhooks an deinen lokalen Server weiterzuleiten und dabei original Header für die Signaturprüfung zu bewahren
* **`dodo wh trigger`** – Sendet interaktive, gefälschte Webhook-Payloads und unterstützt alle 22 Ereignistypen zu Abonnements, Zahlungen, Rückerstattungen, Streitigkeiten und Lizenzen

<Tip>
  Der Webhook-Listener funktioniert nur mit einem API-Schlüssel im **Testmodus**. Stelle sicher, dass du vor der Nutzung von `dodo wh listen` mit einem Testmodus-Schlüssel eingeloggt bist.
</Tip>

Mehr erfahren: [CLI Documentation](/developer-resources/sdks/cli)

### 4. **Neues UI für das Kundenportal**

Das Kundenportal wurde komplett neu gestaltet und verfügt nun über eine saubere, einheitliche Oberfläche. Das überarbeitete Portal bietet eine linke Seitenleiste zur Navigation und organisierte Abschnitte, sodass Kunden ein intuitiveres Self-Service-Erlebnis genießen.

<Frame>
  <img src="https://mintcdn.com/dodopayments/kCngKZVrb0rZMS1f/images/customer-portal/new-portal.png?fit=max&auto=format&n=kCngKZVrb0rZMS1f&q=85&s=9431b2e24142e47cb39dc84c1a0303fe" alt="Überarbeitung der Customer Portal UI" style={{ maxHeight: '500px', width: 'auto' }} width="2876" height="1568" data-path="images/customer-portal/new-portal.png" />
</Frame>

**Was ist neu**

| Abschnitt                    | Funktionen                                                                                              |
| ---------------------------- | ------------------------------------------------------------------------------------------------------- |
| **Aktive Abonnements**       | Alle aktiven Abonnements mit Plan-Details, Abrechnungszyklus und nächstem Zahlungsdatum anzeigen        |
| **Zahlungsmethoden**         | Gespeicherte Zahlungsmethoden verwalten, neue Karten hinzufügen und Zahlungsinformationen aktualisieren |
| **Abrechnungshistorie**      | Frühere Rechnungen mit herunterladbaren PDF-Belegen einsehen                                            |
| **Abrechnungsinformationen** | Name, E-Mail, Telefonnummer und Rechnungsadresse bearbeiten                                             |
| **Abonnementdetails**        | Detaillierte Abonnementinformationen mit Optionen zum Kündigen oder Planwechsel ansehen                 |
| **Planänderungen**           | Upgrade oder Downgrade direkt über Produktkollektionen im Portal durchführen                            |

Kunden können Zahlungsarten für aktive Abonnements aktualisieren oder Abonnements reaktivieren, die aufgrund fehlgeschlagener Zahlungen pausiert wurden – alles im überarbeiteten Portal.

<Check>
  Das neue Portal ist unter `https://customer.dodopayments.com/login/{business_id}` für den Live-Modus und `https://test.customer.dodopayments.com/login/{business_id}` für den Testmodus verfügbar.
</Check>

Mehr erfahren: [Customer Portal](/features/customer-portal)

### 5. **Zahlungsmethode im Inline Checkout aktualisieren**

Der [Inline Checkout](/developer-resources/inline-checkout) unterstützt nun **Zahlungsmethodenaktualisierungen** für Abonnements. Wenn ein Kunde seine Zahlungsmethode aktualisieren muss (für ein aktives Abonnement oder zur Reaktivierung eines pausierten Abonnements), kann der Ablauf direkt innerhalb deines Seitenlayouts über Inline Checkout gerendert werden – für ein nahtloses, eingebettetes Erlebnis.

**So funktioniert es**

1. Rufe die Update Payment Method API auf, um ein `payment_link` zu erhalten:

```typescript theme={null}
const response = await client.subscriptions.updatePaymentMethod('sub_123', {
  type: 'new',
  return_url: 'https://example.com/return'
});
```

2. Verwende das zurückgegebene `payment_link` als `checkoutUrl` im Inline Checkout:

```typescript theme={null}
DodoPayments.Checkout.open({
  checkoutUrl: response.payment_link,
  elementId: "dodo-inline-checkout"
});
```

Der Inline-Frame rendert nur das Formular zur Erfassung der Zahlungsmethode, sodass Kunden neue Kartendaten eingeben oder gespeicherte Zahlungsmethoden auswählen können, ohne deine Seite zu verlassen.

<Tip>
  Bei pausierten Abonnements erstellt der Ablauf zur Aktualisierung der Zahlungsmethode automatisch eine Abbuchung für offene Beträge. Überwache die `payment.succeeded`- und `subscription.active`-Webhooks, um die Reaktivierung zu bestätigen.
</Tip>

Mehr erfahren: [Inline Checkout](/developer-resources/inline-checkout) | [Subscription Payment Method Updates](/features/subscription#update-payment-method-for-active-subscription)

### 6. **Steuernummer-Vorausfüllung für Checkout-Sessions**

Du kannst jetzt die **Steuernummer (z. B. Umsatzsteuernummer, GST-Nummer)** beim Erstellen einer Checkout-Session mit dem Parameter `tax_id` vorausfüllen. Dies ist ideal für B2B-Transaktionen, bei denen du die Steuernummer des Kunden bereits kennst. Wird eine Steuernummer vorausgefüllt, ist das Feld im Checkout-Formular vorausgewählt und gesperrt.

```typescript theme={null}
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'prod_123', quantity: 1 }],
  customer: { customer_id: 'cus_123' },
  billing_address: { country: 'DE' },
  tax_id: 'DE999999999',
  return_url: 'https://yoursite.com/return'
});
```

<Info>
  Der Parameter `tax_id` erfordert ein `billing_address` mit mindestens einem Feld `country`. Die Steuerberechtigung wird in Echtzeit geprüft und Reverse-Charge-Regeln automatisch für qualifizierte B2B-Transaktionen angewendet.
</Info>

Verwende das Feature-Flag `allow_customer_editing_tax_id`, um zu steuern, ob Kunden die vorausgefüllte Steuernummer ändern dürfen, und `allow_tax_id`, um die Sichtbarkeit der Steuernummer im Checkout umzuschalten.

Mehr erfahren: [Checkout Sessions - Tax ID](/developer-resources/checkout-session) | [B2B Payments](/features/b2b-payments)

### 7. **Lizenzschlüssel und E-Mail in Return URL**

Nachdem ein Kunde den Checkout abgeschlossen hat, fügt Dodo Payments nun `license_key` und `email` als Query-Parameter zur Weiterleitung `return_url` hinzu, zusätzlich zu den bereits vorhandenen Parametern `payment_id`/`subscription_id` und `status`.

**Angefügte Query-Parameter**

| Parameter         | Typ      | Bedingung                                                                                     |
| ----------------- | -------- | --------------------------------------------------------------------------------------------- |
| `payment_id`      | `string` | Immer vorhanden bei Einmalzahlungen                                                           |
| `subscription_id` | `string` | Immer vorhanden bei Abo-Zahlungen                                                             |
| `status`          | `string` | Immer vorhanden                                                                               |
| `license_key`     | `string` | Vorhanden, wenn das Produkt Lizenzschlüssel aktiviert hat (bei mehreren durch Komma getrennt) |
| `email`           | `string` | Vorhanden, wenn der Kunde eine E-Mail hinterlegt hat                                          |

**Beispiel-Weiterleitungs-URLs:**

```text theme={null}
# One-time payment with license key
https://yoursite.com/return?payment_id=pay_xxx&status=succeeded&license_key=LK-001&email=customer%40example.com

# Subscription with multiple license keys
https://yoursite.com/return?subscription_id=sub_xxx&status=active&license_key=LK-001,LK-002&email=customer%40example.com
```

<Tip>
  Verwende diese Query-Parameter, um Lizenzschlüssel anzuzeigen oder sofort eine Bestätigungs-E-Mail auf deiner Rückkehrseite zu versenden, ohne einen zusätzlichen API-Aufruf tätigen zu müssen.
</Tip>

Mehr erfahren: [Checkout Sessions - Return URL](/developer-resources/checkout-session) | [License Keys in Return URL](/features/license-keys#license-keys-in-return-url)

### 8. **Customer Email Update API**

Der Endpoint `PATCH /customers/{customer_id}` unterstützt jetzt das programmatische Aktualisieren von Kunden-E-Mail-Adressen. Aktualisiere E-Mail zusammen mit Name, Telefonnummer und Metadaten in einem einzigen API-Aufruf.

```typescript theme={null}
await client.customers.update('cus_123', {
  email: 'newemail@example.com',
  name: 'Updated Name'
});
```

**Aktualisierbare Felder**

| Feld           | Typ              | Beschreibung                            |
| -------------- | ---------------- | --------------------------------------- |
| `email`        | `string \| null` | E-Mail-Adresse des Kunden               |
| `name`         | `string \| null` | Anzeigename des Kunden                  |
| `phone_number` | `string \| null` | Telefonnummer im internationalen Format |
| `metadata`     | `object \| null` | Benutzerdefinierte Schlüssel-Wert-Paare |

<Info>
  Kunden-E-Mail-Updates sind ebenfalls über das Kundenportal (Self-Service), das Dashboard und die CLI über `dodo customers update` verfügbar.
</Info>

Mehr erfahren: [Customer Update API](/api-reference/customers/patch-customer) | [Customer Management](/features/customers)

### 9. **Bun Adapter Veröffentlichung**

Wir stellen `@dodopayments/bun` vor – einen dedizierten Framework-Adapter für den nativen Server von [Bun](https://bun.sh) (`Bun.serve()`). Integriere Checkout, Kundenportal und Webhooks mit Bun in nur wenigen Codezeilen.

**Installation**

```bash theme={null}
bun add @dodopayments/bun
```

**Schnellstart**

```typescript theme={null}
import { Checkout, CustomerPortal, Webhooks } from "@dodopayments/bun";

Bun.serve({
  routes: {
    "/api/checkout": Checkout({
      bearerToken: process.env.DODO_PAYMENTS_API_KEY!,
      returnUrl: process.env.DODO_PAYMENTS_RETURN_URL!,
      environment: process.env.DODO_PAYMENTS_ENVIRONMENT!,
    }),
    "/api/customer-portal": CustomerPortal({
      bearerToken: process.env.DODO_PAYMENTS_API_KEY!,
      environment: process.env.DODO_PAYMENTS_ENVIRONMENT!,
    }),
    "/api/webhooks": Webhooks({
      webhookKey: process.env.DODO_PAYMENTS_WEBHOOK_KEY!,
      onPaymentSucceeded: async (payload) => {
        console.log("Payment succeeded:", payload.data.payment_id);
      },
      onSubscriptionActive: async (payload) => {
        console.log("Subscription active:", payload.data.subscription_id);
      },
    }),
  },
});
```

Der Bun-Adapter unterstützt alle drei Checkout-Flows (statisch, dynamisch und Sitzungsbasiert), die Generierung von Kundenportal-Sitzungen sowie sichere Webhook-Verarbeitung mit Signaturüberprüfung und Zod-Validierung über 22 Ereignistypen hinweg.

<Check>
  Der Bun-Adapter ergänzt unsere Familie von 11 Framework-Adaptern, darunter Next.js, Nuxt, Express, Fastify, Hono, Astro, SvelteKit, Remix, TanStack Start, Better Auth und Convex.
</Check>

Mehr erfahren: [Bun Adapter Documentation](/developer-resources/bun-adaptor) | [Framework Adapters Overview](/developer-resources/framework-adaptors)
