# API de LiveOps

# Descripción general {% #overview %}

* **Versión:** 2.0.0
* **Servidores**: `https://store.xsolla.com/api`
* **[Contacte con nosotros por correo electrónico](mailto:integration@xsolla.com)**
* **URL de contacto:** https://xsolla.com/
* **Versión TLS requerida:** 1.2

LiveOps es un conjunto de herramientas para estimular el compromiso continuo de los jugadores a través de promociones y ofertas personalizadas.

Utilice la API para gestionar las siguientes funciones:

* **Promociones**: crear y gestionar cupones, códigos promocionales, descuentos y campañas de bonificaciones.
* **Personalización**: especificar las condiciones para mostrar el catálogo de artículos y aplicar promociones solo para ciertos usuarios autorizados.
* **Límites de promoción**: establecer un límite en cuántas veces un usuario puede utilizar una promoción y configurar reinicios programados para estos límites.
* **Cadenas de recompensas y puntos de valor**: configurar progresiones de recompensas vinculadas a la acumulación de puntos de valor.
* **Cadenas diarias**: configurar recompensas diarias recurrentes para estimular inicios de sesión regulares.
* **Cadenas de ofertas**: construir ofertas de compra secuenciales con precios por cada paso y opciones de recompensa gratuita.
* **Venta adicional**: un método de ventas en el que se ofrece al usuario comprar un artículo que posee un valor adicional.

## Llamadas API {% #api-calls %}

La API se divide en los **siguientes grupos**:

* **<nt>Admin</nt>**: llamadas para crear, actualizar, activar y eliminar campañas y configuraciones de cadenas. Se autentican a través de [autenticación básica de acceso](https://developers.xsolla.com/es/payment-ui-and-flow/payment-ui/how-to-get-payment-token/#payments_solution_get_user_auth_token_basic_auth) con sus credenciales de comerciante o de proyecto.
* **<nt>Client</nt>**: llamadas para recuperar promociones disponibles, obtener cadenas activas, canjear códigos y reclamar recompensas en nombre de usuarios finales autenticados. Se autentican a través del JWT del usuario.

# Autenticación {% #authentication %}

Las llamadas API requieren autenticación ya sea en nombre de un usuario o en nombre de un proyecto. El esquema de autenticación utilizado se especifica en la sección **Seguridad** en la descripción de cada llamada.

## Autenticación mediante el JWT del usuario {% #authentication-using-users-jwt %}

La autenticación mediante el JWT del usuario se utiliza cuando se envía una solicitud desde un navegador, aplicación móvil o juego. Por defecto, se aplica el esquema `XsollaLoginUserJWT`. Para obtener más detalles sobre cómo crear un token, consulte la [documentación del API de Xsolla Login](/es/api/login/authentication-schemes#getting-user-token).

El token se transmite en el encabezado `Authorization` con el siguiente formato: `Authorization: Bearer <user_JWT>`, en el que `<user_JWT>` es el token de usuario. El token identifica al usuario y proporciona acceso a datos personalizados.

También puede utilizar un [token para abrir la interfaz de pago](/es/api/pay-station/token/create-token).

## Autenticación HTTP básica {% #basic-http-authentication %}

La autenticación HTTP básica se utiliza para interacciones de servidor a servidor, cuando una llamada API se envía directamente desde su servidor en lugar de desde el navegador de un usuario o aplicación móvil. Normalmente, se usa la autenticación HTTP básica con una [clave de API](/es/api/getting-started/#api_keys_overview).

<div class="note"><b>Nota:</b><br><br>La clave de API es confidencial y no debe almacenarse ni usarse en aplicaciones cliente.</div>

Con la autenticación básica del lado del servidor, todas las solicitudes de API deben incluir el siguiente encabezado:

- para `basicAuth` — `Authorization: Basic <your_authorization_basic_key>`, en las que `your_authorization_basic_key` es el par `project_id:api_key` codificado en Base64
- para `basicMerchantAuth` — `Authorization: Basic <your_authorization_basic_key>`, en las que `your_authorization_basic_key` es el par `merchant_id:api_key` codificado en Base64

Puede encontrar los valores de parámetro en [Cuenta del editor](https://publisher.xsolla.com/):

- Se muestra `merchant_id`:
  - En **Configuración de la empresa > Empresa**.
  - En la URL en la barra de direcciones del navegador en cualquier página de Cuenta del editor. La URL tiene el siguiente formato: `https://publisher.xsolla.com/<merchant_id>`.
- Se muestra `project_id`:
  - Junto al nombre del proyecto en Cuenta del editor.
  - En la URL en la barra de direcciones del navegador al trabajar en un proyecto en la Cuenta del editor. La URL tiene el siguiente formato: `https://publisher.xsolla.com/<merchant_id>/projects/<project_id>`.
- `api_key` se muestra en Cuenta del editor solo en el momento de la creación y debe almacenarse de forma segura en su servidor. Puede crear una clave de API en las siguientes secciones:
  - [Configuración de la empresa > Claves de API](https://publisher.xsolla.com/0/settings/api_key)
  - [Configuración del proyecto > Clave de API](https://publisher.xsolla.com/0/projects/0/edit/api_key)

<div class="notice"><b>Aviso:</b><br><br>Si una llamada API requerida no incluye el parámetro de ruta <code>project_id</code>, utilice una clave de API que sea válida para todos los proyectos de la empresa para la autorización.</div>

Para obtener más información sobre cómo trabajar con claves de API, consulte las [referencias de la API](/es/api/getting-started/#api_keys_overview).

## Autenticación con compatibilidad con el acceso de invitado {% #authentication-with-guest-access-support %}

El esquema de autenticación `AuthForCart` se utiliza para las compras con cesta y admite dos modos:

1. **Autenticación con el JWT de un usuario.** El token se transmite en el encabezado `Authorization` en el siguiente formato: `Authorization: Bearer <user_JWT>`, en el que `<user_JWT>` es el token del usuario. El token identifica al usuario y proporciona acceso a datos personalizados. De forma alternativa, puede usar un [token para abrir la interfaz de pago](/es/api/pay-station/token/create-token).

2. **Modo simplificado sin encabezado "Authorization".** Este modo se utiliza solo para usuarios no autorizados y puede aplicarse solo para [ventas de claves de juego](/es/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users). En lugar de un token, la solicitud debe incluir los siguientes encabezados:
   - `x-unauthorized-id` con un ID de solicitud
   - `x-user` con la dirección de correo electrónico del usuario codificada en Base64

## Enlaces útiles {% #authentication-useful-links %}

- [Llamadas API por modelo de interacción](/es/api/getting-started/#api_interaction_model)
- [Tipos de puntos finales](/es/api/getting-started/#api_endpoint_types)
- [Gestión de errores](/es/api/getting-started/#api_errors_handling)
- [Claves de API](/es/api/getting-started/#api_keys_overview)

# Estructura de la entidad principal {% #core-entity-structure %}

Los artículos de todos los tipos (artículos virtuales, lotes, moneda virtual y claves) emplean una estructura de datos similar. Comprender la estructura básica simplifica el trabajo con la API y le ayuda a orientarse más fácilmente en la documentación.

<div class="note"><b>Nota:</b><br><br>Algunas llamadas pueden incluir campos adicionales, pero no cambian la estructura básica.</div>

**Identificación**

- `merchant_id` — ID de la empresa en [Cuenta del editor](https://publisher.xsolla.com/)
- `project_id` — ID del proyecto en Cuenta del editor
- `sku` — SKU del artículo, único dentro del proyecto

**Visualización en la tienda**

- `name` — nombre del artículo
- `description` — descripción del artículo
- `image_url` — URL de la imagen
- `is_enabled` — disponibilidad del artículo
- `is_show_in_store` — si el artículo se muestra o no en el catálogo

Para obtener más información sobre la gestión de la disponibilidad de artículos en el catálogo, consulte la [documentación](/es/items-catalog/catalog-features/items-availability/).

**Organización**

- `type` — tipo de artículo, p. ej., un artículo virtual (`virtual_item`) o lote (`bundle`)
- `groups` — grupos a los que pertenece el artículo
- `order` — orden de visualización en el catálogo

**Condiciones de venta**

- `prices` — precios en moneda real o virtual
- `limits` — límites de compra
- `periods` — periodos de disponibilidad
- `regions` — restricciones regionales

**Ejemplo de estructura de entidad principal:**

```json
{
  "attributes": [],
  "bundle_type": "virtual_currency_package",
  "content": [
    {
      "description": {
        "en": "Main in-game currency"
      },
      "image_url": "https://.../image.png",
      "name": {
        "en": "Crystals",
        "de": "Kristalle"
      },
      "quantity": 500,
      "sku": "com.xsolla.crystal_2",
      "type": "virtual_currency"
    }
  ],
  "description": {
    "en": "Crystals x500"
  },
  "groups": [],
  "image_url": "https://.../image.png",
  "is_enabled": true,
  "is_free": false,
  "is_show_in_store": true,
  "limits": {
    "per_item": null,
    "per_user": null,
    "recurrent_schedule": null
  },
  "long_description": null,
  "media_list": [],
  "name": {
    "en": "Medium crystal pack"
  },
  "order": 1,
  "periods": [
    {
      "date_from": null,
      "date_until": "2020-08-11T20:00:00+03:00"
    }
  ],
  "prices": [
    {
      "amount": 20,
      "country_iso": "US",
      "currency": "USD",
      "is_default": true,
      "is_enabled": true
    }
  ],
  "regions": [],
  "sku": "com.xsolla.crystal_pack_2",
  "type": "bundle",
  "vc_prices": []
}
```

# Flujo de compra básico {% #basic-purchase-flow %}

La API de Xsolla le permite implementar la lógica de una tienda en el juego, incluyendo la recuperación del catálogo de artículos, la gestión de la cesta, la creación de pedidos y el seguimiento de su estado. Dependiendo del escenario de integración, las llamadas API se dividen en subsecciones de **Admin** y **Catálogo**, que usan diferentes [esquemas de autenticación](/es/api/catalog/authentication).

El siguiente ejemplo muestra un flujo básico para establecer y operar una tienda, desde la creación de artículos hasta la compra.

## Crear artículos y grupos (Admin) {% #create-items-and-groups-admin %}

Cree un catálogo de artículos para su tienda, como artículos virtuales, lotes o moneda virtual.

Ejemplos de llamadas API:
- [Crear artículo virtual](/es/api/catalog/virtual-items-currency-admin/admin-create-virtual-item)
- [Crear lote](/es/api/catalog/bundles-admin/admin-create-bundle)
- [Crear moneda virtual](/es/api/catalog/virtual-items-currency-admin/admin-create-virtual-currency)

## Establecer promociones, cadenas y límites (Admin) {% #set-up-promotions-chains-and-limits-admin %}

Configure herramientas de adquisición de usuarios y monetización, como descuentos, bonificaciones, recompensas diarias o cadenas de ofertas.

Ejemplos de llamadas API:
- [Crear promoción de bonificación](/es/api/liveops/promotions-bonuses/create-bonus-promotion)
- [Crear recompensa diaria](/es/api/liveops/daily-chain-admin/admin-create-daily-chain)
- [Crear promoción de oferta única del catálogo](/es/api/liveops/promotions-unique-catalog-offers/admin-create-unique-catalog-offer)

## Obtener información del artículo (cliente) {% #get-item-information-client %}

Configure la visualización de artículos en su aplicación.

<div class="notice">
  <b>Aviso:</b><br><br>
    No utilice llamadas API de la subsección Admin para crear un catálogo de usuarios. Estas llamadas API tienen <a href="https://developers.xsolla.com/es/api/getting-started/#api_rate_limits" target="_blank">límites de frecuencia</a> y no están destinadas para el tráfico de usuarios.
</div>

<br>

Ejemplos de llamadas a la API:
- [Obtener lista de artículos virtuales](/es/api/catalog/virtual-items-currency-catalog/get-virtual-items)
- [Obtener lista de grupos de artículos](/es/api/catalog/virtual-items-currency-catalog/get-item-groups)
- [Obtener lista de lotes](/es/api/catalog/bundles-catalog/get-bundle-list)
- [Obtener lista de artículos vendibles](/es/api/catalog/common-catalog/get-sellable-items)

<div class="note">
  <b>Nota:</b><br><br>
    Por defecto, las llamadas API del catálogo devuelven artículos que están actualmente disponibles en la tienda en el momento de la solicitud. Para recuperar artículos que aún no están disponibles o que ya no lo están, incluya el parámetro <code>"show_inactive_time_limited_items": 1</code> en la solicitud del catálogo.
</div>

## Vender artículos {% #sell-items %}

Puede vender artículos utilizando los siguientes métodos:
- Compra rápida: venda un SKU varias veces.
- Compra con cesta: el usuario añade artículos a la cesta, elimina artículos y actualiza cantidades dentro de un solo pedido.

Si un artículo se compra utilizando moneda virtual en lugar de dinero real, utilice la llamada API [Crear pedido con artículo especificado comprado con moneda virtual](/es/api/catalog/virtual-payment/create-order-with-item-for-virtual-currency). La interfaz de pago no es necesaria, ya que el cargo se procesa cuando se ejecuta la llamada API.

Para la compra de artículos gratuitos, utilice la llamada API [Crear pedido con artículo gratuito especificado](/es/api/catalog/free-item/create-free-order-with-item) o la llamada API [Crear pedido con cesta gratuita](/es/api/catalog/free-item/create-free-order). La interfaz de pago no es necesaria: el pedido se establece inmediatamente con el estado <code>done</code>.

### Compra rápida {% #fast-purchase %}

Utilice la llamada API del lado del cliente para [crear un pedido con un artículo especificado](/es/api/catalog/payment-client-side/create-order-with-item). La llamada devuelve un token utilizado para abrir la interfaz de pago.

<div class="note">
  <b>Nota:</b><br><br>
    La información de descuento está disponible para el usuario únicamente en la interfaz de pago. Los códigos promocionales no son compatibles.
</div>

### Compra con cesta {% #cart-purchase %}

La configuración y compra de la cesta se puede realizar en el cliente o en el lado del servidor.

**Configurar y comprar una cesta en el cliente**

Implemente la lógica de añadir y eliminar artículos por usted mismo. Antes de llamar a la API para establecer una cesta, no tendrá información sobre qué promociones se aplicarán a la compra. Esto implica que el coste total y los detalles de los artículos de bonificación añadidos no se conocerán.

Implemente la siguiente lógica de cesta:
1. Después de que el jugador haya llenado una cesta, utilice la llamada API [Llenar la cesta con artículos](/es/api/shop-builder/operation/cart-fill/). La llamada devuelve la información actual sobre los artículos seleccionados (precios antes y después de descuentos y artículos de bonificación).
2. Actualice el contenido de la cesta basándose en las acciones de los usuarios:
   - Para añadir un artículo o cambiar la cantidad del artículo, utilice la llamada API [Actualizar artículo de la cesta por ID de la cesta](/es/api/shop-builder/operation/put-item-by-cart-id/).
   - Para eliminar un artículo, utilice la llamada API [Eliminar artículo de la cesta por ID de la cesta](/es/api/shop-builder/operation/delete-item-by-cart-id/).

<div class="note">
  <b>Nota:</b><br><br>
    Para obtener el estado actual de la cesta, utilice la llamada API Obtener la cesta del usuario actual.
</div>

3. Utilice la llamada API [Crear pedido con todos los artículos de la cesta actual](/es/api/shop-builder/operation/create-order/). La llamada devuelve el ID del pedido y el token de pago. El pedido recién creado se establece por defecto con el estado <code>new</code>.

**Configurar y comprar una cesta en el servidor**

Esta opción de configuración puede requerir más tiempo para configurar la cesta, ya que cada modificación que se realice en ella debe ir acompañada de llamadas API.

Implemente la siguiente lógica de cesta:
1. Después de que el jugador haya llenado una cesta, utilice la llamada API [Llenar la cesta con artículos](/es/api/catalog/cart-server-side). La llamada devuelve la información actual sobre los artículos seleccionados (precios antes y después de descuentos, y artículos de bonificación).
2. Utilice la llamada API [Crear pedido con todos los artículos de la cesta actual](/es/api/shop-builder/operation/create-order/). La llamada devuelve el ID del pedido y el token de pago. El pedido recién creado se establece por defecto con el estado <code>new</code>.

## Abrir interfaz de pago {% #open-payment-ui %}

Utilice el token devuelto para abrir la interfaz de pago en una nueva ventana. Otras formas de abrir la interfaz de pago se describen en la [documentación](/es/payment-ui-and-flow/payment-ui/how-to-open-payment-ui/#open_payment_ui).

| Acción                          | Punto final                                                                  |
|:--------------------------------|:--------------------------------------------------------------------------|
| Abrir en entorno de producción. | <code>https://secure.xsolla.com/paystation4/?token={token}</code>         |
| Abrir en modo sandbox.          | <code>https://sandbox-secure.xsolla.com/paystation4/?token={token}</code> |

<div class="note">
  <b>Nota:</b><br><br>
    Utilice el modo sandbox durante el desarrollo y las pruebas. Las compras de prueba no hacen cargos en cuentas reales. Puede usar <a href="https://developers.xsolla.com/es/dev-resources/testing/test-cards/">tarjetas bancarias de prueba</a>.

    Tras realizar el primer pago real, se aplica una política estricta de pagos en aislador de proceso (sandbox). Un pago en modo sandbox está disponible solo para los usuarios especificados en [Cuenta del editor > Company settings > Users](https://publisher.xsolla.com/0/settings/users).

    Comprar moneda virtual y artículos con moneda real es posible solamente después de firmar un acuerdo de licencia con Xsolla. Para hacerlo, en [Cuenta del editor](https://publisher.xsolla.com/), vaya a **Agreements & Taxes > Agreements**, rellene el formulario de acuerdo y espere la confirmación. La revisión del acuerdo puede tardar hasta tres días laborables.
</div>

Para habilitar o deshabilitar el modo sandbox, cambie el valor del parámetro `sandbox` en la solicitud para compra rápida y compra con cesta. El modo sandbox está desactivado por defecto.

Posibles estados del pedido:
- `new`: pedido creado
- `paid`: pago recibido
- `done`: artículo entregado
- `canceled`: pedido cancelado
- `expired`: pedido expirado

Haga un seguimiento del estado del pedido usando uno de los siguientes métodos:
- [webhooks configurados en su servidor](/es/virtual-goods/own-ui/server-side-token-generation/set-up-order-tracking/#payments_integration_order_tracking)
- [sondeo corto](/es/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/#guides_shop_builder_integrate_store_get_order_status_via_short_polling)
- [API de WebSocket](/es/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/#guides_shop_builder_integrate_store_get_order_status_via_websocket_api)

## Enlaces útiles {% #basic-purchase-flow-useful-links %}

- Autenticación
- [Llamadas API por modelo de interacción](/es/api/catalog/authentication)
- [Pruebas de pago](/es/dev-resources/testing/general-info/#general_overview)
- [Establecer el seguimiento del estado del pedido](/es/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/?link=200-api#payments_integration_order_tracking)
- [Webhooks](/es/webhooks/overview)
- [Límites de frecuencia](/es/api/login/rate-limits)
- [Gestión de errores](/es/api/getting-started/#api_errors_handling)
- [Claves de API](/es/api/getting-started/#api_keys_overview)

# Paginación {% #pagination %}

Las llamadas API que devuelven grandes conjuntos de registros (p. ej., al crear un catálogo) devuelven datos en páginas. La paginación es un mecanismo que limita el número de artículos devueltos en una sola respuesta de API y le permite recuperar páginas posteriores de manera secuencial.

Utilice los siguientes artículos para controlar el número de artículos devueltos:

- `limit` — número de artículos por página
- `offset` — índice del primer artículo de la página (la numeración comienza desde 0)
- `has_more` — indica si hay otra página disponible
- `total_items_count` — número total de artículos

Ejemplo de solicitud:

```
GET /items?limit=20&offset=40
```

Ejemplo de respuesta:

```json
{
  "items": [...],
  "has_more": true,
  "total_items_count": 135
}
```

Se recomienda enviar solicitudes posteriores hasta que la respuesta devuelva `has_more = false`.

# Formato de fecha y hora {% #date-and-time-format %}

Las fechas y valores de tiempo se transmiten en el formato [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).

Se admiten los siguientes:

- Desfase UTC (tiempo universal coordinado)
- Valor `null` cuando no hay restricción de tiempo para mostrar un artículo
- [Marca de tiempo Unix](https://www.unixtimestamp.com/) (en segundos) utilizada en algunos campos

Formato: `AAAA-MM-DDTHH:MM:SS±HH:MM`

Ejemplo: `2026-03-16T10:00:00+03:00`

# Localización {% #localization %}

Xsolla admite la localización de campos visibles por el usuario, como el nombre y la descripción del artículo. Los valores localizados se transmiten como un objeto en el que el código de idioma se utiliza como la clave. La lista completa de idiomas admitidos está disponible en la [documentación](/es/doc/shop-builder/references/supported-languages/).

**Campos admitidos**

La localización puede especificarse para los siguientes parámetros:

- `name`
- `description`
- `long_description`

**Formato de configuración regional**

La clave de configuración regional puede especificarse en uno de los siguientes formatos:

- Código de idioma de dos letras: `en`, `ru`
- Código de idioma de cinco letras: `en-US`, `ru-RU`, `de-DE`

**Ejemplos**

Ejemplo con un código de idioma de dos letras:

```json
{
  "name": {
    "en": "Starter Pack",
    "ru": "Стартовый набор"
  }
}
```

Ejemplo con un código de idioma de cinco letras:

```json
{
  "description": {
    "en-US": "Premium bundle",
    "de-DE": "Premium-Paket"
  }
}
```

# Formato de respuesta de error {% #error-response-format %}

Si ocurre un error, la API devuelve un estado HTTP y un cuerpo de respuesta JSON. La lista completa de errores relacionados con la tienda está disponible en la [documentación](/es/dev-resources/references/errors/store-errors/).

**Ejemplo de respuesta:**

```json
{
  "errorCode": 1102,
  "errorMessage": "Validation error",
  "statusCode": 422,
  "transactionId": "c9e1a..."
}
```

- `errorCode` — código de error.
- `errorMessage` — descripción breve del error.
- `statusCode` — estado de la respuesta HTTP.
- `transactionId` — ID de la solicitud. Se devuelve solo en algunos casos.
- `errorMessageExtended` — detalles adicionales del error, como los parámetros de la solicitud. Se devuelve solo en algunos casos.

**Ejemplo de respuesta ampliada:**

```json
{
  "errorCode": 7001,
  "errorMessage": "Chain not found",
  "errorMessageExtended": {
    "chain_id": "test_chain_id",
    "project_id": "test_project_id",
    "step_number": 2
  },
  "statusCode": 404
}
```

**Códigos de estado HTTP habituales**

- `400` — solicitud no válida
- `401` — error de autenticación
- `403` — permisos insuficientes
- `404` — recurso no encontrado
- `422` — error de validación
- `429` — límite de frecuencia excedido

**Recomendaciones**

- Gestione el estado HTTP y el cuerpo de la respuesta juntos.
- Utilice `errorCode` para procesar errores relacionados con la lógica de la aplicación.
- Utilice `transactionId` para identificar solicitudes más rápidamente al analizar errores.

Version: 2.0.0

## Servers

```
https://store.xsolla.com/api
```

## Security

### basicAuth

Las llamadas del lado del servidor utilizan el esquema de autenticación `basicAuth`. Todas las solicitudes a la API deben
contener el encabezado `Authorization: Basic <your_authorization_basic_key>`,
donde `your_authorization_basic_key` es el par `project_id:api_key`
codificado según el estándar Base64.

Puede utilizar `merchant_id` en lugar de `project_id` si lo necesita. No afecta a la funcionalidad.

Vaya a [Cuenta de editor](https://publisher.xsolla.com/) para encontrar los valores de los parámetros:

* Se muestra `merchant_id`:
  * En **Company settings > Company**
  * En la URL en la barra de direcciones del navegador en cualquier página de Cuenta del editor. La URL tiene el siguiente formato: `https://publisher.xsolla.com/<merchant_id>`.
* `api_key` se muestra en Cuenta del editor solo una vez cuando se crea y debe almacenarse en su servidor. Puede crear una nueva clave en la siguiente sección:
  * [Company settings > API keys](https://publisher.xsolla.com/0/settings/api_key)
  * [Project settings > API keys](https://publisher.xsolla.com/0/projects/0/edit/api_key)

{% html name="div" attrs={"class": "notice"} %}
**Aviso**

Si una llamada API requerida no incluye el parámetro de ruta `project_id`, utilice una clave API que sea válida para todos los proyectos de la empresa para la autorización.
{% /html %}

* Se muestra `project_id`:
  * En Cuenta del editor junto al nombre del proyecto.
  * En la URL de la barra de direcciones del navegador cuando se trabaja en el proyecto en Cuenta del editor. La URL tiene el siguiente formato: `https://publisher.xsolla.com/<merchant_id>/projects/<project_id>`.

Para más información sobre cómo trabajar con claves API, consulte la [referencia API](https://developers.xsolla.com/es/api/getting-started/#api_keys_overview).

Type: http
Scheme: basic

### XsollaLoginUserJWT

Las llamadas del lado del cliente utilizan el esquema de autenticación `XsollaLoginUserJWT`. a solicitud debe incluir el JWT del usuario en el encabezado `Authorization` con el siguiente formato: Bearer `<user_JWT>`. El token identifica al usuario y permite acceder a datos personalizados. Para obtener más información sobre cómo crear un token, consulte la [documentación de la API de Xsolla Login](/es/api/login/authentication-schemes#getting-user-token).

También puede utilizar un [token para abrir la interfaz de pago](/es/api/pay-station/token/create-token).

Type: http
Scheme: bearer
Bearer Format: JWT

### AuthForCart

El esquema de autenticación `AuthForCart` se utiliza para las compras con cesta y admite dos modos:

1. Autenticación con el JWT de un usuario. El token se transmite en el encabezado Authorization con el siguiente formato: `Authorization: Bearer <user_JWT>`, en el que `<user_JWT>` es el token del usuario. El token identifica al usuario y proporciona acceso a datos personalizados.

También puede utilizar un [token para abrir la interfaz de pago](/es/api/pay-station/token/create-token).

2. Modo simplificado sin el encabezado `Authorization`. Este modo se utiliza únicamente para usuarios no autorizados y solo se puede aplicar a la [venta de claves de juegos](/es/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users). En lugar de un token, la solicitud debe incluir los siguientes encabezados:
* `x-unauthorized-id` con un ID de solicitud
* `x-user` con la dirección de correo electrónico del usuario codificada en Base64.

Type: http
Scheme: bearer

### basicMerchantAuth

Las llamadas del lado del servidor emplean el esquema de autenticación `basicMerchantAuth`. Todas las solicitudes a la API deben
contener el encabezado `Authorization: Basic <your_authorization_basic_key>`,
en el que `your_authorization_basic_key` es el par `merchant_id:api_key`
codificado según el estándar Base64.

Vaya a [Cuenta de editor](https://publisher.xsolla.com/) para encontrar los valores de los parámetros:

* `merchant_id` se muestra:
  * En **Company settings > Company**
  * En la URL en la barra de direcciones del navegador en cualquier página de Cuenta del editor. La URL tiene el siguiente formato: `https://publisher.xsolla.com/<merchant_id>`
* `api_key` se muestra en Cuenta del editor solo una vez cuando se crea y debe almacenarse en su servidor. Puede crear una nueva clave en [Company settings > API keys](https://publisher.xsolla.com/0/settings/api_key).

Para más información sobre cómo trabajar con claves API, consulte la [referencia API](https://developers.xsolla.com/es/api/getting-started/#api_keys_overview).

Type: http
Scheme: basic

## Download OpenAPI description

[API de LiveOps](https://xsolla.redocly.app/_bundle/@l10n/es/api/liveops/index.yaml)

## Llamadas comunes de API

Puede llamar a los métodos API de esta subsección para gestionar diferentes tipos de promociones.

### Obtener toda la lista de promociones

 - [GET /v3/project/{project_id}/admin/promotion](https://xsolla.redocly.app/es/api/liveops/promotions-common/get-promotion-list.md): Obtiene la lista de promociones de un proyecto.

### Activar promoción

 - [PUT /v2/project/{project_id}/admin/promotion/{promotion_id}/activate](https://xsolla.redocly.app/es/api/liveops/promotions-common/activate-promotion.md): Activa una promoción.

### Desactivar promoción

 - [PUT /v2/project/{project_id}/admin/promotion/{promotion_id}/deactivate](https://xsolla.redocly.app/es/api/liveops/promotions-common/deactivate-promotion.md): Desactiva una promoción.

### Obtener promoción canjeable por código

 - [GET /v3/project/{project_id}/admin/promotion/redeemable/code/{code}](https://xsolla.redocly.app/es/api/liveops/promotions-common/get-redeemable-promotion-by-code.md): Obtiene la promoción mediante un código promocional o un código de cupón.

### Verificar el código de promoción

 - [GET /v2/project/{project_id}/promotion/code/{code}/verify](https://xsolla.redocly.app/es/api/liveops/promotions-common/verify-promotion-code.md): Determina si el código es un código promocional o un código de cupón, y si el usuario puede aplicarlo. 


  Nota:
    Esta llamada API utiliza un JWT de usuario para la autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

## Cupones

Llame a los métodos API de esta subsección para configurar y gestionar promociones de cupones.

<div class="note">
  <p><b>Nota:</b></p>
  <p>Consulte nuestra <a href="https://developers.xsolla.com/es/liveops/promotion-tools/coupons/">documentación</a> para obtener información detallada sobre los cupones.</p>
</div>

### Canjear código de cupón

 - [POST /v2/project/{project_id}/coupon/redeem](https://xsolla.redocly.app/es/api/liveops/promotions-coupons/redeem-coupon.md): Canjea un código de cupón. El usuario recibe una bonificación tras canjear un cupón. 


  Nota:
    Esta llamada API utiliza un JWT de usuario para la autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

### Consigue recompensas en forma de cupones

 - [GET /v2/project/{project_id}/coupon/code/{coupon_code}/rewards](https://xsolla.redocly.app/es/api/liveops/promotions-coupons/get-coupon-rewards-by-code.md): Obtiene recompensas en forma de cupones por su código.
Puede usarse para permitir a los usuarios elegir uno de muchos artículos como bonificación.
El caso más habitual es elegir un DRM si el cupón contiene un juego como bonificación (type=unit). 


  Nota:
    Esta llamada API utiliza un JWT de usuario para la autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

### Crear promoción de cupones

 - [POST /v3/project/{project_id}/admin/coupon](https://xsolla.redocly.app/es/api/liveops/promotions-coupons/admin-create-coupon.md): Crea una promoción de cupones.

### Obtener la lista de promociones de cupones

 - [GET /v3/project/{project_id}/admin/coupon](https://xsolla.redocly.app/es/api/liveops/promotions-coupons/get-coupons.md): Obtiene la lista de promociones de cupones de un proyecto.

### Actualizar promoción de cupones

 - [PUT /v3/project/{project_id}/admin/coupon/{external_id}](https://xsolla.redocly.app/es/api/liveops/promotions-coupons/update-coupon-promotion.md): Actualiza una promoción de cupones.

### Obtener promoción de cupones

 - [GET /v3/project/{project_id}/admin/coupon/{external_id}](https://xsolla.redocly.app/es/api/liveops/promotions-coupons/get-coupon.md): Obtiene una promoción de cupones especificada.

### Eliminar una promoción de cupones

 - [DELETE /v3/project/{project_id}/admin/coupon/{external_id}](https://xsolla.redocly.app/es/api/liveops/promotions-coupons/delete-coupon-promotion.md): Elimina la promoción de cupones. La promoción eliminada:
* Desaparece de la lista de promociones establecidas en su proyecto.
* Ya no se aplica al catálogo de artículos ni a la cesta. El usuario no puede obtener artículos de bonificación con esta promoción.

Después de eliminarla, la promoción no se puede restaurar.
Los códigos de cupón procedentes de la promoción eliminada pueden añadirse a las promociones existentes.

### Activar promoción de cupones

 - [PUT /v2/project/{project_id}/admin/coupon/{external_id}/activate](https://xsolla.redocly.app/es/api/liveops/promotions-coupons/activate-coupon.md): Activa una promoción de cupones.
La promoción de cupones creada está deshabilitada por defecto.
No estará lista para el canje hasta que la active.
Utilice este punto final para habilitar y activar una promoción de cupones.

### Desactivar promoción de cupones

 - [PUT /v2/project/{project_id}/admin/coupon/{external_id}/deactivate](https://xsolla.redocly.app/es/api/liveops/promotions-coupons/deactivate-coupon.md): Desactiva una promoción de cupones.
La promoción de cupones creada está deshabilitada por defecto.
No estará lista para su canje hasta que la active.
Utilice este punto final para deshabilitar y desactivar una promoción de cupones.

### Crear código de cupón

 - [POST /v2/project/{project_id}/admin/coupon/{external_id}/code](https://xsolla.redocly.app/es/api/liveops/promotions-coupons/create-coupon-code.md): Crea un código de cupón.

### Obtener códigos de cupón

 - [GET /v2/project/{project_id}/admin/coupon/{external_id}/code](https://xsolla.redocly.app/es/api/liveops/promotions-coupons/get-coupon-codes.md): Obtiene códigos de cupón.

La respuesta incluye el número total de códigos de la promoción (total_count) y los códigos de la página actual (codes). Para obtener la página siguiente, aumente el offset según el valor de limit (por ejemplo, “offset”: 100 y, a continuación, “offset”: 200) hasta que haya obtenido todos los códigos.

En la mayoría de los casos, “limit”: 100 o “limit”: 1000 es suficiente. Reserve los valores más altos, como “limit”: 10000 , para exportaciones masivas puntuales y evite usar “limit”: 50000 salvo que sea necesario.

### Generar códigos de cupón

 - [PUT /v2/project/{project_id}/admin/coupon/{external_id}/code/generate](https://xsolla.redocly.app/es/api/liveops/promotions-coupons/generate-coupon-codes.md): Genera códigos de cupón.

Directrices para la generación de códigos:

* No hay un número máximo total de códigos por promoción, pero cada solicitud está limitada a 50 000 códigos. Las solicitudes con un número superior devuelven el error 422 Unprocessable Entity. Si necesita más de 50 000 códigos, envíe varias solicitudes.

* Para una mayor fiabilidad, recomendamos generar los códigos en lotes más pequeños, de hasta 10 000 por solicitud. Por ejemplo, para crear 100 000 códigos, envíe 10 solicitudes con "count": 10000 en lugar de 2 solicitudes con "count": 50000. Espere a recibir una respuesta para cada solicitud antes de enviar la siguiente.

* Tenga en cuenta que el límite de solicitudes está fijado en 15 por segundo. Cuando genere grandes volúmenes, envíe las solicitudes de forma secuencial para evitar superar el límite y recibir un error 429.

* Para obtener la lista de códigos, llame al método Obtener códigos de cupón.

| Parámetro | Valor |
|---|---|
| Número mínimo de códigos por solicitud. | 1 |
| Número máximo de códigos por solicitud. Úselo únicamente cuando necesite el lote más grande posible en una sola operación. | 50 000 |
| Número recomendado de códigos por solicitud. | Hasta 10,000. Si necesita crear más, envíe varias solicitudes consecutivas. |

### Obtener el límite de cupones para un usuario especificado

 - [GET /v2/project/{project_id}/admin/user/limit/coupon/external_id/{external_id}](https://xsolla.redocly.app/es/api/liveops/promotions-coupons/get-coupon-user-limit.md): Obtiene el número restante de veces que el usuario especificado puede utilizar el cupón.

La API de límite del usuario le permite limitar el número de veces que los usuarios pueden utilizar un cupón. Para configurar este límite de usuario, vaya a Admin:
* Coupons

### Obtener límites de código único de cupón

 - [GET /v2/project/{project_id}/admin/code/limit/coupon/external_id/{external_id}](https://xsolla.redocly.app/es/api/liveops/promotions-coupons/get-coupon-code-limit.md): Obtiene el número restante de veces que se pueden utilizar los códigos. Para filtrar los códigos, utilice el parámetro de consulta codes.

Para configurar el límite de códigos propiamente dicho, vaya a Admin:
* Coupons.

## Códigos promocionales

Llame a los métodos API de esta subsección para configurar y gestionar promociones de códigos promocionales.

<div class="note">
  <p><b>Nota:</b></p>
  <p>Consulte nuestra <a href="https://developers.xsolla.com/es/liveops/promotion-tools/promo-codes/">documentación</a> para obtener información detallada sobre los códigos promocionales.</p>
</div>

### Apply promo code

 - [POST /v2/project/{project_id}/promocode/redeem](https://xsolla.redocly.app/es/api/liveops/promotions-promo-codes/redeem-promo-code.md): Applies a code to a cart. When a promo code is applied, the cart total is recalculated to reflect a discount on the entire cart or on selected items. Bonus items may also be added to the cart. The discount is applied at checkout, while bonus items are granted after successful payment. Before payment, the user can remove the promo code, which cancels the discount and removes the bonus items from the cart.

### Eliminar código promocional de la cesta

 - [PUT /v2/project/{project_id}/promocode/remove](https://xsolla.redocly.app/es/api/liveops/promotions-promo-codes/remove-cart-promo-code.md): Elimina un código promocional de una cesta.
Una vez eliminado el código promocional, el precio total de todos los artículos de la cesta se volverá a calcular sin bonificaciones ni descuentos proporcionados por un código promocional.

### Obtener recompensas de códigos promocionales

 - [GET /v2/project/{project_id}/promocode/code/{promocode_code}/rewards](https://xsolla.redocly.app/es/api/liveops/promotions-promo-codes/get-promo-code-rewards-by-code.md): Obtiene recompensas de códigos promocionales por su código.
Puede usarse para permitir a los usuarios elegir uno de muchos artículos como bonificación.
El caso habitual es elegir un DRM si el código promocional contiene un juego como bonificación (type=unit). 


  Nota:
    Esta llamada API utiliza un JWT de usuario para la autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

### Crear promoción de códigos promocionales

 - [POST /v3/project/{project_id}/admin/promocode](https://xsolla.redocly.app/es/api/liveops/promotions-promo-codes/create-promo-code.md): Crea una promoción de códigos promocionales.

### Obtener la lista de promociones de códigos promocionales

 - [GET /v3/project/{project_id}/admin/promocode](https://xsolla.redocly.app/es/api/liveops/promotions-promo-codes/get-promo-codes.md): Obtiene la lista de códigos promocionales de un proyecto.

### Actualizar promoción de códigos promocionales

 - [PUT /v3/project/{project_id}/admin/promocode/{external_id}](https://xsolla.redocly.app/es/api/liveops/promotions-promo-codes/update-promo-code.md): Actualiza una promoción de códigos promocionales.

### Obtener promoción de códigos promocionales

 - [GET /v3/project/{project_id}/admin/promocode/{external_id}](https://xsolla.redocly.app/es/api/liveops/promotions-promo-codes/get-promo-code.md): Obtiene una promoción de códigos promocionales especificada.

### Eliminar promoción de códigos promocionales

 - [DELETE /v3/project/{project_id}/admin/promocode/{external_id}](https://xsolla.redocly.app/es/api/liveops/promotions-promo-codes/delete-promo-code.md): Elimina la promoción de códigos promocionales. La promoción eliminada:
* Desaparece de la lista de promociones establecidas en su proyecto.
* Ya no se aplica al catálogo de artículos ni a la cesta. El usuario no puede obtener artículos de bonificación ni comprar artículos usando esta promoción.

Después de eliminarla, la promoción no se puede restaurar.
Los códigos promocionales de la promoción eliminada se pueden añadir a las promociones existentes.

### Activar promoción de códigos promocionales

 - [PUT /v2/project/{project_id}/admin/promocode/{external_id}/activate](https://xsolla.redocly.app/es/api/liveops/promotions-promo-codes/activate-promo-code.md): Activa una promoción de códigos promocionales.

La promoción de códigos promocionales creada está desactivada por defecto.
No estará lista para el canje hasta que la active.
Utilice este punto final para habilitar y activar una promoción de códigos promocionales.

### Desactivar promoción de códigos promocionales

 - [PUT /v2/project/{project_id}/admin/promocode/{external_id}/deactivate](https://xsolla.redocly.app/es/api/liveops/promotions-promo-codes/deactivate-promo-code.md): Desactiva una promoción de códigos promocionales.

La promoción de códigos promocionales creada está deshabilitada por defecto.
No estará lista para el canje hasta que la active.
Utilice este punto final para deshabilitar y desactivar una promoción de códigos promocionales.

### Crear código de promoción de códigos promocionales

 - [POST /v2/project/{project_id}/admin/promocode/{external_id}/code](https://xsolla.redocly.app/es/api/liveops/promotions-promo-codes/create-promo-code-code.md): Crea un código para una promoción de códigos promocionales.

### Obtener códigos de una promoción de códigos promocionales

 - [GET /v2/project/{project_id}/admin/promocode/{external_id}/code](https://xsolla.redocly.app/es/api/liveops/promotions-promo-codes/get-promocode-codes.md): Obtiene los códigos de una promoción de códigos promocionales.

La respuesta incluye el número total de códigos de la promoción (total_count) y los códigos de la página actual (codes). Para obtener la página siguiente, aumente el offset según el valor de limit (por ejemplo, “offset”: 100 y, a continuación, “offset”: 200) hasta que haya obtenido todos los códigos.

En la mayoría de los casos, “limit”: 100 o “limit”: 1000 es suficiente. Reserve los valores más altos, como “limit”: 10000 , para exportaciones masivas puntuales y evite usar “limit”: 50000 salvo que sea necesario.

### Generar códigos para una promoción de códigos promocionales

 - [PUT /v2/project/{project_id}/admin/promocode/{external_id}/code/generate](https://xsolla.redocly.app/es/api/liveops/promotions-promo-codes/generate-promo-code-codes.md): Genera códigos para una promoción de códigos promocionales.

Directrices para la generación de códigos:

* No hay un número máximo total de códigos por promoción, pero cada solicitud está limitada a 50 000 códigos. Las solicitudes con un número superior devuelven el error 422 Unprocessable Entity. Si necesita más de 50 000 códigos, envíe varias solicitudes.

* Para una mayor fiabilidad, recomendamos generar los códigos en lotes más pequeños, de hasta 10 000 por solicitud. Por ejemplo, para crear 100 000 códigos, envíe 10 solicitudes con "count": 10000 en lugar de 2 solicitudes con "count": 50000. Espere a recibir una respuesta para cada solicitud antes de enviar la siguiente.

* Tenga en cuenta que el límite de solicitudes está fijado en 15 por segundo. Cuando genere grandes volúmenes, envíe las solicitudes de forma secuencial para evitar superar el límite y recibir un error 429.

* Para obtener la lista de códigos, llame al método Obtener códigos de una promoción de códigos promocionales.

| Parámetro | Valor |
|---|---|
| Número mínimo de códigos por solicitud. | 1 |
| Número máximo de códigos por solicitud. Úselo únicamente cuando necesite el lote más grande posible en una sola operación. | 50 000 |
| Número recomendado de códigos por solicitud. | Hasta 10,000. Si necesita crear más, envíe varias solicitudes consecutivas. |

### Obtener el límite de códigos promocionales para el usuario especificado

 - [GET /v2/project/{project_id}/admin/user/limit/promocode/external_id/{external_id}](https://xsolla.redocly.app/es/api/liveops/promotions-promo-codes/get-promo-code-user-limit.md): Obtiene el número restante de veces que el usuario especificado puede utilizar el código promocional.

La API de límite del usuario permite limitar el número de veces que los usuarios pueden utilizar un código promocional. Para configurar el límite del usuario, vaya a Admin:
* Promo Codes

### Obtener límite del código promocional para los códigos

 - [GET /v2/project/{project_id}/admin/code/limit/promocode/external_id/{external_id}](https://xsolla.redocly.app/es/api/liveops/promotions-promo-codes/get-promo-code-code-limit.md): Obtiene el número restante de veces que se pueden utilizar los códigos. Para filtrar los códigos, utilice el parámetro de consulta codes.

Para configurar el límite de códigos propiamente dicho, vaya a Admin:
* Promo Codes

## Ofertas únicas por catálogo

Llame a los métodos API de esta subsección para configurar y gestionar ofertas exclusivas de catálogo.

<div class="note">
  <p><b>Nota:</b></p>
  <p>Consulte nuestra <a href="https://developers.xsolla.com/es/liveops/promotion-tools/unique-offer/">documentación</a> para obtener información detallada sobre las ofertas exclusivas.</p>
</div>

### Crear una promoción única de ofertas por catálogo

 - [POST /v3/project/{project_id}/admin/unique_catalog_offer](https://xsolla.redocly.app/es/api/liveops/promotions-unique-catalog-offers/admin-create-unique-catalog-offer.md): Crea una promoción de oferta exclusiva de catálogo.

### Obtenga una lista de promociones de ofertas exclusivas de catálogo

 - [GET /v3/project/{project_id}/admin/unique_catalog_offer](https://xsolla.redocly.app/es/api/liveops/promotions-unique-catalog-offers/get-unique-catalog-offers.md): Obtiene la lista de promociones de ofertas exclusivas de catálogo de un proyecto.

### Actualizar la promoción de ofertas exclusivas de catálogo

 - [PUT /v3/project/{project_id}/admin/unique_catalog_offer/{external_id}](https://xsolla.redocly.app/es/api/liveops/promotions-unique-catalog-offers/update-unique-catalog-offer-promotion.md): Actualiza la promoción de oferta exclusiva de catálogo.

### Consiga una promoción de oferta de catálogo única

 - [GET /v3/project/{project_id}/admin/unique_catalog_offer/{external_id}](https://xsolla.redocly.app/es/api/liveops/promotions-unique-catalog-offers/get-unique-catalog-offer.md): Obtiene la promoción de oferta de catálogo única especificada.

### Eliminar la promoción de oferta única de catálogo

 - [DELETE /v3/project/{project_id}/admin/unique_catalog_offer/{external_id}](https://xsolla.redocly.app/es/api/liveops/promotions-unique-catalog-offers/delete-unique-catalog-offer-promotion.md): Elimina la promoción única de oferta de catálogo. La promoción eliminada:
* Desaparece de la lista de promociones establecidas en su proyecto.
* Ya no se aplica al catálogo de artículos ni a la cesta. El usuario no puede comprar artículos con esta promoción.

Después de eliminarla, la promoción no se puede restaurar.

### Activar promoción de oferta exclusiva de catálogo

 - [PUT /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/activate](https://xsolla.redocly.app/es/api/liveops/promotions-unique-catalog-offers/activate-unique-catalog-offer.md): Activa una promoción exclusiva del catálogo. Por defecto, una promoción recién creada está desactivada.
Hasta que no se active la promoción, no se podrán utilizar sus códigos.

### Desactivar la promoción de oferta exclusiva de catálogo

 - [PUT /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/deactivate](https://xsolla.redocly.app/es/api/liveops/promotions-unique-catalog-offers/deactivate-unique-catalog-offer.md): Desactiva una promoción única del catálogo. Una vez desactivada la promoción, sus códigos ya no se pueden usar.
Los artículos ocultos vinculados a la promoción no se muestran en el catálogo.

### Crear un código de oferta exclusiva de catálogo

 - [POST /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code](https://xsolla.redocly.app/es/api/liveops/promotions-unique-catalog-offers/create-unique-catalog-offer-code.md): Crea un código de oferta exclusiva de catálogo.

### Obtenga códigos de oferta exclusiva de catálogo

 - [GET /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code](https://xsolla.redocly.app/es/api/liveops/promotions-unique-catalog-offers/get-unique-catalog-offer-codes.md): Obtiene códigos de oferta exclusiva de catálogo.

### Generar códigos de oferta exclusiva de catálogo

 - [PUT /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code/generate](https://xsolla.redocly.app/es/api/liveops/promotions-unique-catalog-offers/generate-unique-catalog-offer-codes.md): Genera códigos de oferta exclusiva de catálogo.

## Descuentos

Llame a los métodos API de esta subsección para configurar y gestionar promociones de descuento.

<div class="note">
  <p><b>Nota:</b></p>
  <p>Consulte nuestra <a href="https://developers.xsolla.com/es/liveops/promotion-tools/discounts/">documentación</a> para obtener información detallada sobre los descuentos.</p>
</div>

### Crear promoción de descuento para un artículo

 - [POST /v3/project/{project_id}/admin/promotion/item](https://xsolla.redocly.app/es/api/liveops/promotions-discounts/create-item-promotion.md): Crea una promoción de descuento para un artículo.

Las promociones proporcionan un descuento (%) en los artículos.
El descuento se aplicará a todos los precios de los artículos especificados.

### Obtener lista de promociones del artículo

 - [GET /v3/project/{project_id}/admin/promotion/item](https://xsolla.redocly.app/es/api/liveops/promotions-discounts/get-item-promotion-list.md): Obtenga la lista de promociones de artículos de un proyecto.

Las promociones proporcionan un descuento (%) en los artículos.
El descuento se aplicará a todos los precios de los artículos especificados.

### Actualizar la promoción del artículo

 - [PUT /v3/project/{project_id}/admin/promotion/{promotion_id}/item](https://xsolla.redocly.app/es/api/liveops/promotions-discounts/update-item-promotion.md): Actualiza la promoción.

NotaLos nuevos datos sustituirán a los antiguos. Si desea actualizar solo una parte de una promoción, deberá transferir también todos los datos requeridos en la solicitud.

Las promociones proporcionan un descuento (%) en los artículos.
El descuento se aplicará a todos los precios de los artículos especificados.

### Obtener promoción del artículo

 - [GET /v3/project/{project_id}/admin/promotion/{promotion_id}/item](https://xsolla.redocly.app/es/api/liveops/promotions-discounts/get-item-promotion.md): Obtiene la promoción aplicada a artículos concretos.

Las promociones proporcionan un descuento (%) en los artículos.
El descuento se aplicará a todos los precios de los artículos especificados.

### Eliminar la promoción de artículos

 - [DELETE /v3/project/{project_id}/admin/promotion/{promotion_id}/item](https://xsolla.redocly.app/es/api/liveops/promotions-discounts/delete-item-promotion.md): Elimina la promoción de descuento. La promoción eliminada:
* Desaparece de la lista de promociones establecidas en su proyecto.
* Ya no se aplica al catálogo de artículos ni a la cesta. El usuario no puede obtener artículos con esta promoción.

Después de eliminarla, la promoción no se puede restaurar.

## Bonificaciones

Llame a los métodos API de esta subsección para configurar y gestionar promociones de bonificaciones.

<div class="note">
  <p><b>Nota:</b></p>
  <p>Consulte nuestra <a href="https://developers.xsolla.com/es/liveops/promotion-tools/bonuses/">documentación</a> para obtener información detallada sobre las bonificaciones.</p>
</div>

### Crear promoción de bonificaciones

 - [POST /v3/project/{project_id}/admin/promotion/bonus](https://xsolla.redocly.app/es/api/liveops/promotions-bonuses/create-bonus-promotion.md): Crea la promoción de bonificaciones.

La promoción añade artículos de bonificación gratuitos a la compra realizada por un usuario.
La promoción puede aplicarse a cada compra dentro de un proyecto o a una compra que incluya artículos concretos.

### Obtenga la lista de promociones de bonificaciones

 - [GET /v3/project/{project_id}/admin/promotion/bonus](https://xsolla.redocly.app/es/api/liveops/promotions-bonuses/get-bonus-promotion-list.md): Obtiene la lista de promociones de bonificaciones de un proyecto.

La promoción añade artículos de bonificación gratuitos a la compra realizada por un usuario.
La promoción puede aplicarse a cada compra dentro de un proyecto o a una compra que incluya artículos concretos.

### Actualizar la promoción de bonificación

 - [PUT /v3/project/{project_id}/admin/promotion/{promotion_id}/bonus](https://xsolla.redocly.app/es/api/liveops/promotions-bonuses/update-bonus-promotion.md): Actualiza la promoción.

NotaLos nuevos datos sustituirán a los antiguos. Si desea actualizar solo una parte de una promoción, deberá transferir también todos los datos requeridos en la solicitud.

La promoción añade artículos de bonificación gratuitos a la compra realizada por un usuario.
La promoción puede aplicarse a cada compra dentro de un proyecto o a una compra que incluya artículos concretos.

### Obtener una promoción de bonificación

 - [GET /v3/project/{project_id}/admin/promotion/{promotion_id}/bonus](https://xsolla.redocly.app/es/api/liveops/promotions-bonuses/get-bonus-promotion.md): Obtiene la promoción de bonificaciones.

La promoción añade artículos de bonificación gratuitos a la compra realizada por un usuario.
La promoción puede aplicarse a cada compra dentro de un proyecto o a una compra que incluya artículos concretos.

### Eliminar la promoción de bonificaciones

 - [DELETE /v3/project/{project_id}/admin/promotion/{promotion_id}/bonus](https://xsolla.redocly.app/es/api/liveops/promotions-bonuses/delete-bonus-promotion.md): Elimina la promoción de bonificaciones. La promoción eliminada:
* Desaparece de la lista de promociones establecidas en su proyecto.
* Ya no se aplica al catálogo de artículos ni a la cesta. El usuario no puede obtener artículos de bonificación con esta promoción.

Después de eliminarla, la promoción no se puede restaurar.

## Catálogo personalizado

La personalización le permite especificar las condiciones para mostrar el catálogo de artículos y aplicar promociones únicamente para usuarios autorizados específicos. Las condiciones se definen en función de los atributos de usuario y le permiten ofrecer artículos y promociones que sean más relevantes para usuarios concretos.

Los siguientes tipos de personalización están disponibles:

* [Personalización en el lado de Xsolla](/es/liveops/promotion-tools/personalization/#guides_personalization_on_xsolla_side). Las reglas y la lógica de personalización se configuran y almacenan en el lado de Xsolla. Transmite los atributos del usuario, y Xsolla los utiliza para generar un catálogo personalizado.
* [Personalización del lado del socio](/es/liveops/promotion-tools/personalization/#guides_personalization_on_partner_side). Configura las reglas y la lógica de personalización en su lado y envía una carga útil del catálogo final para un usuario específico a Xsolla.

<div class="note">
  <b>Nota:</b><br><br>
  Solo puede usar un tipo de personalización. Para cambiarlo, siga las
  <a href="/es/liveops/promotion-tools/personalization/#guides_personalization_change">instrucciones</a>.
</div>

Para configurar la personalización en el lado de Xsolla usando la API de Xsolla:

1. Cree artículos usando las llamadas API de la subsección **Admin** de los grupos [Artículos virtuales y moneda](/es/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/), [Lotes](/es/api/catalog/bundles-admin/admin-create-bundle) o [Claves del juego](/es/api/catalog/game-keys-admin).
2. [Configure los atributos del usuario usando la API de Xsolla Login](/es/liveops/promotion-tools/personalization/#web_shop_guide_personalization_setting_attributes) y manténgalos sincronizados actualizando los datos en Xsolla cada vez que se produzcan cambios en su juego.
3. Configure la personalización para artículos o promociones:
    * Para personalizar el catálogo de artículos, defina las reglas de visualización del catálogo usando la llamada API [Crear regla de filtrado del catálogo](/es/api/liveops/personalized-catalog/create-filter-rule):
        * En la matriz [attribute_conditions](/es/api/liveops/personalized-catalog/create-filter-rule#personalized-catalog/create-filter-rule/t=request&path=attribute_conditions), especifica las condiciones que determinan la disponibilidad de los artículos en función de los atributos del usuario.
        * En la matriz [artículos](/es/api/liveops/personalized-catalog/create-filter-rule#personalized-catalog/create-filter-rule/t=request&path=items), facilite la lista de artículos que deberían ser visibles para el usuario si sus atributos coinciden con las condiciones especificadas.
    * Para configurar promociones personalizadas, use las [llamadas API de creación y actualización para el tipo de promoción requerido](/es/api/liveops/promotions-discounts/create-item-promotion). En la matriz [attribute_conditions](/es/api/liveops/promotions-discounts/create-item-promotion), especifique las condiciones que determinan la disponibilidad de la promoción en función de los atributos del usuario.

4. Transmita el [JWT del usuario](/es/api/login/getting-user-token?#getting-user-token) con los atributos del usuario a las [llamadas API de recuperación de catálogo](https://developers.xsolla.com/es/api/catalog/virtual-items-currency-catalog/get-virtual-items) para recibir un catálogo personalizado.

**Secuencia para configurar y aplicar la personalización en el lado de Xsolla para el catálogo de artículos:**

![Personalización para el catálogo de artículos](https://cdn.xsolla.net/developers/current/images/api_docs/personalization-catalog.png)

**Secuencia para configurar y aplicar la personalización en el lado de Xsolla para las promociones:**

![Personalización para las promociones](https://cdn.xsolla.net/developers/current/images/api_docs/personalization-liveops.png)

<div class="note">
<b>Nota:</b><br><br>
Se proporciona información detallada:
<ul>
  <li>en la <a href="/es/liveops/promotion-tools/personalization/">guía para configurar la personalización en el lado de Xsolla y del socio</a></li>
  <li>en el tutorial paso a paso sobre <a href="/es/doc/shop-builder/tutorials/personalization-tutorial/">personalización del catálogo de artículos en el lado de Xsolla</a></li>
</ul>
</div>

### Obtener lista de reglas de filtrado del catálogo

 - [GET /v2/project/{project_id}/admin/user/attribute/rule](https://xsolla.redocly.app/es/api/liveops/personalized-catalog/get-filter-rules.md): Obtiene todas las reglas que se aplican a los atributos de usuario.

### Crear regla de filtrado del catálogo

 - [POST /v2/project/{project_id}/admin/user/attribute/rule](https://xsolla.redocly.app/es/api/liveops/personalized-catalog/create-filter-rule.md): Crear regla para atributos de usuario.

### Obtener todas las reglas del catálogo para la búsqueda en el lado del cliente

 - [GET /v2/project/{project_id}/admin/user/attribute/rule/all](https://xsolla.redocly.app/es/api/liveops/personalized-catalog/get-all-filter-rules.md): Obtiene una lista de todas las reglas del catálogo para buscar en el lado del cliente.

Atención:Devuelve solamente el ID de la regla, el nombre y is_enabled

### Obtener regla de filtro del catálogo

 - [GET /v2/project/{project_id}/admin/user/attribute/rule/{rule_id}](https://xsolla.redocly.app/es/api/liveops/personalized-catalog/get-filter-rule-by-id.md): Obtiene una regla específica que se aplica a los atributos del usuario.

### Actualizar regla de filtro del catálogo

 - [PUT /v2/project/{project_id}/admin/user/attribute/rule/{rule_id}](https://xsolla.redocly.app/es/api/liveops/personalized-catalog/update-filter-rule-by-id.md): Actualiza una regla específica que se aplica a los atributos de usuario. Se utilizará el valor por defecto para una propiedad no especificada (si la propiedad no es obligatoria).

### Revisar regla de filtro del catálogo

 - [PATCH /v2/project/{project_id}/admin/user/attribute/rule/{rule_id}](https://xsolla.redocly.app/es/api/liveops/personalized-catalog/patch-filter-rule-by-id.md): Actualiza una regla específica que se aplica a los atributos de usuario. Se utilizará el valor actual para una propiedad no especificada.

### Eliminar regla de filtro del catálogo

 - [DELETE /v2/project/{project_id}/admin/user/attribute/rule/{rule_id}](https://xsolla.redocly.app/es/api/liveops/personalized-catalog/delete-filter-rule-by-id.md): Elimina una regla específica.

## Gestión

### Actualizar todos los límites de la promoción para un usuario especificado

 - [DELETE /v2/project/{project_id}/admin/user/limit/promotion/all](https://xsolla.redocly.app/es/api/liveops/user-limits-admin/reset-all-user-promotions-limit.md): Actualiza todos los límites de todas las promociones destinadas al usuario especificado para que pueda utilizar estas promociones de nuevo.

La API de límite del usuario le permite limitar el número de veces que los usuarios pueden utilizar una promoción. Para configurar el límite del usuario, vaya a la sección Admin del tipo de promoción deseada:
* Discount Promotions
* Bonus Promotions

### Actualizar el límite de promoción para los usuarios

 - [DELETE /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}/all](https://xsolla.redocly.app/es/api/liveops/user-limits-admin/reset-user-promotion-limit.md): Actualiza el límite de la promoción para que un usuario pueda utilizar esta promoción de nuevo. Si el parámetro user es null, esta llamada actualiza este límite para todos los usuarios.

La API de límite del usuario le permite limitar el número de veces que los usuarios pueden utilizar una promoción. Para configurar el límite del usuario, vaya a la sección Admin del tipo de promoción deseada:
* Discount Promotions
* Bonus Promotions

### Obtener el límite de promoción para el usuario especificado

 - [GET /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}](https://xsolla.redocly.app/es/api/liveops/user-limits-admin/get-user-promotion-limit.md): Obtiene el número restante de veces que el usuario especificado puede utilizar la promoción dentro del límite aplicado.

La API de límite del usuario le permite limitar el número de veces que los usuarios pueden utilizar una promoción. Para configurar el límite del usuario, vaya a la sección Admin del tipo de promoción deseada:
* Discount Promotions
* Bonus Promotions

### Aumentar el límite de la promoción para el usuario especificado

 - [POST /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}](https://xsolla.redocly.app/es/api/liveops/user-limits-admin/add-user-promotion-limit.md): Aumenta el número restante de veces que el usuario especificado puede utilizar la promoción dentro del límite aplicado.

La API de límite del usuario le permite limitar el número de veces que los usuarios pueden utilizar una promoción. Para configurar el límite del usuario, vaya a la sección Admin del tipo de promoción deseada:
* Discount Promotions
* Bonus Promotions

### Establecer el límite de la promoción para el usuario especificado

 - [PUT /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}](https://xsolla.redocly.app/es/api/liveops/user-limits-admin/set-user-promotion-limit.md): Establece el número de veces que el usuario especificado puede usar una promoción dentro del límite aplicado después de que se haya aumentado o reducido.

La API de límite del usuario le permite limitar el número de veces que los usuarios pueden utilizar una promoción. Para configurar el límite del usuario, vaya a la sección Admin del tipo de promoción deseada:
* Discount Promotions
* Bonus Promotions

### Reducir el límite de la promoción para el usuario especificado

 - [DELETE /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}](https://xsolla.redocly.app/es/api/liveops/user-limits-admin/remove-user-promotion-limit.md): Reduce el número de veces que el usuario especificado puede utilizar una promoción dentro del límite aplicado.

La API de límite del usuario le permite limitar el número de veces que los usuarios pueden utilizar una promoción. Para configurar el límite del usuario, vaya a la sección Admin del tipo de promoción deseada:
* Discount Promotions
* Bonus Promotions

## Admin

### Obtener lista de puntos de valor

 - [GET /v2/project/{project_id}/admin/items/value_points](https://xsolla.redocly.app/es/api/liveops/reward-chain-value-points-admin/admin-get-value-points-list.md): Obtiene la lista de puntos de valor dentro de un proyecto para su administración.

### Crear un punto de valor

 - [POST /v2/project/{project_id}/admin/items/value_points](https://xsolla.redocly.app/es/api/liveops/reward-chain-value-points-admin/admin-create-value-points.md): Crea un punto de valor.

### Obtener punto de valor

 - [GET /v2/project/{project_id}/admin/items/value_points/sku/{item_sku}](https://xsolla.redocly.app/es/api/liveops/reward-chain-value-points-admin/admin-get-value-point.md): Obtiene un punto de valor por el SKU dentro de un proyecto para su administración.

### Actualizar punto de valor

 - [PUT /v2/project/{project_id}/admin/items/value_points/sku/{item_sku}](https://xsolla.redocly.app/es/api/liveops/reward-chain-value-points-admin/admin-update-value-point.md): Actualiza un punto de valor identificado por un SKU.

### Eliminar puntos de valor

 - [DELETE /v2/project/{project_id}/admin/items/value_points/sku/{item_sku}](https://xsolla.redocly.app/es/api/liveops/reward-chain-value-points-admin/admin-delete-value-point.md): Elimina un punto de valor identificado por un SKU.

### Obtener lista de artículos con puntos de valor

 - [GET /v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards](https://xsolla.redocly.app/es/api/liveops/reward-chain-value-points-admin/admin-get-items-value-point-reward.md): Obtiene la lista de todos los artículos con puntos de valor dentro de un proyecto para su administración.

### Establecer puntos de valor para los artículos

 - [PUT /v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards](https://xsolla.redocly.app/es/api/liveops/reward-chain-value-points-admin/admin-set-items-value-point-reward.md): Asigna puntos de valor a uno o varios artículos por un SKU. Los usuarios reciben puntos de valor después de comprar estos artículos.

Recuerde que esta solicitud PUT sobrescribe todos los puntos de valor establecidos previamente para los artículos del proyecto.

Para evitar la eliminación involuntaria de puntos de valor, incluya todos los artículos y sus respectivos puntos de valor en cada solicitud PUT.

Si solo desea actualizar los puntos de valor de un artículo específico conservando los puntos de valor de otros artículos, debe recuperar el conjunto actual de puntos de valor mediante una solicitud GET, modificar los puntos de valor del artículo deseado y, luego, devolver el conjunto modificado de puntos de valor con los puntos de valor actualizados para el artículo específico.

### Actualizar parcialmente los puntos de valor para los artículos

 - [PATCH /v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards](https://xsolla.redocly.app/es/api/liveops/reward-chain-value-points-admin/admin-patch-items-value-point-reward.md): Actualiza parcialmente la cantidad de puntos de valor de uno o más artículos según el SKU del artículo. Los usuarios reciben estos puntos de valor después de comprar los artículos especificados.

Principios de actualización de los puntos de valor:
  * Si un artículo aún no tiene puntos de valor, el envío de un valor distinto de cero en el campo amount los genera.
  * Si un artículo ya tiene puntos de valor, enviar un valor distinto de cero en el campo amount los actualiza.
  * Si amount se establece en 0, se eliminan los puntos de valor existentes para ese artículo.

A diferencia del método PUT (Establecer puntos de valor para artículos), este método PATCH no sobrescribe todos los puntos de valor existentes para los artículos del proyecto, solo actualiza los artículos especificados.

Una sola solicitud puede actualizar hasta 100 artículos. No se pueden incluir SKU de artículos duplicados en la misma solicitud.

### Eliminar puntos de valor de los artículos

 - [DELETE /v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards](https://xsolla.redocly.app/es/api/liveops/reward-chain-value-points-admin/admin-delete-items-value-point-reward.md): Elimina las recompensas de puntos de valor de TODOS los artículos.

### Obtener lista de cadenas de recompensas

 - [GET /v3/project/{project_id}/admin/reward_chain](https://xsolla.redocly.app/es/api/liveops/reward-chain-value-points-admin/admin-get-reward-chains.md): Obtiene la lista de cadenas de recompensas.

AtenciónTodos los proyectos tienen la limitación del número de artículos que se pueden obtener en la respuesta. El valor por defecto y máximo es 10 artículos por respuesta. Para obtener más datos página por página, utilice los campos limit y offset.

### Crear una cadena de recompensas

 - [POST /v3/project/{project_id}/admin/reward_chain](https://xsolla.redocly.app/es/api/liveops/reward-chain-value-points-admin/admin-create-reward-chain.md): Crea una cadena de recompensas.

### Obtener cadena de recompensas

 - [GET /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}](https://xsolla.redocly.app/es/api/liveops/reward-chain-value-points-admin/admin-get-reward-chain.md): Consigue una cadena de recompensas concreta.

### Actualizar cadena de recompensas

 - [PUT /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}](https://xsolla.redocly.app/es/api/liveops/reward-chain-value-points-admin/admin-update-reward-chain.md): Actualiza una cadena de recompensas concreta.

### Eliminar cadena de recompensas

 - [DELETE /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}](https://xsolla.redocly.app/es/api/liveops/reward-chain-value-points-admin/admin-delete-reward-chain.md): Elimina una cadena de recompensas concreta.

### Activar/desactivar cadena de recompensas

 - [PUT /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}/toggle](https://xsolla.redocly.app/es/api/liveops/reward-chain-value-points-admin/admin-toggle-reward-chain.md): Habilitar/deshabilitar cadena de recompensas.

### Restablecer cadena de recompensas

 - [POST /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}/reset](https://xsolla.redocly.app/es/api/liveops/reward-chain-value-points-admin/admin-reset-reward-chain.md): Restablece el saldo de puntos de valor y el progreso de todos los usuarios en la cadena de recompensas. El saldo está vinculado al tipo de puntos de valor, no a una cadena de recompensas concreta. Si estos puntos de valor se utilizan en otras cadenas, el saldo se restablecerá en todas las cadenas que utilicen dichos puntos de valor. Tras el reinicio, podrá actualizar el periodo de validez de la cadena de recompensas y los usuarios podrán volver a progresar en ella. El saldo del clan se calcula como la suma de los saldos de sus miembros. Por lo tanto, tras reiniciar, el saldo del clan también se reinicia. Esta solicitud es irreversible y se aplica a todos los usuarios del proyecto.

Aviso
  
 No debe restablecer la cadena de recompensas durante su periodo de validez. En este caso, los usuarios pueden perder los puntos de valor ganados antes de reclamar su recompensa.

## Cliente

### Obtener las cadenas de recompensas del usuario actual

 - [GET /v2/project/{project_id}/user/reward_chain](https://xsolla.redocly.app/es/api/liveops/reward-chain-client/get-reward-chains-list.md): Punto final de cliente. Obtiene las cadenas de recompensas del usuario actual.


  Atención:
    Todos los proyectos tienen una limitación en el número de artículos que puede
    obtener en la respuesta. El valor predeterminado y máximo es de 50 artículos
    por cada respuesta. Para obtener más datos página por página, utilice los campos limit
    y offset.




  Nota:
    Esta llamada API utiliza un JWT de usuario para la autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

### Obtener el saldo de puntos de valor del usuario actual

 - [GET /v2/project/{project_id}/user/reward_chain/{reward_chain_id}/balance](https://xsolla.redocly.app/es/api/liveops/reward-chain-client/get-user-reward-chain-balance.md): Punto final del cliente. Obtiene el saldo actual de puntos de valor del usuario. 


  Nota:
    Esta llamada API utiliza un JWT de usuario para la autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

### Reclamar recompensa por paso

 - [POST /v2/project/{project_id}/user/reward_chain/{reward_chain_id}/step/{step_id}/claim](https://xsolla.redocly.app/es/api/liveops/reward-chain-client/claim-user-reward-chain-step-reward.md): Punto final del cliente. Reclama la recompensa por paso del usuario actual en una cadena de recompensas. 


  Nota:
    Esta llamada API utiliza un JWT de usuario para la autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

## Cliente de clanes

### Obtén los 10 mejores contribuyentes a la cadena de recompensas bajo clan

 - [GET /v2/project/{project_id}/user/clan/contributors/{reward_chain_id}/top](https://xsolla.redocly.app/es/api/liveops/clan-reward-chain-client/get-user-clan-top-contributors.md): Recupera la lista de los 10 principales contribuyentes a la cadena de recompensas específica a la que pertenece el clan del usuario actual. Si un usuario no pertenece a ningún clan, la llamada devuelve una matriz vacía. 


  Nota:
    Esta llamada API utiliza un JWT de usuario para la autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

### Actualice el clan del usuario actual

 - [PUT /v2/project/{project_id}/user/clan/update](https://xsolla.redocly.app/es/api/liveops/clan-reward-chain-client/user-clan-update.md): Actualiza el clan de un usuario actual a través de los atributos de usuario. Reclama todas las recompensas de las cadenas de recompensas que no se reclamaron para un clan anterior y las devuelve en la respuesta. Si el usuario estaba en un clan y ahora no lo está, se revocará su inclusión en el clan. Si el usuario cambió de clan, se cambiará el clan. 


  Nota:
    Esta llamada API utiliza un JWT de usuario para la autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

## Admin

### Obtener lista de recompensas diarias

 - [GET /v2/project/{project_id}/admin/daily_chain](https://xsolla.redocly.app/es/api/liveops/daily-chain-admin/admin-get-daily-chains.md): Obtiene una lista de recompensas diarias para su administración.

Aviso:Un método devuelve una lista paginada de artículos. El valor máximo y por defecto es de 50 artículos por respuesta. Para obtener más artículos de la lista, utilice los parámetros limit y offset y obtenga más páginas. Por ejemplo, al llamar a un método con limit = 25 y offset = 100, la respuesta devuelve 25 artículos comenzando desde el artículo 101 en la lista global.

### Crear recompensa diaria

 - [POST /v2/project/{project_id}/admin/daily_chain](https://xsolla.redocly.app/es/api/liveops/daily-chain-admin/admin-create-daily-chain.md): Crea una recompensa diaria.

### Obtener recompensa diaria

 - [GET /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}](https://xsolla.redocly.app/es/api/liveops/daily-chain-admin/admin-get-daily-chain.md): Obtiene una recompensa diaria concreta para su administración.

### Actualizar recompensa diaria

 - [PUT /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}](https://xsolla.redocly.app/es/api/liveops/daily-chain-admin/admin-update-daily-chain.md): Actualiza una recompensa diaria concreta.

### Eliminar recompensa diaria

 - [DELETE /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}](https://xsolla.redocly.app/es/api/liveops/daily-chain-admin/admin-delete-daily-chain.md): Elimina una recompensa diaria concreta.

### Activar o desactivar recompensa diaria

 - [PUT /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}/toggle](https://xsolla.redocly.app/es/api/liveops/daily-chain-admin/admin-toggle-daily-chain.md): Activa o desactiva una recompensa diaria.

### Restablecer recompensa diaria

 - [POST /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}/reset](https://xsolla.redocly.app/es/api/liveops/daily-chain-admin/admin-reset-daily-chain.md): Restablece el progreso de todos los usuarios en la recompensa diaria. Solo se aplica a las recompensas diarias del tipo rolling.

## Cliente

### Obtener recompensas diarias del usuario actual

 - [GET /v2/project/{project_id}/user/daily_chain](https://xsolla.redocly.app/es/api/liveops/daily-chain-client/get-daily-chains-list.md): Punto final del cliente. Obtiene las recompensas diarias del usuario actual.

Aviso:Un método devuelve una lista paginada de artículos. El valor máximo y por defecto es de 50 artículos por respuesta. Para obtener más artículos de la lista, utilice los parámetros limit y offset y obtenga más páginas. Por ejemplo, al llamar a un método con limit = 25 y offset = 100, la respuesta devuelve 25 artículos comenzando desde el artículo 101 en la lista global.




  Nota:
    Esta llamada API utiliza un JWT de usuario para la autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

### Obtener recompensa diaria del usuario actual por su ID

 - [GET /v2/project/{project_id}/user/daily_chain/{daily_chain_id}](https://xsolla.redocly.app/es/api/liveops/daily-chain-client/get-user-daily-chain-by-id.md): Punto final del cliente. Obtiene la recompensa diaria del usuario actual por su ID. 


  Nota:
    Esta llamada API utiliza un JWT de usuario para la autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

### Reclamar paso de recompensa diaria

 - [POST /v2/project/{project_id}/user/daily_chain/{daily_chain_id}/step/number/{step_number}/claim](https://xsolla.redocly.app/es/api/liveops/daily-chain-client/claim-user-daily-chain-step-reward.md): Punto final de cliente. Reclama la recompensa por pasos del usuario actual de una recompensa diaria. Todos los pasos solo pueden reclamarse en orden secuencial. La recompensa por un paso omitido no se puede obtener a cambio de moneda virtual o real, ni viendo un anuncio. 


  Nota:
    Esta llamada API utiliza un JWT de usuario para la autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

## Admin

### Obtener lista de cadenas de ofertas

 - [GET /v2/project/{project_id}/admin/offer_chain](https://xsolla.redocly.app/es/api/liveops/offer-chain-admin/admin-get-offer-chains.md): Obtiene la lista de cadenas de ofertas para su administración.

AvisoTodos los proyectos tienen un límite en el número de artículos que se pueden devolver en una sola respuesta. El valor por defecto y máximo es 10 artículos por respuesta. Para obtener más datos, utilice los parámetros de consulta limit y offset para la paginación.

### Crear cadena de ofertas

 - [POST /v2/project/{project_id}/admin/offer_chain](https://xsolla.redocly.app/es/api/liveops/offer-chain-admin/admin-create-offer-chain.md): Crea una cadena de ofertas.

### Obtener cadena de ofertas

 - [GET /v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}](https://xsolla.redocly.app/es/api/liveops/offer-chain-admin/admin-get-offer-chain.md): Obtiene una cadena de ofertas concreta para su administración.

### Actualizar cadena de ofertas

 - [PUT /v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}](https://xsolla.redocly.app/es/api/liveops/offer-chain-admin/admin-update-offer-chain.md): Actualiza una cadena de ofertas determinada.

### Eliminar cadena de ofertas

 - [DELETE /v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}](https://xsolla.redocly.app/es/api/liveops/offer-chain-admin/admin-delete-offer-chain.md): Elimina una cadena de ofertas determinada.

Tras la eliminación:Se mantienen todas las recompensas ya recibidas por los usuarios.Los pasos no completados dejan de estar disponibles y ya no se pueden obtener sus recompensas.

A diferencia de la desactivación de la cadena de ofertas mediante la llamada Activar o desactivar cadena de ofertas, la eliminación es irreversible y no se mantiene el progreso del usuario.

### Activar o desactivar cadena de ofertas

 - [PUT /v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}/toggle](https://xsolla.redocly.app/es/api/liveops/offer-chain-admin/admin-toggle-offer-chain.md): Activa o desactiva una cadena de ofertas.

Cuando se desactiva la cadena de ofertas, los usuarios pierden temporalmente el acceso a ella, pero se guarda su progreso.

Cuando se vuelve a activar la cadena de ofertas, los usuarios pueden continuar desde el paso en el que lo dejaron.

## Cliente

### Obtener las cadenas de ofertas del usuario actual

 - [GET /v2/project/{project_id}/user/offer_chain](https://xsolla.redocly.app/es/api/liveops/offer-chain-client/get-offer-chains-list.md): Obtiene las cadenas de ofertas del usuario actual.

AvisoTodos los proyectos tienen un límite de número de artículos que pueden devolverse en una sola respuesta. El valor por defecto y máximo es 30 artículos por respuesta. Para obtener más datos, utilice los parámetros de consulta limit y offset para la paginación.




  Nota:
    Esta llamada API utiliza un JWT de usuario para la autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

### Obtener la cadena de ofertas del usuario actual por ID

 - [GET /v2/project/{project_id}/user/offer_chain/{offer_chain_id}](https://xsolla.redocly.app/es/api/liveops/offer-chain-client/get-user-offer-chain-by-id.md): Obtiene la cadena de ofertas del usuario actual por el ID de la cadena de ofertas. 


  Nota:
    Esta llamada API utiliza un JWT de usuario para la autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

### Reclamar paso de cadena de ofertas gratuito

 - [POST /v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/claim](https://xsolla.redocly.app/es/api/liveops/offer-chain-client/claim-user-offer-chain-step-reward.md): Completa la progresión del usuario actual por el paso de la cadena de ofertas y concede la recompensa asociada.


  Aviso
 Utilice esta llamada solo para los pasos gratuitos de la cadena de ofertas.
 Para los pasos que requieran un pago en moneda real, utilice la llamada Crear pedido para el paso de cadena de ofertas de pago.





  Nota:
    Esta llamada API utiliza un JWT de usuario para la autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

### Crear pedido para el paso de cadena de ofertas de pago

 - [POST /v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/order](https://xsolla.redocly.app/es/api/liveops/offer-chain-client/order-user-offer-chain-step-reward.md): Crea un pedido para el artículo asociado al paso de la cadena de ofertas de pago especificado. El pedido creado obtiene el estado de pedido new.

Para abrir la interfaz de pago en una nueva ventana, utilice el siguiente enlace: https://secure.xsolla.com/paystation4/?token={token}, en el cual {token} es el token recibido.

Para realizar pruebas, utilice esta URL: https://sandbox-secure.xsolla.com/paystation4/?token={token}.


  Aviso 
 Este método debe utilizarse en el lado del cliente. La dirección IP del usuario se utiliza para determinar el país, lo que afecta a la moneda y a los métodos de pago disponibles. El uso de este método en el lado del servidor puede dar lugar a la detección incorrecta de la moneda y afectar a los métodos de pago en Pay Station.





  Aviso
 Utilice esta llamada solo para los pasos de cadena de ofertas de pago.
 Para los pasos gratuitos, utilice la llamada Reclamar paso de cadena de ofertas gratuito.





  Nota:
    Esta llamada API utiliza un JWT de usuario para la autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

## payment-client-side

### Crear pedido para el paso de cadena de ofertas de pago

 - [POST /v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/order](https://xsolla.redocly.app/es/api/liveops/offer-chain-client/order-user-offer-chain-step-reward.md): Crea un pedido para el artículo asociado al paso de la cadena de ofertas de pago especificado. El pedido creado obtiene el estado de pedido new.

Para abrir la interfaz de pago en una nueva ventana, utilice el siguiente enlace: https://secure.xsolla.com/paystation4/?token={token}, en el cual {token} es el token recibido.

Para realizar pruebas, utilice esta URL: https://sandbox-secure.xsolla.com/paystation4/?token={token}.


  Aviso 
 Este método debe utilizarse en el lado del cliente. La dirección IP del usuario se utiliza para determinar el país, lo que afecta a la moneda y a los métodos de pago disponibles. El uso de este método en el lado del servidor puede dar lugar a la detección incorrecta de la moneda y afectar a los métodos de pago en Pay Station.





  Aviso
 Utilice esta llamada solo para los pasos de cadena de ofertas de pago.
 Para los pasos gratuitos, utilice la llamada Reclamar paso de cadena de ofertas gratuito.





  Nota:
    Esta llamada API utiliza un JWT de usuario para la autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

## Admin

### Obtener información sobre la venta adicional en proyecto

 - [GET /v2/project/{project_id}/admin/items/upsell](https://xsolla.redocly.app/es/api/liveops/upsell-admin/get-upsell-configurations-for-project-admin.md): Recupera la información sobre la venta adicional en el proyecto: si está activada, el tipo de venta adicional y la lista de SKU de los artículos que forman parte de esta venta adicional.

### Crear venta adicional

 - [POST /v2/project/{project_id}/admin/items/upsell](https://xsolla.redocly.app/es/api/liveops/upsell-admin/post-upsell.md): Crea una venta adicional para un proyecto. 


  Aviso
    Esta llamada API utiliza un JWT de usuario para autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

### Actualizar venta adicional

 - [PUT /v2/project/{project_id}/admin/items/upsell](https://xsolla.redocly.app/es/api/liveops/upsell-admin/put-upsell.md): Actualiza una venta adicional para un proyecto. 


  Aviso
    Esta llamada API utiliza un JWT de usuario para autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

### Activar/Desactivar la venta adicional de un proyecto

 - [PUT /v2/project/{project_id}/admin/items/upsell/{toggle}](https://xsolla.redocly.app/es/api/liveops/upsell-admin/put-upsell-toggle-active-inactive.md): Cambia el estado de una venta adicional en un proyecto para que sea activa o inactiva. 


  Aviso
    Esta llamada API utiliza un JWT de usuario para autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

## Cliente

### Obtener lista de artículos de venta adicional en proyecto

 - [GET /v2/project/{project_id}/items/upsell](https://xsolla.redocly.app/es/api/liveops/upsell-client/get-upsell-for-project-client.md): Obtiene una lista de artículos de venta adicional en un proyecto si ya han sido establecidos. 


  Nota:
    Esta llamada API utiliza un JWT de usuario para la autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

## Admin

### Obtener información sobre programa de fidelización

 - [GET /projects/{project_id}/admin/program](https://xsolla.redocly.app/es/api/liveops/loyalty-program-admin/loyalty-get-programs.md): Devuelve información sobre el programa de fidelización del proyecto.

### Obtener lista de puntos de fidelidad del programa

 - [GET /projects/{project_id}/admin/programs/{loyalty_program_id}/loyalty_points](https://xsolla.redocly.app/es/api/liveops/loyalty-program-admin/loyalty-get-program-loyalty-points.md): Devuelve la lista de puntos de fidelidad del programa.

### Obtener saldo de puntos de fidelidad del usuario

 - [GET /projects/{project_id}/users/{user_id}/points/{point_id}/balance](https://xsolla.redocly.app/es/api/liveops/loyalty-program-admin/loyalty-get-user-point-balance.md): Devuelve el saldo actual de los puntos de fidelidad especificados.

### Deducir del saldo de puntos de fidelidad del usuario

 - [POST /projects/{project_id}/users/{user_id}/points/{point_id}/balance/debit](https://xsolla.redocly.app/es/api/liveops/loyalty-program-admin/loyalty-debit-user-point-balance.md): Deduce el importe especificado del saldo de puntos de fidelidad del usuario.

### Abonar en el saldo de puntos de fidelidad del usuario

 - [POST /projects/{project_id}/users/{user_id}/points/{point_id}/balance/credit](https://xsolla.redocly.app/es/api/liveops/loyalty-program-admin/loyalty-credit-user-point-balance.md): Abona el importe especificado en el saldo de puntos de fidelidad del usuario.

## Cliente

### Obtener saldo de puntos de fidelidad del usuario

 - [GET /v1/projects/{project_id}/loyalty_point_balance](https://xsolla.redocly.app/es/api/liveops/loyalty-program-client/loyalty-get-user-balance.md): Devuelve el saldo actual de puntos de fidelidad.

### Crear pedido con artículo especificado comprado con puntos de fidelidad

 - [POST /v2/project/{project_id}/payment/item/{item_sku}/loyalty_point/{loyalty_point_sku}](https://xsolla.redocly.app/es/api/liveops/loyalty-program-client/loyalty-create-order-with-item-for-loyalty-points.md): Crea un pedido con un artículo específico que se paga íntegramente con los puntos de fidelidad del usuario. Para comprar varios artículos a la vez, transmita la cantidad en el parámetro quantity.

