PAY.JP

エラーハンドリング

API エラーに対するハンドリング方法、リトライ戦略について

PAY.JP API のエラーを適切に処理するための方法について説明します。エラーレスポンスの技術仕様については、エラーレスポンス仕様を参照してください。

エラーハンドリングについて

API レスポンスのステータスコードに応じて、適切なエラーハンドリングを実装することが重要です。

ステータスコード別の対応方針

ステータス対応方針
400 Bad Requestリクエストパラメーターを確認し修正。自動リトライは不要
401 UnauthorizedAPI キーを確認
402 Payment Requiredカード決済失敗。ユーザーに別の支払い方法を案内
404 Not Foundリソース ID を確認
409 Conflict冪等キーの競合。詳細は冪等リクエストを参照
422 Unprocessable Entityerrors 配列の内容を確認しパラメーターを修正
500 Internal Server Errorサーバーエラー。処理が完了したかどうかは不明なため、状態を確認してから再実行
502, 503, 504サーバーまたはネットワークの一時的なエラー。リトライ可能

リトライ戦略

一時的なエラーやネットワークタイムアウトが発生した場合は、リトライ間隔を徐々に延ばしながら同じ冪等キーでリトライすることを推奨します。

リトライすべきエラー

  • 502 Bad Gateway
  • 503 Service Unavailable
  • 504 Gateway Timeout
  • ネットワークエラー、ネットワークタイムアウト

500 Internal Server Error

500 が返却された場合、処理が完了したかどうかは不明です。冪等キーを指定したリクエストでは、同じキーでリトライしても同じ 500 が返却されます。オブジェクトの取得や Webhook で状態を確認し、処理が完了していなければ新しい冪等キーで再実行してください。

リトライすべきでないエラー

  • 400 Bad Request(パラメーターの問題)
  • 401 Unauthorized(認証の問題)
  • 402 Payment Required(決済失敗)
  • 404 Not Found(リソースが存在しない)
  • 422 Unprocessable Entity(バリデーション失敗)

参考リンク

On this page