# Criar pedido com todos os itens do carrinho atual

Usado para a integração cliente-servidor. Cria um pedido com todos os itens do carrinho e gera um token de pagamento para ele. O pedido criado obtém o status do pedido new.

O IP do cliente é usado para determinar o país do usuário, que é usado para aplicar a moeda correspondente e os métodos de pagamento disponíveis para o pedido.

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  Como esse método usa o IP para determinar o país do usuário e selecionar uma moeda para o pedido, é importante usar esse método apenas do lado do cliente e não do lado do servidor. Usar esse método do lado do servidor pode causar determinação incorreta da moeda e afetar os métodos de pagamento no Pay Station.

Endpoint: POST /v2/project/{project_id}/payment/cart
Version: 2.0.0
Security: AuthForCart

## Path parameters:

  - `project_id` (integer, required)
    ID de projeto. Você pode encontrar esse parâmetro na sua Conta de Distribuidor, próximo ao nome do projeto e na barra de endereços do navegador ao trabalhar com um projeto. O URL tem o seguinte formato: https://publisher.xsolla.com//projects/.
    Example: 44056

## Request fields (application/json):

  - `currency` (string)
    Moeda do preço do pedido. Código de moeda de três letras de acordo com [a ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). Consulte a documentação para obter informações detalhadas sobre [as moedas suportadas pelo Xsolla](https://developers.xsolla.com/pt/doc/pay-station/references/supported-currencies/).

  - `locale` (string)
    Idioma de resposta.

  - `sandbox` (boolean)
    Cria um pedido no modo sandbox. A opção está disponível para os usuários especificados na lista de usuários da empresa.

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

  - `settings.ui` (object)
    Configurações da interface.

  - `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.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.is_visible` (boolean)
    Se o cabeçalho na interface de pagamento deve ser exibido ou não.

  - `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.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.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.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.user_account` (object)
    Dados da conta do usuário.

  - `settings.ui.user_account.payment_accounts` (object)
    Submenu My payment accounts.

  - `settings.ui.user_account.payment_accounts.enable` (boolean, required)
    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.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.subscriptions` (object)
    Submenu Manage subscriptions.

  - `settings.ui.user_account.subscriptions.enable` (boolean, required)
    Se o submenu deve ser exibido ou não. false por padrão.

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

  - `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.mobile` (object)

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

  - `settings.ui.mobile.header.close_button` (boolean)
    Se um botão Fechar na interface de pagamento móvel 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.

  - `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_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_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.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.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.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.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.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.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.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.redirect_policy` (object)

  - `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.delay` (integer)
    Atraso após o qual o usuário será redirecionado automaticamente para o URL de retorno.

  - `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", "successful", "successful_or_canceled", "any"

  - `settings.redirect_policy.redirect_button_caption` (string)
    Legendas de botão de redirecionamento traduzidas.
    Example: "Text button"

  - `custom_parameters` (object)
    Parâmetros específicos do projeto.

## Response 200 fields (application/json):

  - `order_id` (integer)
    ID de pedido.

  - `token` (string)
    Token de pagamento.

## Response 422 fields (application/json):

  - `errorCode` (integer)
    Example: 1401

  - `statusCode` (integer)
    Example: 422

  - `errorMessage` (string)
    Example: "[0401-1401]: Invalid cart"


