# Criar token

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.


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





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

Endpoint: POST /merchants/{merchant_id}/token
Version: 2.0
Security: basicAuth

## Path parameters:

  - `merchant_id` (integer, required)
    ID de comerciante.

## Request fields (application/json):

  - `custom_parameters` (object)
    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](mailto:csm@xsolla.com).

  - `custom_parameters.active_date` (string)
    Última data de visualização, de acordo com o [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).

  - `custom_parameters.additional_verification` (boolean)
    Se o jogador utiliza procedimentos de verificação de conta ou não.

  - `custom_parameters.character_customized` (boolean)
    Se o jogador personalizou seu personagem ou não.

  - `custom_parameters.chat_activity` (boolean)
    Se o jogador utiliza a função de chat ou não.

  - `custom_parameters.completed_tasks` (integer)
    Quantidade de tarefas/objetivos concluídos.

  - `custom_parameters.forum_activity` (boolean)
    Se o jogador utiliza a função do fórum ou não.

  - `custom_parameters.items_used` (boolean)
    Se o jogador usa itens de jogo comprados ou não.

  - `custom_parameters.karma_points` (integer)
    Karma do jogador.

  - `custom_parameters.last_change_password_date` (string)
    Data da última alteração de senha, de acordo com o [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).

  - `custom_parameters.non_premium_currency` (number)
    Quantidade de moedas não Premium.

  - `custom_parameters.notifications_enabled` (boolean)
    Se o jogador habilitou notificações ou não.

  - `custom_parameters.profile_completed` (boolean)
    Se o jogador adicionou informações adicionais ao seu perfil ou não.

  - `custom_parameters.profile_image_added` (boolean)
    Se o jogador enviou uma imagem de perfil nova ou não.

  - `custom_parameters.pvp_activity` (boolean)
    Se o jogador participa de batalhas PvP (Jogador vs jogador).

  - `custom_parameters.registration_date` (string)
    Data de criação da conta, de acordo com o [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).

  - `custom_parameters.session_time` (string)
    Tempo de sessão médio, de acordo com o [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).

  - `custom_parameters.social_networks_added` (boolean)
    Se o jogador conectou seus perfis de mídias sociais ou não.

  - `custom_parameters.total_bans` (integer)
    Quantidade de vezes que o jogador foi banido do chat/fórum.

  - `custom_parameters.total_characters` (integer)
    Quantidade de personagens no jogo.

  - `custom_parameters.total_clans` (integer)
    Quantidade de clãs dos quais o jogador fez parte.

  - `custom_parameters.total_friends` (integer)
    Quantidade de amigos.

  - `custom_parameters.total_game_events` (integer)
    Quantidade de eventos no jogo dos quais o jogador participou.

  - `custom_parameters.total_gifts` (integer)
    Quantidade de presentes no jogo que o jogador enviou/recebeu.

  - `custom_parameters.total_hours` (integer)
    Tempo total de horas no jogo.

  - `custom_parameters.total_inventory_value` (number)
    Valor total do inventário (moeda do jogo).

  - `custom_parameters.total_sum` (number)
    Quantia total de pagamentos.

  - `custom_parameters.tutorial_completed` (boolean)
    Se o jogador concluiu o tutorial do jogo ou não.

  - `custom_parameters.unlocked_achievements` (integer)
    Quantidade de conquistas desbloqueadas.

  - `custom_parameters.user_level` (integer)
    Nível, reputação ou classificação do jogador.

  - `custom_parameters.win_rate` (integer)
    Taxa de vitórias.

  - `purchase` (object)
    Objeto que contém dados de compra.

  - `purchase.is_lootbox` (boolean)
    Se o item é uma lootbox ou não.

  - `purchase.subscription` (object)
    Dados de assinatura.

  - `purchase.subscription.available_plans` (array)
    Planos de assinatura para exibir na interface de pagamento.

  - `purchase.subscription.currency` (string)
    Moeda do plano de assinatura a ser utilizado em todos os cálculos.

  - `purchase.subscription.operation` (string)
    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_id` (string)
    ID externo do plano de assinatura. Pode ser encontrado na seção Assinaturas > Planos de assinatura da Conta de Distribuidor.

  - `purchase.subscription.product_id` (string)
    ID do produto.

  - `purchase.subscription.trial_days` (integer)
    O período de teste em dias.

  - `settings` (object)
    As configurações para instalar o processo de pagamento e a interface de pagamento para um usuário.

  - `settings.cancel_url` (string)
    URL da página para o qual o usuário é redirecionado ao fechar a interface de pagamento antes de concluir o pagamento. Só funciona se você usar os objetos settings.​ui.​desktop.​header ou settings.​ui.​mobile para configurar o botão de fechar a interface de pagamento. Se o botão for configurado, mas o URL não for passado nesse parâmetro, será utilizado o URL passado no parâmetro settings.return_url.

  - `settings.currency` (string)
    Moeda de compra preferencial. Código da moeda de três letras de acordo com o [ISO 4217](https://developers.xsolla.com/pt/doc/pay-station/references/supported-currencies/).

  - `settings.external_id` (string)
    ID da transação no jogo. Deve ser único para cada pagamento. Confira a documentação para obter mais detalhes.

  - `settings.language` (string)
    Idioma da interface. [Código de idioma](https://developers.xsolla.com/pt/doc/pay-station/features/localization/) de duas letras minúsculas.

  - `settings.mode` (string)
    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_method` (integer)
    ID do método de pagamento.

  - `settings.payment_widget` (string)
    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_id` (integer, required)
    ID Xsolla do jogo. Pode ser encontrado na Conta de Distribuidor.

  - `settings.redirect_policy` (object)
    Configurações das políticas de redirecionamento.

  - `settings.redirect_policy.delay` (integer)
    Atraso (em segundos) após o qual o usuário é redirecionado automaticamente para o Callback URL.

  - `settings.redirect_policy.manual_redirection_action` (string)
    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_caption` (string)
    Texto no botão para o redirecionamento manual.

  - `settings.redirect_policy.redirect_conditions` (string)
    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_countdown` (boolean)
    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.

  - `settings.redirect_policy.status_for_manual_redirection` (string)
    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_url` (string)
    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.ui` (object)
    Configurações da interface.

  - `settings.ui.alternative_first_screen` (string)
    Visualização alternativa da tela da interface de pagamento quando aberta. Por exemplo, ela pode exibir métodos de pagamento priorizados.
    Enum: "apple-pay", "compact_list"

  - `settings.ui.apple_pay_quick_payment_button` (boolean)
    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](/pt/doc/pay-station/how-to/how-to-manage-top-payment-methods/).


ObserveEsse 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.components` (object)
    Configurações do menu.

  - `settings.ui.components.subscriptions` (object)
    Configurações do submenu dos planos de assinatura.

  - `settings.ui.components.subscriptions.hidden` (boolean)
    Se o submenu deve ser exibido ou não.

  - `settings.ui.components.subscriptions.order` (integer)
    Posição do submenu no menu.

  - `settings.ui.components.virtual_currency` (object)
    Moeda virtual das configurações do submenu.

  - `settings.ui.components.virtual_currency.custom_amount` (boolean)
    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.hidden` (boolean)
    Se o submenu deve ser exibido ou não.

  - `settings.ui.components.virtual_currency.order` (integer)
    Posição do submenu no menu.

  - `settings.ui.components.virtual_items` (object)
    Configurações de itens virtuais do submenu.

  - `settings.ui.components.virtual_items.hidden` (boolean)
    Se o submenu deve ser exibido ou não.

  - `settings.ui.components.virtual_items.order` (integer)
    Posição do submenu no menu.

  - `settings.ui.components.virtual_items.selected_group` (string)
    Grupo a ser exibido depois de abrir a aba de itens virtuais.

  - `settings.ui.components.virtual_items.selected_item` (string)
    Item a ser exibido depois de abrir a aba de itens virtuais (SKU do item).

  - `settings.ui.currency_format` (string)
    Defina como code para exibir um código monetário [ISO 4217](https://developers.xsolla.com/pt/doc/pay-station/references/supported-currencies/) 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.desktop` (object)
    Configurações de interface para a versão desktop.

  - `settings.ui.desktop.header` (object)
    Configurações de cabeçalho.

  - `settings.ui.desktop.header.close_button` (boolean)
    Se o botão de fechamento da interface de pagamento deve ser exibido ou não. Quando o usuário o pressiona, a interface de pagamento é fechada e o usuário é redirecionado ao URL passado no parâmetro settings.cancel_url. Se o URL não for passado nesse parâmetro, será utilizado o URL passado no parâmetro settings.return_url.

  - `settings.ui.desktop.header.close_button_icon` (string)
    O ícone do botão Fechar na interface de pagamento.
    Enum: "arrow", "cross"

  - `settings.ui.desktop.header.is_visible` (boolean)
    Se o cabeçalho na interface de pagamento deve ser exibido ou não.

  - `settings.ui.desktop.header.type` (string)
    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_logo` (boolean)
    Se true, o logotipo é exibido no cabeçalho. Para enviar a imagem, abra seu projeto na [Conta de Distribuidor](https://publisher.xsolla.com/) e acesse a seção Pay Station > Settings.

  - `settings.ui.desktop.header.visible_name` (boolean)
    Se o nome do projeto deve ser exibido no cabeçalho ou não.

  - `settings.ui.desktop.header.visible_purchase` (boolean)
    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_list` (object)
    Configurações para a lista de planos de assinatura.

  - `settings.ui.desktop.subscription_list.description` (string)
    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_price` (boolean)
    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_button` (boolean)
    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](/pt/doc/pay-station/how-to/how-to-manage-top-payment-methods/). 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.header` (object)

  - `settings.ui.header.visible_virtual_currency_balance` (boolean)
    Se esse elemento pode ser ocultado ou não na interface de pagamento. true por padrão.

  - `settings.ui.is_cart_open_by_default` (boolean)
    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_windows` (boolean)
    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_hidden` (boolean)
    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_mode` (boolean)
    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](https://developers.xsolla.com/pt/solutions/payments/payment-ui-management/top-payment-methods-management/) será exibido.

  - `settings.ui.is_prevent_external_link_open` (boolean)
    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_hidden` (boolean)
    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_warning` (boolean)
    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_windows` (boolean)
    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.

  - `settings.ui.layout` (string)
    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](https://developers.xsolla.com/pt/doc/pay-station/features/ui-theme-customization/#pay_station_ui_theme_customization_layout) para mais detalhes.
    Enum: "embed", "column_reverse", "embed_column_reverse"

  - `settings.ui.mobile` (object)

  - `settings.ui.mobile.header` (object)

  - `settings.ui.mobile.header.close_button` (boolean)
    Se o botão de fechamento da interface de pagamento deve ser exibido na versão móvel ou não. Quando o usuário o pressiona, a interface de pagamento é fechada e o usuário é redirecionado ao URL passado no parâmetro settings.cancel_url. Se o URL não for passado nesse parâmetro, será utilizado o URL passado no parâmetro settings.return_url.

  - `settings.ui.mobile.header.close_button_icon` (string)
    O ícone do botão Fechar na interface de pagamento.
    Enum: "arrow", "cross"

  - `settings.ui.mode` (string)
    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.


ObserveQuando 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.theme` (string)
    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](https://developers.xsolla.com/pt/doc/pay-station/features/ui-theme-customization/#pay_station_ui_theme_customization_in_token) e passar seu ID nesse parâmetro.
    Enum: "63295a9a2e47fab76f7708e1", "63295aab2e47fab76f7708e3"

  - `settings.ui.user_account` (object)
    Dados da conta do usuário.

  - `settings.ui.user_account.payment_accounts` (object)
    Seção Métodos salvos.

  - `settings.ui.user_account.payment_accounts.enable` (boolean)
    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.order` (integer)
    Posição da seção na lista suspensa na interface de pagamento. Necessário se settings.ui.user_account.payment_accounts.enable for passado.

  - `user` (object)
    Dados do usuário.

  - `user.age` (integer)
    Idade do usuário.

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

  - `user.country` (object)

  - `user.country.allow_modify` (boolean)
    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.value` (string)
    Código do país de duas letras maiúsculas, de acordo com o [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).

  - `user.email` (object)
    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_modify` (boolean)
    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.value` (string, required)
    E-mail do usuário. Deve ser válido, de acordo com o protocolo [RFC 822](https://www.w3.org/Protocols/rfc822/#z8).

  - `user.id` (object, required)

  - `user.id.value` (string, required)
    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)](/pt/doc/pay-station/references/faq/#faq_validation).

  - `user.is_legal` (boolean)
    Se o usuário é uma entidade legal.

  - `user.legal` (object)
    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.address` (string)
    Endereço legal completo.

  - `user.legal.country` (string)
    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](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).

  - `user.legal.name` (string)
    Nome legal completo.

  - `user.legal.vat_id` (string)
    Identificação de contribuinte individual.

  - `user.name` (object)

  - `user.name.allow_modify` (boolean)
    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.value` (string)
    Nome de exibição do usuário.

  - `user.phone` (object,null)

  - `user.phone.value` (string)
    Número de telefone do usuário.

  - `user.public_id` (object)

  - `user.public_id.value` (string)
    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_id` (object)

  - `user.steam_id.value` (string)
    ID do Steam.

  - `user.tracking_id` (object)

  - `user.tracking_id.value` (string)
    ID de usuário único — usado em campanhas de marketing. Só pode conter dígitos e caracteres latinos.

  - `user.utm` (object)
    Atributos de tráfego.

  - `user.utm.utm_campaign` (string)
    Título da campanha, transliterado ou traduzido para Inglês.

  - `user.utm.utm_content` (string)
    Conteúdo da campanha.

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

  - `user.utm.utm_source` (string)
    Fonte de tráfego.

  - `user.utm.utm_term` (string)
    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.

## Response 200 fields (application/json):

  - `token` (string)

## Response 422 fields (application/json):

  - `extended_message` (object)

  - `extended_message.global_errors` (array)

  - `extended_message.property_errors` (object)
    O objeto contém os nomes dos parâmetros com descrições de erros.

  - `http_status_code` (integer)

  - `message` (string)

  - `request_id` (string)


