> ## 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（2026年1月23日）

> 商品コレクション、RevolutPay ＆ BillieのGBP一回払い決済、チェックアウトセッションプレビュー、プラン変更リクエストでのメタデータ、invoice_urlフィールド、割引検証エンドポイント、および強化されたダッシュボードフィルター

## 新機能

### 1. **Product Collections**

顧客ポータル内で統合されたチェックアウト体験、プラン選択、スムーズなアップグレード/ダウングレードの流れを実現するために、関連する商品をまとめてグループ化します。

<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="複数のプランオプションを示す製品コレクションのチェックアウトページ" style={{ maxHeight: '500px', width: 'auto' }} width="1440" height="960" data-path="images/product-collection/checkout-page.png" />
</Frame>

**主な利点**

* **コレクションベースのチェックアウト**：コレクション内のすべての商品を一つのチェックアウト画面に表示し、顧客が比較して希望のプランを選択できるようにします
* **整理された商品管理**：関連する商品（例：Starter、Pro、Enterprise）を単一のコレクションにまとめて管理できます
* **顧客ポータルとの統合**：同じコレクション内で顧客が商品間のアップグレードやダウングレードを行えるようにします
* **販売者による制御**：各コレクション内の商品を有効化、無効化、並べ替えできます

**仕組み**

コレクションのチェックアウトセッションを作成します:

```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>
  結果：顧客がコレクション内のすべての商品を確認して選択できる統合されたチェックアウト体験です。
</Check>

<Info>
  コレクションチェックアウトは、購入前に顧客がプランを並べて比較したいサブスクリプションビジネスに最適です。
</Info>

詳細：[Product Collections Guide](/features/product-collections)

### 2. **RevolutPay & Billie Payment Methods for GBP Currency**

追加の決済オプションとして、RevolutPayおよびBillieがGBPの一回払い取引でグローバルに利用可能になり、顧客に柔軟な支払い方法を提供します。

**新しい支払い方法**

| Payment Method | Supported Countries | Currency | Subscription Support |
| -------------- | ------------------- | -------- | -------------------- |
| **RevolutPay** | Global              | GBP      | No (one-time only)   |
| **Billie**     | Global              | GBP      | No (one-time only)   |

* **RevolutPay** – Revolutユーザー向けに高速かつシームレスなグローバル決済を提供
* **Billie** – 企業が顧客に柔軟な支払い条件を提案できるB2B後払いソリューション

<Info>
  これらの支払い方法はGBP取引で自動的に利用可能です。追加設定は不要です。
</Info>

詳細：[Payment Methods](/features/payment-methods)

### 3. **Checkout Session Preview**

チェックアウトセッションを作成する前にプレビューして、正確な価格、税金、割引、および合計金額を計算します。顧客がチェックアウトに進む前に実際の価格を表示できます。

**仕組み**

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

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

**ユースケース**

* **カスタム価格表示**：チェックアウト前に税金を含む正確な合計を表示
* **割引検証**：割引コードを検証し、顧客に節約額を示す
* **マルチ通貨サポート**：異なる通貨での価格をプレビュー
* **カート概要**：リアルタイム価格を用いたカスタムカートUIを構築

<Card title="Preview API Reference" icon="code" href="/api-reference/checkout-sessions/preview">
  プレビューエンドポイントの完全なドキュメントを参照してください。
</Card>

### 4. **Metadata Support in Change Plan Requests**

サブスクリプションプランを変更する際にカスタムメタデータを渡し、プランの移行中に内部システムとの連携や追跡を強化します。

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

**ユースケース**

* **アップグレード/ダウングレード理由の追跡**：顧客がプランを変更した理由を記録
* **CRMレコードとの連携**：プラン変更を営業活動に紐づけ
* **内部カテゴリ分け**：レポートや分析のためにプラン変更にタグ付け
* **監査記録**：誰がプラン変更を開始したかを記録

<Info>
  メタデータはWebhookイベントにも含まれ、カスタムデータでのプラン変更処理が簡単になります。
</Info>

詳細：[Metadata Guide](/api-reference/metadata) | [Change Plan API](/api-reference/subscriptions/change-plan)

### 5. **`invoice_url` Field in Payment Response and Payment Link Response**

支払いレスポンスおよび支払いリンクレスポンスに`invoice_url`フィールドが含まれるようになり、各支払いに紐づく請求書への直接アクセスが可能になります。

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

**ユースケース**

* **顧客への案内**：請求書リンクを直接顧客に送信
* **会計連携**：会計ソフトで支払いと請求書を連携
* **セルフサービスポータル**：顧客が請求書に簡単にアクセスできるようにする
* **記録保持**：請求書ドキュメントへの直接参照を維持

<Card title="Get Payment API" icon="code" href="/api-reference/payments/get-payments-1">
  支払いレスポンスのスキーマを確認してください。
</Card>

### 6. **Validate Discount by Code Name Endpoint**

割引の内部IDではなくコード名（例：「SAVE20」）で割引コードを検証し取得する新しいAPIエンドポイント。チェックアウト前に割引の適用可否を確認できます。

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

**利点**

* **チェックアウト前検証**：チェックアウトセッション作成前に割引コードを確認
* **リアルタイムのフィードバック**：コードが有効かどうかを顧客にすぐに表示
* **エラーハンドリング**：無効または期限切れのコードを早期に検出
* **カスタム割引UI**：即時検証付きの割引コード入力欄を構築

<Card title="Get Discount by Code API" icon="code" href="/api-reference/discounts/get-discount-by-code">
  エンドポイントの完全なドキュメントを確認してください。
</Card>

### 7. **Enhanced Filtering Capabilities for Customers, Discounts, and License Keys**

顧客、割引、ライセンスキーの一覧取得時に利用できる新しいAPIフィルターにより、プログラムからデータを簡単に検索・管理できるようになります。

**顧客APIフィルター**

| Filter           | Description                  |
| ---------------- | ---------------------------- |
| `email`          | 顧客のメールアドレスで絞り込み              |
| `name`           | 顧客名での絞り込み（部分一致、大文字小文字を区別しない） |
| `created_at_gte` | このタイムスタンプ以降に作成された顧客を絞り込み     |
| `created_at_lte` | このタイムスタンプ以前に作成された顧客を絞り込み     |

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

**割引APIフィルター**

| Filter          | Description                              |
| --------------- | ---------------------------------------- |
| `code`          | 割引コードでの絞り込み（部分一致、大文字小文字を区別しない）           |
| `discount_type` | 割引タイプ（割合）での絞り込み                          |
| `active`        | 有効ステータスでの絞り込み（true = 未期限切れ、false = 期限切れ） |
| `product_id`    | 商品適用制限での絞り込み（この商品にのみ適用される割引）             |

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

**ライセンスキーAPIフィルター**

| Filter           | Description                                        |
| ---------------- | -------------------------------------------------- |
| `customer_id`    | 顧客IDでの絞り込み                                         |
| `status`         | ライセンスキーのステータスでの絞り込み（`active`、`expired`、`disabled`） |
| `product_id`     | 商品IDでの絞り込み                                         |
| `created_at_gte` | このタイムスタンプ以降に作成されたライセンスキーを絞り込み                      |
| `created_at_lte` | このタイムスタンプ以前に作成されたライセンスキーを絞り込み                      |

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

<CardGroup cols={3}>
  <Card title="List Customers API" icon="users" href="/api-reference/customers/get-customers">
    顧客APIの完全なドキュメントをご覧ください。
  </Card>

  <Card title="List Discounts API" icon="percent" href="/api-reference/discounts/list-discounts">
    割引APIの完全なドキュメントをご覧ください。
  </Card>

  <Card title="List License Keys API" icon="key" href="/api-reference/licenses/list-license-keys">
    ライセンスキーAPIの完全なドキュメントをご覧ください。
  </Card>
</CardGroup>

### 8. **UI/UX Improvements in Dashboard**

このリリースでは、ダッシュボード全体のより直感的で洗練された体験のために多数のUI/UXの改善が含まれています。

**ハイライト**

* ナビゲーションとレイアウトの一貫性が向上
* データテーブルの操作性が強化
* ローディング状態とフィードバックが改善
* ビジュアルデザイン要素が洗練
* モバイル表示のレスポンシブ性が向上
