# Crear token Puede crear un token con parámetros de usuario arbitrarios. Envíe estos parámetros al obtener el token y recíbalos después de un pago exitoso. Un token solo puede contener parámetros descritos en este documento o predefinidos por usted. Si algún parámetro se envía en el formato incorrecto o tiene el tipo incorrecto, no se emitirá ningún token. Recibirá un código HTTP 422 con la descripción del error en el cuerpo JSON. En extended_message recibirá información sobre qué parámetros exactos se enviaron incorrectamente. Aviso Esta llamada API no contiene el parámetro de ruta project_id, por lo que tiene que usar la clave de API que sea válida en todos los proyectos de la empresa para establecer la autorización. Endpoint: POST /merchants/{merchant_id}/token Version: 2.0 Security: basicAuth ## Path parameters: - `merchant_id` (integer, required) ID de vendedor. ## Request fields (application/json): - `custom_parameters` (object) Puedes transmitir parámetros adicionales en el token en el objeto custom_parameters para configurar los filtros antifraude. Los parámetros recomendados aparecen en la lista desplegable. [Ver documentación de Pay Station](https://developers.xsolla.com/es/doc/pay-station/features/antifraud/). - `custom_parameters.active_date` (string) Fecha de última visita conforme a la norma [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). - `custom_parameters.additional_verification` (boolean) Si el jugador usa o no procedimientos de verificación de cuenta. - `custom_parameters.character_customized` (boolean) Si el jugador ha personalizado o no su personaje. - `custom_parameters.chat_activity` (boolean) Si el jugador emplea o no la función de chat. - `custom_parameters.completed_tasks` (integer) Número de tareas/objetivos realizados/alcanzados. - `custom_parameters.forum_activity` (boolean) Si el jugador emplea o no la función del foro. - `custom_parameters.items_used` (boolean) Si el jugador usa o no artículos comprados en el juego. - `custom_parameters.karma_points` (integer) Karma del jugador. - `custom_parameters.last_change_password_date` (string) Fecha del último cambio de contraseña conforme a la norma [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). - `custom_parameters.non_premium_currency` (integer) Importe de la moneda no prémium. - `custom_parameters.notifications_enabled` (boolean) Si el jugador habilitó o no las notificaciones. - `custom_parameters.profile_completed` (boolean) Si el jugador añadió o no información adicional a su perfil. - `custom_parameters.profile_image_added` (boolean) Si el jugador ha subido o no una imagen de perfil. - `custom_parameters.pvp_activity` (boolean) Si el jugador participa o no en combates JvJ. - `custom_parameters.registration_date` (string) Fecha de creación de la cuenta conforme a la norma [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). - `custom_parameters.session_time` (string) Duración media de sesión conforme a la norma [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). - `custom_parameters.social_networks_added` (boolean) Si el jugador ha conectado o no perfiles de redes sociales. - `custom_parameters.total_bans` (integer) Número de veces que el jugador fue expulsado del chat/foro. - `custom_parameters.total_characters` (integer) Número de personajes dentro del juego. - `custom_parameters.total_clans` (integer) Número de clanes a los que pertenece el jugador. - `custom_parameters.total_friends` (integer) Número de amigas/os. - `custom_parameters.total_game_events` (integer) Número de eventos internos del juego en los que participó el jugador. - `custom_parameters.total_gifts` (integer) Número de regalos internos del juego que el jugador ha enviado/recibido. - `custom_parameters.total_hours` (integer) Número total de horas dentro del juego. - `custom_parameters.total_inventory_value` (integer) Valor total del inventario (moneda del juego). - `custom_parameters.total_sum` (integer) Importe total de los pagos. - `custom_parameters.tutorial_completed` (boolean) Si el jugador ha finalizado o no el tutorial del juego. - `custom_parameters.unlocked_achievements` (integer) Número de logros desbloqueados. - `custom_parameters.user_level` (integer) Nivel, reputación o rango del jugador. - `custom_parameters.win_rate` (integer) Índice de victorias. - `purchase` (object) Objeto que contiene los detalles de la compra. Example: {"checkout":{"amount":10,"currency":"USD"},"subscription":{"gift":{"email":"recipient_email@email.com","recipient":"test_recipient_v1"}}} - `purchase.checkout` (object) Objeto que contiene los detalles del pago. Example: {"amount":10,"currency":"USD"} - `purchase.checkout.amount` (integer) Importe de la compra. Example: 10 - `purchase.checkout.currency` (string) Moneda de la compra. Código de moneda de tres letras de conformidad con la norma [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). Example: "USD" - `purchase.subscription` (object) Datos de la suscripción. Example: {"gift":{"email":"recipient_email@email.com","recipient":"test_recipient_v1"}} - `purchase.subscription.available_plans` (array) Planes de suscripción que deben aparecer en la interfaz de pago. - `purchase.subscription.currency` (string) Moneda del plan de suscripción que debe usarse en todos los cálculos. - `purchase.subscription.gift` (object) Detalles de la suscripción regalada. Example: {"email":"recipient_email@email.com","recipient":"test_recipient_v1"} - `purchase.subscription.gift.anonymous` (boolean) Si se oculta o no el nombre de la persona que hace el regalo. Si es true, el nombre del remitente se oculta en la notificación por correo electrónico. Por defecto es false. - `purchase.subscription.gift.email` (string, required) Correo electrónico del destinatario. Example: "recipient_email@email.com" - `purchase.subscription.gift.message` (string) Mensaje para el destinatario. - `purchase.subscription.gift.recipient` (string, required) ID del destinatario. Example: "test_recipient_v1" - `purchase.subscription.gift.redirect_url` (string) Introduzca aquí un enlace a una página con información adicional sobre la suscripción regalada o a la página de creación de la cuenta. El destinatario del regalo puede acceder a esta página desde la notificación por correo electrónico del regalo de suscripción. - `purchase.subscription.operation` (string) El tipo de operación aplicado al plan de suscripción del usuario. Para cambiar el plan de suscripción, transmite el valor change_plan. Debes especificar el ID del nuevo plan en el parámetro purchase.subscription.plan_id. - `purchase.subscription.plan_id` (string) ID externo del plan de suscripción. Puede encontrarse en la sección Suscripciones > Planes de suscripción de la Cuenta del editor. - `purchase.subscription.product_id` (string) ID del producto. - `purchase.subscription.trial_days` (integer) Periodo de prueba en días. - `settings` (object) Ajustes del proyecto personalizados. 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) Moneda preferida para la compra. Código de moneda de tres letras de conformidad con la norma [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). Example: "USD" - `settings.external_id` (string) ID de la transacción dentro del juego. Debe ser único para cada pago del usuario. - `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. Example: "en" - `settings.mode` (string) Establécelo en sandbox para probar el proceso de pago. En este caso, usa https://sandbox-secure.xsolla.com para acceder a la interfaz de pago de prueba. - `settings.payment_method` (integer) ID del método de pago. - `settings.payment_widget` (string) Widget de pago. Puede ser paybycash o giftcard. Si se establece el parámetro, al usuario se le redirige al widget "Pagar en efectivo" o "Tarjetas regalo", respectivamente. Enum: "paybycash", "giftcard" - `settings.project_id` (integer, required) ID en Xsolla del juego. Se puede encontrar en Cuenta del editor. Example: 16184 - `settings.redirect_policy` (object) Ajustes de las directivas de redireccionamiento. - `settings.redirect_policy.autoredirect_from_status_page` (boolean) Si redirige automáticamente o no desde la página de estado. - `settings.redirect_policy.delay` (integer) Retraso (en segundos) tras el cual a un usuario se le redirige automáticamente a la URL de retorno. - `settings.redirect_policy.manual_redirection_action` (string) Comportamiento de Pay Station que se desencadena cuando el usuario pulsa el botón cerrar o el botón Volver al juego. Puede ser redirect (por defecto) y postmessage. Si se establece como redirect, al usuario se le redirige a la URL transmitida en el token o especificada en la Cuenta del editor. Si se establece como postmessage, al usuario no se le redirige a otras páginas. Al pulsar en el icono de cerrar, se inicia el envío del evento close, y al pulsar en el botón Volver al juego, se inicia el evento return. Enum: "redirect", "postmessage" - `settings.redirect_policy.redirect_button_caption` (string) Texto del botón para el redireccionamiento manual. - `settings.redirect_policy.redirect_conditions` (string) Estado del pago por el que se redirige a un usuario a la URL de retorno. Puede ser none, successful, "successful_or_canсeled" o any. Enum: "none", "successful", "successful_or_canceled", "any" - `settings.redirect_policy.status_for_manual_redirection` (string) Se muestra el estado del pago por el que se redirige a un usuario a la URL de retorno. Puede ser none, successful, "successful_or_canсeled" o any. Enum: "none", "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 añadirán automáticamente al enlace. - `settings.ui` (object) Ajustes de la interfaz. Example: {"components":{"virtual_currency":{"custom_amount":true}},"desktop":{"virtual_item_list":{"button_with_price":true,"layout":"list"}},"size":"medium"} - `settings.ui.components` (object) Ajustes del menú. Example: {"virtual_currency":{"custom_amount":true}} - `settings.ui.components.subscriptions` (object) Ajustes del submenú de planes de suscripción. - `settings.ui.components.subscriptions.hidden` (boolean) Si se muestra o no el submenú. - `settings.ui.components.subscriptions.order` (integer) Posición del submenú en el menú. - `settings.ui.components.virtual_currency` (object) Ajustes del submenú de moneda virtual. Example: {"custom_amount":true} - `settings.ui.components.virtual_currency.custom_amount` (boolean) Si el usuario puede ingresar o no una cantidad arbitraria de moneda virtual en la interfaz de pago. Example: true - `settings.ui.components.virtual_items` (object) Ajustes del submenú de artículos virtuales. - `settings.ui.components.virtual_items.selected_group` (string) Grupo que se mostrará tras abrir la pestaña de artículos virtuales. - `settings.ui.components.virtual_items.selected_item` (string) Artículo que se mostrará tras abrir la pestaña de artículos virtuales (código de artículo —SKU—). - `settings.ui.desktop` (object) Ajustes de la interfaz para la versión de escritorio. Example: {"virtual_item_list":{"button_with_price":true,"layout":"list"}} - `settings.ui.desktop.header` (object) Ajustes del encabezado. - `settings.ui.desktop.header.close_button` (boolean) Si se muestra o no un botón "Cerrar" en el escritorio de Pay Station. El botón cierra Pay Station y redirige al usuario a la URL definida en el parámetro settings.return_url. Por defecto es false. - `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 es true, el encabezado mostrará tu logotipo (primero facilita la imagen a tu Gestor de éxito del cliente). - `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.subscription_list` (object) Configuración de la lista de planes de suscripción. - `settings.ui.desktop.subscription_list.description` (string) Cualquier texto que se muestre encima de la lista de planes de suscripción disponibles en la interfaz de pago. - `settings.ui.desktop.subscription_list.display_local_price` (boolean) Si es true, y si la moneda local del usuario difiere de la establecida para el plan de suscripción, el usuario podrá ver ambos precios: uno en la moneda local y otro en la moneda básica. - `settings.ui.desktop.subscription_list.layout` (string) Plantilla de lista. Puede ser list (por defecto) o grid. Enum: "list", "grid" - `settings.ui.desktop.virtual_currency_list` (object) Configuración de la lista de monedas virtuales. - `settings.ui.desktop.virtual_currency_list.button_with_price` (boolean) Si es true, el precio aparecerá en el botón. Si es false, el precio aparecerá a la izquierda del botón. Por defecto es false. - `settings.ui.desktop.virtual_currency_list.description` (string) Cualquier texto que se vaya a mostrar encima de la lista de monedas virtuales. - `settings.ui.desktop.virtual_item_list` (object) Configuración de la lista de artículos virtuales. Example: {"button_with_price":true,"layout":"list"} - `settings.ui.desktop.virtual_item_list.view` (string) Mostrar grupos de artículos virtuales como un menú vertical/horizontal. Puede ser horizontal_navigation o vertical_navigation (por defecto). Enum: "horizontal_navigation", "vertical_navigation" - `settings.ui.header` (object) - `settings.ui.header.visible_virtual_currency_balance` (boolean) Si este elemento puede ocultarse o no en la interfaz de pago. true por defecto. - `settings.ui.is_prevent_external_link_open` (boolean) Si se deshabilita o no el redireccionamiento de enlaces a un recurso externo. true por defecto. Al pulsar en un enlace externo, el evento external-link-open se envía mediante el mecanismo postMessage. La dirección del enlace redirigido se transmite en el parámetro url. - `settings.ui.license_url` (string) Enlace al EULA (contrato de licencia de usuario final). - `settings.ui.mobile` (object) - `settings.ui.mobile.footer` (object) - `settings.ui.mobile.footer.is_visible` (boolean) Si se oculta o no el pie de página en la versión móvil de la interfaz de pago. - `settings.ui.mobile.mode` (string) Un usuario solamente puede pagar usando sus métodos de pago guardados. Pueden ser saved_accounts. Enum: "saved_accounts" - `settings.ui.mode` (string) Modo de interfaz en Pay Station. Solo puede ser user_account. El encabezado sólo 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. - `settings.ui.size` (string) Tamaño de la interfaz de pago. Puede ser: - [pequeño](https://livedemo.xsolla.com/developers/small/): el menor tamaño posible de la interfaz de pago. Utiliza este valor cuando el tamaño de la ventana esté muy limitado (dimensiones: 620 x 630) - [mediano](https://livedemo.xsolla.com/developers/medium/): tamaño recomendado. Utiliza este valor para mostrar la interfaz de pago en una caja de luz (dimensiones: 740 x 760) - [grande](https://livedemo.xsolla.com/developers/large/): el tamaño óptimo para mostrar la interfaz de pago en una nueva ventana o pestaña (dimensiones: 820 x 840) Enum: "small", "medium", "large" - `settings.ui.theme` (string) Tema de la interfaz de pago. Puede ser default o default_dark. Enum: "default", "default_dark" - `settings.ui.user_account` (object) Datos de la cuenta del usuario. - `settings.ui.user_account.history` (object) Submenú de Historial . - `settings.ui.user_account.history.enable` (boolean) Mostrar o no el submenú. false por defecto. - `settings.ui.user_account.info` (object) Página Mi cuenta. - `settings.ui.user_account.payment_accounts` (object) Submenú Mis cuentas de pago. - `settings.ui.user_account.subscriptions` (object) Submenú Administrar suscripciones. - `settings.ui.version` (string) Tipo de dispositivo. Puede ser desktop (por defecto) o mobile. Enum: "desktop", "mobile" - `user` (object) Datos del usuario. 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) Edad del usuario. Example: 19 - `user.attributes` (object) Atributos de usuario para filtrar la lista de artículos, representados como un conjunto JSON válido de pares clave-valor. - `user.country` (object) Example: {"allow_modify":true,"value":"US"} - `user.country.allow_modify` (boolean) Si el usuario puede cambiar o no el país en la interfaz de pago. Si se transmite country.value en el token, el valor es false por defecto. Example: true - `user.country.value` (string) 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). Example: "US" - `user.email` (object) El objeto user.email es un componente fundamental del desarrollo de los modelos antifraude y contribuye a aumentar los índices de aceptación. Es un requisito para Xsolla y para los sistemas de pago. Si no se transmite el parámetro, el campo obligatorio para introducir el correo electrónico aparece en la página de pago. Un usuario recibe un recibo de compra en su correo electrónico transmitido en el parámetro o insertado en la página de pago. Example: {"value":"john.smith@mail.com"} - `user.email.value` (string, required) Correo electrónico del usuario. Debe ser válido conforme al 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 usuario. Example: "user_2" - `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) Example: {"value":"John Smith"} - `user.name.value` (string) Nombre de pantalla del usuario. Example: "John Smith" - `user.phone` (object) - `user.phone.value` (string) Número de teléfono del usuario. - `user.public_id` (object) - `user.public_id.value` (string) Parámetro que identifica de forma unívoca al usuario y que este conoce (correo electrónico, nombre de usuario, etc.). Permite al usuario hacer compras fuera de la tienda del juego (p. ej., a través de quioscos de efectivo). - `user.steam_id` (object) - `user.steam_id.value` (string) ID de Steam. - `user.tracking_id` (object) - `user.tracking_id.value` (string) ID único de seguimiento (empleado en campañas de marketing). - `user.utm` (object) Atributos de tráfico. - `user.utm.utm_campaign` (string) Título de la campaña, transliterado o traducido al inglés. - `user.utm.utm_content` (string) Contenido de campaña. - `user.utm.utm_medium` (string) Canal de tráfico (anuncios contextuales, anuncios en medios de comunicación, listas de correo electrónico, etc.). - `user.utm.utm_source` (string) Fuente de tráfico. - `user.utm.utm_term` (string) Palabras clave de la campaña. Si están establecidas, las estadísticas dependerán de las palabras clave utilizadas para la segmentación de los anuncios, en vez de en consultas de búsqueda específicas. En Google Analytics, el utm_term especificado forma parte del informe de términos de búsqueda general. ## 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) El objeto contiene nombres de parámetros con descripciones de errores. - `http_status_code` (integer) - `message` (string) - `request_id` (string)