# Criar token de pagamento para compra Gera um pedido e um token de pagamento para ele. O pedido é gerado com base nos itens passados no corpo da solicitação. 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 propósitos de teste, use este URL: https://sandbox-secure.xsolla.com/paystation4/?token={token}. Aviso O parâmetro user.country.value é usado para selecionar uma moeda para o pedido. Se o país do usuário é desconhecido, fornecer o IP do usuário no cabeçalho X-User-Ip é uma opção alternativa. Uma dessas duas opções é necessária para o trabalho correto desse método. A moeda selecionada é usada para métodos de pagamento no Pay Station. Endpoint: POST /v3/project/{project_id}/admin/payment/token Version: 2.0.0 Security: basicAuth ## Path parameters: - `project_id` (integer, required) ID do projeto. Você pode encontrar esse parâmetro em sua Conta de Distribuidor ao lado do nome do projeto. Example: 44056 ## Request fields (application/json): - `custom_parameters` (object,null) Seus parâmetros personalizados representados como um conjunto JSON válido de pares chave-valor. Você pode passar parâmetros adicionais por esse campo para configurar filtros antifraude. [Consulte a documentação do Pay Station](https://developers.xsolla.com/pt/doc/pay-station/features/antifraud/). Example: {"custom_parameters":{"bool_param":true,"int_param":100,"null_param":null,"string_param":"example"}} - `promo_code` (string) Código exclusivo que diferencia maiúsculas de minúsculas. Contém letras e números. Example: "WINTER2021" - `purchase` (object, required) - `purchase.items` (array, required) - `purchase.items.quantity` (number, required) Quantidade do item. Example: 2 - `purchase.items.sku` (string, required) ID de item exclusivo. O SKU só pode conter caracteres alfanuméricos latinos minúsculos e maiúsculos, pontos, traços e sublinhados. Example: "t-shirt" - `sandbox` (boolean) Defina como true para testar o processo de pagamento. Nesse caso, use https://sandbox-secure.xsolla.com para acessar a interface de pagamento de teste. - `settings` (object) As configurações para instalar o processo de pagamento e a interface de pagamento para um usuário. - `settings.currency` (string) Moeda de compra preferencial. Código de três letras de acordo com o formato [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). Consulte a documentação para obter informações detalhadas sobre as [moedas suportadas pela Xsolla](https://developers.xsolla.com/pt/doc/pay-station/references/supported-currencies/). - `settings.external_id` (string) ID de transação externo. - `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.payment_method` (integer) ID do método de pagamento. Ele determina a exibição da moeda na interface de pagamento, pois alguns métodos de pagamento suportam apenas determinadas moedas. - `settings.redirect_policy` (object) - `settings.redirect_policy.delay` (integer) Atraso após o qual o usuário será redirecionado automaticamente para o URL de retorno. - `settings.redirect_policy.redirect_button_caption` (string) Legendas de botão de redirecionamento traduzidas. Example: "Text button" - `settings.redirect_policy.redirect_conditions` (string) Status de pagamento acionando o redirecionamento do usuário para o URL de retorno. Enum: "none", "successful", "successful_or_canceled", "any" - `settings.redirect_policy.status_for_manual_redirection` (string) Status do pagamento acionando a exibição de um botão clicando que redireciona o usuário para o URL de retorno. Enum: "none", "vc", "successful", "successful_or_canceled", "any" - `settings.return_url` (string) Página para redirecionar o usuário para após o pagamento. Parâmetros user_id, foreigninvoice, invoice_id e status serão adicionados automaticamente ao link. - `settings.ui` (object) Configurações da interface. - `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 um botão Fechar na interface de pagamento desktop 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.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 fazer upload da imagem, abra seu projeto na [Contado Publisher](https://publisher.xsolla.com/) e vá para aseção Pay Station > Configurações. - `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.header` (object) - `settings.ui.header.visible_virtual_currency_balance` (boolean) Se esse elemento pode ser ocultado ou não na interface de pagamento. - `settings.ui.is_cart_open_by_default` (boolean) A exibição da lista de itens no carrinho ao abrir a versão móvel da interface de pagamento. Se true, a lista é exibida na visualização estendida. Se for false (padrão) ou os parâmetros não forem passados, a lista é exibida em uma visualização reduzida. - `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. - `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. 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_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. - `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.mode` (string) Modo de interface na interface de pagamento. 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. Enum: "user_account" - `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.info` (object) Página Minha conta. - `settings.ui.user_account.info.enable` (boolean, required) Se o submenu deve ser exibido ou não. false por padrão. - `settings.ui.user_account.info.order` (integer, required) Posição do submenu no menu. - `settings.ui.user_account.payment_accounts` (object) Submenu My payment accounts. - `settings.ui.user_account.subscriptions` (object) Submenu Manage subscriptions. - `user` (object, required) - `user.age` (integer) Idade do usuário. - `user.country` (object) - `user.country.allow_modify` (boolean) Se o usuário pode ou não alterar o país na interface de pagamento. - `user.country.value` (string) Código de país de duas letras maiúsculas de acordo com o padrão [ISO 3166-1 alfa-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). É necessário se um endereço IP não for passado no cabeçalho X-User-Ip. Verifique a documentação para obter informações detalhadas sobre [os países suportados pela Xsolla](https://developers.xsolla.com/pt/doc/shop-builder/references/supported-countries/). Exemplo: country=US Example: "US" - `user.email` (object) - `user.email.value` (string) E-mail do usuário. Deve ser válido de acordo com o protocolo RFC 822. - `user.id` (object, required) - `user.id.value` (string) ID do usuário. Para teste, você pode passar qualquer valor. Para aceitar pagamentos reais, você precisa usar o valor do ID do usuário do seu sistema. Esse ID é passado no webhook [User validation](https://developers.xsolla.com/pt/webhooks/operation/user-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.value` (string) Nome de exibição do usuário. - `user.phone` (object) - `user.phone.allow_modify` (boolean) Se o usuário pode ou não alterar o telefone na interface de pagamento. Se phone.value for passado no token, o valor será false por padrão. - `user.phone.hidden` (boolean) - `user.phone.value` (string, required) Número de telefone do usuário. - `user.steam_id` (object) - `user.steam_id.value` (string, required) ID do Steam. - `user.tracking_id` (object) - `user.tracking_id.value` (string, required) ID de rastreamento exclusivo (usado em campanhas de marketing). ## Response 201 fields (application/json): - `order_id` (integer) ID de pedido. Example: 1 - `token` (string) Token de pagamento. ## Response 401 fields (application/json): - `errorCode` (integer) Example: 1020 - `errorMessage` (string) Example: "[0401-1020]: Error in Authentication method occurred" - `statusCode` (integer) Example: 401 ## Response 422 fields (application/json): - `errorCode` (number) Código de erro. Example: 1102 - `errorMessage` (string) Mensagem de erro legível. Example: "[0401-1102]: Unprocessable Entity. The property `external_id` is required" - `statusCode` (number) Código de status da resposta. Example: 422 - `transactionId` (string) ID de solicitação exclusivo. Example: "da145238620011eb8e24fe6913ff226a"