# Obtener promoción de códigos promocionales

Obtiene una promoción de códigos promocionales especificada.

Endpoint: GET /v3/project/{project_id}/admin/promocode/{external_id}
Version: 2.0.0
Security: basicAuth

## Path parameters:

  - `project_id` (integer, required)
    ID del proyecto. Encontrará este parámetro en su Cuenta del editor junto al nombre del proyecto y en la barra de direcciones del navegador cuando se trabaja en un proyecto. La URL tiene el siguiente formato: https://publisher.xsolla.com//projects/.
    Example: 44056

  - `external_id` (integer, required)
    ID externo de la promoción. Identificador único de la promoción dentro del proyecto.
    Example: "coupon_44056_1"

## Response 200 fields (application/json):

  - `external_id` (string)
    ID único de promoción. El external_id solo puede contener caracteres alfanuméricos latinos en minúsculas y mayúsculas, puntos, guiones y guiones bajos.

  - `promotion_periods` (array)
    Periodos de validez de la promoción.  Si se especifican varios periodos, es necesario tanto date_from como date_until.

  - `promotion_periods.date_from` (string, required)
    Fecha de inicio de la promoción especificada.
    Example: "2020-08-11T10:00:00+03:00"

  - `promotion_periods.date_until` (string,null)
    Fecha de finalización de la promoción especificada. Si se establece como null, la promoción es indefinida. Puede ser null solamente si se especifica un único periodo de validez.
    Example: "2020-08-11T20:00:00+03:00"

  - `name` (object)
    Nombre de la promoción. Debe contener pares clave/valor
en los cuales la clave es una configuración regional con el formato "^[a-z]{2}-[A-Z]{2}$", el valor es una cadena (string).

  - `bonus` (array,null)

  - `bonus.sku` (string)
    SKU del artículo.

  - `bonus.quantity` (number)
    Cantidad del artículo.

  - `is_enabled` (boolean)

  - `redeem_total_limit` (integer,null)
    Limita el número total de cupones.

  - `redeem_user_limit` (integer,null)
    Limita el número total de cupones canjeados por un mismo usuario.

  - `redeem_code_limit` (integer,null)
    Número de canjes por cada código.

  - `discount` (object,null)
    Example: {"discount":{"percent":"10.99"}}

  - `discount.percent` (string,null)
    Porcentaje de descuento.
El precio de la cesta se reducirá utilizando un valor calculado utilizando este porcentaje y luego se redondeará al segundo decimal.

  - `discounted_items` (array,null)
    Lista de artículos con descuento mediante un código promocional.

  - `discounted_items.sku` (string, required)
    SKU del artículo.

  - `discounted_items.discount` (object, required)

  - `discounted_items.discount.percent` (string, required)
    Porcentaje de descuento.

El precio del artículo de la cesta se reducirá utilizando un valor
calculado utilizando este porcentaje y luego se redondeará
al segundo decimal.

  - `total_limit_state` (object,null)
    Límites para cada código promocional único.

  - `total_limit_state.available` (integer)
    El número restantes de veces que se puede utilizar un código promocional.
    Example: 3

  - `total_limit_state.reserved` (integer)
    El número reservado de un código promocional.
    Example: 3

  - `total_limit_state.used` (integer)
    El número de veces que se utiliza un código promocional.
    Example: 5

  - `attribute_conditions` (array)
    Condiciones para validar los atributos de usuario.
Determina la disponibilidad de la promoción en función de si los atributos de usuario cumplen todas las condiciones especificadas.

  - `price_conditions` (array,null)
    Matriz de objetos con condiciones que establecen el rango de precios para aplicar la promoción a toda la cesta.
El precio total de todos los artículos de la cesta del usuario se compara con el rango de precios especificado en la condición. Las [bonificaciones](/es/api/shop-builder/operation/create-promo-code/#!path=bonus&t=request) y los [descuentos](/es/api/shop-builder/operation/create-promo-code/#!path=discount&t=request) se aplican a todos los artículos de la cesta si el precio de la cesta cumple la condición especificada.
Si transmite esta matriz, establezca el valor de la matriz [discounted_items](/es/api/shop-builder/operation/create-promo-code/#!path=discounted_items&t=request) como null.

  - `price_conditions.operator` (string, required)
    Operador de comparación para establecer el rango de precios para aplicar la promoción.

Valores posibles:
- ge — Mayor o igual que
- gt — Mayor que
- le — Menor o igual que
- lt — Menor que
- eq — Igual que
- ne — No es igual que
    Enum: "ge", "gt", "le", "lt", "eq", "ne"

  - `price_conditions.value` (string, required)
    Valor para determinar el rango de precios para aplicar la promoción.

  - `item_price_conditions` (array,null)
    Matriz de objetos con condiciones que establecen el rango de precios para aplicar la promoción a determinados artículos de la cesta.
 El precio de cada artículo en la cesta del usuario se compara con el rango de precios especificado en la condición. Se aplican [bonificaciones](/es/api/shop-builder/operation/create-promo-code/#!path=bonus&t=request) y [descuentos](/es/api/shop-builder/operation/create-promo-code/#!path=discount&t=request) únicamente a aquellos artículos de la cesta cuyo precio cumple la condición.
 Si transmite esta matriz, establezca el valor de la matriz [discounted_items](/es/api/shop-builder/operation/create-promo-code/#!path=discounted_items&t=request) como null.

  - `item_price_conditions.operator` (string, required)
    Operador de comparación para establecer el rango de precios para aplicar la promoción.

Valores posibles:
- ge — Mayor o igual que
- gt — Mayor que
- le — Menor o igual que
- lt — Menor que
- eq — Igual que
- ne — No es igual que
    Enum: "ge", "gt", "le", "lt", "eq", "ne"

  - `item_price_conditions.value` (string, required)
    Valor para determinar el rango de precios para aplicar la promoción.

  - `excluded_promotions` (array)
    Lista de ID de promociones a excluir al aplicar esta promoción. Example: [12, 789].

## 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: 4001

  - `errorMessage` (string)
    Example: "[0401-9802]: Promocode not found"

  - `transactionId` (string)
    Example: "x-x-x-x-transactionId-mock-x-x-x"


