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

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

一度限りのチェックアウトかサブスクリプションの更新かに関わらず、すべての失敗した支払いには、支払いオブジェクトに同じ失敗フィールドが含まれています。
error_codeerror_messageは支払いが実際に失敗するまでnullです。最初にstatusを常に確認し、次にエラーフィールドを読み取ります。
Merchant APIのerror_messageは、加盟店向けの文言です。詐欺に関連するものを含め、拒否の実際の理由が示される場合があるため、顧客に直接表示しないでください。代わりに、Surface Errors to Customers Safelyに示すように、error_codeを顧客に安全な独自の文言にマッピングしてください。

payment.failed Webhook

失敗を検出する最も信頼性の高い方法は、payment.failed webhookです。このイベントには、data内の完全な支払いオブジェクトが含まれます。
payment.failed payload
最小限のハンドラーでは、error_codeを読み取り、それに基づいて処理を振り分けます。
処理する前に、必ずwebhookの署名を検証してください。署名検証や冪等性を含む完全な設定方法については、Webhooks guideを参照してください。

再試行するかどうかを判断する:Soft declineとHard decline

error_codeは、同じ支払い方法で再試行する価値があるかどうかを示します。 Transaction Failuresリファレンスには、すべてのerror_codeについて、拒否タイプと推奨アクションが記載されています。

Checkout時と更新時の失敗への対応

顧客がその場にいるかどうかによって、回復方法は異なります。
顧客はCheckoutを進行中です。わかりやすいメッセージを表示し、すぐに再試行するか、別のカードを使用できるようにしてください。
  • requires_payment_method — 顧客が支払い方法を一度も提示していない状態です。カード情報を入力しなかったか、入力を求められたものの何も操作しなかったことを意味します。通常、これは拒否ではなくCheckoutからの離脱です。Abandoned Cart Recoveryを参照し、支払いを完了してもらうために顧客へ再度アプローチしてください。
  • requires_customer_action — 追加の認証(3DSなど)が必要です。顧客に認証を完了してもらってください。3D Secure handlingを参照してください。

失敗した支払いの再試行

  • サブスクリプション: Subscription Payment Retriesを有効にすると、追加の連携作業なしでSoft declineを回復できます。Update Payment Method APIを使用して顧客に支払い方法を更新してもらうことでも、回復を開始できます。このAPIは未払いの料金を請求します。
  • 1回限りの支払い: Checkoutまたはpayment_linkを再送信し、顧客が別の方法で再試行できるようにします。1回限りの支払いには自動再試行はありません。
同じカードに対してHard declineの再試行を行わないでください。カードネットワークによって、繰り返される拒否が不正な行為として検知される可能性があり、承認率の低下につながります。

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

顧客には親しみやすいメッセージを表示してください。生のerror_codeや、加盟店向けのerror_messageを表示してはいけません。
Dodo Paymentsが管理する画面(Checkout、Customer Portal、および督促メール)では、詐欺に関連する拒否に対する一般的なメッセージへのフォールバックを含め、このマッピングがすでに適用されています。以下のマッピングが必要なのは、自社プロダクト内で失敗を表示する場合のみです。
Customer-facing messaging
STOLEN_CARDLOST_CARDPICKUP_CARDFRAUDULENTの実際の理由は、決して開示しないでください。 これらを表示すると、不正行為者に手がかりを与える可能性があります。一般的な拒否メッセージを表示し、具体的なerror_codeは内部でのみ記録してください。

関連情報

Transaction Failures

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

Error Codes

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

Subscription Payment Retries

サブスクリプション更新時のSoft declineの自動回復。

Subscription Dunning

Hard declineを回復するメールシーケンス。

Payment Webhooks

支払いイベントの完全なペイロードスキーマ。

Testing Failures

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