# Criar token 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. 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) 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](https://developers.xsolla.com/pt/doc/pay-station/features/antifraud/). - `custom_parameters.active_date` (string) Última data visto, 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` (integer) 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 JvJ ou não. - `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` (integer) Valor total do inventário (moeda do jogo). - `custom_parameters.total_sum` (integer) 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. Example: {"checkout":{"amount":10,"currency":"USD"},"subscription":{"gift":{"email":"recipient_email@email.com","recipient":"test_recipient_v1"}}} - `purchase.checkout` (object) Objeto que contém dados de pagamento. Example: {"amount":10,"currency":"USD"} - `purchase.checkout.amount` (integer) Quantia de compra. Example: 10 - `purchase.checkout.currency` (string) Moeda da compra. Código da moeda de três letras de acordo com o [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). Example: "USD" - `purchase.subscription` (object) Dados de assinatura. Example: {"gift":{"email":"recipient_email@email.com","recipient":"test_recipient_v1"}} - `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.gift` (object) Informações sobre vale-assinatura. Example: {"email":"recipient_email@email.com","recipient":"test_recipient_v1"} - `purchase.subscription.gift.anonymous` (boolean) 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.email` (string, required) E-mail do destinatário. Example: "recipient_email@email.com" - `purchase.subscription.gift.message` (string) Mensagem para o destinatário. - `purchase.subscription.gift.recipient` (string, required) ID do destinatário. Example: "test_recipient_v1" - `purchase.subscription.gift.redirect_url` (string) 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.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 de produto. - `purchase.subscription.trial_days` (integer) O período de teste em dias. - `settings` (object) Configurações do projeto personalizadas. Example: {"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.currency` (string) Moeda de compra preferencial. Código da moeda de três letras de acordo com o [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). Example: "USD" - `settings.external_id` (string) ID de transação no jogo. Precisa ser único para cada pagamento de um usuário. - `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. Example: "en" - `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 de 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. Example: 16184 - `settings.redirect_policy` (object) Configurações das políticas de redirecionamento. - `settings.redirect_policy.autoredirect_from_status_page` (boolean) Se o usuário deve ser redirecionado automaticamente da página de status ou não. - `settings.redirect_policy.delay` (integer) Atraso (em segundos) após o qual o usuário é redirecionado automaticamente para o URL de retorno. - `settings.redirect_policy.manual_redirection_action` (string) 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_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 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_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) 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.ui` (object) Configurações da interface. Example: {"components":{"virtual_currency":{"custom_amount":true}},"desktop":{"virtual_item_list":{"button_with_price":true,"layout":"list"}},"size":"medium"} - `settings.ui.components` (object) Configurações do menu. Example: {"virtual_currency":{"custom_amount":true}} - `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. Example: {"custom_amount":true} - `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. Example: true - `settings.ui.components.virtual_items` (object) Configurações de itens virtuais do submenu. - `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.desktop` (object) Configurações de interface para a versão desktop. Example: {"virtual_item_list":{"button_with_price":true,"layout":"list"}} - `settings.ui.desktop.header` (object) Configurações de cabeçalho. - `settings.ui.desktop.header.close_button` (boolean) 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_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 cabeçalho exibirá seu logotipo (primeiro, forneça a imagem do seu Gerente de Sucesso do Cliente). - `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) 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.layout` (string) Modelo de lista. Pode ser list (padrão) ou grid. Enum: "list", "grid" - `settings.ui.desktop.virtual_currency_list` (object) Configurações para a lista de moedas virtuais. - `settings.ui.desktop.virtual_currency_list.button_with_price` (boolean) 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.description` (string) Qualquer texto a ser exibido acima da lista de moedas virtuais. - `settings.ui.desktop.virtual_item_list` (object) Configurações da lista de itens virtuais. Example: {"button_with_price":true,"layout":"list"} - `settings.ui.desktop.virtual_item_list.view` (string) 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.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_prevent_external_link_open` (boolean) 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_url` (string) Link ao CLUA. - `settings.ui.mobile` (object) - `settings.ui.mobile.footer` (object) - `settings.ui.mobile.footer.is_visible` (boolean) Se o rodapé deve ser oculto na vesão móvel da interface de pagamento. - `settings.ui.mobile.mode` (string) Um usuário só pode pagar usando os métodos de pagamento salvos. Pode ser saved_accounts. Enum: "saved_accounts" - `settings.ui.mode` (string) 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.size` (string) Tamanho da interface de pagamento. Pode ser: - [pequeno](https://livedemo.xsolla.com/developers/small/): 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](https://livedemo.xsolla.com/developers/medium/): o tamanho recomendado. Use esse valor para exibir a interface de pagamento em uma caixa de luz (lightbox) (dimensões: 740 x 760) - [grande](https://livedemo.xsolla.com/developers/large/): o tamanho ideal para exibir a interface de pagamento em uma nova janela ou aba (dimensões: 820 x 840) Enum: "small", "medium", "large" - `settings.ui.theme` (string) Tema da interface de pagamento. Pode ser default ou default_dark. Enum: "default", "default_dark" - `settings.ui.user_account` (object) Dados da conta do usuário. - `settings.ui.user_account.history` (object) Submenu Histórico. - `settings.ui.user_account.history.enable` (boolean) Se o submenu deve ser exibido ou não. false por padrão. - `settings.ui.user_account.info` (object) Página Minha conta. - `settings.ui.user_account.payment_accounts` (object) Submenu Minhas contas de pagamento. - `settings.ui.user_account.subscriptions` (object) Submenu Gerenciar assinaturas. - `settings.ui.version` (string) Tipo de dispositivo. Pode ser desktop (padrão) ou mobile. Enum: "desktop", "mobile" - `user` (object) Dados do usuário. Example: {"age":19,"country":{"allow_modify":true,"value":"US"},"email":{"value":"john.smith@mail.com"},"id":{"value":"user_2"},"name":{"value":"John Smith"}} - `user.age` (integer) Idade do usuário. Example: 19 - `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) Example: {"allow_modify":true,"value":"US"} - `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. Example: true - `user.country.value` (string) 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). Example: "US" - `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. Example: {"value":"john.smith@mail.com"} - `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). Example: "john.smith@mail.com" - `user.id` (object, required) Example: {"value":"user_2"} - `user.id.value` (string, required) ID de usuário. Example: "user_2" - `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) Example: {"value":"John Smith"} - `user.name.value` (string) Nome de exibição do usuário. Example: "John Smith" - `user.phone` (object) - `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 rastreamento único (usado em campanhas de marketing). - `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)