メインコンテンツへスキップ
支払いが失敗したとき、Dodo Paymentsは標準化されたerror_codeと人間が読めるerror_messageによって理由を通知します。このガイドでは、これらのフィールドを読み取る方法、再試行する価値があるかどうかを判断し、顧客に機密情報を露出せずに支払いを回収する方法を示します。

Dodo Paymentsが報告する障害の方法

一度限りのチェックアウトかサブスクリプションの更新かに関わらず、すべての失敗した支払いには、支払いオブジェクトに同じ失敗フィールドが含まれています。
error_codeerror_messageは支払いが実際に失敗するまでnullです。最初にstatusを常に確認し、次にエラーフィールドを読み取ります。

payment.failed Webhook

失敗を検出する最も信頼できる方法はpayment.failed webhookです。このイベントはdataにフル支払いオブジェクトをラップします。
payment.failed payload
ミニマルハンドラーはerror_codeを読み取り、それにルートします。
処理前にWebhookの署名を必ず検証してください。完全な設定には署名の検証と冪等性が含まれていますので、Webhookガイドを参照してください。

再試行するかどうかの決定:ソフト拒否とハード拒否

error_codeは、同じ支払い方法を再試行する価値があるかどうかを教えてくれます。 取引失敗リファレンスには、すべてのerror_codeの拒否タイプと推奨操作が記載されています。

チェックアウトでの失敗と更新時の失敗の処理

回収方法は、顧客がその場にいるかどうかによって異なります。
顧客が積極的にチェックアウトしています。明確なメッセージを表示し、すぐに再試行するか、別のカードを使用してもらいます。
  • requires_payment_method — 顧客が支払い方法を提供しなかった:カードの詳細を入力しなかったか、プロンプトが表示されたか、何の行動も取らなかった。これは通常、チェックアウトドロップオフであり、拒否ではありません — 顧客を再びエンゲージして支払いを完了させます(放棄されたカートの回収を参照してください)。
  • requires_customer_action — 追加の認証(例えば3DS)が必要です。顧客にそれを完了させます。3D Secureの処理を参照してください。

失敗した支払いの再試行

  • サブスクリプション: サブスクリプション支払い再試行を有効にし、統合作業なしでソフト拒否を回収します。また、顧客が支払い方法更新APIを通じて支払い方法を更新し、未払い金額を請求することで回収をトリガーすることもできます。
  • 一度限りの支払い: チェックアウトを再送信するかpayment_linkを実行し、顧客が別の方法で再試行できるようにします。一度限りの支払いに自動再試行はありません。
同じカードへのハード拒否を再試行しないでください。カードネットワークは繰り返される拒否を乱用として旗を立てる可能性があり、承認率に悪影響を与える可能性があります。

顧客へのエラーを安全に表示する

顧客にフレンドリーなメッセージを表示し、決して生のerror_codeを表示しないでください。
Customer-facing messaging
STOLEN_CARDLOST_CARDPICKUP_CARDFRAUDULENTの実際の理由を決して明らかにしないでください。 これらを表面化すると、不正なアクターへの警告となります。ジェネリックな拒否メッセージを表示し、特定のerror_codeは内部のみにログしてください。

関連情報

Transaction Failures

すべての拒否コード、そのタイプ、および推奨アクション。

Error Codes

カードの拒否でないAPIおよびビジネスロジックエラー。

Subscription Payment Retries

サブスクリプション更新でのソフト拒否の自動回復。

Subscription Dunning

ハード拒否を回収するメールシーケンス。

Payment Webhooks

支払いイベントのフルペイロードスキーマ。

Testing Failures

拒否と更新失敗をシミュレートするテストカード。
最終更新日 2026年6月18日