Saltar para o conteúdo

Visão geral

  • Versão: 2.0
  • Servidores: https://api.xsolla.com/merchant/v2/

Essa referência API descreve os pontos de extremidade na gerência de assinaturas, cupons e promoções. Para obter mais informações sobre as Assinaturas, veja o guia do produto e o glossário.

Transferir a descrição da OpenAPI
Idiomas
Servidores
Mock server
https://xsolla.redocly.app/_mock/pt/api/subscriptions/
Operações

Pedido

Você pode criar um token com parâmetros de usuário arbitrários. Você envia esses parâmetros ao obter o token e os recebe de volta após um pagamento bem-sucedido. Um token só pode conter parâmetros descritos neste documento ou predefinidos por você.

Se algum parâmetro for enviado no formato errado ou tiver o tipo errado, nenhum token será emitido. Você receberá um código HTTP 422 com a descrição do erro no corpo JSON. Em extended_message você receberá uma informação sobre quais parâmetros exatos foram enviados incorretamente.

Aviso

Esta chamada de API não contém o trajeto-parâmetro project_id, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.

Segurança
basicAuth
Caminho
merchant_idintegerobrigatório

ID de comerciante.

Corpoapplication/jsonobrigatório
custom_parametersobject

Você pode passar parâmetros adicionais no token no objeto custom_parameters para configurar filtros antifraude. Os parâmetros recomendados são exibidos na lista suspensa. Veja a documentação da Estação de Pagamentos.

custom_parameters.​active_datestring

Última data visto, de acordo com o ISO 8601.

custom_parameters.​additional_verificationboolean

Se o jogador utiliza procedimentos de verificação de conta ou não.

custom_parameters.​character_customizedboolean

Se o jogador personalizou seu personagem ou não.

custom_parameters.​chat_activityboolean

Se o jogador utiliza a função de chat ou não.

custom_parameters.​completed_tasksinteger

Quantidade de tarefas/objetivos concluídos.

custom_parameters.​forum_activityboolean

Se o jogador utiliza a função do fórum ou não.

custom_parameters.​items_usedboolean

Se o jogador usa itens de jogo comprados ou não.

custom_parameters.​karma_pointsinteger

Karma do jogador.

custom_parameters.​last_change_password_datestring

Data da última alteração de senha, de acordo com o ISO 8601.

custom_parameters.​non_premium_currencyinteger(float)

Quantidade de moedas não Premium.

custom_parameters.​notifications_enabledboolean

Se o jogador habilitou notificações ou não.

custom_parameters.​profile_completedboolean

Se o jogador adicionou informações adicionais ao seu perfil ou não.

custom_parameters.​profile_image_addedboolean

Se o jogador enviou uma imagem de perfil nova ou não.

custom_parameters.​pvp_activityboolean

Se o jogador participa de batalhas JvJ ou não.

custom_parameters.​registration_datestring

Data de criação da conta, de acordo com o ISO 8601.

custom_parameters.​session_timestring

Tempo de sessão médio, de acordo com o ISO 8601.

custom_parameters.​social_networks_addedboolean

Se o jogador conectou seus perfis de mídias sociais ou não.

custom_parameters.​total_bansinteger

Quantidade de vezes que o jogador foi banido do chat/fórum.

custom_parameters.​total_charactersinteger

Quantidade de personagens no jogo.

custom_parameters.​total_clansinteger

Quantidade de clãs dos quais o jogador fez parte.

custom_parameters.​total_friendsinteger

Quantidade de amigos.

custom_parameters.​total_game_eventsinteger

Quantidade de eventos no jogo dos quais o jogador participou.

custom_parameters.​total_giftsinteger

Quantidade de presentes no jogo que o jogador enviou/recebeu.

custom_parameters.​total_hoursinteger

Tempo total de horas no jogo.

custom_parameters.​total_inventory_valueinteger(float)

Valor total do inventário (moeda do jogo).

custom_parameters.​total_suminteger(float)

Quantia total de pagamentos.

custom_parameters.​tutorial_completedboolean

Se o jogador concluiu o tutorial do jogo ou não.

custom_parameters.​unlocked_achievementsinteger

Quantidade de conquistas desbloqueadas.

custom_parameters.​user_levelinteger

Nível, reputação ou classificação do jogador.

custom_parameters.​win_rateinteger

Taxa de vitórias.

purchaseobject

Objeto que contém dados de compra.

Exemplo: {"checkout":{"amount":10,"currency":"USD"},"subscription":{"gift":{"email":"recipient_email@email.com","recipient":"test_recipient_v1"}}}
purchase.​checkoutobject

Objeto que contém dados de pagamento.

Exemplo: {"amount":10,"currency":"USD"}
purchase.​checkout.​amountinteger(float)

Quantia de compra.

Exemplo: 10
purchase.​checkout.​currencystring

Moeda da compra. Código da moeda de três letras de acordo com o ISO 4217.

Exemplo: "USD"
purchase.​subscriptionobject

Dados de assinatura.

Exemplo: {"gift":{"email":"recipient_email@email.com","recipient":"test_recipient_v1"}}
purchase.​subscription.​available_plansArray of strings

Planos de assinatura para exibir na interface de pagamento.

purchase.​subscription.​currencystring

Moeda do plano de assinatura a ser utilizado em todos os cálculos.

purchase.​subscription.​giftobject

Informações sobre vale-assinatura.

Exemplo: {"email":"recipient_email@email.com","recipient":"test_recipient_v1"}
purchase.​subscription.​gift.​anonymousboolean

Se esconder o nome do remetente. Se true, o nome do remetente ficará oculto na notificação por e-mail. O padrão é false.

purchase.​subscription.​gift.​emailstringobrigatório

E-mail do destinatário.

Exemplo: "recipient_email@email.com"
purchase.​subscription.​gift.​messagestring

Mensagem para o destinatário.

purchase.​subscription.​gift.​recipientstringobrigatório

ID do destinatário.

Exemplo: "test_recipient_v1"
purchase.​subscription.​gift.​redirect_urlstring

Fornece um link para uma página com mais informações sobre o vale-assinatura ou para a página de criação de conta. O destinatário pode navegar até esta página a partir do e-mail de notificação.

purchase.​subscription.​operationstring

O tipo de operação aplicado ao plano de assinatura do usuário. Para alterar o plano de assinatura, passe o valor change_plan. Você precisa especificar o novo ID de plano no parâmetro purchase.subscription.plan_id.

purchase.​subscription.​plan_idstring

ID externo do plano de assinatura. Pode ser encontrado na seção Assinaturas > Planos de assinatura da Conta de Distribuidor.

purchase.​subscription.​product_idstring

ID de produto.

purchase.​subscription.​trial_daysinteger

O período de teste em dias.

settingsobject

Configurações do projeto personalizadas.

Exemplo: {"currency":"USD","language":"en","project_id":16184,"ui":{"components":{"virtual_currency":{"custom_amount":true}},"desktop":{"virtual_item_list":{"button_with_price":true,"layout":"list"}},"size":"medium"}}
settings.​currencystring

Moeda de compra preferencial. Código da moeda de três letras de acordo com o ISO 4217.

Exemplo: "USD"
settings.​external_idstring

ID de transação no jogo. Precisa ser único para cada pagamento de um usuário.

settings.​languagestring

Idioma da interface. Código de idioma de duas letras minúsculas.

Exemplo: "en"
settings.​modestring

Defina como sandbox para testar o processo de pagamento. Nesse caso, use https://sandbox-secure.xsolla.com para acessar a interface de pagamento de testes.

settings.​payment_methodinteger

ID de método de pagamento.

settings.​payment_widgetstring

Widget de pagamento. Pode ser paybycash ou giftcard. Se o parâmetro for definido, o usuário é redirecionado ao widget Pay by Cash ou Gift Cards, respectivamente.

Enum"paybycash""giftcard"
settings.​project_idintegerobrigatório

ID Xsolla do jogo. Pode ser encontrado na Conta de Distribuidor.

Exemplo: 16184
settings.​redirect_policyobject

Configurações das políticas de redirecionamento.

settings.​redirect_policy.​autoredirect_from_status_pageboolean

Se o usuário deve ser redirecionado automaticamente da página de status ou não.

settings.​redirect_policy.​delayinteger

Atraso (em segundos) após o qual o usuário é redirecionado automaticamente para o URL de retorno.

settings.​redirect_policy.​manual_redirection_actionstring

Comportamento do Portal de Pagamentos acionado pelo usuário ao clicar no botão fechar ou Voltar ao jogo. Pode ser redirect (por padrão) e postmessage. Se definido como redirect, o usuário é redirecionado ao URL passado no token ou especificado na Conta de Distribuidor. Se for postmessage, o usuário não é redirecionado para outras páginas. Ao clicar no ícone de fechar, o evento close é enviado. Ao clicar no botão Voltar ao jogo, o evento return é enviado.

Enum"redirect""postmessage"
settings.​redirect_policy.​redirect_button_captionstring

Texto no botão para o redirecionamento manual.

settings.​redirect_policy.​redirect_conditionsstring

Status de pagamento para o qual um usuário é redirecionado ao URL de retorno. Pode ser none, successful, successful_or_canсeled, ou any.

Enum"none""successful""successful_or_canceled""any"
settings.​redirect_policy.​status_for_manual_redirectionstring

Status de pagamento para o qual um botão que redireciona o usuário ao URL de retorno é exibido. Pode ser none, successful, successful_or_canсeled, ou any.

Enum"none""successful""successful_or_canceled""any"
settings.​return_urlstring

Página para redirecionar o usuário após um pagamento. Os parâmetros user_id, foreigninvoice, invoice_id e status serão adicionados automaticamente ao link.

settings.​uiobject

Configurações da interface.

Exemplo: {"components":{"virtual_currency":{"custom_amount":true}},"desktop":{"virtual_item_list":{"button_with_price":true,"layout":"list"}},"size":"medium"}
settings.​ui.​componentsobject

Configurações do menu.

Exemplo: {"virtual_currency":{"custom_amount":true}}
settings.​ui.​components.​subscriptionsobject

Configurações do submenu dos planos de assinatura.

settings.​ui.​components.​subscriptions.​hiddenboolean

Se o submenu deve ser exibido ou não.

settings.​ui.​components.​subscriptions.​orderinteger

Posição do submenu no menu.

settings.​ui.​components.​virtual_currencyobject

Moeda virtual das configurações do submenu.

Exemplo: {"custom_amount":true}
settings.​ui.​components.​virtual_currency.​custom_amountboolean

Se o usuário pode inserir uma quantia arbitrária da moeda virtual na interface de pagamento ou não.

Exemplo: true
settings.​ui.​components.​virtual_currency.​hiddenboolean

Se o submenu deve ser exibido ou não.

settings.​ui.​components.​virtual_currency.​orderinteger

Posição do submenu no menu.

settings.​ui.​components.​virtual_itemsobject

Configurações de itens virtuais do submenu.

settings.​ui.​components.​virtual_items.​hiddenboolean

Se o submenu deve ser exibido ou não.

settings.​ui.​components.​virtual_items.​orderinteger

Posição do submenu no menu.

settings.​ui.​components.​virtual_items.​selected_groupstring

Grupo a ser exibido depois de abrir a aba de itens virtuais.

settings.​ui.​components.​virtual_items.​selected_itemstring

Item a ser exibido depois de abrir a aba de itens virtuais (SKU do item).

settings.​ui.​desktopobject

Configurações de interface para a versão desktop.

Exemplo: {"virtual_item_list":{"button_with_price":true,"layout":"list"}}
settings.​ui.​desktop.​headerobject

Configurações de cabeçalho.

settings.​ui.​desktop.​header.​close_buttonboolean

Se o botão Fechar no Portal de Pagamentos para o desktop deve ser exibido ou não. O botão fecha o Portal de Pagamentos e redireciona o usuário para o URL especificado no parâmetro settings.return_url. false por padrão.

settings.​ui.​desktop.​header.​is_visibleboolean

Se o cabeçalho na interface de pagamento deve ser exibido ou não.

settings.​ui.​desktop.​header.​typestring

Como mostrar o cabeçalho. Pode ser compact (oculta o nome do projeto e ID do usuário) ou normal (padrão).

Enum"compact""normal"
settings.​ui.​desktop.​header.​visible_logoboolean

Se true, o cabeçalho exibirá seu logotipo (primeiro, forneça a imagem do seu Gerente de Sucesso do Cliente).

settings.​ui.​desktop.​header.​visible_nameboolean

Se o nome do projeto deve ser exibido no cabeçalho ou não.

settings.​ui.​desktop.​header.​visible_purchaseboolean

Se a descrição da compra (purchase.description.value) deve ser exibida no cabeçalho ou não. true por padrão.

settings.​ui.​desktop.​subscription_listobject

Configurações para a lista de planos de assinatura.

settings.​ui.​desktop.​subscription_list.​descriptionstring

Qualquer texto para ser exibido acima da lista de planos de assinatura disponíveis na interface de pagamento.

settings.​ui.​desktop.​subscription_list.​display_local_priceboolean

Se true, se se a moeda local do usuário for diferente da definida no plano de assinatura, o usuário poderá ver ambos preços: um na moeda local, o outro na moeda básica.

settings.​ui.​desktop.​subscription_list.​layoutstring

Modelo de lista. Pode ser list (padrão) ou grid.

Enum"list""grid"
settings.​ui.​desktop.​virtual_currency_listobject

Configurações para a lista de moedas virtuais.

settings.​ui.​desktop.​virtual_currency_list.​button_with_priceboolean

Se true, o preço será exibido no botão. Se false, o preço será exibido do lado esquerdo do botão. false por padrão.

settings.​ui.​desktop.​virtual_currency_list.​descriptionstring

Qualquer texto a ser exibido acima da lista de moedas virtuais.

settings.​ui.​desktop.​virtual_item_listobject

Configurações da lista de itens virtuais.

Exemplo: {"button_with_price":true,"layout":"list"}
settings.​ui.​desktop.​virtual_item_list.​button_with_priceboolean

Se true, o preço será exibido no botão. Se false, o preço será exibido do lado esquerdo do botão. false por padrão.

Exemplo: true
settings.​ui.​desktop.​virtual_item_list.​layoutstring

Modelo de lista. Pode ser list (padrão) ou grid.

Enum"list""grid"
Exemplo: "list"
settings.​ui.​desktop.​virtual_item_list.​viewstring

Exibe grupos de itens virtuais em um menu vertical/horizontal. Pode ser horizontal_navigation ou vertical_navigation (padrão).

Enum"horizontal_navigation""vertical_navigation"
settings.​ui.​headerobject
settings.​ui.​header.​visible_virtual_currency_balanceboolean

Se esse elemento pode ser ocultado ou não na interface de pagamento. true por padrão.

settings.​ui.​is_prevent_external_link_openboolean

Se os links de redirecionamento a recursos externos podem ou não ser desativados. true por padrão. Ao clicar em um link externo, o evento external-link-open é enviado através do mecanismo postMessage. O endereço para o link redirecionado é passado no parâmetro url.

settings.​ui.​license_urlstring

Link ao CLUA.

settings.​ui.​mobileobject
settings.​ui.​mobile.​footerobject
settings.​ui.​mobile.​footer.​is_visibleboolean

Se o rodapé deve ser oculto na vesão móvel da interface de pagamento.

settings.​ui.​mobile.​headerobject
settings.​ui.​mobile.​header.​close_buttonboolean

Se o botão Fechar no Portal de Pagamentos para dispositivos móveis deve ser exibido ou não. O botão fecha o Portal de Pagamentos e redireciona o usuário para o URL especificado no parâmetro settings.return_url. false por padrão.

settings.​ui.​mobile.​modestring

Um usuário só pode pagar usando os métodos de pagamento salvos. Pode ser saved_accounts.

Valor"saved_accounts"
settings.​ui.​modestring

Modo de interface no Portal de Pagamentos. Pode ser apenas user_account. O cabeçalho contém apenas o menu de navegação da conta, e o usuário não pode selecionar um produto ou fazer um pagamento. Esse modo só está disponível no desktop.

settings.​ui.​sizestring

Tamanho da interface de pagamento. Pode ser:

  • pequeno: o menor tamanho possível para a interface de pagamento. Use esse valor quando o tamanho da janela for consideravelmente limitado (dimensões: 620 x 630)
  • médio: o tamanho recomendado. Use esse valor para exibir a interface de pagamento em uma caixa de luz (lightbox) (dimensões: 740 x 760)
  • grande: o tamanho ideal para exibir a interface de pagamento em uma nova janela ou aba (dimensões: 820 x 840)
Enum"small""medium""large"
Exemplo: "medium"
settings.​ui.​themestring

Tema da interface de pagamento. Pode ser default ou default_dark.

Enum"default""default_dark"
settings.​ui.​user_accountobject

Dados da conta do usuário.

settings.​ui.​user_account.​historyobject

Submenu Histórico.

settings.​ui.​user_account.​history.​enableboolean

Se o submenu deve ser exibido ou não. false por padrão.

settings.​ui.​user_account.​history.​orderinteger

Posição do submenu no menu.

settings.​ui.​user_account.​infoobject

Página Minha conta.

settings.​ui.​user_account.​info.​enableboolean

Se o submenu deve ser exibido ou não. false por padrão.

settings.​ui.​user_account.​info.​orderinteger

Posição do submenu no menu.

settings.​ui.​user_account.​payment_accountsobject

Submenu Minhas contas de pagamento.

settings.​ui.​user_account.​payment_accounts.​enableboolean

Se o submenu deve ser exibido ou não. false por padrão.

settings.​ui.​user_account.​payment_accounts.​orderinteger

Posição do submenu no menu.

settings.​ui.​user_account.​subscriptionsobject

Submenu Gerenciar assinaturas.

settings.​ui.​user_account.​subscriptions.​enableboolean

Se o submenu deve ser exibido ou não. false por padrão.

settings.​ui.​user_account.​subscriptions.​orderinteger

Posição do submenu no menu.

settings.​ui.​versionstring

Tipo de dispositivo. Pode ser desktop (padrão) ou mobile.

Enum"desktop""mobile"
userobject

Dados do usuário.

Exemplo: {"age":19,"country":{"allow_modify":true,"value":"US"},"email":{"value":"john.smith@mail.com"},"id":{"value":"user_2"},"name":{"value":"John Smith"}}
user.​ageinteger

Idade do usuário.

Exemplo: 19
user.​attributesobject

Os atributos do usuário por filtrar a lista de itens, representado como um conjunto JSON válido de pares de valores-chave.

user.​countryobject
Exemplo: {"allow_modify":true,"value":"US"}
user.​country.​allow_modifyboolean

Se um usuário pode alterar o país na interface de pagamento. Se country.value for passado no token, o valor será false por padrão.

Exemplo: true
user.​country.​valuestring

Código de país de duas letras maiúsculas, de acordo com o ISO 3166-1 alpha-2.

Exemplo: "US"
user.​emailobject

O objeto user.email é uma parte integral para a construção de modelos antifraude e ajuda a aumentar as taxas de aceitação. É um requisito tanto da Xsolla quanto dos sistemas de pagamento. Se o parâmetro não for passado, o campo necessário para inserir o e-mail aparece na página de pagamento. O usuário recebe o recibo da compra no e-mail passado no parâmetro ou no definido na página de pagamento.

Exemplo: {"value":"john.smith@mail.com"}
user.​email.​valuestringobrigatório

E-mail do usuário. Deve ser válido, de acordo com o protocolo RFC 822.

Exemplo: "john.smith@mail.com"
user.​idobjectobrigatório
Exemplo: {"value":"user_2"}
user.​id.​valuestringobrigatório

ID de usuário.

Exemplo: "user_2"
user.​is_legalboolean

Se o usuário é uma entidade legal.

user.​legalobject

Objeto com dados da entidade legal. O objeto e todos os seus parâmetros são necessários se user.is_legal for true.

user.​legal.​addressstring

Endereço legal completo.

user.​legal.​countrystring

País da incorporação. É utilizado o código de país de duas letras maiúsculas, de acordo com o ISO 3166-1 alpha-2.

user.​legal.​namestring

Nome legal completo.

user.​legal.​vat_idstring

Identificação de contribuinte individual.

user.​nameobject
Exemplo: {"value":"John Smith"}
user.​name.​valuestring

Nome de exibição do usuário.

Exemplo: "John Smith"
user.​phoneobject
user.​phone.​valuestring

Número de telefone do usuário.

user.​public_idobject
user.​public_id.​valuestring

Um parâmetro único que identifica o usuário, conhecido pelo usuário (e-mail, nome de exibição, etc.). Permite que o usuário faça compras fora da loja do jogo (exemplo: via quiosques de dinheiro).

user.​steam_idobject
user.​steam_id.​valuestring

ID do Steam.

user.​tracking_idobject
user.​tracking_id.​valuestring

ID de rastreamento único (usado em campanhas de marketing).

user.​utmobject

Atributos de tráfego.

user.​utm.​utm_campaignstring

Título da campanha, transliterado ou traduzido para Inglês.

user.​utm.​utm_contentstring

Conteúdo da campanha.

user.​utm.​utm_mediumstring

Canal de tráfego (anúncios contextuais, anúncios de mídia, listas de e-mail, etc.).

user.​utm.​utm_sourcestring

Fonte de tráfego.

user.​utm.​utm_termstring

Palavra-chave da campanha. Se definida, os atributos serão feitos com base nas palavras-chaves usadas na segmentação de anúncios, em vez de buscas específicas. No Google Analytics, o utm_term especificado é parte do relatório de termos de busca gerais.

curl -i -X POST \
  -u <username>:<password> \
  'https://xsolla.redocly.app/_mock/pt/api/subscriptions/merchants/{merchant_id}/token' \
  -H 'Content-Type: application/json' \
  -d '{
    "purchase": {
      "checkout": {
        "amount": 10,
        "currency": "USD"
      },
      "subscription": {
        "gift": {
          "email": "recipient_email@email.com",
          "recipient": "test_recipient_v1"
        }
      }
    },
    "settings": {
      "currency": "USD",
      "language": "en",
      "project_id": 16184,
      "ui": {
        "components": {
          "virtual_currency": {
            "custom_amount": true
          }
        },
        "desktop": {
          "virtual_item_list": {
            "button_with_price": true,
            "layout": "list"
          }
        },
        "size": "medium"
      }
    },
    "user": {
      "age": 19,
      "country": {
        "allow_modify": true,
        "value": "US"
      },
      "email": {
        "value": "john.smith@mail.com"
      },
      "id": {
        "value": "user_2"
      },
      "name": {
        "value": "John Smith"
      }
    }
  }'

Respostas

Criado.

Corpoapplication/json
tokenstring
Resposta
application/json
{ "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT" }
Operações
Operações
Operações
Operações
Operações
Operações
Operações