エラーケース

エラーの場合、DPA は HTTP ステータス コードと HTTP レスポンスを返します。レスポンスには、エラーの詳細情報を含む JSON オブジェクトを含める必要があります。エラー レスポンスの本文には ErrorResponse のインスタンスが含まれなければなりません。

{
  "errorMessage": string,
  "cause": enum(ErrorCause)
}

DPA エラーのレスポンスは、以下に対応しなければなりません。

  • このユーザーはローミング中です。このユーザーの DPA クエリは無効になっています。DPA は、403 エラーを USER_ROAMING とともに返します。
  • DPA は、404 NOT_FOUND エラーコードを返します。GTAF は、ユーザーキーが無効(つまり、存在しないユーザーキー)であることを示す INVALID_NUMBER を返します。
  • DPA は、BAD_CPID を含む 410 GONE エラーコードを返し、エラーの原因は、key_type=CPID で CPID が期限切れになった場合にクライアントが新しいユーザーキーを取得することを GTAF に示すものです。
  • DPA は、この呼び出しを SERVICE_UNAVAILABLE エラーでサポートしていないことを示す 501 NOT_IMPLEMENTED エラーコードを返します。
  • DPA は 429 TOO MANY REQUESTS with TOO_MANY_REQUESTS エラーを返し、GTAF が DPA に対して過剰なリクエスト数を行っていることを示す Retry-After ヘッダーを返します。
  • DPA は、409 CONFLICT エラーを返します。これは、DPA の現在の状態との競合が原因でリクエストを完了できないことを示しています。
  • サービスを一時的に利用できません。DPA は、503 SERVICE UNAVAILABLE を返します。この Retry-After ヘッダーは新しいリクエストを試行できるタイミングを示します。
  • DPA は、その他の未指定のエラー ERROR_CAUSE_UNSPECIFIED について、エラー原因として 500 INTERNAL SERVER ERROR エラーコードを返します。

購入中にエラーが発生した場合、次のエラーコードは失敗したトランザクションの結果を表します。

  • DPA は、購入済みのプラン ID が無効であることを示す 400 BAD REQUEST エラーコードを返します。
  • DPA は、402 PAYMENT REQUIRED エラーコードを返します。これは、ユーザーが購入を完了するのに十分な残高がないことを GTAF に対して示すものです。
  • DPA は、購入対象のプランがユーザーの現在のプロダクト構成と互換性がないことを示す 409 CONFLICT エラーコードを返します。たとえば、オペレーターのデータプランのポリシーで、プリペイド プランとプリペイド プランの混在が許可されていない場合、後払いユーザーのプリペイド プランを購入しようとすると 409 CONFLICT エラーが発生します。
  • DPA は、現在のトランザクションが以前に発行されたトランザクションの重複であることを示す 403 FORBIDDEN エラーコードを返します。DPA は、それに応じて次のエラー原因を返すべきです。
    • 前のトランザクションが失敗した場合は、エラーの原因を示すエラーの原因になります。
    • 前のトランザクションが成功した場合は、DUPLICATE_TRANSACTION。
    • 前のトランザクションがまだキューに入っている場合は、REQUEST_QUEUED となります。