Saltar al contenido

Overview

  • Version: 2.0.0
  • Servers: https://store.xsolla.com/api
  • Contact Us by Email
  • Contact URL: https://xsolla.com/
  • Required TLS version: 1.2

Shop Builder API provides a third-party solution for implementing the server side for your store interface. Use the endpoints to manage in-game items, in-game currencies, cart, player inventory, promotions, game library, etc.

Descargar descripción de OpenAPI
Idiomas
Servidores
Mock server
https://xsolla.redocly.app/_mock/es/api/shop-builder/
https://store.xsolla.com/api/
Operaciones

Catálogo personalizado

Esta API permite especificar reglas para los atributos de usuario. Si el usuario cumple todas las condiciones de una regla específica, se mostrarán los elementos personalizados.

Para promociones personalizadas, consulte la sección Promotions.

Para transmitir atributos antes de una compra, puede utilizar Xsolla Login API o transmitirlos a la propiedad user.attributes mientras se genera el token utilizando Pay Station API.

Operaciones
Operaciones
Operaciones
Operaciones
Operaciones
Operaciones
Operaciones
Operaciones
Operaciones
Operaciones
Operaciones
Operaciones

Catálogo

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

Operaciones
Operaciones
Operaciones
Operaciones
Operaciones
Operaciones

Cupones

Esta API le permite gestionar cupones.

Operaciones

Códigos promocionales

Esta API permite gestionar códigos promocionales.

Operaciones

Ofertas únicas por catálogo

Esta API le permite gestionar ofertas de catálogo únicas.

Operaciones

Descuentos

Esta API le permite gestionar promociones de descuento.

Operaciones

Bonificaciones

Esta API permite gestionar promociones de bonificaciones.

Operaciones
Operaciones
Operaciones
Operaciones
Operaciones
Operaciones

Establecer puntos de valor para los artículosServer-sideAdmin

Solicitud

Asigna puntos de valor a uno o varios artículos por un SKU. Los usuarios reciben puntos de valor después de comprar estos artículos.

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

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

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

Seguridad
basicAuth
Ruta
project_idintegerrequerido

ID del proyecto. Encontrará este parámetro en su Cuenta del editor junto al nombre del proyecto.

Ejemplo: 44056
value_point_skustringrequerido

SKU del punto de valor.

Ejemplo: value_point_3
Cuerpoapplication/jsonArray [
amountintegerrequerido

Cantidad de puntos de valor.

skustring(sku)[ 1 .. 255 ] characters^[a-zA-Z0-9_\-–.]*$requerido

ID único del artículo. El SKU solo puede contener caracteres alfanuméricos latinos en minúsculas y mayúsculas, puntos, guiones y guiones bajos.

Ejemplo: "booster_mega_1"
]
curl -i -X PUT \
  -u <username>:<password> \
  https://xsolla.redocly.app/_mock/es/api/shop-builder/v2/project/44056/admin/items/value_point_3/value_points/rewards \
  -H 'Content-Type: application/json' \
  -d '[
    {
      "amount": 100,
      "sku": "com.xsolla.booster_1"
    },
    {
      "amount": 200,
      "sku": "com.xsolla.booster_mega"
    }
  ]'

Respuestas

Se actualizaron correctamente las recompensas de puntos de valor para los artículos.

Cuerpo
Respuesta
Sin contenido

Obtener lista de cadenas de recompensasServer-sideAdmin

Solicitud

Obtiene la lista de cadenas de recompensas.

Atención

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

ID del proyecto. Encontrará este parámetro en su Cuenta del editor junto al nombre del proyecto.

Ejemplo: 44056
Consulta
limitinteger>= 1

Límite para el número de elementos presentes en la página.

Ejemplo: limit=50
offsetinteger>= 0

Número del elemento a partir del cual se genera la lista (el conteo empieza desde el 0).

Ejemplo: offset=0
enabledinteger

Filtrar elementos por la marca is_enabled.

curl -i -X GET \
  -u <username>:<password> \
  'https://xsolla.redocly.app/_mock/es/api/shop-builder/v3/project/44056/admin/reward_chain?limit=50&offset=0&enabled=0'

Respuestas

La lista de cadenas de recompensas se recibió correctamente.

Cuerpoapplication/json
has_moreboolean(Pagination_has-more)

Se utiliza como indicador de que hay más páginas.

Ejemplo: true
itemsArray of admin-get-reward-chain-item-basic-model (object) or admin-get-reward-chain-item-clan-basic-model (object)
Respuesta
application/json
{ "has_more": true, "items": [ {}, {} ] }

Crear una cadena de recompensasServer-sideAdmin

Solicitud

Crea una cadena de recompensas.

Seguridad
basicAuth
Ruta
project_idintegerrequerido

ID del proyecto. Encontrará este parámetro en su Cuenta del editor junto al nombre del proyecto.

Ejemplo: 44056
Cuerpoapplication/json
One of:

Una cadena de recompensas.

attribute_conditionsArray of tipo = string (object) or tipo = number (object) or tipo = date (object)(chain_user-attribute_conditions_model-post)[ 1 .. 100 ] items

Condiciones para validar los atributos de usuario. Determina la disponibilidad de la cadena en función de si los atributos de usuario cumplen todas las condiciones especificadas.

description(two-letter (object or null)) or (cinco letras (object or null))(description-localization-object)

Objeto con traducciones para la descripción del artículo. Acepta valores en uno de dos formatos: códigos de idioma de dos letras en minúscula (p. ej., en) o códigos de configuración regional de cinco caracteres (p. ej., en-US). Aunque ambos formatos se aceptan como entradas, las respuestas devuelven códigos de idioma de dos letras en minúscula. Cuando se facilitan ambas opciones para el mismo idioma (p. ej. en y en-US), se almacena el último valor proporcionado. Puede consultar la lista completa de idiomas admitidos en la documentación.

One of:

Objeto con traducciones para la descripción del artículo. Acepta valores en uno de dos formatos: códigos de idioma de dos letras en minúscula (p. ej., en) o códigos de configuración regional de cinco caracteres (p. ej., en-US). Aunque ambos formatos se aceptan como entradas, las respuestas devuelven códigos de idioma de dos letras en minúscula. Cuando se facilitan ambas opciones para el mismo idioma (p. ej. en y en-US), se almacena el último valor proporcionado. Puede consultar la lista completa de idiomas admitidos en la documentación.

image_urlstring or null(image_url)

URL de la imagen.

Ejemplo: "https://image.example.com"
is_always_visibleboolean(chain_is_always_visible)

Si todos los usuarios pueden ver la cadena:

  • Si es true, la cadena aparece siempre, independientemente del estado de autenticación o los atributos del usuario.
  • Si es false, la cadena aparece solo si no se encuentra ninguna cadena personalizada. Por ejemplo, si el usuario no está autenticado o sus atributos no coinciden con ninguna cadena personalizada.

Solo se aplica en el contexto de cadenas personalizadas y se utiliza si no se transmite la matriz attribute_conditions.

Predeterminado true
Ejemplo: true
is_enabledboolean(is_enabled)requerido
Ejemplo: true
is_reset_after_endboolean(is_reset_after_end)

Si se reinicia la cadena de recompensas (puntos de valor y progreso de todos los usuarios) después de su fecha de finalización:

  • Si es true, la cadena de recompensas se reiniciará después de su fecha de finalización.
  • Si es false, la cadena de recompensas no se reiniciará después de su fecha de finalización.

Aviso

No puede ser true si:
  • se establece un periodo de reinicio en recurrent_schedule.
  • El valor null se transmite en periods.date_until.
Predeterminado false
Ejemplo: false
long_description(two-letter (object or null)) or (cinco letras (object or null))(long-description-localization-object)

Objeto con traducciones para la descripción larga del artículo. Acepta valores en uno de estos dos formatos: códigos de idioma de dos letras en minúscula (p. ej., en) o códigos de configuración regional de cinco caracteres (p. ej., en-US). Aunque ambos formatos se aceptan como entradas, las respuestas devuelven códigos de idioma de dos letras en minúscula. Cuando se facilitan ambas opciones para el mismo idioma (p. ej. en y en-US), se almacena el último valor proporcionado. Puede consultar la lista completa de idiomas admitidos en la documentación.

Any of:

Objeto con traducciones para la descripción larga del artículo. Acepta valores en uno de estos dos formatos: códigos de idioma de dos letras en minúscula (p. ej., en) o códigos de configuración regional de cinco caracteres (p. ej., en-US). Aunque ambos formatos se aceptan como entradas, las respuestas devuelven códigos de idioma de dos letras en minúscula. Cuando se facilitan ambas opciones para el mismo idioma (p. ej. en y en-US), se almacena el último valor proporcionado. Puede consultar la lista completa de idiomas admitidos en la documentación.

name(two-letter (object or null)) or (cinco letras (object or null))(name-localization-object)requerido

Objeto con traducciones para la descripción del artículo. Acepta valores en uno de estos dos formatos: códigos de idioma de dos letras en minúscula (p. ej., en) o códigos de idioma de cinco caracteres (p. ej., en-US). Aunque ambos formatos se aceptan como entradas, las respuestas devuelven códigos de idioma de dos letras en minúscula. Cuando se facilitan ambas opciones para el mismo idioma (p. ej. en y en-US), se almacena el último valor proporcionado. Puede consultar la lista completa de idiomas admitidos en la documentación.

One of:

Objeto con traducciones para la descripción del artículo. Acepta valores en uno de estos dos formatos: códigos de idioma de dos letras en minúscula (p. ej., en) o códigos de idioma de cinco caracteres (p. ej., en-US). Aunque ambos formatos se aceptan como entradas, las respuestas devuelven códigos de idioma de dos letras en minúscula. Cuando se facilitan ambas opciones para el mismo idioma (p. ej. en y en-US), se almacena el último valor proporcionado. Puede consultar la lista completa de idiomas admitidos en la documentación.

name.​arstring or null

Árabe

name.​bgstring or null

Búlgaro

name.​cnstring or null

Chino (simplificado)

name.​csstring or null

Checo

name.​destring or null

Alemán

name.​enstring or null

Inglés

name.​esstring or null

Español (España)

name.​frstring or null

Francés

name.​hestring or null

Hebreo

name.​idstring or null

Indonesio

name.​itstring or null

Italiano

name.​jastring or null

Japonés

name.​kmstring or null

Jemer

name.​kostring or null

Coreano

name.​lostring or null

Lao

name.​mystring or null

Birmano

name.​nestring or null

Nepalí

name.​phstring or null

Filipino

name.​plstring or null

Polaco

name.​ptstring or null

Portugués

name.​rostring or null

Rumano

name.​rustring or null

Ruso

name.​thstring or null

Tailandés

name.​trstring or null

Turco

name.​twstring or null

Chino (tradicional)

name.​vistring or null

Vietnamita

orderinteger(order)

Define el orden de disposición.

Ejemplo: 1
periodsArray of objects(periods)requerido

Periodos de validez de la cadena de recompensas. Si se especifican varios periodos, es necesario tanto date_from como date_until.

periods[].​date_fromstring(date-time)requerido

Fecha de inicio de la cadena de recompensas especificada.

Ejemplo: "2020-08-11T10:00:00+03:00"
periods[].​date_untilstring or null(date-time)

Fecha de finalización de la cadena de recompensas especificada. Solo puede ser null si se especifica un único periodo de validez.

Ejemplo: "2020-08-11T20:00:00+03:00"
recurrent_schedule(interval_type = weekly (object or null)) or (interval_type = monthly (object or null)) or (interval_type = hourly (object or null))(recurrent_schedule_create_update)

Periodo de reinicio recurrente de la cadena de recompensas.

One of:

Tipo semanal de actualización de la cadena de recompensas.

stepsArray of objects(create_reward_step)requerido
steps[].​image_urlstring or null(image_url)

URL de la imagen.

Ejemplo: "https://image.example.com"
steps[].​name(two-letter (object or null)) or (cinco letras (object or null))(name-localization-object)requerido

Objeto con traducciones para la descripción del artículo. Acepta valores en uno de estos dos formatos: códigos de idioma de dos letras en minúscula (p. ej., en) o códigos de idioma de cinco caracteres (p. ej., en-US). Aunque ambos formatos se aceptan como entradas, las respuestas devuelven códigos de idioma de dos letras en minúscula. Cuando se facilitan ambas opciones para el mismo idioma (p. ej. en y en-US), se almacena el último valor proporcionado. Puede consultar la lista completa de idiomas admitidos en la documentación.

One of:

Objeto con traducciones para la descripción del artículo. Acepta valores en uno de estos dos formatos: códigos de idioma de dos letras en minúscula (p. ej., en) o códigos de idioma de cinco caracteres (p. ej., en-US). Aunque ambos formatos se aceptan como entradas, las respuestas devuelven códigos de idioma de dos letras en minúscula. Cuando se facilitan ambas opciones para el mismo idioma (p. ej. en y en-US), se almacena el último valor proporcionado. Puede consultar la lista completa de idiomas admitidos en la documentación.

steps[].​name.​arstring or null

Árabe

steps[].​name.​bgstring or null

Búlgaro

steps[].​name.​cnstring or null

Chino (simplificado)

steps[].​name.​csstring or null

Checo

steps[].​name.​destring or null

Alemán

steps[].​name.​enstring or null

Inglés

steps[].​name.​esstring or null

Español (España)

steps[].​name.​frstring or null

Francés

steps[].​name.​hestring or null

Hebreo

steps[].​name.​idstring or null

Indonesio

steps[].​name.​itstring or null

Italiano

steps[].​name.​jastring or null

Japonés

steps[].​name.​kmstring or null

Jemer

steps[].​name.​kostring or null

Coreano

steps[].​name.​lostring or null

Lao

steps[].​name.​mystring or null

Birmano

steps[].​name.​nestring or null

Nepalí

steps[].​name.​phstring or null

Filipino

steps[].​name.​plstring or null

Polaco

steps[].​name.​ptstring or null

Portugués

steps[].​name.​rostring or null

Rumano

steps[].​name.​rustring or null

Ruso

steps[].​name.​thstring or null

Tailandés

steps[].​name.​trstring or null

Turco

steps[].​name.​twstring or null

Chino (tradicional)

steps[].​name.​vistring or null

Vietnamita

steps[].​priceobject(reward_step_price)requerido
steps[].​price.​amountinteger(step_price_amount)requerido

Precio del paso en puntos de valor.

Ejemplo: 100
steps[].​rewardArray of objectsrequerido
steps[].​reward[].​attribute_conditionsArray of tipo = string (object) or tipo = number (object) or tipo = date (object)(reward-chain-step-reward_user-attribute_conditions_model-post)[ 1 .. 100 ] items

Condiciones para validar los atributos de usuario. Determina la disponibilidad de recompensas para pasos de cadenas de recompensas en función de si los atributos de usuario cumplen todas las condiciones especificadas.

steps[].​reward[].​quantityinteger(reward_item_quantity)requerido

Cantidad del artículo.

Ejemplo: 2
steps[].​reward[].​skustring(sku)[ 1 .. 255 ] characters^[a-zA-Z0-9_\-–.]*$requerido

ID único del artículo. El SKU solo puede contener caracteres alfanuméricos latinos en minúsculas y mayúsculas, puntos, guiones y guiones bajos.

Ejemplo: "booster_mega_1"
value_pointobjectrequerido
value_point.​skustring(sku)[ 1 .. 255 ] characters^[a-zA-Z0-9_\-–.]*$requerido

ID único del artículo. El SKU solo puede contener caracteres alfanuméricos latinos en minúsculas y mayúsculas, puntos, guiones y guiones bajos.

Ejemplo: "booster_mega_1"
curl -i -X POST \
  -u <username>:<password> \
  https://xsolla.redocly.app/_mock/es/api/shop-builder/v3/project/44056/admin/reward_chain \
  -H 'Content-Type: application/json' \
  -d '{
    "clan_type": "guild",
    "description": {
      "en": "Clan reward chain description."
    },
    "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
    "is_enabled": true,
    "long_description": {
      "en": "Clan reward chain long description."
    },
    "name": {
      "en": "Clan reward chain"
    },
    "order": 1,
    "periods": [
      {
        "date_from": "2026-01-01T01:00:00+05:00",
        "date_until": "2026-01-31T23:59:59+05:00"
      },
      {
        "date_from": "2026-02-01T01:00:00+05:00",
        "date_until": "2026-02-28T23:59:59+05:00"
      }
    ],
    "popup_header": {
      "en": "How to unlock rewards"
    },
    "popup_image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
    "popup_instruction": {
      "en": "You must be a clan member to get clan rewards. You join a clan when a clan member invites you to the clan, and you accept the invite. You can also create your own clan."
    },
    "recurrent_schedule": {
      "day_of_week": 1,
      "interval_type": "weekly",
      "time": "01:00:00+08:00"
    },
    "steps": [
      {
        "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
        "name": {
          "en": "First step of the reward chain"
        },
        "price": {
          "amount": 10
        },
        "reward": [
          {
            "quantity": 5,
            "sku": "com.xsolla.item_1"
          },
          {
            "quantity": 1,
            "sku": "com.xsolla.item_2"
          }
        ]
      },
      {
        "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
        "name": {
          "en": "Second step of the reward chain"
        },
        "price": {
          "amount": 15
        },
        "reward": [
          {
            "quantity": 5,
            "sku": "com.xsolla.item_3"
          },
          {
            "quantity": 1,
            "sku": "com.xsolla.item_4"
          }
        ]
      }
    ],
    "value_point": {
      "sku": "com.xsolla.clan_value_point_1"
    }
  }'

Respuestas

La cadena de recompensas se creó correctamente.

Cuerpoapplication/json
reward_chain_idinteger
Ejemplo: 10
Respuesta
application/json
{ "reward_chain_id": 10 }
Operaciones
Operaciones
Operaciones
Operaciones
Operaciones
Operaciones
Operaciones
Operaciones
Operaciones