> ## 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.

# エラーコード

> カテゴリー別に分類されたDodo Payments APIおよびビジネスロジックエラーコードのリファレンス。トリガー、メッセージ、解決方法を含みます。

## 概要

Dodo Payments APIは、APIリクエストの成功または失敗を示すために、標準のHTTPステータスコードとカスタムエラーコードを使用します。エラーが発生した場合、APIは適切なHTTPステータスコードとエラーに関する詳細情報を含むJSONレスポンスを返します。

各エラーレスポンスには以下が含まれます：

* エラーの一般的なカテゴリを示すHTTPステータスコード
* エラーの正確な性質を特定する特定のエラーコード
* 何が問題だったのかを説明する人間が読めるエラーメッセージ
* 適用可能な場合、エラーに関する追加の詳細

これらのエラーコードとその意味を理解することは、以下のために重要です：

* 統合の問題をデバッグする
* アプリケーションで適切なエラーハンドリングを実装する
* エンドユーザーに意味のあるフィードバックを提供する
* 堅牢な決済処理システムを維持する

<Note>
  これらは**APIとビジネスロジック**のエラーです。支払いが失敗した際に返される**カードの拒否理由**（例えば、`INSUFFICIENT_FUNDS`や`CARD_DECLINED`）については、[取引失敗の参照](/api-reference/transaction-failures)を参照してください。
</Note>

## 標準APIエラーコード

| HTTP Status | Name                  | Description                         |
| ----------- | --------------------- | ----------------------------------- |
| **400**     | Bad Request           | リクエストが不正または無効なパラメータを含んでいます          |
| **401**     | Unauthorized          | 認証に失敗したか、APIキーが無効です                 |
| **403**     | Forbidden             | APIキーに要求したリソースにアクセスする権限がありません       |
| **404**     | Not Found             | 要求されたリソースは存在しません                    |
| **405**     | Method Not Allowed    | このエンドポイントではHTTPメソッドはサポートされていません     |
| **409**     | Conflict              | リクエストがリソースの現在の状態と矛盾しています            |
| **422**     | Unprocessable Entity  | リクエストは正しく形成されていましたが、意味的なエラーが含まれています |
| **429**     | Too Many Requests     | レート制限を超過しました                        |
| **500**     | Internal Server Error | サーバーで予期しないエラーが発生しました                |
| **502**     | Bad Gateway           | サーバーは上流のサーバーから無効なレスポンスを受け取りました      |
| **503**     | Service Unavailable   | サービスは一時的に利用不可能です                    |
| **504**     | Gateway Timeout       | サーバーは上流のレスポンスを待っている間にタイムアウトしました     |

## エラーレスポンスフォーマット

エラーが発生した場合、APIは以下の構造を持つJSONレスポンスを返します：

```json theme={null}
{
  "code": "UNSUPPORTED_COUNTRY",
  "message": "Country AI currently not supported"
}
```

## エラーコードリファレンス

以下のエラーコードは関連するAPIのエリアごとに分類されています。各エントリにはそれを引き起こす条件と、APIが返すメッセージが記載されています。

### 認証＆アカウント

* `UNAUTHORIZED`
  * **トリガー:** APIキーがないか、トークン/スコープが無効
  * **メッセージ:** この操作を行う権限がありません

* `MERCHANT_NOT_LIVE`
  * **トリガー:** ビジネスがまだテスト/サンドボックスモードである
  * **メッセージ:** マーチャントはライブではありません

### 支払い＆チェックアウト

* `CHECKOUT_SESSION_CONSUMED`
  * **トリガー:** チェックアウトセッションが既に支払いを生成している
  * **メッセージ:** チェックアウトセッションは既に消費されています

* `NO_ELIGIBLE_PAYMENT_METHODS`
  * **トリガー:** フィルタリング後、何も残らない
  * **メッセージ:** 使用可能な支払い方法が見つかりません

* `PAYMENT_NOT_SUCCEEDED`
  * **トリガー:** 失敗した支払いを返金/処理しようとしている
  * **メッセージ:** 提供された支払いは成功していません

* `PREVIOUS_PAYMENT_PENDING`
  * **トリガー:** 非終端状態の前の支払いがある場合に新しい請求を作成しようとする
  * **メッセージ:** 前の支払いがまだ成功していないため、新しい請求を作成できません

* `UNSUCCESSFUL_PAYMENT_ID`
  * **トリガー:** 支払いIDが成功していない支払いを参照している
  * **メッセージ:** 支払いIDは成功していないステータスです。

### コネクタ＆BYOP

これらのエラーは、マーチャントが所有する支払いコネクタ（独自プロセッサの使用）に関連しています。

* `BYOP_CONNECTOR_DISABLED`
  * **トリガー:** 無効化されたBYOPコネクタを通してルーティングされるサブスクリプションの支払い方法を更新しようとする
  * **メッセージ:** サブスクリプションは現在無効なマーチャントの独自（BYOP）コネクタを通してルーティングされています

* `BYOP_CUSTOM_INVOICE_ADDRESS_MISSING`
  * **トリガー:** マーチャントルーティング(BYOP)支払いに必要なカスタム請求書アドレスが欠落している
  * **メッセージ:** 支払いがマーチャントのコネクタを通してルーティングされる場合、BYOPカスタム請求書アドレスが必要です

* `CONNECTOR_LABEL_ALREADY_EXISTS`
  * **トリガー:** 既に存在するラベルでコネクタを作成しようとする
  * **メッセージ:** すでにこのラベルでコネクタがあります。異なるラベルを選択してください。

### 返金

* `EXISTING_REFUND_REQUEST_PROCESSING`
  * **Trigger:** 前回の返金リクエストがまだ処理中です
  * **Message:** ステータス「Pending」の返金リクエストがまだ処理中です

* `LINE_ITEM_FULLY_REFUNDED`
  * **トリガー:** 既に全額返金されたラインアイテムに対して返金を試みる
  * **メッセージ:** ラインアイテム{id}はすでに全額返金されており、これ以上返金できません。

* `LINE_ITEM_NOT_FOUND`
  * **トリガー:** 参照された支払いに含まれていない項目ID
  * **メッセージ:** ラインアイテム{id}は支払い内に見つかりません

* `LINE_ITEM_PRORATED`
  * **トリガー:** プロレートされたラインの返金または更新が試みられた
  * **メッセージ:** ラインアイテム{id}はプロレートされているため返金できません

* `LINE_ITEM_REFUND_AMOUNT_TOO_HIGH`
  * **トリガー:** 返金額が支払額（税を含む）を超えている
  * **メッセージ:** ラインアイテム{id}要求された返金額（税を含む）は{amount}で、支払額{amount}を超えています

* `LINE_ITEM_REFUND_AMOUNT_TOO_LOW`
  * **トリガー:** 最低限度額未満の返金額
  * **メッセージ:** ラインアイテム{id}要求された返金額は{amount}で、低すぎます

* `NOTHING_TO_REFUND`
  * **トリガー:** 返金額は残っておらず、すべての正のラインアイテムはすでに全額返金されています
  * **メッセージ:** 返金可能額は残っていません。すべての正のラインアイテムがすでに完全に返金されています。

* `PARTIAL_REFUND_NOT_ALLOWED`
  * **トリガー:** 部分返金が全額返金のみをサポートする支払い方法で試みられる
  * **メッセージ:** この支払い方法では部分返金は許可されていません

* `PAYMENT_ALREADY_REFUNDED`
  * **トリガー:** 重複した返金
  * **メッセージ:** この支払いはすでに返金されています

* `PAYMENT_HAS_BEEN_REFUNDED`
  * **トリガー:** 支払いは完全に返金されています
  * **メッセージ:** 支払いIDは完全に返金されています。

* `REFUND_AMOUNT_EXCEEDS_PAID_AMOUNT`
  * **トリガー:** 集計返金額が支払額を超えている
  * **メッセージ:** 計算された返金額は支払額を超えています

* `REFUND_WINDOW_EXPIRED`
  * **トリガー:** 許可された返金ウィンドウ外
  * **メッセージ:** 支払い作成後{days}日以内に返金を開始することはできません。[support@dodopayments.com](mailto:support@dodopayments.com)にご連絡ください。

* `ZERO_AMOUNT_PAYMENT_REFUND_NOT_ALLOWED`
  * **トリガー:** ゼロ金額の支払いを返金しようとする
  * **メッセージ:** ゼロ通貨量での支払いは返金できません

### サブスクリプション＆アドオン

* `ADDONS_IN_USAGE_BASED_BILLING_NOT_SUPPORTED`
  * **トリガー:** 従量制課金サブスクリプションにアドオンを追加しようとする
  * **メッセージ:** 従量制課金にはサブスクリプションでアドオンはサポートされていません

* `ADDONS_NOT_ALLOWED_FOR_ON_DEMAND`
  * **トリガー:** オンデマンドサブスクリプションにアドオンを追加しようとする
  * **メッセージ:** オンデマンドサブスクリプションにはアドオンは許可されていません

* `CANCEL_SCHEDULED_PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED`
  * **トリガー:** ビジネスがそのアクションを無効にしている間に顧客ポータルがスケジュールされたプラン変更をキャンセルしようとする
  * **メッセージ:** 顧客ポータルでのスケジュールされたプラン変更のキャンセルは無効になっています。

* `CHARGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION`
  * **トリガー:** キャンセルが予定されているサブスクリプションを請求しようとする
  * **メッセージ:** キャンセル予定のサブスクリプション

* `CUSTOMER_HAS_EXISTING_SUBSCRIPTION`
  * **トリガー:** すでにサブスクリプションを持つ顧客に対してサブスクリプションを作成する、顧客ごとに複数のサブスクリプションが許可されていない場合
  * **メッセージ:** 顧客{id}には既存のサブスクリプションがあります。複数のサブスクリプションを顧客ごとに許可するには、ビジネス設定を変更してください

* `DO_NOT_BILL_NOT_ALLOWED_IN_CUSTOMER_PORTAL`
  * **トリガー:** 顧客ポータルプラン変更で使用される`do_not_bill`プロレートモード
  * **メッセージ:** do\_not\_billプロレートモードは顧客ポータルで許可されていません

* `DUPLICATE_ADDON_IDS_IN_REQUEST`
  * **トリガー:** リクエストに同じ`addon_id`が複数回含まれる
  * **メッセージ:** 重複したアドオンIDは許可されていません

* `INACTIVE_SUBSCRIPTION_PLAN_CHANGE_NOT_SUPPORTED`
  * **トリガー:** 非アクティブなサブスクリプションでのプラン変更
  * **メッセージ:** 非アクティブなサブスクリプションではプランの変更はサポートされていません

* `INVALID_PRORATION_MODE_WITH_NEXT_BILLING_DATE`
  * **トリガー:** `effective_at: next_billing_date`とともに`full_immediately`以外のプロレートモードが使用される
  * **メッセージ:** 有効日：next\_billing\_dateでは、full\_immediatelyプロレートモードのみ許可されています

* `MISSING_ADDON_IDS`
  * **トリガー:** `addon_id`リストが空または不明なID
  * **メッセージ:** 存在しない製品IDが1つまたは複数あります：{id}

* `ON_DEMAND_PLAN_CHANGE_NOT_SUPPORTED`
  * **トリガー:** オンデマンドにはプランスワップが許可されていません
  * **メッセージ:** オンデマンドサブスクリプションではプランの変更はサポートされていません

* `ON_DEMAND_USAGE_BASED_BILLING_NOT_SUPPORTED`
  * **トリガー:** 従量制課金でオンデマンドを使用しようとする
  * **メッセージ:** 従量制課金にはオンデマンドサブスクリプションはサポートされていません

* `ONE_TIME_PRODUCTS_NOT_ALLOWED_FOR_ON_DEMAND`
  * **トリガー:** オンデマンドサブスクリプションに一時的な製品を追加
  * **メッセージ:** オンデマンドサブスクリプションには一時製品は許可されていません

* `PENDING_PLAN_CHANGE_EXISTS`
  * **トリガー:** 以前のものが支払い待ちの間に新しいプラン変更が要求される
  * **メッセージ:** このサブスクリプションには保留中のプラン変更がすでに存在します。現在の支払いが完了するのを待ってください。

* `PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED`
  * **トリガー:** ビジネスがそれを無効にしている間の顧客ポータルを通じたプラン変更
  * **メッセージ:** 顧客ポータルでのサブスクリプションプラン変更は無効になっています。

* `PLAN_CHANGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION`
  * **トリガー:** 取消予定のサブスクリプションでのプラン変更が試みられる
  * **メッセージ:** 取消予定のサブスクリプション

* `SCHEDULE_PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED`
  * **トリガー:** ビジネスがそれを無効にしている間の顧客ポータルを通じたプラン変更のスケジューリング
  * **メッセージ:** このビジネス用のプラン変更のスケジューリングは無効になっています。

* `SCHEDULED_PLAN_CHANGE_EXISTS`
  * **トリガー:** 既存のスケジュールがある場合にプラン変更をスケジュールする
  * **メッセージ:** このサブスクリプションにはスケジュールされたプラン変更がすでに存在します。新しいものを作成する前に既存のスケジュールされた変更をキャンセルしてください。

* `SCHEDULED_PLAN_CHANGE_NOT_FOUND`
  * **トリガー:** 存在しないスケジュールされたプラン変更を参照またはキャンセルしようとする
  * **メッセージ:** このサブスクリプションにスケジュールされたプラン変更が見つかりません。

* `SUBSCRIPTION_EXPIRED`
  * **トリガー:** `ends_at`を超えて請求する
  * **メッセージ:** サブスクリプションの期限が切れているため新しい請求を作成できません

* `SUBSCRIPTION_INACTIVE`
  * **トリガー:** ステータス ≠ `ACTIVE`
  * **メッセージ:** サブスクリプションはアクティブではありません

* `SUBSCRIPTION_NOT_ON_DEMAND`
  * **トリガー:** オンデマンドを期待していたが固定された間隔が得られた
  * **メッセージ:** サブスクリプションはすでにオンデマンドではありません

* `SUBSCRIPTION_PAYMENT_RETRY_LIMIT_EXCEEDED`
  * **トリガー:** サブスクリプション支払いの再試行が最大試行回数を超えた
  * **メッセージ:** このサブスクリプションの最大10回の再試行制限を超過しました

### 製品、カート＆ブランド

* `BRAND_MISMATCH`
  * **トリガー:** カートアイテムが異なるブランドに属している
  * **メッセージ:** 商品カート内のすべてのアイテムは同じブランドに属する必要があります

* `BRAND_NOT_ENABLED`
  * **トリガー:** ブランドが無効またはアクティブではない
  * **メッセージ:** 提供されたブランドは有効ではありません

* `BRAND_SUBMISSION_NOT_ENABLED`
  * **トリガー:** ブランド検証の再提出機能が無効
  * **メッセージ:** ブランド検証の再提出は無効です

* `FILE_IN_USE`
  * **トリガー:** アクティブな権利付与によってまだ参照されているデジタル製品ファイルを削除する（上書きするために`?force=true`を渡す）
  * **メッセージ:** デジタルファイルはアクティブな権利付与で参照されています

* `INVALID_SUGGESTED_PRICE`
  * **トリガー:** PWYW価格 \< 許可される最低価格
  * **メッセージ:** 推奨価格は最低価格未満にすることはできません。支払いたい価格の場合、価格は最小受入額と見なされます

* `LOCALIZED_PRICE_ALREADY_EXISTS`
  * **トリガー:** この製品と国/通貨に対するローカライズ価格が既に存在する
  * **メッセージ:** この製品と国/通貨に対するローカライズ価格は既に存在します

* `LOCALIZED_PRICE_DUPLICATES_BASE`
  * **トリガー:** ローカライズ価格が製品の基本通貨/国を複製する
  * **メッセージ:** ローカライズ価格は製品の基本通貨/国を複製しています

* `LOCALIZED_PRICE_SHAPE_MISMATCH`
  * **トリガー:** ローカライズ価格の形状が製品の`pricing_mode`と一致しない
  * **メッセージ:** ローカライズ価格の形状は製品のpricing\_modeと一致しません

* `MISSING_PRODUCT_INFORMATION`
  * **トリガー:** 製品が存在しているが、必須情報が不足している
  * **メッセージ:** 製品{id}が存在していますが、他の必須情報が不足しているか無効です

* `PAY_AS_YOU_WANT_AMOUNT_REQUIRED`
  * **トリガー:** PWYW製品の価格が不足している
  * **メッセージ:** 支払いたい製品には金額が必須です

* `PRODUCT_CART_EMTPY`
  * **トリガー:** 空の製品カートが提出された
  * **メッセージ:** product\_cartは空です（エラーコードはAPIが返す正確な値に一致するように意図的に`EMTPY`とスペルされています）

* `PRODUCT_COLLECTION_IS_DELETED`
  * **トリガー:** 削除された製品コレクションを操作する
  * **メッセージ:** *メッセージなし*

* `PRODUCT_COLLECTION_MUST_HAVE_PRODUCTS`
  * **トリガー:** コレクションから最後の製品（または製品を含む最後のグループ）を削除する
  * **メッセージ:** コレクションから最後の製品を削除することはできません。代わりにコレクションをアーカイブしてください。

* `PRODUCT_IS_DELETED`
  * **トリガー:** 製品のソフト削除
  * **メッセージ:** *メッセージなし*

* `PRODUCT_PRICING_MODE_REQUIRED`
  * **トリガー:** 製品の`pricing_mode`が設定される前にローカライズ価格を追加する
  * **メッセージ:** 製品のpricing\_modeはローカライズ価格を追加する前に設定する必要があります

* `SLUG_ALREADY_TAKEN`
  * **トリガー:** 要求された製品スラッグ/短縮URLが既に使用されています
  * **メッセージ:** スラッグがすでに使用されています

* `UNABLE_TO_EDIT_PRIMARY_BRAND`
  * **トリガー:** 一次ブランドを通常のAPIを通して更新しようとする
  * **メッセージ:** 一次ブランドはこのAPIエンドポイントを通して更新できません。

### 割引

* `DISCOUNT_ALREADY_USED_ON_SUBSCRIPTION`
  * **トリガー:** このサブスクリプションで既に使用されている割引を再適用する
  * **メッセージ:** このサブスクリプションでこの割引はすでに使用されています

* `DISCOUNT_CODE_ALREADY_EXISTS`
  * **トリガー:** 割引コードの重複作成
  * **メッセージ:** 割引コードはすでに存在します

* `DISCOUNT_CODE_EXPIRED`
  * **トリガー:** 割引コードがその`expires_at`の日付を過ぎている
  * **メッセージ:** 割引コードは期限切れです

* `DISCOUNT_CODE_USAGE_LIMIT_EXCEEDED`
  * **トリガー:** `usage_limit`を超えた後に割引を再利用する
  * **メッセージ:** 使用制限はtimes\_usedより少なくなりません / 割引コードの使用制限がヒットされました

* `DISCOUNT_NOT_APPLICABLE_TO_NEW_PRODUCT`
  * **トリガー:** 既存の割引が適用されない製品へのプラン変更
  * **メッセージ:** 割引は新しいプランの製品に適用されません

* `DISCOUNT_NOT_AVAILABLE_FOR_ON_DEMAND`
  * **トリガー:** オンデマンドサブスクリプションにコードが適用される
  * **メッセージ:** オンデマンドサブスクリプションには割引クーポンが利用できません

* `DISCOUNT_NOT_AVAILABLE_FOR_PRODUCT`
  * **トリガー:** 関連性のない製品/グループにコードが適用される
  * **メッセージ:** この製品には割引クーポンが利用できません

* `INVALID_DISCOUNT_CODE`
  * **トリガー:** コードが存在しない/適用できない
  * **メッセージ:** 無効な割引コード/カート内のいずれの製品にも適用できない割引コード

* `INVALID_PERCENTAGE`
  * **トリガー:** パーセント額 > 100% (または10,000ベーシスポイント)
  * **メッセージ:** パーセンテージ額は10,000以上にすることはできません/割引コード額は100%を超えることはできません

* `UNSUPPORTED_DISCOUNT_TYPE`
  * **トリガー:** フラット額の割引など、まだライブではない
  * **メッセージ:** 現在のところ、パーセンテージ割引コードのみがサポートされています

### ライセンスキー

* `ACTIVATION_LIMIT_LESS_THAN_CURRENT_AMOUNT`
  * **トリガー:** ライセンスキーアクティベーション: 新しい制限 \< 既存のインスタンス数
  * **メッセージ:** 新しいアクティベーション制限は現在のインスタンス数より少なくすることはできません

* `INACTIVE_LICENSE_KEY`
  * **トリガー:** キーステータス ≠ `ACTIVE`
  * **メッセージ:** ライセンスキーはアクティブではありません

* `LICENSE_KEY_LIMIT_REACHED`
  * **トリガー:** アクティベーション = 制限
  * **メッセージ:** ライセンスキーのアクティベーション制限に達しました

* `LICENSE_KEY_NOT_FOUND`
  * **トリガー:** インスタンスIDまたはキーIDが無効
  * **メッセージ:** ライセンスキーのインスタンスが見つからない、またはこのライセンスキーに属していません

* `NO_EXPIRY_ON_SUBSCRIPTION_LICENSE_KEYS`
  * **トリガー:** 購読ベースのキーに有効期限を設定しようとする
  * **メッセージ:** 購読ベースのライセンスキーには有効期限を設定できません

### 使用ベースの請求＆メーター

* `DUPLICATE_METER_IDS_IN_REQUEST`
  * **トリガー:** リクエストに同じメーターIDが複数回含まれる
  * **メッセージ:** 重複するメーターIDは許可されていません

* `INVALID_QUANTITY`
  * **トリガー:** 使用ベースの価格設定に指定された無効な量
  * **メッセージ:** 使用ベースの価格製品では1量のみが許可されます

* `METER_IS_DELETED`
  * **トリガー:** 削除されたメーターを使用しようとする
  * **メッセージ:** メーターはすでに削除されています

* `MISSING_METER_IDS`
  * **トリガー:** メーターIDリストが空または無効なIDを含んでいる
  * **メッセージ:** 存在しないメーターIDがあります：{id}

### クレジットベースの請求

* `CREDIT_ENTITLEMENT_IS_DELETED`
  * **トリガー:** 削除されたクレジット権利を操作する
  * **メッセージ:** クレジット権利はすでに削除されています

* `CREDIT_ENTITLEMENT_NAME_ALREADY_EXISTS`
  * **トリガー:** すでに存在する名前でクレジット権利を作成する
  * **メッセージ:** この名前ですでにクレジット権利が存在します

* `OVERAGE_LIMIT_EXCEEDED`
  * **トリガー:** 使用またはクレジットの控除が設定された過剰使用制限を超える場合
  * **メッセージ:** 過剰使用制限を超えています

### ウォレット

* `INSUFFICIENT_WALLET_FUNDS`
  * **トリガー:** ウォレットの残高 \< 引き落とし額
  * **メッセージ:** ウォレットに十分な資金がありません

* `NEGATIVE_BALANCE_ADJUSTMENT`
  * **トリガー:** ウォレット残高を負にしようとする
  * **メッセージ:** ウォレット残高を負にすることは許可されていません

### 通貨、税＆地域

* `EXCHANGE_RATE_NOT_FOUND`
  * **トリガー:** `from → to`通貨ペアに対するFXレートがない
  * **メッセージ:** 通貨から通貨への換算のための為替レートが見つかりません

* `INVALID_TAX_ID`
  * **トリガー:** VAT/GST/TINの検証に失敗
  * **メッセージ:** 税IDが無効です

* `REQUEST_AMOUNT_BELOW_MINIMUM`
  * **ト리ガー:** 額が製品の最低額未満
  * **メッセージ:** 額は製品の指定された最低額未満にすることはできません

* `TOTAL_PAYMENT_AMOUNT_BELOW_MINIMUM_AMOUNT`
  * **トリガー:** 合計カートの合計がゲートウェイの最小額未満
  * **メッセージ:** 支払い処理には{display_str}の最低額が必要です

* `UNSUPPORTED_BILLING_CURRENCY`
  * **トリガー:** サブスクリプションがUSDに制限されている
  * **メッセージ:** サブスクリプションには非USDの請求通貨はサポートされていません

* `UNSUPPORTED_COUNTRY`
  * **トリガー:** ジオがまだサポートされていない
  * **メッセージ:** 国{country_name}は現在サポートされていません

* `UNSUPPORTED_CURRENCY`
  * **トリガー:** 製品またはアドオン通貨が無効
  * **メッセージ:** 現在、通貨はサポートされていません / 現在、USDおよびINRの商品しかサポートされていません / アドオン価格にはUSDおよびINRのみサポートされています / 請求通貨にはUSDまたはINRのみ要求できます / 通貨はサポートされていません / インドカードサブスクリプションの予期しない通貨

* `UNSUPPORTED_TAX_CATEGORY`
  * **トリガー:** 税カテゴリー文字列がenumにない
  * **メッセージ:** カテゴリー{category}は現在サポートされていません

### 検証＆リクエスト

* `DUPLICATE_LINE_ITEMS_IN_REQUEST`
  * **トリガー:** 同じ`item_id`が`items[]`に二度現れる
  * **メッセージ:** items配列に重複するitem\_idsが指定されています

* `INVALID_QUERY_PARAMS`
  * **トリガー:** 排他的または不正なクエリパラメーター
  * **メッセージ:** クエリパラメーターはtime\_frameまたは(start, end)のいずれかのみを含んでいるべきです

* `INVALID_REQUEST_BODY`
  * **トリガー:** 不正なJSONまたはスキーマ違反
  * **メッセージ:** リクエストボディが無効です。リクエストヘッダーとオブジェクトを確認してください。

* `INVALID_REQUEST_PARAMETERS`
  * **トリガー:** セマンティックスが間違っている（例：過去の日付）
  * **メッセージ:** next\_billing\_dateを過去の時間に変更することはできません

* `MAXIMUM_KEYS_REACHED`
  * **トリガー:** メタデータ/カスタムフィールドが50ペアを超えた
  * **メッセージ:** 50キーバリューペアを超えています

### 一般＆システム

* `INTEGER_CONVERSION_FAILURE`
  * **トリガー:** サーバー側で失敗する整数↔文字列/10進数変換
  * **メッセージ:** 整数変換失敗

* `INTERNAL_SERVER_ERROR`
  * **トリガー:** 捕捉されない例外；詳細をサーバー側でログに記録する必要があります
  * **メッセージ:** *公開メッセージなし（一般的な500）*

* `NOT_FOUND`
  * **トリガー:** いかなる欠落したリソースのための一般的な404
  * **メッセージ:** アイテムが見つかりません\*(またはより具体的なもの)\*

* `TOO_MANY_REQUESTS`
  * **トリガー:** 429レート制限
  * **メッセージ:** *メッセージなし*

* `UNSUPPORTED_ACTION`
  * **トリガー:** リソースタイプに対するサポートされていないアクション
  * **メッセージ:** 使用ベースのサブスクリプションに対するプラン変更はサポートされていません

## ベストプラクティス

1. アプリケーション内でエラーを優雅に処理する
2. 適切なエラーログを実装する
3. 利用者に適切なエラーメッセージを使用する
4. 一時的なエラーに対してリトライロジックを実装する
5. 解決されない問題についてはサポートに問い合わせる

## サポート

エラーコードや統合問題に関する追加のヘルプが必要な場合は、[support@dodopayments.com](mailto:support@dodopayments.com)のサポートチームにお問い合わせください。
