> ## 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.75.0 (23 januari 2026)

> Produktkollektioner, RevolutPay & Billie betalmetoder för GBP engångsbetalningar, förhandsgranskning av kassasession, metadata i ändra plan-förfrågningar, invoice_url-fält, validering av rabatterande ändpunkter och förbättrad filtrering på instrumentpanelen

## Nya Funktioner

### 1. **Produktkollektioner**

Gruppera relaterade produkter för en enhetlig kassaupplevelse, planval och sömlösa uppgraderings/nedgraderingsvägar inom kundportalen.

<Frame>
  <img src="https://mintcdn.com/dodopayments/2YrxTqbaYgAm54C_/images/product-collection/checkout-page.png?fit=max&auto=format&n=2YrxTqbaYgAm54C_&q=85&s=1890932384bc32c8126c7993f3581855" alt="Produktsamlingens kassasida som visar flera planalternativ" style={{ maxHeight: '500px', width: 'auto' }} width="1440" height="960" data-path="images/product-collection/checkout-page.png" />
</Frame>

**Nyckelfördelar**

* **Kassafunktion baserad på kollektion**: Visa alla produkter från en kollektion i en visning av kassan, så att kunder kan jämföra och välja sin föredragna plan
* **Organiserad produktförvaltning**: Gruppera relaterade produkter (t.ex. Start, Pro, Enterprise) under en enda kollektion
* **Integration i kundportalen**: Möjliggör för kunder att uppgradera eller nedgradera mellan produkter inom samma kollektion
* **Kontroll för säljare**: Aktivera, inaktivera och omorganisera produkter inom varje kollektion

**Hur Det Fungerar**

Skapa en kassasession för en kollektion:

```typescript theme={null}
const session = await client.checkoutSessions.create({
  product_collection_id: 'pdc_abc123',
  product_cart: [], // Required: pass an empty array for collection checkout
  return_url: 'https://yoursite.com/return'
});

// Redirect customer to the checkout
window.location.href = session.checkout_url;
```

<Check>
  Resultat: En enhetlig kassaupplevelse där kunder kan se och välja bland alla tillgängliga produkter i din kollektion.
</Check>

<Info>
  Kollektionskassan är idealisk för prenumerationsföretag där du vill att kunderna ska jämföra planer sida vid sida innan köp.
</Info>

Lär dig mer: [Produktkollektioner Guide](/features/product-collections)

### 2. **RevolutPay & Billie Betalningsmetoder för GBP Valuta**

Utökade betalningsalternativ med RevolutPay och Billie nu tillgängliga globalt för GBP engångstransaktioner, vilket ger dina kunder mer flexibilitet i hur de betalar.

**Nya Betalningsmetoder**

| Betalningsmetod | Stödda Länder | Valuta | Prenumerationssupport           |
| --------------- | ------------- | ------ | ------------------------------- |
| **RevolutPay**  | Global        | GBP    | Nej (endast engångsbetalningar) |
| **Billie**      | Global        | GBP    | Nej (endast engångsbetalningar) |

* **RevolutPay** – Snabba och sömlösa betalningar för Revolut-användare globalt
* **Billie** – B2B Köp Nu Betala Sen-lösning som möjliggör för företag att erbjuda flexibla betalningsvillkor till sina kunder

<Info>
  Dessa betalningsmetoder är automatiskt tillgängliga för GBP-transaktioner. Ingen ytterligare konfiguration krävs.
</Info>

Lär dig mer: [Betalningsmetoder](/features/payment-methods)

### 3. **Förhandsgranskning av Kassasession**

Förhandsgranska kassasessioner innan du skapar dem för att beräkna exakt prissättning, skatter, rabatter och totalsummor. Visa verklig prissättning för kunder innan de går vidare till kassan.

**Hur Det Fungerar**

```typescript theme={null}
const preview = await client.checkoutSessions.preview({
  product_cart: [
    { product_id: 'prod_123', quantity: 1 }
  ],
  billing_address: {
    country: 'US',
    state: 'CA',
    zipcode: '94102'
  },
  discount_code: 'SAVE20'
});

console.log('Subtotal:', preview.subtotal);
console.log('Tax:', preview.tax);
console.log('Discount:', preview.discount);
console.log('Total:', preview.total);
```

**Användningsfall**

* **Anpassad prissättning**: Visa exakta totalsummor inklusive skatt innan kassan
* **Validering av rabatter**: Verifiera rabattkoder och visa besparingar för kunder
* **Stöd för flera valutor**: Förhandsgranska prissättning i olika valutor
* **Vagnsammanfattningar**: Bygg anpassade vagnanvändargränssnitt med realtidsprissättning

<Card title="Preview API Reference" icon="code" href="/api-reference/checkout-sessions/preview">
  Visa den fullständiga dokumentationen för förhandsgranskningsendpointen.
</Card>

### 4. **Metadatasupport i Förfrågningar om Ändra Plan**

Skicka anpassad metadata när du ändrar prenumerationsplaner, vilket möjliggör bättre spårning och integration med dina interna system vid planövergångar.

```javascript theme={null}
// Adding metadata when changing a subscription plan
await client.subscriptions.changePlan('sub_123', {
  product_id: 'prod_premium',
  proration_billing_mode: 'prorated_immediately',
  quantity: 1,
  metadata: {
    upgrade_reason: 'feature_request',
    previous_plan: 'basic',
    sales_rep: 'john@company.com'
  }
});
```

**Användningsfall**

* **Spåra anledningar till uppgradering/nedgradering**: Lagra varför kunder ändrade planer
* **Koppla till CRM-poster**: Associera planändringar med försäljningsaktiviteter
* **Intern kategorisering**: Tagga planändringar för rapportering och analys
* **Revisionsspår**: Underhålla poster över vem som initierade planändringar

<Info>
  Metadata ingår i webhookhändelser, vilket gör det enkelt att bearbeta planändringar med din anpassade data.
</Info>

Lär dig mer: [Metadata Guide](/api-reference/metadata) | [Ändra Plan API](/api-reference/subscriptions/change-plan)

### 5. **`invoice_url`-fält i Payment Response och Payment Link Response**

Payment Response och Payment Link Response inkluderar nu ett `invoice_url`-fält som ger direkt åtkomst till fakturan som är kopplad till varje betalning.

```json theme={null}
{
  "payment_id": "pay_2IjeQm4hqU6RA4Z4kwDee",
  "status": "succeeded",
  "invoice_url": "https://dodopayments.com/invoices/inv_2IsUnWGtRKFLxk7xAQeyt",
  "amount": 9900,
  "currency": "USD",
  // ... other fields
}
```

**Användningsfall**

* **Kundkommunikation**: Skicka fakturalänkar direkt till kunder
* **Bokföringsintegration**: Koppla betalningar till fakturor i din bokföringsprogramvara
* **Självbetjäningsportaler**: Låt kunder enkelt få tillgång till sina fakturor
* **Registrering**: Underhålla direkt referenser till fakturadokument

<Card title="Get Payment API" icon="code" href="/api-reference/payments/get-payments-1">
  Visa Payment Response-schema.
</Card>

### 6. **Validera Rabatt genom Kodenamn-Ändpunkt**

Ny API-ändpunkt för att validera och hämta rabattkoder genom deras kodenamn (t.ex. "SAVE20") istället för att använda det interna rabatt-ID:t. Verifiera rabattberättigande innan de tillämpas vid kassan.

```javascript theme={null}
// Validate a discount code before checkout
const discount = await client.discounts.retrieveByCode('SAVE20');

console.log('Discount type:', discount.type);
console.log('Discount value:', discount.amount);
console.log('Valid until:', discount.expires_at);
```

**Fördelar**

* **Validering före kassa**: Verifiera rabattkoder innan du skapar kassasessioner
* **Realtidsåterkoppling**: Visa kunder om deras kod är giltig
* **Felhantering**: Fånga ogiltiga eller utgångna koder tidigt
* **Anpassade rabatt-UI**: Bygg inmatningsfält för rabattkoder med omedelbar validering

<Card title="Get Discount by Code API" icon="code" href="/api-reference/discounts/get-discount-by-code">
  Visa den fullständiga dokumentationen för endpointen.
</Card>

### 7. **Förbättrade Filtreringsmöjligheter för Kunder, Rabatter och Licensnycklar**

Nya API-filter för att lista Kunder, Rabatter och Licensnycklar, som gör det enklare att hitta och hantera din data programatiskt.

**Kunder API Filter**

| Filter           | Description                                                  |
| ---------------- | ------------------------------------------------------------ |
| `email`          | Filtrera efter kundens e-post                                |
| `name`           | Filtrera efter kundens namn (delvis match, case-insensitivt) |
| `created_at_gte` | Filtrera kunder skapade den här tidpunkten eller senare      |
| `created_at_lte` | Filtrera kunder skapade den här tidpunkten eller tidigare    |

```javascript theme={null}
// Find customers by name created in the last 30 days
const customers = await client.customers.list({
  name: 'John',
  created_at_gte: '2026-01-01T00:00:00Z'
});
```

**Rabatter API Filter**

| Filter          | Description                                                                      |
| --------------- | -------------------------------------------------------------------------------- |
| `code`          | Filtrera efter rabattkod (delvis match, case-insensitivt)                        |
| `discount_type` | Filtrera efter rabatttyp (procent)                                               |
| `active`        | Filtrera efter aktiv status (true = inte utgått, false = utgått)                 |
| `product_id`    | Filtrera efter produktbegränsning (endast rabatter som gäller för denna produkt) |

```javascript theme={null}
// Find active percentage discounts for a specific product
const discounts = await client.discounts.list({
  active: true,
  discount_type: 'percentage',
  product_id: 'prod_123'
});
```

**Licensnycklar API Filter**

| Filter           | Description                                                         |
| ---------------- | ------------------------------------------------------------------- |
| `customer_id`    | Filtrera efter kund-ID                                              |
| `status`         | Filtrera efter licensnyckelstatus (`active`, `expired`, `disabled`) |
| `product_id`     | Filtrera efter produkt-ID                                           |
| `created_at_gte` | Filtrera licensnycklar skapade den här tidpunkten eller senare      |
| `created_at_lte` | Filtrera licensnycklar skapade den här tidpunkten eller tidigare    |

```javascript theme={null}
// Find active license keys for a specific product
const licenseKeys = await client.licenseKeys.list({
  status: 'active',
  product_id: 'prod_123'
});
```

<CardGroup cols={3}>
  <Card title="List Customers API" icon="users" href="/api-reference/customers/get-customers">
    Visa den fullständiga dokumentationen för Customers API.
  </Card>

  <Card title="List Discounts API" icon="percent" href="/api-reference/discounts/list-discounts">
    Visa den fullständiga dokumentationen för Discounts API.
  </Card>

  <Card title="List License Keys API" icon="key" href="/api-reference/licenses/list-license-keys">
    Visa den fullständiga dokumentationen för License Keys API.
  </Card>
</CardGroup>

### 8. **UI/UX Förbättringar på Instrumentpanelen**

Denna utgåva inkluderar många UI/UX-förbättringar över instrumentpanelen för en mer intuitiv och polerad upplevelse.

**Höjdpunkter**

* Förbättrad navigation och layoutkonsistens
* Förbättrad interaktion med datatabeller
* Bättre laddningstillstånd och återkoppling
* Förbättrade visuella designelement
* Förbättrad mobilresponsivitet
