Saltar para o conteúdo

Visão geral

  • Versão: 2.0.0
  • Servidores: https://store.xsolla.com/api
  • Entre em contato por e-mail
  • URL de Contato: https://xsolla.com/
  • Versão TLS requerida: 1.2

A Catalog API permite que você configure um catálogo de itens de jogo no lado da Xsolla e exibir o catálogo aos usuários na sua loja.

A API permite que você gerencie as seguintes entidades de catálogo:

  • Itens virtuais — itens de jogo tais como armas, visuais e reforços.
  • Moedas virtuais — dinheiro virtual utilizado para comprar bens virtuais.
  • Pacotes de moedas virtuais — conjuntos pré-definidos de moedas virtuais.
  • Conjuntos — pacotes combinados de itens virtuais, moedas ou chaves de jogo vendidas como um único SKU.
  • Chaves de jogo — chaves para jogos e DLCs distribuídos via plataformas como o Steam ou outros provedores de DRM.
  • Grupos — agrupamentos lógicos para organizar e filtrar itens dentro do catálogo.

Chamadas de API

A API divide-se nos seguintes grupos:

  • Admin — chamadas para criar, atualizar, excluir e configurar itens de catálogo e grupos. Autenticada via autenticação de acesso básica com seu comerciante ou credenciais do projeto. Não se destina a uso em vitrines.
  • Catalog — chamadas para recuperar itens e construir vitrines personalizadas para usuários finais. Desenvolvida para gerenciar cenários de carga alta. Suporta a autorização opcional de JWT de usuários para retornar dados personalizados, tais como limites específicos aos usuários e promoções ativas.

Autenticação

Chamadas de API requerem autenticação em nome de um usuário ou de um projeto. O esquema de autenticação utilizado é especificado na seção Segurança na descrição de cada chamada.

Autenticação usando o JWT do usuário

A autenticação JWT do usuário é usada quando uma solicitação é enviada de um navegador, aplicativo móvel ou jogo. Por padrão, o esquema XsollaLoginUserJWT é aplicado. Para detalhes sobre como criar um token, consulte a documentação Xsolla Login API.

O token é passado no cabeçalho Authorization no seguinte formato: Authorization: Bearer <user_JWT>, onde <user_JWT> é o token do usuário. O token identifica o usuário e fornece acesso a dados personalizados.

Alternativamente, você pode usar um token para abrir a interface de pagamento.

Autenticação HTTP básica

A autenticação HTTP básica é usada para interações de servidor para servidor, quando uma chamada de API é enviada diretamente do seu servidor em vez de um navegador ou aplicativo móvel do usuário. A autenticação HTTP básica com uma chave de API normalmente é utilizada.

Nota

A chave API é confidencial e não deve ser armazenada ou usada em aplicativos de usuários finais.

Com a autenticação básica do lado do servidor, todas as solicitações de API devem incluir o seguinte cabeçalho:

  • para basicAuthAuthorization: Basic <your_authorization_basic_key>, onde your_authorization_basic_key é o par project_id:api_key codificado em Base64
  • para basicMerchantAuthAuthorization: Basic <your_authorization_basic_key>, onde your_authorization_basic_key é o par merchant_id:api_key codificado em Base64

Você pode encontrar os valores dos parâmetros em Conta de Distribuidor:

  • merchant_id é exibido:
    • Em Configurações da empresa > Empresa.
    • No URL na barra de endereço do navegador em qualquer página da Conta de Distribuidor. O URL tem o seguinte formato: https://publisher.xsolla.com/<merchant_id>.
  • project_id é exibido:
    • Ao lado do nome do projeto na Conta de Distribuidor.
    • No URL na barra de endereço do navegador ao trabalhar em um projeto na Conta de Distribuidor. O URL tem o seguinte formato: https://publisher.xsolla.com/<merchant_id>/projects/<project_id>.
  • api_key é mostrado na Conta de Distribuidor apenas no momento da criação e deve ser armazenado de forma segura do seu lado. Você pode criar uma chave de API nas seguintes seções:
Aviso

Se uma chamada de API necessária não incluir o parâmetro de caminho project_id, use uma chave de API que seja válida para todos os projetos da empresa para autorização.

Para mais informações sobre como trabalhar com chaves API, consulte as referências de API.

Autenticação com suporte a acesso de convidado

O esquema de autenticação AuthForCart é utilizado para as compras de carrinhos e suporta dois modos:

  1. Autenticação com o JWT do usuário. O token é passado no cabeçalho Authorization no seguinte formato: Authorization: Bearer <user_JWT>, onde <user_JWT> é o token do usuário. O token identifica o usuário e fornece acesso a dados personalizados. Alternativamente, você pode usar um token para abrir a interface de pagamento.

  2. Modo simplificado sem o cabeçalho Authorization. Esse modo é usado apenas para usuários não autorizados e pode ser aplicado apenas para vendas de chaves de jogo. Em vez de um token, a solicitação deve incluir os seguintes cabeçalhos:

    • x-unauthorized-id com um ID de solicitação
    • x-user com o endereço de e-mail do usuário codificado em Base64

Estrutura da entidade principal

Itens de todos os tipos (itens virtuais, pacotes, moeda virtual e chaves) usam uma estrutura de dados semelhante. Compreender a estrutura básica simplifica o trabalho com a API e ajuda a navegar na documentação com mais facilidade.

Nota

Algumas chamadas podem incluir campos adicionais, mas eles não alteram a estrutura básica.

Identificação

  • merchant_id — ID da empresa na Conta de Distribuidor
  • project_id — ID do projeto na Conta de Distribuidor
  • sku — SKU do item, único dentro do projeto

Exibição na loja

  • name — nome do item
  • description — descrição do item
  • image_url — URL da imagem
  • is_enabled — disponibilidade do item
  • is_show_in_store — se o item é exibido no catálogo

Para mais informações sobre como gerenciar a disponibilidade de itens no catálogo, consulte a documentação.

Organização

  • type — tipo de item, por exemplo, um item virtual (virtual_item) ou conjunto (bundle)
  • groups — grupos aos quais o item pertence
  • order — ordem de exibição no catálogo

Condições de venda

  • prices — preços em moeda real ou virtual
  • limits — limites de compra
  • periods — períodos de disponibilidade
  • regions — restrições regionais

Exemplo de estrutura da entidade principal:

{
  "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": []
}

Fluxo básico de compra

A Xsolla API permite implementar a lógica de loja no jogo, incluindo a recuperação do catálogo de itens, gerenciamento do carrinho, criação de pedidos e acompanhamento de seu status. Dependendo do cenário de integração, as chamadas de API são divididas em subseções Admin e Catalog, que usam diferentes esquemas de autenticação.

O exemplo a seguir mostra um fluxo básico para configurar e operar uma loja, desde a criação de itens até a compra.

Criar itens e grupos (Admin)

Crie um catálogo de itens para sua loja, como itens virtuais, pacotes ou moeda virtual.

Exemplos de chamadas de API:

Configurar promoções, cadeias e limites (Admin)

Configure ferramentas de aquisição de usuários e monetização, como descontos, bônus, recompensas diárias ou cadeias de ofertas.

Exemplos de chamadas de API:

Obter informações do item (Cliente)

Configure a exibição do item em sua aplicação.

Aviso

Não use chamadas de API da subseção Admin para construir um catálogo de usuários. Essas chamadas de API têm limites de taxa e não são destinadas para tráfego de usuários.

Exemplos de chamadas de API:

Nota

Por padrão, as chamadas de API do catálogo retornam itens que estão atualmente disponíveis na loja no momento da solicitação. Para recuperar itens que ainda não estão disponíveis ou que não estão mais disponíveis, inclua o parâmetro "show_inactive_time_limited_items": 1 na solicitação do catálogo.

Vender itens

Você pode vender itens usando os seguintes métodos:

  • Compra rápida — vender um SKU várias vezes.
  • Compra de carrinho — o usuário adiciona itens ao carrinho, remove itens e atualiza quantidades dentro de um único pedido.

Se um item for comprado usando moedas virtuais em vez de moedas reais, use a chamada de API Criar pedido com item especificado comprado por moeda virtual. A interface de pagamento não é necessária, pois a cobrança é processada quando a chamada de API é executada.

Para a compra de itens gratuitos, use a chamada de API Criar pedido com item gratuito especificado ou a chamada de API Criar pedido com carrinho gratuito. A interface de pagamento não é necessária — o pedido é imediatamente definido ao status done.

Compra rápida

Use a chamada de API do lado do cliente para criar um pedido com um item especificado. A chamada retorna um token usado para abrir a interface de pagamento.

Nota

As informações de desconto estão disponíveis para o usuário apenas na interface de pagamento. Códigos promocionais não são suportados.

Compra via carrinho

A configuração e compra do carrinho podem ser realizadas no lado do cliente ou no lado do servidor.

Configure e compre um carrinho no cliente

Implemente a lógica de adicionar e remover itens por conta própria. Antes de chamar a API para configurar um carrinho, você não terá informações sobre quais promoções serão aplicadas à compra. Isso significa que o custo total e os detalhes dos itens bônus adicionados não serão conhecidos.

Implemente a seguinte lógica de carrinho:

  1. Após o jogador ter preenchido um carrinho, use a chamada de API Preencher carrinho com itens. A chamada retorna as informações atuais sobre os itens selecionados (preços antes e depois dos descontos, itens bônus).
  2. Atualize o conteúdo do carrinho com base nas ações do usuário:
Nota

Para obter o status atual do carrinho, use a chamada de API Obter carrinho do usuário atual.
  1. Use a chamada de API Criar pedido com todos os itens do carrinho atual. A chamada retorna o ID do pedido e o token de pagamento. O pedido recém-criado é definido para o status new por padrão.

Configure e compre um carrinho no servidor

Esta opção de configuração pode levar mais tempo para configurar o carrinho, já que cada alteração no carrinho deve ser acompanhada por chamadas de API.

Implemente a seguinte lógica de carrinho:

  1. Após o jogador ter preenchido um carrinho, use a chamada de API Preencher carrinho com itens. A chamada retorna informações atuais sobre os itens selecionados (preços antes e depois dos descontos, itens bônus).
  2. Use a chamada de API Criar pedido com todos os itens do carrinho atual. A chamada retorna o ID do pedido e o token de pagamento. O pedido recém-criado é definido ao status new por padrão.

Abertura da interface de pagamento

Use o token retornado para abrir a interface de pagamento em uma nova janela. Outras maneiras de abrir a interface de pagamento estão descritas na documentação.

AçãoEndpoint
Abrir no ambiente de produção.https://secure.xsolla.com/paystation4/?token={token}
Abrir no modo sandbox.https://sandbox-secure.xsolla.com/paystation4/?token={token}
Nota

Use o modo sandbox durante o desenvolvimento e teste. Compras de teste não fazem cobranças de contas reais. Você pode usar cartões de teste.

Após o primeiro pagamento real, uma política de pagamento sandbox estrita entra em vigor. Um pagamento no modo sandbox está disponível apenas para usuários especificados em Conta de Distribuidor > Configurações da Empresa > Usuários.

Comprar moedas e itens virtuais por moedas reais é possível apenas após assinar um acordo de licença com a Xsolla. Para isso, na Conta de Distribuidor, acesse Contratos & Impostos > Contratos, preencha o formulário do acordo e aguarde a confirmação. Pode levar até 3 dias úteis para revisar o contrato.

Para habilitar ou desabilitar o modo sandbox, altere o valor do parâmetro sandbox na solicitação para compra rápida e compra no carrinho. O modo sandbox está desativado por padrão.

Possíveis status do pedido:

  • new — pedido criado
  • paid — pagamento recebido
  • done — item entregue
  • canceled — pedido cancelado
  • expired — pedido expirado

Acompanhe o status do pedido usando um dos seguintes métodos:

Paginação

Chamadas de API que retornam grandes conjuntos de registros (por exemplo, ao criar um catálogo) retornam dados em páginas. A paginação é um mecanismo que limita o número de itens retornados em uma única resposta de API e permite que você recupere páginas subsequentes sequencialmente.

Use os seguintes parâmetros para controlar o número de itens retornados:

  • limit — número de itens por página
  • offset — índice do primeiro item na página (a numeração começa em 0)
  • has_more — indica se outra página está disponível
  • total_items_count — número total de itens

Exemplo de solicitação:

GET /items?limit=20&offset=40

Exemplo de resposta:

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

Recomenda-se enviar solicitações subsequentes até que a resposta retorne has_more = false.

Formato de data e hora

Datas e valores de tempo são passados no formato ISO 8601.

Os seguintes são suportados:

  • Deslocamento UTC
  • Valor null quando não há restrição de tempo para exibir um item
  • Timestamp Unix (em segundos) usado em alguns campos

Formato: YYYY-MM-DDTHH:MM:SS±HH:MM

Exemplo: 2026-03-16T10:00:00+03:00

Localização

A Xsolla suporta a tradução de campos voltados para o usuário, como nome e descrição do item. Valores traduzidos são passados como um objeto onde o código de idioma é usado como chave. A lista completa de idiomas suportados está disponível na documentação.

Campos suportados

A localização pode ser especificada para os seguintes parâmetros:

  • name
  • description
  • long_description

Formato de localidade

A chave de localidade pode ser especificada em um dos seguintes formatos:

  • Código de idioma de duas letras: en, ru
  • Código de idioma de cinco letras: en-US, ru-RU, de-DE

Exemplos

Exemplo com um código de idioma de duas letras:

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

Exemplo com um código de idioma de cinco letras:

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

Formato de resposta de erro

Se ocorrer um erro, a API retorna um status HTTP e um corpo de resposta JSON. A lista completa de erros relacionados à loja está disponível na documentação.

Exemplo de resposta:

{
  "errorCode": 1102,
  "errorMessage": "Validation error",
  "statusCode": 422,
  "transactionId": "c9e1a..."
}
  • errorCode — código de erro.
  • errorMessage — descrição curta do erro.
  • statusCode — status da resposta HTTP.
  • transactionId — ID da solicitação. Retornado apenas em alguns casos.
  • errorMessageExtended — detalhes adicionais do erro, como parâmetros da solicitação. Retornado apenas em alguns casos.

Exemplo de resposta estendida:

{
  "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 status HTTP comuns

  • 400 — solicitação inválida
  • 401 — erro de autenticação
  • 403 — permissões insuficientes
  • 404 — recurso não encontrado
  • 422 — erro de validação
  • 429 — limite de taxa excedido

Recomendações

  • Lide com o status HTTP e o corpo da resposta juntos.
  • Use errorCode para processar erros relacionados à lógica da aplicação.
  • Use transactionId para identificar solicitações mais rapidamente ao analisar erros.
Transferir a descrição da OpenAPI
Idiomas
Servidores
https://store.xsolla.com/api/
Mock server
https://xsolla.redocly.app/_mock/pt/api/catalog/

Visão geral

Você pode usar itens virtuais e moedas virtuais para construir uma loja no jogo e configurar como ela é exibida para os usuários. Os seguintes tipos de itens estão disponíveis:

  • Itens virtuais — bens no jogo como armas, skins ou impulsionadores. Podem ser vendidos por dinheiro real ou moedas virtuais.
  • Moeda virtual — moeda no jogo usada para comprar itens virtuais. Pode ser vendida por moedas reais ou moedas virtuais.
  • Pacotes de moedas virtuais — uma quantidade fixa de moedas virtuais. Pode ser vendida por moedas reais ou moedas virtuais.

Grupos são usados para organizar itens no catálogo. Eles permitem agrupar logicamente os itens e gerenciar como eles são exibidos.

Use chamadas de API da subseção Admin para criar, atualizar e excluir itens.

Use chamadas de API da subseção Catálogo para recuperar listas de itens e exibi-los aos usuários.

Aviso

Não use chamadas de API da subseção Admin para construir um catálogo de loja.

Nota

A chamada de API Obter lista de itens virtuais retorna dados detalhados dos itens, incluindo preços e atributos, e suporta paginação. Use-a para exibir páginas de catálogo na vitrine.

A chamada de API Obter lista de todos os itens virtuais retorna o SKU do item, nome, descrição, bem como ID e nome do grupo sem paginação. Use-a para busca ou indexação do lado do cliente.

Para compras com moedas virtuais, use a chamada de API Criar pedido com item especificado comprado por moeda virtual. A interface de pagamento não é necessária — a cobrança é processada quando a chamada de API é executada.

Exemplo de fluxo de compra com moeda virtual:

Exemplo de fluxo de compra com moeda virtual

Operações
Operações
Operações

Visão geral

Game keys are single-use unique alphanumeric codes that grant users access to a game or DLC on gaming platforms. You can sell game keys via a direct link, through the store UI, or via a widget. You can also configure regional restrictions to sell game keys in specific countries. For detailed information, refer to the Game keys packages section.

User authentication is not required to sell game keys — the keys are sent to the email the user specified at checkout. You can configure authentication to enable additional scenarios: personalization, purchase limits, or an entitlement system. For detailed information, refer to the How to set up authentication when selling game keys section.

Game key sales flow:

  1. Create a game using the Create game API call.
  2. Configure regional restrictions.
  3. Upload keys to a game key package using the Upload codes API call to make them available for purchase.
  4. Display the game catalog with prices for the user's region using the Get games list API call.
  5. Create an order. For a fast purchase, you can use the Create order with all items from current cart API call, passing the game key SKU. The response returns a token for opening the payment UI.
  6. Implement the opening of the payment UI to pay for the order.

To receive timely notifications about successful payments and deliver items to the user, set up order status tracking, for example, using webhooks. The keys are sent to the email the user specified at checkout, and the order moves to the done status.

Game keys

Operações
Operações
Operações

Visão geral

Bundles are sets of items sold as a single unit. A bundle can include virtual items, virtual currency, virtual currency packages, game keys, and other bundles. Use bundles to create starter packs, seasonal offers, and special deals.

Use the following API call groups to work with bundles:

  • Use API calls from the Admin subsection to create, update, delete bundles, and manage their visibility.
  • Use API calls from the Catalog subsection to retrieve bundles.

Purchase limits are configured via the limits object when creating or updating a bundle. For more information, refer to the Limits overview. You can also configure regional restrictions to sell items in specific countries.

Note

For detailed information on configuring bundles, refer to the Bundles section.

Bundle management scenario:

  1. Create a bundle using the Create bundle API call. To verify the created bundle, use the Get bundle API call. To retrieve all bundles in the project, use the Get list of bundles API call.
  2. If needed, use the Update bundle API call to modify the bundle content or settings.
  3. Implement bundle display logic in your storefront using the Get list of bundles, Get specified bundle, or Get list of bundles by specified group API call.
  4. Create an order using the Cart and payment section. For example, for a fast purchase you can use the Create order with specified item API call, passing the bundle SKU. The response contains a token for opening the payment UI.
  5. Implement opening the payment UI to pay for the order.
  6. Set up order status tracking, for example using webhooks, to promptly receive data on successfully paid items and grant them to the user.

Bundle management scenario

Operações
Operações

Obter pacote especificadoClient-side

Pedido

Obtém um conjunto especificado.

Nota

Esta chamada de API retorna dados genéricos do catálogo de itens quando usada sem autorização. Use a autorização para recuperar dados personalizados do usuário, como limites e promoções associadas ao item. Para fazer isso, passe o JWT do usuário no cabeçalho Authorization. Para mais informações sobre o JWT do usuário, consulte o bloco Segurança para esta chamada.
Segurança
XsollaLoginUserJWT
Caminho
project_idintegerobrigatório

ID de projeto. Você pode encontrar esse parâmetro na sua Conta de Distribuidor, próximo ao nome do projeto e na barra de endereços do navegador ao trabalhar com um projeto. O URL tem o seguinte formato: https://publisher.xsolla.com/<merchant_id>/projects/<project_id>.

Exemplo: 44056
skustringobrigatório

SKU de conjunto.

Exemplo: kg_1
Consulta
promo_codestring[ 1 .. 128 ] characters

Código exclusivo que diferencia maiúsculas de minúsculas. Contém letras e números.

Exemplo: promo_code=WINTER2021
show_inactive_time_limited_itemsinteger

Exibe itens de tempo limitado que não estão disponíveis para o usuário. O prazo de validade desses itens não começou ou já expirou.

Padrão 0
Exemplo: show_inactive_time_limited_items=1
additional_fields[]Array of strings

A lista de campos adicionais. Esses campos estarão na resposta se você enviá-los em sua solicitação.

Itens Enum"media_list""order""long_description""custom_attributes""item_order_in_group"
curl -i -X GET \
  'https://store.xsolla.com/api/v2/project/44056/items/bundle/sku/kg_1?promo_code=WINTER2021&show_inactive_time_limited_items=1&additional_fields%5B%5D=media_list' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Respostas

O conjunto especificado foi recebido com sucesso.

Corpoapplication/json
item_idinteger[ 1 .. 255 ] characters

ID de item exclusivo interno.

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

ID de item exclusivo. O SKU só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, pontos, traços e sublinhados.

namestring

Nome do item.

groupsArray of objects

Grupo aos quais o item pertence.

groups[].​external_idstring

Um identificador exclusivo para o grupo, normalmente usado para referenciá-lo em solicitações de API ou sistemas externos.

Exemplo: "exclusive"
groups[].​namestring

Nome do grupo.

Exemplo: "Exclusive"
groups[].​item_order_in_groupinteger

A posição do item dentro do grupo, usada para determinar sua ordem de exibição. Este campo é incluído na resposta somente se solicitado por meio do parâmetro de consulta additional_fields[].

Exemplo: 1
descriptionstring or null

Descrição do item.

long_description(object or null)

Objeto com traduções para a descrição longa do item. Aceita valores em um dos dois formatos: códigos de idioma minúsculos de duas letras (por exemplo, en) ou códigos de localidade de cinco caracteres (por exemplo, en-US). Embora ambos os formatos sejam aceitos, as respostas retornam códigos de idioma minúsculos de duas letras. Quando ambas as variantes para o mesmo idioma são fornecidas (por exemplo, en e en-US), o último valor fornecido é armazenado. Você pode encontrar a lista completa de idiomas suportados na documentação.

Any of:

Códigos de idioma minúsculos de duas letras.

long_description.​enstring or null

Inglês

long_description.​arstring or null

Árabe

long_description.​bgstring or null

Búlgaro

long_description.​cnstring or null

Chinês (Simplificado)

long_description.​csstring or null

Tcheco

long_description.​destring or null

Alemão

long_description.​esstring or null

Espanhol (Espanha)

long_description.​frstring or null

Francês

long_description.​hestring or null

Hebraico

long_description.​itstring or null

Italiano

long_description.​jastring or null

Japonês

long_description.​kostring or null

Coreano

long_description.​plstring or null

Polonês

long_description.​ptstring or null

Português

long_description.​rostring or null

Romeno

long_description.​rustring or null

Russo

long_description.​thstring or null

Tailandês

long_description.​trstring or null

Turco

long_description.​twstring or null

Chinês (Tradicional)

long_description.​vistring or null

Vietnamita

long_description.​kmstring or null

Khmer

long_description.​idstring or null

Indonésio

long_description.​lostring or null

Lao

long_description.​mystring or null

Birmanês

long_description.​phstring or null

Filipino

long_description.​nestring or null

Nepalês

attributesArray of objects

Lista de atributos e seus valores correspondentes ao item. Pode ser usado para a filtragem de catálogos.

attributes[].​external_idstring[ 1 .. 255 ] characters^[a-zA-Z0-9-_]+$

ID de atributo exclusivo. O external_id só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, traços e sublinhados.

attributes[].​namestring

Nome do atributo.

Exemplo: "Genre"
attributes[].​valuesArray of objects
attributes[].​values[].​external_idstring[ 1 .. 255 ] characters^[-_.\d\w]+$

ID de valor exclusivo para um atributo. O external_id pode conter apenas caracteres alfanuméricos latinos minúsculos, traços e sublinhados.

attributes[].​values[].​valuestring

Valor do atributo.

Exemplo: "Strategy"
typestring

Tipo de item.

bundle_typestring

Tipo de pacote. Use standard para criar um pacote com itens e especificar os SKUs dos itens incluídos no pacote. Use partner_side_content para criar um pacote vazio e adicionar itens do seu lado usando um webhook. Esse tipo é usado somente para a personalização de catálogos no lado do parceiro.

Enum"standard""partner_side_content"
image_urlstring or null

URL da imagem. Para que a imagem seja exibida corretamente e carregue rapidamente na interface de pagamento, confira as nossas diretrizes de imagens e URLs:

  • Formatos suportados: WebP (recomendado), PNG, JPG.
  • Tamanho do arquivo: ≤ 50 KB (para WebP) ou ≤ 150 KB (para PNG e JPG).
  • Tamanho da imagem: 280 x 280 px.
  • Espaço de cores: sRGB.
  • Protocolo: HTTPS com cache de longa duração para URLs versionados.

is_freeboolean

Se o item é gratuito ou não.

priceobject or null

Preço do item.

price.​amountstring^\d*\.?\d*$obrigatório

Preço do item com desconto.

price.​amount_without_discountstring^\d*\.?\d*$obrigatório

Preço do item.

price.​currencystringobrigatório

Moeda do preço do item. Código de três letras de acordo com a ISO 4217.

total_content_priceobject or null

Soma dos preços do conteúdo do conjunto.

total_content_price.​amountstring

Soma dos preços do conteúdo do conjunto com um desconto.

Exemplo: "100.99"
total_content_price.​amount_without_discountstring

Soma dos preços do conteúdo do conjunto.

Exemplo: "100.99"
total_content_price.​currencystring

Moeda do preço do item. Código de três letras de acordo com a ISO 4217.

virtual_pricesArray of objects

Preços virtuais.

virtual_prices[].​amountinteger

Preço do item em moedas virtuais com desconto.

Exemplo: 100
virtual_prices[].​amount_without_discountinteger

Preço do item em moeda virtual.

Exemplo: 200
virtual_prices[].​skustring

SKU da moeda virtual.

Exemplo: "gold"
virtual_prices[].​is_defaultboolean

Se o preço é padrão para um item.

Exemplo: true
virtual_prices[].​image_urlstring or null

Imagem da moeda virtual.

Exemplo: "http://image.png"
virtual_prices[].​namestring

Nome da moeda virtual.

Exemplo: "Gold"
virtual_prices[].​typestring

Tipo de moeda virtual.

Exemplo: "virtual_currency"
virtual_prices[].​descriptionstring or null

Virtual currency description.

Exemplo: "Most popular gold"
can_be_boughtboolean

Se true, o usuário pode comprar um item.

contentArray of objects

Conteúdo do pacote de conjuntos.

content[].​skustring

ID de item exclusivo. O SKU só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, traços e sublinhados.

Exemplo: "com.xsolla.big_rocket_1"
content[].​namestring

Nome do item.

Exemplo: "Big Rocket"
content[].​typestring

Tipo de item: virtual_good/virtual_currency/bundle.

Exemplo: "virtual_currency"
content[].​descriptionstring

Descrição do item.

Exemplo: "Big Rocket - description"
content[].​image_urlstring

URL da imagem.

Exemplo: "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png"
content[].​quantityinteger

Quantidade de item em um pacote.

Exemplo: 250
content[].​virtual_item_typestring

Tipo de item virtual.

Possíveis valores:

  • consumable — Um item que desaparece do inventário após o uso (ex.: munição)..
  • non_consumable — Um item que permanece no inventário por um tempo ilimitado.
  • non_renewing_subscription — Item de tempo limitado que pode representar acesso a serviços ou conteúdos por um período específico.
Enum"consumable""non_consumable""non_renewing_subscription"
Exemplo: "non-consumable"
content[].​attributesArray of objects

Lista de atributos e seus valores correspondentes ao item. Pode ser usado para a filtragem de catálogos.

content[].​attributes[].​external_idstring[ 1 .. 255 ] characters^[a-zA-Z0-9-_]+$

ID de atributo exclusivo. O external_id só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, traços e sublinhados.

content[].​attributes[].​namestring

Nome do atributo.

Exemplo: "Genre"
content[].​attributes[].​valuesArray of objects
content[].​attributes[].​values[].​external_idstring[ 1 .. 255 ] characters^[-_.\d\w]+$

ID de valor exclusivo para um atributo. O external_id pode conter apenas caracteres alfanuméricos latinos minúsculos, traços e sublinhados.

content[].​attributes[].​values[].​valuestring

Valor do atributo.

Exemplo: "Strategy"
content[].​priceobject or null

Preços dos itens.

content[].​price.​amountstring

Preço do item com desconto.

Exemplo: "100.99"
content[].​price.​amount_without_discountstring

Preço do item.

Exemplo: "100.99"
content[].​price.​currencystring

Moeda do preço do item. Código de três letras de acordo com a ISO 4217. Consulte a documentação para obter informações detalhadas sobre as moedas suportadas pelo Xsolla.

Exemplo: "USD"
content[].​virtual_pricesArray of objects

Preços virtuais.

content[].​virtual_prices[].​amountinteger

Preço do item em moedas virtuais com desconto.

Exemplo: 100
content[].​virtual_prices[].​amount_without_discountinteger

Preço do item.

Exemplo: 200
content[].​virtual_prices[].​skustring

SKU da moeda virtual.

Exemplo: "vc_test"
content[].​virtual_prices[].​is_defaultboolean

Se o preço é padrão para um item.

Exemplo: true
content[].​virtual_prices[].​image_urlstring

Imagem da moeda virtual.

Exemplo: "http://image.png"
content[].​virtual_prices[].​namestring

Nome da moeda virtual.

Exemplo: "SHOTGUN FOR TRUE RAIDERS"
content[].​virtual_prices[].​typestring

Tipo de moeda virtual.

Exemplo: "virtual_currency"
content[].​virtual_prices[].​descriptionstring

Virtual currency description.

Exemplo: "Big Rocket - description"
content[].​limitsobject or null

Limites de itens.

content[].​limits.​per_userobject or null

Limites de item para um usuário.

content[].​limits.​per_user.​totalinteger

Quantidade máxima de itens que o usuário atual pode comprar.

Exemplo: 5
content[].​limits.​per_user.​availableinteger

Quantidade restante de itens que o usuário atual pode comprar.

Exemplo: 3
content[].​limits.​per_user.​recurrent_schedule(object or null)
One of:

O item limita o período de atualização recorrente para um usuário.

object or null
content[].​limits.​per_user.​limit_exceeded_visibilitystring

Determina a visibilidade do item no catálogo após o limite de compra ser atingido, até o próximo limite ser redefinido.

Aplica-se a itens para os quais redefinições recorrentes de limite estão configurados na matriz recurrent_schedule.

Se os limites redefinidos não forem configurados, o item não aparecerá no catálogo após o limite de compra ser atingido, independentemente do valor limit_exceeded_visibility.

Possíveis valores:

  • show — O item é retornado nas chamadas API de recuperação de catálogo após o limite de compra ser atingido. Nas chamadas API de recuperação de catálogo, quando o limite for atingido, o item será retornado com a marcação can_be_bought: false. A próxima data de redefinição é retornada em reset_next_date.
  • hide — O item não é retornado nas chamadas API de recuperação de catálogo após o limite de compra ser atingido, até o limite ser redefinido.
Enum"show""hide"
content[].​limits.​per_itemobject or null

Limites de item para um item.

content[].​limits.​per_item.​totalinteger

Quantidade máxima de itens que todos os usuários podem comprar.

Exemplo: 5
content[].​limits.​per_item.​availableinteger

Quantidade restante de itens que todos os usuários podem comprar.

Exemplo: 3
content[].​is_freeboolean

Se o item é gratuito ou não.

content[].​groupsArray of objects

Grupo aos quais o item pertence.

content[].​groups[].​external_idstring
Exemplo: "horror"
content[].​groups[].​nameobject

Nome do item. Deve conter pares chave/valor onde chave é uma localização com o formato "^[a-z]{2}", e o valor é uma cadeia de caracteres.

Padrão {"en":"Horror"}
Exemplo: {"en":"Horror","de":"Horror"}
content[].​groups[].​name.​property name*stringpropriedade adicional
promotionsArray of objects

Promoções aplicadas a itens específicos no carrinho. A matriz é retornada nos seguintes casos:

  • Uma promoção de desconto é configurada para um item específico.

  • Um código promocional com a configuração Desconto em itens selecionados é aplicado.

Se nenhuma promoção no nível do item for aplicada, é retornada uma matriz vazia.

promotions[].​namestring
promotions[].​date_startstring or null(date-time)
promotions[].​date_endstring or null(date-time)
promotions[].​discountobject or null
promotions[].​discount.​percentstring or null
promotions[].​discount.​valuestring or null
promotions[].​bonusArray of objects
promotions[].​bonus[].​skustring
promotions[].​bonus[].​quantityinteger
promotions[].​bonus[].​typestring

Tipo de item bônus.

Enum"virtual_good""virtual_currency""bundle""physical_good""game_key""nft"
promotions[].​bonus[].​namestring

Nome do item bônus. Indisponível para o tipo de item bônus physical_good.

promotions[].​bonus[].​image_urlstring

URL da imagem do item bônus. Indisponível para o tipo de item bônus physical_good.

promotions[].​bonus[].​bundle_typestring

Tipo de item de pacote de bônus. Disponível apenas para o tipo de item bônus bundle.

Enum"standard""virtual_currency_package"
promotions[].​limitsobject
promotions[].​limits.​per_userobject
promotions[].​limits.​per_user.​availableinteger
promotions[].​limits.​per_user.​totalinteger
limitsobject or null

Limites de itens.

limits.​per_userobject or null

Limites de item para um usuário.

limits.​per_user.​totalinteger

Quantidade máxima de itens que o usuário atual pode comprar.

Exemplo: 5
limits.​per_user.​availableinteger

Quantidade restante de itens que o usuário atual pode comprar.

Exemplo: 3
limits.​per_user.​recurrent_schedule(object or null)
One of:

O item limita o período de atualização recorrente para um usuário.

object or null
limits.​per_user.​limit_exceeded_visibilitystring

Determina a visibilidade do item no catálogo após o limite de compra ser atingido, até o próximo limite ser redefinido.

Aplica-se a itens para os quais redefinições recorrentes de limite estão configurados na matriz recurrent_schedule.

Se os limites redefinidos não forem configurados, o item não aparecerá no catálogo após o limite de compra ser atingido, independentemente do valor limit_exceeded_visibility.

Possíveis valores:

  • show — O item é retornado nas chamadas API de recuperação de catálogo após o limite de compra ser atingido. Nas chamadas API de recuperação de catálogo, quando o limite for atingido, o item será retornado com a marcação can_be_bought: false. A próxima data de redefinição é retornada em reset_next_date.
  • hide — O item não é retornado nas chamadas API de recuperação de catálogo após o limite de compra ser atingido, até o limite ser redefinido.
Enum"show""hide"
limits.​per_itemobject or null

Limites de item para um item.

limits.​per_item.​totalinteger

Quantidade máxima de itens que todos os usuários podem comprar.

Exemplo: 5
limits.​per_item.​availableinteger

Quantidade restante de itens que todos os usuários podem comprar.

Exemplo: 3
periodsArray of objects or null

Período de venda de itens.

periods[].​date_fromstring(date-time)

Data em que o item especificado estará disponível para venda.

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

Data em que o item especificado ficará indisponível para venda. Pode ser null.

Exemplo: "2020-08-11T20:00:00+03:00"
custom_attributesobject(json)

Um objeto JSON que contém atributos e valores de item.

vp_rewardsArray of objects

Recompensa do item de ponto de valor.

vp_rewards[].​item_idinteger

ID de item exclusivo interno.

vp_rewards[].​skustring

ID de ponto de valor exclusivo.

vp_rewards[].​amountinteger

Quantidade de pontos de valor.

vp_rewards[].​namestring

Nome do ponto de valor.

vp_rewards[].​image_urlstring

URL da imagem.

vp_rewards[].​is_clanboolean

Se o ponto de valor é usado em cadeias de recompensa de clã ou não.

orderinteger

Prioridade de pedido do conjunto na lista.

media_listArray of objects

Ativos adicionais do conjunto.

media_list[].​typestring

Tipo de mídia: image/video.

Enum"image""video"
Exemplo: "image"
media_list[].​urlstring

Arquivo de recurso.

Exemplo: "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"
Resposta
application/json
{ "item_id": 610316, "sku": "com.xsolla.kg_1", "name": "kg_10.00_bundle", "type": "bundle", "description": "pricePoint_44056_1.", "image_url": null, "long_description": null, "attributes": [], "is_free": false, "order": 999, "groups": [], "price": { "amount": "9.99", "currency": "USD", "amount_without_discount": "9.99" }, "total_content_price": { "amount": "10.99", "currency": "USD", "amount_without_discount": "10.99" }, "media_list": [], "virtual_prices": [], "promotions": [], "limits": { "per_user": {} }, "can_be_bought": true, "bundle_type": "standard", "periods": [ {} ], "custom_attributes": { "purchased": 0, "attr": "value" }, "content": [ {} ], "vp_rewards": [ {}, {} ] }

Obter lista de pacotes por grupo especificadoClient-side

Pedido

Recebe uma lista de conjuntos dentro de um grupo para montar um catálogo.

Atenção

Todos os projetos têm uma limitação no número de itens que você pode obter na resposta. O valor padrão e máximo é 50 itens por resposta. Para obter mais dados página por página, use os campos limit e offset.

Nota

Esta chamada de API retorna dados genéricos do catálogo de itens quando usada sem autorização. Use a autorização para recuperar dados personalizados do usuário, como limites e promoções associadas ao item. Para fazer isso, passe o JWT do usuário no cabeçalho Authorization. Para mais informações sobre o JWT do usuário, consulte o bloco Segurança para esta chamada.
Segurança
XsollaLoginUserJWT
Caminho
project_idintegerobrigatório

ID de projeto. Você pode encontrar esse parâmetro na sua Conta de Distribuidor, próximo ao nome do projeto e na barra de endereços do navegador ao trabalhar com um projeto. O URL tem o seguinte formato: https://publisher.xsolla.com/<merchant_id>/projects/<project_id>.

Exemplo: 44056
external_idstringobrigatório

ID de grupo de itens externo especificado durante a criação.

Exemplo: weapons
Consulta
limitinteger>= 1

Limite da quantidade de elementos na página.

Exemplo: limit=50
offsetinteger>= 0

Número do elemento a partir do qual a lista é gerada (a quantidade começa a partir de 0).

Exemplo: offset=0
localestring

Idioma de resposta. Código de idioma de duas letras minúsculas, de acordo com o padrão ISO 639-1 (por exemplo, en). Códigos de localização de cinco caracteres (por exemplo, en-US) são suportados nos campos de tradução, tais como name e description, mas são normalizados a códigos de duas letras nas respostas. Você pode encontrar a lista completa de idiomas suportados na documentação.

Padrão "en"
additional_fields[]Array of strings

A lista de campos adicionais. Esses campos estarão na resposta se você enviá-los em sua solicitação.

Itens Enum"media_list""order""long_description""custom_attributes""item_order_in_group"
countrystring

Código de país de duas letras maiúsculas de acordo com o padrão ISO 3166-1 alfa-2. Verifique a documentação para obter informações detalhadas sobre os países suportados pela Xsolla e o processo de determinação do país.

Exemplo: country=US
promo_codestring[ 1 .. 128 ] characters

Código exclusivo que diferencia maiúsculas de minúsculas. Contém letras e números.

Exemplo: promo_code=WINTER2021
show_inactive_time_limited_itemsinteger

Exibe itens de tempo limitado que não estão disponíveis para o usuário. O prazo de validade desses itens não começou ou já expirou.

Padrão 0
Exemplo: show_inactive_time_limited_items=1
curl -i -X GET \
  'https://store.xsolla.com/api/v2/project/44056/items/bundle/group/weapons?limit=50&offset=0&locale=en&additional_fields%5B%5D=media_list&country=US&promo_code=WINTER2021&show_inactive_time_limited_items=1' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Respostas

A lista de conjuntos foi recebida com sucesso.

Corpoapplication/json
has_moreboolean

Usado como um indicador de que há mais páginas.

itemsArray of objects
items[].​item_idinteger[ 1 .. 255 ] characters

ID de item exclusivo interno.

items[].​skustring[ 1 .. 255 ] characters^[a-zA-Z0-9_\-–.]*$

ID de item exclusivo. O SKU só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, pontos, traços e sublinhados.

items[].​namestring

Nome do item.

items[].​groupsArray of objects

Grupo aos quais o item pertence.

items[].​groups[].​external_idstring

Um identificador exclusivo para o grupo, normalmente usado para referenciá-lo em solicitações de API ou sistemas externos.

Exemplo: "exclusive"
items[].​groups[].​namestring

Nome do grupo.

Exemplo: "Exclusive"
items[].​groups[].​item_order_in_groupinteger

A posição do item dentro do grupo, usada para determinar sua ordem de exibição. Este campo é incluído na resposta somente se solicitado por meio do parâmetro de consulta additional_fields[].

Exemplo: 1
items[].​descriptionstring or null

Descrição do item.

items[].​long_description(object or null)

Objeto com traduções para a descrição longa do item. Aceita valores em um dos dois formatos: códigos de idioma minúsculos de duas letras (por exemplo, en) ou códigos de localidade de cinco caracteres (por exemplo, en-US). Embora ambos os formatos sejam aceitos, as respostas retornam códigos de idioma minúsculos de duas letras. Quando ambas as variantes para o mesmo idioma são fornecidas (por exemplo, en e en-US), o último valor fornecido é armazenado. Você pode encontrar a lista completa de idiomas suportados na documentação.

Any of:

Códigos de idioma minúsculos de duas letras.

items[].​long_description.​enstring or null

Inglês

items[].​long_description.​arstring or null

Árabe

items[].​long_description.​bgstring or null

Búlgaro

items[].​long_description.​cnstring or null

Chinês (Simplificado)

items[].​long_description.​csstring or null

Tcheco

items[].​long_description.​destring or null

Alemão

items[].​long_description.​esstring or null

Espanhol (Espanha)

items[].​long_description.​frstring or null

Francês

items[].​long_description.​hestring or null

Hebraico

items[].​long_description.​itstring or null

Italiano

items[].​long_description.​jastring or null

Japonês

items[].​long_description.​kostring or null

Coreano

items[].​long_description.​plstring or null

Polonês

items[].​long_description.​ptstring or null

Português

items[].​long_description.​rostring or null

Romeno

items[].​long_description.​rustring or null

Russo

items[].​long_description.​thstring or null

Tailandês

items[].​long_description.​trstring or null

Turco

items[].​long_description.​twstring or null

Chinês (Tradicional)

items[].​long_description.​vistring or null

Vietnamita

items[].​long_description.​kmstring or null

Khmer

items[].​long_description.​idstring or null

Indonésio

items[].​long_description.​lostring or null

Lao

items[].​long_description.​mystring or null

Birmanês

items[].​long_description.​phstring or null

Filipino

items[].​long_description.​nestring or null

Nepalês

items[].​attributesArray of objects

Lista de atributos e seus valores correspondentes ao item. Pode ser usado para a filtragem de catálogos.

items[].​attributes[].​external_idstring[ 1 .. 255 ] characters^[a-zA-Z0-9-_]+$

ID de atributo exclusivo. O external_id só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, traços e sublinhados.

items[].​attributes[].​namestring

Nome do atributo.

Exemplo: "Genre"
items[].​attributes[].​valuesArray of objects
items[].​attributes[].​values[].​external_idstring[ 1 .. 255 ] characters^[-_.\d\w]+$

ID de valor exclusivo para um atributo. O external_id pode conter apenas caracteres alfanuméricos latinos minúsculos, traços e sublinhados.

items[].​attributes[].​values[].​valuestring

Valor do atributo.

Exemplo: "Strategy"
items[].​typestring

Tipo de item.

items[].​bundle_typestring

Tipo de pacote. Use standard para criar um pacote com itens e especificar os SKUs dos itens incluídos no pacote. Use partner_side_content para criar um pacote vazio e adicionar itens do seu lado usando um webhook. Esse tipo é usado somente para a personalização de catálogos no lado do parceiro.

Enum"standard""partner_side_content"
items[].​image_urlstring or null

URL da imagem. Para que a imagem seja exibida corretamente e carregue rapidamente na interface de pagamento, confira as nossas diretrizes de imagens e URLs:

  • Formatos suportados: WebP (recomendado), PNG, JPG.
  • Tamanho do arquivo: ≤ 50 KB (para WebP) ou ≤ 150 KB (para PNG e JPG).
  • Tamanho da imagem: 280 x 280 px.
  • Espaço de cores: sRGB.
  • Protocolo: HTTPS com cache de longa duração para URLs versionados.

items[].​is_freeboolean

Se o item é gratuito ou não.

items[].​priceobject or null

Preço do item.

items[].​price.​amountstring^\d*\.?\d*$obrigatório

Preço do item com desconto.

items[].​price.​amount_without_discountstring^\d*\.?\d*$obrigatório

Preço do item.

items[].​price.​currencystringobrigatório

Moeda do preço do item. Código de três letras de acordo com a ISO 4217.

items[].​total_content_priceobject or null

Soma dos preços do conteúdo do conjunto.

items[].​total_content_price.​amountstring

Soma dos preços do conteúdo do conjunto com um desconto.

Exemplo: "100.99"
items[].​total_content_price.​amount_without_discountstring

Soma dos preços do conteúdo do conjunto.

Exemplo: "100.99"
items[].​total_content_price.​currencystring

Moeda do preço do item. Código de três letras de acordo com a ISO 4217.

items[].​virtual_pricesArray of objects

Preços virtuais.

items[].​virtual_prices[].​amountinteger

Preço do item em moedas virtuais com desconto.

Exemplo: 100
items[].​virtual_prices[].​amount_without_discountinteger

Preço do item em moeda virtual.

Exemplo: 200
items[].​virtual_prices[].​skustring

SKU da moeda virtual.

Exemplo: "gold"
items[].​virtual_prices[].​is_defaultboolean

Se o preço é padrão para um item.

Exemplo: true
items[].​virtual_prices[].​image_urlstring or null

Imagem da moeda virtual.

Exemplo: "http://image.png"
items[].​virtual_prices[].​namestring

Nome da moeda virtual.

Exemplo: "Gold"
items[].​virtual_prices[].​typestring

Tipo de moeda virtual.

Exemplo: "virtual_currency"
items[].​virtual_prices[].​descriptionstring or null

Virtual currency description.

Exemplo: "Most popular gold"
items[].​can_be_boughtboolean

Se true, o usuário pode comprar um item.

items[].​contentArray of objects

Conteúdo do pacote de conjuntos.

items[].​content[].​skustring

ID de item exclusivo. O SKU só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, traços e sublinhados.

Exemplo: "com.xsolla.big_rocket_1"
items[].​content[].​namestring

Nome do item.

Exemplo: "Big Rocket"
items[].​content[].​typestring

Tipo de item: virtual_good/virtual_currency/bundle.

Exemplo: "virtual_currency"
items[].​content[].​descriptionstring

Descrição do item.

Exemplo: "Big Rocket - description"
items[].​content[].​image_urlstring

URL da imagem.

Exemplo: "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png"
items[].​content[].​quantityinteger

Quantidade de item em um pacote.

Exemplo: 250
items[].​content[].​virtual_item_typestring

Tipo de item virtual.

Possíveis valores:

  • consumable — Um item que desaparece do inventário após o uso (ex.: munição)..
  • non_consumable — Um item que permanece no inventário por um tempo ilimitado.
  • non_renewing_subscription — Item de tempo limitado que pode representar acesso a serviços ou conteúdos por um período específico.
Enum"consumable""non_consumable""non_renewing_subscription"
Exemplo: "non-consumable"
items[].​content[].​attributesArray of objects

Lista de atributos e seus valores correspondentes ao item. Pode ser usado para a filtragem de catálogos.

items[].​content[].​attributes[].​external_idstring[ 1 .. 255 ] characters^[a-zA-Z0-9-_]+$

ID de atributo exclusivo. O external_id só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, traços e sublinhados.

items[].​content[].​attributes[].​namestring

Nome do atributo.

Exemplo: "Genre"
items[].​content[].​attributes[].​valuesArray of objects
items[].​content[].​attributes[].​values[].​external_idstring[ 1 .. 255 ] characters^[-_.\d\w]+$

ID de valor exclusivo para um atributo. O external_id pode conter apenas caracteres alfanuméricos latinos minúsculos, traços e sublinhados.

items[].​content[].​attributes[].​values[].​valuestring

Valor do atributo.

Exemplo: "Strategy"
items[].​content[].​priceobject or null

Preços dos itens.

items[].​content[].​price.​amountstring

Preço do item com desconto.

Exemplo: "100.99"
items[].​content[].​price.​amount_without_discountstring

Preço do item.

Exemplo: "100.99"
items[].​content[].​price.​currencystring

Moeda do preço do item. Código de três letras de acordo com a ISO 4217. Consulte a documentação para obter informações detalhadas sobre as moedas suportadas pelo Xsolla.

Exemplo: "USD"
items[].​content[].​virtual_pricesArray of objects

Preços virtuais.

items[].​content[].​virtual_prices[].​amountinteger

Preço do item em moedas virtuais com desconto.

Exemplo: 100
items[].​content[].​virtual_prices[].​amount_without_discountinteger

Preço do item.

Exemplo: 200
items[].​content[].​virtual_prices[].​skustring

SKU da moeda virtual.

Exemplo: "vc_test"
items[].​content[].​virtual_prices[].​is_defaultboolean

Se o preço é padrão para um item.

Exemplo: true
items[].​content[].​virtual_prices[].​image_urlstring

Imagem da moeda virtual.

Exemplo: "http://image.png"
items[].​content[].​virtual_prices[].​namestring

Nome da moeda virtual.

Exemplo: "SHOTGUN FOR TRUE RAIDERS"
items[].​content[].​virtual_prices[].​typestring

Tipo de moeda virtual.

Exemplo: "virtual_currency"
items[].​content[].​virtual_prices[].​descriptionstring

Virtual currency description.

Exemplo: "Big Rocket - description"
items[].​content[].​limitsobject or null

Limites de itens.

items[].​content[].​limits.​per_userobject or null

Limites de item para um usuário.

items[].​content[].​limits.​per_user.​totalinteger

Quantidade máxima de itens que o usuário atual pode comprar.

Exemplo: 5
items[].​content[].​limits.​per_user.​availableinteger

Quantidade restante de itens que o usuário atual pode comprar.

Exemplo: 3
items[].​content[].​limits.​per_user.​recurrent_schedule(object or null)
One of:

O item limita o período de atualização recorrente para um usuário.

object or null
items[].​content[].​limits.​per_user.​limit_exceeded_visibilitystring

Determina a visibilidade do item no catálogo após o limite de compra ser atingido, até o próximo limite ser redefinido.

Aplica-se a itens para os quais redefinições recorrentes de limite estão configurados na matriz recurrent_schedule.

Se os limites redefinidos não forem configurados, o item não aparecerá no catálogo após o limite de compra ser atingido, independentemente do valor limit_exceeded_visibility.

Possíveis valores:

  • show — O item é retornado nas chamadas API de recuperação de catálogo após o limite de compra ser atingido. Nas chamadas API de recuperação de catálogo, quando o limite for atingido, o item será retornado com a marcação can_be_bought: false. A próxima data de redefinição é retornada em reset_next_date.
  • hide — O item não é retornado nas chamadas API de recuperação de catálogo após o limite de compra ser atingido, até o limite ser redefinido.
Enum"show""hide"
items[].​content[].​limits.​per_itemobject or null

Limites de item para um item.

items[].​content[].​limits.​per_item.​totalinteger

Quantidade máxima de itens que todos os usuários podem comprar.

Exemplo: 5
items[].​content[].​limits.​per_item.​availableinteger

Quantidade restante de itens que todos os usuários podem comprar.

Exemplo: 3
items[].​content[].​is_freeboolean

Se o item é gratuito ou não.

items[].​content[].​groupsArray of objects

Grupo aos quais o item pertence.

items[].​content[].​groups[].​external_idstring
Exemplo: "horror"
items[].​content[].​groups[].​nameobject

Nome do item. Deve conter pares chave/valor onde chave é uma localização com o formato "^[a-z]{2}", e o valor é uma cadeia de caracteres.

Padrão {"en":"Horror"}
Exemplo: {"en":"Horror","de":"Horror"}
items[].​content[].​groups[].​name.​property name*stringpropriedade adicional
items[].​promotionsArray of objects

Promoções aplicadas a itens específicos no carrinho. A matriz é retornada nos seguintes casos:

  • Uma promoção de desconto é configurada para um item específico.

  • Um código promocional com a configuração Desconto em itens selecionados é aplicado.

Se nenhuma promoção no nível do item for aplicada, é retornada uma matriz vazia.

items[].​promotions[].​namestring
items[].​promotions[].​date_startstring or null(date-time)
items[].​promotions[].​date_endstring or null(date-time)
items[].​promotions[].​discountobject or null
items[].​promotions[].​discount.​percentstring or null
items[].​promotions[].​discount.​valuestring or null
items[].​promotions[].​bonusArray of objects
items[].​promotions[].​bonus[].​skustring
items[].​promotions[].​bonus[].​quantityinteger
items[].​promotions[].​bonus[].​typestring

Tipo de item bônus.

Enum"virtual_good""virtual_currency""bundle""physical_good""game_key""nft"
items[].​promotions[].​bonus[].​namestring

Nome do item bônus. Indisponível para o tipo de item bônus physical_good.

items[].​promotions[].​bonus[].​image_urlstring

URL da imagem do item bônus. Indisponível para o tipo de item bônus physical_good.

items[].​promotions[].​bonus[].​bundle_typestring

Tipo de item de pacote de bônus. Disponível apenas para o tipo de item bônus bundle.

Enum"standard""virtual_currency_package"
items[].​promotions[].​limitsobject
items[].​promotions[].​limits.​per_userobject
items[].​promotions[].​limits.​per_user.​availableinteger
items[].​promotions[].​limits.​per_user.​totalinteger
items[].​limitsobject or null

Limites de itens.

items[].​limits.​per_userobject or null

Limites de item para um usuário.

items[].​limits.​per_user.​totalinteger

Quantidade máxima de itens que o usuário atual pode comprar.

Exemplo: 5
items[].​limits.​per_user.​availableinteger

Quantidade restante de itens que o usuário atual pode comprar.

Exemplo: 3
items[].​limits.​per_user.​recurrent_schedule(object or null)
One of:

O item limita o período de atualização recorrente para um usuário.

object or null
items[].​limits.​per_user.​limit_exceeded_visibilitystring

Determina a visibilidade do item no catálogo após o limite de compra ser atingido, até o próximo limite ser redefinido.

Aplica-se a itens para os quais redefinições recorrentes de limite estão configurados na matriz recurrent_schedule.

Se os limites redefinidos não forem configurados, o item não aparecerá no catálogo após o limite de compra ser atingido, independentemente do valor limit_exceeded_visibility.

Possíveis valores:

  • show — O item é retornado nas chamadas API de recuperação de catálogo após o limite de compra ser atingido. Nas chamadas API de recuperação de catálogo, quando o limite for atingido, o item será retornado com a marcação can_be_bought: false. A próxima data de redefinição é retornada em reset_next_date.
  • hide — O item não é retornado nas chamadas API de recuperação de catálogo após o limite de compra ser atingido, até o limite ser redefinido.
Enum"show""hide"
items[].​limits.​per_itemobject or null

Limites de item para um item.

items[].​limits.​per_item.​totalinteger

Quantidade máxima de itens que todos os usuários podem comprar.

Exemplo: 5
items[].​limits.​per_item.​availableinteger

Quantidade restante de itens que todos os usuários podem comprar.

Exemplo: 3
items[].​periodsArray of objects or null

Período de venda de itens.

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

Data em que o item especificado estará disponível para venda.

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

Data em que o item especificado ficará indisponível para venda. Pode ser null.

Exemplo: "2020-08-11T20:00:00+03:00"
items[].​custom_attributesobject(json)

Um objeto JSON que contém atributos e valores de item.

items[].​vp_rewardsArray of objects

Recompensa do item de ponto de valor.

items[].​vp_rewards[].​item_idinteger

ID de item exclusivo interno.

items[].​vp_rewards[].​skustring

ID de ponto de valor exclusivo.

items[].​vp_rewards[].​amountinteger

Quantidade de pontos de valor.

items[].​vp_rewards[].​namestring

Nome do ponto de valor.

items[].​vp_rewards[].​image_urlstring

URL da imagem.

items[].​vp_rewards[].​is_clanboolean

Se o ponto de valor é usado em cadeias de recompensa de clã ou não.

items[].​orderinteger

Prioridade de pedido do conjunto na lista.

items[].​media_listArray of objects

Ativos adicionais do conjunto.

items[].​media_list[].​typestring

Tipo de mídia: image/video.

Enum"image""video"
Exemplo: "image"
items[].​media_list[].​urlstring

Arquivo de recurso.

Exemplo: "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"
Resposta
application/json
{ "has_more": true, "items": [ {} ] }

Visão geral

The cart is a purchasing mechanism that enables combining multiple items into a single order. A user can buy items of any type in any quantity for real currency, as well as use promo codes.

The cart is stored on the Xsolla side. Saving the cart across sessions depends on whether the user is authorized:

  • For authorized users, the cart is linked to a specific user and is saved across sessions as long as requests are sent on behalf of the same user.

  • For unauthorized users, saving the cart depends on passing the x-unauthorized-id header. To save the cart of an unauthorized user across sessions, pass the same x-unauthorized-id in every request. This option is available only for game key sales.

You can identify the cart in two ways: automatically by user's JWT or by cart ID (cart_id).

Cart management is available both on the client side and on the server side.

On the server side, you can fill the cart with items, e.g., when restoring a user session. The following actions are available on the client side:

  • retrieve the current user's cart or a cart by ID
  • fill the cart
  • update items in the cart
  • delete items from the cart

To purchase items from the cart, the client and server calls for order creation are used.

The cart’s time to live (TTL) is 72 hours by default. If its content changes, e.g., when a new item is added, the TTL is extended.

After successful payment, the cart isn’t cleared automatically. To clear the cart, use the following client-side API calls:

Cart usage scenario:

  1. Implement a store UI where the user will select items.

  2. When the user selects items in the store, add them to the cart, e.g., using the Fill cart with items call. In the items array, you need to pass the SKUs and the required quantity of items.

  3. Implement the cart viewing UI. When the user navigates to the cart, display its contents using the Get current user's cart call. The response will return information about the final price of the items, including discounts and applied promotions.

  4. Implement the opening of the payment UI to pay for the order. For example, you can use the Create order with all items from particular cart call. The response returns a token to open the payment UI.

  5. Configure order status tracking, e.g., using webhooks, to promptly receive data about successfully paid items and grant them to the user.

Note

To implement selling items in-game and online, refer to the integration guide.

Cart and payment flow

Ciclo de vida do pedido

Compreender o ciclo de vida do pedido ajuda a rastrear pedidos e a implementar a lógica pós-compra corretamente, ou seja, a entrega dos itens.

O pedido passa pelos seguintes status:

StatusDescriçãoObservações
newO pedido é criado. O sistema aguarda pela confirmação do pagamento.As descrições dos status de transação podem ser encontrados na documentação Pay Station API.
paidO pedido é pago (a transação mudou para o status done), e o item pode ser concedido ao usuário. O pedido permanece no status new até que o pagamento seja confirmado.
doneO item é concedido ao usuário.
canceledO pagamento foi reembolsado. O pedido muda para esse status quando o status da transação muda para refunded.
expired Criar um novo pedido para um item, código promocional ou promoção limitados move qualquer pedido não pago contendo o item para o status expired. Apenas o pedido mais recente pode ser pago. Se um usuário tentar pagar por um pedido expirado, a interface de pagamento exibirá um erro 2002, e o pagamento falhará.

Ciclo de vida do pedido

Nota

Quando o pedido muda para o status expired enquanto o usuário conclui o pagamento, mas o pagamento é bem-sucedido, o pedido muda do status expired para paid. Isso só se aplica se o limite de compra para o item do pedido não será excedido pelo pagamento.

Carrinho (lado do cliente)

Use chamadas desta seção para gerenciar o carrinho no lado do cliente.

Operações

Carrinho (lado do servidor)

Use chamadas desta seção para gerenciar o carrinho no lado do servidor.

Operações

Pagamento (lado do cliente)

Use chamadas desta seção para criar um token de pagamento no lado do cliente.

Operações

Pagamento (lado do servidor)

Use chamadas desta seção para criar um token de pagamento no lado do servidor.

Operações

Pedido

Use chamadas desta seção para obter informações sobre pedidos.

Operações

Itens gratuitos

Use calls from this section to grant free items to users.

Operações

Visão geral

Os limites de compra permitem restringir a quantidade de itens disponíveis para compra por um único usuário ou por todos os usuários. Você também pode configurar redefinições de limite agendadas.

Os limites são armazenados no lado da Xsolla e são configurados no nível de item individual na Conta de Distribuidor ou via o objeto limits nas seguintes chamadas de API:

As informações de limite são retornadas no objeto items.limits nas seguintes chamadas de API para recuperar o catálogo de itens:

As chamadas de API na subseção Gestão do grupo Limites permitem que você recupere o estado atual dos limites e os atualize para um usuário específico — por exemplo, redefina o contador após a conclusão de uma missão ou ajuste manualmente a quantidade restante.

Nota

Para informações detalhadas sobre como configurar limites no catálogo, consulte a seção Limites de compra de itens.
Operações
Operações
Operações
Operações

Catálogo

Esta API permite obter qualquer tipo de itens vendáveis ou itens específicos.

Operações
Operações
Operações
Operações
Operações