Saltar al contenido

Información general

  • Versión: 2.0
  • Servidores: https://api.xsolla.com/merchant/v2/

Esta referencia de API describe los extremos para administrar suscripciones, cupones y promociones. Para obtener más información sobre las suscripciones, consulta la página guía del producto y el glosario.

Descargar descripción de OpenAPI
Idiomas
Servidores
Mock server
https://xsolla.redocly.app/_mock/es/api/subscriptions/
Operaciones

Solicitud

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.

Seguridad
basicAuth
Ruta
merchant_idintegerrequerido

ID de vendedor.

Cuerpoapplication/jsonrequerido
custom_parametersobject

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.

custom_parameters.​active_datestring

Fecha de última visita conforme a la norma ISO 8601.

custom_parameters.​additional_verificationboolean

Si el jugador usa o no procedimientos de verificación de cuenta.

custom_parameters.​character_customizedboolean

Si el jugador ha personalizado o no su personaje.

custom_parameters.​chat_activityboolean

Si el jugador emplea o no la función de chat.

custom_parameters.​completed_tasksinteger

Número de tareas/objetivos realizados/alcanzados.

custom_parameters.​forum_activityboolean

Si el jugador emplea o no la función del foro.

custom_parameters.​items_usedboolean

Si el jugador usa o no artículos comprados en el juego.

custom_parameters.​karma_pointsinteger

Karma del jugador.

custom_parameters.​last_change_password_datestring

Fecha del último cambio de contraseña conforme a la norma ISO 8601.

custom_parameters.​non_premium_currencyinteger(float)

Importe de la moneda no prémium.

custom_parameters.​notifications_enabledboolean

Si el jugador habilitó o no las notificaciones.

custom_parameters.​profile_completedboolean

Si el jugador añadió o no información adicional a su perfil.

custom_parameters.​profile_image_addedboolean

Si el jugador ha subido o no una imagen de perfil.

custom_parameters.​pvp_activityboolean

Si el jugador participa o no en combates JvJ.

custom_parameters.​registration_datestring

Fecha de creación de la cuenta conforme a la norma ISO 8601.

custom_parameters.​session_timestring

Duración media de sesión conforme a la norma ISO 8601.

custom_parameters.​social_networks_addedboolean

Si el jugador ha conectado o no perfiles de redes sociales.

custom_parameters.​total_bansinteger

Número de veces que el jugador fue expulsado del chat/foro.

custom_parameters.​total_charactersinteger

Número de personajes dentro del juego.

custom_parameters.​total_clansinteger

Número de clanes a los que pertenece el jugador.

custom_parameters.​total_friendsinteger

Número de amigas/os.

custom_parameters.​total_game_eventsinteger

Número de eventos internos del juego en los que participó el jugador.

custom_parameters.​total_giftsinteger

Número de regalos internos del juego que el jugador ha enviado/recibido.

custom_parameters.​total_hoursinteger

Número total de horas dentro del juego.

custom_parameters.​total_inventory_valueinteger(float)

Valor total del inventario (moneda del juego).

custom_parameters.​total_suminteger(float)

Importe total de los pagos.

custom_parameters.​tutorial_completedboolean

Si el jugador ha finalizado o no el tutorial del juego.

custom_parameters.​unlocked_achievementsinteger

Número de logros desbloqueados.

custom_parameters.​user_levelinteger

Nivel, reputación o rango del jugador.

custom_parameters.​win_rateinteger

Índice de victorias.

purchaseobject

Objeto que contiene los detalles de la compra.

Ejemplo: {"checkout":{"amount":10,"currency":"USD"},"subscription":{"gift":{"email":"recipient_email@email.com","recipient":"test_recipient_v1"}}}
purchase.​checkoutobject

Objeto que contiene los detalles del pago.

Ejemplo: {"amount":10,"currency":"USD"}
purchase.​checkout.​amountinteger(float)

Importe de la compra.

Ejemplo: 10
purchase.​checkout.​currencystring

Moneda de la compra. Código de moneda de tres letras de conformidad con la norma ISO 4217.

Ejemplo: "USD"
purchase.​subscriptionobject

Datos de la suscripción.

Ejemplo: {"gift":{"email":"recipient_email@email.com","recipient":"test_recipient_v1"}}
purchase.​subscription.​available_plansArray of strings

Planes de suscripción que deben aparecer en la interfaz de pago.

purchase.​subscription.​currencystring

Moneda del plan de suscripción que debe usarse en todos los cálculos.

purchase.​subscription.​giftobject

Detalles de la suscripción regalada.

Ejemplo: {"email":"recipient_email@email.com","recipient":"test_recipient_v1"}
purchase.​subscription.​gift.​anonymousboolean

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.​emailstringrequerido

Correo electrónico del destinatario.

Ejemplo: "recipient_email@email.com"
purchase.​subscription.​gift.​messagestring

Mensaje para el destinatario.

purchase.​subscription.​gift.​recipientstringrequerido

ID del destinatario.

Ejemplo: "test_recipient_v1"
purchase.​subscription.​gift.​redirect_urlstring

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.​operationstring

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_idstring

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_idstring

ID del producto.

purchase.​subscription.​trial_daysinteger

Periodo de prueba en días.

settingsobject

Ajustes del proyecto personalizados.

Ejemplo: {"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.​currencystring

Moneda preferida para la compra. Código de moneda de tres letras de conformidad con la norma ISO 4217.

Ejemplo: "USD"
settings.​external_idstring

ID de la transacción dentro del juego. Debe ser único para cada pago del usuario.

settings.​languagestring

Idioma de la interfaz. Código de idioma de dos letras minúsculas.

Ejemplo: "en"
settings.​modestring

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_methodinteger

ID del método de pago.

settings.​payment_widgetstring

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.

Enumeración"paybycash""giftcard"
settings.​project_idintegerrequerido

ID en Xsolla del juego. Se puede encontrar en Cuenta del editor.

Ejemplo: 16184
settings.​redirect_policyobject

Ajustes de las directivas de redireccionamiento.

settings.​redirect_policy.​autoredirect_from_status_pageboolean

Si redirige automáticamente o no desde la página de estado.

settings.​redirect_policy.​delayinteger

Retraso (en segundos) tras el cual a un usuario se le redirige automáticamente a la URL de retorno.

settings.​redirect_policy.​manual_redirection_actionstring

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.

Enumeración"redirect""postmessage"
settings.​redirect_policy.​redirect_button_captionstring

Texto del botón para el redireccionamiento manual.

settings.​redirect_policy.​redirect_conditionsstring

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.

Enumeración"none""successful""successful_or_canceled""any"
settings.​redirect_policy.​status_for_manual_redirectionstring

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.

Enumeración"none""successful""successful_or_canceled""any"
settings.​return_urlstring

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.​uiobject

Ajustes de la interfaz.

Ejemplo: {"components":{"virtual_currency":{"custom_amount":true}},"desktop":{"virtual_item_list":{"button_with_price":true,"layout":"list"}},"size":"medium"}
settings.​ui.​componentsobject

Ajustes del menú.

Ejemplo: {"virtual_currency":{"custom_amount":true}}
settings.​ui.​components.​subscriptionsobject

Ajustes del submenú de planes de suscripción.

settings.​ui.​components.​subscriptions.​hiddenboolean

Si se muestra o no el submenú.

settings.​ui.​components.​subscriptions.​orderinteger

Posición del submenú en el menú.

settings.​ui.​components.​virtual_currencyobject

Ajustes del submenú de moneda virtual.

Ejemplo: {"custom_amount":true}
settings.​ui.​components.​virtual_currency.​custom_amountboolean

Si el usuario puede ingresar o no una cantidad arbitraria de moneda virtual en la interfaz de pago.

Ejemplo: true
settings.​ui.​components.​virtual_currency.​hiddenboolean

Si se muestra o no el submenú.

settings.​ui.​components.​virtual_currency.​orderinteger

Posición del submenú en el menú.

settings.​ui.​components.​virtual_itemsobject

Ajustes del submenú de artículos virtuales.

settings.​ui.​components.​virtual_items.​hiddenboolean

Si se muestra o no el submenú.

settings.​ui.​components.​virtual_items.​orderinteger

Posición del submenú en el menú.

settings.​ui.​components.​virtual_items.​selected_groupstring

Grupo que se mostrará tras abrir la pestaña de artículos virtuales.

settings.​ui.​components.​virtual_items.​selected_itemstring

Artículo que se mostrará tras abrir la pestaña de artículos virtuales (código de artículo —SKU—).

settings.​ui.​desktopobject

Ajustes de la interfaz para la versión de escritorio.

Ejemplo: {"virtual_item_list":{"button_with_price":true,"layout":"list"}}
settings.​ui.​desktop.​headerobject

Ajustes del encabezado.

settings.​ui.​desktop.​header.​close_buttonboolean

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_visibleboolean

Si se muestra o no el encabezado en la interfaz de pago.

settings.​ui.​desktop.​header.​typestring

Cómo mostrar el encabezado. Puede ser compact (oculta el nombre del proyecto y el ID del usuario) o normal (por defecto).

Enumeración"compact""normal"
settings.​ui.​desktop.​header.​visible_logoboolean

Si es true, el encabezado mostrará tu logotipo (primero facilita la imagen a tu Gestor de éxito del cliente).

settings.​ui.​desktop.​header.​visible_nameboolean

Si se muestra o no el nombre del proyecto en el encabezado.

settings.​ui.​desktop.​header.​visible_purchaseboolean

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_listobject

Configuración de la lista de planes de suscripción.

settings.​ui.​desktop.​subscription_list.​descriptionstring

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_priceboolean

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.​layoutstring

Plantilla de lista. Puede ser list (por defecto) o grid.

Enumeración"list""grid"
settings.​ui.​desktop.​virtual_currency_listobject

Configuración de la lista de monedas virtuales.

settings.​ui.​desktop.​virtual_currency_list.​button_with_priceboolean

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.​descriptionstring

Cualquier texto que se vaya a mostrar encima de la lista de monedas virtuales.

settings.​ui.​desktop.​virtual_item_listobject

Configuración de la lista de artículos virtuales.

Ejemplo: {"button_with_price":true,"layout":"list"}
settings.​ui.​desktop.​virtual_item_list.​button_with_priceboolean

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.

Ejemplo: true
settings.​ui.​desktop.​virtual_item_list.​layoutstring

Plantilla de lista. Puede ser list (por defecto) o grid.

Enumeración"list""grid"
Ejemplo: "list"
settings.​ui.​desktop.​virtual_item_list.​viewstring

Mostrar grupos de artículos virtuales como un menú vertical/horizontal. Puede ser horizontal_navigation o vertical_navigation (por defecto).

Enumeración"horizontal_navigation""vertical_navigation"
settings.​ui.​headerobject
settings.​ui.​header.​visible_virtual_currency_balanceboolean

Si este elemento puede ocultarse o no en la interfaz de pago. true por defecto.

settings.​ui.​is_prevent_external_link_openboolean

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_urlstring

Enlace al EULA (contrato de licencia de usuario final).

settings.​ui.​mobileobject
settings.​ui.​mobile.​footerobject
settings.​ui.​mobile.​footer.​is_visibleboolean

Si se oculta o no el pie de página en la versión móvil de la interfaz de pago.

settings.​ui.​mobile.​headerobject
settings.​ui.​mobile.​header.​close_buttonboolean

Si se muestra o no un botón "Cerrar" en la versión móvil 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.​mobile.​modestring

Un usuario solamente puede pagar usando sus métodos de pago guardados. Pueden ser saved_accounts.

Valor"saved_accounts"
settings.​ui.​modestring

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.​sizestring

Tamaño de la interfaz de pago. Puede ser:

  • pequeño: 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: tamaño recomendado. Utiliza este valor para mostrar la interfaz de pago en una caja de luz (dimensiones: 740 x 760)
  • grande: el tamaño óptimo para mostrar la interfaz de pago en una nueva ventana o pestaña (dimensiones: 820 x 840)
Enumeración"small""medium""large"
Ejemplo: "medium"
settings.​ui.​themestring

Tema de la interfaz de pago. Puede ser default o default_dark.

Enumeración"default""default_dark"
settings.​ui.​user_accountobject

Datos de la cuenta del usuario.

settings.​ui.​user_account.​historyobject

Submenú de Historial .

settings.​ui.​user_account.​history.​enableboolean

Mostrar o no el submenú. false por defecto.

settings.​ui.​user_account.​history.​orderinteger

Posición del submenú en el menú.

settings.​ui.​user_account.​infoobject

Página Mi cuenta.

settings.​ui.​user_account.​info.​enableboolean

Mostrar o no el submenú. false por defecto.

settings.​ui.​user_account.​info.​orderinteger

Posición del submenú en el menú.

settings.​ui.​user_account.​payment_accountsobject

Submenú Mis cuentas de pago.

settings.​ui.​user_account.​payment_accounts.​enableboolean

Mostrar o no el submenú. false por defecto.

settings.​ui.​user_account.​payment_accounts.​orderinteger

Posición del submenú en el menú.

settings.​ui.​user_account.​subscriptionsobject

Submenú Administrar suscripciones.

settings.​ui.​user_account.​subscriptions.​enableboolean

Mostrar o no el submenú. false por defecto.

settings.​ui.​user_account.​subscriptions.​orderinteger

Posición del submenú en el menú.

settings.​ui.​versionstring

Tipo de dispositivo. Puede ser desktop (por defecto) o mobile.

Enumeración"desktop""mobile"
userobject

Datos del usuario.

Ejemplo: {"age":19,"country":{"allow_modify":true,"value":"US"},"email":{"value":"john.smith@mail.com"},"id":{"value":"user_2"},"name":{"value":"John Smith"}}
user.​ageinteger

Edad del usuario.

Ejemplo: 19
user.​attributesobject

Atributos de usuario para filtrar la lista de artículos, representados como un conjunto JSON válido de pares clave-valor.

user.​countryobject
Ejemplo: {"allow_modify":true,"value":"US"}
user.​country.​allow_modifyboolean

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.

Ejemplo: true
user.​country.​valuestring

Código de país de dos letras mayúsculas de conformidad con la norma ISO 3166-1 alpha-2.

Ejemplo: "US"
user.​emailobject

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.

Ejemplo: {"value":"john.smith@mail.com"}
user.​email.​valuestringrequerido

Correo electrónico del usuario. Debe ser válido conforme al protocolo RFC 822.

Ejemplo: "john.smith@mail.com"
user.​idobjectrequerido
Ejemplo: {"value":"user_2"}
user.​id.​valuestringrequerido

ID de usuario.

Ejemplo: "user_2"
user.​is_legalboolean

Si el usuario es una entidad jurídica.

user.​legalobject

Objeto con datos de la entidad jurídica.

user.​legal.​addressstring

Dirección legal completa.

user.​legal.​countrystring

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.

user.​legal.​namestring

Nombre legal completo.

user.​legal.​vat_idstring

Identificador del contribuyente individual.

user.​nameobject
Ejemplo: {"value":"John Smith"}
user.​name.​valuestring

Nombre de pantalla del usuario.

Ejemplo: "John Smith"
user.​phoneobject
user.​phone.​valuestring

Número de teléfono del usuario.

user.​public_idobject
user.​public_id.​valuestring

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_idobject
user.​steam_id.​valuestring

ID de Steam.

user.​tracking_idobject
user.​tracking_id.​valuestring

ID único de seguimiento (empleado en campañas de marketing).

user.​utmobject

Atributos de tráfico.

user.​utm.​utm_campaignstring

Título de la campaña, transliterado o traducido al inglés.

user.​utm.​utm_contentstring

Contenido de campaña.

user.​utm.​utm_mediumstring

Canal de tráfico (anuncios contextuales, anuncios en medios de comunicación, listas de correo electrónico, etc.).

user.​utm.​utm_sourcestring

Fuente de tráfico.

user.​utm.​utm_termstring

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.

curl -i -X POST \
  -u <username>:<password> \
  'https://xsolla.redocly.app/_mock/es/api/subscriptions/merchants/{merchant_id}/token' \
  -H 'Content-Type: application/json' \
  -d '{
    "purchase": {
      "checkout": {
        "amount": 10,
        "currency": "USD"
      },
      "subscription": {
        "gift": {
          "email": "recipient_email@email.com",
          "recipient": "test_recipient_v1"
        }
      }
    },
    "settings": {
      "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"
      }
    },
    "user": {
      "age": 19,
      "country": {
        "allow_modify": true,
        "value": "US"
      },
      "email": {
        "value": "john.smith@mail.com"
      },
      "id": {
        "value": "user_2"
      },
      "name": {
        "value": "John Smith"
      }
    }
  }'

Respuestas

Created.

Cuerpoapplication/json
tokenstring
Respuesta
application/json
{ "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT" }
Operaciones
Operaciones
Operaciones
Operaciones
Operaciones
Operaciones
Operaciones