Saltar para o conteúdo

Visão geral

  • Versão: 2.0.0
  • Servidores:
    • https://api.xsolla.com/api

Pay Station permite que os parceiros monetizem seus produtos, fornecendo aos usuários uma interface conveniente para pagar compras no jogo na loja. Para configurar a abertura da interface de pagamento, consulte estas istruções.

A Pay Station API fornece os grupos de chamadas a seguir:

  • Token — inclui a chamada de API para gerar um token com parâmetros de usuário arbitrários para processar pagamentos adicionais pela interface de pagamento.
  • Tokenização — inclui chamadas de API para processar pagamentos com segurança, sem abrir a interface de pagamento ou envolver o usuário.
  • Relatórios — inclui chamadas de API para retornar dados sobre transações de usuários, gerar relatórios e obter detalhamento de pagamentos por moeda.
  • Reembolso — inclui chamadas de API para solicitar reembolso total e parcial.
  • Teste — inclui a chamada de API para testar o processo de estorno.

Você pode encontrar informações detalhadas sobre como configurar a interface de pagamentos no guia de integração da solução Payments.

Observe

Você também pode consultar a seção Xsolla Base API na coleção Postman para testar chamadas de API usadas para integração.

Transferir a descrição da OpenAPI
Idiomas
Servidores
https://api.xsolla.com/merchant/v2/
Mock server
https://xsolla.redocly.app/_mock/pt/api/pay-station/
Operações

Pedido

Você pode gerar um token com parâmetros de usuário arbitrários. Esses parâmetros são enviados ao obter o token e retornam no payload após uma transação bem-sucedida. Um token só pode conter parâmetros descritos neste documento ou predefinidos por você.

Se qualquer parâmetro for enviado no formato errado, ou possuir 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 com os parâmetros exatos que foram enviados incorretamente.

Por padrão, o tempo de vida do token é de 24 horas. Se quiser alterar esse valor, contate seu Gerente de Sucesso do Cliente ou envie um e-mail para csm@xsolla.com. O novo valor será habilitado para todos os projetos da empresa criados na Conta de Distribuidor.

Aviso

O token obtido após a chamada do método API pode ser usado exclusivamente para autorizar outras solicitações. Este token só pode ser utilizado para abrir a interface de pagamento se você integrar o produto Subscriptions.

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

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(custom_parameters)

Este objeto contém parâmetros para configurar filtros antifraude. A lista de parâmetros é exibida abaixo. Para adicionar parâmetros personalizados, contate seu Gerente de Sucesso do Cliente ou envie um e-mail para csm@xsolla.com.

custom_parameters.​active_datestring

Última data de visualização, 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_currencynumber(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 PvP (Jogador vs jogador).

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_valuenumber(float)

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

custom_parameters.​total_sumnumber(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(purchase)

Objeto que contém dados de compra.

purchase.​is_lootboxboolean(is_lootbox)

Se o item é uma lootbox ou não.

Padrão false
purchase.​subscriptionobject(subscription)

Dados de assinatura.

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.​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 do produto.

purchase.​subscription.​trial_daysinteger

O período de teste em dias.

settingsobject(settings)

As configurações para instalar o processo de pagamento e a interface de pagamento para um usuário.

settings.​currencystring(currency)

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

settings.​external_idstring(external_id)

ID da transação no jogo. Deve ser único para cada pagamento. Confira a documentação para obter mais detalhes.

settings.​languagestring(language)

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

settings.​modestring(mode.settings)

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(payment_method)

ID do método de pagamento.

settings.​payment_widgetstring(payment_widget)

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_idinteger(project_id)obrigatório

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

settings.​redirect_policyobject(redirect_policy)

Configurações das políticas de redirecionamento.

settings.​redirect_policy.​delayinteger

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

settings.​redirect_policy.​manual_redirection_actionstring

Comportamento do Pay Station 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 à Callback URL. Pode ser none, successful, successful_or_canсeled, ou any.

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

Se um temporizador de redirecionamento deve ser exibido na página de status de pagamento ou não. A duração do temporizador é determinada pelo valor passado no parâmetro settings.redirect_policy.delay.

Padrão false
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(return_url)

URL da página onde um usuário é redirecionado depois de fazer um pagamento (Callback URL). Consulte a documentação para obter informações mais detalhadas sobre a configuração de redirecionamentos.

settings.​uiobject(ui)

Configurações da interface.

settings.​ui.​alternative_first_screenstring(alternative_first_screen)

Visualização alternativa da tela da interface de pagamento quando aberta. Por exemplo, ela pode exibir métodos de pagamento priorizados.

Quando definido como apple-pay, o usuário vê o botão Apple Pay como a opção de pagamento primária junto de um link à lista de outros métodos de pagamento. Essa lógica não se aplica a dispositivos Android.

Valor"apple-pay"
settings.​ui.​apple_pay_quick_payment_buttonboolean(ap_quick_payment_button)

Se o botão de pagamento rápido via Apple Pay no topo da interface de pagamento deve ser exibido nos dispositivos suportados ou não. true por padrão. Se for false, o Apple Pay é exibido na lista de métodos de pagamento de acordo com o algoritmo PayRank.

Observe

Esse método de pagamento ficará oculto na lista de métodos disponíveis nos dispositivos Android e quaisquer outros dispositivos que não suportem o pagamento com a Apple pay, independentemente do valor do parâmetro.

settings.​ui.​componentsobject(components)

Configurações do menu.

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.

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.

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.​currency_formatstring(currency_format)

Defina como code para exibir um código monetário ISO 4217 de três letras na interface de pagamento. O símbolo da moeda é exibido em vez do código monetário de três letras por padrão.

settings.​ui.​desktopobject(desktop.ui)

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

settings.​ui.​desktop.​headerobject(header.desktop)

Configurações de cabeçalho.

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

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

settings.​ui.​desktop.​header.​close_button_iconstring(close_button_icon)

O ícone do botão Fechar na interface de pagamento.

Enum ValorDescrição
arrow

O ícone à esquerda do cabeçalho da interface de pagamento.

cross

O ícone × à direita do cabeçalho da interface de pagamento.

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 logotipo é exibido no cabeçalho. Para enviar a imagem, abra seu projeto na Conta de Distribuidor e acesse a seção Pay Station > Settings.

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(subscription_list.desktop)

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

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

settings.​ui.​gp_quick_payment_buttonboolean(gp_quick_payment_button)

A maneira como o método de pagamento Google Pay é exibido. Se true, o botão de pagamento rápido via Google Pay é exibido no topo da interface de pagamento, independentemente do dispositivo e navegador do usuário. Se false, o Google Pay é exibido na lista de métodos de pagamento de acordo com o algoritmo PayRank. Se o parâmetro não for passado, o Google Pay é exibido no topo da interface de pagamento de qualquer dispositivo e navegador do usuário, exceto o Safari — no Safari, ele é exibido na lista de métodos de pagamento.

settings.​ui.​headerobject(header.ui)
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_cart_open_by_defaultboolean(is_cart_open_by_default)

A exibição da lista de itens do carrinho e dados financeiros na interface de pagamento. Se true, a informação é exibida em uma vista estendida. Se false (padrão) ou o parâmetro não for passado, a informação é exibida em uma vista recolhida.

settings.​ui.​is_independent_windowsboolean(is_independent_windows)

Se os usuários devem ser redirecionados do navegador integrado do inicializador (WebView) ao navegador padrão para fazer uma compra. false por padrão.

settings.​ui.​is_language_selector_hiddenboolean(is_language_selector_hidden)

Se o seletor de idioma deve estar oculto na página de pagamento ou não. Se false (por padrão), o seletor é exibido.

settings.​ui.​is_payment_methods_list_modeboolean(is_payment_methods_list_mode)

Se uma lista dos métodos de pagamento disponíveis no país do usuário deve ser exibida ou não ao abrir a interface de pagamento. Se false (padrão), o método de pagamento passando no parâmetro settings.payment_method ou o método selecionado pelo algoritmo PayRank será exibido.

settings.​ui.​is_prevent_external_link_openboolean(is_prevent_external_link_open)

Se o redirecionamento de links a uma fonte externa está desabilitado ou não. false 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 de redirecionamento é passado no parâmetro url.

settings.​ui.​is_search_field_hiddenboolean(is_search_field_hidden)

Se uma barra de pesquisa de métodos de pagamento deve ser exibida ou não na interface de pagamento. Se true, a barra de pesquisa será oculta. false por padrão.

settings.​ui.​is_show_close_widget_warningboolean(is_show_close_widget_warning)

Se deve ser exibido um aviso sobre o processamento da transação ao focalizar o cursor sobre o ícone × antes de fechar a página de pagamento ou não. Se false for passado, ou o parâmetro não for passado, o aviso não será exibido. true por padrão.

settings.​ui.​is_three_ds_independent_windowsboolean(is_three_ds_independent_windows)

Se a verificação 3-D Secure deve ser aberta em uma nova janela do navegador ou não. Se sua configuração utiliza Content Security Policy (CSP), defina como true.

Padrão false
settings.​ui.​layoutstring(layout)

Local dos elementos principais da interface de pagamento. Você pode abrir a interface de pagamento dentro do seu jogo e/ou trocar as colunas com informações sobre um pedido e métodos de pagamento. Consulte as instruções de personalização para mais detalhes.

Enum"embed""column_reverse""embed_column_reverse"
settings.​ui.​mobileobject(mobile.ui)
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.​header.​close_button_iconstring(close_button_icon)

O ícone do botão Fechar na interface de pagamento.

Enum ValorDescrição
arrow

O ícone à esquerda do cabeçalho da interface de pagamento.

cross

O ícone × à direita do cabeçalho da interface de pagamento.

settings.​ui.​modestring(mode.ui)

Modo de exibição da interface de pagamento para gerenciar métodos de pagamento salvos. Pode ser definido para user_account ou omitido. Nesse modo, o usuário só pode alterar o idioma, adicionar novos métodos de pagamento e remover os existentes.

Observe

Quando esse parâmetro é passado, o botão de redirecionamento não é exibido. Para redirecionar um usuário depois de salvar um método de pagamento, configure os redirecionamentos automáticos.

settings.​ui.​themestring(theme.ui)

Tema da interface de pagamento. Pode ser 63295a9a2e47fab76f7708e1 para o tema claro (padrão) ou 63295aab2e47fab76f7708e3 para o tema escuro. Você também pode criar um tema personalizado e passar seu ID nesse parâmetro.

Enum"63295a9a2e47fab76f7708e1""63295aab2e47fab76f7708e3"
settings.​ui.​user_accountobject(user_account)

Dados da conta do usuário.

settings.​ui.​user_account.​payment_accountsobject

Seção Métodos salvos.

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

Especifica se o ícone do lápis na interface de pagamento que leva à página de edição do método de pagamento deve ser exibido ou não. true por padrão.

settings.​ui.​user_account.​payment_accounts.​orderinteger>= 1

Posição da seção na lista suspensa na interface de pagamento. Necessário se settings.ui.user_account.payment_accounts.enable for passado.

userobject(user)

Dados do usuário.

user.​ageinteger(age.user)

Idade do usuário.

user.​attributesobject(attributes.user)

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(country.user)
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.

user.​country.​valuestring

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

user.​emailobject(email.user)

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.

user.​email.​allow_modifyboolean

Se um usuário pode inserir seu e-mail na inteface de pagamento. Se o parâmetro user.email.value for passado no token, o valor é definido como false por padrão.

user.​email.​valuestring<= 100 charactersobrigatório

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

user.​idobject(id.user)obrigatório
user.​id.​valuestringobrigatório

ID de usuário único no jogo armazenado do seu lado. Certifique-se de passar o ID de usuário existente. Em caso de erro, consulte às respostas às Perguntas Frequentes (FAQ).

user.​is_legalboolean(is_legal.user)

Se o usuário é uma entidade legal.

user.​legalobject(legal.user)

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(name.user)
user.​name.​allow_modifyboolean

Se um usuário pode inserir seu nome na interface de pagamento. Se o parâmetro user.name.value for passado no token, o valor é false por padrão.

user.​name.​valuestring

Nome de exibição do usuário.

user.​phoneobject or null(phone.user)
user.​phone.​valuestring

Número de telefone do usuário.

user.​public_idobject(public_id.user)
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(steam_id.user)
user.​steam_id.​valuestring

ID do Steam.

user.​tracking_idobject(tracking_id.user)
user.​tracking_id.​valuestring= 32 characters

ID de usuário único — usado em campanhas de marketing. Só pode conter dígitos e caracteres latinos.

user.​utmobject(utm.user)

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://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token' \
  -H 'Content-Type: application/json' \
  -d '{
    "settings": {
      "currency": "USD",
      "language": "en",
      "project_id": 16184,
      "ui": {
        "size": "medium"
      }
    },
    "user": {
      "email": {
        "value": "email@example.com"
      },
      "id": {
        "value": "user_2"
      },
      "name": {
        "value": "John Smith"
      }
    }
  }'

Respostas

Created.

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