# Crear pedido con un artículo especificado

Se utiliza para la integración cliente-servidor. Crea un pedido con un artículo especificado y genera un token de pago para ese pedido. El pedido creado obtiene el estado de pedido new.

La IP del cliente se utiliza para determinar el país del usuario, que a su vez se utiliza para aplicar la moneda correspondiente y los métodos de pago disponibles para el pedido.

Para abrir la interfaz de pago en una nueva ventana, utilice el siguiente enlace: https://secure.xsolla.com/paystation4/?token={token}, en el cual {token} es el token recibido.

Para realizar pruebas, utilice esta URL: https://sandbox-secure.xsolla.com/paystation4/?token={token}.

Aviso  Como este método utiliza la IP para determinar el país del usuario y seleccionar una moneda para el pedido, es importante utilizar este método solamente desde el lado del cliente y no desde el lado del servidor. El uso de este método desde el lado del servidor puede causar una determinación incorrecta de la moneda y afectar a los métodos de pago en Pay Station. 




  Aviso
    Esta llamada API utiliza un JWT de usuario para autorización.
    Incluya el token en el encabezado Authorization con el siguiente formato: Bearer &lt;user_JWT&gt;. Para obtener más información sobre el JWT de usuario, consulte el bloque Seguridad para esta llamada.

Endpoint: POST /v2/project/{project_id}/payment/item/{item_sku}
Version: 2.0.0
Security: XsollaLoginUserJWT

## Path parameters:

  - `project_id` (integer, required)
    ID del proyecto. Encontrará este parámetro en su Cuenta del editor junto al nombre del proyecto y en la barra de direcciones del navegador cuando se trabaja en un proyecto. La URL tiene el siguiente formato: https://publisher.xsolla.com//projects/.
    Example: 44056

  - `item_sku` (string, required)
    SKU del artículo.
    Example: "booster_mega_1"

## Request fields (application/json):

  - `currency` (string)
    Divisa del precio del pedido. Código de moneda de tres letras según [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). Consulte la documentación para obtener información detallada sobre [monedas soportadas por Xsolla](https://developers.xsolla.com/es/doc/pay-station/references/supported-currencies/).

  - `locale` (string)
    Idioma de respuesta.

  - `sandbox` (boolean)
    Crea un pedido en el modo aislador de proceso (sandbox). La opción está disponible para los usuarios especificados en la lista de usuarios de la empresa.

  - `quantity` (integer)
    Cantidad del artículo.

  - `promo_code` (string)
    Canjea un código de una promoción de códigos promocionales con pago.

  - `settings` (object)
    Configuración del proceso de pago y de la interfaz de pago para un usuario.

  - `settings.ui` (object)
    Ajustes de la interfaz.

  - `settings.ui.theme` (string)
    Tema de interfaz de pago. Puede ser 63295a9a2e47fab76f7708e1 para el tema claro (por defecto) o 63295aab2e47fab76f7708e3 para el tema oscuro. También puede [crear un tema personalizado](https://developers.xsolla.com/es/doc/pay-station/features/ui-theme-customization/#pay_station_ui_theme_customization_in_token) y transmitir el ID del tema en este parámetro.
    Enum: "63295a9a2e47fab76f7708e1", "63295aab2e47fab76f7708e3"

  - `settings.ui.desktop` (object)
    Ajustes de la interfaz para la versión de escritorio.

  - `settings.ui.desktop.header` (object)
    Ajustes del encabezado.

  - `settings.ui.desktop.header.is_visible` (boolean)
    Si se muestra o no el encabezado en la interfaz de pago.

  - `settings.ui.desktop.header.visible_logo` (boolean)
    Si true, el logotipo aparece en la cabecera. Para cargar la imagen, abra su proyecto en [Cuenta de editor](https://publisher.xsolla.com/) y vaya a la sección Pay Station > Configuración.

  - `settings.ui.desktop.header.visible_name` (boolean)
    Si se muestra o no el nombre del proyecto en el encabezado.

  - `settings.ui.desktop.header.visible_purchase` (boolean)
    Si se muestra o no la descripción de la compra (purchase.description.value) en el encabezado. Por defecto es true.

  - `settings.ui.desktop.header.type` (string)
    Cómo mostrar el encabezado. Puede ser compact (oculta el nombre del proyecto y el ID del usuario) o normal (por defecto).
    Enum: "compact", "normal"

  - `settings.ui.desktop.header.close_button` (boolean)
    Si se muestra o no un botón Close en la interfaz de pago de escritorio. El botón cierra la interfaz de pago y redirige al usuario a la URL especificada en el parámetro settings.return_url. false por defecto.

  - `settings.ui.mode` (string)
    Modo de interfaz en la interfaz de pago. Solo puede ser user_account. El encabezado solo contiene el menú de navegación de la cuenta, y el usuario no puede seleccionar un producto ni hacer un pago. Este modo únicamente está disponible en la versión de escritorio.
    Enum: "user_account"

  - `settings.ui.user_account` (object)
    Datos de la cuenta del usuario.

  - `settings.ui.user_account.payment_accounts` (object)
    Submenú Mis cuentas de pago.

  - `settings.ui.user_account.payment_accounts.enable` (boolean, required)
    Si se muestra o no el submenú. false por defecto.

  - `settings.ui.user_account.info` (object)
    Página Mi cuenta.

  - `settings.ui.user_account.info.enable` (boolean, required)
    Si se muestra o no el submenú. false por defecto.

  - `settings.ui.user_account.info.order` (integer, required)
    Posición del submenú en el menú.

  - `settings.ui.user_account.subscriptions` (object)
    Submenú Gestionar suscripciones.

  - `settings.ui.user_account.subscriptions.enable` (boolean, required)
    Si se muestra o no el submenú. false por defecto.

  - `settings.ui.user_account.subscriptions.order` (integer, required)
    Posición del submenú en el menú.

  - `settings.ui.header` (object)

  - `settings.ui.header.visible_virtual_currency_balance` (boolean)
    Si este elemento puede ocultarse o no en la interfaz de pago.

  - `settings.ui.mobile` (object)

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

  - `settings.ui.mobile.header.close_button` (boolean)
    Si se muestra o no un botón Close en la interfaz de pago móvil. El botón cierra la interfaz de pago y redirige al usuario a la URL especificada en el parámetro settings.return_url.

  - `settings.ui.is_prevent_external_link_open` (boolean)
    Si se deshabilita o no el redireccionamiento de enlaces a un recurso externo. Al hacer clic en un enlace externo, se envía el evento external-link-open a través del mecanismo postMessage. La dirección del enlace redirigido se transmite en el parámetro url.

  - `settings.ui.is_payment_methods_list_mode` (boolean)
    Si se muestra la lista de métodos de pago disponibles en el país del usuario al abrir la interfaz de pago. Si es false (opción por defecto), se muestra el método de pago transmitido en el parámetro settings.payment_method o el método seleccionado por el [algoritmo de PayRank](https://developers.xsolla.com/es/solutions/payments/payment-ui-management/top-payment-methods-management/).

  - `settings.ui.is_independent_windows` (boolean)
    Si se redirige o no a los usuarios desde el navegador del lanzador incrustado (WebView) a su navegador predeterminado para realizar una compra.

  - `settings.ui.currency_format` (string)
    Establecer en code para mostrar un código de moneda [ISO 4217](https://developers.xsolla.com/es/doc/pay-station/references/supported-currencies/) de tres letras en la interfaz de pago. Por defecto, se muestra el símbolo de moneda en lugar del código de moneda de tres letras.

  - `settings.ui.is_show_close_widget_warning` (boolean)
    Si se muestra una advertencia sobre el procesamiento de la transacción al pasar el ratón por encima del icono × antes de cerrar la página de pago. Si se transmite false o no se transmite el parámetro, no se mostrará la advertencia.

  - `settings.ui.layout` (string)
    Ubicación de los principales elementos de la interfaz de pago. Puede abrir la interfaz de pago dentro de su juego o intercambiar las columnas con información sobre un pedido y los métodos de pago. Consulte las [instrucciones de personalización](https://developers.xsolla.com/es/doc/pay-station/features/ui-theme-customization/#pay_station_ui_theme_customization_layout) para obtener información detallada.
    Enum: "embed", "column_reverse", "embed_column_reverse"

  - `settings.ui.is_three_ds_independent_windows` (boolean)
    Si se abre o no la verificación de 3D Secure en una nueva ventana del navegador. Si su configuración aplica una Política de seguridad de contenidos (CSP), establézcala como true.

  - `settings.ui.is_cart_open_by_default` (boolean)
    La visualización de la lista de artículos en la cesta cuando se abre la versión móvil de la interfaz de pago. Si es true, la lista se muestra en una vista ampliada. Si es false (por defecto) o no se transmiten los parámetros, la lista se muestra en una vista contraída.

  - `settings.payment_method` (integer)
    ID del método de pago. Determina la visualización de la moneda en la interfaz de pago, ya que algunos métodos de pago solamente admiten determinadas monedas.

  - `settings.return_url` (string)
    Página a la que se redirige al usuario tras el pago. Los parámetros user_id, foreigninvoice, invoice_id y status se agregarán automáticamente al enlace.

  - `settings.redirect_policy` (object)

  - `settings.redirect_policy.redirect_conditions` (string)
    Estado del pago que activa el redireccionamiento del usuario a la URL de retorno.
    Enum: "none", "successful", "successful_or_canceled", "any"

  - `settings.redirect_policy.delay` (integer)
    Retraso tras el cual el usuario será redirigido automáticamente a la URL de retorno.

  - `settings.redirect_policy.status_for_manual_redirection` (string)
    Estado del pago que desencadena la visualización de la pulsación de un botón que redirige al usuario a la URL de retorno.
    Enum: "none", "successful", "successful_or_canceled", "any"

  - `settings.redirect_policy.redirect_button_caption` (string)
    Subtítulos localizados de los botones de redireccionamiento.
    Example: "Text button"

  - `custom_parameters` (object)
    Parámetros específicos del proyecto.

## Response 200 fields (application/json):

  - `order_id` (integer)
    ID del pedido.

  - `token` (string)
    Token de pago.

## Response 404 fields (application/json):

  - `statusCode` (integer)

  - `errorCode` (integer)

  - `errorMessage` (string)

  - `transactionId` (string)

## Response 422 fields (application/json):

  - `errorCode` (integer)
    Example: 1411

  - `statusCode` (integer)
    Example: 422

  - `errorMessage` (string)
    Example: "[0401-1411]: Invalid item"


