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

By default, the token lifetime is 24 hours. If you want to change this value, 
contact your Customer Success Manager or send an email to csm@xsolla.com. The new value will be enabled 
for all your company’s projects created in the account.


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)
    External ID of the subscription plan. Can be found in your account in the Subscriptions > Subscription plans section.

  - `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)
    Game’s Xsolla ID. Can be found in the [account](/pt/api/pay-station/business-accounts/).

  - `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)
    Pay Station behavior triggered by the user clicking the close button or the Back to the Game button. Can be redirect (by default) and postmessage. If set to redirect, a user is redirected to the URL passed in the token or specified in the account. If set to postmessage, a user is not redirected to other pages. Clicking the close icon initiates sending the close event, and clicking the Back to the Game button — the return event.
    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)
    If true, the logo is displayed in the header. To upload the image, open your project in the [account](/pt/api/pay-station/business-accounts/) and go to the Payments > Payment interface section.

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


