# Actualizar promoción de cupones

Actualiza una promoción de cupones.

Endpoint: PUT /v3/project/{project_id}/admin/coupon/{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"

## Request fields (application/json):

  - `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, required)
    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.

  - `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.

  - `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.

## 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]: Coupon not found"

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

## Response 422 fields (application/json):

  - `statusCode` (integer)
    Example: 422

  - `errorCode` (integer)
    Example: 1102

  - `errorMessage` (string)
    Example: "[0401-1102]: Unprocessable Entity. The property `external_id` is required"


## Response 204 fields
