# Crear token de pago para la compra Genera un pedido y un token de pago para el mismo. El pedido se genera en función de los artículos transmitidos en el cuerpo de la solicitud. Para abrir la interfaz de usuario para pagos 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 El parámetro user.country.value se usa para seleccionar una moneda para el pedido. Si se desconoce el país del usuario, otra opción es proporcionar la IP del usuario en el encabezado X-User-Ip. Se requiere una de estas dos opciones para el correcto funcionamiento de este método. La moneda seleccionada se usa para los métodos de pago en Pay Station. Endpoint: POST /v3/project/{project_id}/admin/payment/token Version: 2.0.0 Security: basicAuth ## Path parameters: - `project_id` (integer, required) ID del proyecto. Encontrará este parámetro en su Cuenta del editor junto al nombre del proyecto. Example: 44056 ## Request fields (application/json): - `custom_parameters` (object,null) Sus parámetros personalizados representados como un conjunto JSON válido de pares clave-valor. Puede transmitir parámetros adicionales a través de este campo para configurar filtros antifraude. [Consulte la documentación de Pay Station](https://developers.xsolla.com/es/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 único que distingue entre mayúsculas y minúsculas. Contiene letras y números. Example: "WINTER2021" - `purchase` (object, required) - `purchase.items` (array, required) - `purchase.items.quantity` (number, required) Cantidad del artículo. Example: 2 - `purchase.items.sku` (string, required) ID único del artículo. El SKU solo puede contener caracteres alfanuméricos latinos en minúsculas y mayúsculas, puntos, guiones y guiones bajos. Example: "t-shirt" - `sandbox` (boolean) Seleccione true para probar el proceso de pago. En este caso, utilice https://sandbox-secure.xsolla.com para acceder a la interfaz de pago de prueba. - `settings` (object) Configuración del proceso de pago y de la interfaz de pago para un usuario. - `settings.currency` (string) Moneda de compra preferida. Código de moneda de tres letras de conformidad con la norma [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). Consulte la documentación para obtener información detallada sobre las [monedas admitidas por Xsolla](https://developers.xsolla.com/es/doc/pay-station/references/supported-currencies/). - `settings.external_id` (string) ID externo de la transacción. - `settings.language` (string) Idioma de la interfaz. [Código de idioma](https://developers.xsolla.com/es/doc/pay-station/features/localization/) de dos letras minúsculas. - `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.redirect_policy` (object) - `settings.redirect_policy.delay` (integer) Retraso tras el cual el usuario será redirigido automáticamente a la URL de retorno. - `settings.redirect_policy.redirect_button_caption` (string) Subtítulos localizados de los botones de redireccionamiento. Example: "Text button" - `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.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", "vc", "successful", "successful_or_canceled", "any" - `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.ui` (object) Ajustes de la interfaz. - `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.desktop` (object) Ajustes de la interfaz para la versión de escritorio. - `settings.ui.desktop.header` (object) Ajustes del encabezado. - `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.desktop.header.is_visible` (boolean) Si se muestra o no el encabezado en la interfaz de pago. - `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.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.header` (object) - `settings.ui.header.visible_virtual_currency_balance` (boolean) Si este elemento puede ocultarse o no en la interfaz de pago. - `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.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.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_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_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.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.layout` (string) Ubicación de los principales elementos de la interfaz de pago. Puedes abrir la interfaz de pago dentro de tu juego o intercambiar las columnas con información sobre un pedido y los métodos de pago. Consulta 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.mobile` (object) - `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.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.user_account` (object) Datos de la cuenta del usuario. - `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.payment_accounts` (object) Submenú Mis cuentas de pago. - `settings.ui.user_account.subscriptions` (object) Submenú Gestionar suscripciones. - `user` (object, required) - `user.age` (integer) Edad del usuario. - `user.country` (object) - `user.country.allow_modify` (boolean) Si el usuario puede o no cambiar el país en la interfaz de pago. - `user.country.value` (string) Código de país de dos letras en mayúsculas de conformidad con la norma [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Se requiere si no se transmite una dirección IP en el encabezado X-User-Ip. Consulte la documentación para obtener información detallada sobre los [países admitidos por Xsolla](https://developers.xsolla.com/es/doc/shop-builder/references/supported-countries/). Ejemplo: country=US Example: "US" - `user.email` (object) - `user.email.value` (string) Correo electrónico del usuario. Debe ser válido según el protocolo RFC 822. - `user.id` (object, required) - `user.id.value` (string) ID de usuario. Para realizar pruebas, puede transmitir cualquier valor. Para aceptar pagos reales, debe usar el valor de ID de usuario de su sistema. Este ID se transmite en el webhook [Validación del usuario](https://developers.xsolla.com/es/webhooks/operation/user-validation/). - `user.is_legal` (boolean) Si el usuario es una entidad jurídica. - `user.legal` (object) Objeto con datos de la entidad jurídica. El objeto y todos sus parámetros son obligatorios si user.is_legal es true. - `user.legal.address` (string) Dirección legal completa. - `user.legal.country` (string) País de constitución. Código de país de dos letras mayúsculas de conformidad con la norma [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - `user.legal.name` (string) Nombre legal completo. - `user.legal.vat_id` (string) Identificador del contribuyente individual. - `user.name` (object) - `user.name.value` (string) Nombre de pantalla del usuario. - `user.phone` (object) - `user.phone.allow_modify` (boolean) Si el usuario puede o no cambiar el teléfono en la interfaz de pago. Si se transmite phone.value en el token, el valor es false por defecto. - `user.phone.hidden` (boolean) - `user.phone.value` (string, required) Número de teléfono del usuario. - `user.steam_id` (object) - `user.steam_id.value` (string, required) ID de Steam. - `user.tracking_id` (object) - `user.tracking_id.value` (string, required) ID único de seguimiento (utilizado en campañas de marketing). ## Response 201 fields (application/json): - `order_id` (integer) ID del pedido. Example: 1 - `token` (string) Token de pago. ## 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 error. Example: 1102 - `errorMessage` (string) Mensaje de error legible. Example: "[0401-1102]: Unprocessable Entity. The property `external_id` is required" - `statusCode` (number) Código de estado de la respuesta. Example: 422 - `transactionId` (string) ID único de la solicitud. Example: "da145238620011eb8e24fe6913ff226a"