エラーハンドリング

APIリクエストにエラーがある場合、 Amazon Payは、reasonCodemessage を返します。例として、以下は、リクエストが無効なパラメータ値で送信された場合のレスポンスです。

{
  "reasonCode": "InvalidParameterValue",
  "message": "The value provided for [Parameter] is invalid."
}

エラーコード

この表は、Amazon Pay APIエンドポイントが返す可能性のある一般的なエラーコードについて説明しています。

HTTPステータスコード
理由コード
説明
400 BAD_REQUEST
InvalidHeaderValue
API呼び出しのヘッダーパラメータの少なくとも1つに無効な値を送信しました

詳細については、APIレスポンスのメッセージ内容を確認してください
400 BAD_REQUEST
InvalidRequest
リクエストは無効です

詳細については、APIレスポンスのメッセージ内容を確認してください
400 BAD_REQUEST
InvalidParameterValue
API呼び出しのパラメータの少なくとも1つに無効な値を送信しました

詳細については、APIレスポンスのメッセージ内容を確認してください
400 BAD_REQUEST
InvalidRequestFormat
無効なJSON形式でリクエストを送信しました。リクエストの本文の形式を確認してください
400 BAD_REQUEST
MissingHeaderValue
API呼び出しでヘッダーパラメータの1つが欠落しています

詳細については、APIレスポンスのメッセージ内容を確認してください
400 BAD_REQUEST
MissingParameterValue
必須のリクエストパラメータの1つがAPI呼び出しにありません

詳細については、APIレスポンスのメッセージ内容を確認してください
400 BAD_REQUEST
UnrecognizedField
リクエスト本文に無効なフィールドを渡しました

詳細については、APIレスポンスのメッセージ内容を確認してください
400 BAD_REQUEST
InvalidSandboxSimulationSpecified
SANDBOXで無効な操作を試みました

詳細については、APIレスポンスのメッセージ内容を確認してください
400 BAD_REQUEST
DuplicateIdempotencyKey
このリクエストで指定した冪等キー(IdempotencyKey)は、別のリクエストですでに使用されており、再利用できません
400 BAD_REQUEST
InvalidParameterCombination
無効なパラメータの組み合わせを使用しようとしました。リクエストを確認してください
400 BAD_REQUEST
CurrencyMismatch
売上請求で提供される通貨コードが、決済時に設定された通貨コードと一致しません
400 BAD_REQUEST
InvalidAPIVersion
サポートされていないAPIバージョンを使用しようとしたか、APIオブジェクトのバージョンとAPIリクエストのバージョンに互換性がありません
401 UNAUTHORIZED
UnauthorizedAccess
指定された事業者アカウントは、このリクエストを実行する権限がありません

たとえば、委任された権限を使用して実行が許可されていないリクエストを行おうとしました
403 FORBIDDEN
InvalidAuthentication
認証に失敗しました。セラーセントラル (US, EU, JP)で認証情報のステータスを確認してください
403 FORBIDDEN
InvalidAccountStatus
ご利用のアカウントは、このリクエストを実行するのに適切なステータスではありません

例えば、アカウントが停止されていたり、アカウント登録が完了していない場合などです。詳細はセラーセントラル (US, EU, JP) をご確認ください。
403 FORBIDDEN
InvalidRequestSignature
API呼び出しのAuthorizationヘッダーの署名が無効です

詳細については、APIレスポンスのメッセージ内容を確認してください
403 FORBIDDEN
InvalidAuthorizationToken
リクエストで渡されたauthorization tokenが無効です
404 NOT_FOUND
ResourceNotFound
要求されたリソースが見つかりませんでした
405 METHOD_NOT_ALLOWED
UnsupportedOperation
この操作はサポートされていません
405 METHOD_NOT_ALLOWED
RequestNotSupported
HTTPメソッドはサポートされていません

詳細については、APIレスポンスのメッセージ内容を確認してください
408 REQUEST_TIMEOUT
RequestTimeout
リクエストがタイムアウトしました

リクエストを再試行してください。ただし、再試行しても正常なレスポンスが保証されるわけではありません
426 UPGRADE_REQUIRED
TLSVersionNotSupported
TLSバージョンがサポートされていません。最新のSSL / TLSバージョンにアップグレードします
429 TOO_MANY_REQUESTS
TooManyRequests
特定の時間内にリクエストが多すぎるため、リクエストが制限されました

 リクエストを再試行する必要があります
500 INTERNAL_SERVER_ERROR
InternalServerError
不明なエラーが発生しました

リクエストを再試行してください。ただし、再試行しても正常なレスポンスが保証されるわけではありません
503 SERVICE_UNAVAILABLE
ServiceUnavailable
一時的な過負荷またはメンテナンスのため、現在リクエストを処理できません

リクエストを再試行してください

エラーのリトライ

HTTPステータスコード429、500、503の応答を受け取った場合は、直ちにリクエストを再試行する必要があります。複数回再試行する場合は、定義された上限まで 指数的バックオフ(exponential backoff) アプローチを実施し、エラーを記録してから手動でのフォローアップと調査を進めることをお勧めします。例えば、以下のような時間間隔で再試行を行うことができます: 1秒、2秒、4秒、10秒、30秒。実際のバックオフ時間や制限値は、お客様のビジネスプロセスによって異なります。