Cas d'erreur

En cas d'erreur, l'APD doit renvoyer un code d'état HTTP avec une réponse HTTP qui DOIT inclure un objet JSON contenant plus d'informations sur l'erreur. Le corps de la réponse d'erreur DOIT contenir une instance de ErrorResponse.

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

La réponse d'erreur du DPA DOIT correspondre à ce qui suit:

  • L'utilisateur est en itinérance et la requête ADP est désactivée pour cet utilisateur. L'APD renvoie une erreur 403 avec USER_ROAMING comme cause de l'erreur.
  • Le DPA renvoie un code d'erreur 404 NOT_FOUND indiquant à la GTAF que la clé utilisateur n'est pas valide (c'est-à-dire, une clé utilisateur inexistante) avec INVALID_NUMBER.
  • Le DPA renvoie un code d'erreur 410 GONE avec le BAD_CPID comme cause d'erreur, indiquant à GTAF que le client doit obtenir une nouvelle clé utilisateur si key_type = CPID est arrivé à expiration.
  • Le DPA renvoie un code d'erreur 501 NOT_IMPLEMENTED indiquant qu'il ne prend pas en charge cet appel avec la cause d'erreur SERVICE_UNAVAILABLE.
  • Le DPA renvoie une erreur 429 TOO MANY REQUESTS avec TOO_MANY_REQUESTS, avec l'en-tête Réessayer-Après, indiquant que la GTAF envoie trop de requêtes au DPA.
  • L'APD renvoie une erreur 409 CONFLICT indiquant que la requête ne peut pas être traitée en raison d'un conflit avec l'état actuel de l'APD.
  • Service momentanément indisponible. Le DPA renvoie un 503 SERVICE NON DISPONIBLE avec l'en-tête Réessayer-Après, indiquant quand une nouvelle requête peut être tentée.
  • Le DPA renvoie une erreur 500 INTERNAL SERVER ERROR pour toutes les autres erreurs non spécifiées ERROR_CAUSE_UNSPECIFIED en tant que cause de l'erreur.

En cas d'erreurs rencontrées lors d'un achat, les codes d'erreur suivants représentent les échecs de transaction:

  • Le DPA renvoie un code d'erreur 400 BAD REQUEST indiquant à la GTAF que l'ID de forfait acheté n'est pas valide.
  • L'APD renvoie un code d'erreur 402 PAYMENT REQUIRED indiquant au GTAF que le solde de l'utilisateur est insuffisant pour effectuer l'achat.
  • Le DPA renvoie un code d'erreur 409 CONFLICT qui indique à la GTAF que le forfait à acheter est incompatible avec le mix produits actuel de l'utilisateur. Par exemple, si la stratégie du forfait de données de l'opérateur interdit les forfaits prépayés et post-payés, toute tentative d'achat d'un forfait prépayé pour un utilisateur ayant souscrit à un forfait génère une erreur 409 CONFLICT.
  • Le DPA renvoie un code d'erreur 403 FORBIDDEN indiquant à la GTAF que la transaction actuelle est un doublon d'une transaction ayant déjà été émise. Le DPA DOIT renvoyer les causes d'erreur suivantes :
    • Si la transaction précédente était un échec, le motif de l'échec est une cause d'erreur.
    • Si la transaction précédente a abouti, DUPLICATE_TRANSACTION.
    • Si la transaction précédente est toujours en file d'attente, REQUEST_QUEUED.