{"templateId":"openapi_docs","sharedDataIds":{"openAPIDocsStore":"oas-@l10n/es/api/catalog/index.yaml","sidebar":"sidebar-@l10n/es/catalog-en.sidebars.yaml"},"props":{"definitionId":"@l10n/es/api/catalog/index.yaml","dynamicMarkdocComponents":[],"baseSlug":"/es/api/catalog","seo":{"title":"API de catálogo","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"itemId":"","disableAutoScroll":true,"metadata":{"type":"openapi","title":"API de catálogo","description":"# Descripción general\n\n- **Versión:** 2.0.0\n- **Servidores:** `https://store.xsolla.com/api`\n- [Contacte con nosotros por correo electrónico](mailto:integration@xsolla.com)\n- **URL de contacto:** https://xsolla.com/\n- **Versión TLS requerida:** 1.2\n\nLa 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.\n\nLa API le permite gestionar las siguientes entidades de catálogo:\n\n* **Artículos virtuales**: artículos de juego, como armas, apariencias o potenciadores.\n* **Moneda virtual**: dinero virtual que se utiliza para comprar productos virtuales.\n* **Paquetes de moneda virtual**: lotes predefinidos de moneda virtual.\n* **Lotes**: paquetes combinados de artículos virtuales, moneda o claves de juego que se venden como un único SKU.\n* **Claves de juego**: claves para juegos y DLC distribuidos a través de plataformas como Steam u otros proveedores de DRM.\n* **Grupos**: agrupaciones lógicas para organizar y clasificar artículos dentro del catálogo.\n\n## Llamadas API\n\nLa API se divide en los siguientes grupos:\n\n* **<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.\n* **<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.\n\n# Autenticación\n\nLas 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.\n\n## Autenticación mediante el JWT del usuario\n\nLa 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).\n\nEl 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.\n\nTambién puede utilizar un [token para abrir la interfaz de pago](/es/api/pay-station/token/create-token).\n\n## Autenticación HTTP básica\n\nLa autenticación HTTP básica se utiliza para interacciones de servidor a servidor, cuando una llamada API se envía directamente desde tu 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).\n\n<div class=\"note\"><b>Nota:</b><br><br>La clave de API es confidencial y no debe almacenarse ni usarse en aplicaciones cliente.</div>\n\nCon la autenticación básica del lado del servidor, todas las solicitudes de API deben incluir el siguiente encabezado:\n\n- 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\n- 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\n\nPuede encontrar los valores de parámetro en [Cuenta del editor](https://publisher.xsolla.com/):\n\n- Se muestra `merchant_id`:\n  - En **Configuración de la empresa > Empresa**.\n  - 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>`.\n- Se muestra `project_id`:\n  - Junto al nombre del proyecto en Cuenta del editor.\n  - 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>`.\n- `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:\n  - [Configuración de la empresa > Claves de API](https://publisher.xsolla.com/0/settings/api_key)\n  - [Configuración del proyecto > Clave de API](https://publisher.xsolla.com/0/projects/0/edit/api_key)\n\n<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>\n\nPara 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).\n\n## Autenticación con compatibilidad con el acceso de invitado\n\nEl esquema de autenticación `AuthForCart` se utiliza para las compras con cesta y admite dos modos:\n\n1. **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.\nComo alternativa, puede utilizar un [token para abrir la interfaz de pago](/es/api/pay-station/token/create-token).\n\n2. **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:\n   - `x-unauthorized-id` con un ID de solicitud\n   - `x-user` con la dirección de correo electrónico del usuario codificada en Base64\n\n## Enlaces útiles\n\n- [Llamadas API por modelo de interacción](https://developers.xsolla.com/es/api/catalog/)\n- [Tipos de puntos finales](https://developers.xsolla.com/es/api/catalog/)\n- [Gestión de errores](https://developers.xsolla.com/es/api/catalog/)\n- [Claves de API](https://developers.xsolla.com/es/api/catalog/)\n\n# Estructura de la entidad principal\n\nLos 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.\n\n<div class=\"note\"><b>Nota:</b><br><br>Algunas llamadas pueden incluir campos adicionales, pero no cambian la estructura básica.</div>\n\n**Identificación**\n\n- `merchant_id` — ID de la empresa en [Cuenta del editor](https://publisher.xsolla.com/)\n- `project_id` — ID del proyecto en Cuenta del editor\n- `sku` — SKU del artículo, único dentro del proyecto\n\n**Visualización en la tienda**\n\n- `name` — nombre del artículo\n- `description` — descripción del artículo\n- `image_url` — URL de la imagen\n- `is_enabled` — disponibilidad del artículo\n- `is_show_in_store` — si el artículo se muestra o no en el catálogo\n\nPara 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/).\n\n**Organización**\n\n- `type` — tipo de artículo, p. ej., un artículo virtual (`virtual_item`) o lote (`bundle`)\n- `groups` — grupos a los que pertenece el artículo\n- `order` — orden de visualización en el catálogo\n\n**Condiciones de venta**\n\n- `prices` — precios en moneda real o virtual\n- `limits` — límites de compra\n- `periods` — periodos de disponibilidad\n- `regions` — restricciones regionales\n\n**Ejemplo de estructura de entidad principal:**\n\n```json\n{\n  \"attributes\": [],\n  \"bundle_type\": \"virtual_currency_package\",\n  \"content\": [\n    {\n      \"description\": {\n        \"en\": \"Main in-game currency\"\n      },\n      \"image_url\": \"https://.../image.png\",\n      \"name\": {\n        \"en\": \"Crystals\",\n        \"de\": \"Kristalle\"\n      },\n      \"quantity\": 500,\n      \"sku\": \"com.xsolla.crystal_2\",\n      \"type\": \"virtual_currency\"\n    }\n  ],\n  \"description\": {\n    \"en\": \"Crystals x500\"\n  },\n  \"groups\": [],\n  \"image_url\": \"https://.../image.png\",\n  \"is_enabled\": true,\n  \"is_free\": false,\n  \"is_show_in_store\": true,\n  \"limits\": {\n    \"per_item\": null,\n    \"per_user\": null,\n    \"recurrent_schedule\": null\n  },\n  \"long_description\": null,\n  \"media_list\": [],\n  \"name\": {\n    \"en\": \"Medium crystal pack\"\n  },\n  \"order\": 1,\n  \"periods\": [\n    {\n      \"date_from\": null,\n      \"date_until\": \"2020-08-11T20:00:00+03:00\"\n    }\n  ],\n  \"prices\": [\n    {\n      \"amount\": 20,\n      \"country_iso\": \"US\",\n      \"currency\": \"USD\",\n      \"is_default\": true,\n      \"is_enabled\": true\n    }\n  ],\n  \"regions\": [],\n  \"sku\": \"com.xsolla.crystal_pack_2\",\n  \"type\": \"bundle\",\n  \"vc_prices\": []\n}\n```\n\n# Flujo de compra básico\n\nLa 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/section/authentication).\n\nEl siguiente ejemplo muestra un flujo básico para establecer y operar una tienda, desde la creación de artículos hasta la compra.\n\n## Crear artículos y grupos (Admin)\n\nCree un catálogo de artículos para su tienda, como artículos virtuales, lotes o moneda virtual.\n\nEjemplos de llamadas API:\n- [Crear artículo virtual](/es/api/catalog/virtual-items-currency-admin/admin-create-virtual-item)\n- [Crear lote](/es/api/catalog/bundles-admin/admin-create-bundle)\n- [Crear moneda virtual](/es/api/catalog/virtual-items-currency-admin/admin-create-virtual-currency)\n\n## Establecer promociones, cadenas y límites (Admin)\n\nConfigure herramientas de adquisición de usuarios y monetización, como descuentos, bonificaciones, recompensas diarias o cadenas de ofertas.\n\nEjemplos de llamadas API:\n- [Crear promoción de bonificación](/es/api/liveops/promotions-bonuses/create-bonus-promotion)\n- [Crear recompensa diaria](/es/api/liveops/daily-chain-admin/admin-create-daily-chain)\n- [Crear promoción de oferta única del catálogo](/es/api/liveops/promotions-unique-catalog-offers/admin-create-unique-catalog-offer)\n\n## Obtener información del artículo (cliente)\n\nConfigure la visualización de artículos en su aplicación.\n\n<div class=\"notice\">\n  <b>Aviso:</b><br><br>\n    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.\n</div>\n\n<br>\n\nEjemplos de llamadas a la API:\n- [Obtener lista de artículos virtuales](/es/api/catalog/virtual-items-currency-catalog/get-virtual-items)\n- [Obtener lista de grupos de artículos](/es/api/catalog/virtual-items-currency-catalog/get-item-groups)\n- [Obtener lista de lotes](/es/api/catalog/bundles-catalog/get-bundle-list)\n- [Obtener lista de artículos vendibles](/es/api/catalog/common-catalog/get-sellable-items)\n\n<div class=\"note\">\n  <b>Nota:</b><br><br>\n    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.\n</div>\n\n## Vender artículos\n\nPuede vender artículos utilizando los siguientes métodos:\n- Compra rápida: venda un código de artículo (SKU) varias veces.\n- Compra con cesta: el usuario añade artículos a la cesta, elimina artículos y actualiza cantidades dentro de un solo pedido.\n\nSi 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.\n\nPara 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>.\n\n### Compra rápida\n\nUtilice 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.\n\n<div class=\"note\">\n  <b>Nota:</b><br><br>\n    La información de descuento está disponible para el usuario únicamente en la interfaz de pago. Los códigos promocionales no son compatibles.\n</div>\n\n### Compra con cesta\n\nLa configuración y compra de la cesta se puede realizar en el cliente o en el lado del servidor.\n\n**Configurar y comprar una cesta en el cliente**\n\nImplemente 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.\n\nImplemente la siguiente lógica de cesta:\n1. 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).\n2. Actualice el contenido de la cesta basándose en las acciones de los usuarios:\n   - 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/).\n   - 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/).\n\n<div class=\"note\">\n  <b>Nota:</b><br><br>\n    Para obtener el estado actual de la cesta, utilice la llamada API Obtener la cesta del usuario actual.\n</div>\n\n3. 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>.\n\n**Configurar y comprar una cesta en el servidor**\n\nEsta 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.\n\nImplemente la siguiente lógica de cesta:\n1. 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).\n2. 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>.\n\n## Abrir interfaz de pago\n\nUtilice 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).\n\n| Acción                          | Punto final                                                                  |\n|:--------------------------------|:--------------------------------------------------------------------------|\n| Abrir en entorno de producción. | <code>https://secure.xsolla.com/paystation4/?token={token}</code>         |\n| Abrir en modo sandbox.          | <code>https://sandbox-secure.xsolla.com/paystation4/?token={token}</code> |\n\n<div class=\"note\">\n  <b>Nota:</b><br><br>\n    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>.\n\n    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).\n\n    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.\n</div>\n\nPara 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.\n\nPosibles estados del pedido:\n- `new`: pedido creado\n- `paid`: pago recibido\n- `done`: artículo entregado\n- `canceled`: pedido cancelado\n- `expired`: pedido expirado\n\nHaga un seguimiento del estado del pedido usando uno de los siguientes métodos:\n- [webhooks configurados en su servidor](/es/virtual-goods/own-ui/server-side-token-generation/set-up-order-tracking/#payments_integration_order_tracking)\n- [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)\n- [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)\n\n## Enlaces útiles\n\n- Autenticación\n- [Llamadas API por modelo de interacción](/es/api/catalog/section/authentication)\n- [Pruebas de pago](/es/dev-resources/testing/general-info/#general_overview)\n- [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)\n- [Webhooks](/es/webhooks/overview)\n- [Límites de frecuencia](/es/api/login/rate-limits)\n- [Gestión de errores](/es/api/getting-started/#api_errors_handling)\n- [Claves de API](/es/api/getting-started/#api_keys_overview)\n\n# Paginación\n\nLas 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.\n\nUtilice los siguientes artículos para controlar el número de artículos devueltos:\n\n- `limit` — número de artículos por página\n- `offset` — índice del primer artículo de la página (la numeración comienza desde 0)\n- `has_more` — indica si hay otra página disponible\n- `total_items_count` — número total de artículos\n\nEjemplo de solicitud:\n\n```\nGET /items?limit=20&offset=40\n```\n\nEjemplo de respuesta:\n\n```json\n{\n  \"items\": [...],\n  \"has_more\": true,\n  \"total_items_count\": 135\n}\n```\n\nSe recomienda enviar solicitudes posteriores hasta que la respuesta devuelva `has_more = false`.\n\n# Formato de fecha y hora\n\nLas fechas y valores de tiempo se transmiten en el formato [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).\n\nSe admiten los siguientes:\n\n- Desfase UTC (tiempo universal coordinado)\n- Valor `null` cuando no hay restricción de tiempo para mostrar un artículo\n- [Marca de tiempo Unix](https://www.unixtimestamp.com/) (en segundos) utilizada en algunos campos\n\nFormato: `AAAA-MM-DDTHH:MM:SS±HH:MM`\n\nEjemplo: `2026-03-16T10:00:00+03:00`\n\n# Localización\n\nXsolla 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/).\n\n**Campos admitidos**\n\nLa localización puede especificarse para los siguientes parámetros:\n\n- `name`\n- `description`\n- `long_description`\n\n**Formato de configuración regional**\n\nLa clave de configuración regional puede especificarse en uno de los siguientes formatos:\n\n- Código de idioma de dos letras: `en`, `ru`\n- Código de idioma de cinco letras: `en-US`, `ru-RU`, `de-DE`\n\n**Ejemplos**\n\nEjemplo con un código de idioma de dos letras:\n\n```json\n{\n  \"name\": {\n    \"en\": \"Starter Pack\",\n    \"ru\": \"Стартовый набор\"\n  }\n}\n```\n\nEjemplo con un código de idioma de cinco letras:\n\n```json\n{\n  \"description\": {\n    \"en-US\": \"Premium bundle\",\n    \"de-DE\": \"Premium-Paket\"\n  }\n}\n```\n\n# Formato de respuesta de error\n\nSi 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/).\n\n**Ejemplo de respuesta:**\n\n```json\n{\n  \"errorCode\": 1102,\n  \"errorMessage\": \"Validation error\",\n  \"statusCode\": 422,\n  \"transactionId\": \"c9e1a...\"\n}\n```\n\n- `errorCode` — código de error.\n- `errorMessage` — descripción breve del error.\n- `statusCode` — estado de la respuesta HTTP.\n- `transactionId` — ID de la solicitud. Se devuelve solo en algunos casos.\n- `errorMessageExtended` — detalles adicionales del error, como los parámetros de la solicitud. Se devuelve solo en algunos casos.\n\n**Ejemplo de respuesta ampliada:**\n\n```json\n{\n  \"errorCode\": 7001,\n  \"errorMessage\": \"Chain not found\",\n  \"errorMessageExtended\": {\n    \"chain_id\": \"test_chain_id\",\n    \"project_id\": \"test_project_id\",\n    \"step_number\": 2\n  },\n  \"statusCode\": 404\n}\n```\n\n**Códigos de estado HTTP habituales**\n\n- `400` — solicitud no válida\n- `401` — error de autenticación\n- `403` — permisos insuficientes\n- `404` — recurso no encontrado\n- `422` — error de validación\n- `429` — límite de frecuencia excedido\n\n**Recomendaciones**\n\n- Gestione el estado HTTP y el cuerpo de la respuesta juntos.\n- Utilice `errorCode` para procesar errores relacionados con la lógica de la aplicación.\n- Utilice `transactionId` para identificar solicitudes más rápidamente al analizar errores."},"compilationErrors":[],"markdown":{"partials":{},"variables":{"rbac":{"teams":["anonymous"]},"user":{},"remoteAddr":{"hostname":"xsolla.redocly.app","port":4000,"ipAddress":"216.73.216.4"},"lang":"es","env":{"PUBLIC_REDOCLY_BRANCH_NAME":"realm"}}},"pagePropGetterError":{"message":"","name":""}},"slug":"/es/api/catalog","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}