# Lire une promotion utilisable par code

Récupère des informations sur la promotion par un code promo ou un code de coupon.

Endpoint: GET /v3/project/{project_id}/admin/promotion/redeemable/code/{code}
Version: 2.0.0
Security: basicAuth

## Path parameters:

  - `project_id` (integer, required)
    ID du projet. Vous trouverez ce paramètre dans le Compte éditeur, à côté du nom du projet, ainsi que dans l'URL affichée dans la barre d'adresse du navigateur lorsque vous utilisez ce projet. L'URL présente le format suivant : https://publisher.xsolla.com//projects/.
    Example: 44056

  - `code` (string, required)
    Code unique sensible à la casse. Comprend des lettres et des chiffres.
    Example: "WINTER2021"

## Response 200 fields (application/json):

  - `external_id` (string)
    ID unique de la promotion. Le external_id ne peut comprendre que des caractères alphanumériques latins minuscules et majuscules, des points, des tirets et des traits bas.

  - `promotion_periods` (array)
    Périodes de validité de la promotion. Si plusieurs périodes sont spécifiées, les paramètres date_from et date_until sont tous deux requis.

  - `promotion_periods.date_from` (string, required)
    Date de début de la promotion spécifiée.
    Example: "2020-08-11T10:00:00+03:00"

  - `promotion_periods.date_until` (string,null)
    Date de fin de la promotion. Si la valeur est null, la promotion est illimitée. null n'est autorisé que si une seule période de validité est définie.
    Example: "2020-08-11T20:00:00+03:00"

  - `name` (object)
    Nom de la promotion. Doit comprendre des paires clé/valeur
où la clé est une région au format "^[a-z]{2}-[A-Z]{2}$", la valeur est une chaîne.

  - `bonus` (array,null)

  - `bonus.sku` (string)
    UGS de l'objet.

  - `bonus.quantity` (number)
    Quantité de l'objet.

  - `is_enabled` (boolean)

  - `redeem_total_limit` (integer,null)
    Limite le nombre total de coupons.

  - `redeem_user_limit` (integer,null)
    Limite le nombre total de coupons pouvant être échangés par un seul utilisateur.

  - `redeem_code_limit` (integer,null)
    Nombre d'échanges par code.

  - `total_limit_state` (object,null)
    Limites pour chaque code de coupon unique.

  - `total_limit_state.available` (integer)
    Nombre restant de fois qu'un coupon peut être utilisé.
    Example: 3

  - `total_limit_state.reserved` (integer)
    Numéro réservé d'un coupon.
    Example: 3

  - `total_limit_state.used` (integer)
    Nombre de fois qu'un coupon est utilisé.
    Example: 5

  - `discount` (object,null)
    Uniquement pour les codes promo.
    Example: {"discount":{"percent":"10.99"}}

  - `discount.percent` (string,null)
    Pourcentage de la remise.
Le prix du panier sera réduit d'une valeur calculée à l'aide de ce pourcentage et arrondie à 2 décimales.
    Example: "10.00"

  - `discounted_items` (array,null)
    Liste des objets bénéficiant d'une remise grâce à un code promo. Uniquement pour les codes promo.

  - `discounted_items.sku` (string, required)
    UGS de l'objet.

  - `discounted_items.discount` (object, required)

  - `discounted_items.discount.percent` (string, required)
    Pourcentage de la remise.

Le prix du panier sera réduit d'une valeur
calculée à l'aide de ce pourcentage et arrondie
à 2 décimales.

## Response 401 fields (application/json):

  - `statusCode` (integer)
    Example: 401

  - `errorCode` (integer)
    Example: 1020

  - `errorMessage` (string)
    Example: "[0401-1020]: Error in Authentication method occurred"

## Response 404 fields (application/json):

  - `statusCode` (integer)
    Example: 404

  - `errorCode` (integer)
    Example: 9811

  - `errorMessage` (string)
    Example: "[0401-9811]: Code not found."

## Response 405 fields (application/json):

  - `statusCode` (integer)
    Example: 405

  - `errorCode` (integer)

  - `errorMessage` (string)
    Example: "Method is not allowed. Method must be one of: OPTIONS"


