correlationId + meta + payload — エラーハンドリング を参照)を使用します。エラーが発生した場合、meta.errorCode が機械可読のエラーキーになります。本ページでは User API と Public API が返却し得るすべての値を列挙します。
このページの読み方
Wire HTTP 列はレスポンスが実際に届く際の HTTP ステータスです。meta.status 列はボディ内のアプリケーションレベルのステータスです。
meta.errorCode 列はクライアントコードで分岐に使用する値です。
meta.error 列は各エラーの詳細の形を表します。
本 API のほとんどのエラー経路は HTTP 200 を返し、論理的なステータスを meta.status に載せます(ソフトエラーの慣習)。少数のケースでは実際の HTTP 401/403/409 を返します — これらは API 自身のレスポンスエンベロープが適用される前に発生するか、本来の HTTP の意味を表しているためです。
バリデーション失敗
ほぼすべての書き込みエンドポイントは FluentValidation を通過します。ここで捕捉されたもの — 必須フィールドの欠落、値の範囲外、無効な国コード、バッチサイズ超過、Custom(...) チェックで表現された業務ルール違反など — はすべて 1 つのエラーコードに集約されます:
| Wire HTTP | meta.status | meta.errorCode | meta.error |
|---|---|---|---|
200 | 400 | VALIDATION_FAILED | リクエストプロパティ名をキーとし、カンマ区切りのエラーメッセージリストを値に持つオブジェクト。バッチ系エンドポイント(例:/api/Recall/createRecallByReturnInventoryId)では jobEntryList 内の各項目が個別に提示されるため、どのリスト要素が失敗したかを特定できます。 |
meta.error を確認してください — キーがどのフィールドが誤っているかを示します。
業務ルール・リソースエラー
リクエストは構造的に有効でも、データの現在の状態、アカウント、あるいはサポートインフラストラクチャと矛盾する場合に、業務ロジックから送出されます。各エラーは異なるerrorCode を持つため、分岐処理が可能です。
meta.errorCode | Wire HTTP | meta.status | 発生条件 |
|---|---|---|---|
TRACKING_ALREADY_EXIST | 200 | 400 | 送信した trackingNumber がすでに別のアクティブなレコードで使用されています。最も多いのは Create FBA shipment で同じ Amazon 追跡番号を二重送信した場合。tracking 値を直接渡す return shipment / resend 作成でも発生し得ます。meta.error には衝突したレコードの識別情報が含まれます。 |
ACCOUNT_IS_BLOCKED | 200 | 403 | お客様の API アカウントがブロックされています(例:未払い残高、規約違反)。Return Helper サポートがブロックを解除するまで、すべての書き込みエンドポイントは失敗します。meta.error.message に人間可読の理由が含まれます。support@returnhelper.com までご連絡ください。 |
S3_OBJECT_NOT_FOUND_OR_NOT_PUBLIC_READ | 200 | 404 | S3 からファイルを取得する必要があるエンドポイント(通常は VAS の添付ファイルやラベル成果物)が対象オブジェクトを読み取れませんでした。以前アップロードしたファイルが今も存在しアクセス可能であることをご確認ください。 |
UPLOAD_FILE_TO_S3_FAIL | 200 | 500 | ファイルを S3 にアップロードする必要があるエンドポイントが失敗しました。一過性のインフラ問題です — 同じ冪等キーでリトライしてください。 |
REQUEST_CUSTOM_DOMAIN_FAIL | 200 | 500 | カスタムドメインサービスを呼び出すラベル / ブランディング系エンドポイントが失敗しました。一過性です — リトライしてください。 |
認証・アクセス制御失敗
これらはソフトエラーではありません。通常のリクエストパイプラインの前(または外)で生成されるため、実際の HTTP ステータスコードで届きます。| Wire HTTP | meta.status | meta.errorCode | 発生条件 |
|---|---|---|---|
401 | 401 | null | x-rr-apikey または x-rr-apitoken が欠落、形式不正、もしくはアクティブなアカウントに一致しません。meta.error.message は "Missing request header" のような内容になります。 |
403 | 403 | null | RrForbiddenException が送出された場合 — お客様のアカウントは認証されていますが、当該操作の権限がありません(例:他テナントのレコードを読もうとした)。meta.error.message は人間可読です。 |
競合・未検出
頻度は低いですが発生し得ます:| Wire HTTP | meta.status | meta.errorCode | 発生条件 |
|---|---|---|---|
200 | 404 | null | RrInvalidException または RrNotfoundException が送出された場合 — 参照したリソース(ID 指定)が存在しないか、お客様のアカウントに属していません。meta.error.message は人間可読です。 |
409 | 409 | null | DuplicateTransactionException が送出された場合 — 送信した状態変更リクエストが、冪等性レイヤーによって進行中または完了済みのリクエストの重複と認識されました。meta.error には transactionType、headId、uniqueChargeKey、message が含まれます。no-op として扱ってください — 元のリクエストは成功しています。 |
クライアント側の推奨処理
擬似コード:correlationId はすべてのレスポンスに含まれます。必ずログに記録してください — Return Helper のサポートが内部システムで特定のリクエストを追跡する手がかりになります。
各エラーコードの定義場所
本ページに掲載しているエラーコードはReturnRequestApiModel.RrException 名前空間の RrErrorCode 定数に由来します。本ページに記載のない errorCode 値に遭遇した場合は、未文書化の内部エラーとして扱い、correlationId とともにサポートへご報告ください。