{
  "openapi": "3.1.0",
  "info": {
    "description": "# Visão geral\n\n* **Versão:** 2.0.0\n* **Servidores**: `https://store.xsolla.com/api`\n* **[Entre em contato por e-mail](mailto:integration@xsolla.com)**\n* **URL de contato:** https://xsolla.com/\n* **Versão TLS necessária:** 1.2\n\nLiveOps é um conjunto de ferramentas para impulsionar o engajamento contínuo dos jogadores por meio de promoções e ofertas personalizadas.\n\nUse a API para gerenciar os seguintes recursos:\n\n* **Promoções** — crie e gerencie cupons, códigos promocionais, descontos e campanhas de bônus.\n* **Personalização** — especifique as condições para exibir o catálogo de itens e aplicar promoções apenas para determinados usuários autorizados.\n* **Limites de promoção** — defina um limite de quantas vezes uma promoção pode ser usada por um usuário e configure redefinições programadas para esses limites.\n* **Cadeias de recompensas e Pontos de valor** — configure progressões de recompensas vinculadas à acumulação de pontos de valor.\n* **Cadeias diárias** — configure recompensas diárias recorrentes para motivar logins regulares.\n* **Cadeias de ofertas** — construa ofertas de compra sequenciais com preços por etapa e opções de recompensa gratuita.\n* **Venda cruzada** — um método de vendas em que o usuário é oferecido para comprar um item com valor adicional.\n\n## Chamadas de API\n\nA API é dividida nos **seguintes grupos**:\n\n* **<nt>Admin</nt>** — chamadas para criar, atualizar, ativar e excluir campanhas e configurações de cadeias. Autenticado via [autenticação de acesso básico](https://developers.xsolla.com/pt/payment-ui-and-flow/payment-ui/how-to-get-payment-token/#payments_solution_get_user_auth_token_basic_auth) com suas credenciais de comerciante ou projeto.\n* **<nt>Client</nt>** — chamadas para recuperar promoções disponíveis, obter cadeias ativas, resgatar códigos e reivindicar recompensas em nome de usuários finais autenticados. Autenticado via JWT de usuário.\n\n# Autenticação\n\nChamadas 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.\n\n## Autenticação usando o JWT do usuário\n\nA 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](/pt/api/login/authentication-schemes#getting-user-token).\n\nO 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.\n\nAlternativamente, você pode usar um [token para abrir a interface de pagamento](/pt/api/pay-station/token/create-token).\n\n## Autenticação HTTP básica\n\nA 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](/pt/api/getting-started/#api_keys_overview) normalmente é utilizada.\n\n<div class=\"note\"><b>Nota</b><br><br>A chave API é confidencial e não deve ser armazenada ou usada em aplicativos de usuários finais.</div>\n\nCom a autenticação básica do lado do servidor, todas as solicitações de API devem incluir o seguinte cabeçalho:\n\n- para `basicAuth` — `Authorization: Basic <your_authorization_basic_key>`, onde `your_authorization_basic_key` é o par `project_id:api_key` codificado em Base64\n- para `basicMerchantAuth` — `Authorization: Basic <your_authorization_basic_key>`, onde `your_authorization_basic_key` é o par `merchant_id:api_key` codificado em Base64\n\nVocê pode encontrar os valores dos parâmetros em [Conta de Distribuidor](https://publisher.xsolla.com/):\n\n- `merchant_id` é exibido:\n  - Em **Configurações da empresa > Empresa**.\n  - 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>`.\n- `project_id` é exibido:\n  - Ao lado do nome do projeto na Conta de Distribuidor.\n  - 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>`.\n- `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:\n  - [Configurações da empresa > Chaves de API](https://publisher.xsolla.com/0/settings/api_key)\n  - [Configurações do projeto > Chave de API](https://publisher.xsolla.com/0/projects/0/edit/api_key)\n\n<div class=\"notice\"><b>Aviso</b><br><br>Se uma chamada de API necessária não incluir o parâmetro de caminho <code>project_id</code>, use uma chave de API que seja válida para todos os projetos da empresa para autorização.</div>\n\nPara mais informações sobre como trabalhar com chaves API, consulte as [referências de API](/pt/api/getting-started/#api_keys_overview).\n\n## Autenticação com suporte a acesso de convidado\n\nO esquema de autenticação `AuthForCart` é utilizado para as compras de carrinhos e suporta dois modos:\n\n1. **Autenticação com o JWT de um 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](/pt/api/pay-station/token/create-token).\n\n2. **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](/pt/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users). Em vez de um token, a solicitação deve incluir os seguintes cabeçalhos:\n   - `x-unauthorized-id` com um ID de solicitação\n   - `x-user` com o endereço de e-mail do usuário codificado em Base64\n\n## Links úteis\n\n- [Chamadas de API por modelo de interação](https://developers.xsolla.com/pt/api/catalog/)\n- [Tipos de ponto de extremidade](https://developers.xsolla.com/pt/api/catalog/)\n- [Tratamento de erros](https://developers.xsolla.com/pt/api/catalog/)\n- [Chaves de API](https://developers.xsolla.com/pt/api/catalog/)\n\n# Estrutura da entidade principal\n\nItens 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.\n\n<div class=\"note\"><b>Nota</b><br><br>Algumas chamadas podem incluir campos adicionais, mas eles não alteram a estrutura básica.</div>\n\n**Identificação**\n\n- `merchant_id` — ID da empresa na [Conta de Distribuidor](https://publisher.xsolla.com/)\n- `project_id` — ID do projeto na Conta de Distribuidor\n- `sku` — SKU do item, único dentro do projeto\n\n**Exibição na loja**\n\n- `name` — nome do item\n- `description` — descrição do item\n- `image_url` — URL da imagem\n- `is_enabled` — disponibilidade do item\n- `is_show_in_store` — se o item é exibido no catálogo\n\nPara mais informações sobre como gerenciar a disponibilidade de itens no catálogo, consulte a [documentação](/pt/items-catalog/catalog-features/items-availability/).\n\n**Organização**\n\n- `type` — tipo de item, por exemplo, um item virtual (`virtual_item`) ou conjunto (`bundle`)\n- `groups` — grupos aos quais o item pertence\n- `order` — ordem de exibição no catálogo\n\n**Condições de venda**\n\n- `prices` — preços em moeda real ou virtual\n- `limits` — limites de compra\n- `periods` — períodos de disponibilidade\n- `regions` — restrições regionais\n\n**Exemplo de estrutura da entidade 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# Fluxo básico de compra\n\nA 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](/pt/api/catalog/section/authentication).\n\nO exemplo a seguir mostra um fluxo básico para configurar e operar uma loja, desde a criação de itens até a compra.\n\n## Criar itens e grupos (Admin)\n\nCrie um catálogo de itens para sua loja, como itens virtuais, pacotes ou moeda virtual.\n\nExemplos de chamadas de API:\n- [Criar item virtual](/pt/api/catalog/virtual-items-currency-admin/admin-create-virtual-item)\n- [Criar conjunto](/pt/api/catalog/bundles-admin/admin-create-bundle)\n- [Criar moeda virtual](/pt/api/catalog/virtual-items-currency-admin/admin-create-virtual-currency)\n\n## Configurar promoções, cadeias e limites (Admin)\n\nConfigure ferramentas de aquisição de usuários e monetização, como descontos, bônus, recompensas diárias ou cadeias de ofertas.\n\nExemplos de chamadas de API:\n- [Criar promoção de bônus](/pt/api/liveops/promotions-bonuses/create-bonus-promotion)\n- [Criar recompensa diária](/pt/api/liveops/daily-chain-admin/admin-create-daily-chain)\n- [Criar promoção de oferta única no catálogo](/pt/api/liveops/promotions-unique-catalog-offers/admin-create-unique-catalog-offer)\n\n## Obter informações do item (Cliente)\n\nConfigure a exibição do item em sua aplicação.\n\n<div class=\"notice\">\n  <b>Aviso</b><br><br>\n    Não use chamadas de API da subseção Admin para construir um catálogo de usuários. Essas chamadas de API têm <a href=\"https://developers.xsolla.com/pt/api/getting-started/#api_rate_limits\" target=\"_blank\">limites de taxa</a> e não são destinadas para tráfego de usuários.\n</div>\n\n<br>\n\nExemplos de chamadas de API:\n- [Obter lista de itens virtuais](/pt/api/catalog/virtual-items-currency-catalog/get-virtual-items)\n- [Obter lista de grupos de itens](/pt/api/catalog/virtual-items-currency-catalog/get-item-groups)\n- [Obter lista de conjuntos](/pt/api/catalog/bundles-catalog/get-bundle-list)\n- [Obter lista de itens vendáveis](/pt/api/catalog/common-catalog/get-sellable-items)\n\n<div class=\"note\">\n  <b>Nota</b><br><br>\n    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 <code>\"show_inactive_time_limited_items\": 1</code> na solicitação do catálogo.\n</div>\n\n## Vender itens\n\nVocê pode vender itens usando os seguintes métodos:\n- Compra rápida — vender um SKU várias vezes.\n- Compra de carrinho — o usuário adiciona itens ao carrinho, remove itens e atualiza quantidades dentro de um único pedido.\n\nSe 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](/pt/api/catalog/virtual-payment/create-order-with-item-for-virtual-currency). A interface de pagamento não é necessária, pois a cobrança é processada quando a chamada de API é executada.\n\nPara a compra de itens gratuitos, use a chamada de API [Criar pedido com item gratuito especificado](/pt/api/catalog/free-item/create-free-order-with-item) ou a chamada de API [Criar pedido com carrinho gratuito](/pt/api/catalog/free-item/create-free-order). A interface de pagamento não é necessária — o pedido é imediatamente definido ao status <code>done</code>.\n\n### Compra rápida\n\nUse a chamada de API do lado do cliente para [criar um pedido com um item especificado](/pt/api/catalog/payment-client-side/create-order-with-item). A chamada retorna um token usado para abrir a interface de pagamento.\n\n<div class=\"note\">\n  <b>Nota</b><br><br>\n    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.\n</div>\n\n### Compra via carrinho\n\nA configuração e compra do carrinho podem ser realizadas no lado do cliente ou no lado do servidor.\n\n**Configure e compre um carrinho no cliente**\n\nImplemente 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.\n\nImplemente a seguinte lógica de carrinho:\n1. Após o jogador ter preenchido um carrinho, use a chamada de API [Preencher carrinho com itens](/pt/api/shop-builder/operation/cart-fill/). A chamada retorna as informações atuais sobre os itens selecionados (preços antes e depois dos descontos, itens bônus).\n2. Atualize o conteúdo do carrinho com base nas ações do usuário:\n   - Para adicionar um item ou alterar a quantidade de um item, use a chamada de API [Atualizar item do carrinho por ID do carrinho](/pt/api/shop-builder/operation/put-item-by-cart-id/).\n   - Para remover um item, use a chamada de API [Excluir item do carrinho por ID do carrinho](/pt/api/shop-builder/operation/delete-item-by-cart-id/).\n\n<div class=\"note\">\n  <b>Nota</b><br><br>\n    Para obter o status atual do carrinho, use a chamada de API Obter carrinho do usuário atual.\n</div>\n\n3. Use a chamada de API [Criar pedido com todos os itens do carrinho atual](/pt/api/shop-builder/operation/create-order/). A chamada retorna o ID do pedido e o token de pagamento. O pedido recém-criado é definido para o status <code>new</code> por padrão.\n\n**Configure e compre um carrinho no servidor**\n\nEsta 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.\n\nImplemente a seguinte lógica de carrinho:\n1. Após o jogador ter preenchido um carrinho, use a chamada de API [Preencher carrinho com itens](/pt/api/catalog/cart-server-side). A chamada retorna informações atuais sobre os itens selecionados (preços antes e depois dos descontos, itens bônus).\n2. Use a chamada de API [Criar pedido com todos os itens do carrinho atual](/pt/api/shop-builder/operation/create-order/). A chamada retorna o ID do pedido e o token de pagamento. O pedido recém-criado é definido ao status <code>new</code> por padrão.\n\n## Abertura da interface de pagamento\n\nUse 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](/pt/payment-ui-and-flow/payment-ui/how-to-open-payment-ui/#open_payment_ui).\n\n| Ação                           | Endpoint                                                                  |\n|:--------------------------------|:--------------------------------------------------------------------------|\n| Abrir no ambiente de produção.  | <code>https://secure.xsolla.com/paystation4/?token={token}</code>         |\n| Abrir no modo sandbox.          | <code>https://sandbox-secure.xsolla.com/paystation4/?token={token}</code> |\n\n<div class=\"note\">\n  <b>Nota</b><br><br>\n    Use o modo sandbox durante o desenvolvimento e teste. Compras de teste não fazem cobranças de contas reais. Você pode usar <a href=\"https://developers.xsolla.com/pt/dev-resources/testing/test-cards/\">cartões de teste</a>.\n\n    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](https://publisher.xsolla.com/0/settings/users).\n\n    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](https://publisher.xsolla.com/), 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.\n</div>\n\nPara 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.\n\nPossíveis status do pedido:\n- `new` — pedido criado\n- `paid` — pagamento recebido\n- `done` — item entregue\n- `canceled` — pedido cancelado\n- `expired` — pedido expirado\n\nAcompanhe o status do pedido usando um dos seguintes métodos:\n- [webhooks configurados no seu servidor](/pt/virtual-goods/own-ui/server-side-token-generation/set-up-order-tracking/#payments_integration_order_tracking)\n- [short-polling](/pt/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 WebSocket](/pt/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## Links úteis\n\n- Autenticação\n- [Chamadas de API por modelo de interação](/pt/api/catalog/section/authentication)\n- [Teste de pagamento](/pt/dev-resources/testing/general-info/#general_overview)\n- [Configurar rastreamento de status do pedido](/pt/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/?link=200-api#payments_integration_order_tracking)\n- [Webhooks](/pt/webhooks/overview)\n- [Limites de taxa](/pt/api/login/rate-limits)\n- [Tratamento de erros](/pt/api/getting-started/#api_errors_handling)\n- [Chaves de API](/pt/api/getting-started/#api_keys_overview)\n\n# Paginação\n\nChamadas 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.\n\nUse os seguintes parâmetros para controlar o número de itens retornados:\n\n- `limit` — número de itens por página\n- `offset` — índice do primeiro item na página (a numeração começa em 0)\n- `has_more` — indica se outra página está disponível\n- `total_items_count` — número total de itens\n\nExemplo de solicitação:\n\n```\nGET /items?limit=20&offset=40\n```\n\nExemplo de resposta:\n\n```json\n{\n  \"items\": [...],\n  \"has_more\": true,\n  \"total_items_count\": 135\n}\n```\n\nRecomenda-se enviar solicitações subsequentes até que a resposta retorne `has_more = false`.\n\n# Formato de data e hora\n\nDatas e valores de tempo são passados no formato [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).\n\nOs seguintes são suportados:\n\n- Deslocamento UTC\n- Valor `null` quando não há restrição de tempo para exibir um item\n- [Timestamp Unix](https://www.unixtimestamp.com/) (em segundos) usado em alguns campos\n\nFormato: `YYYY-MM-DDTHH:MM:SS±HH:MM`\n\nExemplo: `2026-03-16T10:00:00+03:00`\n\n# Localização\n\nA 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](/pt/doc/shop-builder/references/supported-languages/).\n\n**Campos suportados**\n\nA localização pode ser especificada para os seguintes parâmetros:\n\n- `name`\n- `description`\n- `long_description`\n\n**Formato de localidade**\n\nA chave de localidade pode ser especificada em um dos seguintes formatos:\n\n- Código de idioma de duas letras: `en`, `ru`\n- Código de idioma de cinco letras: `en-US`, `ru-RU`, `de-DE`\n\n**Exemplos**\n\nExemplo com um código de idioma de duas letras:\n\n```json\n{\n  \"name\": {\n    \"en\": \"Starter Pack\",\n    \"ru\": \"Стартовый набор\"\n  }\n}\n```\n\nExemplo com um 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 resposta de erro\n\nSe 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](/pt/dev-resources/references/errors/store-errors/).\n\n**Exemplo de resposta:**\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 erro.\n- `errorMessage` — descrição curta do erro.\n- `statusCode` — status da resposta HTTP.\n- `transactionId` — ID da solicitação. Retornado apenas em alguns casos.\n- `errorMessageExtended` — detalhes adicionais do erro, como parâmetros da solicitação. Retornado apenas em alguns casos.\n\n**Exemplo de resposta estendida:**\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 status HTTP comuns**\n\n- `400` — solicitação inválida\n- `401` — erro de autenticação\n- `403` — permissões insuficientes\n- `404` — recurso não encontrado\n- `422` — erro de validação\n- `429` — limite de taxa excedido\n\n**Recomendações**\n\n- Lide com o status HTTP e o corpo da resposta juntos.\n- Use `errorCode` para processar erros relacionados à lógica da aplicação.\n- Use `transactionId` para identificar solicitações mais rapidamente ao analisar erros.",
    "version": "2.0.0",
    "title": "API LiveOps"
  },
  "servers": [
    {
      "url": "https://store.xsolla.com/api"
    }
  ],
  "tags": [
    {
      "name": "promotion-limits-overview",
      "x-displayName": "Visão geral",
      "description": "Os limites de uso de promoção permitem restringir o número de vezes que um usuário específico pode usar uma promoção. Você também pode configurar redefinições de limite agendadas.\n\nOs limites são armazenados no lado da Xsolla e são configurados nas configurações de promoção na [Conta de Distribuidor](https://publisher.xsolla.com/0/projects/0/storefront/promotions) ou através do objeto `limits` nas seguintes chamadas de API:\n* [Criar promoção de desconto para item](/pt/api/liveops/promotions-discounts/create-item-promotion/) ou [Atualizar promoção de desconto](/pt/api/liveops/promotions-discounts/update-item-promotion)\n* [Criar promoção de bônus](/pt/api/liveops/promotions-bonuses/create-bonus-promotion/) ou [Atualizar promoção de bônus](/pt/api/liveops/promotions-bonuses/update-bonus-promotion)\n\nAs informações de limite são retornadas no objeto `items.promotions.limits` nas seguintes chamadas de API para recuperar o catálogo de itens:\n* [Obter lista de itens virtuais](/pt/api/catalog/virtual-items-currency-catalog/get-virtual-items/)\n* [Obter lista de moedas virtuais](/pt/api/catalog/virtual-items-currency-catalog/get-virtual-currency/)\n* [Obter lista de pacotes de moedas virtuais](/pt/api/catalog/virtual-items-currency-catalog/get-virtual-currency-package/)\n* [Obter lista de conjuntos](/pt/api/catalog/bundles-catalog/get-bundle-list/)\n* [Obter lista de jogos](/pt/api/catalog/game-keys-catalog/get-games-list/)\n\nAs 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.\n\n<div class=\"note\">\n  <b>Nota</b><br><br>\n  Para informações detalhadas sobre como configurar limites no catálogo, consulte a seção <a href=\"/pt/liveops/promotion-tools/liveops-number-limits/\">Limites de uso de promoção</a>.\n</div>\n\nVocê pode configurar [limits.per_user](/pt/api/liveops/promotions-discounts/create-item-promotion#promotions-discounts/create-item-promotion/t=request&path=limits) — um limite no número de vezes que uma promoção pode ser usada por um único usuário.\n\nUsuários não autenticados sempre veem o número máximo de usos da promoção.\n\nPara mostrar os usos restantes da promoção do usuário com o limite ativo aplicado, passe os dados de autorização do usuário ao solicitar o catálogo de itens.\n\nPara configurar um período de redefinição agendado — diário, semanal ou mensal — passe o objeto `limits.recurrent_schedule` ao [criar](/pt/api/liveops/promotions-discounts/create-item-promotion#promotions-discounts/create-item-promotion/t=request&path=limits/recurrent_schedule) ou [atualizar](/pt/api/liveops/promotions-discounts/update-item-promotion#promotions-discounts/update-item-promotion/t=request&path=limits/recurrent_schedule) uma promoção.\n\n**Cenário de configuração e aplicação de limites**\n\n1. Você cria uma promoção usando a chamada de API [Criar promoção de desconto para item](/pt/api/liveops/promotions-discounts/create-item-promotion/) ou [Criar promoção de bônus](/pt/api/liveops/promotions-bonuses/create-bonus-promotion/) e passa o objeto `limits`.\n2. Você solicita o catálogo para um usuário não autenticado — a resposta retorna o número máximo de usos da promoção no objeto `items.promotions.limits`.\n3. O usuário faz login.\n4. Você solicita o catálogo com o token de autorização do usuário — a resposta retorna o número restante de usos com o limite ativo aplicado.\n5. O usuário seleciona um item promocional e faz uma compra.\n6. Após o pagamento bem-sucedido, a Xsolla atualiza o valor `items.promotions.limits.per_user`. Quando atinge `0`, o item é retornado nas chamadas de API do catálogo sem desconto ou bônus.\n7. Você pode atualizar o limite usando as chamadas de API da subseção **Gerenciamento**:\n   * [atualizar todos os limites de promoção para o usuário especificado](/pt/api/liveops/user-limits-admin/reset-all-user-promotions-limit/) ou [atualizar limites para uma promoção específica](/pt/api/liveops/user-limits-admin/reset-user-promotion-limit/)\n   * [definir um valor de limite específico](/pt/api/liveops/user-limits-admin/set-user-promotion-limit/)\n   * [aumentar](/pt/api/liveops/user-limits-admin/add-user-promotion-limit/) ou [diminuir o número disponível de usos](/pt/api/liveops/user-limits-admin/remove-user-promotion-limit/)\n8. Você recupera o valor atualizado do limite em `items.promotions.limits` na próxima solicitação de catálogo feita com o token de autorização do usuário e o exibe para o usuário.\n\n![Limites de promoção](https://cdn.xsolla.net/developers/current/images/api_docs/promotion-limit.svg)"
    },
    {
      "name": "promotions-overview",
      "x-displayName": "Visão geral",
      "description": "Promoções são ferramentas de marketing para atrair novos usuários e aumentar as vendas. Usando a Xsolla API, você pode configurar as seguintes promoções:\n\n* Descontos — preços reduzidos nos itens selecionados.\n* Bônus — itens concedidos aos usuários ao junto da compra deles.\n* Cupons — códigos que permitem os usuários receberem um ou mais itens bônus ao os resgatarem.\n* Códigos promocionais — códigos que permitem que os usuários recebam itens bônus, um desconto em um item específico, ou um desconto no carrinho inteiro. Diferentemente dos cupons, que são resgatados após a inserção deles pelo usuário, os códigos promocionais são resgatados durante a compra (na finalização).\n* Ofertas exclusivas — itens ocultos exibidos no catálogo a usuários que inseriram um código de oferta exclusiva. Se o código não for inserido, os itens não são exibidos.\n\nExemplo de fluxo para configurar uma promoção de desconto:\n1. Crie itens usando as chamadas da subseção **Admin** dos grupos [Itens e moedas virtuais](/pt/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/), [Conjuntos](/pt/api/catalog/bundles-admin/admin-create-bundle), ou [Chaves de jogo](/pt/api/catalog/game-keys-admin).\n2. Crie uma promoção usando a chamada [Criar promoção de desconto para item](/pt/api/liveops/promotions-discounts/create-item-promotion/). Na matriz `items`, passe os SKUs dos itens necessários.\n3. Configure os períodos de validade da promoção. Para fazer isso, chame os métodos [Criar promoção de desconto para item](/pt/api/liveops/promotions-discounts/create-item-promotion/) ou [Atualizar promoção de item](/pt/api/liveops/promotions-discounts/update-item-promotion/), e passe o campo `promotion_periods` como uma matriz de objetos onde `date_from` define o começo, e `date_until` define a data final do período de validade.\n4. Ative uma promoção usando a chamada [Atualizar promoção de item](/pt/api/liveops/promotions-discounts/update-item-promotion/). Passe o parâmetro`\"is_enabled\": true`.\n5. Para obter informações sobre os preços dos itens, incluindo preços com descontos, chame os métodos da API de cliente para obter um catálogo de itens das subseções [Comum > Catálogo](/pt/api/catalog/tag/common-catalog/), [Itens e Moedas Virtuais > Catalog](/pt/api/catalog/virtual-items-currency-catalog/get-virtual-items/) e [Conjuntos > Catálogo](/pt/api/catalog/bundles-catalog/get-bundle-list/).\n\n![Exemplo de configuração de promoção](https://cdn.xsolla.net/developers/current/images/api_docs/promo-overview.svg)\n\nConsulte a nossa documentação para obter informações detalhadas sobre a configuração de promoções:\n* [Descontos](https://developers.xsolla.com/pt/liveops/promotion-tools/discounts/)\n* [Bônus](https://developers.xsolla.com/pt/liveops/promotion-tools/bonuses/)\n* [Cupons](https://developers.xsolla.com/pt/liveops/promotion-tools/coupons/)\n* [Códigos promocionais](https://developers.xsolla.com/pt/liveops/promotion-tools/promo-codes/)\n* [Ofertas de catálogo exclusivas](https://developers.xsolla.com/pt/liveops/promotion-tools/unique-offer/)"
    },
    {
      "name": "promotions-common",
      "x-displayName": "Chamadas de API comuns",
      "description": "Você pode ver métodos API desta subseção e gerenciar tipos diferentes de promoções."
    },
    {
      "name": "promotions-coupons",
      "x-displayName": "Cupons",
      "description": "Chame métodos API desta subseção para configurar e gerenciar promoções de cupons.\n\n<div class=\"note\">\n  <p><b>Observação</b></p>\n  <p>Consulte a nossa <a href=\"https://developers.xsolla.com/pt/liveops/promotion-tools/coupons/\">documentação</a> para obter informações detalhadas sobre cupons.</p>\n</div>"
    },
    {
      "name": "promotions-promo-codes",
      "x-displayName": "Códigos promocionais",
      "description": "Chame métodos API desta subseção para configurar e gerenciar promoções de código promocional.\n\n<div class=\"note\">\n  <p><b>Observação</b></p>\n  <p>Consulte a nossa <a href=\"https://developers.xsolla.com/pt/liveops/promotion-tools/promo-codes/\">documentação</a> para obter informações detalhadas sobre códigos promocionais.</p>\n</div>"
    },
    {
      "name": "promotions-unique-catalog-offers",
      "x-displayName": "Ofertas de catálogo exclusivas",
      "description": "Chame métodos API desta subseção para configurar e gerenciar ofertas de catálogo exclusivas.\n\n<div class=\"note\">\n  <p><b>Observação</b></p>\n  <p>Consulte a nossa <a href=\"https://developers.xsolla.com/pt/liveops/promotion-tools/unique-offer/\">documentação</a> para obter informações detalhadas sobre ofertas exclusivas.</p>\n</div>"
    },
    {
      "name": "promotions-discounts",
      "x-displayName": "Descontos",
      "description": "Chame métodos API desta subseção para configurar e gerenciar promoções de descontos.\n\n<div class=\"note\">\n  <p><b>Observação</b></p>\n  <p>Consulte a nossa <a href=\"https://developers.xsolla.com/pt/liveops/promotion-tools/discounts/\">documentação</a> para obter informações detalhadas sobre descontos.</p>\n</div>"
    },
    {
      "name": "promotions-bonuses",
      "x-displayName": "Bônus",
      "description": "</div>Chame métodos API desta subseção para configurar e gerenciar promoções de bônus.\n\n<div class=\"note\">\n  <p><b>Observação</b></p>\n  <p>Consulte a nossa <a href=\"https://developers.xsolla.com/pt/liveops/promotion-tools/bonuses/\">documentação</a> para obter informações detalhadas sobre bônus.</p>\n</div>"
    },
    {
      "name": "personalized-catalog",
      "x-displayName": "Catálogo personalizado",
      "description": "A personalização permite que você especifique as condições para exibir o catálogo de itens e aplicar promoções apenas para usuários autorizados específicos. As condições são definidas com base nos atributos dos usuários e permite que você ofereça itens e promoções que sejam relevantes a usuários específicos.\n\nOs seguintes tipos de personalização estão disponíveis:\n\n* [Personalização do lado da Xsolla](/pt/liveops/promotion-tools/personalization/#guides_personalization_on_xsolla_side). Regras de personalização e lógica são configuradas e armazenadas no lado da Xsolla.\n* [Personalização do lado do parceiro](/pt/liveops/promotion-tools/personalization/#guides_personalization_on_partner_side). Você configura as regras e lógica de personalização do seu lado e envia uma carga de catálogo final para um usuário específico à Xsolla.\n\n<div class=\"note\">\n  Observação</b><br><br>\n  Você só pode usar um tipo de personalização. Para alterá-lo, siga as\n  <a href=\"/pt/liveops/promotion-tools/personalization/#guides_personalization_change\">instruções</a>.\n</div>\n\nPara configurar a personalização no lado da Xsolla usando a Xsolla API:\n\n1. Crie itens usando as chamadas API da subseção **Admin** dos grupos [Itens e moedas virtuais](/pt/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/), [Conjuntos](/pt/api/catalog/bundles-admin/admin-create-bundle) ou [Chaves de jogo](/pt/api/catalog/game-keys-admin).\n2. [Configure os atributos dos usuários usando a Xsolla Login API](/pt/liveops/promotion-tools/personalization/#web_shop_guide_personalization_setting_attributes) e mantenha-os sincronizados atualizando os dados na Xsolla sempre que ocorrerem atualizações no seu jogo.\n3. Configure a personalização para itens ou promoções:\n    * Para personalizar o catálogo de itens, define as regras de exibição de catálogos usando a chamada de API [Criar regra de filtro de catálogo](/pt/api/liveops/personalized-catalog/create-filter-rule):\n        * Na matriz [attribute_conditions](/pt/api/liveops/personalized-catalog/create-filter-rule#personalized-catalog/create-filter-rule/t=request&path=attribute_conditions), especifique as condições que determinam a disponibilidade do item com base nos atributos do usuário.\n        * Na matriz [itens](/pt/api/liveops/personalized-catalog/create-filter-rule#personalized-catalog/create-filter-rule/t=request&path=items), forneça a lista de itens que devem permanecer visíveis ao usuário se os atributos deles corresponder às condições especificadas.\n    * Para configurar promoções personalizadas, use as [chamadas API de criação e atualização para o tipo de promoção desejado](/pt/api/liveops/promotions-discounts/create-item-promotion). Na matriz [attribute_conditions](/pt/api/liveops/promotions-discounts/create-item-promotion), especifique as condições que determinam a disponibilidade da promoção com base nos atributos de usuários.\n\n4. Passe o [JWT do usuário](/pt/api/login/getting-user-token?#getting-user-token) com os atributos do usuário para as [chamadas API de recuperação de catálogo](https://developers.xsolla.com/pt/api/catalog/virtual-items-currency-catalog/get-virtual-items) para receber um catálogo personalizado.\n\n**Sequência para configurar e aplicar personalizações do lado da Xsolla para o catálogo de itens:**\n\n![Personalização para o catálogo de itens](https://cdn.xsolla.net/developers/current/images/api_docs/personalization-catalog.png)\n\n**Sequência para configurar e aplicar personalizações do lado da Xsolla para promoções:**\n\n![Personalização para promoções](https://cdn.xsolla.net/developers/current/images/api_docs/personalization-liveops.png)\n\n<div class=\"note\">\n<b>Observação</b><br><br>\nInformações detalhadas são fornecidas:\n<ul>\n  <li>no <a href=\"/pt/liveops/promotion-tools/personalization/\">guia de configuração de personalização do laod da Xsolal e do lado do parceiro</a></li>\n  <li>no tutorial passo-a-passo sobre a <a href=\"/pt/doc/shop-builder/tutorials/personalization-tutorial/\">personalização de catálogos de itens no lado da Xsolla</a></li>\n</ul>\n</div>"
    },
    {
      "name": "user-limits-admin",
      "x-displayName": "Gestão"
    },
    {
      "name": "reward-chain-value-points-overview",
      "x-displayName": "Visão geral",
      "description": "Cadeias de recompensas encorajam usuários a fazerem compras na loja usando moedas reais. Para cada compra, os usuários ganham pontos de valor e progridem pela cadeia de recompensas. Se os usuários fizerem partes de clãs, suas compras contribuem pontos de valor ao clã inteiro. Para informações detalhadas na configuração de cadeias de recompensas, consulte a seção [Sistema de Recompensas](https://developers.xsolla.com/pt/liveops/promotion-tools/reward-system/).\n\nPara configurar cadeias de recompensas, use chamadas de API da subseção **Admin**. Para exibir cadeias e resgatar recompensas, use chamadas de API da subseção **Cliente**. Para trabalhar com cadeias de recompensas com o clã, use chamadas de API da subseção **Cliente de Clãs**.\n\n<b>Exemplo de fluxo de configuração de cadeia de recompensas:</b>\n\n1. Crie itens usando chamadas de API da subseção **Admin** dos grupos [Itens e moedas virtuais](https://developers.xsolla.com/pt/api/catalog/virtual-items-currency-overview) ou [Conjuntos](https://developers.xsolla.com/pt/api/catalog/bundles-admin).\n2. Crie pontos de valor usando a chamada de API [Criar ponto de valor](https://developers.xsolla.com/pt/api/liveops/reward-chain-value-points-admin/admin-create-value-points).\n3. Atribua pontos de valor a itens usando a chamada de API [Definir pontos de valor para os itens](https://developers.xsolla.com/pt/api/liveops/reward-chain-value-points-admin/admin-set-items-value-point-reward). Os usuários recebem pontos de valor depois de comprarem esses itens.\n4. Crie uma cadeia usando a chamada de API [Criar cadeia de recompensas](https://developers.xsolla.com/pt/api/liveops/reward-chain-value-points-admin/admin-create-reward-chain). Para ativar a cadeia, passe o parâmetro `is_enabled: true`.\n5. Implemente a exibição de cadeia de recompensas. Para fazer isso, solicite a lista de cadeias disponíveis usando a chamada de API [Obter cadeias de recompensa do usuário atual](https://developers.xsolla.com/pt/api/liveops/reward-chain-client/get-reward-chains-list). A resposta contém todas as cadeias ativas com seus passos e status.\n6. Implemente a exibição do saldo de pontos de valor. Para fazer isso, use a chamada de API [Obter saldo de pontos de valor do usuário atual](https://developers.xsolla.com/pt/api/liveops/reward-chain-client/get-user-reward-chain-balance).\n7. Implemente o resgate de recompensa de etapa. Para fazer isso, use a chamada de API [Resgatar recompensa de etapa](https://developers.xsolla.com/pt/api/liveops/reward-chain-client/claim-user-reward-chain-step-reward).\n8. Configure o rastreamento de status do pedido, ex.: usando [webhooks](https://developers.xsolla.com/pt/webhooks/section/overview), para prontamente receber dados nas recompensas resgatadas e conceder eles ao usuário.\n\n![Fluxo de configuração da cadeia de recompensas](https://cdn.xsolla.net/developers/current/images/api_docs/reward-chains-and-value-points-overview.svg)"
    },
    {
      "name": "reward-chain-value-points-admin",
      "x-displayName": "Admin"
    },
    {
      "name": "reward-chain-client",
      "x-displayName": "Cliente"
    },
    {
      "name": "clan-reward-chain-client",
      "x-displayName": "Cliente de clãs"
    },
    {
      "name": "daily-chain-overview",
      "x-displayName": "Visão geral",
      "description": "As recompensas diárias incentivam os usuários a acessar a loja todos os dias para receber itens gratuitos. O comportamento ao pular um dia depende do [tipo de sequência](/pt/api/liveops/daily-chain-admin/admin-create-daily-chain#daily-chain-admin/admin-create-daily-chain/t=request&path=&oneof=0/type). Para que as recompensas diárias funcionem corretamente, é necessário configurar a [autenticação de usuário](/pt/api/catalog#section/Authentication). Usuários não autenticados podem visualizar a sequência completa de recompensas diárias, mas não podem resgatar as recompensas. Para obter informações detalhadas sobre a configuração de recompensas diárias, consulte a seção [Recompensas diárias](/pt/liveops/promotion-tools/daily-rewards/).\n\nAs cadeias são configuradas utilizando as chamadas de API da subseção **Admin**. Para conceder recompensas, utilize as chamadas de API da subseção **Client**.\n\nCenário de configuração de cadeia diária:\n\n1. Crie itens usando as chamadas de API da subseção **Admin** dos grupos [Itens e moedas virtuais](/pt/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/) ou [Pacotes](/pt/api/catalog/bundles-admin/admin-create-bundle).\n2. Crie uma cadeia usando a chamada de API [Criar recompensa diária](/pt/api/liveops/daily-chain-admin/admin-create-daily-chain).\n3. Ative a cadeia passando o parâmetro `\"is_enabled\": true` para a chamada de API [Criar recompensa diária](/pt/api/liveops/daily-chain-admin/admin-create-daily-chain/).\n4. Solicite a lista de cadeias disponíveis usando a chamada de API [Obter recompensas diárias do usuário atual](/pt/api/liveops/daily-chain-client/get-daily-chains-list), passando o [JWT do usuário](/pt/api/catalog/section/authentication/authentication-using-user's-jwt). A resposta contém todas as cadeias ativas, com seus respectivos passos e status.\n5. Configure a concessão de itens via [webhooks](/pt/webhooks/section/osnovnye-polozheniya).\n6. Conceda a recompensa diária ao usuário usando a chamada de API [Resgatar recompensa do passo da cadeia diária](/pt/api/liveops/daily-chain-client/claim-user-daily-chain-step-reward), passando `daily_chain_id` e `step_number`.\n\n![Recompensas diárias](https://cdn.xsolla.net/developers/current/images/api_docs/daily-rewards.svg)"
    },
    {
      "name": "daily-chain-admin",
      "x-displayName": "Admin"
    },
    {
      "name": "daily-chain-client",
      "x-displayName": "Cliente"
    },
    {
      "name": "offer-chains-overview",
      "x-displayName": "Visão geral",
      "description": "Cadeias de ofertas são uma sequência de etapas, cada uma contendo um item que os usuários recebem de graça ou compram como parte de uma oferta ativa. Cadeias de ofertas podem incluir itens exclusivos disponíveis somente dentro da cadeia, bem como itens por preços descontados quando comparados aos preços na loja. Para informações detalhadas sobre como configurar essa ferramenta de marketing, consulte a seção [Cadeias de ofertas](https://developers.xsolla.com/pt/liveops/promotion-tools/offer-chains/).\n\nPara configurar cadeias de ofertas, use chamadas de API da subseção **Admin**. Para exibir cadeias e implementar a lógica para trabalhar com itens que os usuários recebem, use chamadas de API da subseção **Cliente**.\n\n<b>Exemplo de fluxo de configuração de cadeia de ofertas:</b>\n\n1. Crie itens usando as chamadas de API da subseção **Admin** dos grupos [Itens e moedas virtuais](https://developers.xsolla.com/pt/api/catalog/virtual-items-currency-overview) ou [Conjuntos](https://developers.xsolla.com/pt/api/catalog/bundles-admin).\n\n2. Crie uma cadeia usando a chamada de API [Criar cadeia de ofertas](https://developers.xsolla.com/pt/api/liveops/offer-chain-admin/admin-create-offer-chain). Para ativar a cadeia, passe o parâmetro `is_enabled: true`.\n\n3. Implemente a cadeia de ofertas. Para fazer isso, solicite a lista de cadeias disponíveis usando a chamada de API [Obter cadeias de ofertas do usuário atual](https://developers.xsolla.com/pt/api/liveops/offer-chain-client/get-offer-chains-list). A resposta contém todas as cadeias ativas com suas etapas e status.\n\n4. Implemente a lógica para trabalhar com itens que os usuários recebem:\n\n    - Se o item da etapa for gratuito, use a chamada de API [Resgatar etapa gratuita da cadeia de ofertas](https://developers.xsolla.com/pt/api/liveops/offer-chain-client/claim-user-offer-chain-step-reward). Passe `offer_chain_id` e `step_number` na solicitação.\n\n    - Se o item da etapa for pago, use a chamada de API [Criar pedido para a etapa da cadeia de ofertas paga](https://developers.xsolla.com/pt/api/liveops/offer-chain-client/order-user-offer-chain-step-reward). Passe `offer_chain_id` e `step_number` na solicitação. A resposta retorna um `order_id` e um token para abrir a interface de pagamento.\n\n5. Configure o rastreamento do status do pedido, ex.:, usando [webhooks](https://developers.xsolla.com/pt/webhooks/section/overview), para prontamente receber dados sobre itens resgatados ou comprados e concedê-los ao usuário.\n\n![Fluxo de configuração da cadeia de recompensas](https://cdn.xsolla.net/developers/current/images/api_docs/offer-chains-overview.svg)"
    },
    {
      "name": "offer-chain-admin",
      "x-displayName": "Admin"
    },
    {
      "name": "offer-chain-client",
      "x-displayName": "Cliente"
    },
    {
      "name": "upsell-overview",
      "x-displayName": "Visão geral",
      "description": "A venda cruzada é um método de vendas no qual se oferece ao usuário a compra de um item com valor agregado. Por exemplo, pode ser o item com maior demanda entre outros usuários. Você também pode configurar restrições regionais para itens de venda cruzada. Para informações detalhadas, consulte a seção [Venda cruzada](/pt/liveops/promotion-tools/upsell/).\n\nA lista de itens configurados para venda cruzada e o status de venda cruzada (habilitado ou desabilitado) são retornados pelo método de API [Obter informações sobre venda cruzada no projeto](/pt/api/liveops/upsell-admin/get-upsell-configurations-for-project-admin). No lado do cliente, a lista de itens é retornada pelo método de API [Obter lista de itens de venda cruzada no projeto](/pt/api/liveops/upsell-client/get-upsell-for-project-client) e exibida ao usuário no momento apropriado do fluxo de compra.\n\nCenário de configuração de venda cruzada:\n\n1. Crie itens usando as chamadas de API da subseção **Admin** dos grupos [Itens e moedas virtuais](/pt/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/), [Pacotes](/pt/api/catalog/bundles-admin/admin-create-bundle) ou [Chaves de jogo](/pt/api/catalog/game-keys-admin).\n2. Configure a venda cruzada usando a chamada de API [Criar venda cruzada](/pt/api/liveops/upsell-admin/post-upsell). Passe os SKUs dos itens necessários na matriz `items`.\n3. Ative a venda cruzada para o projeto usando a chamada de API [Ativar/Desativar venda cruzada do projeto](/pt/api/liveops/upsell-admin/put-upsell-toggle-active-inactive).\n4. Exiba a oferta de venda cruzada ao usuário no ponto apropriado do fluxo de compra usando a chamada de API [Obter lista de itens de venda cruzada no projeto](/pt/api/liveops/upsell-client/get-upsell-for-project-client).\n5. Implemente a abertura da interface de pagamento para pagar o pedido. Por exemplo, você pode usar a chamada de API [Criar pedido com todos os itens de um carrinho específico](/pt/api/catalog/payment-client-side/create-order-by-cart-id). A resposta retorna um token para abrir a interface de pagamento\n6. Configure o rastreamento do status do pedido, por exemplo, usando [webhooks](/pt/webhooks/overview) para receber prontamente dados sobre itens pagos com sucesso e disponibilizá-los ao usuário.\n\n![Cenário de venda cruzada](https://cdn.xsolla.net/developers/current/images/api_docs/Upsell.svg)"
    },
    {
      "name": "upsell-admin",
      "x-displayName": "Admin"
    },
    {
      "name": "upsell-client",
      "x-displayName": "Cliente"
    },
    {
      "name": "loyalty-program-overview",
      "x-displayName": "Visão geral",
      "description": "A API Loyalty as Service permite que você gerencie os saldos de pontos de fidelidade dos usuários: obtenha o saldo atual de um usuário, bem como adicione ou remova pontos de fidelidade.\n\nAs chamadas de API Admin da API Loyalty as Service ocorrem do lado do servidor e exigem autenticação básica.\n\nO URL base para essa API é `https://loyalty-points.xsolla.com/`.\n\nPara informações mais detalhadas sobre como configurar essa ferramenta de marketing, veja [Loyalty as Service](https://developers.xsolla.com/pt/liveops/promotion-tools/loyalty-as-service/)."
    },
    {
      "name": "loyalty-program-admin",
      "x-displayName": "Admin"
    }
  ],
  "paths": {
    "/v3/project/{project_id}/admin/promotion": {
      "get": {
        "summary": "Obter toda a lista de promoções",
        "description": "Obtém a lista de promoções de um projeto.",
        "operationId": "get-promotion-list",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          },
          {
            "$ref": "#/components/parameters/enabled-query-param"
          }
        ],
        "tags": [
          "promotions-common"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-get-promotions"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ]
      }
    },
    "/v2/project/{project_id}/admin/promotion/{promotion_id}/activate": {
      "put": {
        "summary": "Ativar promoção",
        "description": "Ativa uma promoção.",
        "operationId": "activate-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "tags": [
          "promotions-common"
        ],
        "responses": {
          "204": {
            "description": "Promoção ativada com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-activate-deactivate-promotion"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/promotion/{promotion_id}/deactivate": {
      "put": {
        "summary": "Desativar promoção",
        "description": "Desativa uma promoção.",
        "operationId": "deactivate-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "tags": [
          "promotions-common"
        ],
        "responses": {
          "204": {
            "description": "Promoção desativada com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-activate-deactivate-promotion"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/promotion/redeemable/code/{code}": {
      "get": {
        "summary": "Obtenha promoção resgatável por código",
        "description": "Obtém a promoção por um código promocional ou código de cupom.",
        "operationId": "get-redeemable-promotion-by-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/code-path-param"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "tags": [
          "promotions-common"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-redeemable-by-code"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-code-not-found"
          },
          "405": {
            "$ref": "#/components/responses/405-method-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/coupon/redeem": {
      "post": {
        "summary": "Resgatar código de cupom",
        "description": "Resgata um código de cupom. O usuário recebe um bônus após o resgate do cupom. <br>\n\n<div class=\"note\">\n  <strong>Nota</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, consulte o bloco <strong>Segurança</strong> para esta chamada.\n</div>",
        "operationId": "redeem-coupon",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_redeem-coupon-model"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-coupon-redeemed"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "403": {
            "$ref": "#/components/responses/Promotions_403-auth-header"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-redeem-coupon"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ]
      }
    },
    "/v2/project/{project_id}/coupon/code/{coupon_code}/rewards": {
      "get": {
        "summary": "Obter recompensas de cupom",
        "description": "Obtém recompensas de cupons pelo seu código.\nPode ser usado para permitir que os usuários escolham um entre vários itens como bônus.\nO caso usual é escolher um DRM se o cupom contiver um jogo como bônus (`type=unit`). <br>\n\n<div class=\"note\">\n  <strong>Nota</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, consulte o bloco <strong>Segurança</strong> para esta chamada.\n</div>",
        "operationId": "get-coupon-rewards-by-code",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/coupon_code-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-coupon-rewards"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "403": {
            "$ref": "#/components/responses/Promotions_403-auth-header"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-rewards"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ]
      }
    },
    "/v3/project/{project_id}/admin/coupon": {
      "post": {
        "summary": "Criar promoção de cupom",
        "description": "Cria uma promoção de cupom.",
        "operationId": "admin-create-coupon",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_coupon-create"
        },
        "responses": {
          "201": {
            "description": "Cupom criado com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "external_id": {
                      "$ref": "#/components/schemas/Promotions_coupon-external_id"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "external_id": "coupon_external_id"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-invalid-coupon"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-coupons",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Obter lista de promoções de cupons",
        "description": "Obtém a lista de promoções de cupons de um projeto.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-get-coupons"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/coupon/{external_id}": {
      "put": {
        "summary": "Promoção de cupom de atualização",
        "description": "Atualiza uma promoção de cupom.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "update-coupon-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_coupon-update"
        },
        "responses": {
          "204": {
            "description": "Cupom atualizado com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-invalid-coupon"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-coupon",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Ganhe promoção de cupom",
        "description": "Obtém uma promoção de cupom especificada.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "responses": {
          "200": {
            "description": "Cupom recebido com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/admin-promotions_200-get-coupon-promotion-model"
                },
                "examples": {
                  "response": {
                    "value": {
                      "external_id": "summer20221",
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        },
                        {
                          "date_from": "2020-05-15T18:16:00+05:00",
                          "date_until": "2020-05-25T18:16:00+05:00"
                        }
                      ],
                      "name": {
                        "en-US": "Coupon name",
                        "ru-RU": "Название купона"
                      },
                      "is_enabled": true,
                      "bonus": [
                        {
                          "sku": "com.xsolla.diamonds_1",
                          "quantity": 100
                        }
                      ],
                      "redeem_user_limit": null,
                      "redeem_total_limit": 100,
                      "redeem_code_limit": null,
                      "total_limit_state": {
                        "available": 50,
                        "reserved": 10,
                        "used": 40
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        }
      },
      "delete": {
        "summary": "Excluir promoção de cupom",
        "description": "Exclui a [promoção de cupom](https://developers.xsolla.com/pt/doc/shop-builder/features/coupons/). A promoção excluída:\n* Desaparece da lista de promoções configuradas em seu projeto.\n* Não é mais aplicada ao catálogo de itens. O usuário não pode obter itens bônus com esta promoção.\n\nApós a exclusão, a promoção não pode ser restaurada.\nOs códigos de cupom da promoção excluída podem ser [adicionados](https://developers.xsolla.com/pt/api/shop-builder/operation/create-coupon-code/) às promoções existentes.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "delete-coupon-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "responses": {
          "204": {
            "description": "Promoção de cupom excluída com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/coupon/{external_id}/activate": {
      "put": {
        "summary": "Ativar promoção de cupom",
        "description": "Ativa uma promoção de cupom.\nA promoção de cupom criada está desabilitada por padrão.\nEle não estará pronto para resgate até que você o ative.\nUse esse ponto de extremidade para habilitar e ativar uma promoção de cupom.",
        "operationId": "activate-coupon",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "204": {
            "description": "Cupom ativado com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-error"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/coupon/{external_id}/deactivate": {
      "put": {
        "summary": "Desativar promoção de cupom",
        "description": "Desativa uma promoção de cupom.\nA promoção de cupom criada está desabilitada por padrão.\nEle não estará pronto para resgate até que você o ative.\nUse esse ponto de extremidade para desativar e desativar uma promoção de cupom.",
        "operationId": "deactivate-coupon",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "204": {
            "description": "Cupom desativado com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-error"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/coupon/{external_id}/code": {
      "post": {
        "operationId": "create-coupon-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Criar código de cupom",
        "description": "Cria código de cupom.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_create-coupon-promocode-code"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Promotions_201-coupon-promocode-code-created"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-coupon-promocode-same-code-exists"
          }
        }
      },
      "get": {
        "operationId": "get-coupon-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Obter códigos de cupom",
        "description": "Obtém códigos de cupom.\n\nA resposta inclui a quantidade total de códigos na promoção (`total_count`) e os códigos para a página atual (`codes`). Para recuperar a próxima página, aumente `offset` pelo valor de `limit` (ex.:, `“offset”: 100`, depois `“offset”: 200`) até você recuperar todos os códigos.\n\nNa maioria dos casos, `“limit”: 100` ou `“limit”: 1000` é suficiente. Reserve valores maiores tais como`“limit”: 10000` para exportações em massa únicas, e evite usar `“limit”: 50000` a não ser que seja necessário.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-coupon-code-list"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/coupon/{external_id}/code/generate": {
      "put": {
        "summary": "Gerar códigos de cupom",
        "description": "Gera códigos de cupom.\n\nDiretrizes sobre a geração de códigos:\n\n* Não há uma quantidade total máxima de códigos por promoção, mas cada solicitação se limita a 50.000 códigos. Solicitações com uma quantidade maior retorna um erro `422 Entidade Não Processável`. Se você precisar de mais de 50.000 códigos, envie múltiplas solicitações.\n\n* Para melhorar a confiabilidade, recomendamos gerar códigos em lotes menores, de até 10.000 por solicitação. Ex.:, para criar 100.000 códigos, envie 10 solicitações com `\"count\": 10000` em vez de 2 solicitações com `\"count\": 50000`. Espere por uma resposta bem-sucedida para cada solicitação antes de enviar a próxima.\n\n* Tenha em mente os limites de frequência que são definidos a 15 solicitações por segundo. Ao gerar volumes grandes, envie solicitações sequencialmente para evitar exceder o limite de frequência e obter um erro `429`.\n\n* Para recuperar a lista de códigos, chame o método [Obter códigos de cupom](/pt/api/liveops/promotions-coupons/get-coupon-codes).\n\n| Parâmetro | Valor |\n|---|---|\n| Número mínimo de códigos por solicitação. | 1 |\n| Número máximo de códigos por solicitação. Use apenas quando precisar do maior lote único quanto possível. | 50,000 |\n| Número recomendado de códigos por solicitação. | Até 10.000. Se precisar criar mais, envie múltiplas solicitações sequenciais. |",
        "operationId": "generate-coupon-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "count": {
                    "$ref": "#/components/schemas/Promotions_coupon-generate-count"
                  }
                },
                "required": [
                  "count"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Códigos gerados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "$ref": "#/components/schemas/Promotions_coupon-generate-count"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "count": 10
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        }
      }
    },
    "/v2/project/{project_id}/promocode/redeem": {
      "post": {
        "summary": "Resgatar código promocional",
        "description": "Resgata um código promocional de promoção.\nDepois de resgatar um código promocional, o usuário receberá itens gratuitos e/ou o preço do carrinho e/ou itens específicos será diminuído.",
        "operationId": "redeem-promo-code",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_redeem-promo-code-model"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-promo-code-redeemed"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "403": {
            "$ref": "#/components/responses/Promotions_403-auth-header"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-promo-code"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-redeem-coupon"
          }
        },
        "security": [
          {
            "AuthForCart": []
          }
        ]
      }
    },
    "/v2/project/{project_id}/promocode/remove": {
      "put": {
        "summary": "Remover código promocional do carrinho",
        "description": "Remove um código promocional de um carrinho.\nDepois que o código promocional for removido, o preço total de todos os itens no carrinho será recalculado sem bônus e descontos fornecidos por um código promocional.",
        "operationId": "remove-cart-promo-code",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_cancel-promo-code-model"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-promo-code-canceled"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "403": {
            "$ref": "#/components/responses/Promotions_403-auth-header"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-cancel-promo-code"
          }
        },
        "security": [
          {
            "AuthForCart": []
          }
        ]
      }
    },
    "/v2/project/{project_id}/promocode/code/{promocode_code}/rewards": {
      "get": {
        "summary": "Obter recompensas de código promocional",
        "description": "Obtém recompensas de código promocional pelo seu código.\nPode ser usado para permitir que os usuários escolham um entre vários itens como bônus.\nO caso usual é escolher um DRM se o código promocional contiver um jogo como bônus (`type=unit`). <br>\n\n<div class=\"note\">\n  <strong>Nota</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, consulte o bloco <strong>Segurança</strong> para esta chamada.\n</div>",
        "operationId": "get-promo-code-rewards-by-code",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promocode_code-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-promocode-rewards"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "403": {
            "$ref": "#/components/responses/Promotions_403-auth-header"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-promo-code"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-rewards"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ]
      }
    },
    "/v3/project/{project_id}/admin/promocode": {
      "post": {
        "operationId": "create-promo-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Criar promoção de código promocional",
        "description": "Cria uma promoção de código promocional.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_promocode-create"
        },
        "responses": {
          "201": {
            "description": "Código promocional criado com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "external_id": {
                      "$ref": "#/components/schemas/Promotions_coupon-external_id"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "external_id": "coupon_external_id"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-invalid-coupon"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-promo-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Obter lista de promoções de códigos promocionais",
        "description": "Obtém a lista de códigos promocionais de um projeto.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-get-promocodes"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/promocode/{external_id}": {
      "put": {
        "summary": "Atualizar promoção de código promocional",
        "description": "Atualiza uma promoção de código promocional.",
        "operationId": "update-promo-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_promocode-update"
        },
        "responses": {
          "204": {
            "description": "Código promocional atualizado com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-invalid-coupon"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-promo-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Obter promoção de código promocional",
        "description": "Obtém uma promoção de código promocional especificada.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "responses": {
          "200": {
            "description": "Código promocional recebido com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Promotions_200-get-promocode-promotion-model"
                },
                "examples": {
                  "simple": {
                    "value": {
                      "external_id": "summer20221",
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        },
                        {
                          "date_from": "2020-05-15T18:16:00+05:00",
                          "date_until": "2020-05-25T18:16:00+05:00"
                        }
                      ],
                      "name": {
                        "en-US": "Coupon name",
                        "ru-RU": "Название купона"
                      },
                      "is_enabled": true,
                      "bonus": [
                        {
                          "sku": "com.xsolla.diamonds_1",
                          "quantity": 100
                        }
                      ],
                      "redeem_user_limit": null,
                      "redeem_total_limit": 100,
                      "redeem_code_limit": 1,
                      "discount": {
                        "percent": "10.99"
                      },
                      "discounted_items": null,
                      "total_limit_state": {
                        "available": 50,
                        "reserved": 10,
                        "used": 40
                      },
                      "excluded_promotions": [
                        23,
                        45
                      ]
                    }
                  },
                  "with price conditions": {
                    "value": {
                      "external_id": "summer20221",
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "name": {
                        "en-US": "Coupon name",
                        "ru-RU": "Название купона"
                      },
                      "is_enabled": true,
                      "bonus": [
                        {
                          "sku": "com.xsolla.diamonds_2",
                          "quantity": 100
                        }
                      ],
                      "redeem_user_limit": null,
                      "redeem_total_limit": 100,
                      "redeem_code_limit": 1,
                      "discount": {
                        "percent": "10.99"
                      },
                      "discounted_items": null,
                      "total_limit_state": {
                        "available": 50,
                        "reserved": 10,
                        "used": 40
                      },
                      "price_conditions": [
                        {
                          "operator": "gt",
                          "value": "10.0000"
                        },
                        {
                          "operator": "lt",
                          "value": "50.0000"
                        }
                      ]
                    }
                  },
                  "with item price conditions": {
                    "value": {
                      "external_id": "summer20221",
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "name": {
                        "en-US": "Coupon name",
                        "ru-RU": "Название купона"
                      },
                      "is_enabled": true,
                      "bonus": [
                        {
                          "sku": "com.xsolla.diamonds_3",
                          "quantity": 100
                        }
                      ],
                      "redeem_user_limit": null,
                      "redeem_total_limit": 100,
                      "redeem_code_limit": 1,
                      "discount": {
                        "percent": "10.99"
                      },
                      "discounted_items": null,
                      "total_limit_state": {
                        "available": 50,
                        "reserved": 10,
                        "used": 40
                      },
                      "item_price_conditions": [
                        {
                          "operator": "gt",
                          "value": "10.0000"
                        },
                        {
                          "operator": "lt",
                          "value": "50.0000"
                        }
                      ],
                      "excluded_promotions": [
                        23,
                        45
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        }
      },
      "delete": {
        "summary": "Excluir promoção de código promocional",
        "description": "Exclui a [promoção de código promocional](https://developers.xsolla.com/pt/doc/shop-builder/features/promo-codes/). A promoção excluída:\n* Desaparece da lista de promoções configuradas em seu projeto.\n* Não é mais aplicada ao catálogo de itens e ao carrinho. O usuário não pode obter itens bônus ou comprar itens usando esta promoção.\n\nApós a exclusão, a promoção não pode ser restaurada.\nOs códigos promocionais da promoção excluída podem ser [adicionados](https://developers.xsolla.com/pt/api/shop-builder/operation/create-promo-code-code/) às promoções existentes.",
        "operationId": "delete-promo-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "204": {
            "description": "Promoção de código promocional excluída com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/promocode/{external_id}/activate": {
      "put": {
        "summary": "Ativar promoção de código promocional",
        "description": "Ativa uma promoção de código promocional.\n\nA promoção de código promocional criada inicia desativada por padrão.\nEle não estará pronto para resgate até que você o ative.\nUse esse ponto de extremidade para habilitar e ativar uma promoção de código promocional.",
        "operationId": "activate-promo-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "204": {
            "description": "Código promocional ativado com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-error"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/promocode/{external_id}/deactivate": {
      "put": {
        "summary": "Desativar promoção de código promocional",
        "description": "Desativa uma promoção de código promocional.\n\nA promoção de código promocional criada inicia desativada por padrão.\nEle não estará pronto para resgate até que você o ative.\nUse esse ponto de extremidade para desabilitar e desativar uma promoção de código promocional.",
        "operationId": "deactivate-promo-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "204": {
            "description": "Cupom desativado com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-error"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/promocode/{external_id}/code": {
      "post": {
        "operationId": "create-promo-code-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Criar código para promoção de código promocional",
        "description": "Cria código para uma promoção de código promocional.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_create-coupon-promocode-code"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Promotions_201-coupon-promocode-code-created"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-coupon-promocode-same-code-exists"
          }
        }
      },
      "get": {
        "operationId": "get-promocode-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Obter códigos de promoção de código promocional",
        "description": "Obtém códigos de uma promoção de código promocional.\n\nA resposta inclui a quantidade total de códigos na promoção (`total_count`) e os códigos para a página atual (`codes`). Para recuperar a próxima página, aumente `offset` pelo valor de `limit` (ex.:, `“offset”: 100`, depois `“offset”: 200`) até você recuperar todos os códigos.\n\nNa maioria dos casos, `“limit”: 100` ou `“limit”: 1000` é suficiente. Reserve valores maiores tais como`“limit”: 10000` para exportações em massa únicas, e evite usar `“limit”: 50000` a não ser que seja necessário.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-promocode-code-list"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/promocode/{external_id}/code/generate": {
      "put": {
        "summary": "Gerar códigos para promoção de código promocional",
        "description": "Gera códigos para uma promoção de código promocional.\n\nDiretrizes sobre a geração de códigos:\n\n* Não há uma quantidade total máxima de códigos por promoção, mas cada solicitação se limita a 50.000 códigos. Solicitações com uma quantidade maior retorna um erro `422 Entidade Não Processável`. Se você precisar de mais de 50.000 códigos, envie múltiplas solicitações.\n\n* Para melhorar a confiabilidade, recomendamos gerar códigos em lotes menores, de até 10.000 por solicitação. Ex.:, para criar 100.000 códigos, envie 10 solicitações com `\"count\": 10000` em vez de 2 solicitações com `\"count\": 50000`. Espere por uma resposta bem-sucedida para cada solicitação antes de enviar a próxima.\n\n* Tenha em mente os limites de frequência que são definidos a 15 solicitações por segundo. Ao gerar volumes grandes, envie solicitações sequencialmente para evitar exceder o limite de frequência e obter um erro `429`.\n\n* Para recuperar a lista de códigos, chame o método [Obter códigos de promoção de código promocional](/pt/api/liveops/promotions-promo-codes/get-promocode-codes).\n\n| Parâmetro | Valor |\n|---|---|\n| Número mínimo de códigos por solicitação. | 1 |\n| Número máximo de códigos por solicitação. Use apenas quando precisar do maior lote único quanto possível. | 50,000 |\n| Número recomendado de códigos por solicitação. | Até 10.000. Se precisar criar mais, envie múltiplas solicitações sequenciais. |",
        "operationId": "generate-promo-code-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "count": {
                    "$ref": "#/components/schemas/Promotions_coupon-generate-count"
                  }
                },
                "required": [
                  "count"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Códigos gerados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "$ref": "#/components/schemas/Promotions_coupon-generate-count"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "count": 10
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/promotion/item": {
      "post": {
        "summary": "Criar promoção de desconto para item",
        "description": "Cria uma promoção de desconto para um item.\n\nAs promoções oferecem um desconto (%) nos itens.\nO desconto será aplicado a todos os preços dos itens especificados.",
        "operationId": "create-item-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-discounts"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_create-update-item-promotion"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Promotions_201-create-promotion"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-missed-items-property"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-discounts"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-item-promotion-list",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Obter lista de promoções de itens",
        "description": "Obtenha a lista de promoções de itens de um projeto.\n\nAs promoções oferecem um desconto (%) nos itens.\nO desconto será aplicado a todos os preços dos itens especificados.",
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "description": "ID do projeto.",
            "schema": {
              "type": "integer",
              "default": 59080
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Limite da quantidade de elementos na página.",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Número do elemento a partir do qual a lista é gerada (a quantidade começa a partir de 0).",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-get-item-promotions"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/promotion/{promotion_id}/item": {
      "put": {
        "tags": [
          "promotions-discounts"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "update-item-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Atualizar promoção de item",
        "description": "Atualiza a promoção.\n\n<div class='note'><b>Observação</b><br><br>Novos dados substituirão dados antigos. Se você quiser atualizar apenas uma parte de uma promoção, você deve transferir todos os dados necessários na solicitação também.</div>\n\nAs promoções oferecem um desconto (%) nos itens.\nO desconto será aplicado a todos os preços dos itens especificados.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Promoção atualizada com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promotion"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-missed-items-property"
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_create-update-item-promotion"
        }
      },
      "get": {
        "tags": [
          "promotions-discounts"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-item-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "summary": "Obter promoção de itens",
        "description": "Obtém a promoção aplicada a itens específicos.\n\nAs promoções oferecem um desconto (%) nos itens.\nO desconto será aplicado a todos os preços dos itens especificados.",
        "responses": {
          "200": {
            "description": "Promoção de item recebida com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "ID de promoção. Identificador exclusivo da promoção dentro do projeto."
                    },
                    "promotion_periods": {
                      "$ref": "#/components/schemas/promotion_periods"
                    },
                    "is_enabled": {
                      "$ref": "#/components/schemas/Promotions_is_enabled"
                    },
                    "name": {
                      "type": "object",
                      "description": "Nome da promoção. Deve conter pares chave/valor,\nonde chave é a localidade com o formato \"^[a-z]{2}-[A-Z]{2}$\", e o valor é uma cadeia de caracteres.",
                      "additionalProperties": {
                        "type": "string",
                        "example": {
                          "en-US": "Promotion",
                          "ru-RU": "Акция"
                        }
                      }
                    },
                    "discount": {
                      "type": "object",
                      "properties": {
                        "percent": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Percentual de desconto.\nO preço do item será diminuído usando um valor que foi calculado usando essa porcentagem.",
                          "default": "10.00"
                        }
                      }
                    },
                    "items": {
                      "type": [
                        "array",
                        "null"
                      ],
                      "items": {
                        "description": "A lista de itens que serão afetados pelo desconto.",
                        "type": "object",
                        "properties": {
                          "sku": {
                            "type": "string",
                            "description": "SKU do item.",
                            "default": "elven_sword"
                          }
                        }
                      }
                    },
                    "attribute_conditions": {
                      "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-get"
                    },
                    "limits": {
                      "$ref": "#/components/schemas/Promotions_promotion_limits_response"
                    },
                    "price_conditions": {
                      "$ref": "#/components/schemas/price_conditions_discount"
                    },
                    "excluded_promotions": {
                      "$ref": "#/components/schemas/excluded_promotions"
                    }
                  },
                  "example": {
                    "id": 1,
                    "promotion_periods": [
                      {
                        "date_from": "2020-04-15T18:16:00+05:00",
                        "date_until": "2020-04-25T18:16:00+05:00"
                      }
                    ],
                    "is_enabled": true,
                    "discount": {
                      "percent": "15.00"
                    },
                    "items": [
                      {
                        "sku": "com.xsolla.elven_sword_1"
                      },
                      {
                        "sku": "com.xsolla.elven_helmet_1"
                      },
                      {
                        "sku": "com.xsolla.elven_armor_1"
                      }
                    ],
                    "name": {
                      "en-US": "Promotion",
                      "ru-RU": "Акция"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "id": 1,
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "is_enabled": true,
                      "discount": {
                        "percent": "20.00"
                      },
                      "items": [
                        {
                          "sku": "com.xsolla.elven_helmet_1"
                        },
                        {
                          "sku": "com.xsolla.elven_armor_1"
                        }
                      ],
                      "name": {
                        "en-US": "Promotion",
                        "ru-RU": "Акция"
                      },
                      "limits": {
                        "per_user": {
                          "total": 10
                        },
                        "per_item": null,
                        "recurrent_schedule": {
                          "per_user": {
                            "interval_type": "daily",
                            "day_of_week": null,
                            "day_of_month": null,
                            "time": "11:00:00+08:00",
                            "reset_next_date": 1677553200,
                            "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
                            "displayable_reset_next_date": "2023-02-28T11:00:00+08:00"
                          }
                        }
                      },
                      "price_conditions": [
                        {
                          "operator": "ge",
                          "value": "10.0000"
                        },
                        {
                          "operator": "le",
                          "value": "50.0000"
                        }
                      ],
                      "excluded_promotions": [
                        23,
                        45
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "description": "Promoção não encontrada. Certifique-se de que `promotion_id` está correto.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "statusCode": {
                      "type": "integer",
                      "example": 404
                    },
                    "errorCode": {
                      "type": "integer",
                      "example": 9502
                    },
                    "errorMessage": {
                      "type": "string",
                      "example": "[0401-9502]: Can not find promotion with ID = 111425 in project 59080"
                    }
                  },
                  "type": "object"
                },
                "examples": {
                  "response": {
                    "value": {
                      "statusCode": 404,
                      "errorCode": 9502,
                      "errorMessage": "[0401-9502]: Can not find promotion with ID = 111425 in project 59080"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Excluir promoção de item",
        "tags": [
          "promotions-discounts"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "delete-item-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "description": "Exclui a [promoção de desconto](https://developers.xsolla.com/pt/doc/shop-builder/features/discounts/). A promoção excluída:\n* Desaparece da lista de promoções configuradas no seu projeto.\n* Não se aplica mais ao catálogo de itens e ao carrinho. O usuário não pode comprar itens com esta promoção.\n\nApós a exclusão, a promoção não poderá ser restaurada.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Promoção excluída com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promotion"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/promotion/bonus": {
      "post": {
        "summary": "Criar promoção de bônus",
        "description": "Cria a promoção de bônus.\n\nA promoção adiciona itens bônus gratuitos à compra feita por um usuário.\nA promoção pode ser aplicada a cada compra dentro de um projeto ou a uma compra que inclua itens específicos.",
        "operationId": "create-bonus-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-bonuses"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_create-update-bonus-promotion"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Promotions_201-create-promotion"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-missed-bonus-property"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-bonuses"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-bonus-promotion-list",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Obter lista de promoções de bônus",
        "description": "Obtém a lista de promoções bônus de um projeto.\n\nA promoção adiciona itens bônus gratuitos à compra feita por um usuário.\nA promoção pode ser aplicada a cada compra dentro de um projeto ou a uma compra que inclua itens específicos.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-get-bonus-promotions"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/promotion/{promotion_id}/bonus": {
      "put": {
        "summary": "Atualizar promoção bônus",
        "description": "Atualiza a promoção.\n\n<div class='note'><b>Observação</b><br><br>Novos dados substituirão dados antigos. Se você quiser atualizar apenas uma parte de uma promoção, você deve transferir todos os dados necessários na solicitação também.</div>\n\nA promoção adiciona itens bônus gratuitos à compra feita por um usuário.\nA promoção pode ser aplicada a cada compra dentro de um projeto ou a uma compra que inclua itens específicos.",
        "operationId": "update-bonus-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "tags": [
          "promotions-bonuses"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_create-update-bonus-promotion"
        },
        "responses": {
          "204": {
            "description": "Promoção atualizada com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-missed-bonus-property"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-bonuses"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-bonus-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Obter promoção bônus",
        "description": "Recebe a promoção bônus.\n\nA promoção adiciona itens bônus gratuitos à compra feita por um usuário.\nA promoção pode ser aplicada a cada compra dentro de um projeto ou a uma compra que inclua itens específicos.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-admin-get-bonus-promotion"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promotion"
          }
        }
      },
      "delete": {
        "summary": "Excluir promoção bônus",
        "tags": [
          "promotions-bonuses"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "delete-bonus-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "description": "Exclui a [promoção bônus](https://developers.xsolla.com/pt/doc/shop-builder/features/bonuses/). A promoção excluída:\n* Desaparece da lista de promoções configuradas no seu projeto.\n* Não se aplica mais ao catálogo de itens e ao carrinho. O usuário não pode obter itens bônus com esta promoção.\n\nApós a exclusão, a promoção não poderá ser restaurada.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Promoção excluída com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promotion"
          }
        }
      }
    },
    "/v2/project/{project_id}/promotion/code/{code}/verify": {
      "get": {
        "summary": "Verificar o código promocional",
        "description": "Determina se o código é um código promocional ou de cupom e se o usuário pode aplicá-lo. <br>\n\n<div class=\"note\">\n  <strong>Nota</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, consulte o bloco <strong>Segurança</strong> para esta chamada.\n</div>",
        "operationId": "verify-promotion-code",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/code-path-param"
          }
        ],
        "tags": [
          "promotions-common"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-verify-promo-code"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "403": {
            "$ref": "#/components/responses/Promotions_403-auth-header"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-verify-promo-code"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-verify-promo-code"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/unique_catalog_offer": {
      "post": {
        "operationId": "admin-create-unique-catalog-offer",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Criar promoção de oferta de catálogo exclusiva",
        "description": "Cria uma promoção exclusiva de oferta de catálogo.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_unique_catalog_offer-create"
        },
        "responses": {
          "201": {
            "description": "Oferta de catálogo exclusiva criada com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "external_id": {
                      "$ref": "#/components/schemas/Promotions_coupon-external_id"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "external_id": "coupon_external_id"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-invalid-coupon"
          }
        }
      },
      "get": {
        "operationId": "get-unique-catalog-offers",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Obter lista de promoções exclusivas de ofertas de catálogo",
        "description": "Obtém a lista de promoções de ofertas de catálogo exclusivas de um projeto.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-get-unique-catalog-offers"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/unique_catalog_offer/{external_id}": {
      "put": {
        "operationId": "update-unique-catalog-offer-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Atualiza a promoção de oferta de catálogo exclusiva",
        "description": "Atualiza a promoção de oferta de catálogo exclusiva.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_unique_catalog_offer-update"
        },
        "responses": {
          "204": {
            "description": "Oferta de catálogo exclusiva atualizada com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-invalid-coupon"
          }
        }
      },
      "get": {
        "operationId": "get-unique-catalog-offer",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Obter promoção de oferta de catálogo exclusiva",
        "description": "Obtém a promoção de oferta de catálogo exclusiva especificada.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "responses": {
          "200": {
            "description": "Oferta de catálogo exclusiva recebida com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Promotions_200-get-unique-catalog-offer-promotion-model"
                },
                "examples": {
                  "response": {
                    "value": {
                      "external_id": "secret_shop",
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        },
                        {
                          "date_from": "2020-05-15T18:16:00+05:00",
                          "date_until": "2020-05-25T18:16:00+05:00"
                        }
                      ],
                      "name": {
                        "en-US": "Secret shop",
                        "ru-RU": "Секретный магазин"
                      },
                      "items": [
                        "helmet",
                        "sword",
                        "shield"
                      ],
                      "is_enabled": true,
                      "redeem_user_limit": 1,
                      "redeem_total_limit": 100,
                      "redeem_code_limit": 1,
                      "total_limit_state": {
                        "available": 50,
                        "reserved": 10,
                        "used": 40
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        }
      },
      "delete": {
        "operationId": "delete-unique-catalog-offer-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Excluir promoção de oferta de catálogo exclusiva",
        "description": "Exclui a [promoção de oferta de catálogo único](https://developers.xsolla.com/pt/doc/shop-builder/features/unique-offer/). A promoção excluída:\n* Desaparece da lista de promoções configuradas no seu projeto.\n* Não se aplica mais ao catálogo de itens e ao carrinho. O usuário não pode comprar itens com esta promoção.\n\nApós a exclusão, a promoção não poderá ser restaurada.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "204": {
            "description": "Oferta de catálogo exclusiva excluída com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/activate": {
      "put": {
        "operationId": "activate-unique-catalog-offer",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Ativar promoção de oferta de catálogo exclusiva",
        "description": "Ativa uma promoção de oferta de catálogo exclusiva.\nA promoção de oferta de catálogo exclusiva criada está desativada por padrão.\nEle não pode ser resgatado até que você o ative.\nUse esse ponto de extremidade para habilitar e ativar uma promoção de cupom.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "204": {
            "description": "Oferta de catálogo exclusiva ativada com êxito."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-error"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/deactivate": {
      "put": {
        "operationId": "deactivate-unique-catalog-offer",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Desativar promoção exclusiva de oferta de catálogo",
        "description": "Desativa uma promoção exclusiva de oferta de catálogo.\nA promoção exclusiva de oferta de catálogo criada está desativada por padrão.\nEla não pode ser resgatada até que você a ative.\nUse esse ponto de extremidade para desativar e desativar uma promoção de cupom.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "204": {
            "description": "Oferta de catálogo exclusiva desativada com êxito."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-error"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code": {
      "post": {
        "operationId": "create-unique-catalog-offer-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Criar código de oferta de catálogo exclusivo",
        "description": "Cria um código de oferta de catálogo exclusivo.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_create-coupon-promocode-code"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Promotions_201-coupon-promocode-code-created"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-coupon-promocode-same-code-exists"
          }
        }
      },
      "get": {
        "operationId": "get-unique-catalog-offer-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Obtenha códigos de oferta de catálogo exclusivos",
        "description": "Obtém códigos de oferta de catálogo exclusivos.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-unique-catalog-offer-code-list"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code/generate": {
      "put": {
        "operationId": "generate-unique-catalog-offer-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "summary": "Gerar códigos de oferta de catálogo exclusivos",
        "description": "Gera códigos de oferta de catálogo exclusivos.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "count": {
                    "$ref": "#/components/schemas/Promotions_coupon-generate-count"
                  }
                },
                "required": [
                  "count"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Os códigos foram gerados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "$ref": "#/components/schemas/Promotions_coupon-generate-count"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "count": 10
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/user/limit/promocode/external_id/{external_id}": {
      "get": {
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-promo-code-user-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          },
          {
            "$ref": "#/components/parameters/user_external_id-query-param"
          }
        ],
        "summary": "Obter limite de código promocional para o usuário especificado",
        "description": "Obtém o número restante de vezes que o usuário especificado pode usar o código promocional.\n\nA API User limit permite limitar o número de vezes que os usuários podem usar um código promocional. Para configurar o limite de usuário em si, vá para a seção Admin:\n* [Códigos Promocionais](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-promo-codes/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-user-promo-code-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Item não encontrado.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Promo code not found": {
                    "$ref": "#/components/examples/404-coupon-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Solicitação inválida.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Invalid user_external_id": {
                    "$ref": "#/components/examples/Promotions_422-invalid-coupon"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/user/limit/coupon/external_id/{external_id}": {
      "get": {
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-coupon-user-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          },
          {
            "$ref": "#/components/parameters/user_external_id-query-param"
          }
        ],
        "summary": "Obter limite de cupons de um usuário específico",
        "description": "Obtém o número restante de vezes que o usuário especificado pode usar o cupom.\n\nA API User limit permite limitar o número de vezes que os usuários podem usar um cupom. Para configurar o próprio limite de usuário, vá para a seção Admin:\n* [Cupons](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-coupons/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-user-coupon-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Item não encontrado.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Coupon not found": {
                    "$ref": "#/components/examples/404-coupon-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Solicitação inválida.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Invalid user_external_id": {
                    "$ref": "#/components/examples/Promotions_422-invalid-coupon"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/code/limit/promocode/external_id/{external_id}": {
      "get": {
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-promo-code-code-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          },
          {
            "$ref": "#/components/parameters/codes-query-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "summary": "Obter limite de código promocional para códigos",
        "description": "Obtém o número restante de vezes que os códigos podem ser usados. Para filtrar os códigos, use o parâmetro  de pesquisa `codes`.\n\nPara configurar o limite de código em si, vá para a seção Admin:\n* [Promo Codes](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-promo-codes/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-code-promo-code-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Item não encontrado.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Promo code not found": {
                    "$ref": "#/components/examples/404-coupon-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Solicitação inválida.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/code/limit/coupon/external_id/{external_id}": {
      "get": {
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-coupon-code-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          },
          {
            "$ref": "#/components/parameters/codes-query-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "summary": "Obtenha limites de código de cupom exclusivos",
        "description": "Obtém o número restante de vezes que os códigos podem ser usados. Para filtrar os códigos, use o parâmetro  de pesquisa `codes`.\n\nPara configurar o limite de código em si, vá para a seção Admin:\n* [Coupons](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-coupons/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-code-coupon-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Item não encontrado.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Coupon not found": {
                    "$ref": "#/components/examples/404-coupon-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Solicitação inválida.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/user/attribute/rule": {
      "get": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-filter-rules",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          },
          {
            "$ref": "#/components/parameters/is_enabled-query-param"
          }
        ],
        "summary": "Obter lista de regras de filtro de catálogo",
        "description": "Obtém todas as regras aplicadas aos atributos do usuário.",
        "responses": {
          "200": {
            "description": "Regras recebidas com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/user-attribute_personalized-catalog"
                      }
                    },
                    "total_items_count": {
                      "type": "number",
                      "description": "Total number of rules."
                    },
                    "has_more": {
                      "type": "boolean",
                      "description": "If another page with rules exists."
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "items": [
                        {
                          "rule_id": 1,
                          "name": "Ork race armor rule",
                          "is_enabled": true,
                          "is_satisfied_for_unauth": false,
                          "attribute_conditions": [
                            {
                              "attribute": "race",
                              "operator": "eq",
                              "value": "ork",
                              "type": "string",
                              "can_be_missing": false
                            }
                          ],
                          "items": [
                            {
                              "item_id": 1,
                              "sku": "com.xsolla.ork_armor_1",
                              "name": "Ork Armor",
                              "type": "virtual_good"
                            },
                            {
                              "item_id": 2,
                              "sku": "com.xsolla.potion_pack_1",
                              "name": "Potion pack",
                              "type": "bundle",
                              "bundle_type": "standard"
                            }
                          ]
                        }
                      ],
                      "total_items_count": 20,
                      "has_more": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "403": {
            "$ref": "#/components/responses/403-auth-header-not-sent"
          }
        }
      },
      "post": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "create-filter-rule",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "summary": "Criar regra de filtro de catálogo",
        "description": "Criar regra para atributos de usuário.",
        "responses": {
          "201": {
            "description": "Regra criada com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "rule_id": {
                      "type": "number",
                      "description": "ID da regra."
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "rule_id": 1
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "422": {
            "$ref": "#/components/responses/Common_422-body-validation"
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/personalized-catalog_create-update-body"
        }
      }
    },
    "/v2/project/{project_id}/admin/user/attribute/rule/all": {
      "get": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-all-filter-rules",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "summary": "Obter todas as regras de catálogo para pesquisa no lado do cliente",
        "description": "Obtém uma lista de todas as regras de catálogo para pesquisa no lado do cliente.\n\n<div class=\"notice\"><strong>Atenção</strong><br><br>Retorna apenas id da regra, nome e is_enabled</div>",
        "responses": {
          "200": {
            "description": "Regras recebidas com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/user-attribute_personalized-catalog_all"
                      }
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "items": [
                        {
                          "rule_id": 1,
                          "name": "Ork race armor rule",
                          "is_enabled": true,
                          "is_satisfied_for_unauth": false
                        },
                        {
                          "rule_id": 2,
                          "name": "Age",
                          "is_enabled": false,
                          "is_satisfied_for_unauth": false
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "403": {
            "$ref": "#/components/responses/403-auth-header-not-sent"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/user/attribute/rule/{rule_id}": {
      "get": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-filter-rule-by-id",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/personalized-catalog-rule_id-path-param"
          }
        ],
        "summary": "Obter regra de filtro de catálogo",
        "description": "Obtenha regras específicas aplicáveis aos atributos do usuário.",
        "responses": {
          "200": {
            "description": "Regra recebida com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/user-attribute_personalized-catalog"
                },
                "examples": {
                  "response": {
                    "value": {
                      "rule_id": 1,
                      "name": "Ork race armor rule",
                      "is_enabled": true,
                      "is_satisfied_for_unauth": true,
                      "attribute_conditions": [
                        {
                          "attribute": "race",
                          "operator": "eq",
                          "value": "ork",
                          "type": "string",
                          "can_be_missing": false
                        }
                      ],
                      "items": [
                        {
                          "item_id": 1,
                          "sku": "com.xsolla.ork_armor_1",
                          "name": "Ork Armor"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          }
        }
      },
      "put": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "update-filter-rule-by-id",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/personalized-catalog-rule_id-path-param"
          }
        ],
        "summary": "Atualizar regra de filtro de catálogo",
        "description": "Atualiza uma regra específica que se aplica aos atributos do usuário. O valor padrão será usado para uma propriedade não especificada (se a propriedade não for necessária).",
        "responses": {
          "204": {
            "description": "Atualização bem-sucedida."
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "422": {
            "$ref": "#/components/responses/Common_422-body-validation"
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/personalized-catalog_create-update-body"
        }
      },
      "patch": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "patch-filter-rule-by-id",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/personalized-catalog-rule_id-path-param"
          }
        ],
        "summary": "Regra de filtro do catálogo de atualizações",
        "description": "Atualiza uma regra específica que se aplica aos atributos do usuário. O valor atual será usado para uma propriedade não especificada.",
        "responses": {
          "204": {
            "description": "Atualização bem-sucedida."
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "422": {
            "$ref": "#/components/responses/Common_422-body-validation"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/user-attribute_personalized-catalog-body"
              },
              "example": {
                "is_enabled": false
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "delete-filter-rule-by-id",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/personalized-catalog-rule_id-path-param"
          }
        ],
        "summary": "Regra de filtro de exclusão de catálogo",
        "description": "Exclui uma regra específica.",
        "responses": {
          "204": {
            "description": "Exclusão bem-sucedida."
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/user/limit/promotion/all": {
      "delete": {
        "tags": [
          "user-limits-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "reset-all-user-promotions-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "summary": "Atualizar todos os limites de promoção para o usuário especificado",
        "description": "Atualiza todos os limites em todas as promoções para o usuário especificado para que ele possa usar essas promoções novamente.\n\nA API User limit permite limitar o número de vezes que os usuários podem usar uma promoção. Para configurar o limite de usuário em si, vá para a seção Admin do tipo de promoção desejado:\n* [Promoções de Desconto](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-discounts/)\n* [Promoções de Bônus](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-bonuses/)",
        "responses": {
          "200": {
            "description": "O limite da promoção foi atualizado com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Item não encontrado.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Solicitação inválida.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Invalid user_external_id": {
                    "$ref": "#/components/examples/422-user_external_id_invalid"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/reset-user-limits"
        }
      }
    },
    "/v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}/all": {
      "delete": {
        "tags": [
          "user-limits-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "reset-user-promotion-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "summary": "Atualizar limite de promoção para usuários",
        "description": "Atualiza o limite da promoção para que um usuário possa usar essa promoção novamente. Se o parâmetro *user* for `null`, essa chamada atualizará esse limite para todos os usuários.\n\nA API User limit permite limitar o número de vezes que os usuários podem usar uma promoção. Para configurar o limite de usuário em si, vá para a seção Admin do tipo de promoção desejado:\n* [Promoções de Desconto](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-discounts/)\n* [Promoções de Bônus](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-bonuses/)",
        "responses": {
          "200": {
            "description": "O limite da promoção foi atualizado com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Item não encontrado.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Item not found": {
                    "$ref": "#/components/examples/404-promotion-by-id-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Solicitação inválida.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Invalid user_external_id": {
                    "$ref": "#/components/examples/422-user_external_id_invalid"
                  },
                  "Promotion does not have configured user limits": {
                    "$ref": "#/components/examples/422-promotion-without-user-limit"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/reset-user-limits-flexible"
        }
      }
    },
    "/v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}": {
      "get": {
        "tags": [
          "user-limits-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-user-promotion-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          },
          {
            "$ref": "#/components/parameters/user_external_id-query-param"
          }
        ],
        "summary": "Obter limite de promoção para o usuário especificado",
        "description": "Obtém o número restante de vezes que o usuário especificado pode usar a promoção dentro do limite aplicado.\n\nA API User limit permite limitar o número de vezes que os usuários podem usar uma promoção. Para configurar o limite de usuário em si, vá para a seção Admin do tipo de promoção desejado:\n* [Promoções de Desconto](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-discounts/)\n* [Promoções de Bônus](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-bonuses/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-user-promotion-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Item não encontrado.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Item not found": {
                    "$ref": "#/components/examples/404-promotion-by-id-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Solicitação inválida.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Invalid user_external_id": {
                    "$ref": "#/components/examples/422-user_external_id_invalid"
                  },
                  "Promotion does not have configured user limits": {
                    "$ref": "#/components/examples/422-promotion-without-user-limit"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "user-limits-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "add-user-promotion-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "summary": "Aumentar o limite de promoção para o usuário especificado",
        "description": "Aumenta o número restante de vezes que o usuário especificado pode usar a promoção dentro do limite aplicado.\n\nA API User limit permite limitar o número de vezes que os usuários podem usar uma promoção. Para configurar o limite de usuário em si, vá para a seção Admin do tipo de promoção desejado:\n* [Promoções de Desconto](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-discounts/)\n* [Promoções de Bônus](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-bonuses/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-user-promotion-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Item não encontrado.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Item not found": {
                    "$ref": "#/components/examples/404-promotion-by-id-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Solicitação inválida.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Invalid user_external_id": {
                    "$ref": "#/components/examples/422-user_external_id_invalid"
                  },
                  "Promotion does not have configured user limits": {
                    "$ref": "#/components/examples/422-promotion-without-user-limit"
                  },
                  "Available promotion limit is out of range": {
                    "$ref": "#/components/examples/422-promotion-out-of-range-available-user-limit"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/update-user-limits-strict"
        }
      },
      "put": {
        "tags": [
          "user-limits-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "set-user-promotion-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "summary": "Definir limite de promoção para o usuário especificado",
        "description": "Define o número de vezes que o usuário especificado pode usar uma promoção dentro do limite aplicado depois que ela foi aumentada ou diminuída.\n\nA API User limit permite limitar o número de vezes que os usuários podem usar uma promoção. Para configurar o limite de usuário em si, vá para a seção Admin do tipo de promoção desejado:\n* [Promoções de Desconto](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-discounts/)\n* [Promoções de Bônus](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-bonuses/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-user-promotion-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Item não encontrado.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Item not found": {
                    "$ref": "#/components/examples/404-promotion-by-id-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Solicitação inválida.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Invalid user_external_id": {
                    "$ref": "#/components/examples/422-user_external_id_invalid"
                  },
                  "Promotion does not have configured user limits": {
                    "$ref": "#/components/examples/422-promotion-without-user-limit"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/update-user-limits-flexible"
        }
      },
      "delete": {
        "tags": [
          "user-limits-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "remove-user-promotion-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "summary": "Diminuir o limite de promoção para o usuário especificado",
        "description": "Diminui o número restante de vezes que o usuário especificado pode usar uma promoção dentro do limite aplicado.\n\nA API User limit permite limitar o número de vezes que os usuários podem usar uma promoção. Para configurar o limite de usuário em si, vá para a seção Admin do tipo de promoção desejado:\n* [Promoções de Desconto](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-discounts/)\n* [Promoções de Bônus](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-bonuses/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-user-promotion-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Item não encontrado.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Item not found": {
                    "$ref": "#/components/examples/404-promotion-by-id-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Solicitação inválida.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Invalid user_external_id": {
                    "$ref": "#/components/examples/422-user_external_id_invalid"
                  },
                  "Promotion does not have configured user limits": {
                    "$ref": "#/components/examples/422-promotion-without-user-limit"
                  },
                  "Available promotion limit is out of range": {
                    "$ref": "#/components/examples/422-promotion-out-of-range-available-user-limit"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/update-user-limits-strict"
        }
      }
    },
    "/v2/project/{project_id}/admin/items/value_points": {
      "get": {
        "summary": "Obter lista de pontos de valor",
        "description": "Obtém a lista de pontos de valor dentro de um projeto para administração.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "operationId": "admin-get-value-points-list",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-value-points"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      },
      "post": {
        "summary": "Criar ponto de valor",
        "description": "Cria um ponto de valor.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "operationId": "admin-create-value-points",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/create-value-point"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/201-admin-create-value-point"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/422-admin-create-update-rc-vp-invalid-request"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/items/value_points/sku/{item_sku}": {
      "get": {
        "summary": "Obter ponto de valor",
        "description": "Obtém um ponto de valor pelo SKU dentro de um projeto para administração.",
        "operationId": "admin-get-value-point",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/item_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-value-point"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      },
      "put": {
        "summary": "Atualizar ponto de valor",
        "description": "Atualiza um ponto de valor identificado por um SKU.",
        "operationId": "admin-update-value-point",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/item_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/create-value-point"
        },
        "responses": {
          "204": {
            "description": "Ponto de valor atualizado com sucesso.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/422-admin-create-update-rc-vp-invalid-request"
          }
        }
      },
      "delete": {
        "summary": "Excluir pontos de valor",
        "description": "Exclui um ponto de valor identificado por um SKU.",
        "operationId": "admin-delete-value-point",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/item_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "204": {
            "description": "Ponto de valor excluído com sucesso.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards": {
      "get": {
        "summary": "Obter lista de itens com pontos de valor",
        "description": "Obtém a lista de todos os itens com pontos de valor dentro de um projeto para administração.",
        "operationId": "admin-get-items-value-point-reward",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/value_point_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-list-value-point-rewards"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      },
      "put": {
        "summary": "Definir pontos de valor para itens",
        "description": "Atribui pontos de valor a um ou vários itens por um SKU. Os usuários recebem pontos de valor depois de comprar esses itens.\n\nObserve que essa solicitação PUT substitui todos os pontos de valor definidos anteriormente para itens no projeto.\n\nPara evitar a exclusão não intencional de pontos de valor, inclua todos os itens e seus respectivos pontos de valor em cada solicitação PUT.\n\nSe desejar atualizar apenas os pontos de valor de um item específico, preservando os pontos de valor de outros itens, recupere o conjunto atual de pontos de valor usando uma solicitação GET, modifique os pontos de valor do item desejado e envie o conjunto modificado de pontos de valor de volta com os pontos de valor atualizados para o item específico.",
        "operationId": "admin-set-items-value-point-reward",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/value_point_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/set-item-value-point-reward"
        },
        "responses": {
          "204": {
            "description": "Recompensas de pontos de valor para itens atualizadas com sucesso.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/sellable-item-by-sku_404"
          }
        }
      },
      "patch": {
        "summary": "Atualizar parcialmente os pontos de valor dos itens",
        "description": "Atualiza parcialmente o número de pontos de valor para um ou mais itens pelo SKU do item. Os usuários recebem esses pontos de valor após a compra dos itens especificados.\n\nPrincípios de atualização de pontos de valor:\n  * Se um item ainda não tiver pontos de valor, enviar um valor diferente de zero no campo `amount` os criará.\n  * Se um item já tiver pontos de valor, o envio de um valor diferente de zero no campo `amount` os atualizará.\n  * Se `amount` for definido como 0, os pontos de valor existentes para esse item serão excluídos.\n\nAo contrário do método `PUT` ([Definir pontos de valor para itens](https://developers.xsolla.com/pt/api/shop-builder/operation/admin-set-items-value-point-reward/)), este método `PATCH` não sobrescreve todos os pontos de valor existentes dos itens no projeto, apenas atualiza os itens especificados.\n\nUma única solicitação pode atualizar até 100 itens. SKUs de itens duplicados não podem ser incluídos na mesma solicitação.",
        "operationId": "admin-patch-items-value-point-reward",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/value_point_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/set-item-value-point-reward-for-patch"
        },
        "responses": {
          "204": {
            "description": "Recompensas de pontos de valor para itens atualizadas com sucesso.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/sellable-item-by-sku_404"
          }
        }
      },
      "delete": {
        "summary": "Excluir pontos de valor de itens",
        "description": "Remove recompensas de pontos de valor de TODOS os itens.",
        "operationId": "admin-delete-items-value-point-reward",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/value_point_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "204": {
            "description": "Recompensas de pontos de valor para itens excluídas com êxito.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/reward_chain": {
      "get": {
        "tags": [
          "reward-chain-client"
        ],
        "operationId": "get-reward-chains-list",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Obtenha as cadeias de recompensa do usuário atual",
        "description": "Ponto de extremidade do cliente. Obtém as cadeias de recompensa do usuário atual.\n\n<div class=\"notice\">\n  <strong>Atenção</strong><br><br>\n    Todos os projetos têm uma limitação no número de itens que você pode\n    obter na resposta. O valor padrão e máximo é <strong>50 itens\n    por resposta.</strong> Para obter mais dados página por página, use os campos <b>limit</b>\n    e <b>offset</b>.\n</div>\n\n<br>\n\n<div class=\"note\">\n  <strong>Nota</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, consulte o bloco <strong>Segurança</strong> para esta chamada.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-client-get-reward-chains-list"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/reward_chain/{reward_chain_id}/balance": {
      "get": {
        "tags": [
          "reward-chain-client"
        ],
        "operationId": "get-user-reward-chain-balance",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Obter o saldo de pontos de valor do usuário atual",
        "description": "Ponto de extremidade do cliente. Obtém o saldo atual de pontos de valor do usuário. <br>\n\n<div class=\"note\">\n  <strong>Nota</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, consulte o bloco <strong>Segurança</strong> para esta chamada.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_id-path-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-client-get-user-reward-chain-balance"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/reward_chain/{reward_chain_id}/step/{step_id}/claim": {
      "post": {
        "tags": [
          "reward-chain-client"
        ],
        "operationId": "claim-user-reward-chain-step-reward",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Resgatar recompensa por etapa",
        "description": "Ponto de extremidade do cliente. Resgata a recompensa de etapa do usuário atual de uma cadeia de recompensas. <br>\n\n<div class=\"note\">\n  <strong>Nota</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, consulte o bloco <strong>Segurança</strong> para esta chamada.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_step_id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Recompensa de passo do usuário atual de uma cadeia de recompensas resgatada com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-reward-chain-step-not-found"
          },
          "422": {
            "$ref": "#/components/responses/422-reward-chain-step-reward-can-not-claimed"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/clan/contributors/{reward_chain_id}/top": {
      "get": {
        "tags": [
          "clan-reward-chain-client"
        ],
        "operationId": "get-user-clan-top-contributors",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "responses": {
          "200": {
            "description": "A lista dos 10 principais contribuintes para a cadeia de recompensas do clã.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "example": "Rocket",
                        "description": "User ID. This is the ID sending to Xsolla during authorization and links the user to your Xsolla Login project."
                      },
                      "contributed_amount": {
                        "type": "integer",
                        "example": 100,
                        "description": "The amount of value points contributed by the user."
                      }
                    }
                  }
                },
                "examples": {
                  "clan": {
                    "summary": "User has a clan",
                    "value": [
                      {
                        "name": "winner",
                        "contributed_amount": 555
                      },
                      {
                        "name": "Rocket",
                        "contributed_amount": 398
                      },
                      {
                        "name": "MrJoe",
                        "contributed_amount": 201
                      },
                      {
                        "name": "beginner",
                        "contributed_amount": 1
                      }
                    ]
                  },
                  "without-clan": {
                    "summary": "User doesn't belong to a clan",
                    "value": []
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "description": "ID do projeto.",
            "schema": {
              "type": "integer",
              "example": 44056
            }
          },
          {
            "name": "reward_chain_id",
            "in": "path",
            "required": true,
            "description": "ID da cadeia de recompensas.",
            "schema": {
              "type": "integer",
              "example": 101
            }
          }
        ],
        "summary": "Obter os 10 maiores contribuintes da cadeia de recompensas no clã",
        "description": "Recupera a lista dos 10 principais contribuintes para a cadeia de recompensas específica sob o clã do usuário atual. Se um usuário não pertence a um clã, a chamada retorna uma matriz vazia. <br>\n\n<div class=\"note\">\n  <strong>Nota</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, consulte o bloco <strong>Segurança</strong> para esta chamada.\n</div>"
      }
    },
    "/v2/project/{project_id}/user/clan/update": {
      "put": {
        "tags": [
          "clan-reward-chain-client"
        ],
        "operationId": "user-clan-update",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-client-update-user-clan"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "description": "ID do projeto.",
            "schema": {
              "type": "integer",
              "default": 44056
            }
          }
        ],
        "summary": "Atualizar o clã do usuário atual",
        "description": "Atualiza o clã do usuário atual por meio de atributos de usuário. Resgata todas as recompensas de cadeias de recompensas que não foram resgatadas para um clã anterior e as retorna na resposta. Se o usuário estava em um clã e agora não está — sua inclusão no clã será revogada. Se o usuário mudou de clã — o clã será alterado. <br>\n\n<div class=\"note\">\n  <strong>Nota</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, consulte o bloco <strong>Segurança</strong> para esta chamada.\n</div>"
      }
    },
    "/v3/project/{project_id}/admin/reward_chain": {
      "get": {
        "summary": "Obter lista de cadeias de recompensas",
        "description": "Obtém lista de cadeias de recompensa.\n\n<div class=\"notice\"><strong>Atenção</strong><br><br>Todos os projetos têm a limitação do número de itens que você pode obter na resposta. O valor padrão e máximo é de <strong>10 itens por resposta.</strong> Para obter mais dados página por página, use os campos <b>limit</b> e <b>offset</b>.</div>",
        "operationId": "admin-get-reward-chains",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          },
          {
            "$ref": "#/components/parameters/enabled-query-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-list-reward-chains"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      },
      "post": {
        "summary": "Criar cadeia de recompensas",
        "description": "Cria cadeias de recompensas.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-create-reward-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/create-reward-chain"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/201-admin-create-reward-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/422-admin-create-update-rc-vp-invalid-request"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}": {
      "get": {
        "summary": "Obtenha a cadeia de recompensas",
        "description": "Obtém uma cadeia de recompensa específica.",
        "operationId": "admin-get-reward-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-reward-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-admin-reward-chain-not-found"
          }
        }
      },
      "put": {
        "summary": "Atualizar cadeia de recompensas",
        "description": "Atualiza a cadeia de recompensas específica.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-update-reward-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/update-reward-chain"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-admin-update-reward-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-admin-reward-chain-not-found"
          },
          "422": {
            "$ref": "#/components/responses/422-admin-create-update-rc-vp-invalid-request"
          }
        }
      },
      "delete": {
        "summary": "Excluir cadeia de recompensas",
        "description": "Exclui uma cadeia de recompensas específica.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-delete-reward-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-admin-delete-reward-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}/toggle": {
      "put": {
        "summary": "Alternar cadeia de recompensas",
        "description": "Ativar/desativar a cadeia de recompensas.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-toggle-reward-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-admin-toggle-reward-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}/reset": {
      "post": {
        "summary": "Redefinir cadeia de recompensas",
        "description": "Redefine o saldo de pontos de valor e progresso de todos os usuários na cadeia de recompensas.<br> O saldo está vinculado ao tipo de pontos específico. Se esses pontos de valor são usados em outras cadeias, o saldo será redefinido em todas as cadeias que usam esses pontos de valor.<br> Após a redefinição, você poderá atualizar o período de validade da cadeia de recompensas, e os usuários poderão progredir por ela novamente.<br> O saldo do clã é calculado através da soma do saldo de todos os seus membros. Portanto, após a redefinição, o saldo do clã também será redefinido.<br> Essa solicitação é irreversível e se aplica a todos os usuários do projeto.\n\n<div class=\"notice\"><strong>Aviso</strong>\n  <br><br>\n  Você não deve redefinir a cadeia de recompensas durante seu período de validade. Nesse caso, os usuários podem perder pontos de valor ganhos antes de reivindicar sua recompensa.\n</div>",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-reset-reward-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-admin-reset-reward-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/daily_chain": {
      "get": {
        "summary": "Obter lista de recompensas diárias",
        "description": "Obtém uma lista de recompensas diárias para administração.\n\n<div class=\"notice\"><strong>Aviso</strong><br><br>Um método retorna uma lista paginada de itens. O valor máximo e padrão é <strong>50 itens por resposta.</strong> Para obter mais itens da lista, use os parâmetros `limit` e `offset` e busque mais páginas. Por exemplo, ao chamar um método com `limit = 25` e `offset = 100`, a resposta retorna 25 itens começando do 101º item na lista geral.</div>",
        "operationId": "admin-get-daily-chains",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          },
          {
            "$ref": "#/components/parameters/enabled-query-param"
          },
          {
            "$ref": "#/components/parameters/is_expired-daily-chain-query-param"
          },
          {
            "$ref": "#/components/parameters/type-daily-chain-query-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-list-daily-chains"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      },
      "post": {
        "summary": "Criar recompensa diária",
        "description": "Cria uma recompensa diária.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-create-daily-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/create-daily-chain"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/201-admin-create-daily-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/422-admin-create-error-list"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}": {
      "get": {
        "summary": "Obter recompensa diária",
        "description": "Obtém uma cadeia de recompensas específica para administração.",
        "operationId": "admin-get-daily-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-daily-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          }
        }
      },
      "put": {
        "summary": "Atualizar recompensa diária",
        "description": "Atualiza uma recompensa diária específica.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-update-daily-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/update-daily-chain"
        },
        "responses": {
          "204": {
            "description": "Recompensa diária atualizada com sucesso.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          },
          "422": {
            "$ref": "#/components/responses/422-admin-update-error-list"
          }
        }
      },
      "delete": {
        "summary": "Excluir recompensa diária",
        "description": "Exclui uma recompensa diária específica.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-delete-daily-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "responses": {
          "204": {
            "description": "Recompensa diária excluída com sucesso.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}/toggle": {
      "put": {
        "summary": "Alternar recompensa diária",
        "description": "Ativa ou desativa uma recompensa diária.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-toggle-daily-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "responses": {
          "204": {
            "description": "A recompensa diária foi desativada ou ativada.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}/reset": {
      "post": {
        "summary": "Redefinir recompensa diária",
        "description": "Redefine o progresso para todos os usuários na recompensa diária. Aplica-se apenas a recompensas diárias do tipo `rolling`.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-reset-daily-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "responses": {
          "204": {
            "description": "A recompensa diária foi redefinida.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/daily_chain": {
      "get": {
        "tags": [
          "daily-chain-client"
        ],
        "operationId": "get-daily-chains-list",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Obter recompensas diárias do usuário atual",
        "description": "Ponto de extremidade do cliente. Obtém as recompensas diárias do usuário atual.\n\n<div class=\"notice\"><strong>Aviso</strong><br><br>Um método retorna uma lista paginada de itens. O valor máximo e padrão é <strong>50 itens por resposta.</strong> Para obter mais itens da lista, use os parâmetros <code>limit</code> e <code>offset</code> e busque mais páginas. Por exemplo, ao chamar um método com <code>limit = 25</code> e <code>offset = 100</code>, a resposta retorna 25 itens começando do 101º item na lista geral.</div>\n\n<br>\n\n<div class=\"note\">\n  <strong>Nota</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, consulte o bloco <strong>Segurança</strong> para esta chamada.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-client-get-daily-chains-list"
          },
          "401": {
            "$ref": "#/components/responses/401-client-auth-error"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/daily_chain/{daily_chain_id}": {
      "get": {
        "tags": [
          "daily-chain-client"
        ],
        "operationId": "get-user-daily-chain-by-id",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Obtém a recompensa diária do usuário atual por seu ID",
        "description": "Ponto de extremidade do cliente. Obtém a recompensa diária do usuário atual pelo seu ID. <br>\n\n<div class=\"note\">\n  <strong>Nota</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, consulte o bloco <strong>Segurança</strong> para esta chamada.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          }
        ],
        "responses": {
          "200": {
            "description": "A recompensa diária do usuário foi recuperada com sucesso.",
            "content": {
              "application/json": {
                "examples": {
                  "response": {
                    "$ref": "#/components/examples/200-client-daily-chain"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/client-daily-chain-model"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/daily_chain/{daily_chain_id}/step/number/{step_number}/claim": {
      "post": {
        "tags": [
          "daily-chain-client"
        ],
        "operationId": "claim-user-daily-chain-step-reward",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Resgatar etapa da recompensa diária",
        "description": "Ponto de extremidade do cliente. Resgata a recompensa de etapa do usuário atual de uma recompensa diária. Todas as etapas só podem ser resgatadas em ordem sequencial. A recompensa por uma etapa perdida não pode ser obtida por moeda virtual ou real, nem assistindo a um anúncio <br>\n\n<div class=\"note\">\n  <strong>Nota</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, consulte o bloco <strong>Segurança</strong> para esta chamada.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_step_number-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Resgatou a recompensa de etapa do usuário atual por uma etapa de recompensa diária com sucesso."
          },
          "401": {
            "$ref": "#/components/responses/401-client-auth-error"
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-step-not-found"
          },
          "422": {
            "description": "A etapa não pode ser resgatada.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/daily-chain-error-model"
                },
                "examples": {
                  "invalid-step": {
                    "$ref": "#/components/examples/422-daily-chain-claim-error-invalid-step"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/user/offer_chain": {
      "get": {
        "tags": [
          "offer-chain-client"
        ],
        "operationId": "get-offer-chains-list",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Obtenha as cadeias de ofertas do usuário atual",
        "description": "Obtém as cadeias de ofertas atuais do usuário.\n\n<div class=\"notice\"><strong>Aviso</strong><br><br>Todos os projetos têm um limite no número de itens que podem ser retornados em uma única resposta. O valor padrão e máximo é de <strong>30 itens por resposta</strong>. Para obter mais dados, use os parâmetros de consulta <code>limit</code> e <code>offset</code> para a paginação.</div>\n\n<br>\n\n<div class=\"note\">\n  <strong>Nota</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, consulte o bloco <strong>Segurança</strong> para esta chamada.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-client-get-offer-chains-list"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/offer_chain/{offer_chain_id}": {
      "get": {
        "tags": [
          "offer-chain-client"
        ],
        "operationId": "get-user-offer-chain-by-id",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Obter a cadeia de ofertas do usuário atual por ID",
        "description": "Obtém a cadeia de ofertas do usuário atual pelo ID da cadeia de ofertas. <br>\n\n<div class=\"note\">\n  <strong>Nota</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, consulte o bloco <strong>Segurança</strong> para esta chamada.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          }
        ],
        "responses": {
          "200": {
            "description": "A cadeia de ofertas do usuário foi recuperada com sucesso.",
            "content": {
              "application/json": {
                "examples": {
                  "response": {
                    "$ref": "#/components/examples/200-client-offer-chain"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/client-offer-chain-model"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/claim": {
      "post": {
        "tags": [
          "offer-chain-client"
        ],
        "operationId": "claim-user-offer-chain-step-reward",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Resgate a etapa da cadeia de oferta gratuita",
        "description": "Conclui a progressão do usuário atual por meio da etapa da cadeia de ofertas e concede a recompensa associada.\n\n<div class=\"notice\">\n  <strong>Aviso</strong><br>\n    <br>Use essa chamada somente para etapas gratuitas na cadeia de ofertas.\n    Para etapas que exigem pagamento em moeda real, use a chamada <a href=\"/pt/api/shop-builder/operation/order-user-offer-chain-step-reward\">Criar ordem para a etapa da cadeia de ofertas pagas</a>.\n</div>\n\n<br>\n\n<div class=\"note\">\n  <strong>Nota</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, consulte o bloco <strong>Segurança</strong> para esta chamada.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_step_number-path-param"
          }
        ],
        "responses": {
          "200": {
            "description": "A etapa gratuita foi resgatada com sucesso e a recompensa concedida.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order_id": {
                      "type": "integer",
                      "description": "ID de pedido."
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "order_id": 641
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-step-not-found"
          },
          "422": {
            "description": "A etapa não pode ser resgatada. Certifique-se de que todas as etapas anteriores foram concluídas e que a etapa está marcada como gratuita.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offer-chain-error-model"
                },
                "examples": {
                  "invalid-step": {
                    "$ref": "#/components/examples/422-offer-chain-claim-error-invalid-step"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/order": {
      "post": {
        "tags": [
          "offer-chain-client",
          "payment-client-side"
        ],
        "operationId": "order-user-offer-chain-step-reward",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Criar ordem para a etapa da cadeia de ofertas pagas",
        "description": "Cria um pedido para o item associado à etapa da cadeia de ofertas pagas especificada. O pedido criado obtém o status `new` do pedido.\n\nPara abrir a interface de pagamento em uma nova janela, use o seguinte link: `https://secure.xsolla.com/paystation4/?token={token}`, onde `{token}` é o token recebido.\n\nPara fins de teste, use este URL: `https://sandbox-secure.xsolla.com/paystation4/?token={token}`.\n\n<div class=\"notice\">\n  <strong>Aviso</strong> <br><br>\n    Esse método deve ser usado no lado do cliente. O endereço IP do usuário é usado para determinar o país, o que afeta a moeda e os métodos de pagamento disponíveis. Usar esse método do lado do servidor pode resultar na detecção incorreta da moeda e afetar os métodos de pagamento no <a href=\"https://developers.xsolla.com/pt/doc/pay-station/\">Pay Station</a>.\n</div>\n\n<br>\n\n<div class=\"notice\">\n <strong>Aviso</strong><br><br>\n    Use essa chamada somente para etapas da cadeia de ofertas pagas.\n    Para obter etapas gratuitas, use a chamada </a> da cadeia de <a href=\"/pt/api/shop-builder/operation/claim-user-offer-chain-step-reward\">Resgate a etapa da cadeia de oferta gratuita</a>.\n</div>\n\n<br>\n\n<div class=\"note\">\n  <strong>Nota</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, consulte o bloco <strong>Segurança</strong> para esta chamada.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_step_number-path-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Cart-Payment_200-order-created"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-step-not-found"
          },
          "422": {
            "description": "A etapa não pode ser comprada.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offer-chain-error-model"
                },
                "examples": {
                  "invalid-step": {
                    "$ref": "#/components/examples/422-offer-chain-claim-error-invalid-step"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/offer_chain": {
      "get": {
        "summary": "Obter lista de cadeias de ofertas",
        "description": "Obtém a lista de cadeias de ofertas para administração.\n\n<div class=\"notice\"><strong>Aviso</strong><br><br>Todos os projetos têm um limite no número de itens que podem ser retornados em uma única resposta. O valor padrão e máximo é de <strong>10 itens por resposta</strong>. Para obter mais dados, use os parâmetros de consulta <code>limit</code> e <code>offset</code> para a paginação.</div>",
        "operationId": "admin-get-offer-chains",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          },
          {
            "$ref": "#/components/parameters/enabled-query-param"
          }
        ],
        "tags": [
          "offer-chain-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-list-offer-chains"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      },
      "post": {
        "summary": "Criar cadeia de ofertas",
        "description": "Cria uma cadeia de ofertas.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-create-offer-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "offer-chain-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/create-offer-chain"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/201-admin-create-offer-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/422-create-error-list"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}": {
      "get": {
        "summary": "Obter cadeia de ofertas",
        "description": "Obtém uma cadeia de ofertas específica para administração.",
        "operationId": "admin-get-offer-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          }
        ],
        "tags": [
          "offer-chain-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-offer-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-not-found"
          }
        }
      },
      "put": {
        "summary": "Atualizar cadeia de ofertas",
        "description": "Atualiza uma cadeia de ofertas específica.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-update-offer-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          }
        ],
        "tags": [
          "offer-chain-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/update-offer-chain"
        },
        "responses": {
          "204": {
            "description": "Cadeia de ofertas atualizada com sucesso.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-not-found"
          },
          "422": {
            "$ref": "#/components/responses/422-update-error-list"
          }
        }
      },
      "delete": {
        "summary": "Excluir cadeia de ofertas",
        "description": "Exclui uma cadeia de ofertas específica.\n\nApós a exclusão:<ul><li>Todas as recompensas já recebidas pelos usuários são retidas.</li><li>Etapas não concluídas ficam indisponíveis e suas recompensas não podem mais ser obtidas.</li></ul>\n\nAo contrário de desabilitar a cadeia de ofertas por meio da chamada da chamada <a href=\"/pt/api/shop-builder/operation/admin-toggle-offer-chain\">Alternar cadeia de ofertas</a>, a exclusão é irreversível e o progresso do usuário não é preservado.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-delete-offer-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          }
        ],
        "tags": [
          "offer-chain-admin"
        ],
        "responses": {
          "204": {
            "description": "Cadeia de ofertas excluída com sucesso.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}/toggle": {
      "put": {
        "summary": "Alternar cadeia de ofertas",
        "description": "Habilita ou desabilita uma cadeia de ofertas.\n\nQuando a cadeia de ofertas é desativada, os usuários perdem temporariamente o acesso a ela, mas seu progresso é preservado.\n\nDepois que a cadeia de ofertas for reativada, os usuários poderão continuar da etapa de onde pararam.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-toggle-offer-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          }
        ],
        "tags": [
          "offer-chain-admin"
        ],
        "responses": {
          "204": {
            "description": "A cadeia de ofertas foi desativada/ativada.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/items/upsell": {
      "get": {
        "tags": [
          "upsell-admin"
        ],
        "operationId": "get-upsell-configurations-for-project-admin",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "responses": {
          "200": {
            "description": "A lista de detalhes de configuração e itens usados para venda cruzada no projeto.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "is_enabled": {
                        "type": "boolean",
                        "example": true,
                        "description": "Whether upsell is enabled for the project."
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "fixed_list",
                          "most_sellable",
                          "only_promotions"
                        ],
                        "example": "fixed_list",
                        "description": "The type of upsell."
                      },
                      "items": {
                        "type": "array",
                        "example": [
                          {
                            "item_id": 1,
                            "sku": "com.xsolla.booster_mega_1",
                            "name": {
                              "en": "Item's name",
                              "de": "Name des Artikels"
                            },
                            "type": "virtual_good"
                          }
                        ],
                        "description": "The list of items SKU that are a part of the upsell in the project.",
                        "items": {
                          "type": "object",
                          "properties": {
                            "item_id": {
                              "$ref": "#/components/schemas/item_id"
                            },
                            "sku": {
                              "$ref": "#/components/schemas/sku"
                            },
                            "type": {
                              "$ref": "#/components/schemas/item_type"
                            },
                            "name": {
                              "$ref": "#/components/schemas/name-localization-object"
                            },
                            "bundle_type": {
                              "$ref": "#/components/schemas/bundle_type"
                            },
                            "unit_type": {
                              "$ref": "#/components/schemas/unit_type"
                            },
                            "unit_items": {
                              "type": "array",
                              "description": "Game keys for different DRMs.",
                              "items": {
                                "type": "object",
                                "description": "Game key item. It represents game on a certain platform (steam, gog, etc.).",
                                "properties": {
                                  "item_id": {
                                    "$ref": "#/components/schemas/item_id"
                                  },
                                  "sku": {
                                    "$ref": "#/components/schemas/sku"
                                  },
                                  "type": {
                                    "$ref": "#/components/schemas/item_type"
                                  },
                                  "name": {
                                    "$ref": "#/components/schemas/name-localization-object"
                                  },
                                  "drm_name": {
                                    "$ref": "#/components/schemas/drm_name"
                                  },
                                  "drm_sku": {
                                    "$ref": "#/components/schemas/drm_sku"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "upsell": {
                    "summary": "Project has upsell",
                    "value": [
                      {
                        "is_enabled": true,
                        "type": "fixed_list",
                        "items": [
                          {
                            "item_id": 1,
                            "sku": "com.xsolla.booster_mega_1",
                            "name": {
                              "en": "Item's name",
                              "de": "Name des Artikels"
                            },
                            "type": "virtual_good"
                          },
                          {
                            "item_id": 2,
                            "sku": "com.xsolla.booster_mega_2",
                            "name": {
                              "en": "Item's name",
                              "de": "Name des Artikels"
                            },
                            "type": "bundle",
                            "bundle_type": "standard"
                          },
                          {
                            "item_id": 3,
                            "sku": "com.xsolla.mega_game_1",
                            "name": {
                              "en": "Mega game"
                            },
                            "type": "unit",
                            "unit_type": "game",
                            "unit_items": [
                              {
                                "item_id": 4,
                                "sku": "com.xsolla.mega_game_steam_1",
                                "name": {
                                  "en": "Mega game steam"
                                },
                                "drm_name": "Steam",
                                "drm_sku": "steam_key_1"
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "summary": "Obter informações sobre venda cruzada no projeto",
        "description": "Recupera as informações sobre a venda cruzada no projeto: se está habilitado, o tipo de venda cruzada e a lista de SKUs de itens que fazem parte dessa venda cruzada."
      },
      "post": {
        "tags": [
          "upsell-admin"
        ],
        "operationId": "post-upsell",
        "summary": "Criar venda cruzada",
        "description": "Cria uma venda cruzada para um projeto. <br>\n\n<div class=\"notice\">\n  <strong>Aviso</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, veja o bloco <strong>Segurança</strong> para esta chamada.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/create-upsell"
        },
        "responses": {
          "202": {
            "description": "A venda cruzada foi criada para o projeto."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "404": {
            "$ref": "#/components/responses/Upsell-404-item-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Upsell-422-invalid-request"
          }
        }
      },
      "put": {
        "tags": [
          "upsell-admin"
        ],
        "operationId": "put-upsell",
        "summary": "Atualizar venda cruzada",
        "description": "Atualiza uma venda cruzada para um projeto. <br>\n\n<div class=\"notice\">\n  <strong>Aviso</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, veja o bloco <strong>Segurança</strong> para esta chamada.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/update-upsell"
        },
        "responses": {
          "202": {
            "description": "A venda cruzada foi atualizada para o projeto."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "404": {
            "$ref": "#/components/responses/Upsell-404-item-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Upsell-422-invalid-request"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/items/upsell/{toggle}": {
      "put": {
        "tags": [
          "upsell-admin"
        ],
        "operationId": "put-upsell-toggle-active-inactive",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "responses": {
          "202": {
            "description": "Uma venda cruzada em um projeto foi ativada ou desativada."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "name": "toggle",
            "in": "path",
            "required": true,
            "description": "Status de ativação.",
            "schema": {
              "type": "string",
              "example": "activate"
            }
          }
        ],
        "summary": "Ativar/desativar a venda cruzada do projeto",
        "description": "Altera o status de uma venda cruzada em um projeto para ativa ou inativa. <br>\n\n<div class=\"notice\">\n  <strong>Aviso</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, veja o bloco <strong>Segurança</strong> para esta chamada.\n</div>"
      }
    },
    "/v2/project/{project_id}/items/upsell": {
      "get": {
        "tags": [
          "upsell-client"
        ],
        "operationId": "get-upsell-for-project-client",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Upsell-200-get-client-list"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "summary": "Obter lista de itens de venda cruzada no projeto",
        "description": "Obtém uma lista de itens de venda cruzada em um projeto, se já tiverem sido configuradas. <br>\n\n<div class=\"note\">\n  <strong>Nota</strong><br><br>\n    Esta chamada de API usa um JWT de usuário para autorização.<br><br>\n    Inclua o token no cabeçalho <code>Authorization</code> no seguinte formato: <code>Bearer &lt;user_JWT&gt;</code>. Para mais informações sobre o JWT de usuário, consulte o bloco <strong>Segurança</strong> para esta chamada.\n</div>"
      }
    },
    "/projects/{project_id}/users/{user_id}/points/{point_id}/balance": {
      "servers": [
        {
          "url": "https://loyalty-points.xsolla.com"
        }
      ],
      "get": {
        "summary": "Obter saldo de pontos de fidelidade do usuário",
        "description": "Retorna o saldo atual dos pontos de fidelidade especificados.",
        "tags": [
          "loyalty-program-admin"
        ],
        "operationId": "loyalty-get-user-point-balance",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/user_id-path-param"
          },
          {
            "$ref": "#/components/parameters/point_id-path-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-get-point-balance"
          },
          "401": {
            "$ref": "#/components/responses/ItemGroup_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-user-or-point-not-found"
          }
        }
      }
    },
    "/projects/{project_id}/users/{user_id}/points/{point_id}/balance/debit": {
      "servers": [
        {
          "url": "https://loyalty-points.xsolla.com"
        }
      ],
      "post": {
        "summary": "Debita o saldo de pontos de fidelidade do usuário",
        "description": "Debita uma quantia específica do saldo de pontos de fidelidade do usuário.",
        "tags": [
          "loyalty-program-admin"
        ],
        "operationId": "loyalty-debit-user-point-balance",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/user_id-path-param"
          },
          {
            "$ref": "#/components/parameters/point_id-path-param"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/debit-point-balance"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-debit-point-balance"
          },
          "400": {
            "$ref": "#/components/responses/400-bad-request"
          },
          "401": {
            "$ref": "#/components/responses/ItemGroup_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-user-or-point-not-found"
          },
          "422": {
            "$ref": "#/components/responses/422-insufficient-balance"
          }
        }
      }
    },
    "/projects/{project_id}/users/{user_id}/points/{point_id}/balance/credit": {
      "servers": [
        {
          "url": "https://loyalty-points.xsolla.com"
        }
      ],
      "post": {
        "summary": "Credita um valor ao saldo de pontos de fidelidade do usuário",
        "description": "Credita uma quantia específica ao saldo de pontos de fidelidade do usuário.",
        "tags": [
          "loyalty-program-admin"
        ],
        "operationId": "loyalty-credit-user-point-balance",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Admin",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/user_id-path-param"
          },
          {
            "$ref": "#/components/parameters/point_id-path-param"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/credit-point-balance"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-credit-point-balance"
          },
          "400": {
            "$ref": "#/components/responses/400-bad-request"
          },
          "401": {
            "$ref": "#/components/responses/ItemGroup_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-user-or-point-not-found"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "description": "Chamadas do lado do servidor usam o esquema de autenticação `basicAuth`. Todas as solicitações para a API devem\nconter o cabeçalho `Authorization: Basic <your_authorization_basic_key>`,\nonde `your_authorization_basic_key` é o par `project_id:api_key`\ncodificado de acordo com o padrão Base64.\n\nVocê pode usar `merchant_id` em vez de `project_id` se precisar. Isso não afeta a funcionalidade.\n\nVá para a [Conta de Distribuidor](https://publisher.xsolla.com/) para encontrar valores dos parâmetros:\n\n* `merchant_id` é mostrado:\n  * Na seção **Configurações da empresa > Empresa**\n  * 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>`.\n* `api_key` é mostrado na Conta de Distribuidor apenas uma vez quando é criado e deve ser armazenado do seu lado. Você pode criar uma nova chave na seguinte seção:\n  * [Configurações da empresa > Chaves de API](https://publisher.xsolla.com/0/settings/api_key)\n  * [Configurações do projeto > Chaves de API](https://publisher.xsolla.com/0/projects/0/edit/api_key)\n\n{% html name=\"div\" attrs={\"class\": \"notice\"} %}\n**Aviso**\n\nSe 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 em todos os projetos da empresa para autorização.\n{% /html %}\n\n* `project_id` é mostrado:\n  * Na Conta de Distribuidor ao lado do nome do projeto.\n  * No URL na barra de endereço do navegador ao trabalhar no projeto na Conta de Distribuidor. O URL tem o seguinte formato: `https://publisher.xsolla.com/<merchant_id>/projects/<project_id>`.\n\nPara obter mais informações sobre como trabalhar com chaves API, consulte a [Referência de API](https://developers.xsolla.com/pt/api/getting-started/#api_keys_overview).",
        "scheme": "basic"
      },
      "XsollaLoginUserJWT": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Chamadas do lado do cliente usam o esquema de autenticação `XsollaLoginUserJWT`. A solicitação deve incluir o JWT do usuário no cabeçalho `Authorization` no seguinte formato: Portador `<user_JWT>`. O token identifica o usuário e fornece acesso a dados personalizados. Para mais detalhes sobre como criar um token, consulte a [documentação Xsolla Login API](/pt/api/login/authentication-schemes#getting-user-token).\n\nAlternativamente, você pode usar um [token para abrir a interface de pagamento](/pt/api/pay-station/token/create-token)."
      },
      "AuthForCart": {
        "type": "http",
        "scheme": "bearer",
        "description": "O esquema de autenticação `AuthForCart` é utilizado para as compras de carrinhos e suporta dois modos:\n\n1. Autenticação com o JWT de um usuário. O token é passado no cabeçalho de autorização 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.\n\nAlternativamente, você pode usar um [token para abrir a interface de pagamento](/pt/api/pay-station/token/create-token).\n\n2. Modo simplificado sem o cabeçalho `Authorization`. Esse modo é usado apenas para usuários não autorizados e pode ser aplicado apenas para [vender chaves de jogo](/pt/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users). Em vez de um token, a solicitação deve incluir os seguintes cabeçalhos:\n* `x-unauthorized-id` com um ID de solicitação\n* `x-user` com o endereço de e-mail do usuário codificado em Base64."
      },
      "basicMerchantAuth": {
        "type": "http",
        "description": "Chamadas do lado do servidor usam o esquema de autenticação `basicMerchantAuth`. Todas as solicitações para a API devem\nconter o cabeçalho `Authorization: Basic <your_authorization_basic_key>`,\nonde `your_authorization_basic_key` é o par `merchant_id:api_key`\ncodificado de acordo com o padrão Base64.\n\nVá para a [Conta de Distribuidor](https://publisher.xsolla.com/) para encontrar valores dos parâmetros:\n\n* `merchant_id` é mostrado:\n  * Na seção **Configurações da empresa > Empresa**\n  * 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>`\n* `api_key` é mostrado na Conta de Distribuidor apenas uma vez quando é criado e deve ser armazenado do seu lado. Você pode criar uma nova chave na seção [Configurações da empresa > Chaves de API](https://publisher.xsolla.com/0/settings/api_key).\n\nPara obter mais informações sobre como trabalhar com chaves API, consulte a [Referência de API](https://developers.xsolla.com/pt/api/getting-started/#api_keys_overview).",
        "scheme": "basic"
      }
    },
    "parameters": {
      "project_id-path-param": {
        "name": "project_id",
        "in": "path",
        "required": true,
        "description": "ID de projeto. Você pode encontrar esse parâmetro na sua [Conta de Distribuidor](https://publisher.xsolla.com/0/projects/0/), 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>`.",
        "schema": {
          "type": "integer",
          "example": 44056
        }
      },
      "limit-query-param": {
        "name": "limit",
        "in": "query",
        "example": 50,
        "required": false,
        "description": "Limite da quantidade de elementos na página.",
        "schema": {
          "type": "integer",
          "example": 50,
          "minimum": 1
        }
      },
      "offset-query-param": {
        "name": "offset",
        "in": "query",
        "required": false,
        "example": 0,
        "description": "Número do elemento a partir do qual a lista é gerada (a quantidade começa a partir de 0).",
        "schema": {
          "type": "integer",
          "example": 0,
          "minimum": 0
        }
      },
      "enabled-query-param": {
        "name": "enabled",
        "in": "query",
        "required": false,
        "description": "Filtrar elementos pela flag `is_enabled`.",
        "schema": {
          "type": "integer"
        }
      },
      "promotion_id-path-param": {
        "name": "promotion_id",
        "in": "path",
        "required": true,
        "description": "ID de promoção. Identificador exclusivo da promoção dentro do projeto.",
        "schema": {
          "type": "integer",
          "example": 111425
        }
      },
      "code-path-param": {
        "name": "code",
        "in": "path",
        "required": true,
        "description": "Código exclusivo que diferencia maiúsculas de minúsculas. Contém letras e números.",
        "schema": {
          "type": "string",
          "example": "WINTER2021",
          "minLength": 1,
          "maxLength": 128
        }
      },
      "coupon_code-path-param": {
        "name": "coupon_code",
        "in": "path",
        "required": true,
        "description": "Código exclusivo que diferencia maiúsculas de minúsculas. Contém letras e números.",
        "schema": {
          "type": "string",
          "example": "WINTER2021",
          "minLength": 1,
          "maxLength": 128
        }
      },
      "external_id-promotion-path-param": {
        "name": "external_id",
        "in": "path",
        "required": true,
        "description": "ID externo de promoção. Identificador exclusivo da promoção dentro do projeto.",
        "schema": {
          "type": "integer",
          "example": "coupon_44056_1"
        }
      },
      "promocode_code-path-param": {
        "name": "promocode_code",
        "in": "path",
        "required": true,
        "description": "Código exclusivo que diferencia maiúsculas de minúsculas. Contém letras e números.",
        "schema": {
          "type": "string",
          "example": "SO6rew99j9",
          "minLength": 1,
          "maxLength": 128
        }
      },
      "user_external_id-query-param": {
        "name": "user_external_id",
        "in": "query",
        "required": true,
        "description": "ID externo de usuário",
        "schema": {
          "type": "string",
          "example": "d342dad2-9d59-11e9-a384-42010aa8003f"
        }
      },
      "codes-query-param": {
        "name": "codes[]",
        "in": "query",
        "description": "Códigos exclusivos que diferenciam maiúsculas de minúsculas. Contém apenas letras e números.",
        "schema": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        }
      },
      "is_enabled-query-param": {
        "name": "is_enabled",
        "in": "query",
        "required": false,
        "description": "Filtrar elementos pela flag `is_enabled`.",
        "schema": {
          "type": "integer"
        }
      },
      "personalized-catalog-rule_id-path-param": {
        "name": "rule_id",
        "in": "path",
        "required": true,
        "description": "ID da regra.",
        "schema": {
          "type": "number",
          "example": 1
        }
      },
      "item_sku-path-param": {
        "name": "item_sku",
        "in": "path",
        "required": true,
        "description": "SKU do item.",
        "schema": {
          "type": "string",
          "example": "booster_mega_1"
        }
      },
      "value_point_sku-path-param": {
        "name": "value_point_sku",
        "in": "path",
        "required": true,
        "description": "SKU de pontos de valor.",
        "schema": {
          "type": "string",
          "example": "value_point_3"
        }
      },
      "reward_chain_id-path-param": {
        "name": "reward_chain_id",
        "in": "path",
        "required": true,
        "description": "ID da cadeia de recompensas.",
        "schema": {
          "type": "integer",
          "example": 101
        }
      },
      "reward_chain_step_id-path-param": {
        "name": "step_id",
        "in": "path",
        "required": true,
        "description": "ID de etapa de cadeia de recompensa.",
        "schema": {
          "type": "integer",
          "example": 120
        }
      },
      "is_expired-daily-chain-query-param": {
        "name": "is_expired",
        "in": "query",
        "required": false,
        "description": "Filtre as recompensas diárias para mostrar apenas as expiradas.",
        "schema": {
          "type": "integer"
        }
      },
      "type-daily-chain-query-param": {
        "name": "type",
        "in": "query",
        "required": false,
        "description": "Filtra recompensas diárias para retornar apenas o tipo especificado.",
        "schema": {
          "type": "string",
          "enum": [
            "calendar_hard",
            "rolling_skippable",
            "rolling_unskippable"
          ]
        }
      },
      "daily_chain_id-path-param": {
        "name": "daily_chain_id",
        "in": "path",
        "required": true,
        "description": "ID de recompensa diária.",
        "schema": {
          "type": "integer",
          "example": 101
        }
      },
      "daily_chain_step_number-path-param": {
        "name": "step_number",
        "in": "path",
        "required": true,
        "description": "Número da etapa de recompensa diária.",
        "schema": {
          "type": "integer",
          "example": 1
        }
      },
      "offer_chain_id-path-param": {
        "name": "offer_chain_id",
        "in": "path",
        "required": true,
        "description": "ID de cadeia de ofertas.",
        "schema": {
          "type": "integer",
          "example": 101
        }
      },
      "offer_chain_step_number-path-param": {
        "name": "step_number",
        "in": "path",
        "required": true,
        "description": "Ofereça o número da etapa da cadeia.",
        "schema": {
          "type": "integer",
          "example": 1
        }
      },
      "user_id-path-param": {
        "name": "user_id",
        "in": "path",
        "required": true,
        "description": "ID de Usuário no seu sistema. Esse ID deve corresponder ao valor que você passar no parâmetro `user.id` ao [criar um token de pagamento](https://developers.xsolla.com/pt/api/pay-station/token/create-token), já que pontos de fidelidade são associados com esse ID de usuário.",
        "schema": {
          "type": "string",
          "example": "d342dad2-9d59-11e9-a384-42010aa8003f"
        }
      },
      "point_id-path-param": {
        "name": "point_id",
        "in": "path",
        "required": true,
        "description": "ID de pontos de fidelidade. Pontos de fidelidade são configurados na Conta de Distribuidor na seção [LiveOps > Programa de Fidelidade](https://publisher.xsolla.com/0/projects/0/storefront/loyalty-program). Para obter o ID, use a [chamada de API de recuperação de catálogo](https://developers.xsolla.com/pt/api/catalog/virtual-items-currency-catalog/get-virtual-items) — o ID é retornado no parâmetro `loyalty_rewards[].sku`.",
        "schema": {
          "type": "string",
          "format": "uuid",
          "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        }
      }
    },
    "schemas": {
      "Promotions_promotion_id": {
        "type": "integer",
        "description": "ID de promoção. Identificador exclusivo da promoção dentro do projeto.",
        "example": 1
      },
      "promotion_periods": {
        "type": "array",
        "nullable": false,
        "description": "Períodos de validade da promoção. Se múltiplos períodos forem especificados, tanto `date_from` quanto `date_until` são necessários.",
        "items": {
          "type": "object",
          "properties": {
            "date_from": {
              "type": "string",
              "format": "date-time",
              "nullable": false,
              "example": "2020-08-11T10:00:00+03:00",
              "description": "Data de início da promoção especificada."
            },
            "date_until": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time",
              "example": "2020-08-11T20:00:00+03:00",
              "description": "Data de término da promoção especificada. Se definido como `null`, a promoção é indefinida. Pode ser `null` apenas se um único período de validade for especificado."
            }
          },
          "required": [
            "date_from"
          ]
        }
      },
      "Promotions_coupon_name": {
        "type": "object",
        "description": "Nome da promoção. Deve conter pares chave/valor\nonde a chave é uma localidade com formato \"^[a-z]{2}-[A-Z]{2}$\", e valor sendo uma cadeia de caracteres.",
        "additionalProperties": {
          "type": "string"
        },
        "example": {
          "en-US": "Coupon title",
          "de-DE": "Gutscheintitel"
        },
        "default": {
          "en-US": "Coupon title",
          "de-DE": "Gutscheintitel"
        }
      },
      "unit_items": {
        "type": "array",
        "description": "Matriz de chavse de jogo de plataformas específicas. Usado apenas quando o tipo de item é `unit` (`bonus.item.type = 'unit'`). Se o pacote de chaves de jogo incluir chaves de plataformas específicas, o usuário poderá escolher uma delas como bônus.",
        "items": {
          "type": "object",
          "properties": {
            "sku": {
              "type": "string",
              "example": "cool_game_steam",
              "pattern": "^[a-zA-Z0-9_\\-.]*$",
              "description": "ID de pacote de chaves de jogo exclusivos de plataformas específicas. Caracteres permitidos: a–z, A–Z, 0–9, ponto (`.`), hífen (`-`), sublinhado (`_`). Combina os valores `bonus.item.​sku` e `bonus.item.unit_items.drm_sku`. Exemplo: se `bonus.item.​sku = 'cool_game'` e `bonus.item.unit_items.drm_sku = 'steam'`, o valor será `cool_game_steam`."
            },
            "is_free": {
              "type": "boolean"
            },
            "type": {
              "type": "string",
              "enum": [
                "game_key"
              ],
              "description": "Indica que o item é uma chave de jogo."
            },
            "name": {
              "type": "string",
              "example": "Awesome Game",
              "description": "Título do jogo."
            },
            "drm_name": {
              "type": "string",
              "example": "Steam",
              "description": "Nome do DRM."
            },
            "drm_sku": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9_\\-.]*$",
              "example": "steam",
              "description": "ID de DRM exclusivo utilizado como sufixo para indicar uma chave de jogo de uma plataforma específica. Caracteres permitidos: a–z, A–Z, 0–9, ponto (`.`), hífen (`-`), sublinhado (`_`)."
            }
          }
        }
      },
      "Promotions_200-coupon-bonus-reward": {
        "type": "object",
        "properties": {
          "item": {
            "type": "object",
            "properties": {
              "sku": {
                "type": "string",
                "example": "game_01",
                "description": "ID de item exclusivo. O SKU só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, pontos, traços e sublinhados."
              },
              "name": {
                "type": "object",
                "example": {
                  "en": "Game name"
                },
                "description": "Nome do item."
              },
              "type": {
                "type": "string",
                "example": "unit",
                "description": "Tipo de item. Possíveis valores:<ul><li><code>virtual_good</code> — itens virtuais</li><li><code>virtual_currency</code> — moeda virtual</li><li><code>bundle</code> — conjunto</li><li><code>unit</code> — pacote de chave de jogo</li></ul>"
              },
              "bundle_type": {
                "type": "string",
                "description": "Tipo de pacote. Devolvido se o tipo de item for um pacote.",
                "enum": [
                  "standard",
                  "virtual_currency_package"
                ]
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ],
                "example": "Game description",
                "description": "Descrição do item."
              },
              "image_url": {
                "type": [
                  "string",
                  "null"
                ],
                "example": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "description": "URL da imagem."
              },
              "content": {
                "type": "array"
              },
              "unit_items": {
                "$ref": "#/components/schemas/unit_items"
              }
            }
          },
          "quantity": {
            "type": "number",
            "description": "Quantidade do item.",
            "default": 1
          }
        }
      },
      "Promotions_sku": {
        "type": "string",
        "example": "booster_mega_1",
        "description": "ID de item exclusivo. O SKU só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, pontos, traços e sublinhados."
      },
      "Promotions_name": {
        "type": "object",
        "description": "Nome do item. Deve conter pares chave/valor\nonde chave é uma localidade com formato \"^[a-z]{2}-[A-Z]{2}$\", e o valor é uma cadeia de caracteres.",
        "additionalProperties": {
          "type": "string"
        },
        "example": {
          "en-US": "Item title",
          "de-DE": "Artikeltitel"
        },
        "default": {
          "en-US": "Item title",
          "de-DE": "Artikeltitel"
        }
      },
      "Promotions_type": {
        "type": "string",
        "description": "Tipo de item:`virtual_good`/`virtual_currency`/`bundle`/`physical_good`/`unit`."
      },
      "Promotions_redeem_code_limit": {
        "type": [
          "integer",
          "null"
        ],
        "description": "Número de resgates por código.",
        "example": 10,
        "default": 10
      },
      "Promotions_promotion_condition": {
        "type": [
          "array",
          "null"
        ],
        "items": {
          "description": "A lista de itens pelos quais o usuário recebeu um bônus.",
          "type": "object",
          "properties": {
            "item": {
              "type": "object",
              "properties": {
                "sku": {
                  "$ref": "#/components/schemas/Promotions_sku"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_name"
                },
                "type": {
                  "$ref": "#/components/schemas/Promotions_type"
                },
                "description": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "example": "Game description",
                  "description": "Descrição do item."
                },
                "image_url": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "example": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                  "description": "URL da imagem."
                },
                "external_id": {
                  "type": "string",
                  "description": "ID externo de promoção. Identificador exclusivo da promoção dentro do projeto.",
                  "minLength": 1,
                  "maxLength": 255,
                  "pattern": "^[-_.\\d\\w]+$"
                },
                "is_enabled": {
                  "type": "boolean"
                },
                "redeem_total_limit": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "redeem_user_limit": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                }
              }
            }
          }
        }
      },
      "Promotions_coupon-is_enabled": {
        "type": "boolean",
        "default": true
      },
      "Promotions_promotion_type": {
        "type": "string",
        "description": "Tipo de promoção.",
        "example": "item_discount"
      },
      "Promotions_promotion_discount_percent": {
        "type": [
          "string",
          "null"
        ],
        "description": "Percentual de desconto.\nO preço do carrinho será reduzido usando um valor calculado usando essa porcentagem e, em seguida, arredondado para 2 casas decimais.",
        "default": "10.00",
        "example": "10.00"
      },
      "promotion_recurrent_schedule_response": {
        "type": [
          "object",
          "null"
        ],
        "description": "Limite o período de atualização.",
        "properties": {
          "per_user": {
            "type": [
              "object",
              "null"
            ],
            "description": "Período de atualização do limite do usuário.",
            "oneOf": [
              {
                "type": "object",
                "title": "interval_type = diariamente",
                "description": "Tipo diário de atualização de limites de usuário.",
                "properties": {
                  "interval_type": {
                    "type": "string",
                    "description": "Tipo de período de atualização recorrente.",
                    "enum": [
                      "daily"
                    ]
                  },
                  "time": {
                    "type": "string",
                    "description": "Tempo de atualização do limite no fuso horário desejado (arredondamento para horas).",
                    "format": "full-time",
                    "example": "11:00:00+03:00"
                  },
                  "reset_next_date": {
                    "type": "integer",
                    "description": "Data e hora em que os limites são atualizados (Unix Timestamp).",
                    "example": 1677553200
                  },
                  "displayable_reset_start_date": {
                    "description": "Data e hora da primeira atualização de limite (ISO 8601).",
                    "type": "string",
                    "format": "date-time",
                    "example": "2023-02-28T11:00:00+08:00"
                  },
                  "displayable_reset_next_date": {
                    "description": "Data e hora em que os limites devem ser redefinidos (ISO 8601).",
                    "type": "string",
                    "format": "date-time",
                    "example": "2023-02-28T11:00:00+08:00"
                  }
                }
              },
              {
                "type": "object",
                "title": "interval_type = semanalmente",
                "description": "Tipo semanal de atualização de limites de usuário.",
                "properties": {
                  "interval_type": {
                    "type": "string",
                    "description": "Tipo de período de atualização recorrente.",
                    "enum": [
                      "weekly"
                    ]
                  },
                  "day_of_week": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "description": "Dia da semana em que os limites se atualizam. Onde 1 é segunda-feira e 7 é domingo. Não `null` apenas para o tipo de período de atualização de limite `weekly`.",
                    "minimum": 1,
                    "maximum": 7
                  },
                  "time": {
                    "type": "string",
                    "description": "Tempo de atualização do limite no fuso horário desejado (arredondamento para horas).",
                    "format": "full-time",
                    "example": "11:00:00+03:00"
                  },
                  "reset_next_date": {
                    "type": "integer",
                    "description": "Data e hora em que os limites são atualizados (Unix Timestamp).",
                    "example": 1677553200
                  },
                  "displayable_reset_start_date": {
                    "description": "Data e hora da primeira atualização de limite (ISO 8601).",
                    "type": "string",
                    "format": "date-time",
                    "example": "2023-02-28T11:00:00+08:00"
                  },
                  "displayable_reset_next_date": {
                    "description": "Data e hora em que os limites devem ser redefinidos (ISO 8601).",
                    "type": "string",
                    "format": "date-time",
                    "example": "2023-02-28T11:00:00+08:00"
                  }
                }
              },
              {
                "type": "object",
                "title": "interval_type = mensalmente",
                "description": "Tipo mensal de atualização dos limites de usuário.",
                "properties": {
                  "interval_type": {
                    "type": "string",
                    "description": "Tipo de período de atualização recorrente.",
                    "enum": [
                      "monthly"
                    ]
                  },
                  "day_of_month": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "description": "Dia do mês em que os limites são atualizados. Se não houver um dia selecionado do mês por ser mais curto, a atualização ocorrerá no último dia do mês. Não `null` apenas para o tipo de período de atualização de limite `monthly`.",
                    "minimum": 1,
                    "maximum": 31
                  },
                  "time": {
                    "type": "string",
                    "description": "Tempo de atualização do limite no fuso horário desejado (arredondamento para horas).",
                    "format": "full-time",
                    "example": "11:00:00+03:00"
                  },
                  "reset_next_date": {
                    "type": "integer",
                    "description": "Data e hora em que os limites são atualizados (Unix Timestamp).",
                    "example": 1677553200
                  },
                  "displayable_reset_start_date": {
                    "description": "Data e hora da primeira atualização de limite (ISO 8601).",
                    "type": "string",
                    "format": "date-time",
                    "example": "2023-02-28T11:00:00+08:00"
                  },
                  "displayable_reset_next_date": {
                    "description": "Data e hora em que os limites devem ser redefinidos (ISO 8601).",
                    "type": "string",
                    "format": "date-time",
                    "example": "2023-02-28T11:00:00+08:00"
                  }
                }
              }
            ]
          }
        }
      },
      "Promotions_promotion_limits_response": {
        "type": "object",
        "description": "Limites da promoção.",
        "properties": {
          "per_user": {
            "type": [
              "object",
              "null"
            ],
            "description": "Limitação de promoção para um usuário separado.",
            "properties": {
              "total": {
                "type": "integer",
                "description": "Número total de itens que um usuário pode comprar. Você pode definir esse número na Conta de Distribuidor ou usar pontos de extremidade de administração para entidades da Store (limitação de objetos).",
                "example": 5
              }
            }
          },
          "per_item": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Limitação global de itens.",
            "example": 10
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/promotion_recurrent_schedule_response"
          }
        }
      },
      "Promotions_200-get-promotion-model": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Promotions_promotion_id"
          },
          "promotion_periods": {
            "$ref": "#/components/schemas/promotion_periods"
          },
          "name": {
            "$ref": "#/components/schemas/Promotions_coupon_name"
          },
          "bonus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Promotions_200-coupon-bonus-reward"
            }
          },
          "condition": {
            "$ref": "#/components/schemas/Promotions_promotion_condition"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/Promotions_coupon-is_enabled"
          },
          "type": {
            "$ref": "#/components/schemas/Promotions_promotion_type"
          },
          "discount": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "percent": {
                "$ref": "#/components/schemas/Promotions_promotion_discount_percent"
              }
            },
            "example": {
              "discount": {
                "percent": "10.99"
              }
            }
          },
          "limits": {
            "$ref": "#/components/schemas/Promotions_promotion_limits_response"
          }
        }
      },
      "total_promotions_count": {
        "type": "integer",
        "description": "Número total de promoções."
      },
      "active_promotions_count": {
        "type": "integer",
        "description": "Número de promoções ativas."
      },
      "inactive_promotions_count": {
        "type": "integer",
        "description": "Número de promoções desativadas."
      },
      "Promotions_coupon-external_id": {
        "type": "string",
        "example": "coupon_external_id",
        "default": "coupon_external_id",
        "description": "ID de promoção exclusivo. O `external_id` só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, pontos, traços e sublinhados."
      },
      "Promotions_coupon_bonus": {
        "type": [
          "array",
          "null"
        ],
        "items": {
          "description": "A lista de itens que serão adicionados na compra do usuário como um bônus.",
          "type": "object",
          "properties": {
            "sku": {
              "type": "string",
              "description": "SKU do item.",
              "default": "elven_shield"
            },
            "quantity": {
              "type": "number",
              "description": "Quantidade do item.",
              "default": 1
            }
          }
        }
      },
      "Promotions_coupon-redeem_total_limit": {
        "type": [
          "integer",
          "null"
        ],
        "description": "Limita o número total de cupons.",
        "example": 10,
        "default": 10
      },
      "Promotions_coupon-redeem_user_limit": {
        "type": [
          "integer",
          "null"
        ],
        "description": "Limita o número total de cupons resgatados por um único usuário.",
        "example": 10,
        "default": 10
      },
      "Promotions_coupon_total_limit_state": {
        "type": [
          "object",
          "null"
        ],
        "description": "Limites para cada código de cupom exclusivo.",
        "properties": {
          "available": {
            "type": "integer",
            "description": "O número restante de vezes que um cupom pode ser usado.",
            "example": 3
          },
          "reserved": {
            "type": "integer",
            "description": "O número reservado de um cupom.",
            "example": 3
          },
          "used": {
            "type": "integer",
            "description": "O número de vezes que um cupom é usado.",
            "example": 5
          }
        }
      },
      "Promotions_cart_item_discount": {
        "type": "string",
        "nullable": false,
        "description": "Percentual de desconto.\n\nO preço do item do carrinho será diminuído usando um valor\ncalculado usando essa porcentagem e, em seguida, arredondado\npara 2 casas decimais.",
        "default": "10.00",
        "example": "10.00"
      },
      "admin-promotions_200-get-redeemable-coupon-promotion-model": {
        "type": "object",
        "properties": {
          "external_id": {
            "$ref": "#/components/schemas/Promotions_coupon-external_id"
          },
          "promotion_periods": {
            "$ref": "#/components/schemas/promotion_periods"
          },
          "name": {
            "$ref": "#/components/schemas/Promotions_coupon_name"
          },
          "bonus": {
            "$ref": "#/components/schemas/Promotions_coupon_bonus"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/Promotions_coupon-is_enabled"
          },
          "redeem_total_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
          },
          "redeem_user_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
          },
          "redeem_code_limit": {
            "$ref": "#/components/schemas/Promotions_redeem_code_limit"
          },
          "total_limit_state": {
            "$ref": "#/components/schemas/Promotions_coupon_total_limit_state"
          },
          "discount": {
            "type": [
              "object",
              "null"
            ],
            "description": "Apenas para códigos promocionais.",
            "properties": {
              "percent": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Percentual de desconto.\nO preço do carrinho será reduzido usando um valor calculado usando essa porcentagem e, em seguida, arredondado para 2 casas decimais.",
                "default": "10.00",
                "example": "10.00"
              }
            },
            "example": {
              "discount": {
                "percent": "10.99"
              }
            }
          },
          "discounted_items": {
            "type": [
              "array",
              "null"
            ],
            "description": "Lista de itens que são descontados por um código promocional. Apenas para códigos promocionais.",
            "items": {
              "description": "Desconto para itens específicos no carrinho.",
              "type": "object",
              "properties": {
                "sku": {
                  "type": "string",
                  "description": "SKU do item.",
                  "default": "elven_shield"
                },
                "discount": {
                  "type": "object",
                  "nullable": false,
                  "properties": {
                    "percent": {
                      "$ref": "#/components/schemas/Promotions_cart_item_discount"
                    }
                  },
                  "required": [
                    "percent"
                  ]
                }
              },
              "required": [
                "sku",
                "discount"
              ],
              "minItems": 1
            }
          }
        }
      },
      "Promotions_selected_unit_items": {
        "type": "object",
        "description": "Chave de jogo de plataforma específica selecionada como bônus pelo usuário. Passe o `bonus.item.sku` [recebido](/pt/api/liveops/promotions-coupons/get-coupon-rewards-by-code#promotions-coupons/get-coupon-rewards-by-code/t=response&c=200&path=bonus/item) como uma chave, e o `bonus.item.unit_items.sku` escolhido com o seu valor.",
        "additionalProperties": {
          "type": "string"
        },
        "example": {
          "game_1": "game_1_steam",
          "game_2": "game_2_playstation"
        }
      },
      "Promotions_200-coupon-discount-reward": {
        "type": [
          "object",
          "null"
        ],
        "description": "Percentual de desconto.\nO preço do carrinho será reduzido usando um valor calculado usando essa porcentagem e, em seguida, arredondado para 2 casas decimais.",
        "properties": {
          "percent": {
            "type": "string",
            "example": "10.00"
          }
        }
      },
      "Promotions_422_limit_error": {
        "description": "O limite de resgate é atingido.",
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "example": 422
          },
          "errorCode": {
            "type": "integer",
            "example": 9804
          },
          "errorMessage": {
            "type": "string",
            "example": "[0401-9804]: You have reached the coupon redemption limit."
          },
          "transactionId": {
            "type": "string",
            "example": "x-x-x-x-transactionId-mock-x-x-x"
          }
        },
        "example": {
          "statusCode": 422,
          "errorCode": 9804,
          "errorMessage": "[0401-9804]: You have reached the coupon redemption limit."
        }
      },
      "Promotions_422_reglock_error": {
        "description": "O cupom não está disponível na região do usuário.",
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "example": 422
          },
          "errorCode": {
            "type": "integer",
            "example": 9808
          },
          "errorMessage": {
            "type": "string",
            "example": "[0401-9808]: Coupon is not available in your region."
          },
          "transactionId": {
            "type": "string",
            "example": "x-x-x-x-transactionId-mock-x-x-x"
          }
        },
        "example": {
          "statusCode": 422,
          "errorCode": 9804,
          "errorMessage": "[0401-9804]: You have reached the coupon redemption limit."
        }
      },
      "user-attribute_conditions_properties_attribute": {
        "type": "string",
        "description": "Código de atributo do usuário.",
        "minLength": 1,
        "maxLength": 255,
        "pattern": "^[-_.\\d\\w]+$"
      },
      "user-attribute_conditions_properties_type-string": {
        "type": "string",
        "enum": [
          "string"
        ],
        "description": "Tipo de atributo de usuário."
      },
      "user-attribute_conditions_properties_operator_string": {
        "type": "string",
        "enum": [
          "eq",
          "ne"
        ],
        "description": "Tipo de operação realizada por condição. Para o tipo de atributo <code>string</code>.\n\nPossíveis valores:\n- `eq` — Equivalentes\n- `ne` — Não equivalentes"
      },
      "user-attribute_conditions_properties_value": {
        "type": "string",
        "description": "Valor da condição com o qual o valor do atributo do usuário será comparado. O tipo depende do tipo de atributo.",
        "maxLength": 255
      },
      "user-attribute_conditions_properties_can_be_missing": {
        "type": "boolean",
        "description": "Indica que a condição é atendida mesmo se o atributo estiver ausente dos atributos do usuário. Passe `true` para mostrar o item aos usuários que não têm esse atributo. Os usuários que têm o atributo, mas o valor não corresponder ao especificado na condição, não verão o item. `false` — os usuários que têm o atributo, mas o valor não corresponder ao especificado na condição, ou o atributo estiver ausente, não verão o item."
      },
      "user-attribute_condition_string_model-get": {
        "type": "object",
        "title": "tipo = string",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-string"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_string"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          }
        }
      },
      "user-attribute_conditions_properties_type-number": {
        "type": "string",
        "enum": [
          "number"
        ],
        "description": "Tipo de atributo de usuário."
      },
      "user-attribute_conditions_properties_operator_number": {
        "type": "string",
        "enum": [
          "eq",
          "ne",
          "gt",
          "ge",
          "lt",
          "le"
        ],
        "description": "Tipo de operação realizada por condição. Para o tipo de atributo <code>number</code>.\n\nPossíveis valores:\n- `eq` — Equivalentes\n- `ne` — Não equivalentes\n- `gt` — Maior\n- `ge` — Maior ou equivalente\n- `lt` — Menor\n- `le` — Menor ou equivalente"
      },
      "user-attribute_condition_number_model-get": {
        "type": "object",
        "title": "tipo = number",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-number"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_number"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          }
        }
      },
      "user-attribute_conditions_properties_type-date": {
        "type": "string",
        "enum": [
          "date"
        ],
        "description": "Tipo de atributo de usuário."
      },
      "user-attribute_conditions_properties_operator_date": {
        "type": "string",
        "enum": [
          "eq",
          "ne",
          "lt",
          "gt",
          "le",
          "ge"
        ],
        "description": "Tipo de operação realizada por condição. Para o tipo de atributo <code>date</code>.\n\nPossíveis valores:\n- `eq` — Equivalente\n- `ne` — Não equivalente\n- `lt` — Anterior\n- `gt` — Posterior\n- `le` — Anterior ou equivalente\n- `ge` — Posterior ou equivalente"
      },
      "user-attribute_condition_date_model-get": {
        "type": "object",
        "title": "tipo = data",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-date"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_date"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          }
        }
      },
      "user-attribute_conditions_model-get": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "items": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/user-attribute_condition_string_model-get"
            },
            {
              "$ref": "#/components/schemas/user-attribute_condition_number_model-get"
            },
            {
              "$ref": "#/components/schemas/user-attribute_condition_date_model-get"
            }
          ]
        }
      },
      "promotion_user-attribute_conditions_model-get": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-get"
          },
          {
            "description": "Condições para validar atributos do usuário.\nDetermina a disponibilidade da promoção com base em se os atributos de usuário correspondem a todas as condições especificadas."
          }
        ]
      },
      "admin-promotions_200-get-coupon-promotion-model": {
        "type": "object",
        "properties": {
          "external_id": {
            "$ref": "#/components/schemas/Promotions_coupon-external_id"
          },
          "promotion_periods": {
            "$ref": "#/components/schemas/promotion_periods"
          },
          "name": {
            "$ref": "#/components/schemas/Promotions_coupon_name"
          },
          "bonus": {
            "$ref": "#/components/schemas/Promotions_coupon_bonus"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/Promotions_coupon-is_enabled"
          },
          "redeem_total_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
          },
          "redeem_user_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
          },
          "redeem_code_limit": {
            "$ref": "#/components/schemas/Promotions_redeem_code_limit"
          },
          "total_limit_state": {
            "$ref": "#/components/schemas/Promotions_coupon_total_limit_state"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-get"
          }
        }
      },
      "user-attribute_condition_string_model-post": {
        "type": "object",
        "title": "tipo = string",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-string"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_string"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          }
        },
        "required": [
          "attribute",
          "operator",
          "value",
          "type"
        ]
      },
      "user-attribute_condition_number_model-post": {
        "type": "object",
        "title": "tipo = number",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-number"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_number"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          }
        },
        "required": [
          "attribute",
          "operator",
          "value",
          "type"
        ]
      },
      "user-attribute_condition_date_model-post": {
        "type": "object",
        "title": "tipo = data",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-date"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_date"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          }
        },
        "required": [
          "attribute",
          "operator",
          "value",
          "type"
        ]
      },
      "user-attribute_conditions_model-post": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "items": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/user-attribute_condition_string_model-post"
            },
            {
              "$ref": "#/components/schemas/user-attribute_condition_number_model-post"
            },
            {
              "$ref": "#/components/schemas/user-attribute_condition_date_model-post"
            }
          ]
        }
      },
      "promotion_user-attribute_conditions_model-post": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-post"
          },
          {
            "description": "Condições para validar atributos do usuário.\nDetermina a disponibilidade da promoção com base em se os atributos de usuário correspondem a todas as condições especificadas."
          }
        ]
      },
      "Promotions_coupon_code": {
        "type": "string",
        "description": "Código exclusivo que diferencia maiúsculas de minúsculas. Contém letras e números.",
        "minLength": 1,
        "maxLength": 128,
        "example": "WINTER2021",
        "default": "WINTER2021",
        "pattern": "^[a-zA-Z0-9]+$"
      },
      "Promotions_coupon-generate-count": {
        "type": "integer",
        "minimum": 1,
        "maximum": 50000,
        "example": 10
      },
      "value-is_free": {
        "type": "boolean",
        "example": false,
        "default": false,
        "description": "Se o item é gratuito ou não."
      },
      "Catalog_item_promotions": {
        "type": "array",
        "description": "Promoções aplicadas a itens específicos no carrinho. A matriz é retornada nos seguintes casos:\n\n* Uma promoção de desconto é configurada para um item específico.\n\n* Um código promocional com a configuração **Desconto em itens selecionados** é aplicado.\n\nSe nenhuma promoção no nível do item for aplicada, é retornada uma matriz vazia.",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "date_start": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time"
            },
            "date_end": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time"
            },
            "discount": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "percent": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "value": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              }
            },
            "bonus": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "sku": {
                    "type": "string"
                  },
                  "quantity": {
                    "type": "integer"
                  },
                  "type": {
                    "type": "string",
                    "description": "Tipo de item bônus.",
                    "enum": [
                      "virtual_good",
                      "virtual_currency",
                      "bundle",
                      "physical_good",
                      "game_key",
                      "nft"
                    ]
                  },
                  "name": {
                    "type": "string",
                    "description": "Nome do item bônus. Indisponível para o tipo de item bônus `physical_good`."
                  },
                  "image_url": {
                    "type": "string",
                    "description": "URL da imagem do item bônus. Indisponível para o tipo de item bônus `physical_good`."
                  },
                  "bundle_type": {
                    "type": "string",
                    "description": "Tipo de item de pacote de bônus. Disponível apenas para o tipo de item bônus `bundle`.",
                    "enum": [
                      "standard",
                      "virtual_currency_package"
                    ]
                  }
                }
              }
            },
            "limits": {
              "type": "object",
              "properties": {
                "per_user": {
                  "type": "object",
                  "properties": {
                    "available": {
                      "type": "integer"
                    },
                    "total": {
                      "type": "integer"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "Can_be_bought": {
        "type": "boolean",
        "example": true,
        "description": "Se `true`, o usuário pode comprar um item."
      },
      "item_id": {
        "type": "integer",
        "example": 1,
        "description": "ID de item exclusivo interno."
      },
      "value-point-sku": {
        "type": "string",
        "description": "ID de ponto de valor exclusivo."
      },
      "value-point-amount": {
        "type": "integer",
        "description": "Quantidade de pontos de valor."
      },
      "value-point-name": {
        "type": "string",
        "description": "Nome do ponto de valor."
      },
      "Common_admin-image_url": {
        "type": "string",
        "example": "https://image.example.com",
        "description": "URL da imagem."
      },
      "is_clan": {
        "type": "boolean",
        "description": "Se o ponto de valor é usado em cadeias de recompensa de clã ou não.",
        "example": true
      },
      "client-item-value-point-reward": {
        "type": "array",
        "description": "Lista de recompensas de pontos de valor para o item.",
        "items": {
          "type": "object",
          "properties": {
            "item_id": {
              "$ref": "#/components/schemas/item_id"
            },
            "sku": {
              "$ref": "#/components/schemas/value-point-sku"
            },
            "amount": {
              "$ref": "#/components/schemas/value-point-amount"
            },
            "name": {
              "$ref": "#/components/schemas/value-point-name"
            },
            "image_url": {
              "$ref": "#/components/schemas/Common_admin-image_url"
            },
            "is_clan": {
              "$ref": "#/components/schemas/is_clan"
            }
          }
        }
      },
      "catalog_recurrent_schedule_client_response": {
        "type": [
          "object",
          "null"
        ],
        "description": "O item limita o período de atualização recorrente para um usuário.",
        "oneOf": [
          {
            "type": "object",
            "title": "interval_type = diariamente",
            "description": "Tipo diário de atualização de limites de usuário.",
            "properties": {
              "interval_type": {
                "type": "string",
                "description": "Tipo de período de atualização recorrente.",
                "enum": [
                  "daily"
                ]
              },
              "reset_next_date": {
                "type": "integer",
                "description": "Tipo de período de atualização recorrente.",
                "example": 1677553200
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = semanalmente",
            "description": "Tipo semanal de atualização de limites de usuário.",
            "properties": {
              "interval_type": {
                "type": "string",
                "description": "Tipo de período de atualização recorrente.",
                "enum": [
                  "weekly"
                ]
              },
              "reset_next_date": {
                "type": "integer",
                "description": "Tipo de período de atualização recorrente.",
                "example": 1677553200
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = mensalmente",
            "description": "Tipo mensal de atualização dos limites de usuário.",
            "properties": {
              "interval_type": {
                "type": "string",
                "description": "Tipo de período de atualização recorrente.",
                "enum": [
                  "monthly"
                ]
              },
              "reset_next_date": {
                "type": "integer",
                "description": "Tipo de período de atualização recorrente.",
                "example": 1677553200
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = a cada hora",
            "description": "Redefinição dos limites do usuário realizada em um intervalo de tempo especificado em horas.",
            "properties": {
              "interval_type": {
                "type": "string",
                "description": "Tipo de período de atualização recorrente.",
                "enum": [
                  "hourly"
                ]
              },
              "reset_next_date": {
                "type": "integer",
                "description": "Tipo de período de atualização recorrente.",
                "example": 1677553200
              }
            }
          }
        ]
      },
      "limit_exceeded_visibility": {
        "type": "string",
        "example": "show",
        "enum": [
          "show",
          "hide"
        ],
        "description": "Determina a visibilidade do item no catálogo após o limite de compra ser atingido, até o próximo limite ser redefinido.\n\nAplica-se a itens para os quais redefinições recorrentes de limite estão configurados na matriz `recurrent_schedule`.\n\nSe os limites redefinidos não forem configurados, o item não aparecerá no catálogo após o limite de compra ser atingido,\nindependentemente do valor `limit_exceeded_visibility`.\n\nPossíveis valores:\n- `show` — O item é retornado nas chamadas API de recuperação de catálogo após o limite de compra ser atingido. Nas chamadas API\nde 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\ndata de redefinição é retornada em  `reset_next_date`.\n- `hide` — O item não é retornado nas chamadas API de recuperação de catálogo após o limite de compra ser atingido, até\no limite ser redefinido.",
        "default": "show"
      },
      "Catalog_item_limits": {
        "description": "Limites de itens.",
        "properties": {
          "per_user": {
            "type": [
              "object",
              "null"
            ],
            "description": "Limites de item para um usuário.",
            "properties": {
              "total": {
                "type": "integer",
                "description": "Quantidade máxima de itens que o usuário atual pode comprar.",
                "example": 5
              },
              "available": {
                "type": "integer",
                "description": "Quantidade restante de itens que o usuário atual pode comprar.",
                "example": 3
              },
              "recurrent_schedule": {
                "$ref": "#/components/schemas/catalog_recurrent_schedule_client_response"
              },
              "limit_exceeded_visibility": {
                "$ref": "#/components/schemas/limit_exceeded_visibility"
              }
            }
          },
          "per_item": {
            "type": [
              "object",
              "null"
            ],
            "description": "Limites de item para um item.",
            "properties": {
              "total": {
                "type": "integer",
                "description": "Quantidade máxima de itens que todos os usuários podem comprar.",
                "example": 5
              },
              "available": {
                "type": "integer",
                "description": "Quantidade restante de itens que todos os usuários podem comprar.",
                "example": 3
              }
            }
          }
        },
        "type": [
          "object",
          "null"
        ]
      },
      "item-periods": {
        "type": [
          "array",
          "null"
        ],
        "description": "Período de venda de itens.",
        "items": {
          "type": "object",
          "properties": {
            "date_from": {
              "type": "string",
              "format": "date-time",
              "example": "2020-08-11T10:00:00+03:00",
              "description": "Data em que o item especificado estará disponível para venda."
            },
            "date_until": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time",
              "example": "2020-08-11T20:00:00+03:00",
              "description": "Data em que o item especificado ficará indisponível para venda. Pode ser `null`."
            }
          }
        }
      },
      "Promotions_200-promo-code-bonus-reward": {
        "type": "object",
        "properties": {
          "item": {
            "type": "object",
            "properties": {
              "sku": {
                "type": "string",
                "example": "game_01",
                "description": "ID de item exclusivo. O SKU só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, pontos, traços e sublinhados."
              },
              "name": {
                "type": "string",
                "example": "Game name",
                "description": "Nome do item."
              },
              "type": {
                "type": "string",
                "example": "unit",
                "description": "Tipo de item. Possíveis valores:<ul><li><code>virtual_good</code> — itens virtuais</li><li><code>virtual_currency</code> — moeda virtual</li><li><code>bundle</code> — conjunto</li><li><code>unit</code> — pacote de chave de jogo</li></ul>"
              },
              "description": {
                "type": "string",
                "example": "Game description",
                "description": "Descrição do item."
              },
              "image_url": {
                "type": "string",
                "example": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "description": "URL da imagem."
              },
              "unit_items": {
                "$ref": "#/components/schemas/unit_items"
              }
            }
          },
          "quantity": {
            "type": "number",
            "description": "Quantidade do item.",
            "default": 1
          }
        }
      },
      "Promotions_discounted_items": {
        "type": [
          "array",
          "null"
        ],
        "description": "Lista de itens que são descontados por um código promocional.",
        "items": {
          "description": "Desconto para itens específicos no carrinho.",
          "type": "object",
          "properties": {
            "sku": {
              "type": "string",
              "description": "SKU do item.",
              "default": "elven_shield"
            },
            "discount": {
              "type": "object",
              "nullable": false,
              "properties": {
                "percent": {
                  "$ref": "#/components/schemas/Promotions_cart_item_discount"
                }
              },
              "required": [
                "percent"
              ]
            }
          },
          "required": [
            "sku",
            "discount"
          ],
          "minItems": 1
        }
      },
      "Promo_code_rewards": {
        "type": "object",
        "properties": {
          "bonus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Promotions_200-promo-code-bonus-reward"
            }
          },
          "discount": {
            "$ref": "#/components/schemas/Promotions_200-coupon-discount-reward"
          },
          "discounted_items": {
            "$ref": "#/components/schemas/Promotions_discounted_items"
          },
          "is_selectable": {
            "type": "boolean",
            "description": "Se `true`, o usuário deve escolher o bônus antes de resgatar um código promocional."
          }
        }
      },
      "admin-attribute-external_id": {
        "type": "string",
        "minLength": 1,
        "maxLength": 255,
        "pattern": "^[a-zA-Z0-9-_]+$",
        "example": "attribute_1",
        "description": "ID de atributo exclusivo. O `external_id` só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, traços e sublinhados."
      },
      "value-external_id": {
        "type": "string",
        "minLength": 1,
        "maxLength": 255,
        "pattern": "^[-_.\\d\\w]+$",
        "example": "attribute_value",
        "description": "ID de valor exclusivo para um atributo. O `external_id` pode conter apenas caracteres alfanuméricos latinos minúsculos, traços e sublinhados."
      },
      "client-attributes": {
        "type": "array",
        "description": "Lista de atributos e seus valores correspondentes ao item. Pode ser usado para a filtragem de catálogos.",
        "example": {
          "value": {
            "external_id": "genre",
            "name": "Жанр",
            "values": [
              {
                "external_id": "genre_e3364991f92e751689a68b96598a5a5a84010b85",
                "value": "Casual"
              },
              {
                "external_id": "genre_eba07bfd0f982940773cba3744d97264dd58acd7",
                "value": "Strategy"
              },
              {
                "external_id": "genre_b8d0c6d8f0524c2b2d79ebb93aa3cd0e8b5199a8",
                "value": "Mobile"
              }
            ]
          }
        },
        "default": [],
        "items": {
          "type": "object",
          "properties": {
            "external_id": {
              "$ref": "#/components/schemas/admin-attribute-external_id"
            },
            "name": {
              "type": "string",
              "description": "Nome do atributo.",
              "example": "Genre"
            },
            "values": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "external_id": {
                    "$ref": "#/components/schemas/value-external_id"
                  },
                  "value": {
                    "type": "string",
                    "description": "Valor do atributo.",
                    "example": "Strategy"
                  }
                }
              }
            }
          }
        }
      },
      "Promotions_promocode_total_limit_state": {
        "type": [
          "object",
          "null"
        ],
        "description": "Limites para cada código promocional exclusivo.",
        "properties": {
          "available": {
            "type": "integer",
            "description": "O número restante de vezes que um código promocional pode ser usado.",
            "example": 3
          },
          "reserved": {
            "type": "integer",
            "description": "O número reservado de um código promocional.",
            "example": 3
          },
          "used": {
            "type": "integer",
            "description": "O número de vezes que um código promocional é usado.",
            "example": 5
          }
        }
      },
      "price_conditions_items": {
        "description": "Cada objeto descreve uma regra sobre qual deve ser o preço.",
        "type": "object",
        "properties": {
          "operator": {
            "type": "string",
            "description": "Operador de comparação para definir a faixa de preço para aplicar a promoção.\n\nPossíveis valores:\n- `ge` — Maior ou igual\n- `gt` — Maior do que\n- `le` — Menor ou igual\n- `lt` — Menor do que\n- `eq` — Equivalente\n- `ne` — Não equivalente",
            "enum": [
              "ge",
              "gt",
              "le",
              "lt",
              "eq",
              "ne"
            ]
          },
          "value": {
            "type": "string",
            "description": "Valor para determinar a faixa de preço para aplicar a promoção.",
            "pattern": "^\\d+(\\.\\d{1,4})?$"
          }
        },
        "required": [
          "operator",
          "value"
        ]
      },
      "price_conditions_promocode": {
        "type": [
          "array",
          "null"
        ],
        "description": "Matriz de objetos com condições que definem a faixa de preço para aplicar a promoção ao carrinho inteiro.<br>\n O preço total de todos os itens no carrinho do usuário é comparado com a faixa de preço especificada na condição. [Bônus](/pt/api/shop-builder/operation/create-promo-code/#!path=bonus&t=request) e [descontos](/pt/api/shop-builder/operation/create-promo-code/#!path=discount&t=request) são aplicados a todos os itens no carrinho se o preço do carrinho atender à condição especificada.<br>\n Se você passar esta matriz, defina o valor da matriz [discounted_items](/pt/api/shop-builder/operation/create-promo-code/#!path=discounted_items&t=request) como `null`.",
        "items": {
          "$ref": "#/components/schemas/price_conditions_items"
        }
      },
      "item_price_conditions_promocode": {
        "type": [
          "array",
          "null"
        ],
        "description": "Conjunto de objetos com condições que definem a faixa de preço para aplicar a promoção a determinados itens no carrinho.<br>\n O preço de cada item no carrinho do usuário é comparado com a faixa de preço especificada na condição. [Bônus](/pt/api/shop-builder/operation/create-promo-code/#!path=bonus&t=request) e [descontos](/pt/api/shop-builder/operation/create-promo-code/#!path=bonus&t=request) são aplicados somente aos itens no carrinho cujo preço atende à condição.<br>\n Se você passar esta matriz, defina o valor da matriz [discounted_items](/pt/api/shop-builder/operation/create-promo-code/#!path=discounted_items&t=request) como `null`.",
        "items": {
          "$ref": "#/components/schemas/price_conditions_items"
        }
      },
      "excluded_promotions": {
        "type": "array",
        "items": {
          "type": "integer"
        },
        "example": [
          12,
          789
        ],
        "description": "Lista de IDs de promoção a serem excluídos ao aplicar esta promoção. <br>Example: `[12, 789]`"
      },
      "Promotions_200-get-promocode-promotion-model": {
        "type": "object",
        "properties": {
          "external_id": {
            "$ref": "#/components/schemas/Promotions_coupon-external_id"
          },
          "promotion_periods": {
            "$ref": "#/components/schemas/promotion_periods"
          },
          "name": {
            "$ref": "#/components/schemas/Promotions_coupon_name"
          },
          "bonus": {
            "$ref": "#/components/schemas/Promotions_coupon_bonus"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/Promotions_coupon-is_enabled"
          },
          "redeem_total_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
          },
          "redeem_user_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
          },
          "redeem_code_limit": {
            "$ref": "#/components/schemas/Promotions_redeem_code_limit"
          },
          "discount": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "percent": {
                "$ref": "#/components/schemas/Promotions_promotion_discount_percent"
              }
            },
            "example": {
              "discount": {
                "percent": "10.99"
              }
            }
          },
          "discounted_items": {
            "$ref": "#/components/schemas/Promotions_discounted_items"
          },
          "total_limit_state": {
            "$ref": "#/components/schemas/Promotions_promocode_total_limit_state"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-get"
          },
          "price_conditions": {
            "$ref": "#/components/schemas/price_conditions_promocode"
          },
          "item_price_conditions": {
            "$ref": "#/components/schemas/item_price_conditions_promocode"
          },
          "excluded_promotions": {
            "$ref": "#/components/schemas/excluded_promotions"
          }
        }
      },
      "Promotions_is_enabled": {
        "type": "boolean",
        "example": true,
        "description": "Se a promoção está habilitada ou não."
      },
      "price_conditions_discount": {
        "type": [
          "array",
          "null"
        ],
        "description": "Matriz de objetos com condições que definem a faixa de preço para aplicar a promoção.<br> A promoção se aplica apenas a itens cujo preço atenda a todas as condições da matriz. Se você passar essa matriz, defina o valor do objeto [items](/pt/api/shop-builder/operation/create-item-promotion/#!path=items&t=request) como `null`.",
        "items": {
          "$ref": "#/components/schemas/price_conditions_items"
        }
      },
      "Promotions_promotion_limits": {
        "type": "object",
        "description": "Limites da promoção.",
        "properties": {
          "per_user": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Limitação de promoção para um usuário separado."
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/promotion_recurrent_schedule_response"
          }
        }
      },
      "price_conditions_bonus": {
        "type": [
          "array",
          "null"
        ],
        "description": "Matriz de objetos com condições que definem a faixa de preço para aplicar a promoção.<br> A promoção se aplica apenas a itens cujo preço atenda a todas as condições da matriz. Se você passar essa matriz, defina o valor do objeto [condition](/pt/api/shop-builder/operation/create-bonus-promotion/#!path=condition&t=request) como `null`.",
        "items": {
          "$ref": "#/components/schemas/price_conditions_items"
        }
      },
      "Promotions_200-get-bonus-promotion-model": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "ID de promoção. Identificador exclusivo da promoção dentro do projeto."
          },
          "promotion_periods": {
            "$ref": "#/components/schemas/promotion_periods"
          },
          "name": {
            "type": "object",
            "description": "Nome da promoção. Deve conter pares chave/valor\nonde a chave é uma localidade com formato \"^[a-z]{2}-[A-Z]{2}$\", e valor sendo uma cadeia de caracteres.",
            "additionalProperties": {
              "type": "string"
            },
            "example": {
              "en-US": "Summer season bonus",
              "de-DE": "Sommersaison Bonus"
            }
          },
          "is_enabled": {
            "type": "boolean",
            "default": true
          },
          "condition": {
            "type": [
              "array",
              "null"
            ],
            "description": "Conjunto de itens que devem ser incluídos na compra para aplicar uma promoção. Se esse parâmetro for `null`, uma promoção será aplicada a todas as compras dentro de um projeto.",
            "items": {
              "type": "object",
              "properties": {
                "sku": {
                  "type": "string",
                  "description": "SKU do item.",
                  "default": "elven_sword"
                }
              }
            }
          },
          "bonus": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "description": "A lista de itens que serão adicionados na compra do usuário como um bônus.",
              "type": "object",
              "properties": {
                "sku": {
                  "type": "string",
                  "description": "SKU do item.",
                  "default": "elven_shield"
                },
                "quantity": {
                  "type": "number",
                  "description": "Quantidade do item.",
                  "default": 1
                }
              }
            }
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-get"
          },
          "limits": {
            "$ref": "#/components/schemas/Promotions_promotion_limits_response"
          },
          "excluded_promotions": {
            "$ref": "#/components/schemas/excluded_promotions"
          },
          "price_conditions": {
            "$ref": "#/components/schemas/price_conditions_bonus"
          }
        }
      },
      "Coupon_rewards": {
        "type": "object",
        "properties": {
          "bonus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Promotions_200-coupon-bonus-reward"
            }
          },
          "is_selectable": {
            "type": "boolean",
            "description": "Se `true`, o usuário deve selecionar um bônus antes de resgatar um cupom."
          }
        }
      },
      "Promotions_discounted_items_verify": {
        "type": [
          "array",
          "null"
        ],
        "description": "Lista de itens que são descontados por um código promocional.",
        "items": {
          "description": "Desconto para itens específicos.",
          "type": "object",
          "properties": {
            "sku": {
              "type": "string",
              "example": "game_01",
              "description": "ID de item exclusivo. O SKU só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, pontos, traços e sublinhados."
            },
            "name": {
              "type": "string",
              "example": "Game name",
              "description": "Nome do item."
            },
            "type": {
              "type": "string",
              "example": "unit",
              "description": "Tipo de item. Possíveis valores:<ul><li><code>virtual_good</code> — itens virtuais</li><li><code>virtual_currency</code> — moeda virtual</li><li><code>bundle</code> — conjunto</li><li><code>unit</code> — pacote de chave de jogo</li></ul>"
            },
            "description": {
              "type": "string",
              "example": "Game description",
              "description": "Descrição do item."
            },
            "image_url": {
              "type": "string",
              "example": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
              "description": "URL da imagem."
            },
            "unit_items": {
              "$ref": "#/components/schemas/unit_items"
            },
            "discount": {
              "type": "object",
              "nullable": false,
              "properties": {
                "percent": {
                  "$ref": "#/components/schemas/Promotions_cart_item_discount"
                }
              }
            }
          }
        }
      },
      "Promo_code_rewards_verify": {
        "type": "object",
        "properties": {
          "bonus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Promotions_200-promo-code-bonus-reward"
            }
          },
          "discount": {
            "$ref": "#/components/schemas/Promotions_200-coupon-discount-reward"
          },
          "discounted_items": {
            "$ref": "#/components/schemas/Promotions_discounted_items_verify"
          },
          "is_selectable": {
            "type": "boolean",
            "description": "Se `true`, o usuário deve escolher o bônus antes de resgatar um código promocional."
          }
        }
      },
      "sku": {
        "type": "string",
        "minLength": 1,
        "maxLength": 255,
        "pattern": "^[a-zA-Z0-9_\\-–.]*$",
        "example": "booster_mega_1",
        "description": "ID de item exclusivo. O SKU só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, pontos, traços e sublinhados."
      },
      "Promotions_unique_catalog_offer_items": {
        "type": "array",
        "description": "Uma lista de itens SKU que estão disponíveis depois de usar a oferta de catálogo exclusivo.",
        "items": {
          "$ref": "#/components/schemas/sku"
        }
      },
      "Promotions_200-get-unique-catalog-offer-promotion-model": {
        "type": "object",
        "properties": {
          "external_id": {
            "$ref": "#/components/schemas/Promotions_coupon-external_id"
          },
          "promotion_periods": {
            "$ref": "#/components/schemas/promotion_periods"
          },
          "name": {
            "$ref": "#/components/schemas/Promotions_coupon_name"
          },
          "items": {
            "$ref": "#/components/schemas/Promotions_unique_catalog_offer_items"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/Promotions_coupon-is_enabled"
          },
          "redeem_total_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
          },
          "redeem_user_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
          },
          "redeem_code_limit": {
            "$ref": "#/components/schemas/Promotions_redeem_code_limit"
          },
          "total_limit_state": {
            "$ref": "#/components/schemas/Promotions_coupon_total_limit_state"
          }
        }
      },
      "Promotions_coupon_date_start": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "default": "2020-04-15T18:16:00+05:00",
        "description": "Data em que sua promoção será iniciada."
      },
      "Promotions_coupon_date_end": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "default": "2020-04-15T18:16:00+05:00",
        "description": "Data em que sua promoção será concluída. Pode ser `null`.  Se `date_end` for `null`, a promoção terá um tempo ilimitado."
      },
      "User-limit-promo-code": {
        "type": "object",
        "properties": {
          "per_user": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer",
                "example": 10,
                "description": "O número máximo de vezes que um usuário pode usar um código promocional."
              },
              "available": {
                "type": "integer",
                "example": 9,
                "description": "O número restante de vezes que um usuário pode usar um código promocional."
              }
            }
          }
        }
      },
      "User-limit-coupon": {
        "type": "object",
        "properties": {
          "per_user": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer",
                "example": 10,
                "description": "O número máximo de vezes que um usuário pode usar um cupom."
              },
              "available": {
                "type": "integer",
                "example": 9,
                "description": "O número restante de vezes que um usuário pode usar um cupom."
              }
            }
          }
        }
      },
      "Code-limit-promo-code": {
        "type": "object",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/Promotions_coupon_code"
          },
          "per_code": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer",
                "description": "O número máximo de vezes que um código promocional pode ser usado."
              },
              "available": {
                "type": "integer",
                "description": "O número restante de vezes que o código promocional pode ser usado."
              },
              "used": {
                "type": "integer",
                "description": "O número de vezes que um código promocional é usado."
              },
              "reserved": {
                "type": "integer",
                "description": "O número de vezes que um código promocional é reservado."
              }
            }
          }
        }
      },
      "personalized-catalog_user-attribute_conditions_model-get": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-get"
          },
          {
            "description": "Condições para validação de atributos do usuário.\nDetermine a disponibilidade do item no catálogo com base em se os atributos do usuário correspondem a todas as condições especificadas."
          }
        ]
      },
      "user-attribute_personalized-catalog": {
        "type": "object",
        "properties": {
          "rule_id": {
            "type": "number",
            "description": "ID da regra."
          },
          "name": {
            "type": "string",
            "description": "Nome legível de uma regra. Usado para exibir uma regra na Conta de Distribuidor."
          },
          "is_enabled": {
            "type": "boolean",
            "description": "Se a regra estiver habilitada."
          },
          "is_satisfied_for_unauth": {
            "type": "boolean",
            "description": "Se o item é exibido para usuários não autorizados. Se `true`, o item será exibido para o usuário não autorizado, independentemente das regras de exibição do catálogo. `false` por padrão."
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/personalized-catalog_user-attribute_conditions_model-get"
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Itens que serão mostrados para o usuário se seus valores de atributo atenderem às condições.",
              "properties": {
                "item_id": {
                  "type": "number",
                  "description": "ID do item."
                },
                "sku": {
                  "type": "string",
                  "description": "SKU do item."
                },
                "name": {
                  "type": "string",
                  "description": "Nome do item."
                },
                "type": {
                  "type": "string",
                  "description": "Tipo de item.",
                  "enum": [
                    "virtual_good",
                    "virtual_currency",
                    "bundle",
                    "physical_good",
                    "unit"
                  ]
                },
                "bundle_type": {
                  "type": "string",
                  "description": "Tipo de pacote. Devolvido se o tipo de item for um pacote.",
                  "enum": [
                    "standard",
                    "virtual_currency_package"
                  ]
                }
              }
            }
          }
        },
        "required": [
          "rule_id",
          "name",
          "is_enabled",
          "attribute_conditions",
          "items"
        ]
      },
      "personalized-catalog_user-attribute_conditions_model-post": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-post"
          },
          {
            "description": "Condições para validação de atributos do usuário.\nDetermine a disponibilidade do item no catálogo com base em se os atributos do usuário correspondem a todas as condições especificadas."
          }
        ]
      },
      "user-attribute_personalized-catalog-body-required": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Nome legível de uma regra. Usado para exibir uma regra na Conta de Distribuidor.",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^\\S"
          },
          "is_enabled": {
            "type": "boolean",
            "description": "Se a regra estiver habilitada."
          },
          "is_satisfied_for_unauth": {
            "type": "boolean",
            "description": "Se o item é exibido para usuários não autorizados. Se `true`, o item será exibido para o usuário não autorizado, independentemente das regras de exibição do catálogo. `false` por padrão."
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/personalized-catalog_user-attribute_conditions_model-post"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "oneOf": [
                {
                  "type": "object",
                  "description": "Itens que são mostrados a um usuário se seus valores de atributo atenderem às condições.",
                  "properties": {
                    "item_id": {
                      "type": "number",
                      "description": "ID do item."
                    }
                  },
                  "required": [
                    "item_id"
                  ]
                },
                {
                  "type": "object",
                  "description": "Itens que são mostrados a um usuário se seus valores de atributo atenderem às condições.",
                  "properties": {
                    "sku": {
                      "type": "string",
                      "description": "SKU do item."
                    }
                  },
                  "required": [
                    "sku"
                  ]
                }
              ]
            }
          }
        },
        "required": [
          "name",
          "is_enabled",
          "attribute_conditions",
          "items"
        ]
      },
      "422-invalid-request": {
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "number",
            "description": "Código de status da resposta.",
            "example": 422
          },
          "errorCode": {
            "type": "number",
            "description": "Código de erro.",
            "example": 1102
          },
          "errorMessage": {
            "type": "string",
            "description": "Mensagem de erro legível.",
            "example": "[0401-1102]: Unprocessable Entity. The property `external_id` is required"
          },
          "transactionId": {
            "type": "string",
            "description": "ID de solicitação exclusivo.",
            "example": "da145238620011eb8e24fe6913ff226a"
          }
        }
      },
      "user-attribute_personalized-catalog_all": {
        "type": "object",
        "properties": {
          "rule_id": {
            "type": "number",
            "description": "ID da regra."
          },
          "name": {
            "type": "string",
            "description": "Nome legível de uma regra. Usado para exibir uma regra na Conta de Distribuidor."
          },
          "is_enabled": {
            "type": "boolean",
            "description": "Se a regra estiver habilitada."
          },
          "is_satisfied_for_unauth": {
            "type": "boolean",
            "description": "Se o item é exibido para usuários não autorizados. Se `true`, o item será exibido para o usuário não autorizado, independentemente das regras de exibição do catálogo. `false` por padrão."
          }
        },
        "required": [
          "rule_id",
          "name",
          "is_enabled"
        ]
      },
      "user-attribute_personalized-catalog-body": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Nome legível de uma regra. Usado para exibir uma regra na Conta de Distribuidor.",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^\\S"
          },
          "is_enabled": {
            "type": "boolean",
            "description": "Se a regra estiver habilitada."
          },
          "is_satisfied_for_unauth": {
            "type": "boolean",
            "description": "Se o item é exibido para usuários não autorizados. Se `true`, o item será exibido para o usuário não autorizado, independentemente das regras de exibição do catálogo. `false` por padrão."
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/personalized-catalog_user-attribute_conditions_model-post"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "oneOf": [
                {
                  "type": "object",
                  "description": "Itens que são mostrados a um usuário se seus valores de atributo atenderem às condições.",
                  "properties": {
                    "item_id": {
                      "type": "number",
                      "description": "ID do item."
                    }
                  },
                  "required": [
                    "item_id"
                  ]
                },
                {
                  "type": "object",
                  "description": "Itens que são mostrados a um usuário se seus valores de atributo atenderem às condições.",
                  "properties": {
                    "sku": {
                      "type": "string",
                      "description": "SKU do item."
                    }
                  },
                  "required": [
                    "sku"
                  ]
                }
              ]
            }
          }
        }
      },
      "User-limit_user-external-id": {
        "description": "ID de usuário externo.",
        "type": "string",
        "minLength": 1,
        "pattern": "^\\S+$"
      },
      "User-limit_user": {
        "type": "object",
        "properties": {
          "user_external_id": {
            "$ref": "#/components/schemas/User-limit_user-external-id"
          }
        },
        "required": [
          "user_external_id"
        ]
      },
      "User-limit_user_flexible": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "user_external_id": {
            "$ref": "#/components/schemas/User-limit_user-external-id"
          }
        }
      },
      "User-limit-promotion": {
        "type": "object",
        "properties": {
          "per_user": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer",
                "example": 10,
                "description": "O número máximo de vezes que um usuário pode usar uma promoção."
              },
              "available": {
                "type": "integer",
                "example": 9,
                "description": "O número restante de vezes que um usuário pode usar uma promoção."
              }
            }
          }
        }
      },
      "User-limit_available_flexible": {
        "type": "integer",
        "minimum": 0,
        "description": "Número restante de itens ou usos da promoção disponíveis para o usuário dentro do limite aplicado."
      },
      "User-limit_available": {
        "type": "integer",
        "minimum": 1,
        "description": "Número restante de itens ou usos da promoção disponíveis para o usuário dentro do limite aplicado."
      },
      "two-letter-locale": {
        "type": [
          "object",
          "null"
        ],
        "description": "Códigos de idioma minúsculos de duas letras.",
        "title": "duas letras",
        "properties": {
          "en": {
            "type": [
              "string",
              "null"
            ],
            "description": "Inglês"
          },
          "ar": {
            "type": [
              "string",
              "null"
            ],
            "description": "Árabe"
          },
          "bg": {
            "type": [
              "string",
              "null"
            ],
            "description": "Búlgaro"
          },
          "cn": {
            "type": [
              "string",
              "null"
            ],
            "description": "Chinês (Simplificado)"
          },
          "cs": {
            "type": [
              "string",
              "null"
            ],
            "description": "Tcheco"
          },
          "de": {
            "type": [
              "string",
              "null"
            ],
            "description": "Alemão"
          },
          "es": {
            "type": [
              "string",
              "null"
            ],
            "description": "Espanhol (Espanha)"
          },
          "fr": {
            "type": [
              "string",
              "null"
            ],
            "description": "Francês"
          },
          "he": {
            "type": [
              "string",
              "null"
            ],
            "description": "Hebraico"
          },
          "it": {
            "type": [
              "string",
              "null"
            ],
            "description": "Italiano"
          },
          "ja": {
            "type": [
              "string",
              "null"
            ],
            "description": "Japonês"
          },
          "ko": {
            "type": [
              "string",
              "null"
            ],
            "description": "Coreano"
          },
          "pl": {
            "type": [
              "string",
              "null"
            ],
            "description": "Polonês"
          },
          "pt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Português"
          },
          "ro": {
            "type": [
              "string",
              "null"
            ],
            "description": "Romeno"
          },
          "ru": {
            "type": [
              "string",
              "null"
            ],
            "description": "Russo"
          },
          "th": {
            "type": [
              "string",
              "null"
            ],
            "description": "Tailandês"
          },
          "tr": {
            "type": [
              "string",
              "null"
            ],
            "description": "Turco"
          },
          "tw": {
            "type": [
              "string",
              "null"
            ],
            "description": "Chinês (Tradicional)"
          },
          "vi": {
            "type": [
              "string",
              "null"
            ],
            "description": "Vietnamita"
          },
          "km": {
            "type": [
              "string",
              "null"
            ],
            "description": "Khmer"
          },
          "id": {
            "type": [
              "string",
              "null"
            ],
            "description": "Indonésio"
          },
          "lo": {
            "type": [
              "string",
              "null"
            ],
            "description": "Lao"
          },
          "my": {
            "type": [
              "string",
              "null"
            ],
            "description": "Birmanês"
          },
          "ph": {
            "type": [
              "string",
              "null"
            ],
            "description": "Filipino"
          },
          "ne": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nepalês"
          }
        }
      },
      "five-letter-locale": {
        "type": [
          "object",
          "null"
        ],
        "description": "Códigos de localidade de cinco caracteres.",
        "title": "cinco letras",
        "properties": {
          "en-US": {
            "type": [
              "string",
              "null"
            ],
            "description": "Inglês"
          },
          "ar-AE": {
            "type": [
              "string",
              "null"
            ],
            "description": "Árabe"
          },
          "bg-BG": {
            "type": [
              "string",
              "null"
            ],
            "description": "Búlgaro"
          },
          "zh-CN": {
            "type": [
              "string",
              "null"
            ],
            "description": "Chinês (Simplificado)"
          },
          "cs-CZ": {
            "type": [
              "string",
              "null"
            ],
            "description": "Tcheco"
          },
          "de-DE": {
            "type": [
              "string",
              "null"
            ],
            "description": "Alemão"
          },
          "es-ES": {
            "type": [
              "string",
              "null"
            ],
            "description": "Espanhol (Espanha)"
          },
          "fr-FR": {
            "type": [
              "string",
              "null"
            ],
            "description": "Francês"
          },
          "he-IL": {
            "type": [
              "string",
              "null"
            ],
            "description": "Hebraico"
          },
          "it-IT": {
            "type": [
              "string",
              "null"
            ],
            "description": "Italiano"
          },
          "ja-JP": {
            "type": [
              "string",
              "null"
            ],
            "description": "Japonês"
          },
          "ko-KR": {
            "type": [
              "string",
              "null"
            ],
            "description": "Coreano"
          },
          "pl-PL": {
            "type": [
              "string",
              "null"
            ],
            "description": "Polonês"
          },
          "pt-BR": {
            "type": [
              "string",
              "null"
            ],
            "description": "Português (Brasil)"
          },
          "ro-RO": {
            "type": [
              "string",
              "null"
            ],
            "description": "Romeno"
          },
          "ru-RU": {
            "type": [
              "string",
              "null"
            ],
            "description": "Russo"
          },
          "th-TH": {
            "type": [
              "string",
              "null"
            ],
            "description": "Tailandês"
          },
          "tr-TR": {
            "type": [
              "string",
              "null"
            ],
            "description": "Turco"
          },
          "zh-TW": {
            "type": [
              "string",
              "null"
            ],
            "description": "Chinês (Tradicional)"
          },
          "vi-VN": {
            "type": [
              "string",
              "null"
            ],
            "description": "Vietnamita"
          },
          "km-KH": {
            "type": [
              "string",
              "null"
            ],
            "description": "Khmer"
          },
          "id-ID": {
            "type": [
              "string",
              "null"
            ],
            "description": "Indonésio"
          },
          "lo-LA": {
            "type": [
              "string",
              "null"
            ],
            "description": "Lao"
          },
          "my-MM": {
            "type": [
              "string",
              "null"
            ],
            "description": "Birmanês"
          },
          "ph-PH": {
            "type": [
              "string",
              "null"
            ],
            "description": "Filipino"
          },
          "ne-NP": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nepalês"
          }
        }
      },
      "name-localization-object": {
        "type": [
          "object",
          "null"
        ],
        "description": "Objeto com traduções para o nome 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 idioma 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 opções 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](/pt/doc/shop-builder/references/supported-languages/).",
        "anyOf": [
          {
            "$ref": "#/components/schemas/two-letter-locale"
          },
          {
            "$ref": "#/components/schemas/five-letter-locale"
          }
        ]
      },
      "description-localization-object": {
        "type": [
          "object",
          "null"
        ],
        "description": "Objeto com traduções para a descrição 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 opções 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](/pt/doc/shop-builder/references/supported-languages/).",
        "anyOf": [
          {
            "$ref": "#/components/schemas/two-letter-locale"
          },
          {
            "$ref": "#/components/schemas/five-letter-locale"
          }
        ]
      },
      "long-description-localization-object": {
        "type": [
          "object",
          "null"
        ],
        "description": "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](/pt/doc/shop-builder/references/supported-languages/).",
        "anyOf": [
          {
            "$ref": "#/components/schemas/two-letter-locale"
          },
          {
            "$ref": "#/components/schemas/five-letter-locale"
          }
        ]
      },
      "Value-points-item-model": {
        "type": "object",
        "properties": {
          "sku": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^[a-zA-Z0-9_\\-–.]*$",
            "example": "booster_mega_1",
            "description": "ID de item exclusivo. O SKU só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, pontos, traços e sublinhados."
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "media_list": {
            "type": "array",
            "example": [
              {
                "type": "image",
                "url": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"
              }
            ],
            "description": "Recursos adicionais do item, como capturas de tela, vídeos de jogabilidade e assim por diante.",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "image",
                    "video"
                  ],
                  "example": "image",
                  "description": "Tipo de mídia: `image`/`video`."
                },
                "url": {
                  "type": "string",
                  "example": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg",
                  "description": "Arquivo de recurso."
                }
              }
            }
          },
          "type": {
            "type": "string",
            "description": "Tipo de item."
          },
          "image_url": {
            "type": "string"
          },
          "is_enabled": {
            "type": "boolean"
          },
          "order": {
            "type": "integer",
            "example": 1,
            "description": "Define a ordem do arranjo."
          },
          "is_clan": {
            "$ref": "#/components/schemas/is_clan"
          }
        }
      },
      "is_enabled": {
        "type": "boolean",
        "example": true
      },
      "media_list": {
        "type": "array",
        "example": [
          {
            "type": "image",
            "url": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"
          }
        ],
        "description": "Recursos adicionais do item, como capturas de tela, vídeos de jogabilidade e assim por diante.",
        "items": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "image",
                "video"
              ],
              "example": "image",
              "description": "Tipo de mídia: `image`/`video`."
            },
            "url": {
              "type": "string",
              "example": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg",
              "description": "Arquivo de recurso."
            }
          }
        }
      },
      "order": {
        "type": "integer",
        "example": 1,
        "description": "Define a ordem do arranjo."
      },
      "admin_value_points-create": {
        "properties": {
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/Common_admin-image_url"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "media_list": {
            "$ref": "#/components/schemas/media_list"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "is_clan": {
            "$ref": "#/components/schemas/is_clan"
          }
        },
        "type": "object",
        "required": [
          "sku",
          "name"
        ]
      },
      "422-rc-vp-invalid-request": {
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "example": 422
          },
          "errorCode": {
            "type": "integer",
            "example": 1102
          },
          "errorMessage": {
            "type": "string",
            "example": "[0401-1102]: Unprocessable Entity. The property `property_name` is required"
          },
          "transactionId": {
            "type": "string",
            "example": "x-x-x-x-transactionId-mock-x-x-x"
          }
        }
      },
      "Value-point-item-model": {
        "type": "object",
        "properties": {
          "sku": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^[a-zA-Z0-9_\\-–.]*$",
            "example": "booster_mega_1",
            "description": "ID de item exclusivo. O SKU só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, pontos, traços e sublinhados."
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "media_list": {
            "type": "array",
            "example": [
              {
                "type": "image",
                "url": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"
              }
            ],
            "description": "Recursos adicionais do item, como capturas de tela, vídeos de jogabilidade e assim por diante.",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "image",
                    "video"
                  ],
                  "example": "image",
                  "description": "Tipo de mídia: `image`/`video`."
                },
                "url": {
                  "type": "string",
                  "example": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg",
                  "description": "Arquivo de recurso."
                }
              }
            }
          },
          "type": {
            "type": "string",
            "description": "Tipo de item."
          },
          "image_url": {
            "type": "string"
          },
          "is_enabled": {
            "type": "boolean"
          },
          "order": {
            "type": "integer",
            "example": 1,
            "description": "Define a ordem do arranjo."
          },
          "can_delete": {
            "type": "boolean",
            "description": "Se um ponto de valor pode ser excluído ou não. Se for `false`, você não pode excluir o ponto de valor, pois há uma ou mais cadeias de recompensa nas quais ele é usado. Para excluir o ponto de valor, primeiro [exclua](https://developers.xsolla.com/pt/api/shop-builder/operation/admin-delete-reward-chain/) todas as cadeias de recompensa que o contêm.\n\nSe for `true`, o ponto de valor não é usado em nenhuma cadeia de recompensas e você poderá [excluí-lo](https://developers.xsolla.com/pt/api/shop-builder/operation/admin-delete-value-point/)."
          },
          "is_clan": {
            "$ref": "#/components/schemas/is_clan"
          }
        }
      },
      "admin-item-value-point-reward": {
        "type": "object",
        "properties": {
          "item_id": {
            "$ref": "#/components/schemas/item_id"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "amount": {
            "type": "integer",
            "description": "Quantidade de pontos de valor."
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/Common_admin-image_url"
          }
        }
      },
      "item-value-point-reward-set": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "sku": {
              "$ref": "#/components/schemas/sku"
            },
            "amount": {
              "type": "integer",
              "description": "Quantidade de pontos de valor."
            }
          },
          "required": [
            "sku",
            "amount"
          ]
        }
      },
      "item-value-point-reward-set-for-patch": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "sku": {
              "$ref": "#/components/schemas/sku"
            },
            "amount": {
              "type": "integer",
              "description": "Quantidade de pontos de valor.",
              "minimum": 0
            }
          },
          "required": [
            "sku",
            "amount"
          ],
          "maxItems": 100
        }
      },
      "image_url": {
        "type": [
          "string",
          "null"
        ],
        "example": "https://image.example.com",
        "description": "URL da imagem."
      },
      "date_start": {
        "type": "string",
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "Data em que sua cadeia de recompensas começa."
      },
      "date_end": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "Data em que sua promoção da cadeia de recompensas termina. Pode ser `null`. Se `date_end` for `null`, a cadeia de recompensas terá um tempo ilimitado."
      },
      "clan_type": {
        "type": [
          "string",
          "null"
        ],
        "description": "Tipo de clã.",
        "enum": [
          "clan",
          "guild",
          "faction",
          "community",
          "team",
          "squad",
          "alliance",
          "association",
          "coalition",
          "union",
          "group",
          "civilizations",
          "dynasty",
          "order",
          "league",
          "brotherhood",
          "kingdom",
          "organization",
          "house",
          "empire",
          "tribe",
          "cartel",
          null
        ]
      },
      "top_contributors": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "name": {
            "type": "string",
            "example": "Rocket",
            "description": "ID de usuário que é enviado à Xsolla durante o processo de autorização. O ID de usuário é usado para vincular o usuário ao seu projeto Login da Xsolla e é exibido como um apelido. Se você estiver usando autorização por [ID](https://developers.xsolla.com/pt/solutions/web-shop/create-web-shop/set-up-authentication/?tabs=100-UserIDAuth&link=100-UserIDAuth) de usuário, recomendamos passar o <code>name</code> parâmetro na [resposta do webhook](https://developers.xsolla.com/pt/webhooks/operation/user-validation-in-webshop/). Este parâmetro contém o nome de usuário que será usado como apelido."
          },
          "contributed_amount": {
            "type": "integer",
            "example": 100,
            "description": "Quantidade de pontos de valor ganhos pelo usuário."
          }
        }
      },
      "value-point-description": {
        "type": [
          "string",
          "null"
        ],
        "description": "Descrição do ponto de valor."
      },
      "value-point-long-description": {
        "type": [
          "string",
          "null"
        ],
        "description": "Descrição longa do ponto de valor."
      },
      "interval_type_weekly": {
        "type": "string",
        "description": "Frequência da reinicialização recorrente da cadeia de recompensas.",
        "enum": [
          "weekly"
        ]
      },
      "interval_type_monthly": {
        "type": "string",
        "description": "Frequência da reinicialização recorrente da cadeia de recompensas.",
        "enum": [
          "monthly"
        ]
      },
      "interval_type_hourly_rc": {
        "type": "string",
        "description": "Frequência da reinicialização recorrente da cadeia de recompensas.",
        "enum": [
          "hourly"
        ]
      },
      "reset_next_date": {
        "type": "integer",
        "description": "Data e hora calculadas em que a cadeia de recompensas será redefinida na próxima vez <a href=\"https://en.wikipedia.org/wiki/Unix_time\" target=\"_blank\">(Unix Timestamp)</a>.<br><br> Por exemplo, a cadeia de recompensas é redefinida mensalmente, a partir de 1º de março de 2024, às 01:00 no horário de Kuala Lumpur (GMT+8). A data e hora da próxima redefinição da cadeia de recompensas será 1º de abril de 2024 às 01:00 no horário de Kuala Lumpur (GMT+8), que equivale a 31 de março de 2024 17:00 GMT+0 ou '1711904400000' no formato Unix Timestamp. <br><br> Exemplo: '1711904400000'"
      },
      "recurrent_schedule_client_side": {
        "type": [
          "object",
          "null"
        ],
        "description": "Período de reinicialização recorrente da cadeia de recompensas.",
        "properties": {
          "interval_type": {
            "oneOf": [
              {
                "title": "interval_type = semanalmente",
                "$ref": "#/components/schemas/interval_type_weekly"
              },
              {
                "title": "interval_type = mensalmente",
                "$ref": "#/components/schemas/interval_type_monthly"
              },
              {
                "title": "interval_type = a cada hora",
                "$ref": "#/components/schemas/interval_type_hourly_rc"
              }
            ]
          },
          "reset_next_date": {
            "$ref": "#/components/schemas/reset_next_date"
          }
        }
      },
      "popup_header-two-letter-locale": {
        "type": [
          "object",
          "null"
        ],
        "description": "Objeto com traduções para um cabeçalho de uma janela pop-up de dica sobre uma cadeia de recompensas de clã. Duas letras minúsculas [código de idioma](https://developers.xsolla.com/pt/doc/pay-station/features/localization/).",
        "properties": {
          "en": {
            "type": [
              "string",
              "null"
            ],
            "example": "How to unlock rewards"
          },
          "ar": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "bg": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "cn": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "cs": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "de": {
            "type": [
              "string",
              "null"
            ],
            "example": "Wie man Belohnungen freischaltet"
          },
          "es": {
            "type": [
              "string",
              "null"
            ],
            "example": "Cómo desbloquear recompensas"
          },
          "fr": {
            "type": [
              "string",
              "null"
            ],
            "example": "Comment débloquer des récompenses"
          },
          "he": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "it": {
            "type": [
              "string",
              "null"
            ],
            "example": "Come sbloccare ricompense"
          },
          "ja": {
            "type": [
              "string",
              "null"
            ],
            "example": "報酬をアンロックする方法"
          },
          "ko": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "pl": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "pt": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "ro": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "ru": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "th": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "tr": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "tw": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "vi": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          }
        }
      },
      "popup_instruction-two-letter-locale": {
        "type": [
          "object",
          "null"
        ],
        "description": "Objeto com traduções para uma instrução de uma janela pop-up de dica sobre uma cadeia de recompensas de clã. Duas letras minúsculas [código de idioma](https://developers.xsolla.com/pt/doc/pay-station/features/localization/).",
        "properties": {
          "en": {
            "type": [
              "string",
              "null"
            ],
            "example": "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."
          },
          "ar": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "bg": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "cn": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "cs": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "de": {
            "type": [
              "string",
              "null"
            ],
            "example": "Du musst ein Clanmitglied sein, um Clananreize zu erhalten. Du trittst einem Clan bei, wenn ein Clanmitglied dich einlädt, und du die Einladung annimmst. Du kannst auch deinen eigenen Clan erstellen."
          },
          "es": {
            "type": [
              "string",
              "null"
            ],
            "example": "Debes ser miembro de un clan para obtener las recompensas del clan. Te unes a un clan cuando un miembro del clan te invita al clan y aceptas la invitación. También puedes crear tu propio clan."
          },
          "fr": {
            "type": [
              "string",
              "null"
            ],
            "example": "Vous devez être membre d'un clan pour obtenir les récompenses du clan. Vous rejoignez un clan lorsque qu'un membre du clan vous invite au clan et que vous acceptez l'invitation. Vous pouvez également créer votre propre clan."
          },
          "he": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "it": {
            "type": [
              "string",
              "null"
            ],
            "example": "Devi essere un membro del clan per ottenere le ricompense del clan. Ti unisci a un clan quando un membro del clan ti invita al clan e accetti l'invito. Puoi anche creare il tuo clan."
          },
          "ja": {
            "type": [
              "string",
              "null"
            ],
            "example": "クランリワードを受け取るには、クランメンバーでなければなりません。 クランメンバーがあなたをクランに招待し、招待を受け入れると、クランに参加できます。 あなた自身のクランを作成することもできます。"
          },
          "ko": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "pl": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "pt": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "ro": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "ru": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "th": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "tr": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "tw": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "vi": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          }
        }
      },
      "popup_image_url": {
        "type": [
          "string",
          "null"
        ],
        "example": "https://image.example.com",
        "description": "Imagem para a janela pop-up de dica de cadeia de recompensas de clã.",
        "format": "uri"
      },
      "client-reward-chain-item-model": {
        "type": "object",
        "properties": {
          "reward_chain_id": {
            "type": "integer",
            "example": 9,
            "description": "ID da cadeia de recompensas."
          },
          "name": {
            "type": "string",
            "example": "Weekly quest",
            "description": "Nome da cadeia de recompensas."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "example": "Major weekly quest",
            "description": "Descrição da cadeia de recompensas."
          },
          "long_description": {
            "type": [
              "string",
              "null"
            ],
            "example": "You can get a lot of additional items just by shopping during the week",
            "description": "Descrição longa da cadeia de recompensas."
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "date_start": {
            "$ref": "#/components/schemas/date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/date_end"
          },
          "clan_type": {
            "$ref": "#/components/schemas/clan_type"
          },
          "top_contributors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/top_contributors"
            }
          },
          "value_point": {
            "type": "object",
            "properties": {
              "sku": {
                "$ref": "#/components/schemas/value-point-sku"
              },
              "name": {
                "$ref": "#/components/schemas/value-point-name"
              },
              "image_url": {
                "$ref": "#/components/schemas/Common_admin-image_url"
              },
              "description": {
                "$ref": "#/components/schemas/value-point-description"
              },
              "long_description": {
                "$ref": "#/components/schemas/value-point-long-description"
              },
              "amount": {
                "$ref": "#/components/schemas/value-point-amount"
              },
              "is_clan": {
                "$ref": "#/components/schemas/is_clan"
              }
            }
          },
          "steps": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Etapa da cadeia de recompensas.",
              "properties": {
                "step_id": {
                  "type": "integer",
                  "example": 10,
                  "description": "ID da etapa."
                },
                "name": {
                  "type": "string",
                  "example": "Level 1",
                  "description": "Nome da etapa."
                },
                "is_claimed": {
                  "type": "boolean",
                  "example": false,
                  "description": "Se a recompensa da etapa foi reivindicada ou não."
                },
                "image_url": {
                  "$ref": "#/components/schemas/Common_admin-image_url"
                },
                "price": {
                  "type": "object",
                  "properties": {
                    "amount": {
                      "type": "integer",
                      "example": 100,
                      "description": "O número de pontos de valor que um usuário reivindica na etapa."
                    }
                  }
                },
                "reward": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku": {
                        "$ref": "#/components/schemas/sku"
                      },
                      "name": {
                        "type": "string",
                        "example": "Super box",
                        "description": "Nome do item."
                      },
                      "type": {
                        "type": "string",
                        "example": "bundle",
                        "description": "Tipo de item."
                      },
                      "description": {
                        "type": "string",
                        "example": "Super box with items",
                        "description": "Descrição do item."
                      },
                      "image_url": {
                        "$ref": "#/components/schemas/Common_admin-image_url"
                      },
                      "quantity": {
                        "type": "integer",
                        "example": 2,
                        "description": "Quantidade do item."
                      }
                    }
                  }
                }
              }
            }
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/recurrent_schedule_client_side"
          },
          "popup_header": {
            "$ref": "#/components/schemas/popup_header-two-letter-locale"
          },
          "popup_instruction": {
            "$ref": "#/components/schemas/popup_instruction-two-letter-locale"
          },
          "popup_image_url": {
            "$ref": "#/components/schemas/popup_image_url"
          }
        }
      },
      "Pagination_has-more": {
        "type": "boolean",
        "example": true,
        "description": "Usado como um indicador de que há mais páginas."
      },
      "reward_chain_id": {
        "type": "integer",
        "example": 9,
        "description": "ID de cadeia de recompensas exclusivo."
      },
      "periods": {
        "type": "array",
        "nullable": false,
        "description": "Períodos de validade da cadeia de recompensas. Se múltiplos períodos forem especificados, tanto `date_from` quanto `date_until` são necessários.",
        "items": {
          "type": "object",
          "properties": {
            "date_from": {
              "type": "string",
              "format": "date-time",
              "nullable": false,
              "example": "2020-08-11T10:00:00+03:00",
              "description": "Data de início da cadeia de recompensas especificada."
            },
            "date_until": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time",
              "example": "2020-08-11T20:00:00+03:00",
              "description": "Data de término da cadeia de recompensas especificada. Pode ser `null` apenas se um único período de validade for especificado."
            }
          },
          "required": [
            "date_from"
          ]
        }
      },
      "day_of_week": {
        "type": "integer",
        "description": "Dia da semana em que a cadeia de recompensas é redefinida, onde '1' é segunda-feira e '7' é domingo.",
        "minimum": 1,
        "maximum": 7
      },
      "time": {
        "type": "string",
        "description": "Hora em que a cadeia de recompensas é redefinida no fuso horário desejado (arredondamento para horas). <br><br> Por exemplo, a hora definida para a redefinição da cadeia de recompensas é 01:00 para o fuso horário de Kuala Lumpur (GMT+8). Nesse caso, o valor do parâmetro `time` é '01:00:00+08:00'.",
        "pattern": "((0[0-9]|1[0-9]|2[0-3]):00:00)(\\+|-)(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9])",
        "example": "01:00:00+08:00"
      },
      "displayable_reset_start_date": {
        "description": "Data e hora da primeira redefinição da cadeia de recompensas. <br><br> Por exemplo, a data e a hora da primeira redefinição da cadeia de recompensas é 1º de março de 2024, às 01:00 (horário de Kuala Lumpur), ou '2024-03-01T01:00:00+08:00' no formato <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a>. <br><br> Exemplo: '2024-03-01T01:00:00+08:00'",
        "type": "string",
        "format": "date-time"
      },
      "displayable_reset_next_date": {
        "description": "Data e hora calculadas em que a cadeia de recompensas será redefinida da próxima vez <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">(ISO 8601).</a><br><br> Por exemplo, a cadeia de recompensas é redefinida mensalmente, a partir de 1º de março de 2024, às 01:00 (horário de Kuala Lumpur). A data e a hora da próxima redefinição da cadeia de recompensas será: 1º de abril de 2024 às 01:00 (horário de Kuala Lumpur), que equivale a '2024-04-01T01:00:00+08:00' no formato <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a>. <br><br> Exemplo: '2024-04-01T01:00:00+08:00'",
        "type": "string",
        "format": "date-time"
      },
      "day_of_month": {
        "type": "integer",
        "description": "Dia do mês em que a cadeia de recompensas é redefinida. Se o número de dias no mês for menor que o número ordinal do dia especificado, a redefinição da cadeia de recompensas ocorrerá no último dia do mês.",
        "minimum": 1,
        "maximum": 31
      },
      "reward_chain_hours_interval": {
        "type": "integer",
        "description": "Intervalo em horas, após o qual a cadeia de recompensas é reiniciada. <br><br>A contagem regressiva começa a partir do parâmetro <a href=\"https://developers.xsolla.com/pt/api/shop-builder/operation/admin-create-reward-chain/#!path=0/date_start&t=request\">date_start</a>. <br><br> Por exemplo, se `date_start = \"2025-11-15T18:15:00+05:00\"` e `hours_interval = 2`, a cadeia de recompensas será redefinida a cada 2 horas começando a partir de `\"2025-11-15T20:15:00+05:00\"`.",
        "minimum": 1,
        "maximum": 10000
      },
      "admin_recurrent_schedule": {
        "type": [
          "object",
          "null"
        ],
        "description": "Período de reinicialização recorrente da cadeia de recompensas.",
        "oneOf": [
          {
            "type": "object",
            "title": "interval_type = semanalmente",
            "description": "Redefinição semanal da cadeia de recompensas.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/interval_type_weekly"
              },
              "day_of_week": {
                "$ref": "#/components/schemas/day_of_week"
              },
              "time": {
                "$ref": "#/components/schemas/time"
              },
              "reset_next_date": {
                "$ref": "#/components/schemas/reset_next_date"
              },
              "displayable_reset_start_date": {
                "$ref": "#/components/schemas/displayable_reset_start_date"
              },
              "displayable_reset_next_date": {
                "$ref": "#/components/schemas/displayable_reset_next_date"
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = mensalmente",
            "description": "Redefinição mensal da cadeia de recompensas.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/interval_type_monthly"
              },
              "day_of_month": {
                "$ref": "#/components/schemas/day_of_month"
              },
              "time": {
                "$ref": "#/components/schemas/time"
              },
              "reset_next_date": {
                "$ref": "#/components/schemas/reset_next_date"
              },
              "displayable_reset_start_date": {
                "$ref": "#/components/schemas/displayable_reset_start_date"
              },
              "displayable_reset_next_date": {
                "$ref": "#/components/schemas/displayable_reset_next_date"
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = a cada hora",
            "description": "Redefinição da cadeia de recompensas realizada em um intervalo de tempo especificado em horas.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/interval_type_hourly_rc"
              },
              "hours_interval": {
                "$ref": "#/components/schemas/reward_chain_hours_interval"
              },
              "time": {
                "$ref": "#/components/schemas/time"
              },
              "reset_next_date": {
                "$ref": "#/components/schemas/reset_next_date"
              },
              "displayable_reset_start_date": {
                "$ref": "#/components/schemas/displayable_reset_start_date"
              },
              "displayable_reset_next_date": {
                "$ref": "#/components/schemas/displayable_reset_next_date"
              }
            }
          }
        ]
      },
      "chain_user-attribute_conditions_model-get": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-get"
          },
          {
            "description": "Condições para validar atributos do usuário.\nDetermina a disponibilidade da cadeia com base em se os atributos de usuário correspondem a todas as condições especificadas."
          }
        ]
      },
      "chain_is_always_visible": {
        "description": "Se a cadeia é visível a todos os usuários. Se `true`, a cadeia é sempre exibida, independentemente do status de autenticação ou atributos do usuário.\n\nPara configurar a personalização, você precisa passar `false`. A lógica da exibição da cadeia será a seguinte:\n  * Se `false` for passado e as condições de visibilidade forem especificadas na matriz `attribute_conditions`, a cadeia é considerada personalizada e exibida somente a usuários autorizados que cumprem as condições especificadas.\n  * Se `false` for passado e a matriz `attribute_conditions` não for passada ou estiver vazia, a cadeia é exibida a usuários não autorizados, bem como nos casos onde nenhuma cadeia correspondente é encontrada para o usuário autorizado.",
        "type": "boolean",
        "default": true,
        "example": true
      },
      "is_reset_after_end": {
        "description": "Se a cadeia de recompensas (pontos de valor e progresso de todos os usuários) deve ser redefinida ou não após sua data de término:\n* Se `true`, a cadeia de recompensas será redefinida após a data de término.\n* Se `false`, a cadeia de recompensas não será redefinida após a data de término.\n\n<br>\n\n<div class=\"notice\"><strong>Aviso</strong><br><br>\nNão pode ser <code>true</code> se: <br>\n<ul>\n  <li>Houver um período de redefinição definido em <code>recurrent_schedule</code>.</li>\n  <li>O valor <code>null</code> for passado em <code>periods.date_until</code>.</li>\n</ul>\n</div>",
        "type": "boolean",
        "default": false,
        "example": false
      },
      "admin-get-reward-chain-item-basic-model": {
        "type": "object",
        "description": "Uma cadeia de recompensas.",
        "properties": {
          "reward_chain_id": {
            "$ref": "#/components/schemas/reward_chain_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "periods": {
            "$ref": "#/components/schemas/periods"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "value_point": {
            "type": "object",
            "properties": {
              "sku": {
                "$ref": "#/components/schemas/value-point-sku"
              },
              "name": {
                "$ref": "#/components/schemas/value-point-name"
              },
              "type": {
                "type": "string",
                "example": "value_point"
              },
              "image_url": {
                "$ref": "#/components/schemas/Common_admin-image_url"
              },
              "description": {
                "$ref": "#/components/schemas/value-point-description"
              },
              "long_description": {
                "$ref": "#/components/schemas/value-point-long-description"
              },
              "amount": {
                "$ref": "#/components/schemas/value-point-amount"
              },
              "is_clan": {
                "$ref": "#/components/schemas/is_clan"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "media_list": {
                "$ref": "#/components/schemas/media_list"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              }
            }
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/admin_recurrent_schedule"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-get"
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "is_reset_after_end": {
            "$ref": "#/components/schemas/is_reset_after_end"
          }
        }
      },
      "admin-get-reward-chain-item-clan-basic-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/admin-get-reward-chain-item-basic-model"
          },
          {
            "type": "object",
            "description": "Cadeia de recompensas de clã.",
            "properties": {
              "value_point": {
                "type": "object",
                "description": "Um ponto de valor configurado para uma cadeia de recompensas de clã.",
                "properties": {
                  "sku": {
                    "$ref": "#/components/schemas/value-point-sku"
                  },
                  "name": {
                    "$ref": "#/components/schemas/value-point-name"
                  },
                  "type": {
                    "type": "string",
                    "example": "value_point"
                  },
                  "image_url": {
                    "$ref": "#/components/schemas/Common_admin-image_url"
                  },
                  "description": {
                    "$ref": "#/components/schemas/value-point-description"
                  },
                  "long_description": {
                    "$ref": "#/components/schemas/value-point-long-description"
                  },
                  "amount": {
                    "$ref": "#/components/schemas/value-point-amount"
                  },
                  "is_clan": {
                    "$ref": "#/components/schemas/is_clan"
                  },
                  "is_enabled": {
                    "$ref": "#/components/schemas/is_enabled"
                  },
                  "media_list": {
                    "$ref": "#/components/schemas/media_list"
                  },
                  "order": {
                    "$ref": "#/components/schemas/order"
                  }
                },
                "required": [
                  "sku"
                ]
              },
              "popup_header": {
                "$ref": "#/components/schemas/popup_header-two-letter-locale"
              },
              "popup_instruction": {
                "$ref": "#/components/schemas/popup_instruction-two-letter-locale"
              },
              "popup_image_url": {
                "$ref": "#/components/schemas/popup_image_url"
              },
              "clan_type": {
                "$ref": "#/components/schemas/clan_type"
              }
            }
          }
        ]
      },
      "step_price_amount": {
        "type": "integer",
        "example": 100,
        "description": "Preço da etapa em pontos de valor."
      },
      "reward_step_price": {
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/step_price_amount"
          }
        },
        "required": [
          "amount"
        ]
      },
      "reward_item_quantity": {
        "type": "integer",
        "example": 2,
        "description": "Quantidade do item."
      },
      "reward-chain-step-reward_user-attribute_conditions_model-post": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-post"
          },
          {
            "description": "Condições para validação de atributos do usuário.\nDetermine a disponibilidade da recompensa para as etapas da cadeia de recompensas com base em se os atributos do usuário correspondem a todas as condições especificadas."
          }
        ]
      },
      "create_reward_step": {
        "type": "object",
        "description": "Etapa da cadeia de recompensas.",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "price": {
            "$ref": "#/components/schemas/reward_step_price"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "reward": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "sku": {
                  "$ref": "#/components/schemas/sku"
                },
                "quantity": {
                  "$ref": "#/components/schemas/reward_item_quantity"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/reward-chain-step-reward_user-attribute_conditions_model-post"
                }
              },
              "required": [
                "sku",
                "quantity"
              ]
            }
          }
        },
        "required": [
          "name",
          "price",
          "reward"
        ]
      },
      "recurrent_schedule_create_update": {
        "type": [
          "object",
          "null"
        ],
        "description": "Período de reinicialização recorrente da cadeia de recompensas.",
        "oneOf": [
          {
            "type": "object",
            "title": "interval_type = semanalmente",
            "description": "Tipo semanal de atualização da cadeia de recompensas.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/interval_type_weekly"
              },
              "day_of_week": {
                "$ref": "#/components/schemas/day_of_week"
              },
              "time": {
                "$ref": "#/components/schemas/time"
              }
            },
            "required": [
              "interval_type",
              "time",
              "day_of_week"
            ]
          },
          {
            "type": "object",
            "title": "interval_type = mensalmente",
            "description": "Tipo mensal de atualização da cadeia de recompensas.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/interval_type_monthly"
              },
              "day_of_month": {
                "$ref": "#/components/schemas/day_of_month"
              },
              "time": {
                "$ref": "#/components/schemas/time"
              }
            },
            "required": [
              "interval_type",
              "time",
              "day_of_month"
            ]
          },
          {
            "type": "object",
            "title": "interval_type = a cada hora",
            "description": "Redefinição da cadeia de recompensas realizada em um intervalo de tempo especificado em horas.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/interval_type_hourly_rc"
              },
              "hours_interval": {
                "$ref": "#/components/schemas/reward_chain_hours_interval"
              }
            },
            "required": [
              "interval_type",
              "hours_interval"
            ]
          }
        ]
      },
      "chain_user-attribute_conditions_model-post": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-post"
          },
          {
            "description": "Condições para validar atributos do usuário.\nDetermina a disponibilidade da cadeia com base em se os atributos de usuário correspondem a todas as condições especificadas."
          }
        ]
      },
      "create-reward-chain-model": {
        "type": "object",
        "description": "Uma cadeia de recompensas.",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "periods": {
            "$ref": "#/components/schemas/periods"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "value_point": {
            "type": "object",
            "properties": {
              "sku": {
                "$ref": "#/components/schemas/sku"
              }
            },
            "required": [
              "sku"
            ]
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/create_reward_step"
            }
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/recurrent_schedule_create_update"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-post"
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "is_reset_after_end": {
            "$ref": "#/components/schemas/is_reset_after_end"
          }
        },
        "required": [
          "name",
          "value_point",
          "periods",
          "steps",
          "is_enabled"
        ]
      },
      "create-clan-reward-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/create-reward-chain-model"
          },
          {
            "type": "object",
            "description": "Cadeia de recompensas de clã.",
            "properties": {
              "value_point": {
                "type": "object",
                "description": "Um ponto de valor configurado para uma cadeia de recompensas de clã.",
                "properties": {
                  "sku": {
                    "$ref": "#/components/schemas/sku"
                  }
                },
                "required": [
                  "sku"
                ]
              },
              "popup_header": {
                "$ref": "#/components/schemas/popup_header-two-letter-locale"
              },
              "popup_instruction": {
                "$ref": "#/components/schemas/popup_instruction-two-letter-locale"
              },
              "popup_image_url": {
                "$ref": "#/components/schemas/popup_image_url"
              },
              "clan_type": {
                "$ref": "#/components/schemas/clan_type"
              }
            },
            "required": [
              "name",
              "value_point",
              "periods",
              "steps",
              "is_enabled",
              "popup_header",
              "popup_instruction"
            ]
          }
        ]
      },
      "step_id": {
        "type": [
          "integer",
          "null"
        ],
        "example": 10,
        "description": "ID de etapa exclusivo."
      },
      "reward-chain-step-reward_user-attribute_conditions_model-get": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-get"
          },
          {
            "description": "Condições para validação de atributos do usuário.\nDetermine a disponibilidade da recompensa para as etapas da cadeia de recompensas com base em se os atributos do usuário correspondem a todas as condições especificadas."
          }
        ]
      },
      "reward_step_short": {
        "type": "object",
        "description": "Etapa da cadeia de recompensas.",
        "properties": {
          "step_id": {
            "$ref": "#/components/schemas/step_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "price": {
            "$ref": "#/components/schemas/reward_step_price"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "reward": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "sku": {
                  "$ref": "#/components/schemas/sku"
                },
                "quantity": {
                  "$ref": "#/components/schemas/reward_item_quantity"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/reward-chain-step-reward_user-attribute_conditions_model-get"
                }
              }
            }
          }
        }
      },
      "admin-get-reward-chain-item-full-model": {
        "type": "object",
        "description": "Uma cadeia de recompensas.",
        "properties": {
          "reward_chain_id": {
            "$ref": "#/components/schemas/reward_chain_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "periods": {
            "$ref": "#/components/schemas/periods"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "value_point": {
            "type": "object",
            "properties": {
              "sku": {
                "$ref": "#/components/schemas/sku"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "long_description": {
                "$ref": "#/components/schemas/long-description-localization-object"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "type": {
                "type": "string"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "image_url": {
                "$ref": "#/components/schemas/image_url"
              },
              "media_list": {
                "$ref": "#/components/schemas/media_list"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "is_clan": {
                "$ref": "#/components/schemas/is_clan"
              }
            }
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reward_step_short"
            }
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/admin_recurrent_schedule"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-get"
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "is_reset_after_end": {
            "$ref": "#/components/schemas/is_reset_after_end"
          }
        }
      },
      "admin-get-reward-chain-item-clan-full-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/admin-get-reward-chain-item-full-model"
          },
          {
            "type": "object",
            "description": "Cadeia de recompensas de clã.",
            "properties": {
              "value_point": {
                "type": "object",
                "description": "Um ponto de valor configurado para uma cadeia de recompensas de clã.",
                "properties": {
                  "sku": {
                    "$ref": "#/components/schemas/sku"
                  },
                  "description": {
                    "$ref": "#/components/schemas/description-localization-object"
                  },
                  "long_description": {
                    "$ref": "#/components/schemas/long-description-localization-object"
                  },
                  "name": {
                    "$ref": "#/components/schemas/name-localization-object"
                  },
                  "type": {
                    "type": "string"
                  },
                  "is_enabled": {
                    "$ref": "#/components/schemas/is_enabled"
                  },
                  "image_url": {
                    "$ref": "#/components/schemas/image_url"
                  },
                  "media_list": {
                    "$ref": "#/components/schemas/media_list"
                  },
                  "order": {
                    "$ref": "#/components/schemas/order"
                  },
                  "is_clan": {
                    "$ref": "#/components/schemas/is_clan"
                  }
                },
                "required": [
                  "sku"
                ]
              },
              "popup_header": {
                "$ref": "#/components/schemas/popup_header-two-letter-locale"
              },
              "popup_instruction": {
                "$ref": "#/components/schemas/popup_instruction-two-letter-locale"
              },
              "popup_image_url": {
                "$ref": "#/components/schemas/popup_image_url"
              },
              "clan_type": {
                "$ref": "#/components/schemas/clan_type"
              },
              "top_contributors": {
                "$ref": "#/components/schemas/top_contributors"
              }
            }
          }
        ]
      },
      "modify_reward_step": {
        "type": "object",
        "description": "Etapa da cadeia de recompensas.",
        "properties": {
          "step_id": {
            "$ref": "#/components/schemas/step_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "price": {
            "$ref": "#/components/schemas/reward_step_price"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "reward": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "sku": {
                  "$ref": "#/components/schemas/sku"
                },
                "quantity": {
                  "$ref": "#/components/schemas/reward_item_quantity"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/reward-chain-step-reward_user-attribute_conditions_model-post"
                }
              },
              "required": [
                "sku",
                "quantity"
              ]
            }
          }
        },
        "required": [
          "name",
          "price",
          "reward",
          "step_id"
        ]
      },
      "update-reward-chain-model": {
        "type": "object",
        "description": "Uma cadeia de recompensas.",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "periods": {
            "$ref": "#/components/schemas/periods"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/modify_reward_step"
            }
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/recurrent_schedule_create_update"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-post"
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "is_reset_after_end": {
            "$ref": "#/components/schemas/is_reset_after_end"
          }
        },
        "required": [
          "name",
          "periods",
          "steps",
          "is_enabled"
        ]
      },
      "update-clan-reward-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/create-reward-chain-model"
          },
          {
            "type": "object",
            "description": "Cadeia de recompensas de clã.",
            "properties": {
              "popup_header": {
                "$ref": "#/components/schemas/popup_header-two-letter-locale"
              },
              "popup_instruction": {
                "$ref": "#/components/schemas/popup_instruction-two-letter-locale"
              },
              "popup_image_url": {
                "$ref": "#/components/schemas/popup_image_url"
              },
              "clan_type": {
                "$ref": "#/components/schemas/clan_type"
              }
            },
            "required": [
              "name",
              "periods",
              "steps",
              "is_enabled",
              "popup_header",
              "popup_instruction"
            ]
          }
        ]
      },
      "daily_chain_type": {
        "type": "string",
        "enum": [
          "calendar_hard",
          "rolling_skippable",
          "rolling_unskippable"
        ],
        "description": "Tipo de recompensa diária que determina quando os usuários podem resgatar recompensas.\n\nPossíveis valores:\n- `calendar_hard` — Desbloqueia a recompensa da próxima etapa a cada 24 horas. Qualquer recompensa de etapa não resgatada é permamentemente\nperdida quando a recompensa da próxima etapa se torna disponível.\n- `rolling_skippable` — Desbloqueia a recompensa da próxima etapa a cada 24 horas com base em `date_start`. A progressão é sequencial:\numa nova recompensa não será desbloqueada até que a anterior seja resgatada. Se um usuário pular um ou mais dias, ele continua\nde onde parou. Os dias perdidos não concedem múltiplas recompensas.\n- `rolling_unskippable` — Desbloqueia a recompensa da próxima etapa a cada 24 horas com base em `date_start`. A progressão é\nsequencial: uma nova recompensa não será desbloqueada até que a anterior seja resgatada. Porém, se um usuário pular um dia,\na progressão deles é redefinida, e eles devem começar novamente da primeira etapa."
      },
      "calendar_hard_date_start": {
        "type": "string",
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "Data em que sua cadeia de recompensas diárias começa."
      },
      "calendar_hard_is_recurrent": {
        "type": "boolean",
        "example": true,
        "default": false,
        "description": "Se a recompensa diária é recorrente. Se `true`, a recompensa diária será redefinida automaticamente após a data de término. O próximo cronograma `start_date` e `end_date` são baseados na quantidade de etapas de recompensas diárias e no tempo inicial definido em `start_date`."
      },
      "calendar-hard-daily-chain-base": {
        "type": "object",
        "description": "Propriedades básicas para o tipo de recompensa diária `calendar_hard`.",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/daily_chain_type"
              },
              {
                "enum": [
                  "calendar_hard"
                ]
              }
            ]
          },
          "date_start": {
            "$ref": "#/components/schemas/calendar_hard_date_start"
          },
          "is_recurrent": {
            "$ref": "#/components/schemas/calendar_hard_is_recurrent"
          }
        }
      },
      "daily_chain_id": {
        "type": "integer",
        "example": 9,
        "description": "ID de recompensa diária exclusivo."
      },
      "daily_chain_date_end": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "Data em que sua recompensa diária termina. Pode ser `null`. Definir como tipo `calendar_hard` definirá automaticamente essa data com base no número de etapas adicionadas, então você pode deixá-la como `null`."
      },
      "daily_chain_number_of_step": {
        "type": "integer",
        "example": 3,
        "description": "É a quantidade de etapas configuradas na recompensa diária. Cada passo aqui significa um dia na recompensa diária."
      },
      "admin-calendar-hard-daily-chain-short-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/calendar-hard-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Uma recompensa diária `calendar_hard` (versão curta).",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "date_end": {
                "$ref": "#/components/schemas/daily_chain_date_end"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "number_of_steps": {
                "$ref": "#/components/schemas/daily_chain_number_of_step"
              }
            }
          }
        ]
      },
      "daily_rolling_chain_date_start": {
        "type": "string",
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "Data e hora em que sua recompensa diária começa. Esse tempo também define o ponto de reinicialização diário em que os usuários podem resgatar sua recompensa."
      },
      "rolling_date_end": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "Data em que sua cadeia de recompensas diárias termina."
      },
      "rolling_is_recurrent": {
        "type": "boolean",
        "example": true,
        "default": false,
        "description": "Se a recompensa diária é recorrente ou não. Se `true`, a recompensa diária é redefinida quando o usuário conclui todas as etapas, permitindo que ele comece novamente a partir da etapa 1. A recorrência é válida apenas dentro do período de recompensa ativo, conforme definido por `date_start` e `date_end`."
      },
      "rolling-skippable-daily-chain-base": {
        "type": "object",
        "description": "Propriedades básicas para o tipo de recompensa diária `rolling_skippable`.",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/daily_chain_type"
              },
              {
                "enum": [
                  "rolling_skippable"
                ]
              }
            ]
          },
          "date_start": {
            "$ref": "#/components/schemas/daily_rolling_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/rolling_date_end"
          },
          "is_recurrent": {
            "$ref": "#/components/schemas/rolling_is_recurrent"
          }
        }
      },
      "admin-rolling-skippable-daily-chain-short-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-skippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Uma recompensa diária `rolling_skippable` (versão curta).",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "number_of_steps": {
                "$ref": "#/components/schemas/daily_chain_number_of_step"
              }
            }
          }
        ]
      },
      "rolling-unskippable-daily-chain-base": {
        "type": "object",
        "description": "Propriedades básicas para o tipo de recompensa diária `rolling_unskippable`.",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/daily_chain_type"
              },
              {
                "enum": [
                  "rolling_unskippable"
                ]
              }
            ]
          },
          "date_start": {
            "$ref": "#/components/schemas/daily_rolling_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/rolling_date_end"
          },
          "is_recurrent": {
            "$ref": "#/components/schemas/rolling_is_recurrent"
          }
        }
      },
      "admin-rolling-unskippable-daily-chain-short-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-unskippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Uma recompensa diária `rolling_unskippable` (versão curta).",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "number_of_steps": {
                "$ref": "#/components/schemas/daily_chain_number_of_step"
              }
            }
          }
        ]
      },
      "admin-daily-chain-short-model": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/admin-calendar-hard-daily-chain-short-model"
          },
          {
            "$ref": "#/components/schemas/admin-rolling-skippable-daily-chain-short-model"
          },
          {
            "$ref": "#/components/schemas/admin-rolling-unskippable-daily-chain-short-model"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "calendar_hard": "#/components/schemas/admin-calendar-hard-daily-chain-short-model",
            "rolling_skippable": "#/components/schemas/admin-rolling-skippable-daily-chain-short-model",
            "rolling_unskippable": "#/components/schemas/admin-rolling-unskippable-daily-chain-short-model"
          }
        }
      },
      "daily_chain_step_number": {
        "type": "integer",
        "example": 2,
        "description": "Número da etapa.",
        "nullable": false,
        "minimum": 1
      },
      "modify-daily-chain-item-model": {
        "type": "object",
        "properties": {
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "quantity": {
            "type": "integer",
            "description": "Quantidade de etapas de recompensa diária para este sku",
            "minimum": 1
          }
        },
        "required": [
          "sku",
          "quantity"
        ]
      },
      "create-daily-chain-step-model": {
        "type": "object",
        "properties": {
          "step_number": {
            "$ref": "#/components/schemas/daily_chain_step_number"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/modify-daily-chain-item-model"
            }
          }
        },
        "required": [
          "step_number",
          "items"
        ]
      },
      "create-calendar-hard-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/calendar-hard-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Uma recompensa diária pelo tipo `calendar_hard`.",
            "properties": {
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/create-daily-chain-step-model"
                }
              }
            },
            "required": [
              "name",
              "date_start",
              "steps",
              "is_enabled",
              "type"
            ]
          }
        ]
      },
      "create-rolling-skippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-skippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Uma recompensa diária pelo tipo `rolling_skippable`.",
            "properties": {
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/create-daily-chain-step-model"
                }
              }
            },
            "required": [
              "name",
              "date_start",
              "steps",
              "is_enabled",
              "type"
            ]
          }
        ]
      },
      "create-rolling-unskippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-unskippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Uma recompensa diária pelo tipo `rolling_unskippable`.",
            "properties": {
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/create-daily-chain-step-model"
                }
              }
            },
            "required": [
              "name",
              "date_start",
              "steps",
              "is_enabled",
              "type"
            ]
          }
        ]
      },
      "daily-chain-error-model": {
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "example": 422
          },
          "errorCode": {
            "type": "integer",
            "example": 1102
          },
          "errorMessage": {
            "type": "string",
            "example": "[0401-1102]: Unprocessable Entity. The property `property_name` is required"
          },
          "transactionId": {
            "type": "string",
            "example": "x-x-x-x-transactionId-mock-x-x-x"
          },
          "errorMessageExtended": {
            "type": [
              "object",
              "null"
            ]
          }
        }
      },
      "daily_chain_step_id": {
        "type": [
          "integer",
          "null"
        ],
        "example": 10,
        "description": "Identificador exclusivo da etapa de recompensa diária",
        "minimum": 1
      },
      "item_type": {
        "type": "string",
        "description": "Tipo de item: `virtual_good`/`virtual_currency`/`bundle`/`unit`."
      },
      "admin-daily-chain-item-model": {
        "type": "object",
        "properties": {
          "item_id": {
            "$ref": "#/components/schemas/item_id"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "type": {
            "$ref": "#/components/schemas/item_type"
          },
          "name": {
            "$ref": "#/components/schemas/two-letter-locale"
          },
          "description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "quantity": {
            "type": "integer",
            "description": "Quantidade de itens.",
            "minimum": 1,
            "example": 1
          }
        }
      },
      "admin-daily-chain-step-model": {
        "type": "object",
        "description": "Uma etapa de recompensa diária.",
        "properties": {
          "step_id": {
            "$ref": "#/components/schemas/daily_chain_step_id"
          },
          "step_number": {
            "$ref": "#/components/schemas/daily_chain_step_number"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/admin-daily-chain-item-model"
            }
          }
        }
      },
      "admin-calendar-hard-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/calendar-hard-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Uma recompensa diária calendar_hard para respostas administrativas.",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "date_end": {
                "$ref": "#/components/schemas/daily_chain_date_end"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "number_of_steps": {
                "$ref": "#/components/schemas/daily_chain_number_of_step"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/admin-daily-chain-step-model"
                }
              }
            }
          }
        ]
      },
      "admin-rolling-skippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-skippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Uma recompensa diária rolling_skippable para respostas administrativas.",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "number_of_steps": {
                "$ref": "#/components/schemas/daily_chain_number_of_step"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/admin-daily-chain-step-model"
                }
              }
            }
          }
        ]
      },
      "admin-rolling-unskippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-unskippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Uma recompensa diária `rolling_unskippable` para respostas administrativas.",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "number_of_steps": {
                "$ref": "#/components/schemas/daily_chain_number_of_step"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/admin-daily-chain-step-model"
                }
              }
            }
          }
        ]
      },
      "admin-daily-chain-long-model": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/admin-calendar-hard-daily-chain-model"
          },
          {
            "$ref": "#/components/schemas/admin-rolling-skippable-daily-chain-model"
          },
          {
            "$ref": "#/components/schemas/admin-rolling-unskippable-daily-chain-model"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "calendar_hard": "#/components/schemas/admin-calendar-hard-daily-chain-model",
            "rolling_skippable": "#/components/schemas/admin-rolling-skippable-daily-chain-model",
            "rolling_unskippable": "#/components/schemas/admin-rolling-unskippable-daily-chain-model"
          }
        }
      },
      "daily_chain_update_step_id": {
        "type": [
          "integer",
          "null"
        ],
        "example": 10,
        "description": "Identificador exclusivo da etapa de recompensa diária. Especifique-o durante a atualização para reter o progresso do usuário nesta etapa.",
        "minimum": 1
      },
      "modify-daily-chain-step-model": {
        "type": "object",
        "properties": {
          "step_id": {
            "$ref": "#/components/schemas/daily_chain_update_step_id"
          },
          "step_number": {
            "$ref": "#/components/schemas/daily_chain_step_number"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/modify-daily-chain-item-model"
            }
          }
        },
        "required": [
          "step_number",
          "items"
        ]
      },
      "update-calendar-hard-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/calendar-hard-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Uma recompensa diária pelo tipo `calendar_hard`.",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/modify-daily-chain-step-model"
                }
              }
            },
            "required": [
              "name",
              "date_start",
              "steps",
              "is_enabled",
              "type"
            ]
          }
        ]
      },
      "update-rolling-skippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-skippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Uma recompensa diária pelo tipo `rolling_skippable`.",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/modify-daily-chain-step-model"
                }
              }
            },
            "required": [
              "name",
              "date_start",
              "steps",
              "is_enabled",
              "type"
            ]
          }
        ]
      },
      "update-rolling-unskippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-unskippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Uma recompensa diária pelo tipo `rolling_unskippable`.",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/modify-daily-chain-step-model"
                }
              }
            },
            "required": [
              "name",
              "date_start",
              "steps",
              "is_enabled",
              "type"
            ]
          }
        ]
      },
      "client-daily-chain-item-model": {
        "type": "object",
        "properties": {
          "item_id": {
            "$ref": "#/components/schemas/item_id"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "type": {
            "$ref": "#/components/schemas/item_type"
          },
          "name": {
            "type": "string",
            "description": "Nome do item."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Descrição do item."
          },
          "bundle_type": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "standard",
              "virtual_currency_package"
            ]
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "is_free": {
            "$ref": "#/components/schemas/value-is_free"
          },
          "quantity": {
            "type": "integer",
            "description": "Quantidade de itens.",
            "minimum": 1,
            "example": 1
          },
          "content": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/client-daily-chain-item-model"
            }
          }
        }
      },
      "client-daily-chain-step-model": {
        "type": "object",
        "description": "Etapa da recompensa diária.",
        "properties": {
          "step_number": {
            "$ref": "#/components/schemas/daily_chain_step_number"
          },
          "status": {
            "type": "string",
            "example": "claimed",
            "enum": [
              "claimed",
              "claimable",
              "blocked",
              "claim_in_future"
            ],
            "description": "Define o status atual da solicitação da etapa.\n\nPossíveis valores:\n- `claimed` — A etapa já foi resgatada.\n- `claimable` — A etapa pode ser resgatada.\n- `blocked` — A etapa não pode ser resgatada:\n  - Para usuários não autorizados: todas as etapas estão bloqueadas.\n  - Para `calendar_hard`: a etapa não foi resgatada e agora está no passado.\n  - Para `rolling_skippable`: a etapa está bloqueada até que a etapa anterior seja resgatada.\n- `claim_in_future` — A etapa não foi resgatada e a etapa está no futuro."
          },
          "unlocked_date": {
            "type": "integer",
            "format": "int64",
            "description": "Carimbo de data/hora Unix (em segundos) de quando a etapa será desbloqueada."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/client-daily-chain-item-model"
            }
          }
        }
      },
      "client-calendar-hard-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/calendar-hard-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Uma recompensa diária calendar_hard para respostas de cliente.",
            "properties": {
              "id": {
                "type": "integer",
                "example": 9,
                "description": "ID de recompensa diária."
              },
              "name": {
                "type": "string",
                "example": "Weekly quest",
                "description": "Nome da recompensa diária."
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ],
                "example": "Major weekly quest",
                "description": "Descrição da recompensa diária."
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "date_end": {
                "$ref": "#/components/schemas/daily_chain_date_end"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/client-daily-chain-step-model"
                }
              }
            }
          }
        ]
      },
      "client-rolling-skippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-skippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Uma recompensa diária rolling_skippable para respostas de cliente.",
            "properties": {
              "id": {
                "type": "integer",
                "example": 9,
                "description": "ID de recompensa diária."
              },
              "name": {
                "type": "string",
                "example": "Weekly quest",
                "description": "Nome da recompensa diária."
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ],
                "example": "Major weekly quest",
                "description": "Descrição da recompensa diária."
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/client-daily-chain-step-model"
                }
              }
            }
          }
        ]
      },
      "client-rolling-unskippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-unskippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Uma recompensa diária `rolling_unskippable` para respostas de cliente.",
            "properties": {
              "id": {
                "type": "integer",
                "example": 9,
                "description": "ID de recompensa diária."
              },
              "name": {
                "type": "string",
                "example": "Weekly quest",
                "description": "Nome da recompensa diária."
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ],
                "example": "Major weekly quest",
                "description": "Descrição da recompensa diária."
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/client-daily-chain-step-model"
                }
              }
            }
          }
        ]
      },
      "client-daily-chain-model": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/client-calendar-hard-daily-chain-model"
          },
          {
            "$ref": "#/components/schemas/client-rolling-skippable-daily-chain-model"
          },
          {
            "$ref": "#/components/schemas/client-rolling-unskippable-daily-chain-model"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "calendar_hard": "#/components/schemas/client-calendar-hard-daily-chain-model",
            "rolling_skippable": "#/components/schemas/client-rolling-skippable-daily-chain-model",
            "rolling_unskippable": "#/components/schemas/client-rolling-unskippable-daily-chain-model"
          }
        }
      },
      "offer_chain_date_start": {
        "type": "string",
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "Data em que a cadeia de ofertas é iniciada."
      },
      "offer_chain_date_end": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "Data em que a cadeia de ofertas termina. Pode ser `null`. Se `date_end` for `null`, a cadeia de ofertas não terá um limite de tempo."
      },
      "offer_chain_step_number": {
        "type": "integer",
        "example": 2,
        "description": "Número da etapa.",
        "nullable": false,
        "minimum": 1
      },
      "offer_chain_is_free": {
        "type": "boolean",
        "description": "Indica se a etapa da cadeia de ofertas é gratuita:<ul><li>Se <code>true</code>, a etapa deve ser resgatada usando a chamada <a href=\"/pt/api/shop-builder/operation/claim-user-offer-chain-step-reward\">Resgate a etapa da cadeia de oferta gratuita</a>.</li><li>Se <code>false</code>, ela deve ser comprada usando a chamada <a href=\"/pt/api/shop-builder/operation/order-user-offer-chain-step-reward\">Criar ordem para a etapa da cadeia de ofertas pagas</a>.</li></ul>"
      },
      "offer_chain_step_price_amount": {
        "type": "number",
        "example": 99.99,
        "description": "Preço da etapa em moeda real."
      },
      "offer_chain_step_price_currency": {
        "type": "string",
        "example": "USD",
        "description": "Moeda do preço do item. Código de três letras de acordo com [a ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."
      },
      "offer_chain_step_price": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/offer_chain_step_price_amount"
          },
          "currency": {
            "$ref": "#/components/schemas/offer_chain_step_price_currency"
          }
        },
        "required": [
          "amount",
          "currency"
        ]
      },
      "client-offer-chain-item-model": {
        "type": "object",
        "properties": {
          "item_id": {
            "$ref": "#/components/schemas/item_id"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "type": {
            "$ref": "#/components/schemas/item_type"
          },
          "name": {
            "type": "string",
            "description": "Nome do item."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Descrição do item."
          },
          "bundle_type": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "standard",
              "virtual_currency_package"
            ]
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "is_free": {
            "$ref": "#/components/schemas/value-is_free"
          },
          "quantity": {
            "type": "integer",
            "description": "Quantidade de itens.",
            "minimum": 1,
            "example": 1
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "content": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/client-offer-chain-item-model"
            }
          }
        }
      },
      "client-offer-chain-step-model": {
        "type": "object",
        "description": "Etapa de cadeia de ofertas.",
        "properties": {
          "step_number": {
            "$ref": "#/components/schemas/offer_chain_step_number"
          },
          "is_free": {
            "$ref": "#/components/schemas/offer_chain_is_free"
          },
          "is_claimed": {
            "type": "boolean",
            "example": false,
            "description": "Indica se a recompensa da etapa foi resgatada ou comprada."
          },
          "step_price": {
            "$ref": "#/components/schemas/offer_chain_step_price"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/client-offer-chain-item-model"
            }
          },
          "step_vp_rewards": {
            "type": [
              "array",
              "null"
            ],
            "description": "Uma matriz de pontos de valor do sistema de recompensa, concedida como recompensa.",
            "items": {
              "type": "object",
              "properties": {
                "item_id": {
                  "$ref": "#/components/schemas/item_id"
                },
                "sku": {
                  "$ref": "#/components/schemas/value-point-sku"
                },
                "amount": {
                  "$ref": "#/components/schemas/value-point-amount"
                },
                "name": {
                  "$ref": "#/components/schemas/value-point-name"
                },
                "image_url": {
                  "$ref": "#/components/schemas/Common_admin-image_url"
                },
                "is_clan": {
                  "$ref": "#/components/schemas/is_clan"
                }
              }
            }
          },
          "step_loyalty_rewards": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "example": "First Loyalty Point",
                  "description": "Nome dos pontos de fidelidade."
                },
                "sku": {
                  "type": "string",
                  "example": "0c745ef0-4243-46e1-aa90-54dee07da622",
                  "description": "SKU dos pontos de fidelidade."
                },
                "description": {
                  "type": "string",
                  "example": "First Loyalty Point Desc",
                  "description": "Descrição dos pontos de fidelidade."
                },
                "image_url": {
                  "$ref": "#/components/schemas/image_url"
                },
                "amount": {
                  "type": "integer",
                  "example": 1,
                  "description": "Quantidade de pontos de fidelidade."
                }
              }
            }
          }
        }
      },
      "offer_chain_reset_next_date": {
        "type": "integer",
        "description": "A data e hora calculadas em que a cadeia de ofertas será redefinida na próxima vez no formato <a href=\"https://en.wikipedia.org/wiki/Unix_time\" target=\"_blank\">Unix Timestamp</a>.<br><br> Por exemplo, a redefinição da cadeia de ofertas mensal começa dia 1º de março de 2024, às 01:00 no horário de Kuala Lumpur (GMT+8). A próxima redefinição ocorrerá dia 1º de abril de 2024 às 01:00 no horário de Kuala Lumpur (GMT+8), que corresponde a 31 de março de 2024 17:00 GMT+0 ou '1711904400000' no formato Unix Timestamp. <br><br> Exemplo: '1711904400000'"
      },
      "offer_chain_recurrent_schedule_client_side": {
        "type": [
          "object",
          "null"
        ],
        "description": "Período de redefinição da cadeia de ofertas.",
        "properties": {
          "interval_type": {
            "type": "string",
            "description": "Frequência da redefinição da cadeia de ofertas.",
            "enum": [
              "weekly",
              "monthly",
              "hourly"
            ]
          },
          "reset_next_date": {
            "$ref": "#/components/schemas/offer_chain_reset_next_date"
          }
        }
      },
      "client-offer-chain-model": {
        "type": "object",
        "description": "Uma cadeia de ofertas.",
        "properties": {
          "id": {
            "type": "integer",
            "example": 9,
            "description": "ID de cadeia de ofertas."
          },
          "name": {
            "type": "string",
            "example": "Weekly quest",
            "description": "Nome da cadeia de ofertas."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "example": "Major weekly quest",
            "description": "Descrição da cadeia de ofertas."
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "date_start": {
            "$ref": "#/components/schemas/offer_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/offer_chain_date_end"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/client-offer-chain-step-model"
            }
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/offer_chain_recurrent_schedule_client_side"
          },
          "next_step_number": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Número da próxima etapa da cadeia de ofertas. `null` se a cadeia de ofertas foi concluída.",
            "example": 1
          }
        }
      },
      "offer-chain-error-model": {
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "example": 422
          },
          "errorCode": {
            "type": "integer",
            "example": 1102
          },
          "errorMessage": {
            "type": "string",
            "example": "[0401-1102]: Unprocessable Entity. The property `property_name` is required"
          },
          "transactionId": {
            "type": "string",
            "example": "x-x-x-x-transactionId-mock-x-x-x"
          },
          "errorMessageExtended": {
            "type": [
              "object",
              "null"
            ]
          }
        }
      },
      "offer_chain_id": {
        "type": "integer",
        "example": 9,
        "description": "ID exclusivo da cadeia de ofertas."
      },
      "offer_chain_interval_type_weekly": {
        "type": "string",
        "description": "Frequência da redefinição da cadeia de ofertas.",
        "enum": [
          "weekly"
        ]
      },
      "offer_chain_day_of_week": {
        "type": "integer",
        "description": "Dia da semana em que a cadeia de ofertas é redefinida, onde `1` é segunda-feira e `7` é domingo.",
        "minimum": 1,
        "maximum": 7
      },
      "offer_chain_time": {
        "type": "string",
        "description": "A hora em que a cadeia de ofertas é redefinida no fuso horário especificado (arredondamento para horas). <br><br> Por exemplo, a hora da redefinição é definida como 01:00 para o fuso horário de Kuala Lumpur (GMT+8), o valor do parâmetro `time` é `01:00:00+08:00`.",
        "pattern": "((0[0-9]|1[0-9]|2[0-3]):00:00)(\\+|-)(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9])",
        "example": "01:00:00+08:00"
      },
      "offer_chain_displayable_reset_start_date": {
        "description": "Data e hora da primeira redefinição da cadeia de ofertas. <br><br> Por exemplo, a primeira redefinição programada para 1º de março de 2024, às 01:00 (horário de Kuala Lumpur) corresponde a '2024-03-01T01:00:00+08:00' no formato <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a>. <br><br> Exemplo: '2024-03-01T01:00:00+08:00'",
        "type": "string",
        "format": "date-time"
      },
      "offer_chain_displayable_reset_next_date": {
        "description": "Data e hora calculadas em que a cadeia de ofertas será redefinida da próxima vez de acordo com o formato <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">(ISO 8601).</a><br><br> Por exemplo, a redefinição da cadeia de ofertas mensal começa no dia 1º de março de 2024, às 01:00 (horário de Kuala Lumpur). A data e a hora da próxima redefinição será no dia 1º de abril de 2024 às 01:00 (horário de Kuala Lumpur), que equivale a '2024-04-01T01:00:00+08:00' no formato <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a>. <br><br> Exemplo: '2024-04-01T01:00:00+08:00'",
        "type": "string",
        "format": "date-time"
      },
      "offer_chain_interval_type_monthly": {
        "type": "string",
        "description": "Frequência da redefinição da cadeia de ofertas.",
        "enum": [
          "monthly"
        ]
      },
      "offer_chain_day_of_month": {
        "type": "integer",
        "description": "O dia do mês em que a cadeia de ofertas é redefinida. Se um mês tiver menos dias do que o dia especificado, a redefinição ocorrerá no último dia do mês.",
        "minimum": 1,
        "maximum": 31
      },
      "offer_chain_interval_type_hourly": {
        "type": "string",
        "description": "Frequência da redefinição da cadeia de ofertas.",
        "enum": [
          "hourly"
        ]
      },
      "offer_chain_hours_interval": {
        "type": "integer",
        "description": "Intervalo em horas, após o qual a cadeia de ofertas é reiniciada. <br><br> A contagem regressiva começa a partir do parâmetro <a href=\"https://developers.xsolla.com/pt/api/shop-builder/operation/admin-create-offer-chain/#!path=date_start&t=request\">date_start</a>. <br><br> Por exemplo, se `date_start = \"2025-11-15T18:15:00+05:00\"` e `hours_interval = 2`, a cadeia de ofertas será redefinida a cada 2 horas, começando a partir de `\"2025-11-15T20:15:00+05:00\"`.",
        "minimum": 1,
        "maximum": 10000
      },
      "offer_chain_recurrent_schedule": {
        "type": [
          "object",
          "null"
        ],
        "description": "Período de reinicialização recorrente da cadeia de ofertas.",
        "oneOf": [
          {
            "type": [
              "object",
              "null"
            ],
            "title": "interval_type = semanalmente",
            "description": "Redefinição semanal da cadeia de ofertas.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/offer_chain_interval_type_weekly"
              },
              "day_of_week": {
                "$ref": "#/components/schemas/offer_chain_day_of_week"
              },
              "time": {
                "$ref": "#/components/schemas/offer_chain_time"
              },
              "reset_next_date": {
                "$ref": "#/components/schemas/offer_chain_reset_next_date"
              },
              "displayable_reset_start_date": {
                "$ref": "#/components/schemas/offer_chain_displayable_reset_start_date"
              },
              "displayable_reset_next_date": {
                "$ref": "#/components/schemas/offer_chain_displayable_reset_next_date"
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = mensalmente",
            "description": "Redefinição mensal da cadeia de ofertas.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/offer_chain_interval_type_monthly"
              },
              "day_of_month": {
                "$ref": "#/components/schemas/offer_chain_day_of_month"
              },
              "time": {
                "$ref": "#/components/schemas/offer_chain_time"
              },
              "reset_next_date": {
                "$ref": "#/components/schemas/offer_chain_reset_next_date"
              },
              "displayable_reset_start_date": {
                "$ref": "#/components/schemas/offer_chain_displayable_reset_start_date"
              },
              "displayable_reset_next_date": {
                "$ref": "#/components/schemas/offer_chain_displayable_reset_next_date"
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = a cada hora",
            "description": "Redefinição da cadeia de ofertas realizada em um intervalo de tempo especificado em horas.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/offer_chain_interval_type_hourly"
              },
              "hours_interval": {
                "$ref": "#/components/schemas/offer_chain_hours_interval"
              }
            }
          }
        ]
      },
      "admin-offer-chain-short-model": {
        "type": "object",
        "description": "Uma cadeia de ofertas.",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/offer_chain_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "date_start": {
            "$ref": "#/components/schemas/offer_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/offer_chain_date_end"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/offer_chain_recurrent_schedule"
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-get"
          }
        }
      },
      "offer_chain_recurrent_schedule_create_update": {
        "type": [
          "object",
          "null"
        ],
        "description": "Período de redefinição da cadeia de ofertas.",
        "oneOf": [
          {
            "type": [
              "object",
              "null"
            ],
            "title": "interval_type = semanalmente",
            "description": "Redefinição semanal da cadeia de ofertas.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/offer_chain_interval_type_weekly"
              },
              "day_of_week": {
                "$ref": "#/components/schemas/offer_chain_day_of_week"
              },
              "time": {
                "$ref": "#/components/schemas/offer_chain_time"
              }
            },
            "required": [
              "interval_type",
              "time",
              "day_of_week"
            ]
          },
          {
            "type": "object",
            "title": "interval_type = mensalmente",
            "description": "Redefinição mensal da cadeia de ofertas.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/offer_chain_interval_type_monthly"
              },
              "day_of_month": {
                "$ref": "#/components/schemas/offer_chain_day_of_month"
              },
              "time": {
                "$ref": "#/components/schemas/offer_chain_time"
              }
            },
            "required": [
              "interval_type",
              "time",
              "day_of_month"
            ]
          },
          {
            "type": "object",
            "title": "interval_type = a cada hora",
            "description": "Redefinição da cadeia de ofertas realizada em um intervalo de tempo especificado em horas.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/offer_chain_interval_type_hourly"
              },
              "hours_interval": {
                "$ref": "#/components/schemas/offer_chain_hours_interval"
              }
            },
            "required": [
              "interval_type",
              "hours_interval"
            ]
          }
        ]
      },
      "modify-offer-chain-item-model": {
        "type": "object",
        "properties": {
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "quantity": {
            "type": "integer",
            "description": "Quantidade da recompensa de itens para esta etapa da cadeia.",
            "minimum": 1
          },
          "order": {
            "description": "Ordem de recompensa para a etapa da cadeia de ofertas.",
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          }
        },
        "required": [
          "sku",
          "quantity"
        ]
      },
      "create-offer-chain-step-model": {
        "type": "object",
        "properties": {
          "step_number": {
            "$ref": "#/components/schemas/offer_chain_step_number"
          },
          "is_free": {
            "$ref": "#/components/schemas/offer_chain_is_free"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/modify-offer-chain-item-model"
            }
          }
        },
        "required": [
          "step_number",
          "is_free",
          "items"
        ]
      },
      "create-offer-chain-model": {
        "type": "object",
        "description": "Uma cadeia de ofertas.",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "date_start": {
            "$ref": "#/components/schemas/offer_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/offer_chain_date_end"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/offer_chain_recurrent_schedule_create_update"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/create-offer-chain-step-model"
            }
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-post"
          }
        },
        "required": [
          "name",
          "date_start",
          "steps",
          "is_enabled"
        ]
      },
      "offer_chain_step_id": {
        "type": [
          "integer",
          "null"
        ],
        "example": 10,
        "description": "ID exclusivo da etapa da cadeia.",
        "minimum": 1
      },
      "admin-offer-chain-item-model": {
        "type": "object",
        "properties": {
          "item_id": {
            "$ref": "#/components/schemas/item_id"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "type": {
            "$ref": "#/components/schemas/item_type"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "is_free": {
            "$ref": "#/components/schemas/value-is_free"
          },
          "quantity": {
            "type": "integer",
            "description": "Quantidade de itens.",
            "minimum": 1,
            "example": 1
          },
          "order": {
            "$ref": "#/components/schemas/order"
          }
        }
      },
      "admin-offer-chain-step-model": {
        "type": "object",
        "description": "Etapa de cadeia de ofertas.",
        "properties": {
          "step_id": {
            "$ref": "#/components/schemas/offer_chain_step_id"
          },
          "step_number": {
            "$ref": "#/components/schemas/offer_chain_step_number"
          },
          "is_free": {
            "$ref": "#/components/schemas/offer_chain_is_free"
          },
          "step_price": {
            "$ref": "#/components/schemas/offer_chain_step_price"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/admin-offer-chain-item-model"
            }
          }
        }
      },
      "admin-offer-chain-long-model": {
        "type": "object",
        "description": "Uma cadeia de ofertas.",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/offer_chain_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "date_start": {
            "$ref": "#/components/schemas/offer_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/offer_chain_date_end"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/offer_chain_recurrent_schedule"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/admin-offer-chain-step-model"
            }
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-get"
          }
        }
      },
      "update_step_id": {
        "type": [
          "integer",
          "null"
        ],
        "example": 10,
        "description": "ID exclusivo da etapa da cadeia. Especifique-o durante a atualização para reter o progresso do usuário para esta etapa.",
        "minimum": 1
      },
      "modify-offer-chain-step-model": {
        "type": "object",
        "properties": {
          "step_id": {
            "$ref": "#/components/schemas/update_step_id"
          },
          "step_number": {
            "$ref": "#/components/schemas/offer_chain_step_number"
          },
          "is_free": {
            "$ref": "#/components/schemas/offer_chain_is_free"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/modify-offer-chain-item-model"
            }
          }
        },
        "required": [
          "step_number",
          "is_free",
          "items"
        ]
      },
      "modify-offer-chain-model": {
        "type": "object",
        "description": "Uma cadeia de ofertas.",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/offer_chain_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "date_start": {
            "$ref": "#/components/schemas/offer_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/offer_chain_date_end"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/offer_chain_recurrent_schedule_create_update"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/modify-offer-chain-step-model"
            }
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-post"
          }
        },
        "required": [
          "name",
          "date_start",
          "steps",
          "is_enabled"
        ]
      },
      "bundle_type": {
        "type": "string",
        "description": "Tipo de pacote. Devolvido se o tipo de item for um pacote.",
        "enum": [
          "standard",
          "virtual_currency_package",
          "partner_side_content"
        ]
      },
      "unit_type": {
        "type": "string",
        "example": "game",
        "description": "Tipo de unidade: `game`."
      },
      "drm_name": {
        "type": "string",
        "example": "Steam",
        "description": "Nome do DRM da chave de jogo."
      },
      "drm_sku": {
        "type": "string",
        "example": "steam",
        "description": "ID de DRM exclusivo."
      },
      "Upsell-model": {
        "type": "object",
        "description": "Tipo de venda cruzada.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "fixed_list"
            ],
            "example": true
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "items": {
            "type": "array",
            "example": [
              "game_sku"
            ],
            "default": null,
            "description": "Matriz de itens SKU.",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "is_enabled",
          "type",
          "items"
        ]
      },
      "Upsell-model-not-fixed-list": {
        "type": "object",
        "description": "Tipo de venda cruzada.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "most_sellable",
              "only_promotions"
            ],
            "example": true
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "items": {
            "type": "array",
            "example": [
              null
            ],
            "default": null,
            "description": "Matriz vazia de SKU de itens.",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "is_enabled",
          "type"
        ]
      },
      "Upsell-422-invalid-request": {
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "example": 422
          },
          "errorCode": {
            "type": "integer",
            "example": 1102
          },
          "errorMessage": {
            "type": "string",
            "example": "[0401-1102]: Unprocessable entity. The property `is_enabled` is required"
          },
          "transactionId": {
            "type": "string",
            "example": "x-x-x-x-transactionId-mock-x-x-x"
          }
        }
      },
      "Virtual-Items-Currency_admin-groups-response": {
        "type": "array",
        "example": [
          {
            "external_id": "horror",
            "name": {
              "en": "Horror"
            }
          }
        ],
        "default": [],
        "description": "Grupo aos quais o item pertence.",
        "items": {
          "type": "object",
          "properties": {
            "external_id": {
              "type": "string",
              "example": "horror"
            },
            "name": {
              "type": "object",
              "description": "Nome do item. Deve conter pares chave/valor\nonde chave é uma localização com o formato \"^[a-z]{2}\", e o valor é uma cadeia de caracteres.",
              "example": {
                "en": "Horror",
                "de": "Horror"
              },
              "default": {
                "en": "Horror"
              },
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      },
      "Virtual-Items-Currency_client-attributes": {
        "type": "array",
        "description": "Lista de atributos e seus valores correspondentes ao item. Pode ser usado para a filtragem de catálogos.",
        "example": {
          "value": {
            "external_id": "genre",
            "name": "Жанр",
            "values": [
              {
                "external_id": "genre_e3364991f92e751689a68b96598a5a5a84010b85",
                "value": "Casual"
              },
              {
                "external_id": "genre_eba07bfd0f982940773cba3744d97264dd58acd7",
                "value": "Strategy"
              },
              {
                "external_id": "genre_b8d0c6d8f0524c2b2d79ebb93aa3cd0e8b5199a8",
                "value": "Mobile"
              }
            ]
          }
        },
        "default": [],
        "items": {
          "type": "object",
          "properties": {
            "external_id": {
              "$ref": "#/components/schemas/admin-attribute-external_id"
            },
            "name": {
              "type": "object",
              "description": "Nome do atributo.",
              "example": "Genre",
              "additionalProperties": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "values": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "external_id": {
                    "$ref": "#/components/schemas/value-external_id"
                  },
                  "value": {
                    "type": "string",
                    "description": "Valor do atributo.",
                    "example": "Strategy"
                  }
                }
              }
            }
          }
        }
      },
      "client_virtual_prices_response": {
        "type": "array",
        "description": "Preços virtuais.",
        "items": {
          "type": "object",
          "description": "Preço virtual.",
          "properties": {
            "amount": {
              "type": "integer",
              "example": 100,
              "description": "Preço do item em moeda virtual."
            },
            "amount_without_discount": {
              "type": "integer",
              "example": 200,
              "description": "Preço do item em moedas virtuais sem desconto. Sempre igual a `amount` já que descontos não são aplicados a preços em moedas virtuais."
            },
            "sku": {
              "type": "string",
              "example": "vc_gold",
              "description": "SKU de moeda virtual."
            },
            "is_default": {
              "type": "boolean",
              "example": true,
              "description": "Se o preço padrão é definido em uma moeda virtual ou não."
            },
            "image_url": {
              "type": [
                "string",
                "null"
              ],
              "example": "http://image.png",
              "description": "URL de imagem da moeda virtual"
            },
            "name": {
              "type": "string",
              "example": "Gold",
              "description": "Nome da moeda virtual."
            },
            "type": {
              "type": "string",
              "example": "virtual_currency",
              "description": "Tipo de item. Para moedas virtuais, é `virtual_currency`."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "example": "In-game currency used to purchase weapons and upgrades",
              "description": "Descrição da moeda virtual."
            }
          }
        }
      },
      "item-periods-response": {
        "type": "array",
        "description": "Período de venda de itens.",
        "items": {
          "type": "object",
          "properties": {
            "date_from": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time",
              "example": "2020-08-11T10:00:00+03:00",
              "description": "Data em que o item especificado estará disponível para venda."
            },
            "date_until": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time",
              "example": "2020-08-11T20:00:00+03:00",
              "description": "Data em que o item especificado ficará indisponível para venda. Pode ser `null`."
            }
          }
        }
      },
      "item-custom-attributes-response": {
        "type": "object",
        "description": "Um objeto JSON que contém atributos e valores de item.",
        "format": "json"
      },
      "Upsell_item": {
        "type": "object",
        "properties": {
          "sku": {
            "type": "string",
            "example": "big_rocket",
            "description": "ID de item exclusivo. O SKU só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, pontos, traços e sublinhados."
          },
          "name": {
            "type": "string",
            "example": "Big Rocket",
            "description": "Nome do item."
          },
          "groups": {
            "$ref": "#/components/schemas/Virtual-Items-Currency_admin-groups-response"
          },
          "attributes": {
            "$ref": "#/components/schemas/Virtual-Items-Currency_client-attributes"
          },
          "type": {
            "type": "string",
            "example": "virtual_good",
            "description": "Tipo de item: `virtual_good`/`virtual_currency`/`bundle`."
          },
          "description": {
            "type": "string",
            "example": "Big Rocket - description",
            "description": "Descrição do item."
          },
          "image_url": {
            "type": "string",
            "example": "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png",
            "description": "URL da imagem."
          },
          "is_free": {
            "$ref": "#/components/schemas/value-is_free"
          },
          "price": {
            "type": [
              "object",
              "null"
            ],
            "description": "Preços dos itens.",
            "properties": {
              "amount": {
                "type": "string",
                "example": "100.99",
                "description": "Preço do item com desconto."
              },
              "amount_without_discount": {
                "type": "string",
                "example": "100.99",
                "description": "Preço do item."
              },
              "currency": {
                "type": "string",
                "example": "USD",
                "description": "Moeda do preço do item. Código de três letras de acordo com [a ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."
              }
            }
          },
          "virtual_prices": {
            "$ref": "#/components/schemas/client_virtual_prices_response"
          },
          "can_be_bought": {
            "$ref": "#/components/schemas/Can_be_bought"
          },
          "virtual_item_type": {
            "type": "string",
            "example": "non-consumable",
            "description": "Tipo de item virtual.\n\nPossíveis valores:\n- `consumable` — Um item que desaparece do inventário após o uso (ex.: munição)..\n- `non_consumable` — Um item que permanece no inventário por um tempo ilimitado.\n- `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"
            ]
          },
          "promotions": {
            "$ref": "#/components/schemas/Catalog_item_promotions"
          },
          "limits": {
            "$ref": "#/components/schemas/Catalog_item_limits"
          },
          "periods": {
            "$ref": "#/components/schemas/item-periods-response"
          },
          "custom_attributes": {
            "$ref": "#/components/schemas/item-custom-attributes-response"
          },
          "vp_rewards": {
            "$ref": "#/components/schemas/client-item-value-point-reward"
          }
        }
      },
      "Upsell_item-list": {
        "type": "object",
        "properties": {
          "has_more": {
            "$ref": "#/components/schemas/Pagination_has-more"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Upsell_item"
            }
          }
        }
      },
      "error-response-base": {
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "description": "Status de resposta HTTP."
          },
          "errorCode": {
            "type": "integer",
            "description": "Código de erro."
          },
          "errorMessage": {
            "type": "string",
            "description": "Descrição de erro curta."
          },
          "transactionId": {
            "type": "string",
            "description": "ID de solicitação. O ID usado para rastrear e associar entradas de registros a essa solicitação ou operação específica. Esse ID pode ser útil para encontrar problemas, realizar depurações e auditorias."
          }
        }
      }
    },
    "examples": {
      "Promotions_200-admin-promotions": {
        "value": {
          "promotions": [
            {
              "id": 1,
              "promotion_periods": [
                {
                  "date_from": "2020-01-01T00:00:00+03:00",
                  "date_until": null
                }
              ],
              "name": {
                "en": "promotion_1"
              },
              "type": "item_bonus",
              "is_enabled": true,
              "bonus": [
                {
                  "item": {
                    "description": null,
                    "image_url": null,
                    "sku": "com.xsolla.diamonds_pack_1",
                    "name": {
                      "en": "Diamonds pack",
                      "ru": "Пак кристаллов"
                    },
                    "type": "bundle",
                    "bundle_type": "virtual_currency_package",
                    "content": []
                  },
                  "quantity": 1
                }
              ],
              "condition": [
                {
                  "item": {
                    "description": null,
                    "image_url": null,
                    "sku": "com.xsolla.virtual_good_bonus_2",
                    "name": {
                      "en": "VG name",
                      "ru": "Название VG"
                    },
                    "type": "virtual_good"
                  }
                }
              ],
              "discount": null
            },
            {
              "id": 2,
              "promotion_periods": [
                {
                  "date_from": "2020-01-01T00:00:00+03:00",
                  "date_until": "2030-01-01T00:00:00+03:00"
                }
              ],
              "name": {
                "en": "promotion_2"
              },
              "type": "item_discount",
              "is_enabled": false,
              "bonus": [],
              "condition": [
                {
                  "item": {
                    "description": null,
                    "image_url": null,
                    "sku": "com.xsolla.virtual_good_bonus_2",
                    "name": {
                      "en": "VG name",
                      "ru": "Название VG"
                    },
                    "type": "virtual_good"
                  }
                }
              ],
              "discount": {
                "percent": "10.99"
              }
            },
            {
              "id": 3,
              "promotion_periods": [
                {
                  "date_from": "2020-01-01T00:00:00+03:00",
                  "date_until": "2030-01-01T00:00:00+03:00"
                }
              ],
              "name": {
                "en": "promotion_3"
              },
              "type": "coupon_bonus",
              "is_enabled": true,
              "bonus": [
                {
                  "item": {
                    "description": null,
                    "image_url": null,
                    "sku": "com.xsolla.virtual_good_bonus_2",
                    "name": {
                      "en": "VG name",
                      "ru": "Название VG"
                    },
                    "type": "virtual_good"
                  },
                  "quantity": 2
                }
              ],
              "condition": [
                {
                  "item": {
                    "external_id": "coupon_2",
                    "name": {
                      "en": "Coupon name",
                      "ru": "Название купона"
                    },
                    "is_enabled": true,
                    "redeem_total_limit": null,
                    "redeem_user_limit": null,
                    "redeem_code_limit": 1
                  }
                }
              ],
              "discount": null
            },
            {
              "id": 4,
              "promotion_periods": [
                {
                  "date_from": "2018-01-01T00:00:00+03:00",
                  "date_until": "2031-01-01T00:00:00+03:00"
                }
              ],
              "name": {
                "en": "promotion_4"
              },
              "type": "promocode_bonus_discount",
              "is_enabled": false,
              "bonus": [
                {
                  "item": {
                    "description": null,
                    "image_url": null,
                    "sku": "com.xsolla.virtual_good_bonus_2",
                    "name": {
                      "en": "VG name",
                      "ru": "Название VG"
                    },
                    "type": "virtual_good"
                  },
                  "quantity": 2
                }
              ],
              "condition": [
                {
                  "item": {
                    "external_id": "coupon_3",
                    "name": {
                      "en": "Coupon name",
                      "ru": "Название купона"
                    },
                    "is_enabled": true,
                    "redeem_total_limit": null,
                    "redeem_user_limit": null,
                    "redeem_code_limit": 1
                  }
                }
              ],
              "discount": {
                "percent": "12.99"
              }
            },
            {
              "id": 5,
              "promotion_periods": [
                {
                  "date_from": "2020-01-01T00:00:00+03:00",
                  "date_until": null
                }
              ],
              "name": {
                "en": "promotion_5"
              },
              "type": "cart_bonus",
              "is_enabled": true,
              "bonus": [
                {
                  "item": {
                    "description": null,
                    "image_url": null,
                    "sku": "com.xsolla.virtual_good_bonus_4",
                    "name": {
                      "en": "VG name",
                      "ru": "Название VG"
                    },
                    "type": "virtual_good"
                  },
                  "quantity": 1
                }
              ],
              "condition": null,
              "discount": null
            }
          ],
          "total_promotions_count": 5,
          "active_promotions_count": 3,
          "inactive_promotions_count": 2
        }
      },
      "422-activate-deactivate-promotion": {
        "value": {
          "statusCode": 422,
          "errorCode": 9505,
          "errorMessage": "[0401-9505]: Error was occurred while promotion was being updated",
          "transactionId": "da145238620011eb8e24fe6913ff226a"
        }
      },
      "Promotions_200-get-coupon-rewards": {
        "value": {
          "bonus": [
            {
              "item": {
                "sku": "com.xsolla.game_1",
                "name": {
                  "en": "Game name"
                },
                "type": "unit",
                "description": "Game description",
                "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "unit_items": [
                  {
                    "sku": "com.xsolla.game_key_01",
                    "name": "Game name",
                    "type": "game_key",
                    "is_free": false,
                    "drm_name": "Steam",
                    "drm_sku": "steam_key_01"
                  },
                  {
                    "sku": "game_key_02",
                    "name": "Game name",
                    "type": "game_key",
                    "drm_name": "Origin",
                    "drm_sku": "origin_key_02"
                  }
                ]
              },
              "quantity": 1
            },
            {
              "item": {
                "sku": "com.xsolla.game_2",
                "name": {
                  "en": "Game name"
                },
                "type": "unit",
                "description": "Game description",
                "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "unit_items": [
                  {
                    "sku": "com.xsolla.game_key_01",
                    "type": "game_key",
                    "name": "Game name",
                    "drm_name": "Steam",
                    "drm_sku": "steam_key_01"
                  }
                ]
              },
              "quantity": 2
            }
          ],
          "discount": {
            "percent": "10.00"
          },
          "is_selectable": true
        }
      },
      "Promotions_200-admin-coupons": {
        "value": {
          "items": [
            {
              "external_id": "coupon_44056_1",
              "promotion_periods": [
                {
                  "date_from": "2020-04-15T18:16:00+05:00",
                  "date_until": "2020-04-25T18:16:00+05:00"
                },
                {
                  "date_from": "2020-05-15T18:16:00+05:00",
                  "date_until": "2020-05-25T18:16:00+05:00"
                }
              ],
              "name": {
                "en-US": "New Year Bonus",
                "de-DE": "Neujahrsbonus"
              },
              "is_enabled": true,
              "bonus": [
                {
                  "sku": "com.xsolla.elven_sword_1",
                  "quantity": 1
                },
                {
                  "sku": "com.xsolla.elven_shield_1",
                  "quantity": 2
                },
                {
                  "sku": "com.xsolla.elven_gloves_1",
                  "quantity": 2
                }
              ],
              "redeem_user_limit": null,
              "redeem_total_limit": null,
              "redeem_code_limit": 1,
              "total_limit_state": null
            },
            {
              "external_id": "summer2021",
              "promotion_periods": [
                {
                  "date_from": "2020-04-15T18:16:00+05:00",
                  "date_until": "2020-04-25T18:16:00+05:00"
                }
              ],
              "name": {
                "en-US": "Coupon name",
                "de-DE": "Gutscheintitel"
              },
              "is_enabled": true,
              "bonus": [
                {
                  "sku": "com.xsolla.diamonds_1",
                  "quantity": 100
                }
              ],
              "redeem_user_limit": null,
              "redeem_total_limit": 100,
              "redeem_code_limit": 1,
              "total_limit_state": {
                "available": 50,
                "reserved": 10,
                "used": 40
              }
            }
          ],
          "total_promotions_count": 2,
          "active_promotions_count": 2,
          "inactive_promotions_count": 0
        }
      },
      "Promotions_200-coupon-code-list": {
        "value": {
          "codes": [
            {
              "code": "CODE001"
            },
            {
              "code": "CODE002"
            },
            {
              "code": "CODE003"
            },
            {
              "code": "CODE004"
            },
            {
              "code": "CODE005"
            }
          ],
          "total_count": 5
        }
      },
      "Promotions_200-get-promocode-rewards": {
        "value": {
          "bonus": [
            {
              "item": {
                "sku": "com.xsolla.game_1",
                "name": "Game name",
                "type": "unit",
                "description": "Game description",
                "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "unit_items": [
                  {
                    "sku": "com.xsolla.game_key_01",
                    "name": "Game name",
                    "type": "game_key",
                    "is_free": false,
                    "drm_name": "Steam",
                    "drm_sku": "steam_key_01"
                  },
                  {
                    "sku": "com.xsolla.game_key_02",
                    "name": "Game name",
                    "type": "game_key",
                    "drm_name": "Origin",
                    "drm_sku": "origin_key_02"
                  }
                ]
              },
              "quantity": 1
            },
            {
              "item": {
                "sku": "com.xsolla.game_2",
                "name": "Game name",
                "type": "unit",
                "description": "Game description",
                "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "unit_items": [
                  {
                    "sku": "com.xsolla.game_key_01",
                    "type": "game_key",
                    "name": "Game name",
                    "drm_name": "Steam",
                    "drm_sku": "steam_key_01"
                  }
                ]
              },
              "quantity": 2
            }
          ],
          "discount": {
            "percent": "10.00"
          },
          "is_selectable": true,
          "discounted_items": [
            {
              "sku": "com.xsolla.elven_sword_1",
              "discount": {
                "percent": "10.00"
              }
            }
          ]
        }
      },
      "Promotions_200-admin-promocodes": {
        "value": {
          "items": [
            {
              "external_id": "promocode_100_crystals",
              "promotion_periods": [
                {
                  "date_from": "2020-04-15T18:16:00+05:00",
                  "date_until": "2020-04-25T18:16:00+05:00"
                }
              ],
              "name": {
                "en-US": "New Year Bonus",
                "de-DE": "Neujahrsbonus"
              },
              "is_enabled": true,
              "bonus": [
                {
                  "sku": "com.xsolla.elven_sword_1",
                  "quantity": 1
                },
                {
                  "sku": "com.xsolla.elven_shield_1",
                  "quantity": 2
                },
                {
                  "sku": "com.xsolla.elven_gloves_1",
                  "quantity": 2
                }
              ],
              "redeem_user_limit": null,
              "redeem_total_limit": null,
              "redeem_code_limit": 1,
              "total_limit_state": null,
              "discount": null,
              "discounted_items": null
            },
            {
              "external_id": "summer2021",
              "promotion_periods": [
                {
                  "date_from": "2020-04-15T18:16:00+05:00",
                  "date_until": "2020-04-25T18:16:00+05:00"
                }
              ],
              "name": {
                "en-US": "Coupon name",
                "de-DE": "Gutscheintitel"
              },
              "is_enabled": true,
              "bonus": [
                {
                  "sku": "com.xsolla.diamonds_1",
                  "quantity": 100
                }
              ],
              "redeem_user_limit": null,
              "redeem_total_limit": 100,
              "redeem_code_limit": null,
              "total_limit_state": {
                "available": 50,
                "reserved": 10,
                "used": 40
              },
              "discount": {
                "percent": "10.99"
              },
              "discounted_items": [
                {
                  "sku": "com.xsolla.elven_sword_1",
                  "discount": {
                    "percent": "10.00"
                  }
                }
              ],
              "price_conditions": [
                {
                  "operator": "ge",
                  "value": "10.0000"
                },
                {
                  "operator": "le",
                  "value": "50.0000"
                }
              ],
              "excluded_promotions": [
                23,
                45
              ]
            }
          ],
          "total_promotions_count": 2,
          "active_promotions_count": 2,
          "inactive_promotions_count": 0
        }
      },
      "Promotions_200-admin-unique-catalog-offers": {
        "value": {
          "items": [
            {
              "external_id": "new_year_bonus",
              "promotion_periods": [
                {
                  "date_from": "2020-04-15T18:16:00+05:00",
                  "date_until": "2020-04-25T18:16:00+05:00"
                },
                {
                  "date_from": "2020-05-15T18:16:00+05:00",
                  "date_until": "2020-05-25T18:16:00+05:00"
                }
              ],
              "name": {
                "en-US": "New Year Bonus",
                "de-DE": "Neujahrsbonus"
              },
              "items": [
                "booster",
                "booster_mega"
              ],
              "is_enabled": true,
              "redeem_user_limit": 1,
              "redeem_total_limit": null,
              "redeem_code_limit": 1,
              "total_limit_state": null
            },
            {
              "external_id": "secret_store",
              "promotion_periods": [
                {
                  "date_from": "2020-04-15T18:16:00+05:00",
                  "date_until": null
                }
              ],
              "name": {
                "en-US": "Secret store",
                "ru-RU": "Тайный магазин"
              },
              "items": [
                "helmet",
                "armor",
                "sword"
              ],
              "is_enabled": true,
              "redeem_user_limit": 1,
              "redeem_total_limit": 100,
              "redeem_code_limit": 1,
              "total_limit_state": {
                "available": 50,
                "reserved": 10,
                "used": 40
              }
            }
          ],
          "total_promotions_count": 2,
          "active_promotions_count": 2,
          "inactive_promotions_count": 0
        }
      },
      "404-coupon-not-found": {
        "value": {
          "statusCode": 404,
          "errorCode": 9802,
          "errorMessage": "[0401-9802]: Coupon not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
        }
      },
      "404-user-not-found": {
        "value": {
          "statusCode": 404,
          "errorCode": 5008,
          "errorMessage": "[0401-5008]: Could not find User",
          "transactionId": "transaction id"
        }
      },
      "Promotions_422-invalid-coupon": {
        "value": {
          "statusCode": 422,
          "errorCode": 1102,
          "errorMessage": "[0401-1102]: Unprocessable Entity. The property `external_id` is required"
        }
      },
      "code-limit": {
        "value": {
          "promotion_id": 1,
          "items": [
            {
              "code": "WINTER2023",
              "per_code": {
                "total": 10,
                "available": 7,
                "used": 2,
                "reserved": 1
              }
            },
            {
              "code": "SUMMER2023",
              "per_code": {
                "total": 5,
                "available": 0,
                "used": 3,
                "reserved": 2
              }
            }
          ],
          "total_items_count": 2,
          "has_more": false
        }
      },
      "401-complex-auth-header-not-found": {
        "value": {
          "statusCode": 401,
          "errorCode": 1501,
          "errorMessage": "[0401-1501]: Authorization failed: Authorization header not sent",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
        }
      },
      "401-complex-auth-incorrect-credentials": {
        "value": {
          "statusCode": 401,
          "errorCode": 1013,
          "errorMessage": "[0401-1013]: Token not found.",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
        }
      },
      "422-user_external_id_invalid": {
        "value": {
          "statusCode": 404,
          "errorCode": 1102,
          "errorMessage": "[0401-1102]: Unprocessable Entity",
          "transactionId": "transaction id",
          "errorMessageExtended": [
            {
              "property": "user_external_id",
              "message": "Must be at least 1 characters long"
            },
            {
              "property": "user_external_id",
              "message": "Does not match the regex pattern ^\\S+$"
            }
          ]
        }
      },
      "404-promotion-by-id-not-found": {
        "value": {
          "statusCode": 404,
          "errorCode": 1101,
          "errorMessage": "[0401-1101]: Promotion not found",
          "transactionId": "transaction id"
        }
      },
      "422-promotion-without-user-limit": {
        "value": {
          "statusCode": 422,
          "errorCode": 4509,
          "errorMessage": "[0401-4509]: Promotion does not have configured user limits.",
          "transactionId": "transaction id"
        }
      },
      "422-promotion-out-of-range-available-user-limit": {
        "value": {
          "statusCode": 422,
          "errorCode": 4511,
          "errorMessage": "[0401-4511]: Available promotion limit is out of range.",
          "transactionId": "transaction id"
        }
      },
      "200-value-points-reward-chain_admin_get-value-point-list": {
        "value": {
          "items": [
            {
              "sku": "com.xsolla.reward_vp_1",
              "name": {
                "en": "Reward VP 1"
              },
              "type": "value_point",
              "is_enabled": true,
              "description": {
                "en": "Points for reward system"
              },
              "long_description": {
                "en": "Points given to users to get new rewards in a reward chain."
              },
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "media_list": [],
              "order": 1,
              "is_clan": false
            },
            {
              "sku": "com.xsolla.reward_vp_2",
              "name": {
                "en": "Reward VP 2"
              },
              "type": "value_point",
              "is_enabled": false,
              "description": {
                "en": "Value points for reward system."
              },
              "long_description": {
                "en": "Value points given to users to get new rewards in a reward chain."
              },
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "media_list": [],
              "order": 2,
              "is_clan": false
            },
            {
              "sku": "com.xsolla.clan_value_point_1",
              "name": {
                "en": "Clan Reward VP 1"
              },
              "is_enabled": true,
              "description": {
                "en": "Value points for clan reward system."
              },
              "long_description": {
                "en": "Value points given to clans to get new rewards in a reward chain."
              },
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "media_list": [],
              "order": 3,
              "is_clan": true
            }
          ]
        }
      },
      "422-property-sku-is-required": {
        "value": {
          "statusCode": 422,
          "errorCode": 1102,
          "errorMessage": "[0401-1102]: Unprocessable Entity. The property `sku` is required",
          "transactionId": "da145238620011eb8e24fe6913ff226a"
        }
      },
      "200-value-points-reward-chain_admin_get-value-point": {
        "value": {
          "sku": "com.xsolla.reward_vp_1",
          "name": {
            "en": "Reward VP 1"
          },
          "type": "value_point",
          "is_enabled": true,
          "description": {
            "en": "Points for reward system"
          },
          "long_description": {
            "en": "Points given to users to get new rewards in a reward chain."
          },
          "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
          "media_list": [],
          "order": 1,
          "is_clan": false,
          "can_delete": false
        }
      },
      "200-value-points-rewards-list": {
        "value": {
          "items": [
            {
              "item_id": 14232,
              "sku": "com.xsolla.booster_1",
              "name": {
                "en": "Booster"
              },
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "amount": 100
            },
            {
              "item_id": 14232,
              "sku": "com.xsolla.booster_mega",
              "name": {
                "en": "Mega Booster"
              },
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "amount": 200
            }
          ]
        }
      },
      "200-client-get-reward-chains-list": {
        "value": {
          "has_more": false,
          "total_items_count": 1,
          "items": [
            {
              "reward_chain_id": 10,
              "name": "Weekly quest",
              "description": "Big weekly quest",
              "long_description": "You can get a lot of additional items just by shopping during the week",
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "order": 1,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2023-04-25T18:16:00+05:00",
              "value_point": {
                "sku": "com.xsolla.value_point_1",
                "name": "Value point",
                "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                "description": null,
                "long_description": null,
                "amount": 130
              },
              "clan_type": null,
              "top_contributors": [],
              "steps": [
                {
                  "step_id": 1,
                  "name": "Level 1",
                  "is_claimed": true,
                  "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                  "price": {
                    "amount": 100
                  },
                  "reward": [
                    {
                      "sku": "com.xsolla.box_1",
                      "name": "Super box",
                      "type": "bundle",
                      "description": "Super box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.box_2",
                      "name": "Mega box",
                      "type": "bundle",
                      "description": "Mega box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 1
                    }
                  ]
                },
                {
                  "step_id": 2,
                  "name": "Level 2",
                  "is_claimed": false,
                  "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                  "price": {
                    "amount": 200
                  },
                  "reward": [
                    {
                      "sku": "com.xsolla.box_1",
                      "name": "Super box",
                      "type": "bundle",
                      "description": "Super box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.box_2",
                      "name": "Mega box",
                      "type": "bundle",
                      "description": "Mega box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 2
                    }
                  ]
                }
              ],
              "recurrent_schedule": {
                "interval_type": "weekly",
                "reset_next_date": 1746057600
              },
              "popup_header": null,
              "popup_instruction": null,
              "popup_image_url": null
            },
            {
              "reward_chain_id": 12,
              "name": "Weekly clan quest",
              "description": "Major weekly clan quest.",
              "long_description": "You and your clan members can get additional items for shopping during a certain month.",
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "order": 2,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2023-10-15T18:16:00+05:00",
              "value_point": {
                "sku": "com.xsolla.clan_value_point_1",
                "name": "Clan Reward VP 1",
                "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                "description": "Value points for clan reward system.",
                "long_description": "Value points given to clans to get new rewards in a reward chain.",
                "amount": 80
              },
              "clan_type": "guild",
              "top_contributors": [
                {
                  "name": "Rabbit",
                  "contributed_amount": 100
                },
                {
                  "name": "Rocket",
                  "contributed_amount": 80
                },
                {
                  "name": "Rain",
                  "contributed_amount": 40
                }
              ],
              "steps": [
                {
                  "step_id": 1,
                  "name": "Level 1",
                  "is_claimed": true,
                  "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                  "price": {
                    "amount": 100
                  },
                  "reward": [
                    {
                      "sku": "com.xsolla.box_1",
                      "name": "Super box",
                      "type": "bundle",
                      "description": "Super box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.box_2",
                      "name": "Mega box",
                      "type": "bundle",
                      "description": "Mega box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 1
                    }
                  ]
                },
                {
                  "step_id": 2,
                  "name": "Level 2",
                  "is_claimed": false,
                  "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                  "price": {
                    "amount": 200
                  },
                  "reward": [
                    {
                      "sku": "com.xsolla.box_1",
                      "name": "Super box",
                      "type": "bundle",
                      "description": "Super box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.box_2",
                      "name": "Mega box",
                      "type": "bundle",
                      "description": "Mega box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 2
                    }
                  ]
                }
              ],
              "recurrent_schedule": {
                "interval_type": "monthly",
                "reset_next_date": 1746057600
              },
              "popup_header": {
                "en": "How to unlock rewards"
              },
              "popup_instruction": {
                "en": "You should be a clan member to get clan rewards. You join a clan when a clan member invited you to the clan, and you accepted the invite. You can create your own clan."
              },
              "popup_image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png"
            }
          ]
        }
      },
      "200-client-get-user-reward-chain-balance": {
        "summary": "Reward chain example",
        "value": {
          "sku": "com.xsolla.value_point_1",
          "name": "Value point",
          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
          "description": null,
          "long_description": null,
          "amount": 130,
          "is_clan": false
        }
      },
      "200-client-get-user-clan-reward-chain-balance": {
        "summary": "Clan reward chain example",
        "value": {
          "sku": "com.xsolla.clan_value_point_1",
          "name": "Clan Reward VP 1",
          "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
          "description": "Value points for clan reward system.",
          "long_description": "Value points given to clans to get new rewards in a reward chain.",
          "amount": 80,
          "is_clan": true
        }
      },
      "200-client-update-user-clan": {
        "value": {
          "reward": [
            {
              "sku": "com.xsolla.box_1",
              "name": "Super box",
              "type": "bundle",
              "description": "Super box with items",
              "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
              "quantity": 1,
              "bundle_type": "standard"
            },
            {
              "sku": "com.xsolla.potion_1",
              "name": "Mega potion",
              "type": "virtual_good",
              "description": "Mega potion",
              "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
              "quantity": 1
            }
          ]
        }
      },
      "200-reward-chain-list": {
        "value": {
          "has_more": true,
          "items": [
            {
              "name": {
                "en": "Reward chain"
              },
              "reward_chain_id": 1,
              "description": {
                "en": "Reward chain description"
              },
              "long_description": {
                "en": "Reward chain long description"
              },
              "is_enabled": true,
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "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"
                }
              ],
              "value_point": {
                "sku": "com.xsolla.reward_vp_1",
                "name": {
                  "en": "Reward VP 1"
                },
                "type": "value_point",
                "is_enabled": true,
                "description": "Value points for standard reward system.",
                "long_description": "Value points given to users to get new rewards in a reward chain.",
                "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                "media_list": [],
                "order": 1,
                "is_clan": false
              },
              "recurrent_schedule": null,
              "attribute_conditions": [
                {
                  "attribute": "race",
                  "operator": "eq",
                  "value": "ork",
                  "type": "string",
                  "can_be_missing": false
                }
              ],
              "is_always_visible": true,
              "is_reset_after_end": true
            },
            {
              "name": {
                "en": "Clan reward chain"
              },
              "reward_chain_id": 2,
              "description": {
                "en": "Clan reward chain description."
              },
              "long_description": {
                "en": "Clan reward chain long description."
              },
              "is_enabled": true,
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "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"
                }
              ],
              "value_point": {
                "sku": "com.xsolla.clan_value_point_1",
                "name": {
                  "en": "Clan Reward VP 1"
                },
                "is_enabled": true,
                "description": "Value points for clan reward system.",
                "long_description": "Value points given to clans to get new rewards in a reward chain.",
                "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                "media_list": [],
                "order": 1,
                "is_clan": true
              },
              "recurrent_schedule": {
                "day_of_month": null,
                "day_of_week": 2,
                "displayable_reset_next_date": "2026-01-06T01:00:00+05:00",
                "displayable_reset_start_date": "2026-01-01T01:00:00+05:00",
                "interval_type": "weekly",
                "reset_next_date": 1767643200,
                "time": "01:00:00+05:00"
              },
              "popup_header": {
                "en": "How to unlock rewards"
              },
              "popup_instruction": {
                "en": "You must be a clan member in order 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."
              },
              "popup_image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "clan_type": "guild"
            }
          ]
        }
      },
      "200-reward-chain": {
        "summary": "Reward chain example",
        "value": {
          "reward_chain_id": 1,
          "name": {
            "en": "Reward chain"
          },
          "description": {
            "en": "Reward chain description"
          },
          "long_description": {
            "en": "Reward chain long description"
          },
          "is_enabled": true,
          "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
          "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"
            }
          ],
          "value_point": {
            "sku": "com.xsolla.reward_vp_1",
            "name": {
              "en": "Reward VP 1"
            },
            "type": "value_point",
            "is_enabled": true,
            "description": {
              "en": "Value points for reward system."
            },
            "long_description": {
              "en": "Value points given to users to get new rewards in a reward chain."
            },
            "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
            "media_list": [],
            "order": 1,
            "is_clan": false
          },
          "steps": [
            {
              "name": {
                "en": "First step of the reward chain"
              },
              "step_id": 1,
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "reward": [
                {
                  "sku": "com.xsolla.item_1",
                  "quantity": 5
                },
                {
                  "sku": "com.xsolla.item_2",
                  "quantity": 1
                }
              ],
              "price": {
                "amount": 10
              }
            },
            {
              "name": {
                "en": "Second step of the reward chain"
              },
              "step_id": 2,
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "reward": [
                {
                  "sku": "com.xsolla.item_3",
                  "quantity": 5
                },
                {
                  "sku": "com.xsolla.item_4",
                  "quantity": 1
                }
              ],
              "price": {
                "amount": 15
              }
            }
          ],
          "recurrent_schedule": {
            "day_of_week": 2,
            "displayable_reset_next_date": "2026-01-06T01:00:00+05:00",
            "displayable_reset_start_date": "2026-01-01T01:00:00+05:00",
            "interval_type": "weekly",
            "reset_next_date": 1767643200,
            "time": "01:00:00+05:00"
          },
          "attribute_conditions": [
            {
              "attribute": "race",
              "operator": "eq",
              "value": "ork",
              "type": "string",
              "can_be_missing": false
            }
          ],
          "is_always_visible": true,
          "is_reset_after_end": true
        }
      },
      "200-clan-reward-chain": {
        "summary": "Clan reward chain example",
        "value": {
          "reward_chain_id": 1,
          "name": {
            "en": "Clan reward chain"
          },
          "description": {
            "en": "Clan reward chain description."
          },
          "long_description": {
            "en": "Clan reward chain long description."
          },
          "is_enabled": true,
          "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
          "order": 1,
          "periods": [
            {
              "date_from": "2020-04-15T18:16:00+05:00",
              "date_until": "2021-04-15T18:16:00+05:00"
            }
          ],
          "value_point": {
            "sku": "com.xsolla.clan_value_point_1",
            "name": {
              "en": "Clan Reward VP 1"
            },
            "is_enabled": true,
            "description": {
              "en": "Value points for clan reward system."
            },
            "long_description": {
              "en": "Value points given to clans to get new rewards in a certain reward chain."
            },
            "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
            "media_list": [],
            "order": 1,
            "is_clan": true
          },
          "steps": [
            {
              "name": {
                "en": "First step of the reward chain"
              },
              "step_id": 1,
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "reward": [
                {
                  "sku": "com.xsolla.item_1",
                  "quantity": 5
                },
                {
                  "sku": "com.xsolla.item_2",
                  "quantity": 1
                }
              ],
              "price": {
                "amount": 10
              }
            },
            {
              "name": {
                "en": "Second step of the reward chain"
              },
              "step_id": 2,
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "reward": [
                {
                  "sku": "com.xsolla.item_3",
                  "quantity": 5
                },
                {
                  "sku": "com.xsolla.item_4",
                  "quantity": 1
                }
              ],
              "price": {
                "amount": 15
              }
            }
          ],
          "recurrent_schedule": {
            "day_of_week": 2,
            "displayable_reset_next_date": "2023-03-07T11:00:00+08:00",
            "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
            "interval_type": "weekly",
            "reset_next_date": 1677553200,
            "time": "11:00:00+08:00"
          },
          "popup_header": {
            "en": "How to unlock rewards"
          },
          "popup_instruction": {
            "en": "You must be a clan member in order 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."
          },
          "popup_image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
          "clan_type": "guild"
        }
      },
      "200-admin-daily-chain-list": {
        "summary": "Daily reward list example",
        "value": {
          "has_more": false,
          "total_items_count": 3,
          "items": [
            {
              "id": 1,
              "name": {
                "en": "Daily reward",
                "ru": "Ежедневная награда"
              },
              "description": {
                "en": "Daily reward short description"
              },
              "order": 1,
              "number_of_steps": 10,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "is_enabled": false,
              "is_recurrent": true,
              "type": "calendar_hard"
            },
            {
              "id": 2,
              "name": {
                "en": "Monthly daily reward",
                "ru": "Ежедневные награды в цепочке на месяц"
              },
              "description": {
                "en": "Monthly daily reward short description"
              },
              "order": 2,
              "number_of_steps": 13,
              "date_start": "2025-04-15T00:00:00+08:00",
              "date_end": "2025-04-28T15:00:00+08:00",
              "is_enabled": false,
              "is_recurrent": true,
              "type": "calendar_hard"
            },
            {
              "id": 3,
              "name": {
                "en": "Login reward"
              },
              "description": {
                "en": "Login reward short description"
              },
              "order": 3,
              "number_of_steps": 7,
              "date_start": "2023-05-01T18:16:00+05:00",
              "date_end": "2025-05-31T18:16:00+05:00",
              "is_enabled": true,
              "is_recurrent": true,
              "type": "rolling_skippable"
            },
            {
              "id": 4,
              "name": {
                "en": "Daily reward",
                "ru": "Ежедневная награда"
              },
              "description": {
                "en": "Daily reward short description"
              },
              "order": 4,
              "number_of_steps": 10,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "is_enabled": true,
              "is_recurrent": true,
              "type": "calendar_hard"
            },
            {
              "id": 5,
              "name": {
                "en": "Unskippable login reward"
              },
              "description": {
                "en": "Unskippable login reward short description"
              },
              "order": 3,
              "number_of_steps": 7,
              "date_start": "2025-11-01T10:00:00+05:00",
              "date_end": "2025-11-30T10:00:00+05:00",
              "is_enabled": true,
              "is_recurrent": true,
              "type": "rolling_unskippable"
            }
          ]
        }
      },
      "422-admin-daily-chain-error-too-many-steps": {
        "summary": "Too many steps",
        "description": "Daily reward steps max amount limit of 30 items is exceeded. Try specifying less steps.",
        "value": {
          "statusCode": 422,
          "errorCode": 6203,
          "errorMessage": "[0401-6203]: Chain step count exceeds the allowed limit",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "step_count": 31,
            "max_steps": 30
          }
        }
      },
      "422-admin-daily-chain-error-incorrect-steps-order": {
        "summary": "Incorrect steps order",
        "description": "Daily reward steps numbers sequence is incorrect. Correct step numbers should be sequential without any gaps or duplicates.",
        "value": {
          "statusCode": 422,
          "errorCode": 6210,
          "errorMessage": "[0401-6210]: Chain step numbers are invalid",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "incorrect_step_numbers": {
              "duplicates": [
                2,
                7
              ],
              "out_of_range": [
                7,
                8
              ],
              "missing": [
                3,
                4,
                5,
                6
              ]
            }
          }
        }
      },
      "422-admin-daily-chain-error-item-limit-exceeded": {
        "summary": "Item limit exceeded",
        "description": "Daily reward step item count exceeds the allowed limit for some steps. Currently only 1 item per step is allowed.",
        "value": {
          "statusCode": 422,
          "errorCode": 6208,
          "errorMessage": "[0401-6208]: Chain step item count exceeds the allowed limit for some steps",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "max_items": 1,
            "steps_exceeded_limits": [
              {
                "step_number": 1,
                "items_count": 2
              },
              {
                "step_number": 4,
                "items_count": 3
              }
            ]
          }
        }
      },
      "422-admin-daily-chain-error-incorrect-items": {
        "summary": "Incorrect step items",
        "description": "Specified items are not allowed, disabled or not found. Only enabled items of following types are allowed: virtual item, bundle, virtual currency package.",
        "value": {
          "statusCode": 422,
          "errorCode": 6211,
          "errorMessage": "[0401-6211]: Chain steps items are not allowed or not found",
          "transactionId": "x-x-xX-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "invalid_items": {
              "not_found": [
                "vg_deleted_item_1",
                "vg_deleted_item_2",
                "not_existing_sku_404_1",
                "not_existing_sku_404_2"
              ],
              "disabled": [
                "vg_disabled_item_1",
                "vg_disabled_item_2",
                "vc_disabled_1"
              ],
              "invalid_item_type": {
                "allowed_item_type_list": [
                  "virtual_good",
                  "bundle"
                ],
                "sku_map": {
                  "vc_enabled_shown_in_store_1": "virtual_currency",
                  "vc_disabled_1": "virtual_currency",
                  "unit_enabled_shown_in_store_1": "unit",
                  "gk_steam_enabled_shown_in_store_1": "game_key"
                }
              }
            }
          }
        }
      },
      "422-admin-daily-chain-error-invalid-dates": {
        "summary": "Invalid date format",
        "description": "Please, ensure dates format is valid.",
        "value": {
          "statusCode": 422,
          "errorCode": 6204,
          "errorMessage": "[0401-6204]: Period of a chain is invalid. Please, check the dates in your request",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 1,
            "invalid_format_dates": {
              "date_start": "2023-04-15 17:16:00Z",
              "date_end": "2025-04-25 19:16:00Z"
            }
          }
        }
      },
      "422-admin-daily-chain-error-incorrect-period": {
        "summary": "Incorrect period of a daily reward",
        "description": "Please ensure start date is earlier than end date.",
        "value": {
          "statusCode": 422,
          "errorCode": 6204,
          "errorMessage": "[0401-6204]: Period of a chain is invalid. Please, check the dates in your request",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 1,
            "invalid_periods": [
              {
                "start": "2025-04-25T18:16:00+05:00",
                "end": "2023-04-15T18:16:00+05:00"
              }
            ]
          }
        }
      },
      "200-admin-daily-chain": {
        "summary": "Daily reward example",
        "value": {
          "id": 3,
          "name": {
            "en": "Daily reward",
            "ru": "Ежедневная награда"
          },
          "description": {
            "en": "Daily reward short description"
          },
          "date_start": "2023-04-15T18:16:00+05:00",
          "date_end": "2025-04-25T18:16:00+05:00",
          "order": 1,
          "is_recurrent": false,
          "number_of_steps": 3,
          "steps": [
            {
              "step_id": 7,
              "step_number": 1,
              "items": [
                {
                  "item_id": 9010,
                  "sku": "telescope",
                  "name": {
                    "en": "Telescope",
                    "ru": "Телескоп"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Allows to see the stars",
                    "ru": "Позволяет увидеть звезды"
                  },
                  "image_url": "https://picture.bundle-picture.png",
                  "quantity": 1
                },
                {
                  "item_id": 9012,
                  "sku": "health_potion",
                  "name": {
                    "en": "Healing potion",
                    "ru": "Зелье лечения"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Heal 10% of your health",
                    "ru": "Лечит 10% здоровья"
                  },
                  "image_url": "https://picture.bundle-picture.png",
                  "quantity": 2
                }
              ]
            },
            {
              "step_id": 6,
              "step_number": 2,
              "items": [
                {
                  "item_id": 9010,
                  "sku": "telescope",
                  "name": {
                    "en": "Telescope",
                    "ru": "Телескоп"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Allows to see the stars",
                    "ru": "Позволяет увидеть звезды"
                  },
                  "image_url": "https://picture.bundle-picture.png",
                  "quantity": 5
                }
              ]
            },
            {
              "step_id": 5,
              "step_number": 3,
              "items": [
                {
                  "item_id": 9010,
                  "sku": "telescope",
                  "name": {
                    "en": "Telescope",
                    "ru": "Телескоп"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Allows to see the stars",
                    "ru": "Позволяет увидеть звезды"
                  },
                  "image_url": "https://picture.bundle-picture.png",
                  "quantity": 2
                }
              ]
            }
          ],
          "is_enabled": true,
          "type": "calendar_hard"
        }
      },
      "404-daily-chain-not-found": {
        "summary": "Daily reward is not found",
        "description": "Daily reward was not found.",
        "value": {
          "statusCode": 404,
          "errorCode": 6201,
          "errorMessage": "[0401-6201]: Chain not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 4
          }
        }
      },
      "422-admin-daily-chain-error-invalid-chain-step-ids": {
        "summary": "Daily reward step IDs not found",
        "description": "Some of step IDs was not found. Please, double check if specified daily reward step IDs actually exist.",
        "value": {
          "statusCode": 404,
          "errorCode": 6206,
          "errorMessage": "[0401-6206]: Chain step IDs not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 1,
            "chain_step_id_list": [
              404000
            ]
          }
        }
      },
      "422-admin-daily-chain-error-chain-id-mismatch": {
        "summary": "Daily reward ID mismatch",
        "description": "Daily reward ID specified in the body does not match the URL.",
        "value": {
          "statusCode": 422,
          "errorCode": 6205,
          "errorMessage": "[0401-6205]: Chain ID mismatch. Please, check the chain ID in your request body and URL",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "url_chain_id": 1,
            "body_chain_id": 2
          }
        }
      },
      "422-admin-daily-chain-error-duplicate-step-ids": {
        "summary": "Duplicate daily reward step IDs",
        "description": "Please, ensure that daily reward step IDs are unique in the request body.",
        "value": {
          "statusCode": 422,
          "errorCode": 6207,
          "errorMessage": "[0401-6207]: Duplicate chain step IDs detected in the request body",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_step_id_list": [
              8,
              9,
              10
            ],
            "chain_id": 3
          }
        }
      },
      "422-admin-daily-chain-error-activated": {
        "summary": "Active daily reward cannot be updated",
        "description": "Active daily reward have to be deactivated before being updated.",
        "value": {
          "statusCode": 422,
          "errorCode": 6209,
          "errorMessage": "[0401-6209]: Active chain cannot be updated. Please deactivate it first",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 2
          }
        }
      },
      "200-client-daily-chain-list": {
        "summary": "User's daily reward list example",
        "value": {
          "has_more": false,
          "total_items_count": 3,
          "items": [
            {
              "id": 101,
              "name": "Active daily reward",
              "description": null,
              "date_start": "2025-04-01T18:16:00+05:00",
              "date_end": "2025-04-03T18:16:00+05:00",
              "order": 1,
              "steps": [
                {
                  "step_number": 1,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 1
                    }
                  ],
                  "status": "claimed",
                  "unlocked_date": 1711978560
                },
                {
                  "step_number": 2,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 2
                    }
                  ],
                  "status": "claimable",
                  "unlocked_date": 1712064960
                },
                {
                  "step_number": 3,
                  "items": [
                    {
                      "item_id": 9011,
                      "sku": "free_item",
                      "name": "Free item",
                      "type": "virtual_good",
                      "description": "store_item_0_lost_telescope_2_short_description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 1
                    }
                  ],
                  "status": "claim_in_future",
                  "unlocked_date": 1712151360
                }
              ],
              "type": "calendar_hard"
            },
            {
              "id": 102,
              "name": "Active daily reward 2",
              "description": null,
              "date_start": "2025-05-01T18:16:00+05:00",
              "date_end": "2025-05-03T18:16:00+05:00",
              "order": 1,
              "steps": [
                {
                  "step_number": 1,
                  "items": [
                    {
                      "item_id": 9011,
                      "sku": "free_item",
                      "name": "Free item",
                      "type": "virtual_good",
                      "description": "store_item_0_lost_telescope_2_short_description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 3
                    }
                  ],
                  "status": "claimable",
                  "unlocked_date": 1714560960
                },
                {
                  "step_number": 2,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 3
                    }
                  ],
                  "status": "claim_in_future",
                  "unlocked_date": 1714647360
                }
              ],
              "type": "calendar_hard"
            },
            {
              "id": 103,
              "name": "Active daily reward 3",
              "description": null,
              "date_start": "2025-04-01T18:16:00+05:00",
              "date_end": "2025-04-03T18:16:00+05:00",
              "order": 1,
              "steps": [
                {
                  "step_number": 1,
                  "items": [
                    {
                      "item_id": 9011,
                      "sku": "free_item",
                      "name": "Free item",
                      "type": "virtual_good",
                      "description": "store_item_0_lost_telescope_2_short_description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 3
                    }
                  ],
                  "status": "claimable",
                  "unlocked_date": 1711978560
                },
                {
                  "step_number": 2,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 3
                    }
                  ],
                  "status": "blocked",
                  "unlocked_date": 1712064960
                },
                {
                  "step_number": 3,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 3
                    }
                  ],
                  "status": "blocked",
                  "unlocked_date": 1712151360
                }
              ],
              "type": "calendar_hard"
            },
            {
              "id": 104,
              "name": "Active daily rolling reward",
              "description": null,
              "date_start": "2025-04-01T10:00:00+05:00",
              "date_end": "2025-04-28T10:00:00+05:00",
              "order": 1,
              "steps": [
                {
                  "step_number": 1,
                  "items": [
                    {
                      "item_id": 1001,
                      "sku": "item_one",
                      "name": "Item One",
                      "type": "virtual_good",
                      "description": "Item one description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 1
                    }
                  ],
                  "status": "claimed",
                  "unlocked_date": -1
                },
                {
                  "step_number": 2,
                  "items": [
                    {
                      "item_id": 1002,
                      "sku": "item_two",
                      "name": "Item Two",
                      "type": "virtual_good",
                      "description": "Item two description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 1
                    }
                  ],
                  "status": "claimable",
                  "unlocked_date": 1712064960
                },
                {
                  "step_number": 3,
                  "items": [
                    {
                      "item_id": 1003,
                      "sku": "item_three",
                      "name": "Item Three",
                      "type": "virtual_good",
                      "description": "Item three description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 1
                    }
                  ],
                  "status": "claim_in_future",
                  "unlocked_date": 1712151360
                }
              ],
              "type": "rolling_skippable"
            }
          ]
        }
      },
      "200-client-daily-chain": {
        "summary": "User's daily reward example",
        "value": {
          "id": 101,
          "name": "Active daily reward",
          "description": "Active daily reward description",
          "date_start": "2025-04-01T18:16:00+05:00",
          "date_end": "2025-04-03T18:16:00+05:00",
          "order": 1,
          "steps": [
            {
              "step_number": 1,
              "items": [
                {
                  "item_id": 10001,
                  "sku": "bundle_with_items",
                  "name": "Bundle with awesome stuff!",
                  "type": "bundle",
                  "description": "Many stuff",
                  "image_url": "https://picture.bundle-with-many-stuff.png",
                  "bundle_type": "standard",
                  "is_free": false,
                  "content": [
                    {
                      "item_id": 1,
                      "sku": "d0df11c5-f7c4-4907-9ae1-7dd40cecab05",
                      "name": "virtual_good_one",
                      "type": "virtual_good",
                      "description": "Virtual good one",
                      "image_url": "https://picture.virtual-good-picture.png",
                      "is_free": false,
                      "quantity": 1
                    },
                    {
                      "item_id": 2,
                      "sku": "coins",
                      "name": "Gold Coins",
                      "type": "virtual_currency",
                      "description": "Gold Coins",
                      "image_url": "https://picture.gold_coins.png",
                      "is_free": false,
                      "quantity": 100
                    }
                  ],
                  "quantity": 1
                }
              ],
              "status": "blocked",
              "unlocked_date": 1711978560
            },
            {
              "step_number": 2,
              "items": [
                {
                  "item_id": 9012,
                  "sku": "health_potion",
                  "name": "Healing potion",
                  "type": "virtual_good",
                  "description": "Heal 10% of your health",
                  "image_url": "https://picture.bundle-picture.png",
                  "is_free": false,
                  "quantity": 1
                }
              ],
              "status": "claimed",
              "unlocked_date": 1712064960
            },
            {
              "step_number": 3,
              "items": [
                {
                  "item_id": 9012,
                  "sku": "health_potion",
                  "name": "Healing potion",
                  "type": "virtual_good",
                  "description": "Heal 10% of your health",
                  "image_url": "https://picture.bundle-picture.png",
                  "is_free": false,
                  "quantity": 2
                }
              ],
              "status": "claimable",
              "unlocked_date": 1712151360
            },
            {
              "step_number": 4,
              "items": [
                {
                  "item_id": 9011,
                  "sku": "free_item",
                  "name": "Free item",
                  "type": "virtual_good",
                  "description": "store_item_0_lost_telescope_2_short_description",
                  "image_url": "https://picture.bundle-picture.png",
                  "is_free": false,
                  "quantity": 1
                }
              ],
              "status": "claim_in_future",
              "unlocked_date": 1712237760
            }
          ],
          "type": "calendar_hard"
        }
      },
      "404-daily-chain-step-not-found": {
        "summary": "Daily reward step not found",
        "description": "Daily reward step was not found.",
        "value": {
          "statusCode": 404,
          "errorCode": 6304,
          "errorMessage": "[0401-6304]: Daily Chain Step not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "chain_id": 100,
            "step_number": 1
          }
        }
      },
      "422-daily-chain-claim-error-invalid-step": {
        "summary": "Can't claim step reward",
        "description": "Ensure the user has not previously claimed the reward and that the correct step in the daily reward is selected for claiming.",
        "value": {
          "statusCode": 422,
          "errorCode": 6405,
          "errorMessage": "[0401-6405]: This step is not available to be claimed by the user.",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "chain_id": 1,
            "step_number": 1
          }
        }
      },
      "200-client-offer-chain-list": {
        "summary": "User's offer chain list example",
        "value": {
          "has_more": false,
          "total_items_count": 3,
          "items": [
            {
              "id": 101,
              "name": "Active offer chain",
              "description": null,
              "date_start": "2018-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "order": 1,
              "recurrent_schedule": null,
              "steps": [
                {
                  "step_number": 1,
                  "is_free": false,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 1,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": {
                    "amount": 99.99,
                    "currency": "USD"
                  },
                  "step_vp_rewards": [
                    {
                      "item_id": 6039,
                      "sku": "test_value_point_39",
                      "amount": 15,
                      "name": "store_item_0_test_value_point_name",
                      "image_url": "https://popmedia.blob.core.windows.net/popyourself/female/accessory/female_crossnecklace_2_silver-01.png",
                      "is_clan": true
                    }
                  ]
                },
                {
                  "step_number": 2,
                  "is_free": false,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 2,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": {
                    "amount": 199.98,
                    "currency": "USD"
                  },
                  "step_vp_rewards": [
                    {
                      "item_id": 6039,
                      "sku": "test_value_point_39",
                      "amount": 30,
                      "name": "store_item_0_test_value_point_name",
                      "image_url": "https://popmedia.blob.core.windows.net/popyourself/female/accessory/female_crossnecklace_2_silver-01.png",
                      "is_clan": true
                    }
                  ]
                },
                {
                  "step_number": 3,
                  "is_free": true,
                  "items": [
                    {
                      "item_id": 9011,
                      "sku": "free_item",
                      "name": "Free item",
                      "type": "virtual_good",
                      "description": "store_item_0_lost_telescope_2_short_description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 1,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": null,
                  "step_vp_rewards": null
                }
              ],
              "next_step_number": 1
            },
            {
              "id": 102,
              "name": "Active offer chain 2",
              "description": null,
              "date_start": "2018-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "order": 1,
              "recurrent_schedule": null,
              "steps": [
                {
                  "step_number": 1,
                  "is_free": true,
                  "items": [
                    {
                      "item_id": 9011,
                      "sku": "free_item",
                      "name": "Free item",
                      "type": "virtual_good",
                      "description": "store_item_0_lost_telescope_2_short_description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 3,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": null,
                  "step_vp_rewards": null
                },
                {
                  "step_number": 2,
                  "is_free": true,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 3,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": null,
                  "step_vp_rewards": [
                    {
                      "item_id": 6039,
                      "sku": "test_value_point_39",
                      "amount": 45,
                      "name": "store_item_0_test_value_point_name",
                      "image_url": "https://popmedia.blob.core.windows.net/popyourself/female/accessory/female_crossnecklace_2_silver-01.png",
                      "is_clan": true
                    }
                  ]
                },
                {
                  "step_number": 3,
                  "is_free": true,
                  "items": [],
                  "is_claimed": false,
                  "step_price": null,
                  "step_vp_rewards": null
                }
              ],
              "next_step_number": 1
            },
            {
              "id": 103,
              "name": "Active offer chain 3",
              "description": null,
              "date_start": "2018-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "order": 1,
              "recurrent_schedule": null,
              "steps": [
                {
                  "step_number": 1,
                  "is_free": true,
                  "items": [
                    {
                      "item_id": 9011,
                      "sku": "free_item",
                      "name": "Free item",
                      "type": "virtual_good",
                      "description": "store_item_0_lost_telescope_2_short_description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 3,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": null,
                  "step_vp_rewards": null
                },
                {
                  "step_number": 2,
                  "is_free": false,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 3,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": {
                    "amount": 299.97,
                    "currency": "USD"
                  },
                  "step_vp_rewards": [
                    {
                      "item_id": 6039,
                      "sku": "test_value_point_39",
                      "amount": 45,
                      "name": "store_item_0_test_value_point_name",
                      "image_url": "https://popmedia.blob.core.windows.net/popyourself/female/accessory/female_crossnecklace_2_silver-01.png",
                      "is_clan": true
                    }
                  ]
                },
                {
                  "step_number": 3,
                  "is_free": true,
                  "items": [],
                  "is_claimed": false,
                  "step_price": null,
                  "step_vp_rewards": null
                }
              ],
              "next_step_number": 1
            }
          ]
        }
      },
      "200-client-offer-chain": {
        "summary": "User's offer chain example",
        "value": {
          "id": 4,
          "name": "Offer chain with bundles",
          "description": null,
          "date_start": "2010-04-15T18:16:00+05:00",
          "date_end": "2025-04-25T18:16:00+05:00",
          "order": 1,
          "recurrent_schedule": null,
          "steps": [
            {
              "step_number": 1,
              "is_free": false,
              "items": [
                {
                  "item_id": 7008,
                  "sku": "bundle_with_many_items",
                  "name": "Bundle with many awesome stuff!",
                  "type": "bundle",
                  "description": "Many stuff",
                  "image_url": "https://picture.bundle-with-many-stuff.png",
                  "bundle_type": "standard",
                  "is_free": false,
                  "content": [
                    {
                      "item_id": 1,
                      "sku": "d0df11c5-f7c4-4907-9ae1-7dd40cecab05",
                      "name": "Virtual Good Bundle",
                      "type": "virtual_good",
                      "description": "virtual_good_short_description_d0df11c5-f7c4-4907-9ae1-7dd40cecab05",
                      "image_url": "https://popmedia.blob.core.windows.net/popyourself/female/accessory/female_crossnecklace_2_silver-01.png",
                      "is_free": false,
                      "quantity": 1
                    },
                    {
                      "item_id": 7009,
                      "sku": "vg-in-bundle-big-rocket",
                      "name": "Big Rocket",
                      "type": "virtual_good",
                      "description": "Big Rocket - short description",
                      "image_url": "https://picture.bigrocket.png",
                      "is_free": false,
                      "quantity": 1
                    },
                    {
                      "item_id": 7010,
                      "sku": "vc-in-bundle-gold-coins",
                      "name": "Gold Coins",
                      "type": "virtual_currency",
                      "description": "Gold Coins - short description",
                      "image_url": "https://picture.gold_coins.png",
                      "is_free": true,
                      "quantity": 100
                    },
                    {
                      "item_id": 7011,
                      "sku": "digital-content-drm-in-bundle-awesome-game",
                      "name": "Some Game",
                      "type": "virtual_good",
                      "description": "Some Game - short description",
                      "image_url": "https://picture.some_game.png",
                      "is_free": true,
                      "quantity": 1
                    },
                    {
                      "item_id": 7012,
                      "sku": "bundle-in-bundle-another-bundle",
                      "name": "Some Bundle in Bundle",
                      "type": "bundle",
                      "description": "Bundle - short description",
                      "image_url": "https://picture.bundle-picture.png",
                      "bundle_type": "standard",
                      "is_free": true,
                      "content": [
                        {
                          "item_id": 7010,
                          "sku": "vc-in-bundle-gold-coins",
                          "name": "Gold Coins",
                          "type": "virtual_currency",
                          "description": "Gold Coins - short description",
                          "image_url": "https://picture.gold_coins.png",
                          "is_free": true,
                          "quantity": 1
                        }
                      ],
                      "quantity": 1
                    },
                    {
                      "item_id": 7013,
                      "sku": "lootbox-in-bundle-awesome-game",
                      "name": "Some Lootbox",
                      "type": "lootbox",
                      "description": "Lootbox in bundle - short description",
                      "image_url": "https://picture.lootbox-picture.png",
                      "is_free": true,
                      "quantity": 1
                    }
                  ],
                  "quantity": 5,
                  "order": 0
                }
              ],
              "is_claimed": false,
              "step_price": {
                "amount": 499.95,
                "currency": "USD"
              },
              "step_vp_rewards": null
            },
            {
              "step_number": 2,
              "is_free": true,
              "items": [
                {
                  "item_id": 7007,
                  "sku": "bundle-empty",
                  "name": "Empty bundle",
                  "type": "bundle",
                  "description": "No",
                  "image_url": "https://picture.bundle-no-items.png",
                  "bundle_type": "standard",
                  "is_free": true,
                  "content": [],
                  "quantity": 10,
                  "order": 0
                }
              ],
              "is_claimed": false,
              "step_price": null,
              "step_vp_rewards": null
            }
          ],
          "next_step_number": 1
        }
      },
      "404-offer-chain-not-found": {
        "summary": "Chain not found",
        "description": "Offer chain step was not found.",
        "value": {
          "statusCode": 404,
          "errorCode": 6201,
          "errorMessage": "[0401-6201]: Chain not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 4
          }
        }
      },
      "404-offer-chain-step-not-found": {
        "summary": "Chain step not found",
        "description": "Offer chain step was not found.",
        "value": {
          "statusCode": 404,
          "errorCode": 6304,
          "errorMessage": "[0401-6304]: Offer Chain Step not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "chain_id": 100,
            "step_number": 1
          }
        }
      },
      "422-offer-chain-claim-error-invalid-step": {
        "summary": "Cannot claim step reward",
        "description": "The user must claim all previous steps, and the request must use a valid call – <a href=\"/pt/api/shop-builder/operation/order-user-offer-chain-step-reward\">Create order for paid offer chain step</a>, <a href=\"/pt/api/shop-builder/operation/claim-user-offer-chain-step-reward\">Claim free offer chain step</a> for free ones.\n\nThis error is returned if one or more of the following conditions are not met:<ul><li>The offer chain exists, is enabled, and not deleted.</li><li>The target step exists, is enabled, and marked as free.</li><li>The step has not already been claimed by the user. In case of a recurring chain, this check is based on the user progress of the current iteration.</li><li>All previous steps in the chain (by step number) have been claimed or purchased. In case of a recurring chain, this check also considers the user progress of the current iteration.</li></ul>",
        "value": {
          "statusCode": 422,
          "errorCode": 6306,
          "errorMessage": "[0401-6306]: This step is not valid to claim by user.",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "chain_id": 1,
            "step_number": 1
          }
        }
      },
      "200-admin-offer-chain-list": {
        "summary": "Offer chain list example",
        "value": {
          "has_more": false,
          "items": [
            {
              "id": 1,
              "name": {
                "en": "New personalized default offer chain",
                "ru": "Новая персонализированная цепочка предложений по умолчанию",
                "de": "Neue personalisierte Standard-Angebotskette",
                "fr": "Nouvelle chaîne d'offres personnalisée par défaut",
                "it": "Nuova catena di offerte personalizzata predefinita"
              },
              "description": {
                "en": "Default personalized offer chain for users that do not meet the conditions of other personalized chains",
                "ru": "Персонализированная цепочка по умолчанию для пользователей, не подходящих под условия других персонализированных цепочек",
                "de": "Standard-personalisierte Angebotskette für Benutzer, die die Bedingungen anderer personalisierter Ketten nicht erfüllen",
                "fr": "Chaîne d'offres personnalisée par défaut pour les utilisateurs qui ne répondent pas aux conditions des autres chaînes personnalisées",
                "it": "Catena di offerte personalizzata predefinita per gli utenti che non soddisfano le condizioni di altre catene personalizzate"
              },
              "order": 1,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "is_enabled": true,
              "recurrent_schedule": null,
              "is_always_visible": false
            },
            {
              "id": 2,
              "name": {
                "en": "New personalized offer chain",
                "ru": "Новая персонализированная цепочка предложений",
                "de": "Neue personalisierte Angebotskette",
                "fr": "Nouvelle chaîne d'offres personnalisée",
                "it": "Nuova catena di offerte personalizzata"
              },
              "description": {
                "en": "Personalized offer chain with user attribute conditions - for level 10 and above elves who reached level 10 no later than 2026-01-01 00:00:00, inclusive",
                "ru": "Персонализированная цепочка предложений с условиями по атрибутам пользователя - для эльфов уровня 10 и выше, достигших 10 уровня не позднее 2026-01-01 00:00:00 включительно",
                "de": "Personalisierte Angebotskette mit Benutzerattributbedingungen - für Elfen der Stufe 10 und höher, die Stufe 10 spätestens am 2026-01-01 00:00:00 erreicht haben, einschließlich",
                "fr": "Chaîne d'offres personnalisée avec des conditions d'attribut utilisateur - pour les elfes de niveau 10 et plus qui ont atteint le niveau 10 au plus tard le 2026-01-01 00:00:00, inclus",
                "it": "Catena di offerte personalizzata con condizioni di attributo utente - per elfi di livello 10 e superiore che hanno raggiunto il livello 10 non più tardi del 2026-01-01 00:00:00, inclusi"
              },
              "order": 2,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "is_enabled": true,
              "recurrent_schedule": null,
              "is_always_visible": false,
              "attribute_conditions": [
                {
                  "attribute": "race",
                  "operator": "eq",
                  "value": "elf",
                  "type": "string",
                  "can_be_missing": false
                },
                {
                  "attribute": "level",
                  "operator": "ge",
                  "value": "10",
                  "type": "number",
                  "can_be_missing": false
                },
                {
                  "attribute": "10_level_up_date",
                  "operator": "le",
                  "value": "2026-01-01T00:00:00",
                  "type": "date",
                  "can_be_missing": false
                }
              ]
            },
            {
              "id": 4,
              "name": {
                "en": "Weekly offer chain",
                "ru": "Еженедельная цепочка предложений",
                "de": "Wöchentliche Angebotskette",
                "fr": "Chaîne d'offres hebdomadaire",
                "it": "Catena di offerte settimanale"
              },
              "description": {
                "en": "Offer chain that resets weekly on Wednesdays at 07:00 GMT+3",
                "ru": "Цепочка предложений, которая сбрасывается еженедельно по средам в 07:00 GMT+3",
                "de": "Angebotskette, die sich wöchentlich mittwochs um 07:00 Uhr GMT+3 zurücksetzt",
                "fr": "Chaîne d'offres qui se réinitialise chaque semaine le mercredi à 07h00 GMT+3",
                "it": "Catena di offerte che si resetta settimanalmente il mercoledì alle 07:00 GMT+3"
              },
              "order": 3,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "is_enabled": false,
              "recurrent_schedule": {
                "interval_type": "weekly",
                "day_of_week": 3,
                "time": "07:00:00+03:00",
                "displayable_reset_start_date": "2018-12-05T07:00:00+03:00",
                "displayable_reset_next_date": "2018-12-05T07:00:00+03:00",
                "reset_next_date": 1543982400
              },
              "is_always_visible": true
            },
            {
              "id": 5,
              "name": {
                "en": "Monthly offer chain",
                "ru": "Ежемесячная цепочка предложений",
                "de": "Monatliche Angebotskette",
                "fr": "Chaîne d'offres mensuelle",
                "it": "Catena di offerte mensile"
              },
              "description": {
                "en": "Offer chain that resets monthly on the 28th at 15:00 GMT+8",
                "ru": "Цепочка предложений, которая сбрасывается ежемесячно 28-го числа в 15:00 GMT+8",
                "de": "Angebotskette, die sich monatlich am 28. um 15:00 Uhr GMT+8 zurücksetzt",
                "fr": "Chaîne d'offres qui se réinitialise mensuellement le 28 à 15h00 GMT+8",
                "it": "Catena di offerte che si resetta mensilmente il 28 alle 15:00 GMT+8"
              },
              "order": 4,
              "date_start": "2025-04-15T00:00:00+08:00",
              "date_end": "2025-08-28T15:00:00+08:00",
              "is_enabled": true,
              "recurrent_schedule": {
                "interval_type": "monthly",
                "day_of_month": 28,
                "time": "15:00:00+08:00",
                "displayable_reset_start_date": "2025-05-28T15:00:00+08:00",
                "displayable_reset_next_date": "2025-05-28T15:00:00+08:00",
                "reset_next_date": 1748415600
              },
              "is_always_visible": true
            }
          ]
        }
      },
      "422-admin-offer-chain-error-too-many-steps": {
        "summary": "Too many steps",
        "description": "The number of offer chain steps exceeds the allowed limit of 30. Try specifying fewer steps.",
        "value": {
          "statusCode": 422,
          "errorCode": 6203,
          "errorMessage": "[0401-6203]: Chain step count exceeds the allowed limit",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "step_count": 31,
            "max_steps": 30
          }
        }
      },
      "422-admin-offer-chain-error-incorrect-steps-order": {
        "summary": "Invalid steps order",
        "description": "The sequence of offer chain step numbers is incorrect. Step numbers must be sequential, without gaps or duplicates.",
        "value": {
          "statusCode": 422,
          "errorCode": 6210,
          "errorMessage": "[0401-6210]: Chain step numbers are invalid",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "incorrect_step_numbers": {
              "duplicates": [
                2,
                7
              ],
              "out_of_range": [
                7,
                8
              ],
              "missing": [
                3,
                4,
                5,
                6
              ]
            }
          }
        }
      },
      "422-admin-offer-chain-error-item-limit-exceeded": {
        "summary": "Item limit exceeded",
        "description": "The number of items in one or more offer chain steps exceeds the allowed limit. Currently, only one item per step is allowed.",
        "value": {
          "statusCode": 422,
          "errorCode": 6208,
          "errorMessage": "[0401-6208]: Chain step item count exceeds the allowed limit for some steps",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "max_items": 1,
            "steps_exceeded_limits": [
              {
                "step_number": 1,
                "items_count": 2
              },
              {
                "step_number": 4,
                "items_count": 3
              }
            ]
          }
        }
      },
      "422-admin-offer-chain-error-incorrect-items": {
        "summary": "Invalid step items",
        "description": "Specified items are either unavailable, or not found. Only enabled items of the following types are supported: virtual items, bundles, and virtual currency packages.",
        "value": {
          "statusCode": 422,
          "errorCode": 6211,
          "errorMessage": "[0401-6211]: Chain steps items are not allowed or not found",
          "transactionId": "x-x-xX-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "invalid_items": {
              "not_found": [
                "vg_deleted_item_1",
                "vg_deleted_item_2",
                "not_existing_sku_404_1",
                "not_existing_sku_404_2"
              ],
              "disabled": [
                "vg_disabled_item_1",
                "vg_disabled_item_2",
                "vc_disabled_1"
              ],
              "invalid_item_type": {
                "allowed_item_type_list": [
                  "virtual_good",
                  "bundle"
                ],
                "sku_map": {
                  "vc_enabled_shown_in_store_1": "virtual_currency",
                  "vc_disabled_1": "virtual_currency",
                  "unit_enabled_shown_in_store_1": "unit",
                  "gk_steam_enabled_shown_in_store_1": "game_key"
                }
              }
            }
          }
        }
      },
      "422-admin-offer-chain-error-invalid-dates": {
        "summary": "Invalid date format",
        "description": "The date format must be valid. Use <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.",
        "value": {
          "statusCode": 422,
          "errorCode": 6204,
          "errorMessage": "[0401-6204]: Period of a chain is invalid. Please, check the dates in your request",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 1,
            "invalid_format_dates": {
              "date_start": "2023-04-15 17:16:00Z",
              "date_end": "2025-04-25 19:16:00Z"
            }
          }
        }
      },
      "422-admin-offer-chain-error-incorrect-period": {
        "summary": "Invalid chain period",
        "description": "The start date must be earlier than the end date.",
        "value": {
          "statusCode": 422,
          "errorCode": 6204,
          "errorMessage": "[0401-6204]: Period of a chain is invalid. Please, check the dates in your request",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 1,
            "invalid_periods": [
              {
                "start": "2025-04-25T18:16:00+05:00",
                "end": "2023-04-15T18:16:00+05:00"
              }
            ]
          }
        }
      },
      "200-admin-offer-chain": {
        "summary": "Offer chain example",
        "value": {
          "id": 3,
          "name": {
            "en": "Offer chain",
            "ru": "Цепочка",
            "de": "Angebotskette",
            "fr": "Chaîne d'offres",
            "it": "Catena di offerte"
          },
          "description": {
            "en": "Personalized offer chain with user attribute conditions - for level 10 and above elves who reached level 10 no later than 2026-01-01 00:00:00, inclusive",
            "ru": "Персонализированная цепочка предложений - для эльфов 10 уровня и выше, достигших 10 уровня не позднее 2026-01-01 00:00:00 включительно",
            "de": "Personalisierte Angebotskette mit Benutzerattributbedingungen - für Elfen der Stufe 10 und höher, die Stufe 10 spätestens am 2026-01-01 00:00:00 erreicht haben, einschließlich",
            "fr": "Chaîne d'offres personnalisée avec des conditions d'attribut utilisateur - pour les elfes de niveau 10 et plus qui ont atteint le niveau 10 au plus tard le 2026-01-01 00:00:00, inclus",
            "it": "Catena di offerte personalizzata con condizioni di attributo utente - per elfi di livello 10 e superiore che hanno raggiunto il livello 10 non più tardi del 2026-01-01 00:00:00, inclusi"
          },
          "date_start": "2023-04-15T18:16:00+05:00",
          "date_end": "2025-04-25T18:16:00+05:00",
          "order": 1,
          "recurrent_schedule": null,
          "steps": [
            {
              "step_id": 7,
              "step_number": 1,
              "is_free": false,
              "items": [
                {
                  "item_id": 9010,
                  "sku": "telescope",
                  "name": {
                    "en": "Telescope",
                    "ru": "Телескоп",
                    "de": "Teleskop",
                    "fr": "Télescope",
                    "it": "Telescopio"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Allows to see the stars",
                    "ru": "Позволяет увидеть звезды",
                    "de": "Ermöglicht das Betrachten der Sterne",
                    "fr": "Permet de voir les étoiles",
                    "it": "Permette di vedere le stelle"
                  },
                  "image_url": "https://cdn.picture.vg.sku-telescope.png",
                  "quantity": 1,
                  "order": 1
                },
                {
                  "item_id": 9012,
                  "sku": "health_potion",
                  "name": {
                    "en": "Healing potion",
                    "ru": "Зелье лечения",
                    "de": "Heiltrank",
                    "fr": "Potion de soin",
                    "it": "Pozione curativa"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Heal 10% of your health",
                    "ru": "Лечит 10% здоровья",
                    "de": "Heilt 10% deiner Gesundheit",
                    "fr": "Soigne 10% de votre santé",
                    "it": "Cura il 10% della tua salute"
                  },
                  "image_url": "https://cdn.picture/vg-sku-health_potion.png",
                  "quantity": 2,
                  "order": 0
                }
              ]
            },
            {
              "step_id": 6,
              "step_number": 2,
              "is_free": false,
              "items": [
                {
                  "item_id": 9010,
                  "sku": "telescope",
                  "name": {
                    "en": "Telescope",
                    "ru": "Телескоп",
                    "de": "Teleskop",
                    "fr": "Télescope",
                    "it": "Telescopio"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Allows to see the stars",
                    "ru": "Позволяет увидеть звезды",
                    "de": "Ermöglicht das Betrachten der Sterne",
                    "fr": "Permet de voir les étoiles",
                    "it": "Permette di vedere le stelle"
                  },
                  "image_url": "https://cdn.picture/vg-sku-telescope.png",
                  "quantity": 5,
                  "order": 0
                }
              ]
            },
            {
              "step_id": 5,
              "step_number": 3,
              "is_free": true,
              "items": [
                {
                  "item_id": 9010,
                  "sku": "telescope",
                  "name": {
                    "en": "Telescope",
                    "ru": "Телескоп",
                    "de": "Teleskop",
                    "fr": "Télescope",
                    "it": "Telescopio"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Allows to see the stars",
                    "ru": "Позволяет увидеть звезды",
                    "de": "Ermöglicht das Betrachten der Sterne",
                    "fr": "Permet de voir les étoiles",
                    "it": "Permette di vedere le stelle"
                  },
                  "image_url": "https://cdn.picture/vg-sku-telescope.png",
                  "quantity": 2,
                  "order": 0
                }
              ]
            }
          ],
          "is_enabled": true,
          "is_always_visible": false,
          "attribute_conditions": [
            {
              "attribute": "race",
              "operator": "eq",
              "value": "elf",
              "type": "string",
              "can_be_missing": false
            },
            {
              "attribute": "level",
              "operator": "ge",
              "value": "10",
              "type": "number",
              "can_be_missing": false
            },
            {
              "attribute": "10_level_up_date",
              "operator": "le",
              "value": "2026-01-01T00:00:00",
              "type": "date",
              "can_be_missing": false
            }
          ]
        }
      },
      "422-admin-offer-chain-error-invalid-chain-step-ids": {
        "summary": "Chain step IDs not found",
        "description": "Some of the step IDs were not found. Double-check that the specified chain step IDs exist. To do this, use the <a href=\"/pt/api/shop-builder/operation/order-user-offer-chain-step-reward#tag/offer-chain-admin/operation/admin-get-offer-chain\">Get offer chain</a> call.",
        "value": {
          "statusCode": 404,
          "errorCode": 6206,
          "errorMessage": "[0401-6206]: Chain step IDs not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 1,
            "chain_step_id_list": [
              404000
            ]
          }
        }
      },
      "422-admin-offer-chain-error-chain-id-mismatch": {
        "summary": "Chain ID mismatch",
        "description": "Offer chain ID in the request body does not match the ID in the URL.",
        "value": {
          "statusCode": 422,
          "errorCode": 6205,
          "errorMessage": "[0401-6205]: Chain ID mismatch. Please, check the chain ID in your request body and URL",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "url_chain_id": 1,
            "body_chain_id": 2
          }
        }
      },
      "422-admin-offer-chain-error-duplicate-step-ids": {
        "summary": "Duplicate chain step IDs",
        "description": "Chain step IDs must be unique in the request body.",
        "value": {
          "statusCode": 422,
          "errorCode": 6207,
          "errorMessage": "[0401-6207]: Duplicate chain step IDs detected in the request body",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_step_id_list": [
              8,
              9,
              10
            ],
            "chain_id": 3
          }
        }
      },
      "422-admin-offer-chain-error-activated": {
        "summary": "Active offer chain cannot be updated",
        "description": "Active offer chain has to be deactivated before being updated. To do this, use the <a href=\"/pt/api/shop-builder/operation/admin-toggle-offer-chain\">Toggle offer chain</a> call.",
        "value": {
          "statusCode": 422,
          "errorCode": 6209,
          "errorMessage": "[0401-6209]: Active chain cannot be updated. Please deactivate it first",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 2
          }
        }
      }
    },
    "responses": {
      "Promotions_200-get-promotions": {
        "description": "Lista de promoções recebida com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "promotions": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Promotions_200-get-promotion-model"
                  }
                },
                "total_promotions_count": {
                  "$ref": "#/components/schemas/total_promotions_count"
                },
                "active_promotions_count": {
                  "$ref": "#/components/schemas/active_promotions_count"
                },
                "inactive_promotions_count": {
                  "$ref": "#/components/schemas/inactive_promotions_count"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-admin-promotions"
              }
            }
          }
        }
      },
      "Promotions_401-invalid-basic-auth": {
        "description": "Autenticação básica não aprovada ou errada. Verifique se você usou a autenticação básica ou as credenciais corretas.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 401
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1020
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1020]: Error in Authentication method occurred"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 401,
                  "errorCode": 1020,
                  "errorMessage": "[0401-1020]: Error in Authentication method occurred"
                }
              }
            }
          }
        }
      },
      "Promotions_422-activate-deactivate-promotion": {
        "description": "Solicitação inválida.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1102
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9505]: Error was occurred while promotion was being updated"
                },
                "transactionId": {
                  "type": "string",
                  "example": "da145238620011eb8e24fe6913ff226a"
                }
              }
            },
            "examples": {
              "Error was occurred": {
                "$ref": "#/components/examples/422-activate-deactivate-promotion"
              }
            }
          }
        }
      },
      "200-admin-get-redeemable-by-code": {
        "description": "A promoção foi recebida com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/admin-promotions_200-get-redeemable-coupon-promotion-model"
            },
            "examples": {
              "Promo Code Response": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2023-05-01T01:00:00+05:00",
                      "date_until": "2023-05-31T23:59:59+05:00"
                    },
                    {
                      "date_from": "2023-06-01T01:00:00+05:00",
                      "date_until": "2023-06-30T23:59:59+05:00"
                    }
                  ],
                  "bonus": [],
                  "is_enabled": true,
                  "external_id": "falls2023",
                  "name": {
                    "ru": "Скидка по промокоду на Epic Fall Hammer",
                    "en": "Promo Code discount for Epic Fall Hammer"
                  },
                  "redeem_total_limit": 2,
                  "redeem_user_limit": 3,
                  "redeem_code_limit": null,
                  "total_limit_state": {
                    "available": 1,
                    "reserved": 1,
                    "used": 0
                  },
                  "discount": {
                    "percent": null
                  },
                  "discounted_items": [
                    {
                      "sku": "epic_fall_hammer_1",
                      "discount": {
                        "percent": "20.00"
                      }
                    }
                  ]
                }
              },
              "Coupon Response": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2023-04-15T01:00:00+05:00",
                      "date_until": "2023-04-30T23:59:59+05:00"
                    },
                    {
                      "date_from": "2023-05-15T01:00:00+05:00",
                      "date_until": "2023-05-30T23:59:59+05:00"
                    }
                  ],
                  "bonus": [
                    {
                      "sku": "epic_fall_hammer_1",
                      "quantity": 3
                    }
                  ],
                  "is_enabled": true,
                  "external_id": "coupon_fall_hammer_2",
                  "name": {
                    "en": "This is a Coupon code for Epic Fall Hammer",
                    "ru": "Eto kod kupona на Epic Fall Hammer"
                  },
                  "redeem_total_limit": 99,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": null
                }
              }
            }
          }
        }
      },
      "401-invalid-basic-auth": {
        "description": "Autenticação básica não aprovada ou errada. Verifique se você usou a autenticação básica ou as credenciais corretas.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 401
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1020
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1020]: Error in Authentication method occurred"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 401,
                  "errorCode": 1020,
                  "errorMessage": "[0401-1020]: Error in Authentication method occurred"
                }
              }
            }
          }
        }
      },
      "404-code-not-found": {
        "description": "Código resgatável não encontrado. Verifique se o valor do código fornecido está correto.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9811
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9811]: Code not found."
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 404,
                  "errorCode": 9811,
                  "errorMessage": "[0401-9811]: Code not found."
                }
              }
            }
          }
        }
      },
      "405-method-not-found": {
        "description": "Formato de código resgatável incorreto. O código só pode conter letras e números.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 405
                },
                "errorCode": {
                  "type": "integer",
                  "example": 0
                },
                "errorMessage": {
                  "type": "string",
                  "example": "Method is not allowed. Method must be one of: OPTIONS"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 405,
                  "errorCode": 0,
                  "errorMessage": "Method is not allowed. Method must be one of: OPTIONS"
                }
              }
            }
          }
        }
      },
      "Promotions_200-coupon-redeemed": {
        "description": "Cupom resgatado com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku": {
                        "type": "string"
                      },
                      "groups": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "external_id": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "price": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "Preços dos itens.",
                        "properties": {
                          "amount": {
                            "type": "string",
                            "example": "2.9900",
                            "description": "Preço do item com desconto."
                          },
                          "amount_without_discount": {
                            "type": "string",
                            "example": "2.9900",
                            "description": "Preço do item."
                          },
                          "currency": {
                            "type": "string",
                            "example": "USD",
                            "description": "Moeda do preço do item. Código de três letras de acordo com [a ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."
                          }
                        }
                      },
                      "type": {
                        "type": "string"
                      },
                      "virtual_item_type": {
                        "type": "string",
                        "example": "non-consumable",
                        "description": "Tipo de item virtual.\n\nPossíveis valores:\n- `consumable` — Um item que desaparece do inventário após o uso (ex.: munição)..\n- `non_consumable` — Um item que permanece no inventário por um tempo ilimitado.\n- `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"
                        ]
                      },
                      "virtual_prices": {
                        "type": "array"
                      },
                      "description": {
                        "type": "string"
                      },
                      "image_url": {
                        "type": "string"
                      },
                      "quantity": {
                        "type": "integer"
                      },
                      "is_free": {
                        "type": "boolean"
                      },
                      "attributes": {
                        "type": "array"
                      }
                    }
                  },
                  "example": [
                    {
                      "attributes": [],
                      "description": "Take it, take it all! All of Xsolla's riches in one Mega Booster.",
                      "groups": [
                        {
                          "external_id": "powerups",
                          "name": "Power Ups"
                        }
                      ],
                      "image_url": "https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png",
                      "is_free": false,
                      "name": "Xsolla Booster Mega",
                      "price": {
                        "amount": "50.0000000000000000",
                        "amount_without_discount": "100.0000000000000000",
                        "currency": "USD"
                      },
                      "quantity": 1,
                      "sku": "com.xsolla.booster_mega_1",
                      "type": "virtual_good",
                      "virtual_item_type": "consumable",
                      "virtual_prices": []
                    }
                  ]
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "items": [
                    {
                      "attributes": [],
                      "description": "Take it, take it all! All of Xsolla's riches in one Mega Booster.",
                      "groups": [
                        {
                          "external_id": "powerups",
                          "name": "Power Ups"
                        }
                      ],
                      "image_url": "https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png",
                      "is_free": true,
                      "name": "Xsolla Booster Mega",
                      "price": null,
                      "quantity": 1,
                      "sku": "com.xsolla.booster_mega_1",
                      "type": "virtual_good",
                      "virtual_item_type": "consumable",
                      "virtual_prices": []
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_401-invalid-client-auth": {
        "description": "Autenticação não aprovada ou errada.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 401
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1501
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1501]: Authorization failed: Provide authorization"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 401,
                  "errorCode": 1501,
                  "errorMessage": "[0401-1501]: Authorization failed: Provide authorization"
                }
              }
            }
          }
        }
      },
      "Promotions_403-auth-header": {
        "description": "Cabeçalho de autorização não enviado.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 403
                },
                "errorCode": {
                  "type": "integer",
                  "example": 0
                },
                "errorMessage": {
                  "type": "string",
                  "example": "Authorization header not sent."
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 403,
                  "errorCode": 0,
                  "errorMessage": "Authorization header not sent"
                }
              }
            }
          }
        }
      },
      "Promotions_404-coupon": {
        "description": "Insira um código de cupom válido.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9807]: Enter valid coupon code."
                }
              },
              "type": "object"
            }
          }
        }
      },
      "Promotions_422-redeem-coupon": {
        "description": "Solicitação inválida.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1102
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1102]: Unprocessable Entity. The property `coupon_code` is required"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 1102,
                  "errorMessage": "[0401-1102]: Unprocessable Entity. The property `coupon_code` is required"
                }
              }
            }
          }
        }
      },
      "Promotions_200-coupon-rewards": {
        "description": "Lista de recompensas de cupom recebida com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "bonus": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Promotions_200-coupon-bonus-reward"
                  }
                },
                "is_selectable": {
                  "type": "boolean",
                  "description": "Se `true`, o usuário deve escolher o bônus antes de resgatar um cupom."
                },
                "discount": {
                  "$ref": "#/components/schemas/Promotions_200-coupon-discount-reward"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-get-coupon-rewards"
              }
            }
          }
        }
      },
      "Promotions_422-rewards": {
        "description": "Solicitação inválida.",
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/Promotions_422_limit_error"
                },
                {
                  "$ref": "#/components/schemas/Promotions_422_reglock_error"
                }
              ]
            }
          }
        }
      },
      "Promotions_200-get-coupons": {
        "description": "Lista de cupons recebida com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/admin-promotions_200-get-coupon-promotion-model"
                  }
                },
                "total_promotions_count": {
                  "$ref": "#/components/schemas/total_promotions_count"
                },
                "active_promotions_count": {
                  "$ref": "#/components/schemas/active_promotions_count"
                },
                "inactive_promotions_count": {
                  "$ref": "#/components/schemas/inactive_promotions_count"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-admin-coupons"
              }
            }
          }
        }
      },
      "Promotions_422-invalid-coupon": {
        "description": "Solicitação inválida.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1102
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1102]: Unprocessable Entity. The property `external_id` is required"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 1102,
                  "errorMessage": "[0401-1102]: Unprocessable Entity. The property `external_id` is required"
                }
              }
            }
          }
        }
      },
      "Promotions_404-admin-coupon": {
        "description": "Cupom não encontrado. Verifique se o `external_id` está correto.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9802]: Coupon not found"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "Promotions_422-admin-promotion-error": {
        "description": "Ocorreu um erro ao receber a promoção do serviço de promoção.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9502
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9502]: Error occurred while receiving the promotion from the promotion service"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "Promotions_200-coupon-code-list": {
        "description": "Lista de códigos para um cupom recebida com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "codes": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "$ref": "#/components/schemas/Promotions_coupon_code"
                      }
                    }
                  }
                },
                "total_count": {
                  "type": "number",
                  "description": "Contagem total de códigos de cupom."
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-coupon-code-list"
              }
            }
          }
        }
      },
      "Promotions_201-coupon-promocode-code-created": {
        "description": "Código criado com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/Promotions_coupon_code"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "code": "WINTER2021"
                }
              }
            }
          }
        }
      },
      "Promotions_422-coupon-promocode-same-code-exists": {
        "description": "Solicitação inválida. O código já existe.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9803
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9803]: The code already exists."
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 9803,
                  "errorMessage": "[0401-9803]: The code already exists.",
                  "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "Promotions_404-admin-promocode": {
        "description": "Código promocional não encontrado. Verifique se o `external_id` está correto.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9802]: Promocode not found"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "Promotions_200-promo-code-redeemed": {
        "description": "Código promocional resgatado com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "cart_id": {
                  "type": "string",
                  "example": "cart_id",
                  "description": "ID do carrinho."
                },
                "price": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "amount": {
                      "type": "string",
                      "example": "50.0000000000000000"
                    },
                    "amount_without_discount": {
                      "type": "string",
                      "example": "100.0000000000000000"
                    },
                    "currency": {
                      "type": "string",
                      "example": "USD"
                    }
                  },
                  "example": {
                    "amount": "6150.0000000000000000",
                    "amount_without_discount": "6150.0000000000000000",
                    "currency": "USD"
                  },
                  "description": "Preço do carrinho."
                },
                "is_free": {
                  "$ref": "#/components/schemas/value-is_free"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku": {
                        "type": "string"
                      },
                      "groups": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "external_id": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "type": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "image_url": {
                        "type": "string"
                      },
                      "quantity": {
                        "type": "integer"
                      },
                      "is_free": {
                        "$ref": "#/components/schemas/value-is_free"
                      },
                      "promotions": {
                        "$ref": "#/components/schemas/Catalog_item_promotions"
                      },
                      "can_be_bought": {
                        "$ref": "#/components/schemas/Can_be_bought"
                      },
                      "vp_rewards": {
                        "$ref": "#/components/schemas/client-item-value-point-reward"
                      },
                      "limits": {
                        "$ref": "#/components/schemas/Catalog_item_limits"
                      },
                      "periods": {
                        "$ref": "#/components/schemas/item-periods"
                      }
                    }
                  },
                  "example": [
                    {
                      "attributes": [],
                      "description": "Take it, take it all! All of Xsolla's riches in one Mega Booster.",
                      "groups": [
                        {
                          "external_id": "powerups",
                          "name": "Power Ups"
                        }
                      ],
                      "image_url": "https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png",
                      "is_free": false,
                      "name": "Xsolla Booster Mega",
                      "price": {
                        "amount": "50.0000000000000000",
                        "amount_without_discount": "100.0000000000000000",
                        "currency": "USD"
                      },
                      "quantity": 123,
                      "sku": "com.xsolla.booster_mega_1",
                      "type": "virtual_good",
                      "virtual_item_type": "consumable",
                      "virtual_prices": [],
                      "promotions": [
                        {
                          "name": "Bonus promotion",
                          "date_start": "2020-04-15T16:16:00+03:00",
                          "date_end": "2026-04-15T16:16:00+03:00",
                          "discount": {
                            "percent": "50.00"
                          },
                          "bonus": [
                            {
                              "quantity": 1,
                              "name": "Xsolla Minigun",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png",
                              "sku": "com.xsolla.minigun_1",
                              "type": "virtual_good"
                            }
                          ]
                        }
                      ],
                      "can_be_bought": true,
                      "vp_rewards": [
                        {
                          "item_id": 175232,
                          "sku": "com.xsolla.value_point_1",
                          "amount": 130,
                          "name": "Value point",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": false
                        },
                        {
                          "item_id": 186321,
                          "sku": "com.xsolla.clan_value_point_1",
                          "amount": 50,
                          "name": "Clan Reward VP 1",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": true
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "available": 3,
                          "recurrent_schedule": {
                            "interval_type": "weekly",
                            "reset_next_date": 1746057600
                          },
                          "total": 5
                        }
                      },
                      "periods": [
                        {
                          "date_from": "2020-08-11T10:00:00+03:00",
                          "date_until": "2020-08-11T20:00:00+03:00"
                        }
                      ]
                    }
                  ]
                },
                "rewards": {
                  "$ref": "#/components/schemas/Promo_code_rewards"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "cart_id": "cart_id",
                  "is_free": false,
                  "items": [
                    {
                      "attributes": [],
                      "description": "Take it, take it all! All of Xsolla's riches in one Mega Booster.",
                      "groups": [
                        {
                          "external_id": "powerups",
                          "name": "Power Ups"
                        }
                      ],
                      "image_url": "https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png",
                      "is_free": false,
                      "name": "Xsolla Booster Mega",
                      "price": {
                        "amount": "50.0000000000000000",
                        "amount_without_discount": "100.0000000000000000",
                        "currency": "USD"
                      },
                      "quantity": 123,
                      "sku": "com.xsolla.booster_mega_1",
                      "type": "virtual_good",
                      "virtual_item_type": "consumable",
                      "virtual_prices": [],
                      "promotions": [
                        {
                          "name": "Bonus promotion",
                          "date_start": "2020-04-15T16:16:00+03:00",
                          "date_end": "2026-04-15T16:16:00+03:00",
                          "discount": {
                            "percent": "50.00"
                          },
                          "bonus": [
                            {
                              "quantity": 1,
                              "name": "Xsolla Minigun",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png",
                              "sku": "com.xsolla.minigun_1",
                              "type": "virtual_good"
                            }
                          ]
                        }
                      ],
                      "can_be_bought": true,
                      "vp_rewards": [
                        {
                          "item_id": 175232,
                          "sku": "com.xsolla.value_point_1",
                          "amount": 130,
                          "name": "Value point",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": false
                        },
                        {
                          "item_id": 186321,
                          "sku": "com.xsolla.clan_value_point_1",
                          "amount": 50,
                          "name": "Clan Reward VP 1",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": true
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "available": 3,
                          "recurrent_schedule": {
                            "interval_type": "weekly",
                            "reset_next_date": 1746057600
                          },
                          "total": 5
                        }
                      },
                      "periods": [
                        {
                          "date_from": "2020-08-11T10:00:00+03:00",
                          "date_until": "2020-08-11T20:00:00+03:00"
                        }
                      ]
                    },
                    {
                      "attributes": [],
                      "description": "Honshu Boshin Wakizashi - Modern Tactical Samurai / Ninja Sword - Hand Forged 1060 Carbon Steel - Full Tang, Fully Functional, Battle Ready - Black TPR, Steel Guard and Pommel.",
                      "groups": [],
                      "image_url": "https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png",
                      "is_free": true,
                      "name": "Sword Xsolla Skin",
                      "price": [],
                      "quantity": 1,
                      "sku": "com.xsolla.swords_1",
                      "type": "virtual_good",
                      "virtual_item_type": "non_consumable",
                      "virtual_prices": [],
                      "promotions": [
                        {
                          "name": "Bonus promotion",
                          "date_start": "2020-04-15T16:16:00+03:00",
                          "date_end": "2026-04-15T16:16:00+03:00",
                          "discount": {
                            "percent": "50.00"
                          },
                          "bonus": [
                            {
                              "quantity": 1,
                              "name": "Xsolla Minigun",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png",
                              "sku": "com.xsolla.minigun_1",
                              "type": "virtual_good"
                            }
                          ]
                        }
                      ],
                      "can_be_bought": true,
                      "vp_rewards": [
                        {
                          "item_id": 175232,
                          "sku": "com.xsolla.value_point_1",
                          "amount": 130,
                          "name": "Value point",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg"
                        },
                        {
                          "item_id": 186321,
                          "sku": "com.xsolla.clan_value_point_1",
                          "amount": 50,
                          "name": "Clan Reward VP 1",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": true
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "available": 3,
                          "recurrent_schedule": {
                            "interval_type": "weekly",
                            "reset_next_date": 1746057600
                          },
                          "total": 5
                        }
                      },
                      "periods": [
                        {
                          "date_from": "2020-08-11T10:00:00+03:00",
                          "date_until": "2020-08-11T20:00:00+03:00"
                        }
                      ]
                    }
                  ],
                  "price": {
                    "amount": "6150.0000000000000000",
                    "amount_without_discount": "12300.0000000000000000",
                    "currency": "USD"
                  },
                  "rewards": {
                    "bonus": [
                      {
                        "item": {
                          "name": "Sword Xsolla Skin",
                          "sku": "com.xsolla.swords_1",
                          "type": "virtual_good",
                          "virtual_item_type": "non_consumable",
                          "description": "Honshu Boshin Wakizashi - Modern Tactical Samurai / Ninja Sword - Hand Forged 1060 Carbon Steel - Full Tang, Fully Functional, Battle Ready - Black TPR, Steel Guard and Pommel.",
                          "image_url": "https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png"
                        },
                        "quantity": 1
                      }
                    ],
                    "discount": {
                      "percent": null
                    },
                    "discounted_items": [
                      {
                        "sku": "com.xsolla.booster_mega_1",
                        "discount": {
                          "percent": "50.00"
                        }
                      }
                    ],
                    "is_selectable": false
                  }
                }
              }
            }
          }
        }
      },
      "Promotions_404-promo-code": {
        "description": "Insira um código promocional válido.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9807]: Enter valid promo code."
                }
              },
              "type": "object"
            }
          }
        }
      },
      "Promotions_200-promo-code-canceled": {
        "description": "Código promocional cancelado com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "cart_id": {
                  "type": "string",
                  "example": "cart_id",
                  "description": "ID do carrinho."
                },
                "price": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "amount": {
                      "type": "string",
                      "default": "50.0000000000000000"
                    },
                    "amount_without_discount": {
                      "type": "string",
                      "default": "100.0000000000000000"
                    },
                    "currency": {
                      "type": "string",
                      "default": "USD"
                    }
                  },
                  "example": {
                    "amount": "6150.0000000000000000",
                    "amount_without_discount": "6150.0000000000000000",
                    "currency": "USD"
                  },
                  "description": "Preço do carrinho."
                },
                "is_free": {
                  "$ref": "#/components/schemas/value-is_free"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku": {
                        "type": "string"
                      },
                      "groups": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "external_id": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "type": {
                        "type": "string"
                      },
                      "virtual_item_type": {
                        "type": "string",
                        "example": "non-consumable",
                        "description": "Tipo de item virtual.\n\nPossíveis valores:\n- `consumable` — Um item que desaparece do inventário após o uso (ex.: munição)..\n- `non_consumable` — Um item que permanece no inventário por um tempo ilimitado.\n- `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"
                        ]
                      },
                      "virtual_prices": {
                        "type": "array"
                      },
                      "description": {
                        "type": "string"
                      },
                      "attributes": {
                        "$ref": "#/components/schemas/client-attributes"
                      },
                      "image_url": {
                        "type": "string"
                      },
                      "quantity": {
                        "type": "integer"
                      },
                      "is_free": {
                        "$ref": "#/components/schemas/value-is_free"
                      },
                      "price": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "Preços dos itens.",
                        "properties": {
                          "amount": {
                            "type": "string",
                            "example": "2.9900",
                            "description": "Preço do item com desconto."
                          },
                          "amount_without_discount": {
                            "type": "string",
                            "example": "2.9900",
                            "description": "Preço do item."
                          },
                          "currency": {
                            "type": "string",
                            "example": "USD",
                            "description": "Moeda do preço do item. Código de três letras de acordo com [a ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."
                          }
                        }
                      },
                      "promotions": {
                        "$ref": "#/components/schemas/Catalog_item_promotions"
                      },
                      "can_be_bought": {
                        "$ref": "#/components/schemas/Can_be_bought"
                      },
                      "vp_rewards": {
                        "$ref": "#/components/schemas/client-item-value-point-reward"
                      },
                      "limits": {
                        "$ref": "#/components/schemas/Catalog_item_limits"
                      },
                      "periods": {
                        "$ref": "#/components/schemas/item-periods"
                      }
                    }
                  },
                  "example": [
                    {
                      "attributes": [],
                      "description": "Take it, take it all! All of Xsolla's riches in one Mega Booster.",
                      "groups": [
                        {
                          "external_id": "powerups",
                          "name": "Power Ups"
                        }
                      ],
                      "image_url": "https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png",
                      "is_free": false,
                      "name": "Xsolla Booster Mega",
                      "price": {
                        "amount": "50.0000000000000000",
                        "amount_without_discount": "100.0000000000000000",
                        "currency": "USD"
                      },
                      "quantity": 123,
                      "sku": "com.xsolla.booster_mega_1",
                      "type": "virtual_good",
                      "virtual_item_type": "consumable",
                      "virtual_prices": [],
                      "promotions": [
                        {
                          "name": "Bonus promotion",
                          "date_start": "2020-04-15T16:16:00+03:00",
                          "date_end": "2026-04-15T16:16:00+03:00",
                          "discount": {
                            "percent": "50.00"
                          },
                          "bonus": [
                            {
                              "quantity": 1,
                              "name": "Xsolla Minigun",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png",
                              "sku": "com.xsolla.minigun_1",
                              "type": "virtual_good"
                            }
                          ]
                        }
                      ],
                      "can_be_bought": true,
                      "vp_rewards": [
                        {
                          "item_id": 175232,
                          "sku": "com.xsolla.value_point_1",
                          "amount": 130,
                          "name": "Value point",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg"
                        },
                        {
                          "item_id": 186321,
                          "sku": "com.xsolla.clan_value_point_1",
                          "amount": 50,
                          "name": "Clan Reward VP 1",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": true
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "available": 3,
                          "recurrent_schedule": {
                            "interval_type": "weekly",
                            "reset_next_date": 1746057600
                          },
                          "total": 5
                        }
                      },
                      "periods": [
                        {
                          "date_from": "2020-08-11T10:00:00+03:00",
                          "date_until": "2020-08-11T20:00:00+03:00"
                        }
                      ]
                    }
                  ]
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "cart_id": "cart_id",
                  "is_free": false,
                  "items": [
                    {
                      "attributes": [],
                      "description": "Take it, take it all! All of Xsolla's riches in one Mega Booster.",
                      "groups": [
                        {
                          "external_id": "powerups",
                          "name": "Power Ups"
                        }
                      ],
                      "image_url": "https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png",
                      "is_free": false,
                      "name": "Xsolla Booster Mega",
                      "price": {
                        "amount": "50.0000000000000000",
                        "amount_without_discount": "100.0000000000000000",
                        "currency": "USD"
                      },
                      "quantity": 123,
                      "sku": "com.xsolla.booster_mega_1",
                      "type": "virtual_good",
                      "virtual_item_type": "consumable",
                      "virtual_prices": [],
                      "promotions": [
                        {
                          "name": "Bonus promotion",
                          "date_start": "2020-04-15T16:16:00+03:00",
                          "date_end": "2026-04-15T16:16:00+03:00",
                          "discount": {
                            "percent": "50.00"
                          },
                          "bonus": [
                            {
                              "quantity": 1,
                              "name": "Xsolla Minigun",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png",
                              "sku": "com.xsolla.minigun_1",
                              "type": "virtual_good"
                            }
                          ]
                        }
                      ],
                      "can_be_bought": true,
                      "vp_rewards": [
                        {
                          "item_id": 175232,
                          "sku": "com.xsolla.value_point_1",
                          "amount": 130,
                          "name": "Value point",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg"
                        },
                        {
                          "item_id": 186321,
                          "sku": "com.xsolla.clan_value_point_1",
                          "amount": 50,
                          "name": "Clan Reward VP 1",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": true
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "available": 3,
                          "recurrent_schedule": {
                            "interval_type": "weekly",
                            "reset_next_date": 1746057600
                          },
                          "total": 5
                        }
                      },
                      "periods": [
                        {
                          "date_from": "2020-08-11T10:00:00+03:00",
                          "date_until": "2020-08-11T20:00:00+03:00"
                        }
                      ]
                    }
                  ],
                  "price": {
                    "amount": "6150.0000000000000000",
                    "amount_without_discount": "6150.0000000000000000",
                    "currency": "USD"
                  }
                }
              }
            }
          }
        }
      },
      "Promotions_422-cancel-promo-code": {
        "description": "Solicitação inválida.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1102
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1102]: Unprocessable Entity. The property `id` is required"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 1102,
                  "errorMessage": "[0401-1102]: Unprocessable Entity. The property `id` is required"
                }
              }
            }
          }
        }
      },
      "Promotions_200-promocode-rewards": {
        "description": "Lista de recompensas do código promocional recebida com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Promo_code_rewards"
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-get-promocode-rewards"
              }
            }
          }
        }
      },
      "Promotions_200-get-promocodes": {
        "description": "Lista de códigos promocionais recebida com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Promotions_200-get-promocode-promotion-model"
                  }
                },
                "total_promotions_count": {
                  "$ref": "#/components/schemas/total_promotions_count"
                },
                "active_promotions_count": {
                  "$ref": "#/components/schemas/active_promotions_count"
                },
                "inactive_promotions_count": {
                  "$ref": "#/components/schemas/inactive_promotions_count"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-admin-promocodes"
              }
            }
          }
        }
      },
      "Promotions_200-promocode-code-list": {
        "description": "Lista de códigos para um código promocional recebida com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "codes": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "$ref": "#/components/schemas/Promotions_coupon_code"
                      }
                    }
                  }
                },
                "total_count": {
                  "type": "number",
                  "description": "Número total de códigos para um código promocional."
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-coupon-code-list"
              }
            }
          }
        }
      },
      "Promotions_200-get-item-promotions": {
        "description": "Lista de promoções de itens recebida com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "promotions": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "ID de promoção. Identificador exclusivo da promoção dentro do projeto."
                      },
                      "promotion_periods": {
                        "$ref": "#/components/schemas/promotion_periods"
                      },
                      "is_enabled": {
                        "$ref": "#/components/schemas/Promotions_is_enabled"
                      },
                      "name": {
                        "type": "object",
                        "description": "Nome da promoção. Deve conter pares chave/valor, onde chave é a localidade com o formato \"^[a-z]{2}-[A-Z]{2}$\", e o valor é uma cadeia de caracteres.",
                        "additionalProperties": {
                          "type": "string"
                        },
                        "example": {
                          "en-US": "Promotion",
                          "ru-RU": "Акция"
                        }
                      },
                      "discount": {
                        "type": "object",
                        "properties": {
                          "percent": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Percentual de desconto.\nO preço do item será diminuído usando um valor que foi calculado usando essa porcentagem.",
                            "default": "10.00"
                          }
                        }
                      },
                      "items": {
                        "type": [
                          "array",
                          "null"
                        ],
                        "items": {
                          "description": "A lista de itens que serão afetados pelo desconto.",
                          "type": "object",
                          "properties": {
                            "sku": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "SKU do item.",
                              "default": "elven_sword"
                            }
                          }
                        }
                      },
                      "attribute_conditions": {
                        "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-get"
                      },
                      "limits": {
                        "$ref": "#/components/schemas/Promotions_promotion_limits_response"
                      },
                      "excluded_promotions": {
                        "$ref": "#/components/schemas/excluded_promotions"
                      },
                      "price_conditions": {
                        "$ref": "#/components/schemas/price_conditions_discount"
                      }
                    }
                  }
                },
                "total_promotions_count": {
                  "$ref": "#/components/schemas/total_promotions_count"
                },
                "active_promotions_count": {
                  "$ref": "#/components/schemas/active_promotions_count"
                },
                "inactive_promotions_count": {
                  "$ref": "#/components/schemas/inactive_promotions_count"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "promotions": [
                    {
                      "id": 1,
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        },
                        {
                          "date_from": "2020-05-15T18:16:00+05:00",
                          "date_until": "2020-05-25T18:16:00+05:00"
                        }
                      ],
                      "is_enabled": true,
                      "discount": {
                        "percent": "20.00"
                      },
                      "items": [
                        {
                          "sku": "com.xsolla.elven_sword_1"
                        }
                      ],
                      "name": {
                        "en-US": "Promotion",
                        "ru-RU": "Акция"
                      },
                      "limits": {
                        "per_user": null,
                        "per_item": null,
                        "recurrent_schedule": null
                      }
                    },
                    {
                      "id": 2,
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "is_enabled": true,
                      "discount": {
                        "percent": "10.00"
                      },
                      "items": [
                        {
                          "sku": "com.xsolla.elven_helmet_1"
                        },
                        {
                          "sku": "com.xsolla.elven_armor_1"
                        }
                      ],
                      "name": {
                        "en-US": "Promotion",
                        "ru-RU": "Акция"
                      },
                      "limits": {
                        "per_user": {
                          "total": 10
                        },
                        "per_item": null,
                        "recurrent_schedule": {
                          "per_user": {
                            "interval_type": "daily",
                            "time": "11:00:00+08:00",
                            "reset_next_date": 1677553200,
                            "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
                            "displayable_reset_next_date": "2023-02-28T11:00:00+08:00"
                          }
                        }
                      },
                      "excluded_promotions": [
                        1,
                        3
                      ]
                    },
                    {
                      "id": 3,
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "is_enabled": true,
                      "discount": {
                        "percent": "10.00"
                      },
                      "items": [
                        {
                          "sku": "com.xsolla.elven_helmet_2"
                        },
                        {
                          "sku": "com.xsolla.elven_armor_2"
                        }
                      ],
                      "name": {
                        "en-US": "Promotion",
                        "ru-RU": "Акция"
                      },
                      "limits": {
                        "per_user": {
                          "total": 10
                        },
                        "per_item": null,
                        "recurrent_schedule": {
                          "per_user": {
                            "interval_type": "daily",
                            "time": "11:00:00+08:00",
                            "reset_next_date": 1677553200,
                            "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
                            "displayable_reset_next_date": "2023-02-28T11:00:00+08:00"
                          }
                        }
                      },
                      "price_conditions": [
                        {
                          "operator": "gt",
                          "value": "10.0000"
                        },
                        {
                          "operator": "lt",
                          "value": "20.0000"
                        }
                      ]
                    },
                    {
                      "id": 4,
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "is_enabled": true,
                      "discount": {
                        "percent": "10.00"
                      },
                      "items": null,
                      "name": {
                        "en-US": "Promotion",
                        "ru-RU": "Акция"
                      },
                      "limits": {
                        "per_user": {
                          "total": 10
                        },
                        "per_item": null,
                        "recurrent_schedule": {
                          "per_user": {
                            "interval_type": "daily",
                            "time": "11:00:00+08:00",
                            "reset_next_date": 1677553200,
                            "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
                            "displayable_reset_next_date": "2023-02-28T11:00:00+08:00"
                          }
                        }
                      },
                      "price_conditions": [
                        {
                          "operator": "lt",
                          "value": "20.0000"
                        }
                      ]
                    }
                  ],
                  "total_promotions_count": 4,
                  "active_promotions_count": 4,
                  "inactive_promotions_count": 0
                }
              }
            }
          }
        }
      },
      "Promotions_201-create-promotion": {
        "description": "Promoção criada com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "promotion_id": {
                  "type": "integer",
                  "description": "ID de promoção. Identificador exclusivo da promoção dentro do projeto."
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "promotion_id": 2384756
                }
              }
            }
          }
        }
      },
      "Promotions_422-admin-promotion-missed-items-property": {
        "description": "Solicitação inválida.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1102
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1102]:  Unprocessable Entity. The property `items` is required"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 1102,
                  "errorMessage": "[0401-1102]: Unprocessable Entity. The property `items` is required",
                  "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "Promotions_404-admin-promotion": {
        "description": "Promoção não encontrada. Certifique-se de que `promotion_id` está correto.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9502
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9502]: Can not find promotion with ID = 111425 in project 59080"
                }
              },
              "type": "object"
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 404,
                  "errorCode": 9502,
                  "errorMessage": "[0401-9502]: Can not find promotion with ID = 111425 in project 59080"
                }
              }
            }
          }
        }
      },
      "Promotions_200-get-bonus-promotions": {
        "description": "Lista de promoções bônus recebida com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "promotions": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Promotions_200-get-bonus-promotion-model"
                  }
                },
                "total_promotions_count": {
                  "$ref": "#/components/schemas/total_promotions_count"
                },
                "active_promotions_count": {
                  "$ref": "#/components/schemas/active_promotions_count"
                },
                "inactive_promotions_count": {
                  "$ref": "#/components/schemas/inactive_promotions_count"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "promotions": [
                    {
                      "id": 1,
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        },
                        {
                          "date_from": "2020-05-15T18:16:00+05:00",
                          "date_until": "2020-05-25T18:16:00+05:00"
                        }
                      ],
                      "name": {
                        "en-US": "New Year Bonus",
                        "de-DE": "Neujahrsbonus"
                      },
                      "is_enabled": true,
                      "condition": [
                        {
                          "sku": "com.xsolla.elven_boots_1"
                        },
                        {
                          "sku": "com.xsolla.elven_knife_1"
                        }
                      ],
                      "bonus": [
                        {
                          "sku": "com.xsolla.elven_sword_1",
                          "quantity": 1
                        },
                        {
                          "sku": "com.xsolla.elven_shield_1",
                          "quantity": 2
                        },
                        {
                          "sku": "com.xsolla.elven_gloves_1",
                          "quantity": 2
                        }
                      ],
                      "limits": {
                        "per_user": null,
                        "per_item": null,
                        "recurrent_schedule": null
                      }
                    },
                    {
                      "id": 2,
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "name": {
                        "en-US": "Summer season bonus",
                        "de-DE": "Sommersaison Bonus"
                      },
                      "is_enabled": true,
                      "condition": null,
                      "bonus": [
                        {
                          "sku": "com.xsolla.diamonds_1",
                          "quantity": 100
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "total": 10
                        },
                        "per_item": null,
                        "recurrent_schedule": {
                          "per_user": {
                            "interval_type": "daily",
                            "time": "11:00:00+08:00",
                            "reset_next_date": 1677553200,
                            "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
                            "displayable_reset_next_date": "2023-02-28T11:00:00+08:00"
                          }
                        }
                      },
                      "price_conditions": [
                        {
                          "operator": "gt",
                          "value": "10.0000"
                        },
                        {
                          "operator": "lt",
                          "value": "50.0000"
                        }
                      ],
                      "excluded_promotions": [
                        1
                      ]
                    }
                  ],
                  "total_promotions_count": 2,
                  "active_promotions_count": 2,
                  "inactive_promotions_count": 0
                }
              }
            }
          }
        }
      },
      "Promotions_422-admin-promotion-missed-bonus-property": {
        "description": "Solicitação inválida.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1102
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1102]:  Unprocessable Entity. The property `bonus` is required"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 1102,
                  "errorMessage": "[0401-1102]: Unprocessable Entity. The property `bonus` is required",
                  "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "Promotions_200-admin-get-bonus-promotion": {
        "description": "Promoção bônus recebida com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Promotions_200-get-bonus-promotion-model"
            },
            "examples": {
              "response": {
                "value": {
                  "id": 1,
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "is_enabled": true,
                  "condition": [
                    {
                      "sku": "com.xsolla.elven_boots_1"
                    },
                    {
                      "sku": "com.xsolla.elven_knife_1"
                    }
                  ],
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_1",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_1",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_1",
                      "quantity": 2
                    }
                  ],
                  "limits": {
                    "per_user": {
                      "total": 10
                    },
                    "per_item": null,
                    "recurrent_schedule": {
                      "per_user": {
                        "interval_type": "daily",
                        "time": "11:00:00+08:00",
                        "reset_next_date": 1677553200,
                        "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
                        "displayable_reset_next_date": "2023-02-28T11:00:00+08:00"
                      }
                    }
                  },
                  "excluded_promotions": [
                    23,
                    45
                  ],
                  "price_conditions": [
                    {
                      "operator": "gt",
                      "value": "10.0000"
                    },
                    {
                      "operator": "lt",
                      "value": "50.0000"
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_200-verify-promo-code": {
        "description": "Informações sobre o código.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "Tipo de código: `promocode`/`coupon`."
                },
                "code": {
                  "$ref": "#/components/schemas/Promotions_coupon_code"
                },
                "rewards": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/Coupon_rewards"
                    },
                    {
                      "$ref": "#/components/schemas/Promo_code_rewards_verify"
                    }
                  ]
                }
              }
            },
            "examples": {
              "coupon info": {
                "value": {
                  "type": "coupon",
                  "code": "WINTER2023",
                  "rewards": {
                    "bonus": [
                      {
                        "item": {
                          "sku": "com.xsolla.game_1",
                          "name": "Game name",
                          "type": "unit",
                          "description": "Game description",
                          "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                          "unit_items": [
                            {
                              "sku": "com.xsolla.game_key_01",
                              "name": "Game name",
                              "type": "game_key",
                              "is_free": false,
                              "drm_name": "Steam",
                              "drm_sku": "steam_key_1"
                            },
                            {
                              "sku": "com.xsolla.game_key_02",
                              "name": "Game name",
                              "type": "game_key",
                              "drm_name": "Origin",
                              "drm_sku": "origin_key_1"
                            }
                          ]
                        },
                        "quantity": 1
                      },
                      {
                        "item": {
                          "sku": "com.xsolla.game_2",
                          "name": "Game name",
                          "type": "unit",
                          "description": "Game description",
                          "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                          "unit_items": [
                            {
                              "sku": "com.xsolla.game_key_01",
                              "type": "game_key",
                              "name": "Game name",
                              "drm_name": "Steam",
                              "drm_sku": "steam_key_1"
                            }
                          ]
                        },
                        "quantity": 2
                      }
                    ],
                    "is_selectable": true
                  }
                }
              },
              "promocode info": {
                "value": {
                  "type": "promocode",
                  "code": "SUMMER2023",
                  "rewards": {
                    "bonus": [
                      {
                        "item": {
                          "sku": "com.xsolla.game_2",
                          "name": "Game name",
                          "type": "unit",
                          "description": "Game description",
                          "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                          "unit_items": [
                            {
                              "sku": "com.xsolla.game_key_01",
                              "type": "game_key",
                              "name": "Game name",
                              "drm_name": "Steam",
                              "drm_sku": "steam_key_1"
                            }
                          ]
                        },
                        "quantity": 2
                      }
                    ],
                    "discount": {
                      "percent": "10.00"
                    },
                    "discounted_items": [
                      {
                        "sku": "com.xsolla.elven_sword_1",
                        "name": "Elven sword",
                        "type": "virtual_good",
                        "description": "sword",
                        "image_url": null,
                        "discount": {
                          "percent": "10.00"
                        }
                      }
                    ],
                    "is_selectable": true
                  }
                }
              }
            }
          }
        }
      },
      "Promotions_404-verify-promo-code": {
        "description": "Código não encontrado. Verifique se o valor `code` está correto.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9811
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9811]: Code not found."
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "Promotions_422-verify-promo-code": {
        "description": "Promoção de código inválida.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "integer"
                },
                "statusCode": {
                  "type": "integer"
                },
                "errorMessage": {
                  "type": "string"
                }
              }
            },
            "examples": {
              "code redemption limit": {
                "value": {
                  "errorCode": 9804,
                  "statusCode": 422,
                  "errorMessage": "[0401-9804]: You have reached the coupon redemption limit."
                }
              },
              "regionally restricted": {
                "value": {
                  "errorCode": 9808,
                  "statusCode": 422,
                  "errorMessage": "[0401-9808]: Coupon is not available in your region."
                }
              }
            }
          }
        }
      },
      "Promotions_200-get-unique-catalog-offers": {
        "description": "A lista de cupons foi recebida com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Promotions_200-get-unique-catalog-offer-promotion-model"
                  }
                },
                "total_promotions_count": {
                  "$ref": "#/components/schemas/total_promotions_count"
                },
                "active_promotions_count": {
                  "$ref": "#/components/schemas/active_promotions_count"
                },
                "inactive_promotions_count": {
                  "$ref": "#/components/schemas/inactive_promotions_count"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-admin-unique-catalog-offers"
              }
            }
          }
        }
      },
      "Promotions_200-unique-catalog-offer-code-list": {
        "description": "A lista de códigos para uma oferta de catálogo exclusiva foi recebida com êxito.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "codes": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "$ref": "#/components/schemas/Promotions_coupon_code"
                      }
                    }
                  }
                },
                "total_count": {
                  "type": "number",
                  "description": "Número total de códigos de ofertas de catálogo exclusivas."
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-coupon-code-list"
              }
            }
          }
        }
      },
      "200-admin-get-user-promo-code-limits": {
        "description": "Limites de código promocional recebidos com sucesso para um usuário.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/User-limit-promo-code"
            },
            "examples": {
              "response": {
                "value": {
                  "per_user": {
                    "total": 10,
                    "available": 9
                  }
                }
              }
            }
          }
        }
      },
      "Common_401-invalid-basic-auth": {
        "description": "As credenciais de autenticação básica não foram fornecidas ou estão incorretas. Certifique-se de usar a autenticação básica e verifique se as suas credenciais estão corretas.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 401
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1020
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1020]: Error in Authentication method occurred"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 401,
                  "errorCode": 1020,
                  "errorMessage": "[0401-1020]: Error in Authentication method occurred"
                }
              }
            }
          }
        }
      },
      "200-admin-get-user-coupon-limits": {
        "description": "Limites de cupom recebidos com sucesso para um usuário.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/User-limit-coupon"
            },
            "examples": {
              "response": {
                "value": {
                  "per_user": {
                    "total": 10,
                    "available": 9
                  }
                }
              }
            }
          }
        }
      },
      "200-admin-get-code-promo-code-limits": {
        "description": "Limites de código promocional recebidos com sucesso para um código.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "promotion_id": {
                  "type": "integer",
                  "description": "ID de promoção. Identificador exclusivo da promoção dentro do projeto."
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Code-limit-promo-code"
                  }
                },
                "total_items_count": {
                  "type": "number",
                  "description": "Número total de códigos."
                },
                "has_more": {
                  "type": "boolean",
                  "description": "Se existir outra página com códigos."
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/code-limit"
              }
            }
          }
        }
      },
      "200-admin-get-code-coupon-limits": {
        "description": "Limites de cupom recebidos com sucesso para um código.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "promotion_id": {
                  "type": "integer",
                  "description": "ID de promoção. Identificador exclusivo da promoção dentro do projeto."
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Code-limit-promo-code"
                  }
                },
                "total_items_count": {
                  "type": "number",
                  "description": "Número total de códigos."
                },
                "has_more": {
                  "type": "boolean",
                  "description": "Se existir outra página com códigos."
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/code-limit"
              }
            }
          }
        }
      },
      "Common_401-complex": {
        "description": "Autenticação não aprovada ou errada. Verifique se você usou a autenticação ou credenciais corretas.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 401
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1501
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1501]: Authorization failed: Authorization header not sent"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              },
              "type": "object"
            },
            "examples": {
              "Authorization header not sent": {
                "$ref": "#/components/examples/401-complex-auth-header-not-found"
              },
              "Incorrect credentials": {
                "$ref": "#/components/examples/401-complex-auth-incorrect-credentials"
              }
            }
          }
        }
      },
      "403-auth-header-not-sent": {
        "description": "Cabeçalho de autorização não enviado.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 403
                },
                "errorCode": {
                  "type": "integer",
                  "example": 0
                },
                "errorMessage": {
                  "type": "string",
                  "example": "Authorization header not sent."
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 403,
                  "errorCode": 0,
                  "errorMessage": "Authorization header not sent"
                }
              }
            }
          }
        }
      },
      "Common_422-body-validation": {
        "description": "Erro de validação de solicitação.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/422-invalid-request"
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 1102,
                  "errorMessage": "[0401-1102]: Unprocessable Entity. The property `name` is required",
                  "transactionId": "da145238620011eb8e24fe6913ff226a"
                }
              }
            }
          }
        }
      },
      "200-admin-get-user-promotion-limits": {
        "description": "Limites de promoção para um usuário foram recebidos com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/User-limit-promotion"
            },
            "examples": {
              "response": {
                "value": {
                  "per_user": {
                    "total": 10,
                    "available": 9
                  }
                }
              }
            }
          }
        }
      },
      "200-admin-get-value-points": {
        "description": "A lista de pontos de valor foi recebida com sucesso.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-value-points-reward-chain_admin_get-value-point-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Value-points-item-model"
                  }
                }
              }
            }
          }
        }
      },
      "201-admin-create-value-point": {
        "description": "O ponto de valor foi criado com sucesso.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "value": {
                  "sku": "com.xsolla.item_new",
                  "item_id": 10
                }
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "sku": {
                  "type": "string",
                  "example": "new-sku"
                },
                "item_id": {
                  "type": "integer",
                  "example": 10
                }
              }
            }
          }
        }
      },
      "422-admin-create-update-rc-vp-invalid-request": {
        "description": "Solicitação inválida.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/422-rc-vp-invalid-request"
            },
            "examples": {
              "The property `sku` is required": {
                "$ref": "#/components/examples/422-property-sku-is-required"
              }
            }
          }
        }
      },
      "200-admin-get-value-point": {
        "description": "O ponto de valor especificado foi recebido com sucesso.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-value-points-reward-chain_admin_get-value-point"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/Value-point-item-model"
            }
          }
        }
      },
      "200-admin-get-list-value-point-rewards": {
        "description": "A lista de itens com a recompensa de ponto de valor foi recebida com sucesso.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-value-points-rewards-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/admin-item-value-point-reward"
                  }
                }
              }
            }
          }
        }
      },
      "sellable-item-by-sku_404": {
        "description": "Item não encontrado. Certifique-se de que o `project_id` e o `sku` estão corretos.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-4001]: Item with sku = 'electric_shiel' not found"
                }
              }
            }
          }
        }
      },
      "200-client-get-reward-chains-list": {
        "description": "A cadeia de recompensas do usuário foi recuperada com sucesso.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-client-get-reward-chains-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "has_more": {
                  "type": "boolean",
                  "example": true,
                  "description": "Usado como um indicador de que há mais páginas."
                },
                "total_items_count": {
                  "type": "integer",
                  "example": 10,
                  "description": "Número total de cadeias de recompensa no sistema."
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/client-reward-chain-item-model"
                  }
                }
              }
            }
          }
        }
      },
      "200-client-get-user-reward-chain-balance": {
        "description": "O saldo de pontos de valor do usuário foi recuperado com sucesso.",
        "content": {
          "application/json": {
            "examples": {
              "common": {
                "$ref": "#/components/examples/200-client-get-user-reward-chain-balance"
              },
              "clan": {
                "$ref": "#/components/examples/200-client-get-user-clan-reward-chain-balance"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "sku": {
                  "$ref": "#/components/schemas/value-point-sku"
                },
                "name": {
                  "$ref": "#/components/schemas/value-point-name"
                },
                "image_url": {
                  "$ref": "#/components/schemas/Common_admin-image_url"
                },
                "description": {
                  "$ref": "#/components/schemas/value-point-description"
                },
                "long_description": {
                  "$ref": "#/components/schemas/value-point-long-description"
                },
                "amount": {
                  "type": "integer",
                  "description": "Quantidade de pontos de valor."
                },
                "is_clan": {
                  "$ref": "#/components/schemas/is_clan"
                }
              }
            }
          }
        }
      },
      "404-reward-chain-step-not-found": {
        "description": "Etapa da cadeia de recompensa não encontrada.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9911
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9911]: Reward chain step not found."
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 404,
                  "errorCode": 9911,
                  "errorMessage": "[0401-9911]: Reward chain step not found."
                }
              }
            }
          }
        }
      },
      "422-reward-chain-step-reward-can-not-claimed": {
        "description": "Não é possível reivindicar a recompensa da etapa.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9912
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9912]: Can't claim the step reward."
                }
              }
            },
            "examples": {
              "Reward chain step reward already claimed": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 9912,
                  "errorMessage": "[0401-9912]: Reward already claimed."
                }
              },
              "Not enough VP to claim reward chain step reward": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 9913,
                  "errorMessage": "[0401-9913]: Not enough value points to claim step reward."
                }
              }
            }
          }
        }
      },
      "200-client-update-user-clan": {
        "description": "O clã do usuário foi atualizado com sucesso.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-client-update-user-clan"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "reward": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku": {
                        "$ref": "#/components/schemas/sku"
                      },
                      "name": {
                        "type": "string",
                        "example": "Super box",
                        "description": "Nome do item."
                      },
                      "type": {
                        "type": "string",
                        "example": "bundle",
                        "description": "Tipo de item."
                      },
                      "description": {
                        "type": "string",
                        "example": "Super box with items",
                        "description": "Descrição do item."
                      },
                      "image_url": {
                        "$ref": "#/components/schemas/Common_admin-image_url"
                      },
                      "quantity": {
                        "type": "integer",
                        "example": 2,
                        "description": "Quantidade do item."
                      },
                      "bundle_type": {
                        "type": "string",
                        "description": "Tipo de conjunto. Retornado se um tipo de item for um conjunto.",
                        "enum": [
                          "standard",
                          "virtual_currency_package"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "200-admin-get-list-reward-chains": {
        "description": "A lista de cadeias de recompensa foi recebida com sucesso.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-reward-chain-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "has_more": {
                  "$ref": "#/components/schemas/Pagination_has-more"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/admin-get-reward-chain-item-basic-model"
                      },
                      {
                        "$ref": "#/components/schemas/admin-get-reward-chain-item-clan-basic-model"
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      },
      "201-admin-create-reward-chain": {
        "description": "A cadeia de recompensas foi criada com sucesso.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "value": {
                  "reward_chain_id": 10
                }
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "reward_chain_id": {
                  "type": "integer",
                  "example": 10
                }
              }
            }
          }
        }
      },
      "200-admin-get-reward-chain": {
        "description": "A cadeia de recompensa especificada foi recebida com sucesso.",
        "content": {
          "application/json": {
            "examples": {
              "common": {
                "$ref": "#/components/examples/200-reward-chain"
              },
              "clan": {
                "$ref": "#/components/examples/200-clan-reward-chain"
              }
            },
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/admin-get-reward-chain-item-full-model"
                },
                {
                  "$ref": "#/components/schemas/admin-get-reward-chain-item-clan-full-model"
                }
              ]
            }
          }
        }
      },
      "404-admin-reward-chain-not-found": {
        "description": "Cadeia de recompensa não encontrada.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-4001]: Reward chain not found"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 404,
                  "errorCode": 9901,
                  "errorMessage": "[0401-4001]: Reward chain not found"
                }
              }
            }
          }
        }
      },
      "204-admin-update-reward-chain": {
        "description": "Cadeia de recompensas atualizada com sucesso.",
        "content": {}
      },
      "204-admin-delete-reward-chain": {
        "description": "Cadeia de recompensas excluída com sucesso.",
        "content": {}
      },
      "204-admin-toggle-reward-chain": {
        "description": "A cadeia de recompensas foi desativada/ativada.",
        "content": {}
      },
      "204-admin-reset-reward-chain": {
        "description": "A cadeia de recompensas foi redefinida.",
        "content": {}
      },
      "200-admin-get-list-daily-chains": {
        "description": "A lista de recompensas diárias foi recuperada com sucesso.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-admin-daily-chain-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "has_more": {
                  "$ref": "#/components/schemas/Pagination_has-more"
                },
                "total_items_count": {
                  "type": "integer",
                  "example": 3,
                  "description": "Número total de recompensas diárias."
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/admin-daily-chain-short-model"
                  }
                }
              }
            }
          }
        }
      },
      "201-admin-create-daily-chain": {
        "description": "A recompensa diária foi criada com sucesso.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "value": {
                  "daily_chain_id": 10
                }
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "daily_chain_id": {
                  "type": "integer",
                  "example": 10
                }
              }
            }
          }
        }
      },
      "422-admin-create-error-list": {
        "description": "Erros de configuração de recompensa diária incorreta.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/daily-chain-error-model"
            },
            "examples": {
              "too-many-steps-error": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-too-many-steps"
              },
              "incorrect-steps-order-error": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-incorrect-steps-order"
              },
              "item-limit-exceeded": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-item-limit-exceeded"
              },
              "incorrect-items": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-incorrect-items"
              },
              "invalid-dates": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-invalid-dates"
              },
              "incorrect-period": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-incorrect-period"
              }
            }
          }
        }
      },
      "200-admin-get-daily-chain": {
        "description": "Os dados de recompensa diária foram recuperados com sucesso.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-admin-daily-chain"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/admin-daily-chain-long-model"
            }
          }
        }
      },
      "404-daily-chain-not-found": {
        "description": "Recompensa diária não encontrada.",
        "content": {
          "application/json": {
            "examples": {
              "not-found": {
                "$ref": "#/components/examples/404-daily-chain-not-found"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/daily-chain-error-model"
            }
          }
        }
      },
      "422-admin-update-error-list": {
        "description": "Erros de configuração de recompensa diária incorreta.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/daily-chain-error-model"
            },
            "examples": {
              "too-many-steps-error": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-too-many-steps"
              },
              "incorrect-steps-order-error": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-incorrect-steps-order"
              },
              "item-limit-exceeded": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-item-limit-exceeded"
              },
              "incorrect-items": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-incorrect-items"
              },
              "invalid-dates": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-invalid-dates"
              },
              "incorrect-period": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-incorrect-period"
              },
              "invalid-chain-step-ids": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-invalid-chain-step-ids"
              },
              "chain-id-mismatch": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-chain-id-mismatch"
              },
              "chain-step-ids-duplication": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-duplicate-step-ids"
              },
              "active-daily-chain": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-activated"
              }
            }
          }
        }
      },
      "200-client-get-daily-chains-list": {
        "description": "As recompensas diárias do usuário foram recuperadas com sucesso.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-client-daily-chain-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "has_more": {
                  "type": "boolean",
                  "example": true,
                  "description": "Usado como um indicador de que há mais páginas."
                },
                "total_items_count": {
                  "type": "integer",
                  "example": 3,
                  "description": "Número total de recompensas diárias."
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/client-daily-chain-model"
                  }
                }
              }
            }
          }
        }
      },
      "401-client-auth-error": {
        "description": "Autenticação não aprovada ou errada.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 401
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1501
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1501]: Authorization failed: Provide authorization"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 401,
                  "errorCode": 1501,
                  "errorMessage": "[0401-1501]: Authorization failed: Provide authorization"
                }
              }
            }
          }
        }
      },
      "404-daily-chain-step-not-found": {
        "description": "Recompensa diária ou etapa de recompensa diária não encontrada.",
        "content": {
          "application/json": {
            "examples": {
              "not-found": {
                "$ref": "#/components/examples/404-daily-chain-step-not-found"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/daily-chain-error-model"
            }
          }
        }
      },
      "200-client-get-offer-chains-list": {
        "description": "A lista de cadeias de ofertas foi recebida com êxito.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-client-offer-chain-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "has_more": {
                  "type": "boolean",
                  "example": true,
                  "description": "Indica se há mais páginas disponíveis."
                },
                "total_items_count": {
                  "type": "integer",
                  "example": 10,
                  "description": "Número total de cadeias de ofertas disponíveis."
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/client-offer-chain-model"
                  }
                }
              }
            }
          }
        }
      },
      "404-offer-chain-not-found": {
        "description": "A cadeia de ofertas não foi encontrada.",
        "content": {
          "application/json": {
            "examples": {
              "not-found": {
                "$ref": "#/components/examples/404-offer-chain-not-found"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/offer-chain-error-model"
            }
          }
        }
      },
      "404-offer-chain-step-not-found": {
        "description": "A cadeia de ofertas ou a etapa não foram encontradas.",
        "content": {
          "application/json": {
            "examples": {
              "not-found": {
                "$ref": "#/components/examples/404-offer-chain-step-not-found"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/offer-chain-error-model"
            }
          }
        }
      },
      "Cart-Payment_200-order-created": {
        "description": "Pedido criada com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "order_id": {
                  "type": "integer",
                  "description": "ID de pedido."
                },
                "token": {
                  "type": "string",
                  "description": "Token de pagamento."
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "order_id": 641,
                  "token": "f4puMEFFDZcx9nv5HoNHIkPe9qghvBQo"
                }
              }
            }
          }
        }
      },
      "200-admin-get-list-offer-chains": {
        "description": "A lista de cadeias de ofertas foi recuperada com êxito.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-admin-offer-chain-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "has_more": {
                  "$ref": "#/components/schemas/Pagination_has-more"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/admin-offer-chain-short-model"
                  }
                }
              }
            }
          }
        }
      },
      "201-admin-create-offer-chain": {
        "description": "A cadeia de ofertas foi criada com sucesso.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "value": {
                  "offer_chain_id": 10
                }
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "offer_chain_id": {
                  "type": "integer",
                  "example": 10
                }
              }
            }
          }
        }
      },
      "422-create-error-list": {
        "description": "Configuração de cadeia de ofertas inválida.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/offer-chain-error-model"
            },
            "examples": {
              "too-many-steps-error": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-too-many-steps"
              },
              "incorrect-steps-order-error": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-incorrect-steps-order"
              },
              "item-limit-exceeded": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-item-limit-exceeded"
              },
              "incorrect-items": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-incorrect-items"
              },
              "invalid-dates": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-invalid-dates"
              },
              "incorrect-period": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-incorrect-period"
              }
            }
          }
        }
      },
      "200-admin-get-offer-chain": {
        "description": "Os dados da cadeia de ofertas foram recuperados com êxito.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-admin-offer-chain"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/admin-offer-chain-long-model"
            }
          }
        }
      },
      "422-update-error-list": {
        "description": "Configuração de cadeia de ofertas inválida.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/offer-chain-error-model"
            },
            "examples": {
              "too-many-steps-error": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-too-many-steps"
              },
              "incorrect-steps-order-error": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-incorrect-steps-order"
              },
              "item-limit-exceeded": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-item-limit-exceeded"
              },
              "incorrect-items": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-incorrect-items"
              },
              "invalid-dates": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-invalid-dates"
              },
              "incorrect-period": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-incorrect-period"
              },
              "invalid-chain-step-ids": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-invalid-chain-step-ids"
              },
              "chain-id-mismatch": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-chain-id-mismatch"
              },
              "chain-step-ids-duplication": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-duplicate-step-ids"
              },
              "active-offer-chain": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-activated"
              }
            }
          }
        }
      },
      "Upsell-404-item-not-found": {
        "description": "Item não encontrado.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-4001]: Items weren't found: sku1, sku2"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 404,
                  "errorCode": 9901,
                  "errorMessage": "[0401-4001]: Items weren't found: sku1, sku2"
                }
              }
            }
          }
        }
      },
      "Upsell-422-invalid-request": {
        "description": "Solicitação inválida.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Upsell-422-invalid-request"
            }
          }
        }
      },
      "Upsell-200-get-client-list": {
        "description": "A lista de itens de vendas cruzadas foi recebida com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Upsell_item-list"
            },
            "examples": {
              "response": {
                "value": {
                  "has_more": true,
                  "items": [
                    {
                      "sku": "com.xsolla.big_rocket_1",
                      "name": "Big Rocket",
                      "groups": [
                        {
                          "external_id": "accessory",
                          "name": {
                            "en": "accessory"
                          }
                        }
                      ],
                      "attributes": [
                        {
                          "external_id": "stack_size",
                          "name": {
                            "en": "Quantity of items in the upsell set"
                          },
                          "values": [
                            {
                              "external_id": "size_e3364991f92e751689a68b96598a5a5a84010b85",
                              "value": "5"
                            }
                          ]
                        }
                      ],
                      "type": "virtual_good",
                      "description": "Big Rocket - description",
                      "image_url": "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png",
                      "is_free": false,
                      "price": {
                        "amount": "100.99",
                        "amount_without_discount": "100.99",
                        "currency": "USD"
                      },
                      "virtual_prices": [
                        {
                          "amount": 100,
                          "sku": "com.xsolla.vc_1",
                          "is_default": true,
                          "amount_without_discount": 100,
                          "image_url": "http://image.png",
                          "name": "SHOTGUN FOR TRUE RAIDERS",
                          "type": "virtual_currency",
                          "description": "description"
                        }
                      ],
                      "can_be_bought": true,
                      "virtual_item_type": "non_renewing_subscription",
                      "promotions": [
                        {
                          "name": "Bonus promotion",
                          "date_start": "2020-04-15T16:16:00+03:00",
                          "date_end": "2026-04-15T16:16:00+03:00",
                          "discount": null,
                          "bonus": [
                            {
                              "quantity": 1,
                              "name": "Xsolla Minigun",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png",
                              "sku": "com.xsolla.minigun_1",
                              "type": "virtual_good"
                            },
                            {
                              "quantity": 1,
                              "sku": "com.xsolla.phys_good_1",
                              "type": "physical_good"
                            },
                            {
                              "quantity": 1,
                              "name": "Super Lootbox with items",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/9676f06265375087e607cb79c5283688.png",
                              "sku": "com.xsolla.SuperLootboxBundle_1",
                              "type": "bundle",
                              "bundle_type": "standard"
                            }
                          ]
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "total": 5,
                          "available": 3,
                          "recurrent_schedule": {
                            "interval_type": "weekly",
                            "reset_next_date": 1746057600
                          },
                          "limit_exceeded_visibility": "show"
                        }
                      },
                      "periods": [
                        {
                          "date_from": "2020-08-11T10:00:00+03:00",
                          "date_until": "2020-08-11T20:00:00+03:00"
                        }
                      ],
                      "custom_attributes": {
                        "purchased": 0,
                        "attr": "value"
                      },
                      "vp_rewards": []
                    },
                    {
                      "sku": "com.xsolla.shotgun_raider_1",
                      "name": "SHOTGUN FOR TRUE RAIDERS",
                      "groups": [
                        {
                          "external_id": "weapons",
                          "name": {
                            "en": "Weapons"
                          }
                        }
                      ],
                      "attributes": [
                        {
                          "external_id": "stack_size",
                          "name": {
                            "en": "Quantity of items in the upsell set"
                          },
                          "values": [
                            {
                              "external_id": "size_e3364991f92e751689a68b96598a5a5a84010b85",
                              "value": "5"
                            }
                          ]
                        },
                        {
                          "external_id": "rating",
                          "name": {
                            "en": "Items rating"
                          },
                          "values": [
                            {
                              "external_id": "rating_e3364991f92e751689a68b96598a5a5a84010b85",
                              "value": "3.9"
                            }
                          ]
                        }
                      ],
                      "type": "virtual_good",
                      "description": "description",
                      "image_url": "http://image.png",
                      "is_free": false,
                      "price": {
                        "amount": "101.0",
                        "amount_without_discount": "101.0",
                        "currency": "USD"
                      },
                      "virtual_prices": [
                        {
                          "amount": 100,
                          "sku": "com.xsolla.vc_2",
                          "is_default": true,
                          "amount_without_discount": 100,
                          "image_url": "http://image.png",
                          "name": "SHOTGUN FOR TRUE RAIDERS",
                          "type": "virtual_currency",
                          "description": "description"
                        },
                        {
                          "amount": 200,
                          "sku": "com.xsolla.vc_3",
                          "is_default": false,
                          "amount_without_discount": 200,
                          "image_url": "http://image.png",
                          "name": "SHOTGUN FOR TRUE RAIDERS",
                          "type": "virtual_currency",
                          "description": "description"
                        }
                      ],
                      "can_be_bought": true,
                      "virtual_item_type": "non_renewing_subscription",
                      "promotions": [],
                      "limits": null,
                      "periods": [
                        {
                          "date_from": "2020-08-11T20:00:00+03:00",
                          "date_until": null
                        }
                      ],
                      "vp_rewards": []
                    },
                    {
                      "sku": "com.xsolla.shotgun_raider_2",
                      "name": "SHOTGUN FOR TRUE RAIDERS",
                      "groups": [],
                      "attributes": [],
                      "type": "virtual_good",
                      "description": "description",
                      "image_url": "http://image.png",
                      "is_free": true,
                      "price": null,
                      "virtual_prices": [],
                      "can_be_bought": true,
                      "virtual_item_type": "non_renewing_subscription",
                      "promotions": [],
                      "limits": null,
                      "periods": [],
                      "vp_rewards": []
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "200-get-point-balance": {
        "description": "O saldo de pontos de fidelidade foi recuperado com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "balance"
              ],
              "properties": {
                "balance": {
                  "type": "number",
                  "format": "double",
                  "description": "Saldo de pontos de fidelidade atual.",
                  "example": 150.5
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "balance": 150.5
                }
              }
            }
          }
        }
      },
      "ItemGroup_401-invalid-basic-auth": {
        "description": "A autenticação básica falhou ou foram fornecidas credenciais inválidas. Certifique-se de usar autenticação básica e credenciais corretas.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error-response-base"
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 401,
                  "errorCode": 1020,
                  "errorMessage": "[0401-1020]: Error in Authentication method occurred",
                  "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "404-user-or-point-not-found": {
        "description": "Conta do usuário ou pontos de fidelidade não encontrados.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "message_id",
                "message"
              ],
              "properties": {
                "message_id": {
                  "type": "string",
                  "description": "Código de erro.",
                  "example": "error_not_found"
                },
                "message": {
                  "type": "string",
                  "description": "Descrição de erro curta.",
                  "example": "User account or loyalty points not found."
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "message_id": "error_not_found",
                  "message": "User account or loyalty points not found."
                }
              }
            }
          }
        }
      },
      "200-debit-point-balance": {
        "description": "Saldo de pontos de fidelidade debitado com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "transaction_id",
                "previous_balance",
                "new_balance",
                "amount"
              ],
              "properties": {
                "transaction_id": {
                  "type": "string",
                  "format": "uuid",
                  "description": "ID da transação debitada criado como resultado dessa solicitação.",
                  "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
                },
                "previous_balance": {
                  "type": "number",
                  "format": "double",
                  "description": "Saldo antes do débito.",
                  "example": 150.5
                },
                "new_balance": {
                  "type": "number",
                  "format": "double",
                  "description": "Saldo após o débito.",
                  "example": 100.5
                },
                "amount": {
                  "type": "number",
                  "format": "double",
                  "description": "Quantia debitada do saldo.",
                  "example": 50
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "transaction_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                  "previous_balance": 150.5,
                  "new_balance": 100.5,
                  "amount": 50
                }
              }
            }
          }
        }
      },
      "400-bad-request": {
        "description": "Solicitação errônea. A solicitação contém parâmetros inválidos.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "message_id",
                "message"
              ],
              "properties": {
                "message_id": {
                  "type": "string",
                  "description": "Código de erro.",
                  "example": "error_bad_request"
                },
                "message": {
                  "type": "string",
                  "description": "Descrição de erro curta.",
                  "example": "Invalid request body."
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "message_id": "error_bad_request",
                  "message": "Invalid request body."
                }
              }
            }
          }
        }
      },
      "422-insufficient-balance": {
        "description": "Saldo de pontos de fidelidade insuficientes para a operação de débito.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "message_id",
                "message"
              ],
              "properties": {
                "message_id": {
                  "type": "string",
                  "description": "Código de erro.",
                  "example": "error_bad_request"
                },
                "message": {
                  "type": "string",
                  "description": "Descrição de erro curta.",
                  "example": "Insufficient loyalty point balance."
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "message_id": "error_bad_request",
                  "message": "Insufficient loyalty point balance."
                }
              }
            }
          }
        }
      },
      "200-credit-point-balance": {
        "description": "O saldo de pontos de fidelidade foi creditado com sucesso.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "transaction_id",
                "previous_balance",
                "new_balance",
                "amount"
              ],
              "properties": {
                "transaction_id": {
                  "type": "string",
                  "format": "uuid",
                  "description": "ID da transação de crédito criado como resultado dessa solicitação.",
                  "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
                },
                "previous_balance": {
                  "type": "number",
                  "format": "double",
                  "description": "Saldo antes do crédito.",
                  "example": 100.5
                },
                "new_balance": {
                  "type": "number",
                  "format": "double",
                  "description": "Saldo após o crédito.",
                  "example": 150.5
                },
                "amount": {
                  "type": "number",
                  "format": "double",
                  "description": "Quantia creditada ao saldo.",
                  "example": 50
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "transaction_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                  "previous_balance": 100.5,
                  "new_balance": 150.5,
                  "amount": 50
                }
              }
            }
          }
        }
      }
    },
    "requestBodies": {
      "Promotions_redeem-coupon-model": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "coupon_code": {
                  "type": "string",
                  "description": "Código de cupom exclusivo. Contém letras e números.",
                  "minLength": 1,
                  "maxLength": 128,
                  "example": "WINTER2021",
                  "default": "WINTER2021"
                },
                "selected_unit_items": {
                  "$ref": "#/components/schemas/Promotions_selected_unit_items"
                }
              }
            }
          }
        }
      },
      "Promotions_coupon-create": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "external_id",
                "name"
              ],
              "properties": {
                "external_id": {
                  "$ref": "#/components/schemas/Promotions_coupon-external_id"
                },
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_coupon_name"
                },
                "bonus": {
                  "$ref": "#/components/schemas/Promotions_coupon_bonus"
                },
                "redeem_total_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
                },
                "redeem_user_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-post"
                }
              }
            },
            "examples": {
              "simple": {
                "value": {
                  "external_id": "coupon_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    },
                    {
                      "date_from": "2020-05-15T18:16:00+05:00",
                      "date_until": "2020-05-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_1",
                      "quantity": 1
                    }
                  ]
                }
              },
              "personalized": {
                "value": {
                  "external_id": "coupon_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_2",
                      "quantity": 1
                    }
                  ],
                  "attribute_conditions": [
                    {
                      "attribute": "account_status",
                      "type": "string",
                      "operator": "eq",
                      "value": "golden",
                      "can_be_missing": false
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_coupon-update": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "name"
              ],
              "properties": {
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_coupon_name"
                },
                "bonus": {
                  "$ref": "#/components/schemas/Promotions_coupon_bonus"
                },
                "redeem_total_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
                },
                "redeem_user_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-post"
                }
              }
            },
            "examples": {
              "simple": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    },
                    {
                      "date_from": "2020-05-15T18:16:00+05:00",
                      "date_until": "2020-05-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_1",
                      "quantity": 1
                    }
                  ]
                }
              },
              "personalized": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_2",
                      "quantity": 1
                    }
                  ],
                  "attribute_conditions": [
                    {
                      "attribute": "account_status",
                      "type": "string",
                      "operator": "eq",
                      "value": "golden",
                      "can_be_missing": false
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_create-coupon-promocode-code": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "coupon_code": {
                  "$ref": "#/components/schemas/Promotions_coupon_code"
                }
              }
            }
          }
        }
      },
      "Promotions_redeem-promo-code-model": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "coupon_code": {
                  "type": "string",
                  "description": "Código exclusivo do código promocional. Contém letras e números.",
                  "minLength": 1,
                  "maxLength": 128,
                  "example": "SUMMER2021",
                  "default": "SUMMER2021"
                },
                "cart": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "ID do carrinho.",
                      "default": "current"
                    }
                  },
                  "required": [
                    "id"
                  ]
                },
                "selected_unit_items": {
                  "$ref": "#/components/schemas/Promotions_selected_unit_items"
                }
              }
            }
          }
        }
      },
      "Promotions_cancel-promo-code-model": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "cart": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "ID do carrinho.",
                      "default": "current"
                    }
                  },
                  "required": [
                    "id"
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_promocode-create": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "external_id",
                "name"
              ],
              "properties": {
                "external_id": {
                  "$ref": "#/components/schemas/Promotions_coupon-external_id"
                },
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_coupon_name"
                },
                "bonus": {
                  "$ref": "#/components/schemas/Promotions_coupon_bonus"
                },
                "redeem_total_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
                },
                "redeem_user_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                },
                "discount": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "percent": {
                      "$ref": "#/components/schemas/Promotions_promotion_discount_percent"
                    }
                  },
                  "example": {
                    "percent": "10.10"
                  }
                },
                "discounted_items": {
                  "$ref": "#/components/schemas/Promotions_discounted_items"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-post"
                },
                "price_conditions": {
                  "$ref": "#/components/schemas/price_conditions_promocode"
                },
                "item_price_conditions": {
                  "$ref": "#/components/schemas/item_price_conditions_promocode"
                },
                "excluded_promotions": {
                  "$ref": "#/components/schemas/excluded_promotions"
                }
              }
            },
            "examples": {
              "simple bonus": {
                "value": {
                  "external_id": "promo_code_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    },
                    {
                      "date_from": "2020-05-15T18:16:00+05:00",
                      "date_until": "2020-05-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_1",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_1",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_1",
                      "quantity": 2
                    }
                  ]
                }
              },
              "simple discount": {
                "value": {
                  "external_id": "promo_code_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Discount",
                    "de-DE": "Neujahrsrabatt"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  }
                }
              },
              "personalized": {
                "value": {
                  "external_id": "coupon_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Discount",
                    "de-DE": "Neujahrsrabatt"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  },
                  "attribute_conditions": [
                    {
                      "attribute": "account_status",
                      "type": "string",
                      "operator": "eq",
                      "value": "golden",
                      "can_be_missing": false
                    }
                  ]
                }
              },
              "with price conditions": {
                "value": {
                  "external_id": "promo_code_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_2",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_2",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_2",
                      "quantity": 2
                    }
                  ],
                  "price_conditions": [
                    {
                      "operator": "ge",
                      "value": "10.5000"
                    },
                    {
                      "operator": "lt",
                      "value": "50.0000"
                    }
                  ]
                }
              },
              "with item price conditions": {
                "value": {
                  "external_id": "promo_code_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  },
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_3",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_3",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_3",
                      "quantity": 2
                    }
                  ],
                  "item_price_conditions": [
                    {
                      "operator": "ge",
                      "value": "10.5000"
                    },
                    {
                      "operator": "lt",
                      "value": "50.0000"
                    }
                  ]
                }
              },
              "with excluded promotions": {
                "value": {
                  "external_id": "coupon_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Discount",
                    "de-DE": "Neujahrsrabatt"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  },
                  "excluded_promotions": [
                    12,
                    789
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_promocode-update": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "name"
              ],
              "properties": {
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_coupon_name"
                },
                "bonus": {
                  "$ref": "#/components/schemas/Promotions_coupon_bonus"
                },
                "redeem_total_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
                },
                "redeem_user_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                },
                "discount": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "percent": {
                      "$ref": "#/components/schemas/Promotions_promotion_discount_percent"
                    }
                  },
                  "example": {
                    "percent": "10.10"
                  }
                },
                "discounted_items": {
                  "$ref": "#/components/schemas/Promotions_discounted_items"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-post"
                },
                "price_conditions": {
                  "$ref": "#/components/schemas/price_conditions_promocode"
                },
                "item_price_conditions": {
                  "$ref": "#/components/schemas/item_price_conditions_promocode"
                },
                "excluded_promotions": {
                  "$ref": "#/components/schemas/excluded_promotions"
                }
              }
            },
            "examples": {
              "simple bonus": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    },
                    {
                      "date_from": "2020-05-15T18:16:00+05:00",
                      "date_until": "2020-05-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_1",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_1",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_1",
                      "quantity": 2
                    }
                  ]
                }
              },
              "simple discount": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Discount",
                    "de-DE": "Neujahrsrabatt"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  }
                }
              },
              "personalized": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Discount",
                    "de-DE": "Neujahrsrabatt"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  },
                  "attribute_conditions": [
                    {
                      "attribute": "account_status",
                      "type": "string",
                      "operator": "eq",
                      "value": "golden",
                      "can_be_missing": false
                    }
                  ]
                }
              },
              "with price conditions": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_2",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_2",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_2",
                      "quantity": 2
                    }
                  ],
                  "price_conditions": [
                    {
                      "operator": "gt",
                      "value": "10.5000"
                    },
                    {
                      "operator": "lt",
                      "value": "50.0000"
                    }
                  ]
                }
              },
              "with item price conditions": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  },
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_3",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_3",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_3",
                      "quantity": 2
                    }
                  ],
                  "item_price_conditions": [
                    {
                      "operator": "gt",
                      "value": "10.5000"
                    },
                    {
                      "operator": "lt",
                      "value": "50.0000"
                    }
                  ]
                }
              },
              "with excluded promotions": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Discount",
                    "de-DE": "Neujahrsrabatt"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  },
                  "excluded_promotions": [
                    12,
                    789
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_create-update-item-promotion": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "object",
                  "description": "Nome da promoção. Deve conter pares chave/valor,\nonde chave é a localidade com o formato \"^[a-z]{2}-[A-Z]{2}$\", e o valor é uma cadeia de caracteres.",
                  "additionalProperties": {
                    "type": "string"
                  },
                  "example": {
                    "en-US": "Promotion",
                    "ru-RU": "Акция"
                  }
                },
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "discount": {
                  "type": "object",
                  "properties": {
                    "percent": {
                      "type": "string",
                      "description": "Percentual de desconto.\nO preço do item será diminuído usando um valor calculado usando essa porcentagem e, em seguida, arredondado para 2 casas decimais.",
                      "example": 10
                    }
                  },
                  "required": [
                    "percent"
                  ]
                },
                "items": {
                  "type": "array",
                  "items": {
                    "description": "A lista de itens que serão afetados pelo desconto.",
                    "type": "object",
                    "properties": {
                      "sku": {
                        "type": "string",
                        "description": "SKU do item.",
                        "default": "elven_sword"
                      }
                    },
                    "required": [
                      "sku"
                    ]
                  }
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-post"
                },
                "price_conditions": {
                  "$ref": "#/components/schemas/price_conditions_discount"
                },
                "limits": {
                  "$ref": "#/components/schemas/Promotions_promotion_limits"
                },
                "excluded_promotions": {
                  "$ref": "#/components/schemas/excluded_promotions"
                },
                "is_enabled": {
                  "$ref": "#/components/schemas/Promotions_is_enabled"
                }
              },
              "required": [
                "items",
                "discount",
                "name"
              ]
            },
            "examples": {
              "simple": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    },
                    {
                      "date_from": "2020-05-16T18:16:00+05:00",
                      "date_until": "2020-05-25T18:16:00+05:00"
                    }
                  ],
                  "discount": {
                    "percent": "10.00"
                  },
                  "items": [
                    {
                      "sku": "com.xsolla.elven_sword_1"
                    },
                    {
                      "sku": "com.xsolla.elven_helmet_1"
                    },
                    {
                      "sku": "com.xsolla.elven_armor_1"
                    }
                  ],
                  "name": {
                    "en-US": "Promotion",
                    "ru-RU": "Акция"
                  },
                  "is_enabled": true
                }
              },
              "personalized": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "discount": {
                    "percent": "24.00"
                  },
                  "items": [],
                  "is_enabled": true,
                  "name": {
                    "en-US": "Ork set discount",
                    "ru-RU": "Скидка на набор для орка"
                  },
                  "attribute_conditions": [
                    {
                      "type": "string",
                      "attribute": "race",
                      "operator": "eq",
                      "value": "ork"
                    },
                    {
                      "type": "number",
                      "attribute": "level",
                      "operator": "eq",
                      "value": "10",
                      "can_be_missing": true
                    }
                  ]
                }
              },
              "with price condition": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "discount": {
                    "percent": "24.00"
                  },
                  "items": [],
                  "name": {
                    "en-US": "Ork set discount",
                    "ru-RU": "Скидка на набор для орка"
                  },
                  "price_conditions": [
                    {
                      "operator": "ge",
                      "value": "10.5000"
                    },
                    {
                      "operator": "lt",
                      "value": "20.5000"
                    }
                  ]
                }
              },
              "with excluded promotions": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "discount": {
                    "percent": "24.00"
                  },
                  "items": [],
                  "name": {
                    "en-US": "Ork set discount",
                    "ru-RU": "Скидка на набор для орка"
                  },
                  "excluded_promotions": [
                    12,
                    789
                  ],
                  "is_enabled": true
                }
              }
            }
          }
        },
        "description": "Objeto com dados de promoção.",
        "required": true
      },
      "Promotions_create-update-bonus-promotion": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "condition",
                "bonus",
                "name"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "ID de promoção. Identificador exclusivo da promoção dentro do projeto."
                },
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "name": {
                  "type": "object",
                  "description": "Nome da promoção. Deve conter pares chave/valor onde chave é uma localidade com formato \"^[a-z]{2}-[A-Z]{2}$\", e o valor é uma cadeia de caracteres.",
                  "additionalProperties": {
                    "type": "string"
                  },
                  "example": {
                    "en-US": "Summer season bonus",
                    "de-DE": "Sommersaison Bonus"
                  }
                },
                "condition": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "description": "Conjunto de itens que devem ser incluídos na compra para aplicar uma promoção. Se esse parâmetro for `null`, uma promoção será aplicada a todas as compras dentro de um projeto.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku": {
                        "type": "string",
                        "description": "SKU do item.",
                        "default": "elven_sword"
                      }
                    }
                  }
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-post"
                },
                "bonus": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "items": {
                    "description": "A lista de itens que serão adicionados na compra do usuário como um bônus.",
                    "type": "object",
                    "properties": {
                      "sku": {
                        "type": "string",
                        "description": "SKU do item.",
                        "default": "elven_shield"
                      },
                      "quantity": {
                        "type": "number",
                        "description": "Quantidade do item.",
                        "default": 1
                      }
                    }
                  }
                },
                "limits": {
                  "$ref": "#/components/schemas/Promotions_promotion_limits"
                },
                "price_conditions": {
                  "$ref": "#/components/schemas/price_conditions_bonus"
                },
                "excluded_promotions": {
                  "$ref": "#/components/schemas/excluded_promotions"
                },
                "is_enabled": {
                  "$ref": "#/components/schemas/Promotions_is_enabled"
                }
              }
            },
            "examples": {
              "simple": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    },
                    {
                      "date_from": "2020-05-15T18:16:00+05:00",
                      "date_until": "2020-05-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "condition": [
                    {
                      "sku": "com.xsolla.elven_boots_1"
                    },
                    {
                      "sku": "com.xsolla.elven_knife_1"
                    }
                  ],
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_1",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_1",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_1",
                      "quantity": 2
                    }
                  ]
                }
              },
              "personalized": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "condition": [
                    {
                      "sku": "com.xsolla.year_1_season_pass"
                    }
                  ],
                  "attribute_conditions": [
                    {
                      "attribute": "account_status",
                      "type": "string",
                      "operator": "eq",
                      "value": "golden",
                      "can_be_missing": false
                    }
                  ],
                  "bonus": [
                    {
                      "sku": "com.xsolla.mp_credits",
                      "quantity": 50000
                    }
                  ]
                }
              },
              "with price conditions": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "condition": [
                    {
                      "sku": "com.xsolla.elven_boots_2"
                    },
                    {
                      "sku": "com.xsolla.elven_knife_2"
                    }
                  ],
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_2",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_2",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_2",
                      "quantity": 2
                    }
                  ],
                  "price_conditions": [
                    {
                      "operator": "gt",
                      "value": "10.0000"
                    },
                    {
                      "operator": "lt",
                      "value": "20.0000"
                    }
                  ]
                }
              },
              "with excluded promotions": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "condition": [
                    {
                      "sku": "com.xsolla.year_1_season_pass"
                    }
                  ],
                  "bonus": [
                    {
                      "sku": "com.xsolla.mp_credits",
                      "quantity": 50000
                    }
                  ],
                  "excluded_promotions": [
                    12,
                    789
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_unique_catalog_offer-create": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "external_id",
                "name"
              ],
              "properties": {
                "external_id": {
                  "$ref": "#/components/schemas/Promotions_coupon-external_id"
                },
                "date_start": {
                  "$ref": "#/components/schemas/Promotions_coupon_date_start"
                },
                "date_end": {
                  "$ref": "#/components/schemas/Promotions_coupon_date_end"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_coupon_name"
                },
                "items": {
                  "type": "array",
                  "$ref": "#/components/schemas/Promotions_unique_catalog_offer_items"
                },
                "redeem_user_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                },
                "redeem_total_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
                }
              }
            },
            "examples": {
              "simple": {
                "value": {
                  "external_id": "offer_external_id",
                  "date_start": "2020-04-15T18:16:00+05:00",
                  "date_end": "2020-04-25T18:16:00+05:00",
                  "name": {
                    "en-US": "New Year Offer",
                    "de-DE": "Neujahrsangebot"
                  },
                  "items": [
                    "elven_sword",
                    "elven_boots"
                  ]
                }
              },
              "limited": {
                "value": {
                  "external_id": "offer_external_id",
                  "date_start": "2020-04-15T18:16:00+05:00",
                  "date_end": "2020-04-25T18:16:00+05:00",
                  "name": {
                    "en-US": "New Year Offer",
                    "de-DE": "Neujahrsangebot"
                  },
                  "items": [
                    "elven_sword",
                    "elven_boots"
                  ],
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1
                }
              }
            }
          }
        }
      },
      "Promotions_unique_catalog_offer-update": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "name"
              ],
              "properties": {
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_coupon_name"
                },
                "items": {
                  "$ref": "#/components/schemas/Promotions_unique_catalog_offer_items"
                },
                "redeem_total_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
                },
                "redeem_user_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                }
              }
            },
            "examples": {
              "simple": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    },
                    {
                      "date_from": "2020-05-15T18:16:00+05:00",
                      "date_until": "2020-05-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Offer",
                    "de-DE": "Neujahrsangebot"
                  },
                  "items": [
                    "elven_sword",
                    "elven_boots"
                  ]
                }
              },
              "limited": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Offer",
                    "de-DE": "Neujahrsangebot"
                  },
                  "items": [
                    "elven_sword",
                    "elven_boots"
                  ],
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1
                }
              }
            }
          }
        }
      },
      "personalized-catalog_create-update-body": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/user-attribute_personalized-catalog-body-required"
            },
            "example": {
              "name": "Ork race armor rule",
              "is_enabled": true,
              "attribute_conditions": [
                {
                  "attribute": "race",
                  "operator": "eq",
                  "value": "ork",
                  "type": "string",
                  "can_be_missing": false
                }
              ],
              "items": [
                {
                  "item_id": 1
                }
              ],
              "is_satisfied_for_unauth": false
            }
          }
        }
      },
      "reset-user-limits": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "user"
              ],
              "properties": {
                "user": {
                  "$ref": "#/components/schemas/User-limit_user"
                }
              }
            },
            "example": {
              "user": {
                "user_external_id": "d342dad2-9d59-11e9-a384-42010aa8003f"
              }
            }
          }
        }
      },
      "reset-user-limits-flexible": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "user"
              ],
              "properties": {
                "user": {
                  "$ref": "#/components/schemas/User-limit_user_flexible"
                }
              }
            },
            "example": {
              "user": {
                "user_external_id": "d342dad2-9d59-11e9-a384-42010aa8003f"
              }
            }
          }
        }
      },
      "update-user-limits-flexible": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "user",
                "available"
              ],
              "properties": {
                "user": {
                  "$ref": "#/components/schemas/User-limit_user"
                },
                "available": {
                  "$ref": "#/components/schemas/User-limit_available_flexible"
                }
              }
            },
            "example": {
              "user": {
                "user_external_id": "d342dad2-9d59-11e9-a384-42010aa8003f"
              },
              "available": 0
            }
          }
        }
      },
      "update-user-limits-strict": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "user",
                "available"
              ],
              "properties": {
                "user": {
                  "$ref": "#/components/schemas/User-limit_user"
                },
                "available": {
                  "$ref": "#/components/schemas/User-limit_available"
                }
              }
            },
            "example": {
              "user": {
                "user_external_id": "d342dad2-9d59-11e9-a384-42010aa8003f"
              },
              "available": 1
            }
          }
        }
      },
      "create-value-point": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/admin_value_points-create"
            },
            "examples": {
              "default": {
                "summary": "Value point for reward chain",
                "value": {
                  "sku": "com.xsolla.reward_vp_1",
                  "name": {
                    "en": "Reward VP 1"
                  },
                  "is_enabled": true,
                  "description": {
                    "en": "Value points for reward system."
                  },
                  "long_description": {
                    "en": "Value points given to users to get new rewards in a reward chain."
                  },
                  "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "media_list": [],
                  "order": 1
                }
              },
              "clan": {
                "summary": "Value point for clan reward chain",
                "value": {
                  "sku": "com.xsolla.clan_value_point_1",
                  "name": {
                    "en": "Clan Reward VP 1"
                  },
                  "is_enabled": true,
                  "description": {
                    "en": "Value points for clan reward system."
                  },
                  "long_description": {
                    "en": "Value points given to clans to get new rewards in a reward chain."
                  },
                  "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "media_list": [],
                  "order": 3,
                  "is_clan": true
                }
              }
            }
          }
        }
      },
      "set-item-value-point-reward": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/item-value-point-reward-set"
            },
            "example": [
              {
                "sku": "com.xsolla.booster_1",
                "amount": 100
              },
              {
                "sku": "com.xsolla.booster_mega",
                "amount": 200
              }
            ]
          }
        }
      },
      "set-item-value-point-reward-for-patch": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/item-value-point-reward-set-for-patch"
            },
            "example": [
              {
                "sku": "booster_1",
                "amount": 100
              },
              {
                "sku": "booster_mega",
                "amount": 0
              }
            ]
          }
        }
      },
      "create-reward-chain": {
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/create-reward-chain-model"
                },
                {
                  "$ref": "#/components/schemas/create-clan-reward-chain-model"
                }
              ]
            },
            "examples": {
              "default": {
                "summary": "Reward chain example",
                "value": {
                  "name": {
                    "en": "Reward chain"
                  },
                  "description": {
                    "en": "Reward chain description."
                  },
                  "long_description": {
                    "en": "Reward chain long description."
                  },
                  "is_enabled": true,
                  "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "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"
                    }
                  ],
                  "value_point": {
                    "sku": "com.xsolla.value_point_1"
                  },
                  "steps": [
                    {
                      "name": {
                        "en": "First step of the reward chain"
                      },
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_1",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_2",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 10
                      }
                    },
                    {
                      "name": {
                        "en": "Second step of the reward chain"
                      },
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_3",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_4",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 15
                      }
                    }
                  ],
                  "recurrent_schedule": {
                    "interval_type": "weekly",
                    "day_of_week": 1,
                    "time": "01:00:00+08:00"
                  },
                  "attribute_conditions": [
                    {
                      "attribute": "race",
                      "operator": "eq",
                      "value": "ork",
                      "type": "string",
                      "can_be_missing": false
                    }
                  ],
                  "is_always_visible": true,
                  "is_reset_after_end": true
                }
              },
              "clan": {
                "summary": "Clan reward chain example",
                "value": {
                  "name": {
                    "en": "Clan reward chain"
                  },
                  "description": {
                    "en": "Clan reward chain description."
                  },
                  "long_description": {
                    "en": "Clan reward chain long description."
                  },
                  "is_enabled": true,
                  "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "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"
                    }
                  ],
                  "value_point": {
                    "sku": "com.xsolla.clan_value_point_1"
                  },
                  "steps": [
                    {
                      "name": {
                        "en": "First step of the reward chain"
                      },
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_1",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_2",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 10
                      }
                    },
                    {
                      "name": {
                        "en": "Second step of the reward chain"
                      },
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_3",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_4",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 15
                      }
                    }
                  ],
                  "recurrent_schedule": {
                    "interval_type": "weekly",
                    "day_of_week": 1,
                    "time": "01:00:00+08:00"
                  },
                  "popup_header": {
                    "en": "How to unlock rewards"
                  },
                  "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."
                  },
                  "popup_image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "clan_type": "guild"
                }
              }
            }
          }
        }
      },
      "update-reward-chain": {
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/update-reward-chain-model"
                },
                {
                  "$ref": "#/components/schemas/update-clan-reward-chain-model"
                }
              ]
            },
            "examples": {
              "default": {
                "summary": "Reward chain example",
                "value": {
                  "name": {
                    "en": "Reward chain"
                  },
                  "description": {
                    "en": "Reward chain description."
                  },
                  "long_description": {
                    "en": "Reward chain long description."
                  },
                  "is_enabled": true,
                  "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "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"
                    }
                  ],
                  "steps": [
                    {
                      "name": {
                        "en": "First step of the reward chain"
                      },
                      "step_id": 1,
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_1",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_2",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 10
                      }
                    },
                    {
                      "name": {
                        "en": "Second step of the reward chain"
                      },
                      "step_id": 2,
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_3",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_4",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 15
                      }
                    }
                  ],
                  "recurrent_schedule": {
                    "interval_type": "weekly",
                    "day_of_week": 1,
                    "time": "01:00:00+08:00"
                  },
                  "attribute_conditions": [
                    {
                      "attribute": "race",
                      "operator": "eq",
                      "value": "ork",
                      "type": "string",
                      "can_be_missing": false
                    }
                  ],
                  "is_always_visible": true,
                  "is_reset_after_end": true
                }
              },
              "clan": {
                "summary": "Clan reward chain example",
                "value": {
                  "name": {
                    "en": "Clan reward chain"
                  },
                  "description": {
                    "en": "Clan reward chain description."
                  },
                  "long_description": {
                    "en": "Clan reward chain long description."
                  },
                  "is_enabled": true,
                  "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "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"
                    }
                  ],
                  "steps": [
                    {
                      "name": {
                        "en": "First step of the reward chain"
                      },
                      "step_id": 1,
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_1",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_2",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 10
                      }
                    },
                    {
                      "name": {
                        "en": "Second step of the reward chain"
                      },
                      "step_id": 2,
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_3",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_4",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 15
                      }
                    }
                  ],
                  "recurrent_schedule": {
                    "interval_type": "weekly",
                    "day_of_week": 1,
                    "time": "01:00:00+08:00"
                  },
                  "popup_header": {
                    "en": "How to unlock rewards"
                  },
                  "popup_instruction": {
                    "en": "You should be a clan member to get clan rewards. You join a clan when a clan member invited you to the clan, and you accepted the invite. You can create your own clan."
                  },
                  "popup_image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "clan_type": "guild"
                }
              }
            }
          }
        }
      },
      "create-daily-chain": {
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/create-calendar-hard-daily-chain-model"
                },
                {
                  "$ref": "#/components/schemas/create-rolling-skippable-daily-chain-model"
                },
                {
                  "$ref": "#/components/schemas/create-rolling-unskippable-daily-chain-model"
                }
              ]
            },
            "examples": {
              "calendar_hard": {
                "summary": "Daily reward with `calendar_hard` type",
                "value": {
                  "name": {
                    "en": "New daily reward",
                    "ru": "Новая ежедневная награда"
                  },
                  "description": {
                    "en": "New daily reward short description"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "items": [
                        {
                          "sku": "vg_enabled_shown_in_store_1",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "items": [
                        {
                          "sku": "bundle_enabled_shown_in_store_with_2_enabled_shown_in_store_vg",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "items": [
                        {
                          "sku": "vcp_enabled_shown_in_store_1_of_10_vc_enabled_shown_in_store_1",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 4,
                      "items": [
                        {
                          "sku": "vg_enabled_shown_in_store_1",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 5,
                      "items": [
                        {
                          "sku": "bundle_enabled_shown_in_store_with_2_enabled_shown_in_store_vg",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 6,
                      "items": [
                        {
                          "sku": "vcp_enabled_shown_in_store_1_of_10_vc_enabled_shown_in_store_1",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "type": "calendar_hard"
                }
              },
              "rolling_skippable": {
                "summary": "Daily reward with `rolling_skippable` type",
                "value": {
                  "name": {
                    "en": "New skippable login reward"
                  },
                  "description": {
                    "en": "New skippable login reward short description"
                  },
                  "order": 1,
                  "date_start": "2023-05-01T10:00:00+05:00",
                  "date_end": "2023-05-31T10:00:00+05:00",
                  "is_enabled": true,
                  "is_recurrent": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "items": [
                        {
                          "sku": "monday_reward_item_one",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "items": [
                        {
                          "sku": "tuesday_reward_item_two",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "items": [
                        {
                          "sku": "wednesday_reward_item_three",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 4,
                      "items": [
                        {
                          "sku": "thursday_reward_item_four",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 5,
                      "items": [
                        {
                          "sku": "friday_reward_item_five",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 6,
                      "items": [
                        {
                          "sku": "saturday_reward_item_six",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 7,
                      "items": [
                        {
                          "sku": "sunday_reward_item_seven",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "type": "rolling_skippable"
                }
              },
              "rolling_unskippable": {
                "summary": "Daily reward with `rolling_unskippable` type",
                "value": {
                  "name": {
                    "en": "New unskippable login reward"
                  },
                  "description": {
                    "en": "New unskippable login reward short description"
                  },
                  "order": 2,
                  "date_start": "2023-06-01T10:00:00+05:00",
                  "date_end": "2023-06-30T10:00:00+05:00",
                  "is_enabled": true,
                  "is_recurrent": false,
                  "steps": [
                    {
                      "step_number": 1,
                      "items": [
                        {
                          "sku": "monday_reward_item_one",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "items": [
                        {
                          "sku": "tuesday_reward_item_two",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "items": [
                        {
                          "sku": "wednesday_reward_item_three",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 4,
                      "items": [
                        {
                          "sku": "thursday_reward_item_four",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 5,
                      "items": [
                        {
                          "sku": "friday_reward_item_five",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "type": "rolling_unskippable"
                }
              }
            }
          }
        }
      },
      "update-daily-chain": {
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/update-calendar-hard-daily-chain-model"
                },
                {
                  "$ref": "#/components/schemas/update-rolling-skippable-daily-chain-model"
                },
                {
                  "$ref": "#/components/schemas/update-rolling-unskippable-daily-chain-model"
                }
              ]
            },
            "examples": {
              "calendar_hard": {
                "summary": "Daily reward with `calendar_hard` type",
                "value": {
                  "name": {
                    "en": "Updated daily reward",
                    "ru": "Обновленная ежедневная награда"
                  },
                  "description": {
                    "en": "Updated daily reward description"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "items": [
                        {
                          "sku": "vg_enabled_shown_in_store_1",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "items": [
                        {
                          "sku": "vg_enabled_shown_in_store_2",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_id": 10,
                      "step_number": 3,
                      "items": [
                        {
                          "sku": "vg_not_shown_in_store",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_id": 8,
                      "step_number": 4,
                      "items": [
                        {
                          "sku": "bundle_enabled_shown_in_store_with_2_enabled_shown_in_store_vg",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 5,
                      "items": [
                        {
                          "sku": "vcp_enabled_shown_in_store_1_of_10_vc_enabled_shown_in_store_1",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "type": "calendar_hard"
                }
              },
              "rolling_skippable": {
                "summary": "Daily reward with `rolling_skippable` type",
                "value": {
                  "name": {
                    "en": "Updated login reward"
                  },
                  "description": {
                    "en": "Updated login reward description"
                  },
                  "order": 4,
                  "date_start": "2023-08-01T10:00:00+05:00",
                  "date_end": "2023-08-31T10:00:00+05:00",
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "items": [
                        {
                          "sku": "monday_reward_item_one",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "items": [
                        {
                          "sku": "tuesday_reward_item_two",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "items": [
                        {
                          "sku": "wednesday_reward_item_three",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 4,
                      "items": [
                        {
                          "sku": "thursday_reward_item_four",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 5,
                      "items": [
                        {
                          "sku": "friday_reward_item_five",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 6,
                      "items": [
                        {
                          "sku": "saturday_reward_item_six",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 7,
                      "items": [
                        {
                          "sku": "sunday_reward_item_seven",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "type": "rolling_skippable"
                }
              },
              "rolling_unskippable": {
                "summary": "Daily reward with `rolling_unskippable` type",
                "value": {
                  "name": {
                    "en": "Updated unskippable login reward"
                  },
                  "description": {
                    "en": "Updated unskippable login reward description"
                  },
                  "order": 2,
                  "date_start": "2023-09-01T10:00:00+05:00",
                  "date_end": "2023-09-30T10:00:00+05:00",
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "items": [
                        {
                          "sku": "monday_reward_item_one",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "items": [
                        {
                          "sku": "tuesday_reward_item_two",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "items": [
                        {
                          "sku": "wednesday_reward_item_three",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 4,
                      "items": [
                        {
                          "sku": "thursday_reward_item_four",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 5,
                      "items": [
                        {
                          "sku": "friday_reward_item_five",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "type": "rolling_unskippable"
                }
              }
            }
          }
        }
      },
      "create-offer-chain": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/create-offer-chain-model"
            },
            "examples": {
              "default": {
                "summary": "Non-personalized offer chain example",
                "value": {
                  "name": {
                    "en": "New offer chain",
                    "ru": "Новая цепочка предложений",
                    "de": "Neue Angebotskette",
                    "fr": "Nouvelle chaîne d'offres",
                    "it": "Nuova catena di offerte"
                  },
                  "description": {
                    "en": "A short description of a regular offer chain",
                    "ru": "Краткое описание обычной цепочки предложений",
                    "de": "Eine kurze Beschreibung einer regulären Angebotskette",
                    "fr": "Une brève description d'une chaîne d'offres régulière",
                    "it": "Una breve descrizione di una catena di offerte regolare"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": null,
                  "recurrent_schedule": null,
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_step_1_paid_bundle_sku",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_step_2_free_virtual_good_sku",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_step_3_paid_virtual_currency_package_sku",
                          "quantity": 5
                        }
                      ]
                    },
                    {
                      "step_number": 4,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_step_4_free_bundle_sku",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "is_always_visible": true
                }
              },
              "recurrent": {
                "summary": "Recurrent offer chain example",
                "value": {
                  "name": {
                    "en": "New recurrent offer chain",
                    "ru": "Новая рекуррентная цепочка предложений",
                    "de": "Neue wiederkehrende Angebotskette",
                    "fr": "Nouvelle chaîne d'offres récurrente",
                    "it": "Nuova catena di offerte ricorrente"
                  },
                  "description": {
                    "en": "A recurring offer chain that resets weekly on Wednesdays at 07:00 AM GMT+3",
                    "ru": "Рекуррентная цепочка предложений, которая сбрасывается еженедельно по средам в 07:00 по GMT+3",
                    "de": "Eine wiederkehrende Angebotskette, die wöchentlich mittwochs um 07:00 Uhr GMT+3 zurückgesetzt wird",
                    "fr": "Une chaîne d'offres récurrente qui se réinitialise chaque semaine le mercredi à 07h00 GMT+3",
                    "it": "Una catena di offerte ricorrente che si resetta settimanalmente il mercoledì alle 07:00 GMT+3"
                  },
                  "order": 1,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": "2025-04-25T18:16:00+05:00",
                  "is_enabled": false,
                  "recurrent_schedule": {
                    "interval_type": "weekly",
                    "day_of_week": 3,
                    "time": "07:00:00+03:00"
                  },
                  "steps": [
                    {
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_step_1_paid_bundle_sku",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_step_2_free_virtual_good_sku",
                          "quantity": 3
                        }
                      ]
                    }
                  ],
                  "is_always_visible": true
                }
              },
              "personalized-default": {
                "summary": "Offer chain displayed when no personalized offer chains are found example",
                "value": {
                  "name": {
                    "en": "New personalized default offer chain",
                    "ru": "Новая персонализированная цепочка предложений по умолчанию",
                    "de": "Neue personalisierte Standard-Angebotskette",
                    "fr": "Nouvelle chaîne d'offres personnalisée par défaut",
                    "it": "Nuova catena di offerte personalizzata predefinita"
                  },
                  "description": {
                    "en": "Default personalized offer chain for users that do not meet the conditions of other personalized chains",
                    "ru": "Персонализированная цепочка по умолчанию для пользователей, не подходящих под условия других персонализированных цепочек",
                    "de": "Standard-personalisierte Angebotskette für Benutzer, die die Bedingungen anderer personalisierter Ketten nicht erfüllen",
                    "fr": "Chaîne d'offres personnalisée par défaut pour les utilisateurs qui ne répondent pas aux conditions des autres chaînes personnalisées",
                    "it": "Catena di offerte personalizzata predefinita per gli utenti che non soddisfano le condizioni di altre catene personalizzate"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": null,
                  "recurrent_schedule": null,
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_1_item_default",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_2_item_default",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_x_step_3_free_item_default",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "is_always_visible": false
                }
              },
              "personalized-with-conditions": {
                "summary": "Personalized offer chain with user attribute conditions example",
                "value": {
                  "name": {
                    "en": "New personalized offer chain",
                    "ru": "Новая персонализированная цепочка предложений",
                    "de": "Neue personalisierte Angebotskette",
                    "fr": "Nouvelle chaîne d'offres personnalisée",
                    "it": "Nuova catena di offerte personalizzata"
                  },
                  "description": {
                    "en": "Personalized offer chain with user attribute conditions - for level 10 and above elves who reached level 10 no later than 2026-01-01 00:00:00, inclusive",
                    "ru": "Персонализированная цепочка предложений с условиями по атрибутам пользователя - для эльфов уровня 10 и выше, достигших 10 уровня не позднее 2026-01-01 00:00:00 включительно",
                    "de": "Personalisierte Angebotskette mit Benutzerattributbedingungen - für Elfen der Stufe 10 und höher, die Stufe 10 spätestens am 2026-01-01 00:00:00 erreicht haben, einschließlich",
                    "fr": "Chaîne d'offres personnalisée avec des conditions d'attribut utilisateur - pour les elfes de niveau 10 et plus qui ont atteint le niveau 10 au plus tard le 2026-01-01 00:00:00, inclus",
                    "it": "Catena di offerte personalizzata con condizioni di attributo utente - per elfi di livello 10 e superiore che hanno raggiunto il livello 10 non più tardi del 2026-01-01 00:00:00, inclusi"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": null,
                  "recurrent_schedule": null,
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_1_item_for_elves_level_10_and_above",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_2_item_for_elves_level_10_and_above",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_x_step_3_free_item_for_elves_level_10_and_above",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "is_always_visible": false,
                  "attribute_conditions": [
                    {
                      "attribute": "race",
                      "operator": "eq",
                      "value": "elf",
                      "type": "string",
                      "can_be_missing": false
                    },
                    {
                      "attribute": "level",
                      "operator": "ge",
                      "value": "10",
                      "type": "number",
                      "can_be_missing": false
                    },
                    {
                      "attribute": "10_level_up_date",
                      "operator": "le",
                      "value": "2026-01-01T00:00:00",
                      "type": "date",
                      "can_be_missing": false
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "update-offer-chain": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/modify-offer-chain-model"
            },
            "examples": {
              "default": {
                "summary": "Default example",
                "value": {
                  "name": {
                    "en": "Updated offer chain",
                    "ru": "Обновляемая цепочка предложений",
                    "de": "Aktualisierte Angebotskette",
                    "fr": "Chaîne d'offres mise à jour",
                    "it": "Catena di offerte aggiornata"
                  },
                  "description": {
                    "en": "A short description of a regular offer chain",
                    "ru": "Краткое описание обычной цепочки предложений",
                    "de": "Eine kurze Beschreibung einer regulären Angebotskette",
                    "fr": "Une brève description d'une chaîne d'offres régulière",
                    "it": "Una breve descrizione di una catena di offerte regolare"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": null,
                  "recurrent_schedule": null,
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_id": 10,
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_step_1_paid_bundle_sku",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_step_2_free_virtual_good_sku",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_step_3_paid_virtual_currency_package_sku",
                          "quantity": 5
                        }
                      ]
                    },
                    {
                      "step_id": 9,
                      "step_number": 4,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_step_4_free_bundle_sku",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "is_always_visible": true
                }
              },
              "recurrent": {
                "summary": "Recurrent offer chain example",
                "value": {
                  "id": 1,
                  "name": {
                    "en": "Updated recurrent offer chain",
                    "ru": "Обновляемая рекуррентная цепочка предложений",
                    "de": "Aktualisierte wiederkehrende Angebotskette",
                    "fr": "Chaîne d'offres récurrente mise à jour",
                    "it": "Catena di offerte ricorrente aggiornata"
                  },
                  "description": {
                    "en": "Updated offer chain that becomes recurrent and resets monthly on the 2nd day at 03:00 AM GMT+8",
                    "ru": "Обновляемая цепочка предложений, которая становится рекуррентной и сбрасывается ежемесячно во 2-й день в 03:00 по GMT+8",
                    "de": "Aktualisierte Angebotskette, die wiederkehrend wird und monatlich am 2. Tag um 03:00 Uhr GMT+8 zurückgesetzt wird",
                    "fr": "Chaîne d'offres mise à jour qui devient récurrente et se réinitialise mensuellement le 2e jour à 03h00 GMT+8",
                    "it": "Catena di offerte aggiornata che diventa ricorrente e si resetta mensilmente il 2° giorno alle 03:00 GMT+8"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T17:16:00+05:00",
                  "date_end": "2025-04-25T19:16:00+05:00",
                  "is_enabled": true,
                  "recurrent_schedule": {
                    "interval_type": "monthly",
                    "day_of_month": 2,
                    "time": "03:00:00+08:00"
                  },
                  "steps": [
                    {
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_bundle_sku",
                          "quantity": 6
                        }
                      ]
                    },
                    {
                      "step_number": 1,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_bundle_sku",
                          "quantity": 2
                        }
                      ]
                    }
                  ]
                }
              },
              "personalized-default": {
                "summary": "Personalized default offer chain example",
                "value": {
                  "name": {
                    "en": "New personalized default offer chain",
                    "ru": "Новая персонализированная цепочка предложений по умолчанию",
                    "de": "Neue personalisierte Standard-Angebotskette",
                    "fr": "Nouvelle chaîne d'offres personnalisée par défaut",
                    "it": "Nuova catena di offerte personalizzata predefinita"
                  },
                  "description": {
                    "en": "Default personalized offer chain for users that do not meet the conditions of other personalized chains",
                    "ru": "Персонализированная цепочка по умолчанию для пользователей, не подходящих под условия других персонализированных цепочек",
                    "de": "Standard-personalisierte Angebotskette für Benutzer, die die Bedingungen anderer personalisierter Ketten nicht erfüllen",
                    "fr": "Chaîne d'offres personnalisée par défaut pour les utilisateurs qui ne répondent pas aux conditions des autres chaînes personnalisées",
                    "it": "Catena di offerte personalizzata predefinita per gli utenti che non soddisfano le condizioni di altre catene personalizzate"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": null,
                  "recurrent_schedule": null,
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_id": 10,
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_1_item_default",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_2_item_default",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_id": 9,
                      "step_number": 3,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_x_step_3_free_item_default",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "is_always_visible": false
                }
              },
              "personalized-with-conditions": {
                "summary": "Personalized offer chain with user attribute conditions example",
                "value": {
                  "name": {
                    "en": "New personalized offer chain",
                    "ru": "Новая персонализированная цепочка предложений",
                    "de": "Neue personalisierte Angebotskette",
                    "fr": "Nouvelle chaîne d'offres personnalisée",
                    "it": "Nuova catena di offerte personalizzata"
                  },
                  "description": {
                    "en": "Personalized offer chain with user attribute conditions - for level 10 and above elves who reached level 10 no later than 2026-01-01 00:00:00, inclusive",
                    "ru": "Персонализированная цепочка предложений с условиями по атрибутам пользователя - для эльфов уровня 10 и выше, достигших 10 уровня не позднее 2026-01-01 00:00:00 включительно",
                    "de": "Personalisierte Angebotskette mit Benutzerattributbedingungen - für Elfen der Stufe 10 und höher, die Stufe 10 spätestens am 2026-01-01 00:00:00 erreicht haben, einschließlich",
                    "fr": "Chaîne d'offres personnalisée avec des conditions d'attribut utilisateur - pour les elfes de niveau 10 et plus qui ont atteint le niveau 10 au plus tard le 2026-01-01 00:00:00, inclus",
                    "it": "Catena di offerte personalizzata con condizioni di attributo utente - per elfi di livello 10 e superiore che hanno raggiunto il livello 10 non più tardi del 2026-01-01 00:00:00, inclusi"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": null,
                  "recurrent_schedule": null,
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_id": 10,
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_1_item_for_elves_level_10_and_above",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_id": 8,
                      "step_number": 2,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_2_item_for_elves_level_10_and_above",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_x_step_3_free_item_for_elves_level_10_and_above",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "is_always_visible": false,
                  "attribute_conditions": [
                    {
                      "attribute": "race",
                      "operator": "eq",
                      "value": "elf",
                      "type": "string",
                      "can_be_missing": false
                    },
                    {
                      "attribute": "level",
                      "operator": "ge",
                      "value": "10",
                      "type": "number",
                      "can_be_missing": false
                    },
                    {
                      "attribute": "10_level_up_date",
                      "operator": "le",
                      "value": "2026-01-01T00:00:00",
                      "type": "date",
                      "can_be_missing": false
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "update-upsell": {
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/Upsell-model"
                },
                {
                  "$ref": "#/components/schemas/Upsell-model-not-fixed-list"
                }
              ]
            },
            "examples": {
              "fixed_list": {
                "summary": "Example of upsell with fixed list of items",
                "value": {
                  "is_enabled": true,
                  "type": "fixed_list",
                  "items": [
                    "game_sku_1",
                    "game_sku_2",
                    "game_sku_3"
                  ]
                }
              },
              "special_type_promotions": {
                "summary": "Example of upsell with promotion items only",
                "value": {
                  "is_enabled": true,
                  "type": "only_promotions",
                  "items": []
                }
              },
              "special_type_most_sellable": {
                "summary": "Example of upsell with most sellable items for last 30 days",
                "value": {
                  "is_enabled": true,
                  "type": "most_sellable",
                  "items": []
                }
              }
            }
          }
        }
      },
      "create-upsell": {
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/Upsell-model"
                },
                {
                  "$ref": "#/components/schemas/Upsell-model-not-fixed-list"
                }
              ]
            },
            "examples": {
              "fixed_list": {
                "summary": "Example of upsell with fixed list of items",
                "value": {
                  "is_enabled": true,
                  "type": "fixed_list",
                  "items": [
                    "game_sku_1",
                    "game_sku_2",
                    "game_sku_3"
                  ]
                }
              },
              "special_type_promotions": {
                "summary": "Example of upsell with promotion items only",
                "value": {
                  "is_enabled": true,
                  "type": "only_promotions",
                  "items": []
                }
              },
              "special_type_most_sellable": {
                "summary": "Example of upsell with most sellable items for last 30 days",
                "value": {
                  "is_enabled": true,
                  "type": "most_sellable",
                  "items": []
                }
              }
            }
          }
        }
      },
      "debit-point-balance": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "amount",
                "reason"
              ],
              "properties": {
                "amount": {
                  "type": "number",
                  "format": "double",
                  "description": "Quantia de pontos de fidelidade a debitar. Deve ter um valor positivo.",
                  "example": 50
                },
                "reason": {
                  "type": "string",
                  "description": "Motivo para a alteração de saldo em formato de texto livre (ex.: recompensa, compensação, ajuste manual).",
                  "example": "Manual adjustment"
                }
              }
            },
            "examples": {
              "request": {
                "value": {
                  "amount": 50,
                  "reason": "Manual adjustment"
                }
              }
            }
          }
        }
      },
      "credit-point-balance": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "amount",
                "reason"
              ],
              "properties": {
                "amount": {
                  "type": "number",
                  "format": "double",
                  "description": "Quantidade de pontos de fidelidade a creditar. Deve ser um valor positivo.",
                  "example": 50
                },
                "reason": {
                  "type": "string",
                  "description": "Motivo para a alteração de saldo em formato de texto livre (ex.: recompensa, compensação, ajuste manual).",
                  "example": "Manual adjustment"
                }
              }
            },
            "examples": {
              "request": {
                "value": {
                  "amount": 50,
                  "reason": "Manual adjustment"
                }
              }
            }
          }
        }
      }
    }
  },
  "x-tagGroups": [
    {
      "name": "PROMOÇÕES",
      "tags": [
        "promotions-overview",
        "promotions-common",
        "promotions-coupons",
        "promotions-promo-codes",
        "promotions-unique-catalog-offers",
        "promotions-discounts",
        "promotions-bonuses"
      ]
    },
    {
      "name": "PERSONALIZAÇÃO",
      "tags": [
        "personalized-catalog"
      ]
    },
    {
      "name": "LIMITES",
      "tags": [
        "promotion-limits-overview",
        "user-limits-admin"
      ]
    },
    {
      "name": "CADEIAS DE RECOMPENSA E PONTOS DE VALOR",
      "tags": [
        "reward-chain-value-points-overview",
        "reward-chain-value-points-admin",
        "reward-chain-client",
        "clan-reward-chain-client"
      ]
    },
    {
      "name": "CORRENTES DIÁRIAS",
      "tags": [
        "daily-chain-overview",
        "daily-chain-admin",
        "daily-chain-client"
      ]
    },
    {
      "name": "CADEIAS DE OFERTAS",
      "tags": [
        "offer-chains-overview",
        "offer-chain-admin",
        "offer-chain-client"
      ]
    },
    {
      "name": "VENDA CRUZADA",
      "tags": [
        "upsell-overview",
        "upsell-admin",
        "upsell-client"
      ]
    },
    {
      "name": "LOYALTY AS SERVICE",
      "tags": [
        "loyalty-program-overview",
        "loyalty-program-admin"
      ]
    }
  ]
}