> ## 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.112.0 (2026年8月5日)

> Discount codes に Amount discounts、スケジュール設定、顧客の利用資格ルール、通貨ごとのオプションが追加され、メール通知に対応したネイティブな webhooks エクスペリエンスも再構築されました。さらに、サブスクリプション向け Cash App Pay、1回限りの EUR 決済向け SEPA Direct Debit、顧客にわかりやすい決済失敗メッセージ、payout webhooks、ログインメールアドレスのセルフサービス変更、顧客が自分でサブスクリプションをキャンセルできる設定、決済一覧の通貨フィルターも追加されています。

## 新機能

### 1. **Discount Codes: Amount discounts、スケジュール設定、利用資格ルール**

Discount codes は、パーセンテージだけではなくなりました。コードで固定額を差し引いたり、開始日をスケジュールしたり、通貨ごとに異なる価格を設定したり、利用できる顧客を制限したりできるようになりました。

**Amount discounts**

`type` を `flat` に設定すると、パーセンテージではなく固定額が差し引かれます。差し引き額は各 line item に適用されるのではなく、カート全体でまとめて適用されます。

| 種類         | API value    | 動作                                     |
| ---------- | ------------ | -------------------------------------- |
| Percentage | `percentage` | 価格をパーセンテージ分だけ減額します。通貨ごとに上限を設定することもできます |
| Amount     | `flat`       | カート全体から固定額を差し引きます                      |

<Frame>
  <img src="https://mintcdn.com/dodopayments/Rh05LkBeJE32G3qq/images/discount-codes/discount-flat-discount-option.png?fit=max&auto=format&n=Rh05LkBeJE32G3qq&q=85&s=38ce7f39a1ccbd26c61718f685fc4e71" alt="Amount タイプを選択した Discount code エディター。500 INR の固定額割引を表示" style={{ maxHeight: '500px', width: 'auto' }} width="3474" height="1968" data-path="images/discount-codes/discount-flat-discount-option.png" />
</Frame>

**通貨ごとのオプション**

`currency_options` を使用すると、販売するすべての通貨で1つのコードを正しく動作させられます。各エントリでは、1つの通貨について最大割引額（Amount code の場合は差し引き額、Percentage code の場合は上限）と、カートの最低金額を設定します。Amount discount には、解決可能なデフォルトを持つ通貨オプションが少なくとも1つ必要です。Percentage discount では通貨オプションは任意です。

**顧客の利用資格**

`customer_eligibility` は、コードを利用できる顧客を制御します。

| 値            | 利用できる顧客                    |
| ------------ | -------------------------- |
| `any`        | すべての顧客。デフォルト値です。           |
| `first_time` | これまでに購入したことがない顧客。          |
| `existing`   | これまでに購入したことがある顧客。          |
| `specific`   | コードの allow list に追加した顧客のみ。 |

<Frame>
  <img src="https://mintcdn.com/dodopayments/Rh05LkBeJE32G3qq/images/discount-codes/discount-restriction.png?fit=max&auto=format&n=Rh05LkBeJE32G3qq&q=85&s=3c01240807a7ca2f13b33a9f4cf4ce43" alt="Any、First-time、Existing、Specific customer オプションを表示する顧客利用資格ドロップダウン" style={{ maxHeight: '500px', width: 'auto' }} width="2832" height="830" data-path="images/discount-codes/discount-restriction.png" />
</Frame>

allow list はダッシュボード、または新しい endpoint から管理できます。`GET /discounts/{discount_id}/customers` で追加済みの顧客を一覧表示し、`POST /discounts/{discount_id}/customers` で追加、`DELETE /discounts/{discount_id}/customers/{customer_id}` で1人の顧客を削除します。

<Warning>
  `specific` code は、**0人**の利用資格顧客で開始されます。顧客を追加するまで、すべての利用を拒否します。
</Warning>

**スケジュール設定と顧客ごとの上限**

`starts_at` を設定すると、コードの開始を将来の日付にスケジュールできます。未設定のままにするとコードは直ちに有効になり、`expires_at` より厳密に前の日時でなければなりません。`per_customer_usage_limit` を使用すると、1人の顧客がコードを利用できる回数に上限を設定できます。これは全体の `usage_limit` とは別の上限であり、それを超えることはできません。

<Info>
  カートの最低金額は常にカートの元の価格を基準に計算され、stack の途中の累計額を基準にはしません。そのため、stack の順序によって最低金額を満たすかどうかが変わることはありません。
</Info>

詳しくは、[Discounts](/features/discount-codes) | [Create Discount](/api-reference/discounts/create-discount) をご覧ください。

### 2. **Webhooks エクスペリエンスを再構築**

ダッシュボードの webhooks セクションを、埋め込みポータルに代わるネイティブなエクスペリエンスとして再構築しました。テーブル、フィルター、ナビゲーションが一貫した形でダッシュボード内に統合され、モバイルでも適切に動作します。

* **Endpoints** — side sheet で endpoint を作成・編集し、検索可能なツリーから event type を選択できます。過去24時間のエラー率も一目で確認できます。
* **Activity and logs** — **Delivery activity** chart で時間経過に伴う配信試行を確認し、配信済みメッセージを閲覧できます。**message detail** ページでは payload と、response code および duration を含むすべての配信試行を確認できます。各試行はそこから replay できます。
* **Event catalog** — Dodo Payments が送信するすべての event type を、schema と example payload とともに閲覧できます。
* **Endpoint overview** — 過去24時間の配信統計、表示またはローテーション可能な signing secret、**Replay history** を確認できます。
* **Testing** — go live する前に、example event を endpoint に送信して receiver を検証できます。
* **Advanced** — 配信を throttle し、endpoint へのすべてのリクエストに付与する custom headers を管理し、transformation を編集できます。
* **Bulk replay** — endpoint 上で、失敗したメッセージを復旧したり、dispatch されなかったメッセージを replay したり、フィルターした範囲を replay したりできます。
* **Email alerting** — endpoint への配信が失敗し始めたときにメールを送信するアドレスを一覧表示できる、新しい **Settings** tab が追加されました。複数のアドレスはカンマで区切り、空欄にするとアラートが無効になります。

<Info>
  これはダッシュボードのみの変更です。既存の endpoint、signing secret、signature verification、event name、payload に変更はなく、integration 作業は必要ありません。
</Info>

詳しくは、[Webhooks](/developer-resources/webhooks) | [Webhook Events](/developer-resources/webhooks/intents/webhook-events-guide) をご覧ください。

### 3. **サブスクリプションで Cash App Pay に対応**

Cash App Pay が、1回限りの決済だけでなく、継続的なサブスクリプションにも利用できるようになりました。既存のカードオプションに加えて、USD で請求する US checkout で利用できます。

詳しくは、[Digital Wallets](/features/payment-methods/digital-wallets) をご覧ください。

### 4. **SEPA Direct Debit**

SEPA Direct Debit が Eurozone 全域で利用できるようになり、顧客はカードではなく銀行口座から直接支払えるようになりました。1回限りの決済向け EUR checkout で提供されます。

<Warning>
  SEPA Direct Debit は即時決済ではありません。決済の確定には **6営業日** かかるため、authorization を settlement として扱わないでください。決済が succeeded state になってから fulfillment を行ってください。
</Warning>

詳しくは、[European Payment Methods](/features/payment-methods/europe) をご覧ください。

### 5. **より明確な決済失敗メッセージ**

決済に失敗した場合、あなたと顧客には raw processor text ではなく、用途に合わせて作成された文面が表示されるようになりました。すべての失敗は **46種類の統一 error code** に分類され、それぞれが2つの対象者向けに対応付けられています。

* **あなた**には、決済上に headline と推奨アクションが表示されます。顧客に retry を依頼すべきか、銀行に連絡すべきか、別のカードを使うべきかを判断できます。Payment object の `error_message` は、`error_code` が認識済みの unified code である場合に、この文面を保持します。
* **顧客**には、checkout failure screen、Customer Portal、dunning email に平易な説明が表示されます。例：*「カードのセキュリティコード（CVC）が正しくないようです。もう一度入力して再試行してください。」*

<Warning>
  不正利用に関連する慎重な decline — `FRAUDULENT`、`LOST_CARD`、`STOLEN_CARD`、`PICKUP_CARD` — では、実際の理由が漏れないよう、顧客には常に一般的なメッセージが表示されます。あなたには本当の理由が表示され、共有しないよう警告が付けられます。
</Warning>

詳しくは、[Transaction Failures](/api-reference/transaction-failures) | [Payments](/features/transactions/payments) | [Get Payment Detail](/api-reference/payments/get-payments-1) をご覧ください。

### 6. **顧客が自分でサブスクリプションをキャンセル可能に**

**Allow Subscription Cancellation** がダッシュボード設定の **Subscriptions** tab に独立した設定として追加され、end to end で適用されるようになりました。無効にすると、Customer Portal では cancel button が無効になり、API は顧客によるキャンセルを `403` として拒否します。これは即時キャンセルと「次回請求日にキャンセル」の両方に適用されます。以前は設定によってボタンが非表示になるだけだったため、顧客は API 経由でキャンセルできました。

この設定は**デフォルトで有効**です。merchant API やダッシュボードから行うあなた自身のキャンセルには影響せず、顧客はすでにスケジュールしたキャンセルをいつでも取り消せます。

詳しくは、[Customer Portal](/features/customer-portal) | [Subscriptions](/features/subscription) をご覧ください。

### 7. **Payout Webhooks**

自身の payout に関する webhooks を受信できるようになり、polling なしで会計システムと照合できるようになりました。

| Event                | 発生するタイミング                                                |
| -------------------- | -------------------------------------------------------- |
| `payout.created`     | automatic payout cycle または off-cycle により payout が作成されたとき |
| `payout.in_progress` | payout の due date になり、処理が開始されたとき                         |
| `payout.on_hold`     | payout が一時停止または review 対象になったとき                          |
| `payout.success`     | 銀行口座への payout が settlement されたとき                         |
| `payout.failed`      | payout が失敗し、金額と手数料が wallet に返金されたとき                      |

<Note>
  `payout.created` は以前、`payout.not_initiated` として発行されていました。既存の endpoint で `payout.not_initiated` を filter している場合は、引き続き一致するよう filter を `payout.created` に更新してください。この段階では、payload の `status` field は引き続き `not_initiated` を報告します。
</Note>

詳しくは、[Payout Webhooks](/developer-resources/webhooks/intents/payout) | [Payouts Process](/features/payouts/payout-structure) をご覧ください。

### 8. **ダッシュボードからログインメールアドレスを変更**

サポートに連絡せず、サインインに使用するメールアドレスを変更できるようになりました。Account tab が再設計され、新しい **Change Email** セクションとフローを開始する **Change email** button が追加されています。

検証は2段階で行われます。まず、本人確認のため **現在の** アドレスにコードをメールで送信し、次に、新しいアドレスを管理していることを確認するため、**新しい** アドレスに2つ目のコードを送信します。両方の検証が完了すると、次のようになります。

* 以後は新しいアドレスでサインインします。以前のアドレスは、password、magic link、メールで送信される code では使用できなくなります。
* Google や GitHub sign-in など、リンク済みの identity provider は unlink され、再接続が必要になります。
* password、business、team access、verification status は変更されません。
* 予期しない変更が見過ごされないよう、以前のアドレスに通知が送信されます。

詳しくは、[My Account](/miscellaneous/accounts) をご覧ください。

### 9. **Analytics: 新しいウィジェットと改善**

Analytics v3 の再構築を基盤として、このリリースでは新しい可視化を追加し、既存の可視化も改善しました。

* **Revenue by country が全幅のコロプレスマップになりました**。横には国別のランキングが表示され、他のカードと同様に共有できます。
* **trend chart を再描画**し、crosshair hover、x-axis 上の rolling date pill、コンパクトな tooltip に対応しました。
* **新しい date preset** — Last 4 weeks に代わって **Last 30 days** が追加され、**Last 6 months** も選択できるようになりました。
* **フィルターが保持されます。** date preset と comparison mode は business ごとに保存され、毎回デフォルトに戻るのではなく、デバイス間で引き継がれます。
* **Top customers は名前で識別**され、名前がない場合は email にフォールバックします。
* Revenue by country は最大 **上位150か国** を返すようになりました。

詳しくは、[Dashboard Analytics](/features/analytics-and-reporting) をご覧ください。

## 改善とバグ修正

### 10. **通貨で Payments をフィルター**

`GET /payments` は任意の **`currency`** query parameter を受け付けるため、指定した通貨で settlement された Payments のみを一覧表示できます。例：`GET /payments?currency=EUR`。同じ filter はダッシュボードの Payments table でも利用できます。

詳しくは、[List Payments](/api-reference/payments/get-payments) をご覧ください。

### 11. **Dispute の response window を10日間に延長**

Dispute の作成後、回答までの期間が4日から**10日間**になりました。ダッシュボードの dispute に表示される countdown と、API が返す response deadline の両方に、延長された期間が反映されます。

詳しくは、[Disputes](/features/transactions/disputes) をご覧ください。

### 12. **Payout bank account form をより明確に**

payout bank account の追加がよりわかりやすくなりました。field label、description、tooltip が business type に応じて変化するため、個人事業主でも account holder と beneficiary name が重複して表示されなくなります。銀行として **Other** を選択すると名前を自由に入力できます。China domestic bank code は **CNAPS** と表示され、payouts page は test mode でも表示されるため、どちらの mode からでもリンク済みアカウントにアクセスできます。

詳しくは、[Payouts Process](/features/payouts/payout-structure) をご覧ください。

### その他の修正と改善

* **決済が失敗した場合、plan change credit が取り消されます。** subscription plan change 中に発行された proration credit は、結果として決済が成功しなかった場合に残らなくなりました。
* \*\*Paid-trial invoice に trial charge が表示されます。\*\*通常の recurring price ではありません。
* **Percentage discount がカートの最低金額を正しく考慮します。** running total ではなく base price を基準に測定され、discount lock timeout は generic `503` ではなく、固有の error code を返すようになりました。
* \*\*すでに削除された payment method の削除が成功するようになりました。\*\*エラーを返さないため、安全に idempotent な呼び出しができます。
* subscription の payment method 更新時に、India mandate floor に使用される通貨を修正しました。
* **許可範囲を超える credit ledger entry** は、後で失敗するのではなく、型付きの `400` として拒否されます。
* **Pay-what-you-want product が shared checkout link で固定額に対応**し、entitlement ID が entitlement detail panel に表示されるようになりました。
* Analytics の修正：lifetime-value series、MRR に含まれる add-on、all-time range での period comparison の非表示、現在の bucket で停止する series、range と comparison label の明確化。
* プラットフォーム全体で軽微なバグを修正し、安定性を改善しました。
