# API de catálogo

# 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

La API de catálogo le permite configurar un catálogo de artículos de juego en el lado de Xsolla y mostrar dicho catálogo a los usuarios de su tienda.

La API le permite gestionar las siguientes entidades de catálogo:

* **Artículos virtuales**: artículos de juego, como armas, apariencias o potenciadores.
* **Moneda virtual**: dinero virtual que se utiliza para comprar productos virtuales.
* **Paquetes de moneda virtual**: lotes predefinidos de moneda virtual.
* **Lotes**: paquetes combinados de artículos virtuales, moneda o claves de juego que se venden como un único SKU.
* **Claves de juego**: claves para juegos y DLC distribuidos a través de plataformas como Steam u otros proveedores de DRM.
* **Grupos**: agrupaciones lógicas para organizar y clasificar artículos dentro del catálogo.

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

La API se divide en los siguientes grupos:

* **<nt>Admin</nt>**: llamadas para crear, actualizar, eliminar y configurar artículos de catálogo y grupos. La autenticación se realiza mediante [autenticación de acceso básica](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. No está diseñado para uso en escaparates.
* **<nt>Catalog</nt>**: llamadas para buscar artículos y crear escaparates personalizados para los usuarios finales. Diseñado para gestionar situaciones de alta carga. Admite la autorización JWT opcional de usuarios para devolver datos personalizados, como límites específicos para determinados usuarios y promociones activas.

# 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 mediante el JWT del usuario.** El token se transmite en el encabezado `Authorization` con el siguiente formato: `Authorization: Bearer <user_JWT>`, en el cual `<user_JWT>` es el token del usuario. El token identifica al usuario y proporciona acceso a datos personalizados.
Como alternativa, puede utilizar 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)
- [Webhooks](/es/webhooks/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 código de artículo (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 > Configuración de la empresa > Usuarios](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 **Acuerdos e impuestos > Acuerdos**, 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"
  }
}
```

# Determinación del país y la moneda {% #country-and-currency-determination %}

El país del usuario determina los precios del catálogo, la moneda de pago y los métodos de pago disponibles en la interfaz de pago. Dependiendo de la llamada API, el país se determina de la siguiente forma:
<ul>
  <li>En <a href="https://developers.xsolla.com/es/api/catalog/payment-client-side/create-order-by-cart-id">las llamadas API del lado del cliente</a>,
    el país se determina mediante la dirección IP de la solicitud.</li>
  <li>En <a href="https://developers.xsolla.com/es/api/catalog/payment-server-side/admin-create-payment-token">las llamadas API del lado del servidor</a>,
    el país se determina mediante el valor del parámetro <code>user.country.value</code> o mediante la dirección IP del usuario     del encabezado <code>X-User-Ip</code>. Si se transmiten ambos, tiene prioridad el parámetro <code>user.country.value</code>.</li>
</ul>

<div class="note">
  <b>Nota</b><br><br>
    Solo se admiten direcciones <a href="https://en.wikipedia.org/wiki/IPv4">IPv4</a> para determinar el país.
    Si se transmite una dirección <a href="https://en.wikipedia.org/wiki/IPv6">IPv6</a>, la detección del país y la moneda podría ser incorrecta. Si utiliza la llamada API del lado del servidor y no puede proporcionar la dirección IPv4 del usuario,     transmita el país en el parámetro <code>user.country.value</code>.
</div>

# 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 la sección **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>`.
* `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:
  * [Configuración de la empresa > Claves API](https://publisher.xsolla.com/0/settings/api_key)
  * [Configuración del proyecto > Claves API](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 la sección **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>`
* `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 sección [Configuración de la empresa > Claves de API](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 catálogo](https://xsolla.redocly.app/_bundle/@l10n/es/api/catalog/index.yaml)

## Admin

### Obtener lista de artículos virtuales

 - [GET /v2/project/{project_id}/admin/items/virtual_items](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list.md): Obtiene la lista de artículos virtuales de un proyecto para administración.

NotaNo utilice este punto final para crear un catálogo de tienda.

### Crear artículo virtual

 - [POST /v2/project/{project_id}/admin/items/virtual_items](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-admin/admin-create-virtual-item.md): Crea un artículo virtual.

### Obtener lista de artículos virtuales por ID externo del grupo especificado

 - [GET /v2/project/{project_id}/admin/items/virtual_items/group/external_id/{external_id}](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list-by-group-external-id.md): Obtiene la lista de artículos virtuales de un grupo para su administración.

NotaNo utilice este punto final para crear un catálogo de tienda.

### Obtener la lista de artículos virtuales por ID del grupo especificado

 - [GET /v2/project/{project_id}/admin/items/virtual_items/group/id/{group_id}](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list-by-group-id.md): Obtiene la lista de artículos virtuales de un grupo para su administración.

NotaNo utilice este punto final para crear un catálogo de tienda.

### Obtener artículo virtual

 - [GET /v2/project/{project_id}/admin/items/virtual_items/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-admin/admin-get-virtual-item.md): Obtiene el artículo virtual dentro de un proyecto para su administración.

NotaNo utilice este punto final para crear un catálogo de tienda.

### Actualizar artículo virtual

 - [PUT /v2/project/{project_id}/admin/items/virtual_items/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-admin/admin-update-virtual-item.md): Actualiza un artículo virtual.

### Borrar artículo virtual

 - [DELETE /v2/project/{project_id}/admin/items/virtual_items/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-admin/admin-delete-virtual-item.md): Elimina un artículo virtual.

### Obtener lista de monedas virtuales

 - [GET /v2/project/{project_id}/admin/items/virtual_currency](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-admin/admin-get-virtual-currencies-list.md): Obtiene la lista de monedas virtuales dentro de un proyecto para su administración.

NotaNo utilice este punto final para crear un catálogo de tienda.

### Crear moneda virtual

 - [POST /v2/project/{project_id}/admin/items/virtual_currency](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-admin/admin-create-virtual-currency.md): Crea una moneda virtual.

### Obtener moneda virtual

 - [GET /v2/project/{project_id}/admin/items/virtual_currency/sku/{virtual_currency_sku}](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-admin/admin-get-virtual-currency.md): Obtiene la moneda virtual dentro de un proyecto para administración.

NotaNo utilice este punto final para crear un catálogo de tienda.

### Actualizar la moneda virtual

 - [PUT /v2/project/{project_id}/admin/items/virtual_currency/sku/{virtual_currency_sku}](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-admin/admin-update-virtual-currency.md): Actualiza una moneda virtual.

### Eliminar moneda virtual

 - [DELETE /v2/project/{project_id}/admin/items/virtual_currency/sku/{virtual_currency_sku}](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-admin/admin-delete-virtual-currency.md): Elimina una moneda virtual.

### Obtener lista de paquetes de moneda virtual (admin)

 - [GET /v2/project/{project_id}/admin/items/virtual_currency/package](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-admin/admin-get-virtual-currency-packages-list.md): Obtiene la lista de paquetes de moneda virtual dentro de un proyecto para su administración.

NotaNo utilice este punto final para crear un catálogo de tienda.

### Crear un paquete de moneda virtual

 - [POST /v2/project/{project_id}/admin/items/virtual_currency/package](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-admin/admin-create-virtual-currency-package.md): Crea un paquete de moneda virtual.

### Actualizar el paquete de moneda virtual

 - [PUT /v2/project/{project_id}/admin/items/virtual_currency/package/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-admin/admin-update-virtual-currency-package.md): Actualiza un paquete de moneda virtual.

### Eliminar el paquete de moneda virtual

 - [DELETE /v2/project/{project_id}/admin/items/virtual_currency/package/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-admin/admin-delete-virtual-currency-package.md): Elimina un paquete de moneda virtual.

### Obtener el paquete de moneda virtual

 - [GET /v2/project/{project_id}/admin/items/virtual_currency/package/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-admin/admin-get-virtual-currency-package.md): Obtiene el paquete de moneda virtual dentro de un proyecto para administración.

NotaNo utilice este punto final para crear un catálogo de tienda.

## Catálogo

### Obtener lista de artículos virtuales

 - [GET /v2/project/{project_id}/items/virtual_items](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-catalog/get-virtual-items.md): Obtiene una lista de artículos virtuales para crear un catálogo.


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





  Nota:
    Esta llamada de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

 Ver también: La llamada API Obtener la lista de todos los artículos virtuales para búsqueda o indexación en el lado del cliente.

### Obtener artículo virtual por SKU

 - [GET /v2/project/{project_id}/items/virtual_items/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-catalog/get-virtual-items-sku.md): Obtiene un artículo virtual por SKU para crear un catálogo.


  Aviso:
    Esta llamada API devuelve datos genéricos del
    catálogo de artículos cuando se usa sin autorización. Utilice la autorización para recuperar
    datos de usuario personalizados, como límites y promociones asociadas al artículo.
    Para hacerlo, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque de Seguridad
    para esta llamada.

### Obtener la lista de todos los artículos virtuales

 - [GET /v2/project/{project_id}/items/virtual_items/all](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-catalog/get-all-virtual-items.md): Obtiene una lista de todos los artículos virtuales para hacer búsquedas en el lado del cliente.


  Aviso:
    Devuelve solo el SKU del artículo, nombre, grupos y descripción.





  Nota:
    Esta llamada de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

 Vea también: La llamada API Obtener lista de artículos virtuales para recuperar datos detallados del artículo con paginación.

### Obtener lista de monedas virtuales

 - [GET /v2/project/{project_id}/items/virtual_currency](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-catalog/get-virtual-currency.md): Obtiene una lista de monedas virtuales para crear un catálogo.


  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 de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

### Obtener moneda virtual por SKU

 - [GET /v2/project/{project_id}/items/virtual_currency/sku/{virtual_currency_sku}](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-catalog/get-virtual-currency-sku.md): Obtiene una moneda virtual por SKU para crear un catálogo.


  Nota:
    Esta llamada de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

### Obtener la lista de paquetes de moneda virtual

 - [GET /v2/project/{project_id}/items/virtual_currency/package](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-catalog/get-virtual-currency-package.md): Obtiene una lista de paquetes de moneda virtual para crear un catálogo.


  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 de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

### Obtener paquete de moneda virtual por SKU

 - [GET /v2/project/{project_id}/items/virtual_currency/package/sku/{virtual_currency_package_sku}](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-catalog/get-virtual-currency-package-sku.md): Obtiene paquetes de moneda virtual por SKU para crear un catálogo.


  Nota:
    Esta llamada de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

### Obtener lista de artículos por grupo especificado

 - [GET /v2/project/{project_id}/items/virtual_items/group/{external_id}](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-catalog/get-virtual-items-group.md): Obtiene una lista de artículos del grupo especificado para crear un catálogo.


  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 de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

### Obtener lista de moneda virtual por grupo especificado

 - [GET /v2/project/{project_id}/items/virtual_currency/group/{external_id}](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-catalog/get-virtual-currency-group.md): Obtiene una lista de monedas virtuales del grupo especificado para crear un catálogo.


  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 de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

### Obtener lista de paquetes de moneda virtual por grupo especificado

 - [GET /v2/project/{project_id}/items/virtual_currency/package/group/{external_id}](https://xsolla.redocly.app/es/api/catalog/virtual-items-currency-catalog/get-virtual-currency-package-group.md): Obtiene una lista de paquetes de moneda virtual del grupo especificado para crear un catálogo.


  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 de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

## Pago virtual

### Crear pedido con artículo especificado comprado mediante moneda virtual

 - [POST /v2/project/{project_id}/payment/item/{item_sku}/virtual/{virtual_currency_sku}](https://xsolla.redocly.app/es/api/catalog/virtual-payment/create-order-with-item-for-virtual-currency.md): Crea la compra de un artículo usando moneda virtual. 


  Nota:
    Esta llamada de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

## Catálogo

### Obtener lista de juegos

 - [GET /v2/project/{project_id}/items/game](https://xsolla.redocly.app/es/api/catalog/game-keys-catalog/get-games-list.md): Obtiene una lista de juegos para crear un catálogo.


  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 de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

### Obtener lista de juegos por grupo especificado

 - [GET /v2/project/{project_id}/items/game/group/{external_id}](https://xsolla.redocly.app/es/api/catalog/game-keys-catalog/get-games-group.md): Obtiene una lista de juegos del grupo especificado para crear un catálogo.


  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 de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

### Obtener juego para el catálogo

 - [GET /v2/project/{project_id}/items/game/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/game-keys-catalog/get-game-by-sku.md): Obtiene un juego para el catálogo.


  Nota:
    Esta llamada de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

### Obtener clave del juego para el catálogo

 - [GET /v2/project/{project_id}/items/game/key/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/game-keys-catalog/get-game-key-by-sku.md): Obtiene una clave de juego para el catálogo.


  Nota:
    Esta llamada de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

### Obtener la lista de claves de juego por grupo especificado

 - [GET /v2/project/{project_id}/items/game/key/group/{external_id}](https://xsolla.redocly.app/es/api/catalog/game-keys-catalog/get-game-keys-group.md): Obtiene una lista de claves de juego del grupo especificado para crear un catálogo.


  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 de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

### Obtener lista de sistemas de DRM

 - [GET /v2/project/{project_id}/items/game/drm](https://xsolla.redocly.app/es/api/catalog/game-keys-catalog/get-drm-list.md): Obtiene la lista de sistemas de DRM (gestión de derechos digitales) disponibles.

## Derechos

### Obtener la lista de juegos propiedad del usuario

 - [GET /v2/project/{project_id}/entitlement](https://xsolla.redocly.app/es/api/catalog/game-keys-entitlement/get-user-games.md): Obtiene la lista de juegos propiedad del usuario. La respuesta contendrá una matriz de juegos propiedad de un usuario concreto.


  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 de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

### Canjear código del juego por cliente

 - [POST /v2/project/{project_id}/entitlement/redeem](https://xsolla.redocly.app/es/api/catalog/game-keys-entitlement/redeem-game-pin-code.md): Concede el derecho mediante un código de juego suministrado.


  Aviso:
    Solamente puede canjear códigos para la plataforma sin DRM.





  Nota:
    Esta llamada de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

### Conceder derecho (admin)

 - [POST /v2/project/{project_id}/admin/entitlement/grant](https://xsolla.redocly.app/es/api/catalog/game-keys-entitlement/grant-entitlement-admin.md): Concede el derecho al usuario.

AtenciónSolo se pueden conceder códigos de juego o juegos para plataformas sin DRM (gestión de derechos digitales).

### Revocar el derecho (admin)

 - [POST /v2/project/{project_id}/admin/entitlement/revoke](https://xsolla.redocly.app/es/api/catalog/game-keys-entitlement/revoke-entitlement-admin.md): Revoca el derecho del usuario.

AtenciónSolo se pueden conceder códigos de juego o juegos para plataformas sin DRM (gestión de derechos digitales).

## Admin

### Crear juego

 - [POST /v2/project/{project_id}/admin/items/game](https://xsolla.redocly.app/es/api/catalog/game-keys-admin/admin-create-game.md): Crea un juego en el proyecto.

### Obtener lista de juegos (admin)

 - [GET /v2/project/{project_id}/admin/items/game](https://xsolla.redocly.app/es/api/catalog/game-keys-admin/admin-get-game-list.md): Obtiene la lista de juegos dentro de un proyecto para su administración.
El juego se compone de claves del juego que podrían ser compradas por un usuario.

NotaNo utilice este punto final para crear un catálogo de tienda.

### Obtener juego (admin)

 - [GET /v2/project/{project_id}/admin/items/game/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/game-keys-admin/admin-get-game-by-sku.md): Obtiene un juego para administración.
El juego se compone de claves del juego que podrían ser compradas por un usuario.

NotaNo utilice este punto final para crear un catálogo de tienda.

### Actualizar juego por SKU

 - [PUT /v2/project/{project_id}/admin/items/game/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/game-keys-admin/admin-update-game-by-sku.md): Actualiza un juego en el proyecto por SKU.

### Eliminar juego por SKU

 - [DELETE /v2/project/{project_id}/admin/items/game/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/game-keys-admin/admin-delete-game-by-sku.md): Elimina un juego del proyecto por SKU.

### Obtener juego por ID (admin)

 - [GET /v2/project/{project_id}/admin/items/game/id/{item_id}](https://xsolla.redocly.app/es/api/catalog/game-keys-admin/admin-get-game-by-id.md): Obtiene un juego para administración.
El juego se compone de claves del juego que podrían ser compradas por un usuario.

NotaNo utilice este punto final para crear un catálogo de tienda.

### Actualizar juego por su ID

 - [PUT /v2/project/{project_id}/admin/items/game/id/{item_id}](https://xsolla.redocly.app/es/api/catalog/game-keys-admin/admin-update-game-by-id.md): Actualiza un juego en el proyecto por su ID.

### Eliminar un juego por su ID

 - [DELETE /v2/project/{project_id}/admin/items/game/id/{item_id}](https://xsolla.redocly.app/es/api/catalog/game-keys-admin/admin-delete-game-by-id.md): Elimina un juego del proyecto por su ID.

### Cargar códigos

 - [POST /v2/project/{project_id}/admin/items/game/key/upload/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/game-keys-admin/admin-upload-codes-by-sku.md): Carga códigos por SKU de clave de juego.

### Cargar códigos por ID

 - [POST /v2/project/{project_id}/admin/items/game/key/upload/id/{item_id}](https://xsolla.redocly.app/es/api/catalog/game-keys-admin/admin-upload-codes-by-id.md): Carga códigos por la ID de la clave del juego.

### Obtener información de la sesión de carga de códigos

 - [GET /v2/project/{project_id}/admin/items/game/key/upload/session/{session_id}](https://xsolla.redocly.app/es/api/catalog/game-keys-admin/admin-get-codes-session.md): Obtiene información de la sesión de carga de códigos.

### Obtener códigos

 - [GET /v2/project/{project_id}/admin/items/game/key/request/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/game-keys-admin/admin-get-codes-by-sku.md): Obtiene un determinado número de códigos por SKU de clave de juego.

### Obtener códigos por ID

 - [GET /v2/project/{project_id}/admin/items/game/key/request/id/{item_id}](https://xsolla.redocly.app/es/api/catalog/game-keys-admin/admin-get-codes-by-id.md): Obtiene un determinado número de códigos por la ID de la clave del juego.

### Eliminar códigos

 - [DELETE /v2/project/{project_id}/admin/items/game/key/delete/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/game-keys-admin/admin-delete-codes-by-sku.md): Elimina todos los códigos por SKU de clave de juego.

### Borrar códigos por ID

 - [DELETE /v2/project/{project_id}/admin/items/game/key/delete/id/{item_id}](https://xsolla.redocly.app/es/api/catalog/game-keys-admin/admin-delete-codes-by-id.md): Elimina todos los códigos por ID de la clave del juego.

## Admin

### Obtener lista de lotes

 - [GET /v2/project/{project_id}/admin/items/bundle](https://xsolla.redocly.app/es/api/catalog/bundles-admin/admin-get-bundle-list.md): Obtiene la lista de lotes de un proyecto para administración.

NotaNo utilice este punto final para crear un catálogo de tienda.

### Crear lote

 - [POST /v2/project/{project_id}/admin/items/bundle](https://xsolla.redocly.app/es/api/catalog/bundles-admin/admin-create-bundle.md): Crea un lote: un conjunto de artículos que se venden como una sola unidad. Un lote puede contener artículos virtuales, paquetes de moneda virtual, claves de juego y otros lotes. Para obtener más información, consulte la sección Lotes.

AvisoTodos los artículos de la matriz content deben estar creados previamente en su proyecto. El sistema devuelve un error si el SKU indicado no existe.

### Obtener lista de lotes por ID de grupo especificado

 - [GET /v2/project/{project_id}/admin/items/bundle/group/id/{group_id}](https://xsolla.redocly.app/es/api/catalog/bundles-admin/admin-get-bundle-list-in-group-by-id.md): Obtiene la lista de lotes dentro de un grupo para administración.

NotaNo utilice este punto final para crear un catálogo de tienda.

### Obtener lista de lotes por ID externo del grupo especificado

 - [GET /v2/project/{project_id}/admin/items/bundle/group/external_id/{external_id}](https://xsolla.redocly.app/es/api/catalog/bundles-admin/admin-get-bundle-list-in-group-by-external-id.md): Obtiene la lista de lotes dentro de un grupo para administración.

NotaNo utilice este punto final para crear un catálogo de tienda.

### Actualizar lote

 - [PUT /v2/project/{project_id}/admin/items/bundle/sku/{sku}](https://xsolla.redocly.app/es/api/catalog/bundles-admin/admin-update-bundle.md): Actualiza un lote. Esta llamada sustituye por completo el lote: transmita todos los campos obligatorios en el cuerpo de la solicitud, no solo los campos que quiera cambiar. Para obtener más información, consulte la sección Lotes.

AvisoTodos los artículos de la matriz content deben estar creados previamente en su proyecto. El sistema devuelve un error si el SKU indicado no existe.

### Eliminar lote

 - [DELETE /v2/project/{project_id}/admin/items/bundle/sku/{sku}](https://xsolla.redocly.app/es/api/catalog/bundles-admin/admin-delete-bundle.md): Elimina un lote.

### Obtener lote

 - [GET /v2/project/{project_id}/admin/items/bundle/sku/{sku}](https://xsolla.redocly.app/es/api/catalog/bundles-admin/admin-get-bundle.md): Obtiene el lote dentro de un proyecto para administración.

NotaNo utilice este punto final para crear un catálogo de tienda.

### Mostrar lote en el catálogo

 - [PUT /v2/project/{project_id}/admin/items/bundle/sku/{sku}/show](https://xsolla.redocly.app/es/api/catalog/bundles-admin/admin-show-bundle.md): Muestra un lote en un catálogo.

### Ocultar lote en el catálogo

 - [PUT /v2/project/{project_id}/admin/items/bundle/sku/{sku}/hide](https://xsolla.redocly.app/es/api/catalog/bundles-admin/admin-hide-bundle.md): Oculta un lote en un catálogo.

## Catálogo

### Obtener lista de lotes

 - [GET /v2/project/{project_id}/items/bundle](https://xsolla.redocly.app/es/api/catalog/bundles-catalog/get-bundle-list.md): Obtiene una lista de lotes para crear un catálogo.


  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 de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

### Obtener el lote especificado

 - [GET /v2/project/{project_id}/items/bundle/sku/{sku}](https://xsolla.redocly.app/es/api/catalog/bundles-catalog/get-bundle.md): Obtiene un paquete especificado.


  Nota:
    Esta llamada de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

### Obtener la lista de lotes por grupo especificado

 - [GET /v2/project/{project_id}/items/bundle/group/{external_id}](https://xsolla.redocly.app/es/api/catalog/bundles-catalog/get-bundle-list-in-group.md): Obtiene una lista de lotes dentro de un grupo para crear un catálogo.


  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 de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

## Cesta (lado del cliente)

Utilice las llamadas de esta sección para gestionar la cesta en el lado del cliente.

### Obtener cesta por el ID de la cesta

 - [GET /v2/project/{project_id}/cart/{cart_id}](https://xsolla.redocly.app/es/api/catalog/cart-client-side/get-cart-by-id.md): Devuelve la cesta del usuario por el ID de la cesta.

### Obtener la cesta del usuario actual

 - [GET /v2/project/{project_id}/cart](https://xsolla.redocly.app/es/api/catalog/cart-client-side/get-user-cart.md): Devuelve la cesta del usuario actual.

### Eliminar todos los artículos de la cesta por el ID de la cesta

 - [PUT /v2/project/{project_id}/cart/{cart_id}/clear](https://xsolla.redocly.app/es/api/catalog/cart-client-side/cart-clear-by-id.md): Elimina todos los artículos de la cesta.

### Eliminar todos los artículos de la cesta actual

 - [PUT /v2/project/{project_id}/cart/clear](https://xsolla.redocly.app/es/api/catalog/cart-client-side/cart-clear.md): Elimina todos los artículos de la cesta.

### Llenar la cesta con artículos

 - [PUT /v2/project/{project_id}/cart/fill](https://xsolla.redocly.app/es/api/catalog/cart-client-side/cart-fill.md): Llena la cesta con artículos. Si la cesta ya tiene un artículo con el mismo SKU, el artículo existente se sustituirá por el valor transmitido.

### Llenar la cesta específica con artículos

 - [PUT /v2/project/{project_id}/cart/{cart_id}/fill](https://xsolla.redocly.app/es/api/catalog/cart-client-side/cart-fill-by-id.md): Llena la cesta específica con artículos. Si la cesta ya contiene un artículo con el mismo SKU, la posición del artículo existente se sustituirá por el valor transmitido.

### Actualizar artículo de la cesta por ID de la cesta

 - [PUT /v2/project/{project_id}/cart/{cart_id}/item/{item_sku}](https://xsolla.redocly.app/es/api/catalog/cart-client-side/put-item-by-cart-id.md): Actualiza un artículo de la cesta existente o crea el de la cesta.

### Eliminar artículo de la cesta por ID de la cesta

 - [DELETE /v2/project/{project_id}/cart/{cart_id}/item/{item_sku}](https://xsolla.redocly.app/es/api/catalog/cart-client-side/delete-item-by-cart-id.md): Elimina un artículo de la cesta.

### Actualizar artículo de la cesta actual

 - [PUT /v2/project/{project_id}/cart/item/{item_sku}](https://xsolla.redocly.app/es/api/catalog/cart-client-side/put-item.md): Actualiza un artículo de la cesta existente o crea el de la cesta.

### Eliminar artículo de la cesta actual

 - [DELETE /v2/project/{project_id}/cart/item/{item_sku}](https://xsolla.redocly.app/es/api/catalog/cart-client-side/delete-item.md): Elimina un artículo de la cesta.

## Cesta (lado del servidor)

Utilice las llamadas de esta sección para gestionar la cesta en el lado del servidor.

### Llenar la cesta con artículos

 - [PUT /v2/admin/project/{project_id}/cart/fill](https://xsolla.redocly.app/es/api/catalog/cart-server-side/admin-cart-fill.md): Rellena la cesta actual con artículos. Si la cesta ya tiene un artículo con el mismo SKU, el artículo existente se sustituirá por el valor transmitido.

### Llenar la cesta con artículos por el ID de la cesta

 - [PUT /v2/admin/project/{project_id}/cart/{cart_id}/fill](https://xsolla.redocly.app/es/api/catalog/cart-server-side/admin-fill-cart-by-id.md): Rellena la cesta con artículos por ID de la cesta. Si la cesta ya tiene un artículo con el mismo SKU, el artículo existente se sustituirá por el valor transmitido.

## Pago (lado del cliente)

Utilice las llamadas de esta sección para crear un token de pago en el lado del cliente.

### Crear pedido con todos los artículos de la cesta

 - [POST /v2/project/{project_id}/payment/cart/{cart_id}](https://xsolla.redocly.app/es/api/catalog/payment-client-side/create-order-by-cart-id.md): Se utiliza para la integración cliente-servidor. Crea un pedido con todos los artículos de la cesta concreta y genera un token de pago para esta. El pedido creado obtiene el estado de pedido new.

La IP del cliente se utiliza para determinar el país del usuario, que a su vez se utiliza para aplicar la moneda correspondiente y los métodos de pago disponibles para el pedido.

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  Como este método utiliza la IP para determinar el país del usuario y seleccionar una moneda para el pedido, es importante utilizar este método solamente desde el lado del cliente y no desde el lado del servidor. El uso de este método desde el lado del servidor puede causar una determinación incorrecta de la moneda y afectar a los métodos de pago en Pay Station.

### Crear pedido con todos los artículos de la cesta actual

 - [POST /v2/project/{project_id}/payment/cart](https://xsolla.redocly.app/es/api/catalog/payment-client-side/create-order.md): Se utiliza para la integración cliente-servidor. Crea un pedido con todos los artículos de la cesta y genera un token de pago para esta. El pedido creado obtiene el estado de pedido new.

La IP del cliente se utiliza para determinar el país del usuario, que a su vez se utiliza para aplicar la moneda correspondiente y los métodos de pago disponibles para el pedido.

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  Como este método utiliza la IP para determinar el país del usuario y seleccionar una moneda para el pedido, es importante utilizar este método solamente desde el lado del cliente y no desde el lado del servidor. El uso de este método desde el lado del servidor puede causar una determinación incorrecta de la moneda y afectar a los métodos de pago en Pay Station.

### Crear pedido con un artículo especificado

 - [POST /v2/project/{project_id}/payment/item/{item_sku}](https://xsolla.redocly.app/es/api/catalog/payment-client-side/create-order-with-item.md): Se utiliza para la integración cliente-servidor. Crea un pedido con un artículo especificado y genera un token de pago para ese pedido. El pedido creado obtiene el estado de pedido new.

La IP del cliente se utiliza para determinar el país del usuario, que a su vez se utiliza para aplicar la moneda correspondiente y los métodos de pago disponibles para el pedido.

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  Como este método utiliza la IP para determinar el país del usuario y seleccionar una moneda para el pedido, es importante utilizar este método solamente desde el lado del cliente y no desde el lado del servidor. El uso de este método desde el lado del servidor puede causar una determinación incorrecta de la moneda y afectar a los métodos de pago en Pay Station. 




  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.

## Pago (lado del servidor)

Utilice las llamadas de esta sección para crear un token de pago en el lado del servidor.

### Crear token de pago para la compra

 - [POST /v3/project/{project_id}/admin/payment/token](https://xsolla.redocly.app/es/api/catalog/payment-server-side/admin-create-payment-token.md): Genera un pedido y un token de pago para el mismo. El pedido se genera en función de los artículos transmitidos en el cuerpo de la solicitud.

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
   
   Para garantizar que el método funcione correctamente, transmita el parámetro user.country.value (código de país) o el encabezado X-User-Ip (la dirección IPv4 del usuario, si se desconoce el país). Los datos transmitidos se utilizan para determinar la moneda de pago. No se admiten direcciones IPv6.  La moneda seleccionada se utiliza para los métodos de pago en la interfaz de pago de Xsolla.

## Pedido

Utilice las llamadas de esta sección para obtener información sobre los pedidos.

### Obtener pedido

 - [GET /v2/project/{project_id}/order/{order_id}](https://xsolla.redocly.app/es/api/catalog/order/get-order.md): Recupera un pedido especificado.

### Obtener la lista de pedidos del periodo especificado

 - [POST /v3/project/{project_id}/admin/order/search](https://xsolla.redocly.app/es/api/catalog/order/admin-order-search.md): Recupera la lista de pedidos, ordenados de la fecha de creación más antigua a la más reciente.

## Artículos gratuitos

Utilice las llamadas de esta sección para conceder <a href="https://developers.xsolla.com/es/items-catalog/catalog-features/free-items/">artículos gratuitos</a> a los usuarios.

### Crear pedido con cesta gratuita

 - [POST /v2/project/{project_id}/free/cart](https://xsolla.redocly.app/es/api/catalog/free-item/create-free-order.md): Crea un pedido con todos los artículos de la cesta gratuita. El pedido creado obtendrá el estado de pedido done.

### Crear pedido con una cesta gratuita concreta

 - [POST /v2/project/{project_id}/free/cart/{cart_id}](https://xsolla.redocly.app/es/api/catalog/free-item/create-free-order-by-cart-id.md): Crea un pedido con todos los artículos de la cesta gratuita concreta. El pedido creado obtendrá el estado de pedido done.

### Crear pedido con un artículo gratuito especificado

 - [POST /v2/project/{project_id}/free/item/{item_sku}](https://xsolla.redocly.app/es/api/catalog/free-item/create-free-order-with-item.md): Crea un pedido con un artículo gratuito especificado. El pedido creado obtendrá un estado de pedido done. 


  Nota:
    Esta llamada de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

## Gestión

### Actualizar todos los límites de compra para un usuario especificado

 - [DELETE /v2/project/{project_id}/admin/user/limit/item/all](https://xsolla.redocly.app/es/api/catalog/user-limits-admin/reset-all-user-items-limit.md): Actualiza todos los límites de compra de todos los artículos para un usuario especificado para que pueda comprar estos artículos de nuevo.

La API de límite del usuario le permite vender un artículo en una cantidad limitada. Para configurar los límites de compra, vaya a Admin del módulo del tipo de artículo deseado:
* Game Keys
* Virtual Items & Currency
* Bundles

### Actualizar límite de compra

 - [DELETE /v2/project/{project_id}/admin/user/limit/item/sku/{item_sku}/all](https://xsolla.redocly.app/es/api/catalog/user-limits-admin/reset-user-item-limit.md): Actualiza el límite de compra de un artículo para que un usuario pueda volver a comprarlo. 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 vender un artículo en una cantidad limitada. Para configurar los límites de compra, vaya a Admin del módulo del tipo de artículo deseado:
* Game Keys
* Virtual Items & Currency
* Bundles

### Obtener el número de artículos disponibles para un usuario especificado

 - [GET /v2/project/{project_id}/admin/user/limit/item/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/user-limits-admin/get-user-item-limit.md): Obtiene el número restante de artículos disponibles para el usuario especificado dentro del límite aplicado.

La API de límite del usuario le permite vender un artículo en una cantidad limitada. Para configurar los límites de compra, vaya a Admin del módulo del tipo de artículo deseado:
* Game Keys
* Virtual Items & Currency
* Bundles

### Aumentar el número de artículos disponibles para el usuario especificado

 - [POST /v2/project/{project_id}/admin/user/limit/item/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/user-limits-admin/add-user-item-limit.md): Aumenta el número restante de artículos disponibles para el usuario especificado dentro del límite aplicado.

La API de límite del usuario le permite vender un artículo en una cantidad limitada. Para configurar los límites de compra, vaya a Admin del módulo del tipo de artículo deseado:
* Game Keys
* Virtual Items & Currency
* Bundles

### Establecer el número de artículos disponibles para el usuario especificado

 - [PUT /v2/project/{project_id}/admin/user/limit/item/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/user-limits-admin/set-user-item-limit.md): Establece el número de artículos que el usuario especificado puede comprar dentro del límite aplicado después de que se haya aumentado o reducido.

La API de límite del usuario le permite vender un artículo en una cantidad limitada. Para configurar los límites de compra, vaya a Admin del módulo del tipo de artículo deseado:
* Game Keys
* Virtual Items & Currency
* Bundles

### Reducir el número de artículos disponibles para un usuario especificado

 - [DELETE /v2/project/{project_id}/admin/user/limit/item/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/user-limits-admin/remove-user-item-limit.md): Reduce el número restante de artículos disponibles para el usuario especificado dentro del límite aplicado.

La API de límite del usuario le permite vender un artículo en una cantidad limitada. Para configurar los límites de compra, vaya a Admin del módulo del tipo de artículo deseado:
* Game Keys
* Virtual Items & Currency
* Bundles

## Admin

### Importar artículos mediante un archivo JSON

 - [POST /v1/projects/{project_id}/import/from_external_file](https://xsolla.redocly.app/es/api/catalog/connector-admin/import-items-from-external-file.md): Importa artículos a la tienda desde un archivo JSON mediante la URL especificada. Consulte la documentación para obtener más información sobre la importación desde un archivo JSON.

### Obtener el estado de la importación de artículos

 - [GET /v1/admin/projects/{project_id}/connectors/import_items/import/status](https://xsolla.redocly.app/es/api/catalog/connector-admin/get-items-import-status.md): Recupera información sobre el progreso de la importación de artículos al proyecto. Esta llamada API recupera datos sobre la última importación realizada mediante la API o mediante Cuenta del editor.

## Pedidos anticipados

### Obtener información sobre el límite de pedidos por anticipado del artículo

 - [GET /v2/project/{project_id}/admin/items/pre_order/limit/item/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/common-pre-orders/get-pre-order-limit.md): Obtenga el límite de pedido por anticipado del artículo.

La API de límite de pedido por anticipado le permite vender un artículo en una cantidad limitada. Para configurar el pedido por anticipado, vaya a Admin del módulo del artículo deseado:
* Game Keys
* Virtual Items & Currency
* Bundles

Alias para este punto final:
* /v2/project/{project_id}/admin/items/pre_order/limit/item/id/{item_id}

### Agregar cantidad al límite de pedidos por anticipado del artículo

 - [POST /v2/project/{project_id}/admin/items/pre_order/limit/item/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/common-pre-orders/add-pre-order-limit.md): Añada la cantidad del límite de pedido por anticipado del artículo.

La API de límite de pedido por anticipado le permite vender un artículo en una cantidad limitada. Para configurar el pedido por anticipado, vaya a Admin del módulo del artículo deseado:
* Game Keys
* Virtual Items & Currency
* Bundles

Alias para este punto final:
* /v2/project/{project_id}/admin/items/pre_order/limit/item/id/{item_id}

### Establecer el límite de cantidad de artículos para pedidos por anticipado

 - [PUT /v2/project/{project_id}/admin/items/pre_order/limit/item/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/common-pre-orders/set-pre-order-limit.md): Establezca la cantidad del límite de pedido por anticipado del artículo.

La API de límite de pedido por anticipado le permite vender un artículo en una cantidad limitada. Para configurar el pedido por anticipado, vaya a Admin del módulo del artículo deseado:
* Game Keys
* Virtual Items & Currency
* Bundles

Alias para este punto final:
* /v2/project/{project_id}/admin/items/pre_order/limit/item/id/{item_id}

### Eliminar el límite de cantidad de artículos para pedidos por anticipado

 - [DELETE /v2/project/{project_id}/admin/items/pre_order/limit/item/sku/{item_sku}](https://xsolla.redocly.app/es/api/catalog/common-pre-orders/remove-pre-order-limit.md): Elimina la cantidad del límite de pedido por anticipado del artículo.

La API de límite de pedido por anticipado le permite vender un artículo en una cantidad limitada. Para configurar el pedido por anticipado, vaya a Admin del módulo del artículo deseado:
* Game Keys
* Virtual Items & Currency
* Bundles

Alias para este punto final:
* /v2/project/{project_id}/admin/items/pre_order/limit/item/id/{item_id}

### Cambiar el límite para los pedidos por anticipado del artículo

 - [PUT /v2/project/{project_id}/admin/items/pre_order/limit/item/sku/{item_sku}/toggle](https://xsolla.redocly.app/es/api/catalog/common-pre-orders/toggle-pre-order-limit.md): Habilitar/deshabilitar el límite de pedido por anticipado del artículo.

La API de límite de pedido por anticipado le permite vender un artículo en una cantidad limitada. Para configurar el pedido por anticipado, vaya a Admin del módulo del artículo deseado:
* Game Keys
* Virtual Items & Currency
* Bundles

Alias para este punto final:
* /v2/project/{project_id}/admin/items/pre_order/limit/item/id/{item_id}/toggle

### Eliminar todo el límite de cantidad de artículos para pedidos por anticipado

 - [DELETE /v2/project/{project_id}/admin/items/pre_order/limit/item/sku/{item_sku}/all](https://xsolla.redocly.app/es/api/catalog/common-pre-orders/remove-all-pre-order-limit.md): Elimine toda la cantidad de límite de pedido por anticipado del artículo.

La API de límite de pedido por anticipado le permite vender un artículo en una cantidad limitada. Para configurar el pedido por anticipado, vaya a Admin del módulo del artículo deseado:
* Game Keys
* Virtual Items & Currency
* Bundles

Alias para este punto final:
* /v2/project/{project_id}/admin/items/pre_order/limit/item/id/{item_id}/all

## Comerciante

### Obtener proyectos

 - [GET /v2/merchant/{merchant_id}/projects](https://xsolla.redocly.app/es/api/catalog/common-merchant/get-projects.md): Obtiene la lista de proyectos del comerciante.


  AvisoEsta llamada API no contiene el parámetro de ruta project_id, para que no tenga que utilizar la clave de API que sea válida en todos los proyectos de la empresa para establecer la autorización.

## Catálogo

Esta API permite obtener cualquier tipo de artículo vendible o artículo específico.

### Obtener lista de artículos vendibles

 - [GET /v2/project/{project_id}/items](https://xsolla.redocly.app/es/api/catalog/common-catalog/get-sellable-items.md): Obtiene una lista de artículos vendibles para crear un catálogo.


  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 de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

### Obtener artículo vendible por ID

 - [GET /v2/project/{project_id}/items/id/{item_id}](https://xsolla.redocly.app/es/api/catalog/common-catalog/get-sellable-item-by-id.md): Obtiene un artículo vendible por su ID.


  Nota:
    Esta llamada de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

### Obtener artículo vendible por SKU

 - [GET /v2/project/{project_id}/items/sku/{sku}](https://xsolla.redocly.app/es/api/catalog/common-catalog/get-sellable-item-by-sku.md): Obtiene un artículo vendible por SKU para crear un catálogo.


  Nota:
    Esta llamada de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

### Obtener lista de artículos vendibles por grupo especificado

 - [GET /v2/project/{project_id}/items/group/{external_id}](https://xsolla.redocly.app/es/api/catalog/common-catalog/get-sellable-items-group.md): Obtiene una lista de artículos vendibles del grupo especificado para crear un catálogo.


  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 de API devuelve datos genéricos del catálogo de artículos cuando se utiliza sin
    autorización. Usa la autorización para recuperar
    datos personalizados
    del usuario, como límites y promociones asociadas con el artículo.
    Para hacer esto, transmita el JWT del usuario en el encabezado Authorization.
    Para obtener más información sobre el JWT del usuario, consulte el bloque Security
    para esta llamada.

## Regiones comunes

Las restricciones de venta regionales le permiten gestionar la disponibilidad de los artículos en países concretos o grupos de países. Por ejemplo, puede vender un videojuego únicamente en algunos países por restricciones de licencia.

Las restricciones se configuran mediante regiones. Cada región agrupa uno o varios países bajo un único identificador `region_id`. Puede vincular un artículo a una o varias regiones.

La disponibilidad de los artículos se determina de la siguiente forma:

* Si no se especifican regiones para un artículo, este está disponible para su compra en todos los países. * Si se especifican regiones para un artículo y el país del usuario está incluido en alguna de ellas, el artículo está disponible para este usuario. * Si se especifican regiones para un artículo y el país del usuario no está incluido en ninguna de ellas, el artículo no está disponible para este usuario.

El país del usuario se transmite en el parámetro `country` al solicitar el catálogo mediante llamadas API desde la subsección **Catalog**. Si no se transmite dicho parámetro, el país se determina en función de la dirección IP del usuario.

El país del usuario se coteja con las regiones del artículo en dos ocasiones: al solicitar el catálogo y al crear un pedido. Los artículos no disponibles no se incluyen en la respuesta del catálogo y no se creará ningún pedido que contenga dichos artículos.

Utilice las llamadas API del grupo **Common regions** para crear, actualizar y eliminar regiones.

Proceso de configuración de las restricciones de ventas regionales:

1. Cree una región mediante la llamada API [Crear región](https://developers.xsolla.com/es/api/catalog/common-regions/admin-create-region/), especificando la lista de países. La respuesta devuelve un `region_id` que se necesita en el siguiente paso.
2. Vincule un artículo virtual a la región transmitiendo su `region_id` en la matriz `regions` al [crear](https://developers.xsolla.com/es/api/catalog/virtual-items-currency-admin/admin-create-virtual-item/) o [actualizar](https://developers.xsolla.com/es/api/catalog/virtual-items-currency-admin/admin-update-virtual-item/) el artículo.
3. Muestre el catálogo al usuario mediante llamadas API de la subsección **Catalog**, por ejemplo, la llamada API [Obtener lista de artículos virtuales](https://developers.xsolla.com/es/api/catalog/virtual-items-currency-catalog/get-virtual-items). El país del usuario se determina mediante el parámetro `country` o, si no se proporciona, a partir de la dirección IP del usuario. Los artículos no disponibles en el país del usuario no se incluyen en la respuesta del catálogo.
4. Cuando el usuario proceda a pagar un artículo o la cesta, cree un pedido:
    * Si el artículo se ha añadido a la cesta, mediante la llamada API [Crear pedido con todos los artículos de la cesta](https://developers.xsolla.com/es/api/catalog/payment-client-side/create-order) o [Crear pedido con todos los artículos de la cesta actual](https://developers.xsolla.com/es/api/catalog/payment-client-side/create-order).
    * Para una compra rápida de un único artículo, mediante la llamada API [Crear pedido con un artículo especificado](https://developers.xsolla.com/es/api/catalog/payment-client-side/create-order-with-item), transmitiendo el SKU del artículo.

  La respuesta contiene un token para abrir la interfaz de pago.

<div class="note">
  <b>Nota</b><br><br>
Xsolla comprueba si el país del usuario está incluido en la región especificada para el artículo. Si el país no está incluido en la región del artículo, no se podrá crear el pedido.
</div>

<br>

5. Implemente la apertura de la interfaz de pago para pagar el pedido.

![Regiones comunes](https://cdn.xsolla.net/developers/current/images/api_docs/api-regions.svg)

### Obtener lista de regiones

 - [GET /v2/project/{project_id}/admin/region](https://xsolla.redocly.app/es/api/catalog/common-regions/admin-get-regions.md): Obtiene la lista de regiones.

Puede utilizar una región para gestionar sus restricciones regionales.

### Crear región

 - [POST /v2/project/{project_id}/admin/region](https://xsolla.redocly.app/es/api/catalog/common-regions/admin-create-region.md): Crea una región.

Puede utilizar una región para gestionar sus restricciones regionales.

### Obtener región

 - [GET /v2/project/{project_id}/admin/region/{region_id}](https://xsolla.redocly.app/es/api/catalog/common-regions/admin-get-region.md): Obtiene una región concreta.

Puede utilizar una región para gestionar sus restricciones regionales.

### Actualizar región

 - [PUT /v2/project/{project_id}/admin/region/{region_id}](https://xsolla.redocly.app/es/api/catalog/common-regions/admin-update-region.md): Actualiza una región concreta.

Puede utilizar una región para gestionar sus restricciones regionales.

### Eliminar región

 - [DELETE /v2/project/{project_id}/admin/region/{region_id}](https://xsolla.redocly.app/es/api/catalog/common-regions/admin-delete-region.md): Elimina una región concreta.

## Webhooks

### Actualizar la versión del webhook

 - [PUT /v2/project/{project_id}/admin/webhook/version](https://xsolla.redocly.app/es/api/catalog/common-webhooks/update-webhook-version.md): Actualiza la versión del webhook del proyecto. En la versión 2, se incluyen parámetros adicionales en la matriz items.

Para obtener más información sobre los webhooks, consulte el documento Establecer el seguimiento del estado del pedido.

## Admin

### Obtener lista de atributos (admin)

 - [GET /v2/project/{project_id}/admin/attribute](https://xsolla.redocly.app/es/api/catalog/attribute-admin/admin-get-attribute-list.md): Obtiene la lista de atributos de un proyecto para su administración.

### Crear atributo

 - [POST /v2/project/{project_id}/admin/attribute](https://xsolla.redocly.app/es/api/catalog/attribute-admin/admin-create-attribute.md): Crea un atributo.

### Actualizar atributo

 - [PUT /v2/project/{project_id}/admin/attribute/{external_id}](https://xsolla.redocly.app/es/api/catalog/attribute-admin/admin-update-attribute.md): Actualiza un atributo.

### Obtener atributo especificado

 - [GET /v2/project/{project_id}/admin/attribute/{external_id}](https://xsolla.redocly.app/es/api/catalog/attribute-admin/admin-get-attribute.md): Obtiene un atributo especificado.

### Eliminar atributo

 - [DELETE /v2/project/{project_id}/admin/attribute/{external_id}](https://xsolla.redocly.app/es/api/catalog/attribute-admin/delete-attribute.md): Elimina un atributo.

AvisoSi elimina un atributo de artículo, se perderán todos sus datos y conexiones con los artículos.

### Crear valor de atributo

 - [POST /v2/project/{project_id}/admin/attribute/{external_id}/value](https://xsolla.redocly.app/es/api/catalog/attribute-admin/admin-create-attribute-value.md): Crea un valor de atributo.

AtenciónTodos los proyectos tienen limitación del número de valores de atributo. El valor por defecto y máximo es 20 valores por atributo.

### Borrar todos los valores del atributo

 - [DELETE /v2/project/{project_id}/admin/attribute/{external_id}/value](https://xsolla.redocly.app/es/api/catalog/attribute-admin/admin-delete-all-attribute-value.md): Elimina todos los valores del atributo.

AvisoSi elimina el valor de un atributo, se perderán todas las conexiones entre el atributo y los artículos. Para cambiar el valor de atributo de un artículo, utilice la llamada API Actualizar valor de atributo en vez de eliminar el valor y crear uno nuevo.

### Actualizar valor de atributo

 - [PUT /v2/project/{project_id}/admin/attribute/{external_id}/value/{value_external_id}](https://xsolla.redocly.app/es/api/catalog/attribute-admin/admin-update-attribute-value.md): Actualiza los valores de un atributo.

### Eliminar valor de atributo

 - [DELETE /v2/project/{project_id}/admin/attribute/{external_id}/value/{value_external_id}](https://xsolla.redocly.app/es/api/catalog/attribute-admin/admin-delete-attribute-value.md): Elimina un valor de atributo.

AvisoSi elimina el valor de un atributo, se perderán todas las conexiones entre el atributo y los artículos. Para cambiar el valor de atributo de un artículo, utilice la llamada API Actualizar valor de atributo en vez de eliminar el valor y crear uno nuevo.

## Admin

### Obtener lista de grupos de artículos

 - [GET /v2/project/{project_id}/admin/items/groups](https://xsolla.redocly.app/es/api/catalog/item-groups-admin/admin-get-item-group-list.md): Recupera la lista completa de grupos de artículos dentro de un proyecto sin paginación. Para fines administrativos.

Nota:No utilice este punto final para crear un catálogo de tienda. Use, en su lugar, el punto final del lado del cliente Obtener lista de grupos de artículos.

### Crear grupo de artículos

 - [POST /v2/project/{project_id}/admin/items/groups](https://xsolla.redocly.app/es/api/catalog/item-groups-admin/admin-create-item-group.md): Crea un grupo de artículos dentro de un proyecto.
Para recuperar grupos de artículos para crear un catálogo, utilice el punto final del lado del cliente Obtener lista de grupos de artículos.

### Obtener grupo de artículos por ID externo

 - [GET /v2/project/{project_id}/admin/items/groups/{external_id}](https://xsolla.redocly.app/es/api/catalog/item-groups-admin/admin-get-item-group.md): Recupera un grupo de artículos por su ID externo para fines administrativos.

Nota:No utilice este punto final para crear un catálogo de tienda. Use, en su lugar, el punto final del lado del cliente Obtener lista de grupos de artículos.

### Actualizar grupo de artículos

 - [PUT /v2/project/{project_id}/admin/items/groups/{external_id}](https://xsolla.redocly.app/es/api/catalog/item-groups-admin/admin-update-item-group.md): Actualiza un grupo de artículos por su ID externo.

### Eliminar grupo de artículos

 - [DELETE /v2/project/{project_id}/admin/items/groups/{external_id}](https://xsolla.redocly.app/es/api/catalog/item-groups-admin/admin-delete-item-group.md): Elimina un grupo de artículos por su ID externo.

### Obtener lista de grupos de artículos filtrada por tipo de artículo

 - [GET /v2/project/{project_id}/admin/items/{item_type}/groups](https://xsolla.redocly.app/es/api/catalog/item-groups-admin/admin-get-item-group-list-by-item-type.md): Recupera la lista de grupos de artículos filtrada por tipo de artículo. Solo se tienen en cuenta para el grupo los artículos del tipo especificado. Esta operación es similar al punto final Obtener lista de grupos de artículos, pero con un filtrado adicional de los artículos por tipo a la hora de contabilizarlos.

### Obtener grupo de artículos por ID externo filtrado por tipo de artículo

 - [GET /v2/project/{project_id}/admin/items/{item_type}/groups/{external_id}](https://xsolla.redocly.app/es/api/catalog/item-groups-admin/admin-get-item-group-by-item-type.md): Recupera un grupo de artículos por ID externo. Solo se tienen en cuenta para el grupo los artículos del tipo especificado. Esta operación es similar al punto final Obtener grupo de artículos por ID externo, pero con un filtrado adicional de los artículos por tipo a la hora de contabilizarlos.

### Reordenar grupos de artículos

 - [PUT /v2/project/{project_id}/admin/group/order](https://xsolla.redocly.app/es/api/catalog/item-groups-admin/admin-reorder-item-groups.md): Establece el orden de visualización para grupos de artículos dentro de un proyecto. Transmita una matriz de grupos con sus nuevos valores de orden.

### Reordenar artículos dentro de un grupo (por ID externo)

 - [PUT /v2/project/{project_id}/admin/group/{external_id}/order/item](https://xsolla.redocly.app/es/api/catalog/item-groups-admin/admin-reorder-items-in-group.md): Establece el orden de visualización de los artículos dentro de un grupo identificado por su ID externo. Transmita una matriz de artículos con sus nuevos valores de orden.

### Reordenar artículos dentro de un grupo (por ID)

 - [PUT /v2/project/{project_id}/admin/group/id/{id}/order/item](https://xsolla.redocly.app/es/api/catalog/item-groups-admin/admin-reorder-items-in-group-by-id.md): Establece el orden de visualización de los artículos dentro de un grupo identificado por su ID numérico interno. Transmita una matriz de artículos con sus nuevos valores de orden.

## Catálogo

### Obtener lista de grupos de artículos

 - [GET /v2/project/{project_id}/items/groups](https://xsolla.redocly.app/es/api/catalog/item-groups-catalog/get-item-groups.md): Recupera una lista de grupos de artículos para crear un catálogo sin paginación.

Nota:El uso de las llamadas API del catálogo de artículos está disponible sin autorización, pero para obtener un catálogo personalizado debe transmitir el JWT del usuario en el encabezado Authorization.

