openapi: 3.1.0
info:
  description: >-
    # Visão geral


    * **Versão:** 2.0.0

    * **Servidores**: `https://store.xsolla.com/api`

    * **[Entre em contato por e-mail](mailto:integration@xsolla.com)**

    * **URL de contato:** https://xsolla.com/

    * **Versão TLS necessária:** 1.2


    LiveOps é um conjunto de ferramentas para impulsionar o engajamento contínuo
    dos jogadores por meio de promoções e ofertas personalizadas.


    Use a API para gerenciar os seguintes recursos:


    * **Promoções** — crie e gerencie cupons, códigos promocionais, descontos e
    campanhas de bônus.

    * **Personalização** — especifique as condições para exibir o catálogo de
    itens e aplicar promoções apenas para determinados usuários autorizados.

    * **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.

    * **Cadeias de recompensas e Pontos de valor** — configure progressões de
    recompensas vinculadas à acumulação de pontos de valor.

    * **Cadeias diárias** — configure recompensas diárias recorrentes para
    motivar logins regulares.

    * **Cadeias de ofertas** — construa ofertas de compra sequenciais com preços
    por etapa e opções de recompensa gratuita.

    * **Venda cruzada** — um método de vendas em que o usuário é oferecido para
    comprar um item com valor adicional.


    ## Chamadas de API


    A API é dividida nos **seguintes grupos**:


    * **<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.

    * **<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.


    # Autenticação


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


    ## Autenticação usando o JWT do usuário


    A autenticação JWT do usuário é usada quando uma solicitação é enviada de um
    navegador, aplicativo móvel ou jogo. Por padrão, o esquema
    `XsollaLoginUserJWT` é aplicado. Para detalhes sobre como criar um token,
    consulte a [documentação Xsolla Login
    API](/pt/api/login/authentication-schemes#getting-user-token).


    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).


    ## Autenticação HTTP básica


    A autenticação HTTP básica é usada para interações de servidor para
    servidor, quando uma chamada de API é enviada diretamente do seu servidor em
    vez de um navegador ou aplicativo móvel do usuário. A autenticação HTTP
    básica com uma [chave de API](/pt/api/getting-started/#api_keys_overview)
    normalmente é utilizada.


    <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>


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


    - para `basicAuth` — `Authorization: Basic <your_authorization_basic_key>`,
    onde `your_authorization_basic_key` é o par `project_id:api_key` codificado
    em Base64

    - para `basicMerchantAuth` — `Authorization: Basic
    <your_authorization_basic_key>`, onde `your_authorization_basic_key` é o par
    `merchant_id:api_key` codificado em Base64


    Você pode encontrar os valores dos parâmetros em [Conta de
    Distribuidor](https://publisher.xsolla.com/):


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

    <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>


    Para mais informações sobre como trabalhar com chaves API, consulte as
    [referências de API](/pt/api/getting-started/#api_keys_overview).


    ## Autenticação com suporte a acesso de convidado


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


    1. **Autenticação com o JWT 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).


    2. **Modo simplificado sem o cabeçalho Authorization.** Esse modo é usado
    apenas para usuários não autorizados e pode ser aplicado apenas para [vendas
    de chaves de
    jogo](/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:
       - `x-unauthorized-id` com um ID de solicitação
       - `x-user` com o endereço de e-mail do usuário codificado em Base64

    ## Links úteis


    - [Chamadas de API por modelo de
    interação](https://developers.xsolla.com/pt/api/catalog/)

    - [Tipos de ponto de
    extremidade](https://developers.xsolla.com/pt/api/catalog/)

    - [Tratamento de erros](https://developers.xsolla.com/pt/api/catalog/)

    - [Chaves de API](https://developers.xsolla.com/pt/api/catalog/)


    # Estrutura da entidade principal


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


    <div class="note"><b>Nota</b><br><br>Algumas chamadas podem incluir campos
    adicionais, mas eles não alteram a estrutura básica.</div>


    **Identificação**


    - `merchant_id` — ID da empresa na [Conta de
    Distribuidor](https://publisher.xsolla.com/)

    - `project_id` — ID do projeto na Conta de Distribuidor

    - `sku` — SKU do item, único dentro do projeto


    **Exibição na loja**


    - `name` — nome do item

    - `description` — descrição do item

    - `image_url` — URL da imagem

    - `is_enabled` — disponibilidade do item

    - `is_show_in_store` — se o item é exibido no catálogo


    Para mais informações sobre como gerenciar a disponibilidade de itens no
    catálogo, consulte a
    [documentação](/pt/items-catalog/catalog-features/items-availability/).


    **Organização**


    - `type` — tipo de item, por exemplo, um item virtual (`virtual_item`) ou
    conjunto (`bundle`)

    - `groups` — grupos aos quais o item pertence

    - `order` — ordem de exibição no catálogo


    **Condições de venda**


    - `prices` — preços em moeda real ou virtual

    - `limits` — limites de compra

    - `periods` — períodos de disponibilidade

    - `regions` — restrições regionais


    **Exemplo de estrutura da entidade principal:**


    ```json

    {
      "attributes": [],
      "bundle_type": "virtual_currency_package",
      "content": [
        {
          "description": {
            "en": "Main in-game currency"
          },
          "image_url": "https://.../image.png",
          "name": {
            "en": "Crystals",
            "de": "Kristalle"
          },
          "quantity": 500,
          "sku": "com.xsolla.crystal_2",
          "type": "virtual_currency"
        }
      ],
      "description": {
        "en": "Crystals x500"
      },
      "groups": [],
      "image_url": "https://.../image.png",
      "is_enabled": true,
      "is_free": false,
      "is_show_in_store": true,
      "limits": {
        "per_item": null,
        "per_user": null,
        "recurrent_schedule": null
      },
      "long_description": null,
      "media_list": [],
      "name": {
        "en": "Medium crystal pack"
      },
      "order": 1,
      "periods": [
        {
          "date_from": null,
          "date_until": "2020-08-11T20:00:00+03:00"
        }
      ],
      "prices": [
        {
          "amount": 20,
          "country_iso": "US",
          "currency": "USD",
          "is_default": true,
          "is_enabled": true
        }
      ],
      "regions": [],
      "sku": "com.xsolla.crystal_pack_2",
      "type": "bundle",
      "vc_prices": []
    }

    ```


    # Fluxo básico de compra


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


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


    ## Criar itens e grupos (Admin)


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


    Exemplos de chamadas de API:

    - [Criar item
    virtual](/pt/api/catalog/virtual-items-currency-admin/admin-create-virtual-item)

    - [Criar conjunto](/pt/api/catalog/bundles-admin/admin-create-bundle)

    - [Criar moeda
    virtual](/pt/api/catalog/virtual-items-currency-admin/admin-create-virtual-currency)


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


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


    Exemplos de chamadas de API:

    - [Criar promoção de
    bônus](/pt/api/liveops/promotions-bonuses/create-bonus-promotion)

    - [Criar recompensa
    diária](/pt/api/liveops/daily-chain-admin/admin-create-daily-chain)

    - [Criar promoção de oferta única no
    catálogo](/pt/api/liveops/promotions-unique-catalog-offers/admin-create-unique-catalog-offer)


    ## Obter informações do item (Cliente)


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


    <div class="notice">
      <b>Aviso</b><br><br>
        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.
    </div>


    <br>


    Exemplos de chamadas de API:

    - [Obter lista de itens
    virtuais](/pt/api/catalog/virtual-items-currency-catalog/get-virtual-items)

    - [Obter lista de grupos de
    itens](/pt/api/catalog/virtual-items-currency-catalog/get-item-groups)

    - [Obter lista de
    conjuntos](/pt/api/catalog/bundles-catalog/get-bundle-list)

    - [Obter lista de itens
    vendáveis](/pt/api/catalog/common-catalog/get-sellable-items)


    <div class="note">
      <b>Nota</b><br><br>
        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.
    </div>


    ## Vender itens


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

    - Compra rápida — vender um SKU várias vezes.

    - Compra de carrinho — o usuário adiciona itens ao carrinho, remove itens e
    atualiza quantidades dentro de um único pedido.


    Se um item for comprado usando moedas virtuais em vez de moedas reais, use a
    chamada de API [Criar pedido com item especificado comprado por moeda
    virtual](/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.


    Para 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>.


    ### Compra rápida


    Use 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.


    <div class="note">
      <b>Nota</b><br><br>
        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.
    </div>


    ### Compra via carrinho


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


    **Configure e compre um carrinho no cliente**


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


    Implemente a seguinte lógica de carrinho:

    1. Após o jogador ter preenchido um carrinho, use a chamada de API
    [Preencher carrinho com itens](/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).

    2. Atualize o conteúdo do carrinho com base nas ações do usuário:
       - 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/).
       - 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/).

    <div class="note">
      <b>Nota</b><br><br>
        Para obter o status atual do carrinho, use a chamada de API Obter carrinho do usuário atual.
    </div>


    3. 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.


    **Configure e compre um carrinho no servidor**


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


    Implemente a seguinte lógica de carrinho:

    1. Após o jogador ter preenchido um carrinho, use a chamada de API
    [Preencher carrinho com itens](/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).

    2. 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.


    ## Abertura da interface de pagamento


    Use o token retornado para abrir a interface de pagamento em uma nova
    janela. Outras maneiras de abrir a interface de pagamento estão descritas na
    [documentação](/pt/payment-ui-and-flow/payment-ui/how-to-open-payment-ui/#open_payment_ui).


    | Ação                           |
    Endpoint                                                                  |

    |:--------------------------------|:--------------------------------------------------------------------------|

    | Abrir no ambiente de produção.  |
    <code>https://secure.xsolla.com/paystation4/?token={token}</code>         |

    | Abrir no modo sandbox.          |
    <code>https://sandbox-secure.xsolla.com/paystation4/?token={token}</code> |


    <div class="note">
      <b>Nota</b><br><br>
        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>.

        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).

        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.
    </div>


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


    Possíveis status do pedido:

    - `new` — pedido criado

    - `paid` — pagamento recebido

    - `done` — item entregue

    - `canceled` — pedido cancelado

    - `expired` — pedido expirado


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

    - [webhooks configurados no seu
    servidor](/pt/virtual-goods/own-ui/server-side-token-generation/set-up-order-tracking/#payments_integration_order_tracking)

    -
    [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)

    - [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)


    ## Links úteis


    - Autenticação

    - [Chamadas de API por modelo de
    interação](/pt/api/catalog/section/authentication)

    - [Teste de
    pagamento](/pt/dev-resources/testing/general-info/#general_overview)

    - [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)

    - [Webhooks](/pt/webhooks/overview)

    - [Limites de taxa](/pt/api/login/rate-limits)

    - [Tratamento de erros](/pt/api/getting-started/#api_errors_handling)

    - [Chaves de API](/pt/api/getting-started/#api_keys_overview)


    # Paginação


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


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


    - `limit` — número de itens por página

    - `offset` — índice do primeiro item na página (a numeração começa em 0)

    - `has_more` — indica se outra página está disponível

    - `total_items_count` — número total de itens


    Exemplo de solicitação:


    ```

    GET /items?limit=20&offset=40

    ```


    Exemplo de resposta:


    ```json

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

    ```


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


    # Formato de data e hora


    Datas e valores de tempo são passados no formato [ISO
    8601](https://en.wikipedia.org/wiki/ISO_8601).


    Os seguintes são suportados:


    - Deslocamento UTC

    - Valor `null` quando não há restrição de tempo para exibir um item

    - [Timestamp Unix](https://www.unixtimestamp.com/) (em segundos) usado em
    alguns campos


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


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


    # Localização


    A Xsolla suporta a tradução de campos voltados para o usuário, como nome e
    descrição do item. Valores traduzidos são passados como um objeto onde o
    código de idioma é usado como chave. A lista completa de idiomas suportados
    está disponível na
    [documentação](/pt/doc/shop-builder/references/supported-languages/).


    **Campos suportados**


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


    - `name`

    - `description`

    - `long_description`


    **Formato de localidade**


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


    - Código de idioma de duas letras: `en`, `ru`

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


    **Exemplos**


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


    ```json

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

    ```


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


    ```json

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

    ```


    # Formato de resposta de erro


    Se ocorrer um erro, a API retorna um status HTTP e um corpo de resposta
    JSON. A lista completa de erros relacionados à loja está disponível na
    [documentação](/pt/dev-resources/references/errors/store-errors/).


    **Exemplo de resposta:**


    ```json

    {
      "errorCode": 1102,
      "errorMessage": "Validation error",
      "statusCode": 422,
      "transactionId": "c9e1a..."
    }

    ```


    - `errorCode` — código de erro.

    - `errorMessage` — descrição curta do erro.

    - `statusCode` — status da resposta HTTP.

    - `transactionId` — ID da solicitação. Retornado apenas em alguns casos.

    - `errorMessageExtended` — detalhes adicionais do erro, como parâmetros da
    solicitação. Retornado apenas em alguns casos.


    **Exemplo de resposta estendida:**


    ```json

    {
      "errorCode": 7001,
      "errorMessage": "Chain not found",
      "errorMessageExtended": {
        "chain_id": "test_chain_id",
        "project_id": "test_project_id",
        "step_number": 2
      },
      "statusCode": 404
    }

    ```


    **Códigos de status HTTP comuns**


    - `400` — solicitação inválida

    - `401` — erro de autenticação

    - `403` — permissões insuficientes

    - `404` — recurso não encontrado

    - `422` — erro de validação

    - `429` — limite de taxa excedido


    **Recomendações**


    - Lide com o status HTTP e o corpo da resposta juntos.

    - Use `errorCode` para processar erros relacionados à lógica da aplicação.

    - Use `transactionId` para identificar solicitações mais rapidamente ao
    analisar erros.
  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.


      Os 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:

      * [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)

      * [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)


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

      * [Obter lista de itens
      virtuais](/pt/api/catalog/virtual-items-currency-catalog/get-virtual-items/)

      * [Obter lista de moedas
      virtuais](/pt/api/catalog/virtual-items-currency-catalog/get-virtual-currency/)

      * [Obter lista de pacotes de moedas
      virtuais](/pt/api/catalog/virtual-items-currency-catalog/get-virtual-currency-package/)

      * [Obter lista de
      conjuntos](/pt/api/catalog/bundles-catalog/get-bundle-list/)

      * [Obter lista de
      jogos](/pt/api/catalog/game-keys-catalog/get-games-list/)


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


      <div class="note">
        <b>Nota</b><br><br>
        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>.
      </div>


      Você 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.


      Usuários não autenticados sempre veem o número máximo de usos da promoção.


      Para 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.


      Para 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.


      **Cenário de configuração e aplicação de limites**


      1. 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`.

      2. 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`.

      3. O usuário faz login.

      4. 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.

      5. O usuário seleciona um item promocional e faz uma compra.

      6. 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.

      7. Você pode atualizar o limite usando as chamadas de API da subseção
      **Gerenciamento**:
         * [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/)
         * [definir um valor de limite específico](/pt/api/liveops/user-limits-admin/set-user-promotion-limit/)
         * [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/)
      8. 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.


      ![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:


      * Descontos — preços reduzidos nos itens selecionados.

      * Bônus — itens concedidos aos usuários ao junto da compra deles.

      * Cupons — códigos que permitem os usuários receberem um ou mais itens
      bônus ao os resgatarem.

      * 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).

      * 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.


      Exemplo de fluxo para configurar uma promoção de desconto:

      1. 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).

      2. 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.

      3. 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.

      4. 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`.

      5. 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/).


      ![Exemplo de configuração de
      promoção](https://cdn.xsolla.net/developers/current/images/api_docs/promo-overview.svg)


      Consulte a nossa documentação para obter informações detalhadas sobre a
      configuração de promoções:

      *
      [Descontos](https://developers.xsolla.com/pt/liveops/promotion-tools/discounts/)

      *
      [Bônus](https://developers.xsolla.com/pt/liveops/promotion-tools/bonuses/)

      *
      [Cupons](https://developers.xsolla.com/pt/liveops/promotion-tools/coupons/)

      * [Códigos
      promocionais](https://developers.xsolla.com/pt/liveops/promotion-tools/promo-codes/)

      * [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.


      <div class="note">
        <p><b>Observação</b></p>
        <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>
      </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.


      <div class="note">
        <p><b>Observação</b></p>
        <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>
      </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.


      <div class="note">
        <p><b>Observação</b></p>
        <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>
      </div>
  - name: promotions-discounts
    x-displayName: Descontos
    description: >-
      Chame métodos API desta subseção para configurar e gerenciar promoções de
      descontos.


      <div class="note">
        <p><b>Observação</b></p>
        <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>
      </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.


      <div class="note">
        <p><b>Observação</b></p>
        <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>
      </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.


      Os seguintes tipos de personalização estão disponíveis:


      * [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.

      * [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.


      <div class="note">
        Observação</b><br><br>
        Você só pode usar um tipo de personalização. Para alterá-lo, siga as
        <a href="/pt/liveops/promotion-tools/personalization/#guides_personalization_change">instruções</a>.
      </div>


      Para configurar a personalização no lado da Xsolla usando a Xsolla API:


      1. 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).

      2. [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.

      3. Configure a personalização para itens ou promoções:
          * 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):
              * 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.
              * 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.
          * 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.

      4. 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.


      **Sequência para configurar e aplicar personalizações do lado da Xsolla
      para o catálogo de itens:**


      ![Personalização para o catálogo de
      itens](https://cdn.xsolla.net/developers/current/images/api_docs/personalization-catalog.png)


      **Sequência para configurar e aplicar personalizações do lado da Xsolla
      para promoções:**


      ![Personalização para
      promoções](https://cdn.xsolla.net/developers/current/images/api_docs/personalization-liveops.png)


      <div class="note">

      <b>Observação</b><br><br>

      Informações detalhadas são fornecidas:

      <ul>
        <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>
        <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>
      </ul>

      </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/).


      Para 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**.


      <b>Exemplo de fluxo de configuração de cadeia de recompensas:</b>


      1. 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).

      2. 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).

      3. 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.

      4. 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`.

      5. 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.

      6. 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).

      7. 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).

      8. 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.


      ![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/).


      As 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**.


      Cenário de configuração de cadeia diária:


      1. 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).

      2. Crie uma cadeia usando a chamada de API [Criar recompensa
      diária](/pt/api/liveops/daily-chain-admin/admin-create-daily-chain).

      3. 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/).

      4. 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.

      5. Configure a concessão de itens via
      [webhooks](/pt/webhooks/section/osnovnye-polozheniya).

      6. 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`.


      ![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/).


      Para 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**.


      <b>Exemplo de fluxo de configuração de cadeia de ofertas:</b>


      1. 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).


      2. 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`.


      3. 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.


      4. Implemente a lógica para trabalhar com itens que os usuários recebem:

          - 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.

          - 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.

      5. 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.


      ![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/).


      A 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.


      Cenário de configuração de venda cruzada:


      1. 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).

      2. 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`.

      3. 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).

      4. 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).

      5. 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

      6. 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.


      ![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.


      As chamadas de API Admin da API Loyalty as Service ocorrem do lado do
      servidor e exigem autenticação básica.


      O URL base para essa API é `https://loyalty-points.xsolla.com/`.


      Para 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>


        <div class="note">
          <strong>Nota</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </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.

        Pode ser usado para permitir que os usuários escolham um entre vários
        itens como bônus.

        O caso usual é escolher um DRM se o cupom contiver um jogo como bônus
        (`type=unit`). <br>


        <div class="note">
          <strong>Nota</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </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:

        * Desaparece da lista de promoções configuradas em seu projeto.

        * Não é mais aplicada ao catálogo de itens. O usuário não pode obter
        itens bônus com esta promoção.


        Após a exclusão, a promoção não pode ser restaurada.

        Os 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.

        A promoção de cupom criada está desabilitada por padrão.

        Ele não estará pronto para resgate até que você o ative.

        Use 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.

        A promoção de cupom criada está desabilitada por padrão.

        Ele não estará pronto para resgate até que você o ative.

        Use 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.


        A 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.


        Na 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.


        Diretrizes sobre a geração de códigos:


        * 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.


        * 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.


        * 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`.


        * Para recuperar a lista de códigos, chame o método [Obter códigos de
        cupom](/pt/api/liveops/promotions-coupons/get-coupon-codes).


        | Parâmetro | Valor |

        |---|---|

        | Número mínimo de códigos por solicitação. | 1 |

        | Número máximo de códigos por solicitação. Use apenas quando precisar
        do maior lote único quanto possível. | 50,000 |

        | 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.

        Depois 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.

        Depois 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.

        Pode ser usado para permitir que os usuários escolham um entre vários
        itens como bônus.

        O caso usual é escolher um DRM se o código promocional contiver um jogo
        como bônus (`type=unit`). <br>


        <div class="note">
          <strong>Nota</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </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:

        * Desaparece da lista de promoções configuradas em seu projeto.

        * 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.


        Após a exclusão, a promoção não pode ser restaurada.

        Os 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.


        A promoção de código promocional criada inicia desativada por padrão.

        Ele não estará pronto para resgate até que você o ative.

        Use 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.


        A promoção de código promocional criada inicia desativada por padrão.

        Ele não estará pronto para resgate até que você o ative.

        Use 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.


        A 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.


        Na 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.


        Diretrizes sobre a geração de códigos:


        * 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.


        * 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.


        * 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`.


        * 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).


        | Parâmetro | Valor |

        |---|---|

        | Número mínimo de códigos por solicitação. | 1 |

        | Número máximo de códigos por solicitação. Use apenas quando precisar
        do maior lote único quanto possível. | 50,000 |

        | 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.

        As promoções oferecem um desconto (%) nos itens.
        O 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.

        As promoções oferecem um desconto (%) nos itens.
        O 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.


        <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>


        As promoções oferecem um desconto (%) nos itens.

        O 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.

        As promoções oferecem um desconto (%) nos itens.
        O 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,

                      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.

                          O 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:

        * Desaparece da lista de promoções configuradas no seu projeto.

        * 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.


        Apó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.


        A promoção adiciona itens bônus gratuitos à compra feita por um usuário.

        A 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.


        A promoção adiciona itens bônus gratuitos à compra feita por um usuário.

        A 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.


        <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>


        A promoção adiciona itens bônus gratuitos à compra feita por um usuário.

        A 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.


        A promoção adiciona itens bônus gratuitos à compra feita por um usuário.

        A 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:

        * Desaparece da lista de promoções configuradas no seu projeto.

        * 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.


        Apó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>


        <div class="note">
          <strong>Nota</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </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:

        * Desaparece da lista de promoções configuradas no seu projeto.

        * 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.


        Apó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.

        A promoção de oferta de catálogo exclusiva criada está desativada por
        padrão.

        Ele não pode ser resgatado até que você o ative.

        Use 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.

        A promoção exclusiva de oferta de catálogo criada está desativada por
        padrão.

        Ela não pode ser resgatada até que você a ative.

        Use 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.


        A 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:

        * [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.


        A 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:

        *
        [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`.


        Para configurar o limite de código em si, vá para a seção Admin:

        * [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`.


        Para configurar o limite de código em si, vá para a seção Admin:

        *
        [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.


        <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.


        A 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:

        * [Promoções de
        Desconto](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-discounts/)

        * [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.


        A 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:

        * [Promoções de
        Desconto](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-discounts/)

        * [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.


        A 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:

        * [Promoções de
        Desconto](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-discounts/)

        * [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.


        A 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:

        * [Promoções de
        Desconto](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-discounts/)

        * [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.


        A 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:

        * [Promoções de
        Desconto](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-discounts/)

        * [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.


        A 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:

        * [Promoções de
        Desconto](https://developers.xsolla.com/pt/api/shop-builder/tag/promotions-discounts/)

        * [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.


        Observe que essa solicitação PUT substitui todos os pontos de valor
        definidos anteriormente para itens no projeto.


        Para 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.


        Se 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.


        Princípios de atualização de pontos de valor:
          * Se um item ainda não tiver pontos de valor, enviar um valor diferente de zero no campo `amount` os criará.
          * Se um item já tiver pontos de valor, o envio de um valor diferente de zero no campo `amount` os atualizará.
          * Se `amount` for definido como 0, os pontos de valor existentes para esse item serão excluídos.

        Ao 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.


        Uma ú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.


        <div class="notice">
          <strong>Atenção</strong><br><br>
            Todos os projetos têm uma limitação no número de itens que você pode
            obter na resposta. O valor padrão e máximo é <strong>50 itens
            por resposta.</strong> Para obter mais dados página por página, use os campos <b>limit</b>
            e <b>offset</b>.
        </div>


        <br>


        <div class="note">
          <strong>Nota</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </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>


        <div class="note">
          <strong>Nota</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </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>


        <div class="note">
          <strong>Nota</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </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>


        <div class="note">
          <strong>Nota</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </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>


        <div class="note">
          <strong>Nota</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </div>
  /v3/project/{project_id}/admin/reward_chain:
    get:
      summary: Obter lista de cadeias de recompensas
      description: >-
        Obtém lista de cadeias de recompensa.


        <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.


        <div class="notice"><strong>Aviso</strong>
          <br><br>
          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.
        </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.


        <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.


        <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>


        <br>


        <div class="note">
          <strong>Nota</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </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>


        <div class="note">
          <strong>Nota</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </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>


        <div class="note">
          <strong>Nota</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </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.


        <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>


        <br>


        <div class="note">
          <strong>Nota</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </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>


        <div class="note">
          <strong>Nota</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </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.


        <div class="notice">
          <strong>Aviso</strong><br>
            <br>Use essa chamada somente para etapas gratuitas na cadeia de ofertas.
            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>.
        </div>


        <br>


        <div class="note">
          <strong>Nota</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </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.


        Para 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.


        Para fins de teste, use este URL:
        `https://sandbox-secure.xsolla.com/paystation4/?token={token}`.


        <div class="notice">
          <strong>Aviso</strong> <br><br>
            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>.
        </div>


        <br>


        <div class="notice">
         <strong>Aviso</strong><br><br>
            Use essa chamada somente para etapas da cadeia de ofertas pagas.
            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>.
        </div>


        <br>


        <div class="note">
          <strong>Nota</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </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.


        <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.


        Apó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>


        Ao 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.


        Quando a cadeia de ofertas é desativada, os usuários perdem
        temporariamente o acesso a ela, mas seu progresso é preservado.


        Depois 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>

        <div class="notice">
          <strong>Aviso</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </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>

        <div class="notice">
          <strong>Aviso</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </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>


        <div class="notice">
          <strong>Aviso</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </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>


        <div class="note">
          <strong>Nota</strong><br><br>
            Esta chamada de API usa um JWT de usuário para autorização.<br><br>
            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.
        </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

        conter o cabeçalho `Authorization: Basic
        <your_authorization_basic_key>`,

        onde `your_authorization_basic_key` é o par `project_id:api_key`

        codificado de acordo com o padrão Base64.


        Você pode usar `merchant_id` em vez de `project_id` se precisar. Isso
        não afeta a funcionalidade.


        Vá para a [Conta de Distribuidor](https://publisher.xsolla.com/) para
        encontrar valores dos parâmetros:


        * `merchant_id` é mostrado:
          * Na seção **Configurações da empresa > Empresa**
          * No URL na barra de endereço do navegador em qualquer página da Conta de Distribuidor. O URL tem o seguinte formato: `https://publisher.xsolla.com/<merchant_id>`.
        * `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:
          * [Configurações da empresa > Chaves de API](https://publisher.xsolla.com/0/settings/api_key)
          * [Configurações do projeto > Chaves de API](https://publisher.xsolla.com/0/projects/0/edit/api_key)

        {% html name="div" attrs={"class": "notice"} %}

        **Aviso**


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

        {% /html %}


        * `project_id` é mostrado:
          * Na Conta de Distribuidor ao lado do nome do projeto.
          * 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>`.

        Para 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).


        Alternativamente, 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:


        1. 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.


        Alternativamente, você pode usar um [token para abrir a interface de
        pagamento](/pt/api/pay-station/token/create-token).


        2. 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:

        * `x-unauthorized-id` com um ID de solicitação

        * `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

        conter o cabeçalho `Authorization: Basic
        <your_authorization_basic_key>`,

        onde `your_authorization_basic_key` é o par `merchant_id:api_key`

        codificado de acordo com o padrão Base64.


        Vá para a [Conta de Distribuidor](https://publisher.xsolla.com/) para
        encontrar valores dos parâmetros:


        * `merchant_id` é mostrado:
          * Na seção **Configurações da empresa > Empresa**
          * No URL na barra de endereço do navegador em qualquer página da Conta de Distribuidor. O URL tem o seguinte formato: `https://publisher.xsolla.com/<merchant_id>`
        * `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).


        Para 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

        onde 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

        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: 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.

        O 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.

        O preço do item do carrinho será diminuído usando um valor
        calculado usando essa porcentagem e, em seguida, arredondado
        para 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.

                O 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.

        O 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>.


        Possíveis valores:

        - `eq` — Equivalentes

        - `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>.


        Possíveis valores:

        - `eq` — Equivalentes

        - `ne` — Não equivalentes

        - `gt` — Maior

        - `ge` — Maior ou equivalente

        - `lt` — Menor

        - `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>.


        Possíveis valores:

        - `eq` — Equivalente

        - `ne` — Não equivalente

        - `lt` — Anterior

        - `gt` — Posterior

        - `le` — Anterior ou equivalente

        - `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.

            Determina 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.

            Determina 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:


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


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


        Se nenhuma promoção no nível do item for aplicada, é retornada uma
        matriz vazia.
      items:
        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.


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


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

        independentemente do valor `limit_exceeded_visibility`.


        Possíveis valores:

        - `show` — O item é retornado nas chamadas API de recuperação de
        catálogo após o limite de compra ser atingido. Nas chamadas API

        de recuperação de catálogo, quando o limite for atingido, o item será
        retornado com a marcação `can_be_bought: false`. A próxima

        data de redefinição é retornada em  `reset_next_date`.

        - `hide` — O item não é retornado nas chamadas API de recuperação de
        catálogo após o limite de compra ser atingido, até

        o limite ser redefinido.
      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.


            Possíveis valores:

            - `ge` — Maior ou igual

            - `gt` — Maior do que

            - `le` — Menor ou igual

            - `lt` — Menor do que

            - `eq` — Equivalente

            - `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>
         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>
         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>
         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>
         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

            onde 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.

            Determine 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.

            Determine 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.


            Se 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.

            Determina 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.


        Para configurar a personalização, você precisa passar `false`. A lógica
        da exibição da cadeia será a seguinte:
          * 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.
          * 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:

        * Se `true`, a cadeia de recompensas será redefinida após a data de
        término.

        * Se `false`, a cadeia de recompensas não será redefinida após a data de
        término.


        <br>


        <div class="notice"><strong>Aviso</strong><br><br>

        Não pode ser <code>true</code> se: <br>

        <ul>
          <li>Houver um período de redefinição definido em <code>recurrent_schedule</code>.</li>
          <li>O valor <code>null</code> for passado em <code>periods.date_until</code>.</li>
        </ul>

        </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.

            Determine 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.

            Determina 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.

            Determine 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.


        Possíveis valores:

        - `calendar_hard` — Desbloqueia a recompensa da próxima etapa a cada 24
        horas. Qualquer recompensa de etapa não resgatada é permamentemente

        perdida quando a recompensa da próxima etapa se torna disponível.

        - `rolling_skippable` — Desbloqueia a recompensa da próxima etapa a cada
        24 horas com base em `date_start`. A progressão é sequencial:

        uma nova recompensa não será desbloqueada até que a anterior seja
        resgatada. Se um usuário pular um ou mais dias, ele continua

        de onde parou. Os dias perdidos não concedem múltiplas recompensas.

        - `rolling_unskippable` — Desbloqueia a recompensa da próxima etapa a
        cada 24 horas com base em `date_start`. A progressão é

        sequencial: uma nova recompensa não será desbloqueada até que a anterior
        seja resgatada. Porém, se um usuário pular um dia,

        a 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.


            Possíveis valores:

            - `claimed` — A etapa já foi resgatada.

            - `claimable` — A etapa pode ser resgatada.

            - `blocked` — A etapa não pode ser resgatada:
              - Para usuários não autorizados: todas as etapas estão bloqueadas.
              - Para `calendar_hard`: a etapa não foi resgatada e agora está no passado.
              - Para `rolling_skippable`: a etapa está bloqueada até que a etapa anterior seja resgatada.
            - `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

              onde 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.


            Possíveis valores:

            - `consumable` — Um item que desaparece do inventário após o uso
            (ex.: munição)..

            - `non_consumable` — Um item que permanece no inventário por um
            tempo ilimitado.

            - `non_renewing_subscription` — Item de tempo limitado que pode
            representar acesso a serviços ou conteúdos por um período
            específico.
          enum:
            - consumable
            - non_consumable
            - non_renewing_subscription
        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.


        This 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.


                        Possíveis valores:

                        - `consumable` — Um item que desaparece do inventário
                        após o uso (ex.: munição)..

                        - `non_consumable` — Um item que permanece no inventário
                        por um tempo ilimitado.

                        - `non_renewing_subscription` — Item de tempo limitado
                        que pode representar acesso a serviços ou conteúdos por
                        um período específico.
                      enum:
                        - consumable
                        - non_consumable
                        - non_renewing_subscription
                    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.


                        Possíveis valores:

                        - `consumable` — Um item que desaparece do inventário
                        após o uso (ex.: munição)..

                        - `non_consumable` — Um item que permanece no inventário
                        por um tempo ilimitado.

                        - `non_renewing_subscription` — Item de tempo limitado
                        que pode representar acesso a serviços ou conteúdos por
                        um período específico.
                      enum:
                        - consumable
                        - non_consumable
                        - non_renewing_subscription
                    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.

                            O 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,

                  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: Акция
              promotion_periods:
                $ref: '#/components/schemas/promotion_periods'
              discount:
                type: object
                properties:
                  percent:
                    type: string
                    description: >-
                      Percentual de desconto.

                      O 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
