> ## 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 (20 februari 2026)

> Produktnivåanalyser, Verifi RDR-disputförebyggande, DodoPayments CLI, omgjort kundportalgränssnitt, uppdateringar för inline checkout-betalsätt, förifyllt skatte-ID, retur-URL-frågeparametrar, kundens e-postuppdaterings-API och Bun-adapter

## Nya funktioner

### 1. **Produktnivåanalyser**

Varje produkt har nu sin egen **dedikerade analysinstrumentpanel**. Navigera till **Products > \[Select a Product]** för att komma åt detaljerade mätvärden som är specifika för den produkten, organiserade över fem flikar:

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

| Flik            | Vad du får                                                                                                                                    |
| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| **Overview**    | Totala intäkter, antal lyckade betalningar, intäktstrenddiagram för 30 dagar (dagligen eller kumulativt) och en filtrerbar transaktionstabell |
| **Customers**   | Topp 3-kunder rankade efter spendering med podiumvy, plus en fullständig kunduppdelningstabell                                                |
| **Retention**   | Kund- och intäktsomsättningsgrad samt ett tvålinjigt trenddiagram för att upptäcka mönster                                                    |
| **Subscribers** | Alla prenumerationer för produkten med status, startdatum, nästa faktureringsdatum och belopp                                                 |
| **MRR**         | Staplat stapeldiagram för Monthly Recurring Revenue med uppdelning i New MRR, Expansion MRR, Churned MRR och Net New MRR                      |

Alla flikar stöder ett **datumfilter** (standardinställning är All Time) så att du kan gräva ner i valfri tidsperiod.

Använd fliken Retention för att tidigt identifiera produkter med hög churn, och fliken MRR för att följa om expansionsintäkter växer snabbare än churnade intäkter månad för månad.

Läs mer: [Produktnivåanalyser](/features/analytics-and-reporting#product-level-analytics)

### 2. **Verifi RDR-stöd i Dodo Payments**

Dodo Payments stöder nu **Visa Rapid Dispute Resolution (RDR)** via Verifi – ett automatiserat verktyg för tvistförebyggande som löser berättigade Visa-tvister **innan de blir formella chargebacks**. När en kortinnehavare initierar en tvist fångar RDR upp den och utfärdar automatiskt en återbetalning om transaktionen ligger under din konfigurerade USD-gräns.

**Varför det spelar roll**

| Fördel                             | Effekt                                                                                                                            |
| ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| **Lägre tvistfrekvens**            | RDR-lösta tvister räknas inte mot Visas 0,9% tröskelvärde                                                                         |
| **Tvistavgift gäller fortfarande** | En tvistavgift debiteras fortfarande på RDR-lösta transaktioner -- detta täcker kostnaden för att bestrida med Visa å dina vägnar |
| **Noll operativt pålägg**          | Ingen bevisinsamling eller svarsfrister                                                                                           |
| **Bättre kundupplevelse**          | Korthållare får omedelbara återbetalningar                                                                                        |
| **Kontoskydd**                     | Håll dig utanför Visas Dispute Monitoring Program (VDMP)                                                                          |

Att överskrida Visas 0,9 %-iga tvistfrekvens eller 100 tvister/månad triggar VDMP, med stigande böter upp till över 50 000 USD/månad. RDR hjälper dig hålla dig långt under dessa tröskelvärden.

**Så fungerar det**

1. Kortinnehavaren initierar en tvist med sin bank
2. RDR fångar upp tvisten innan den blir ett formellt chargeback
3. Om transaktionsbeloppet är lika med eller under din gräns utfärdas en återbetalning automatiskt
4. Tvisten löses omedelbart och **räknas inte** mot din tvistfrekvens

Transaktioner som automatiskt återbetalas via RDR visas som en **förlorad tvist** i din Dodo Payments-instrumentpanel. Det är väntat – återbetalningen skickades automatiskt för att förebygga ett formellt chargeback.

För att aktivera Verifi RDR på ditt konto, kontakta **[support@dodopayments.com](mailto:support@dodopayments.com)** för att konfigurera din gräns.

Läs mer: [Visa RDR-dokumentation](/features/transactions/disputes#visa-rapid-dispute-resolution-rdr)

### 3. **DodoPayments CLI**

Vi introducerar helt nya **DodoPayments CLI** (`dodopayments-cli`) – hantera hela ditt Dodo Payments-arbetsflöde direkt från terminalen. Byggd för utvecklare som föredrar kommandoraden låter CLI dig hantera produkter, betalningar, kunder, rabatter, licenser, tillägg, återbetalningar och till och med skapa checkout-sessioner utan att lämna din redigerare.

**Installation**

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

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

**Viktiga kommandon**

| Kommando                | Beskrivning                                                          |
| ----------------------- | -------------------------------------------------------------------- |
| `dodo login`            | Autentisera med din API-nyckel (öppnar webbläsare)                   |
| `dodo products list`    | Lista alla produkter                                                 |
| `dodo payments list`    | Lista alla betalningar                                               |
| `dodo customers create` | Skapa en ny kund                                                     |
| `dodo checkout new`     | Skapa en checkout-session och få URL:en                              |
| `dodo wh listen`        | Skicka vidare live-testwebhooks till din lokala server via WebSocket |
| `dodo wh trigger`       | Skicka falska webhook-payloads till valfri endpoint                  |

**Webhook-testning**

CLI:et innehåller två kraftfulla verktyg för utveckling:

* **`dodo wh listen`** -- Öppnar en WebSocket-anslutning för att vidarebefordra realtids-testwebhooks till din lokala server, samtidigt som ursprungliga headers bevaras för signaturverifieringstestning
* **`dodo wh trigger`** -- Skickar mock webhook-payloads interaktivt, med stöd för alla 22 händelsetyper inom prenumerationer, betalningar, återbetalningar, tvister och licenser

<Tip>
  Webhook-lyssnaren fungerar endast med en API-nyckel för testläge. Se till att du är inloggad med en testnyckel innan du använder `dodo wh listen`.
</Tip>

Läs mer: [CLI-dokumentation](/developer-resources/sdks/cli)

### 4. **Omgjort gränssnitt för kundportalen**

Kundportalen har helt byggts om med ett rent, enhetligt gränssnitt. Den nya portalen har navigering i en vänster sidomeny och organiserade sektioner, vilket ger kunderna en mer intuitiv självbetjäningsupplevelse.

<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="Kundportalens UI-omdesign" style={{ maxHeight: '500px', width: 'auto' }} width="2876" height="1568" data-path="images/customer-portal/new-portal.png" />
</Frame>

**Nyheter**

| Sektion                  | Funktioner                                                                                        |
| ------------------------ | ------------------------------------------------------------------------------------------------- |
| **Active Subscriptions** | Visa alla aktiva prenumerationer med planinformation, faktureringscykel och nästa betalningsdatum |
| **Payment Methods**      | Hantera sparade betalsätt, lägg till nya kort och uppdatera betalningsuppgifter                   |
| **Billing History**      | Visa tidigare fakturor med nedladdningsbara PDF-kvitton                                           |
| **Billing Information**  | Redigera namn, e-post, telefonnummer och faktureringsadress                                       |
| **Subscription Details** | Visa detaljerad prenumerationsinfo med alternativ att säga upp eller byta plan                    |
| **Plan Changes**         | Uppgradera eller nedgradera via Produktkollektioner direkt i portalen                             |

Kunder kan också uppdatera betalsätt för aktiva prenumerationer eller återaktivera prenumerationer som pausats på grund av misslyckade betalningar – allt från den omgjorda portalen.

<Check>
  Det omgjorda portalen finns på `https://customer.dodopayments.com/login/{business_id}` för live-läge och `https://test.customer.dodopayments.com/login/{business_id}` för testläge.
</Check>

Läs mer: [Kundportal](/features/customer-portal)

### 5. **Uppdatera betalsätt i inline checkout**

[inline checkout](/developer-resources/inline-checkout) stöder nu **uppdateringar av betalsätt** för prenumerationer. När en kund behöver uppdatera sitt betalsätt (för en aktiv prenumeration eller för att återaktivera en pausad prenumeration) kan flödet för att uppdatera betalsättet nu renderas direkt i din sidlayout med inline checkout – vilket ger en sömlös, inbäddad upplevelse.

**Så fungerar det**

1. Anropa Update Payment Method API för att få en `payment_link`:

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

2. Använd den returnerade `payment_link` som `checkoutUrl` i inline checkout:

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

Iframe:en renderar endast formuläret för insamling av betalsätt, så att kunder kan ange nya kortuppgifter eller välja ett sparat betalsätt utan att lämna din sida.

<Tip>
  För pausade prenumerationer skapar flödet för att uppdatera betalsätt automatiskt en avgift för kvarstående belopp. Övervaka `payment.succeeded` och `subscription.active` webhooks för att bekräfta återaktivering.
</Tip>

Läs mer: [Inline Checkout](/developer-resources/inline-checkout) | [Uppdateringar av prenumerationsbetalsätt](/features/subscription#update-payment-method-for-active-subscription)

### 6. **Stöd för förifyllt skatte-ID i checkout-sessioner**

Du kan nu **förifylla Tax ID** (t.ex. VAT-nummer, GST-nummer) när du skapar en checkout-session med parametern `tax_id`. Detta är idealiskt för B2B-transaktioner där du redan känner till kundens skatteidentifikationsnummer. När ett Tax ID förifylls är fältet förifyllt och låst i checkout-formuläret.

```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>
  Parametern `tax_id` kräver en `billing_address` med minst ett `country`-fält. Skattebehörighet valideras i realtid och omvänd skattskyldighet tillämpas automatiskt för kvalificerade B2B-transaktioner.
</Info>

Använd feature-flaggan `allow_customer_editing_tax_id` för att styra om kunder kan ändra det förifyllda Tax ID, och `allow_tax_id` för att växla Tax ID:s synlighet i checkout.

Läs mer: [Checkout Sessions - Tax ID](/developer-resources/checkout-session) | [B2B Payments](/features/b2b-payments)

### 7. **Licensnyckel och e-post i retur-URL-omdirigering**

Efter att en kund slutfört checkout lägger Dodo Payments nu till `license_key` och `email` som frågeparametrar till din `return_url`-omdirigering, utöver de redan befintliga `payment_id`/`subscription_id` och `status`-parametrarna.

**Tillagda frågeparametrar**

| Parameter         | Typ      | Villkor                                                                          |
| ----------------- | -------- | -------------------------------------------------------------------------------- |
| `payment_id`      | `string` | Alltid närvarande för engångsbetalningar                                         |
| `subscription_id` | `string` | Alltid närvarande för prenumerationsbetalningar                                  |
| `status`          | `string` | Alltid närvarande                                                                |
| `license_key`     | `string` | Närvarande om produkten har licensnycklar aktiverade (kommaseparerade vid flera) |
| `email`           | `string` | Närvarande om kunden har en registrerad e-postadress                             |

**Exempel på omdirigerings-URL:er:**

```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>
  Använd dessa frågeparametrar för att visa licensnycklar eller skicka ett bekräftelsemail direkt på din retur-sida utan att behöva ett extra API-anrop.
</Tip>

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

### 8. **API för att uppdatera kundens e-post**

Endpointen `PATCH /customers/{customer_id}` stöder nu att uppdatera kundens e-postadresser programmässigt. Uppdatera e-post tillsammans med namn, telefonnummer och metadata i ett enda API-anrop.

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

**Uppdaterbara fält**

| Fält           | Typ              | Beskrivning                            |
| -------------- | ---------------- | -------------------------------------- |
| `email`        | `string \| null` | Kundens e-postadress                   |
| `name`         | `string \| null` | Kundens visningsnamn                   |
| `phone_number` | `string \| null` | Telefonnummer i internationellt format |
| `metadata`     | `object \| null` | Egna nyckel-värde-par                  |

<Info>
  Kundens e-postuppdateringar finns också tillgängliga via Kundportalen (självbetjäning), instrumentpanelen och CLI via `dodo customers update`.
</Info>

Läs mer: [Customer Update API](/api-reference/customers/patch-customer) | [Kundhantering](/features/customers)

### 9. **Lansering av Bun-adapter**

Vi presenterar `@dodopayments/bun` – en dedikerad ramverksadapter för [Bun:s](https://bun.sh) inbyggda server (`Bun.serve()`). Integrera checkout, kundportalen och webhooks med Bun med bara några rader kod.

**Installation**

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

**Snabb konfiguration**

```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);
      },
    }),
  },
});
```

Bun-adaptern stöder alla tre checkout-flöden (statisk, dynamisk och sessionsbaserad), generering av kundportal-sessioner och säker webhook-hantering med signaturverifiering och Zod-validering för 22 händelsetyper.

<Check>
  Bun-adaptern går med i vår familj av 11 ramverksadaptrar inklusive Next.js, Nuxt, Express, Fastify, Hono, Astro, SvelteKit, Remix, TanStack Start, Better Auth och Convex.
</Check>

Läs mer: [Bun Adapter Documentation](/developer-resources/bun-adaptor) | [Översikt över ramverksadaptrar](/developer-resources/framework-adaptors)
