openapi: 3.0.0
info:
  description: >
    # Descripción general


    * **Versión:** 2.0.0

    * **Servidores**:
      * `https://api.xsolla.com/api`

    Con Pay Station, los socios podrán monetizar sus productos ofreciendo a los 

    usuarios una cómoda interfaz para pagar las compras dentro del juego en la 

    tienda del juego. Para establecer la apertura de la interfaz de pago,
    consulte 

    estas [instrucciones](/es/doc/pay-station/how-to/how-to-open-payment-ui/).


    Pay Station API proporciona los siguientes grupos de llamadas:

    - El token incluye la llamada API que permite generar un token con
    parámetros de 
      usuario arbitrarios para procesar posteriormente los pagos a través de la 
      interfaz de pago.
    - [Tokenización](/es/doc/pay-station/features/tokenization/): incluye las
    llamadas 
      API para procesar pagos de forma segura sin abrir la interfaz de pago ni 
      implicar al usuario.
    - Informes: incluye las llamadas API para devolver datos sobre las
    transacciones 
      de los usuarios, generar informes, así como obtener el desglose de las 
      retribuciones por moneda.
    - Reembolso: incluye las llamadas API para solicitar reembolsos totales y 
      parciales.
    - Pruebas: incluye la llamada API que permite probar el proceso de
    contracargo.


    En el documento [Guía de integración de la solución 

    Payments](/es/solutions/payments/integration-guide/integration-flow/)
    encontrará 

    información detallada sobre la configuración de la interfaz de pago.


    <div class="note">

    <p><strong>Nota</strong></p><p>También puede consultar la sección de la
    <b>Xsolla Base API</b> de la <a
    href="https://github.com/xsolla/xsolla-postman">Colección Postman</a> para
    probar las llamadas API empleadas para la integración.</p>

    </div>
  title: Pay Station API
  version: '2.0'
servers:
  - url: https://api.xsolla.com/merchant/v2
tags:
  - name: token
    x-displayName: Token
  - name: tokenization
    x-displayName: Tokenización
  - name: reports
    x-displayName: Informes
  - name: refund
    x-displayName: Reembolso
  - name: testing
    x-displayName: Pruebas
paths:
  /merchants/{merchant_id}/projects/{project_id}/payments/{transaction_id}/chargeback:
    post:
      description: >
        Solicita el contracargo en el modo de entorno de pruebas (sandbox):


        - Para acceder al modo de entorno de pruebas (sandbox), transmite 
          `"mode":"sandbox"` al [obtener el token](https://developers.xsolla.com/es/api/pay-station/operation/create-token/).

        - El pago de prueba debe realizarse en el modo de entorno de pruebas
        (sandbox) en 
          el mismo proyecto que utilices para hacer pruebas.

        - El estado de la transacción debe ser **distinto de** `refunded`,
        `cancelled`.


        - Tu rol en la Cuenta del editor tiene que ser como mínimo **Gerente 
          financiero**. (Lo encontrarás en la sección **Configuración de la empresa > 
          Usuarios**.)

        - Consulta las <a
        href="https://developers.xsolla.com/es/doc/pay-station/testing
          /test-one-time-purchase-in-
          sandbox/#pay_station_testing_sandbox_bank_card_chargeback">instrucciones</a> 
          para obtener más información sobre estas pruebas.

        <div class="note">

        <p><strong>Nota</strong></p><p>Consulta la <a
        href="https://developers.xsolla.com/es/doc/pay-station/testing/general-info/">documentación</a>
        para obtener más información sobre otras pruebas.</p>

        </div>
      operationId: request-chargeback
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/transaction-id-path-param'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/empty-body'
        required: true
      responses:
        '204':
          description: No Content (sin error).
        '404':
          description: Transacción no encontrada.
        '422':
          content:
            application/json:
              example:
                message: >-
                  Not test payment. Chargeback is possible only for payments
                  made in sandbox mode.
              schema:
                properties:
                  message:
                    description: >-
                      Puede devolver uno de los siguientes mensajes:

                      - Error processing chargeback. Try again or use another
                      payment.

                      - Payment not found. Check payment ID.

                      - Payment does not belong to this project.

                      - Not test payment. Chargeback is possible only for
                      payments made in sandbox mode.

                      - Incorrect payment status. Chargeback is possible only
                      for payments with “Completed” status.
                    type: string
                type: object
          description: Unprocessable Entity (parámetros de solicitud no válidos).
      security:
        - basicAuth: []
      summary: Solicitar contracargo
      tags:
        - testing
      x-server: true
  /merchants/{merchant_id}/reports:
    get:
      description: >
        Obtiene la lista de informes financieros durante un periodo
        especificado.


        <div class="notice">

        <p><strong>Aviso</strong></p><p>Esta llamada API no contiene el
        parámetro de ruta <code>project_id</code>, 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.</p>

        </div>
      operationId: get-reports
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/datetime-from-req'
        - $ref: '#/components/parameters/datetime-to-req'
      responses:
        '200':
          content:
            application/json:
              example:
                - agreement_document_id: Organization Inc_RUB
                  currency: RUB
                  is_direct_payout: false
                  is_draft_by_agreement: true
                  month: January
                  report_id: 57613
                  year: 2019
                - agreement_document_id: Organization Inc_EUR
                  currency: USD
                  is_direct_payout: false
                  is_draft_by_agreement: true
                  month: January
                  report_id: 57619
                  year: 2019
          description: OK.
      security:
        - basicAuth: []
      summary: Obtener informes
      tags:
        - reports
      x-admin: true
      x-server: true
  /merchants/{merchant_id}/reports/transactions/registry.{format}:
    servers:
      - url: https://api.xsolla.com/merchant/v3
    get:
      description: >
        Devuelve la lista de detalles sobre las transacciones realizadas y
        canceladas 

        durante un periodo especificado. Como respuesta, recibe información
        sobre los 

        pagos, incluyendo datos sobre tasas, impuestos, así como sobre el pedido
        y el 

        usuario. Puede obtener la lista en formato JSON o CSV. Puede usar esta
        llamada 

        API para realizar conciliaciones financieras.


        <div class="notice">

        <p><strong>Aviso</strong></p><p>Esta llamada API no contiene el
        parámetro de ruta <code>project_id</code>, 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.</p>

        </div>
      operationId: get-transactions
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/format'
        - $ref: '#/components/parameters/datetime-from-req'
        - $ref: '#/components/parameters/datetime-to-req'
        - $ref: '#/components/parameters/in-transfer-currency'
        - $ref: '#/components/parameters/show-total'
        - $ref: '#/components/parameters/merchant-of-records'
        - $ref: '#/components/parameters/project-id-query-param'
        - $ref: '#/components/parameters/show-dry-run'
        - $ref: '#/components/parameters/transfer-id'
        - $ref: '#/components/parameters/report-id'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/limit-req'
        - $ref: '#/components/parameters/transaction-status'
      responses:
        '200':
          content:
            application/json:
              example:
                - payment_details:
                    chargebackPenalty:
                      amount: 0
                    commission_agent:
                      amount: 0
                      percent: 0
                    commission_agent_fixed: 0
                    commission_ps:
                      amount: 0
                      fixed_amount: 0
                      percent: 0
                    commission_ps_from_vat:
                      amount: 0
                    commission_user:
                      amount: 0.01
                      percent: 33.33
                    commission_xsolla:
                      amount: 0
                      fixed_amount: 0
                      percent: 5
                    cpa_network_commission:
                      amount: 0
                      percent: 0
                    direct_wht:
                      amount: 0
                      percent: 0
                    payment:
                      amount: 0.03
                      amount_from_ps: 0
                      currency: USD
                    payout:
                      amount: 0.02
                      amount_from_ps: 0
                      currency: RUB
                      fx_rate: 64.1386407767
                      percent: 100
                    refundPenalty:
                      amount: 0
                    repatriation_costs:
                      amount: 0
                      percent: 0
                    sales_tax:
                      amount: 0
                      percent: 0
                    vat:
                      amount: 0
                      percent: 0
                      user_amount: 0
                      user_percent: 0
                  purchase:
                    friend:
                      email: null
                      user_id: null
                    items_amount: 1
                    pin_codes:
                      amount: null
                      content: null
                      currency: null
                    purchase_amount: 0.02
                    simple_checkout:
                      amount: null
                      currency: null
                    subscription:
                      name: null
                      plan_id: null
                      product_id: null
                      product_name: null
                      subscription_id: null
                    virtual_currency:
                      amount: 0.02
                      currency: USD
                    virtual_currency_amount: 1
                    virtual_items:
                      amount: null
                      content: null
                      currency: null
                  transaction:
                    custom_parameters: null
                    direct_account: 0
                    dry_run: 0
                    external_id: null
                    id: 418756634
                    payment_method:
                      class: Digital Payment Methods
                      id: 2760
                      name: Your Balance
                    project:
                      id: 21092
                      name: Smith
                    refund_reason: null
                    refund_reason_comment: null
                    status: done
                    transfer_date: '2019-02-11T13:32:00+03:00'
                  user:
                    country: US
                    custom: null
                    email: email@example.com
                    id: smith123
                    ip: 209.11.22.33
                    marketplace: Pay Station
                    name: Tom
                    phone: null
                  user_balance:
                    payment_currency:
                      deduction_amount: 0
                      payout_amount_from_balance: 0.02
                      purchase_amount_from_balance: 0.02
              schema:
                items:
                  properties:
                    payment_details:
                      description: Datos del pago.
                      properties:
                        chargebackPenalty:
                          properties:
                            amount:
                              format: float
                              type: number
                          type: object
                        commission_agent:
                          properties:
                            amount:
                              format: float
                              type: number
                            percent:
                              format: float
                              type: number
                          type: object
                        commission_agent_fixed:
                          type: integer
                        commission_ps:
                          properties:
                            amount:
                              format: float
                              type: number
                            fixed_amount:
                              type: integer
                            percent:
                              format: float
                              type: number
                          type: object
                        commission_ps_from_vat:
                          properties:
                            amount:
                              format: float
                              type: number
                          type: object
                        commission_user:
                          properties:
                            amount:
                              format: float
                              type: number
                            percent:
                              format: float
                              type: number
                          type: object
                        commission_xsolla:
                          properties:
                            amount:
                              format: float
                              type: number
                            fixed_amount:
                              type: integer
                            percent:
                              format: float
                              type: number
                          type: object
                        cpa_network_commission:
                          properties:
                            amount:
                              format: float
                              type: number
                            percent:
                              format: float
                              type: number
                          type: object
                        direct_wht:
                          properties:
                            amount:
                              format: float
                              type: number
                            percent:
                              format: float
                              type: number
                          type: object
                        payment:
                          properties:
                            amount:
                              format: float
                              type: number
                            amount_from_ps:
                              type: integer
                            currency:
                              type: string
                          type: object
                        payout:
                          properties:
                            amount:
                              format: float
                              type: number
                            amount_from_ps:
                              format: float
                              type: number
                            currency:
                              type: string
                            fx_rate:
                              format: float
                              type: number
                            percent:
                              format: float
                              type: number
                          type: object
                        refundPenalty:
                          properties:
                            amount:
                              format: float
                              type: number
                          type: object
                        repatriation_costs:
                          properties:
                            amount:
                              format: float
                              type: number
                            percent:
                              format: float
                              type: number
                          type: object
                        sales_tax:
                          properties:
                            amount:
                              format: float
                              type: number
                            percent:
                              format: float
                              type: number
                          type: object
                        vat:
                          properties:
                            amount:
                              format: float
                              type: number
                            percent:
                              format: float
                              type: number
                            user_amount:
                              type: integer
                            user_percent:
                              type: integer
                          type: object
                      type: object
                    purchase:
                      description: Datos de la compra.
                      properties:
                        friend:
                          properties:
                            email:
                              nullable: true
                              type: string
                            user_id:
                              nullable: true
                              type: string
                          type: object
                        items_amount:
                          type: integer
                        pin_codes:
                          properties:
                            amount:
                              format: float
                              nullable: true
                              type: number
                            content:
                              nullable: true
                              type: string
                            currency:
                              nullable: true
                              type: string
                          type: object
                        purchase_amount:
                          format: float
                          type: number
                        simple_checkout:
                          properties:
                            amount:
                              format: float
                              nullable: true
                              type: number
                            currency:
                              nullable: true
                              type: string
                          type: object
                        subscription:
                          properties:
                            name:
                              nullable: true
                              type: string
                            plan_id:
                              nullable: true
                              type: integer
                            product_id:
                              nullable: true
                              type: string
                            product_name:
                              nullable: true
                              type: string
                            subscription_id:
                              nullable: true
                              type: integer
                          type: object
                        virtual_currency:
                          properties:
                            amount:
                              format: float
                              type: number
                            currency:
                              type: string
                          type: object
                        virtual_currency_amount:
                          type: integer
                        virtual_items:
                          properties:
                            amount:
                              format: float
                              nullable: true
                              type: number
                            content:
                              nullable: true
                              type: string
                            currency:
                              nullable: true
                              type: string
                          type: object
                      type: object
                    transaction:
                      description: Datos de la transacción.
                      properties:
                        custom_parameters:
                          nullable: true
                          type: object
                        direct_account:
                          type: integer
                        dry_run:
                          type: integer
                        external_id:
                          nullable: true
                          type: string
                        id:
                          type: integer
                        payment_method:
                          properties:
                            class:
                              type: string
                            id:
                              type: integer
                            name:
                              type: string
                          type: object
                        project:
                          properties:
                            id:
                              type: integer
                            name:
                              type: string
                          type: object
                        refund_reason:
                          nullable: true
                          type: string
                        refund_reason_comment:
                          nullable: true
                          type: string
                        status:
                          enum:
                            - created
                            - processing
                            - done
                            - canceled
                            - error
                            - refunded
                            - partiallyRefunded
                            - awaitingRefund
                            - disputeFee
                          type: string
                        transfer_date:
                          format: datetime
                          type: string
                      type: object
                    user:
                      description: Datos del usuario.
                      properties:
                        country:
                          description: >-
                            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).
                          type: string
                        custom:
                          nullable: true
                          type: string
                        email:
                          description: Correo del usuario.
                          type: string
                        id:
                          description: ID del usuario.
                          type: string
                        ip:
                          type: string
                        marketplace:
                          type: string
                        name:
                          description: Nombre de pantalla del usuario.
                          type: string
                        phone:
                          description: Número de teléfono del usuario.
                          nullable: true
                          type: string
                      type: object
                    user_balance:
                      description: Saldo del usuario.
                      properties:
                        payment_currency:
                          description: Moneda de pago preferida.
                          properties:
                            deduction_amount:
                              format: float
                              type: number
                            payout_amount_from_balance:
                              format: float
                              type: number
                            purchase_amount_from_balance:
                              format: float
                              type: number
                          type: object
                      type: object
                  type: object
                type: array
          description: La lista de transacciones se ha devuelto correctamente.
      security:
        - basicAuth: []
      summary: Obtener transacciones
      tags:
        - reports
      x-admin: true
      x-server: true
  /merchants/{merchant_id}/reports/transactions/search.{format}:
    get:
      description: "Devuelve una lista de transacciones basada en parámetros de búsqueda \nespecíficos. Como respuesta, recibirá datos sobre todos los pagos hechos en su \njuego, incluso si no fueron aceptados. Puede especificar no solo el periodo de \nla transacción, sino también otros parámetros, como p.\_ej., para buscar \ntransacciones realizadas por un usuario concreto o en un estado de pago \nespecífico. Puede obtener la lista en formato JSON o CSV.\n\n<div class=\"notice\">\n<p><strong>Aviso</strong></p><p>Esta llamada API no contiene el parámetro de ruta <code>project_id</code>, 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.</p>\n</div>\n"
      operationId: find-transactions
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/format'
        - $ref: '#/components/parameters/datetime-from'
        - $ref: '#/components/parameters/datetime-to'
        - $ref: '#/components/parameters/project-id-query-param'
        - $ref: '#/components/parameters/transaction-id'
        - $ref: '#/components/parameters/type'
        - $ref: '#/components/parameters/phone'
        - $ref: '#/components/parameters/user-id-query-param'
        - $ref: '#/components/parameters/user-name'
        - $ref: '#/components/parameters/user-custom'
        - $ref: '#/components/parameters/email'
        - $ref: '#/components/parameters/external-id'
        - $ref: '#/components/parameters/order-id'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/status'
      responses:
        '200':
          content:
            application/json:
              example:
                - payment_details:
                    payment:
                      amount: 7.96
                      amount_from_ps: 7.96
                      currency: RUB
                    sales_tax:
                      amount: 0
                      percent: 0
                  payment_system:
                    decline_reason: null
                  purchase:
                    pin_codes:
                      amount: null
                      content: null
                      currency: null
                    simple_checkout:
                      amount: 7.96
                      currency: RUB
                    subscription:
                      name: null
                    virtual_currency:
                      amount: 0
                      name: null
                    virtual_items: null
                  transaction:
                    create_date: '2021-10-20'
                    dry_run: 0
                    external_id: example-external-id
                    id: 123456789
                    is_refund_allowed: 0
                    order_id: 1234
                    payment_method:
                      id: 1
                      name: PayPal
                    project:
                      id: 123456
                      name: Example
                    refund_reason: null
                    status: done
                    transfer_date: '2021-10-20'
                  user:
                    country: RU
                    custom: null
                    email: email@example.com
                    id: example-id
                    name: Example
                    phone: null
          description: OK.
      security:
        - basicAuth: []
      summary: Buscar transacciones
      tags:
        - reports
      x-admin: true
      x-server: true
  /merchants/{merchant_id}/reports/transactions/simple_search:
    get:
      description: >
        Obtiene una lista de transacciones basada en parámetros de búsqueda
        específicos 

        en unos segundos. Es una alternativa a la llamada API [Find
        transactions](/es/api/pay-station/operation/find-transactions/) que
        devuelve los datos en formato 

        JSON, CSV o XLS.


        <div class="notice">

        <p><strong>Aviso</strong></p><p>Esta llamada API no contiene el
        parámetro de ruta <code>project_id</code>, 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.</p>

        </div>
      operationId: find-transactions-fast
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - description: >-
            ID de la transacción. Debe indicarse este o `external_id`, pero no
            ambos.
          in: query
          name: transaction_id
          schema:
            type: integer
        - description: >-
            ID de la transacción en el juego. Es distinto para cada pago. Debe
            indicarse este o `transaction_id`, pero no ambos.
          in: query
          name: external_id
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              example:
                - payment_details:
                    payment:
                      amount: 7.96
                      currency: BRL
                  transaction:
                    external_id: example_external_id_123
                    id: 123456
                    payment_date: '2023-02-11 15:32:46'
                    project:
                      id: 123456
                      name: Test
                    status: done
                  user:
                    country: BR
                    email: email@example.com
                    id: '123456'
                    name: John Smith
              schema:
                items:
                  properties:
                    payment_details:
                      description: Datos del pago.
                      properties:
                        payment:
                          properties:
                            amount:
                              description: Importe del pago.
                              format: float
                              type: number
                            currency:
                              description: >-
                                Moneda de pago. Código de moneda de tres letras
                                de conformidad con la norma [ISO
                                4217](https://developers.xsolla.com/es/doc/pay-station/references/supported-currencies/).
                              type: string
                          type: object
                      type: object
                    transaction:
                      description: Datos de la transacción.
                      properties:
                        external_id:
                          description: >-
                            ID de la transacción en el juego. Es distinto para
                            cada pago de usuario.
                          type: string
                        id:
                          description: ID de la transacción.
                          type: integer
                        payment_date:
                          description: Fecha del pago en formato AA-MM-DD.
                          type: string
                        project:
                          properties:
                            id:
                              description: >-
                                ID del proyecto. Se puede encontrar en la Cuenta
                                del editor.
                              type: integer
                            name:
                              description: Nombre del proyecto.
                              type: string
                          type: object
                        refund_reason:
                          description: Motivo del reembolso.
                          type: string
                        status:
                          $ref: '#/components/schemas/status.enum'
                          description: Estado de la transacción.
                      type: object
                    user:
                      description: Datos del usuario.
                      properties:
                        country:
                          description: >-
                            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).
                          type: string
                        email:
                          description: Correo del usuario.
                          type: string
                        id:
                          description: ID del usuario.
                          type: string
                        name:
                          description: Nombre de usuario.
                          type: string
                      type: object
                  type: object
                type: array
          description: La lista de transacciones se ha devuelto correctamente.
        '403':
          description: Acceso denegado.
        '404':
          description: Transacción no encontrada.
        '422':
          description: >-
            Unprocessable Entity (debes transmitir `transaction_id` o
            `external_id`).
      security:
        - basicAuth: []
      summary: Buscar transacciones (búsqueda rápida)
      tags:
        - reports
      x-admin: true
      x-server: true
  /merchants/{merchant_id}/reports/transactions/summary/transfer:
    get:
      description: >
        Obtiene el desglose de los desembolsos en la moneda.


        <div class="notice">

        <p><strong>Aviso</strong></p><p>Esta llamada API no contiene el
        parámetro de ruta <code>project_id</code>, 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.</p>

        </div>
      operationId: get-payouts-breakdown
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/datetime-from'
        - $ref: '#/components/parameters/datetime-to'
        - $ref: '#/components/parameters/legal-entity-id'
        - $ref: '#/components/parameters/transaction-status'
      responses:
        '200':
          content:
            application/json:
              example:
                - DirectTaxesOfPayments: 0.46
                  IsoCurrency: RUB
                  PaymentsAmount: 223679.84
                  SumCommissionAgent: 11329.58
                  SumCommissionUserTaxes: 153.67
                  SumItems: 571325.13
                  SumNominalSum: 214792.98
                  SumOutProject: 551096.13
                  SumPayoutSum: 193316.71
                  TaxesOfPayments: 171.56
                - DirectTaxesOfPayments: 0.14
                  IsoCurrency: USD
                  PaymentsAmount: 482.58
                  SumCommissionAgent: 77.51
                  SumCommissionUserTaxes: 0.07
                  SumItems: 243777.62
                  SumNominalSum: 493.09
                  SumOutProject: 241787.62
                  SumPayoutSum: 462.62
                  TaxesOfPayments: 0.14
                - DirectTaxesOfPayments: 0.07
                  IsoCurrency: EUR
                  PaymentsAmount: 608.2
                  SumCommissionAgent: 55.71
                  SumCommissionUserTaxes: 90.94
                  SumItems: 156238.62
                  SumNominalSum: 607.26
                  SumOutProject: 156158.62
                  SumPayoutSum: 460.8
                  TaxesOfPayments: 90.94
          description: OK.
      security:
        - basicAuth: []
      summary: Obtener el desglose de los desembolsos en la moneda
      tags:
        - reports
      x-admin: true
      x-server: true
  /merchants/{merchant_id}/reports/transactions/{transaction_id}/details:
    get:
      description: >
        Obtiene la información completa de la transacción por ID.


        <div class="notice">

        <p><strong>Aviso</strong></p><p>Esta llamada API no contiene el
        parámetro de ruta <code>project_id</code>, 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.</p>

        </div>
      operationId: get-transaction
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/transaction-id-path-param'
      responses:
        '200':
          content:
            application/json:
              example:
                - customer_details:
                    billing_address: ''
                    bin: ''
                    browser_language: ''
                    country: US
                    ip: 209.11.22.33
                    paystation_country: ''
                    phone: null
                    timezone: ''
                    user_id: user1
                    user_name: John Smith
                  finance_details:
                    direct_wht:
                      amount: 0
                      currency: USD
                    dispute_fee:
                      amount: 70
                      currency: USD
                      date: '2019-04-20 16:15:37'
                    payment:
                      amount: 0.04
                      currency: USD
                    payment_method_fee:
                      amount: 0.01
                      currency: USD
                    payment_method_sum:
                      amount: 0.04
                      currency: USD
                    payout:
                      amount: 1.25
                      currency: RUB
                    payout_currency_rate: 62
                    repatriation_commission:
                      amount: 0
                      currency: USD
                    sales_tax:
                      amount: 0
                      currency: USD
                    vat:
                      amount: 0.01
                      currency: USD
                    xsolla_balance_sum:
                      amount: 0
                      currency: USD
                    xsolla_fee:
                      amount: 0
                      currency: USD
                  payment_details:
                    card_holdername: null
                    card_issuer: TEST BANK
                    card_month: 1
                    card_number: 1234123412341234
                    card_scheme: MASTERCARD
                    card_year: 2020
                    customer_firstname: ''
                    customer_lastname: ''
                    enrollment: false
                    ps_account: 1234test4321
                    zip_code: ''
                  subscription_details:
                    is_payment_from_subscription: false
                    is_subscription_created: true
                  transaction_details:
                    amount: 0.04
                    cancellation_date: null
                    country: US
                    currency: USD
                    custom_parameters: null
                    foreign_invoice: null
                    gift_recipient_email: null
                    gift_recipient_id: null
                    payment_date: '2019-03-21 16:15:37'
                    payment_method: '1380'
                    payment_method_name: Credit/Debit Cards
                    project: 21092
                    project_name: Test Project
                    purchase:
                      checkout:
                        amount: 0
                        currency: USD
                      pin_codes:
                        amount: 0
                        content: null
                        currency: null
                      total:
                        amount: 0.03
                        currency: USD
                      virtual_currency:
                        amount: 0.03
                        currency: USD
                        name: Gold coins
                        quantity: '2'
                      virtual_items: null
                    refund_comment: null
                    refund_reason: null
                    status: done
                    user_id: user1
              schema:
                items:
                  properties:
                    customer_details:
                      properties:
                        billing_address:
                          type: string
                        bin:
                          type: string
                        browser_language:
                          type: string
                        country:
                          type: string
                        ip:
                          type: string
                        paystation_country:
                          type: string
                        phone:
                          nullable: true
                          type: string
                        timezone:
                          type: string
                        user_id:
                          type: string
                        user_name:
                          type: string
                      type: object
                    finance_details:
                      properties:
                        direct_wht:
                          properties:
                            amount:
                              format: float
                              type: number
                            currency:
                              type: string
                          type: object
                        dispute_fee:
                          properties:
                            amount:
                              description: >-
                                El importe de la tasa de la disputa en una
                                moneda del pago.
                              format: float
                              type: number
                            currency:
                              description: >-
                                Moneda de pago. Código de moneda de tres letras
                                de conformidad con la norma [ISO
                                4217](/es/doc/pay-station/references/supported-currencies/).
                              type: string
                            date:
                              description: Fecha de la apertura de la disputa.
                              type: string
                          type: object
                        payment:
                          properties:
                            amount:
                              format: float
                              type: number
                            currency:
                              type: string
                          type: object
                        payment_method_fee:
                          properties:
                            amount:
                              format: float
                              type: number
                            currency:
                              type: string
                          type: object
                        payment_method_sum:
                          properties:
                            amount:
                              format: float
                              type: number
                            currency:
                              type: string
                          type: object
                        payout:
                          properties:
                            amount:
                              format: float
                              type: number
                            currency:
                              type: string
                          type: object
                        payout_currency_rate:
                          format: float
                          type: number
                        repatriation_commission:
                          properties:
                            amount:
                              format: float
                              type: number
                            currency:
                              type: string
                          type: object
                        sales_tax:
                          properties:
                            amount:
                              format: float
                              type: number
                            currency:
                              type: string
                          type: object
                        vat:
                          properties:
                            amount:
                              format: float
                              type: number
                            currency:
                              type: string
                          type: object
                        xsolla_balance_sum:
                          properties:
                            amount:
                              format: float
                              type: number
                            currency:
                              type: string
                          type: object
                        xsolla_fee:
                          properties:
                            amount:
                              format: float
                              type: number
                            currency:
                              type: string
                          type: object
                      type: object
                    payment_details:
                      properties:
                        card_holdername:
                          nullable: true
                          type: string
                        card_issuer:
                          type: string
                        card_month:
                          type: integer
                        card_number:
                          type: integer
                        card_scheme:
                          type: string
                        card_year:
                          type: integer
                        customer_firstname:
                          type: string
                        customer_lastname:
                          type: string
                        enrollment:
                          type: boolean
                        ps_account:
                          type: string
                        zip_code:
                          type: string
                      type: object
                    subscription_details:
                      properties:
                        is_payment_from_subscription:
                          type: boolean
                        is_subscription_created:
                          type: boolean
                      type: object
                    transaction_details:
                      properties:
                        amount:
                          format: float
                          type: number
                        cancellation_date:
                          nullable: true
                          type: string
                        country:
                          type: string
                        currency:
                          type: string
                        custom_parameters:
                          nullable: true
                          type: string
                        foreign_invoice:
                          nullable: true
                          type: string
                        gift_recipient_email:
                          nullable: true
                          type: string
                        gift_recipient_id:
                          nullable: true
                          type: string
                        payment_date:
                          type: string
                        payment_method:
                          type: string
                        payment_method_name:
                          type: string
                        project:
                          type: integer
                        project_name:
                          type: string
                        purchase:
                          properties:
                            checkout:
                              properties:
                                amount:
                                  format: float
                                  type: number
                                currency:
                                  type: string
                              type: object
                            pin_codes:
                              properties:
                                amount:
                                  format: float
                                  type: number
                                content:
                                  nullable: true
                                  type: string
                                currency:
                                  nullable: true
                                  type: string
                              type: object
                            total:
                              properties:
                                amount:
                                  format: float
                                  type: number
                                currency:
                                  type: string
                              type: object
                            virtual_currency:
                              properties:
                                amount:
                                  format: float
                                  type: number
                                currency:
                                  type: string
                                name:
                                  type: string
                                quantity:
                                  type: string
                              type: object
                            virtual_items:
                              nullable: true
                              properties:
                                amount:
                                  format: float
                                  type: number
                                content:
                                  type: string
                                currency:
                                  type: string
                              type: object
                          type: object
                        refund_comment:
                          nullable: true
                          type: string
                        refund_reason:
                          nullable: true
                          type: string
                        status:
                          type: string
                        user_id:
                          type: string
                      type: object
                  type: object
                type: array
          description: La información de la transacción se devolvió correctamente.
      security:
        - basicAuth: []
      summary: Obtener transacción
      tags:
        - reports
      x-admin: true
      x-server: true
  /merchants/{merchant_id}/reports/transactions/{transaction_id}/partial_refund:
    put:
      description: >
        Envía una solicitud de reembolso parcial a un usuario. Consulta nuestra 

        [documentación](https://developers.xsolla.com/es/doc/pay-station/features/refund/#pay_station_features_refund_how_it_works_partial_refund_flow)
        para obtener información detallada sobre el proceso de reembolso y los 

        métodos de pago que permiten reembolsos parciales.


        <div class="note">

        <p><strong>Nota</strong></p><p>Puedes solicitar este método API en modo
        de aislador de proceso (sandbox). Para ello, transmite los datos del
        pago de prueba en la solicitud. Consulta las <a
        href="https://developers.xsolla.com/es/doc/pay-station/testing/test-one-time-purchase-in-sandbox/#pay_station_testing_sandbox_bank_card_partial_refund">instrucciones</a>
        para obtener más información sobre el acceso al modo de entorno de
        pruebas (sandbox) y las pruebas.</p>

        </div>


        <p></p>


        <div class="notice">

        <p><strong>Aviso</strong></p><p>Esta llamada API no contiene el
        parámetro de ruta <code>project_id</code>, 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.</p>

        </div>
      operationId: request-partial-refund
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/transaction-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              description: test refund request
              refund_amount: 1.5
            schema:
              properties:
                description:
                  description: Motivo del reembolso.
                  maxLength: 4000
                  type: string
                refund_amount:
                  description: El importe del reembolso en una moneda de compra.
                  format: float
                  type: number
              required:
                - description
                - refund_amount
              type: object
        required: true
      responses:
        '204':
          description: Solicitud de reembolso aceptada
        '403':
          description: No dispone del permiso necesario
        '404':
          content:
            application/json:
              example:
                message: Transaction with specified ID does not exist.
              schema:
                properties:
                  message:
                    description: >-
                      No existe ninguna transacción con el ID especificado.
                      Comprueba las credenciales de pago o contacta con el
                      equipo de asistencia de Xsolla: support@xsolla.com.
                    type: string
                type: object
          description: Transacción no encontrada
        '422':
          content:
            application/json:
              example:
                message: Partial refund is unavailable for subscription payments.
              schema:
                properties:
                  message:
                    description: >
                      **No se acepta el reembolso**


                      Devuelve uno de los siguientes mensajes:

                      - Partial refund is unavailable for operations with user
                      balance.

                      - Requested transaction is partial refund and cannot be
                      canceled.

                      - Partial refund is unavailable for subscription payments.

                      - Refund cannot be completed due to a payment system
                      error. Please try again 
                        later.
                      - Requested partial refund amount exceeds payment amount.

                      - Requested partial refund amount is less than minimum
                      amount specified by 
                        payment system.
                      - Payment amount after partial refund will be less than
                      allowable amount 
                        specified by payment system.
                      - Dispute for this invoice is already opened. Can’t make a
                      refund yet.


                      **El método de pago actual no permite reembolsos
                      parciales**


                      Devuelve uno de los siguientes mensajes:

                      - Current payment method does not support partial refunds.

                      - Current transaction status does not allow refunds.

                      - Deadline for refund is exceeded.

                      - Partial refund is unavailable because discount was
                      applied during payment 
                        creation.

                      **No se puede realizar el reembolso parcial porque el
                      importe es incorrecto**


                      Devuelve el siguiente mensaje:

                      - Partial refund is unavailable because requested amount
                      is specified with 
                        incorrect precision for purchase currency.
                    type: string
                type: object
          description: Entidad no procesable
      security:
        - basicAuth: []
      summary: Solicitar reembolso parcial
      tags:
        - refund
      x-server: true
  /merchants/{merchant_id}/reports/transactions/{transaction_id}/refund:
    put:
      description: >
        Envía una solicitud de reembolso para devolver un pago a un usuario.
        Consulta 

        la [Función de
        reembolso](https://developers.xsolla.com/es/doc/pay-station/features/refund/)
        para obtener más información sobre el proceso.


        <div class="note">

        <p><strong>Nota</strong></p><p>Puedes solicitar este método API en el
        modo de entorno de pruebas (sandbox). Para ello, transmite los datos del
        pago de prueba en la solicitud. Consulta las <a
        href="https://developers.xsolla.com/es/doc/pay-station/testing/test-one-time-purchase-in-sandbox/#pay_station_testing_sandbox_bank_card_refund">instrucciones</a>
        para obtener más información sobre el acceso al modo de entorno de
        pruebas (sandbox) y las pruebas.</p>

        </div>


        <p></p>


        <div class="notice">

        <p><strong>Aviso</strong></p><p>Esta llamada API no contiene el
        parámetro de ruta <code>project_id</code>, 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.</p>

        </div>
      operationId: request-refund
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/transaction-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              description: test refund request
            schema:
              properties:
                description:
                  description: Motivo del reembolso.
                  maxLength: 4000
                  type: string
                email:
                  description: Correo del usuario.
                  maxLength: 100
                  type: string
              required:
                - description
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                message: >-
                  The request for a refund has been accepted. Xsolla CS will
                  automatically send the customer an email with alternative
                  refund options as the user's method does not support direct
                  refunds.
              schema:
                properties:
                  message:
                    description: >-
                      Puede devolver uno de los siguientes mensajes:

                      - No content.

                      - The request for a refund has been accepted. Xsolla CS
                      will manually complete the refund. It may take up to two
                      business days.

                      - The request for a refund has been accepted. Xsolla CS
                      will automatically send the customer an email with
                      alternative refund options as the user's method does not
                      support direct refunds.
                    type: string
                type: object
          description: OK (sin error).
        '204':
          description: Solicitud de reembolso aceptada.
        '401':
          description: Unauthorized (acceso denegado).
        '404':
          content:
            application/json:
              example:
                message: >-
                  Transaction ID not valid. Please check payment credentials.
                  Otherwise, contact Xsolla support at support@xsolla.com.
              schema:
                properties:
                  message:
                    description: >-
                      El ID de la transacción no es válido. Comprueba las
                      credenciales de pago o contacta con el equipo de
                      asistencia de Xsolla: support@xsolla.com.
                    type: string
                type: object
          description: Transacción no encontrada.
        '422':
          content:
            application/json:
              example:
                message: >-
                  We are processing the refund request. This may take up to two
                  business days.
              schema:
                properties:
                  message:
                    description: >-
                      Puede devolver uno de los siguientes mensajes:

                      - We are processing the refund request. This may take up
                      to two business days.

                      - We are reaching the user for the information required
                      for the refund. For details, contact Xsolla Support.

                      - Incorrect payment status. Refund is possible only for
                      payments with "completed" or "error" status.

                      - To process this request, the customer's email address
                      field must be filled. Please specify the customer's email
                      address and try again.

                      - Full refund is unavailable because there are successful
                      partial refunds for this transaction.

                      - Refund failed. Please contact Xsolla Support to process
                      it manually.

                      - Dispute for this invoice is already opened. Can’t make a
                      refund yet.
                    type: string
                type: object
          description: Unprocessable Entity (parámetros de solicitud no válidos).
      security:
        - basicAuth: []
      summary: Solicitar reembolso
      tags:
        - refund
      x-server: true
  /merchants/{merchant_id}/reports/transfers:
    get:
      description: >
        Muestra todos los pagos de un periodo.


        <div class="notice">

        <p><strong>Aviso</strong></p><p>Esta llamada API no contiene el
        parámetro de ruta <code>project_id</code>, 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.</p>

        </div>
      operationId: get-payouts
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/datetime-from'
        - $ref: '#/components/parameters/datetime-to'
        - $ref: '#/components/parameters/legal-entity-id'
        - $ref: '#/components/parameters/payout-status'
      responses:
        '200':
          content:
            application/json:
              example:
                - canceled: 0
                  payout:
                    currency: USD
                    date: '2014-01-03T00:00:00+04:00'
                    id: 1
                    note: 12/05/2013 - 01/04/2014
                  rate: 1
                  transfer:
                    currency: USD
                    date: '2014-01-05T00:00:00+04:00'
                    note: '004357'
          description: OK.
      security:
        - basicAuth: []
      summary: Obtener desembolsos
      tags:
        - reports
      x-admin: true
      x-server: true
  /merchants/{merchant_id}/token:
    post:
      description: "Puede generar un token con parámetros de usuario arbitrarios. Envía dichos \nparámetros al obtener el token y los recupera tras realizarse un pago. Un token \nsolo puede incluir los parámetros mencionados en este documento o que haya \ndefinido previamente.\n\nSi se envía algún parámetro con un formato o de tipo incorrecto, no se generará \nningún token. Aparecerá el código HTTP 422 junto con la descripción del error \nen el cuerpo JSON. En `extended_message` encontrará los detalles exactos de los \nparámetros que se han enviado incorrectamente.\n\nPor defecto, el ciclo de vida del token es de 24\_horas. Si quiere cambiar este \nvalor, contacte con su gestor del éxito del cliente o envíe un correo \nelectrónico a <a href=\"mailto:csm@xsolla.com\">csm@xsolla.com</a>. El nuevo \nvalor se habilitará para todos los proyectos de su empresa creados en <a \nhref=\"https://publisher.xsolla.com/\">Cuenta del editor</a>.\n\n<div class=\"notice\">\n<p><strong>Aviso</strong></p><p>El token que obtiene tras solicitar este método API solo se puede utilizar para autorizar otras solicitudes. Puede utilizar este token para abrir la interfaz de pago si tiene integrado el producto <a href=\"https://developers.xsolla.com/es/doc/subscriptions/\">Subscriptions</a>.</p><p>Para abrir la interfaz de pago en una nueva ventana, utilice el siguiente enlace: <code>https://secure.xsolla.com/paystation4/?token={token}</code>, en el cual <code>{token}</code> es el token recibido. </p><p>Para realizar pruebas, utilice esta URL:\_<code>https://sandbox-secure.xsolla.com/paystation4/?token={token}</code>.</p>\n</div>\n\n<p></p>\n\n<div class=\"notice\">\n<p><strong>Aviso</strong></p><p>Esta llamada API no contiene el parámetro de ruta <code>project_id</code>, 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.</p>\n</div>\n"
      operationId: create-token
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/token'
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                token: eop57k1boA7nnYPtewZ6KEXJyJADEwRT
              schema:
                properties:
                  token:
                    type: string
                type: object
          description: Created.
        '422':
          content:
            application/json:
              example:
                extended_message:
                  global_errors: []
                  property_errors:
                    purchase.checkout.amount:
                      - String value found, but a number is required
                http_status_code: 422
                message: >-
                  JSON is not valid against json schema, please check
                  documentation
                  https://developers.xsolla.com/es/api/v2/getting-started/#api_token_ui
                request_id: cd72633
              schema:
                properties:
                  extended_message:
                    properties:
                      global_errors:
                        items:
                          type: string
                        type: array
                      property_errors:
                        description: >-
                          El objeto contiene nombres de parámetros con
                          descripciones de errores.
                        type: object
                    type: object
                  http_status_code:
                    type: integer
                  message:
                    type: string
                  request_id:
                    type: string
                type: object
          description: Unprocessable Entity.
      security:
        - basicAuth: []
      summary: Crear token
      tags:
        - token
      x-server: true
  /projects/{project_id}/users/{user_id}/payment_accounts:
    get:
      description: >
        Muestra las cuentas de pago guardadas de un usuario determinado.


        <div class="note">

        <p><strong>Nota</strong></p><p>En modo aislador de proceso (sandbox),
        esta llamada API funciona solamente con <a
        href="https://developers.xsolla.com/es/doc/pay-station/testing/test-cards/">tarjetas
        de prueba</a> que no tienen función 3-D Secure.</p>

        </div>
      operationId: get-saved-accounts
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/user-id-path-param'
        - $ref: '#/components/parameters/mode'
      responses:
        '200':
          content:
            application/json:
              example:
                - id: 4612345
                  name: PP_saved_account
                  payment_system:
                    id: 24
                    name: PayPal
                  type: paypal
          description: OK.
      security:
        - basicAuth: []
      summary: Obtener cuentas guardadas
      tags:
        - tokenization
      x-server: true
  /projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}:
    delete:
      description: >
        Elimina una cuenta de pago guardada.


        <div class="note">

        <p><strong>Nota</strong></p><p>En modo aislador de proceso (sandbox),
        esta llamada API funciona solamente con <a
        href="https://developers.xsolla.com/es/doc/pay-station/testing/test-cards/">tarjetas
        de prueba</a> que no tienen función 3-D Secure.</p>

        </div>


        <p></p>


        <div class="note">

        <p><strong>Nota</strong></p><p>Puedes solicitar este método API en el
        modo de entorno de pruebas (sandbox). Para ello, transmite los datos de
        la cuenta de pago de prueba en la solicitud. Consulta las <a
        href="https://developers.xsolla.com/es/doc/pay-station/testing/test-saved-cards-in-sandbox/#pay_station_testing_tokenization_sandbox_delete_saved_card">instrucciones</a>
        para obtener más información sobre el acceso en el modo de entorno de
        pruebas (sandbox) y las pruebas.</p>

        </div>
      operationId: delete-saved-account
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/user-id-path-param'
        - $ref: '#/components/parameters/type-path-param'
        - $ref: '#/components/parameters/account-id-path-param'
      responses:
        '204':
          description: No Content.
      security:
        - basicAuth: []
      summary: Eliminar cuenta guardada
      tags:
        - tokenization
      x-server: true
  /projects/{project_id}/users/{user_id}/payments/{type}/{account_id}:
    post:
      description: "Cobra a un usuario a través de una cuenta de pago guardada.\n\n<div class=\"note\">\n<p><strong>Nota</strong></p><p>En modo aislador de proceso (sandbox), esta llamada API funciona solamente con <a href=\"https://developers.xsolla.com/es/doc/pay-station/testing/test-cards/\">tarjetas de prueba</a> que no tienen función 3-D Secure.</p>\n</div>\n\n<p></p>\n\n<div class=\"notice\">\n<p><strong>Aviso</strong></p><p>Para que la llamada API funcione correctamente, establezca un tiempo de espera de 2\_minutos.</p>\n</div>\n"
      operationId: charge-with-saved-account
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/user-id-path-param'
        - $ref: '#/components/parameters/type-path-param'
        - $ref: '#/components/parameters/account-id-path-param'
      requestBody:
        $ref: '#/components/requestBodies/charge-with-saved-account'
      responses:
        '201':
          content:
            application/json:
              example:
                transaction_id: 123458390
              schema:
                properties:
                  transaction_id:
                    type: integer
                type: object
          description: Created.
        '422':
          description: Unprocessable Entity.
      security:
        - basicAuth: []
      summary: Cobrar con cuenta guardada
      tags:
        - tokenization
      x-server: true
components:
  securitySchemes:
    basicAuth:
      description: >-
        La API de Xsolla utiliza autenticación de acceso básica. Todas las
        solicitudes a la API deben contener el encabezado `Authorization: Basic
        <your_authorization_basic_key>`, en el cual
        `<your_authorization_basic_key>` es el par de `merchant_id:api_key`
        codificado según el estándar Base64.

         Acceda a [Cuenta del editor](https://publisher.xsolla.com/) para encontrar estos parámetros:<ul><li>`merchant_id` se muestra:<ul><li>En la sección **Company settings > Company**.</li><li>En la URL de la barra de direcciones del navegador en cualquier página de Cuenta del editor. La URL tiene el siguiente formato: `https://publisher.xsolla.com/<merchant_id>`.</li></ul></li><li>`api_key` se muestra en Cuenta del editor solo una vez cuando se crea y debe almacenarse en su servidor. Puede crear una nueva clave en la siguiente sección:<ul><li>**Company settings > API keys**.</li><li>**Project settings > API keys**.</li></ul></li></ul><br>
         Para obtener más información sobre cómo trabajar con claves de API, consulta la [Referencia de la API](https://developers.xsolla.com/es/api/getting-started/#api_keys_overview).
      scheme: basic
      type: http
  parameters:
    merchant-id-path-param:
      description: ID de vendedor.
      in: path
      name: merchant_id
      required: true
      schema:
        type: integer
    project-id-path-param:
      description: ID del proyecto.
      in: path
      name: project_id
      required: true
      schema:
        type: integer
    transaction-id-path-param:
      description: ID de la transacción.
      in: path
      name: transaction_id
      required: true
      schema:
        type: integer
    datetime-from-req:
      description: >-
        Fin del periodo en formato AAAA-MM-DD. No es necesario si se transmite
        al menos uno de los siguientes
        parámetros:<ul><li>`transfer_id`</li><li>`report_id`</li></ul>
      example: '2023-02-08'
      in: query
      name: datetime_from
      required: true
      schema:
        format: datetime
        type: string
    datetime-to-req:
      description: >-
        Fin del periodo en formato AAAA-MM-DD. No es necesario si se transmite
        al menos uno de los siguientes
        parámetros:<ul><li>`transfer_id`</li><li>`report_id`</li></ul> La
        diferencia entre `datetime_from` y `datetime_to` no puede ser superior a
        92 días.
      example: '2023-03-08'
      in: query
      name: datetime_to
      required: true
      schema:
        format: datetime
        type: string
    format:
      description: Formato de los datos.
      in: path
      name: format
      required: true
      schema:
        enum:
          - json
          - csv
          - xls
        type: string
    in-transfer-currency:
      description: >-
        Convierte todos los datos financieros a la moneda de desembolso (por
        defecto se utiliza la moneda de pagos entrantes). No es necesario si se
        transmite al menos uno de los siguientes
        parámetros:<ul><li>`transfer_id`</li><li>`report_id`</li></ul>
      in: query
      name: in_transfer_currency
      required: true
      schema:
        type: integer
    show-total:
      description: >-
        Si se debe incluir el importe total de las transacciones en el informe.
        Disponible para exportación, pero solo en formato CSV. Por defecto es
        `true`.
      in: query
      name: show_total
      schema:
        type: boolean
    merchant-of-records:
      description: >-
        Comerciante titular. Puede ser `xsolla`, `merchant` o sin especificar.
        Si es `merchant`, devuelve las transacciones realizadas a través de las
        pasarelas del socio. Si es `xsolla`, devuelve las transacciones
        realizadas sin utilizar las pasarelas del socio. Si no se especifica,
        devuelve todas las transacciones.
      in: query
      name: merchant_of_records
      required: false
      schema:
        enum:
          - xsolla
          - merchant
        nullable: true
        type: string
        x-enumDescriptions:
          merchant: >-
            Devuelve las transacciones realizadas a través de las pasarelas del
            socio.
          xsolla: >-
            Devuelve las transacciones realizadas sin utilizar las pasarelas del
            socio.
    project-id-query-param:
      description: ID del proyecto.
      in: query
      name: project_id
      required: false
      schema:
        type: integer
    show-dry-run:
      description: Si se deben incluir transacciones de prueba.
      in: query
      name: show_dry_run
      required: false
      schema:
        type: boolean
    transfer-id:
      description: ID del desembolso.
      in: query
      name: transfer_id
      required: false
      schema:
        type: integer
    report-id:
      description: ID del informe financiero.
      in: query
      name: report_id
      required: false
      schema:
        type: integer
    offset:
      description: >-
        Número del elemento a partir del cual se genera la lista (el conteo
        empieza desde el 0).
      in: query
      name: offset
      required: false
      schema:
        type: integer
    limit-req:
      description: >-
        Límite del número de transacciones que se muestran en la página. Si se
        transmite este parámetro, no es necesario transmitir los parámetros
        `datetime_from` y `datetime_to`.
      in: query
      name: limit
      required: false
      schema:
        type: integer
    transaction-status:
      description: Estado de la transacción.
      in: query
      name: status
      required: false
      schema:
        enum:
          - done
          - canceled
          - error
          - refunded
        type: string
    datetime-from:
      description: Inicio del periodo.
      in: query
      name: datetime_from
      required: false
      schema:
        format: datetime
        type: string
    datetime-to:
      description: Fin del periodo.
      in: query
      name: datetime_to
      required: false
      schema:
        format: datetime
        type: string
    transaction-id:
      description: ID de la transacción.
      in: query
      name: transaction_id
      required: false
      schema:
        type: integer
    type:
      description: 'Tipo de transacciones que aparecen en los resultados de búsqueda:'
      in: query
      name: type
      required: false
      schema:
        enum:
          - all
          - transferred
          - canceled
          - test
        type: string
        x-enumDescriptions:
          all: Todas las transacciones.
          canceled: Transacciones canceladas, sin incluir las transacciones de prueba.
          test: Transacciones de prueba.
          transferred: >-
            Transacciones realizadas con éxito, sin incluir las transacciones de
            prueba.
    phone:
      description: Número de teléfono en formato internacional.
      in: query
      name: phone
      required: false
      schema:
        type: string
    user-id-query-param:
      description: >-
        ID único de usuario en el juego que está almacenado en su lado.
        Asegúrese de transmitir el ID de usuario existente. Si se produce un
        error, consulte las [respuestas a las Preguntas
        frecuentes](/es/doc/pay-station/references/faq/#faq_validation).
      in: query
      name: user_id
      required: false
      schema:
        type: string
    user-name:
      description: Nombre de usuario.
      in: query
      name: user_name
      required: false
      schema:
        type: string
    user-custom:
      description: Parámetro personalizado para la identificación del usuario.
      in: query
      name: user_custom
      required: false
      schema:
        type: string
    email:
      description: Correo del usuario.
      in: query
      name: email
      required: false
      schema:
        maxLength: 100
        type: string
    external-id:
      description: >-
        ID de la transacción dentro del juego. Debe ser único para cada pago del
        usuario.
      in: query
      name: external_id
      required: false
      schema:
        type: string
    order-id:
      description: >-
        ID del pedido. Puede usarlo para invocar el método API [Obtener
        pedido](/es/api/shop-builder/operation/get-order/).
      example: 1234
      in: query
      name: order_id
      required: false
      schema:
        type: integer
    limit:
      description: Límite para el número de elementos presentes en la página.
      in: query
      name: limit
      required: false
      schema:
        type: integer
    status:
      description: Un estado de transacción.
      in: query
      name: status
      required: false
      schema:
        $ref: '#/components/schemas/status.enum'
    legal-entity-id:
      description: ID de la entidad jurídica del desarrollador.
      in: query
      name: legal_entity_id
      required: false
      schema:
        type: integer
    payout-status:
      description: Estado del desembolso.
      in: query
      name: status
      required: false
      schema:
        enum:
          - hold
          - ready
          - paid
        type: string
        x-enumDescriptions:
          hold: A la espera de una solicitud para proceder.
          paid: Desembolso completado.
          ready: Desembolso en curso.
    user-id-path-param:
      description: >-
        ID único de usuario en el juego que está almacenado en su lado.
        Asegúrese de transmitir el ID de usuario existente. Si se produce un
        error, consulte las [respuestas a las Preguntas
        frecuentes](/es/doc/pay-station/references/faq/#faq_validation).
      in: path
      name: user_id
      required: true
      schema:
        type: string
    mode:
      description: >-
        Establecer en entorno de pruebas (`sandbox`) para probar el proceso de
        pago. Elimina el parámetro para realizar pagos reales.
      in: query
      name: mode
      required: false
      schema:
        type: string
    type-path-param:
      description: Tipo de cuenta de pago.
      in: path
      name: type
      required: true
      schema:
        enum:
          - card
          - amazon
          - skrill
          - paypal
          - toss
          - alipayplus_cn
          - alipayplus_hk
          - alipayplus_gcash
          - alipayplus_dana
          - alipayplus_rabbitlinepay
          - alipayplus_tng
          - alipayplus_boost
          - alipayplus_truemoney
          - alipayplus_maya
          - alipayplus_kplus
          - softbank_paypay
          - softbank_docomo
          - softbank_softbank2
          - softbank_au
          - softbank_ymobile
          - paysafecard_eu
          - paysafecard_us
          - paidy
          - klarna
          - mercadopago
          - nupay
        type: string
        x-enumDescriptions:
          alipayplus_boost: Boost.
          alipayplus_cn: Alipay.
          alipayplus_dana: DANA.
          alipayplus_gcash: GCash.
          alipayplus_hk: Alipay (Hong Kong).
          alipayplus_kplus: K PLUS.
          alipayplus_maya: Maya.
          alipayplus_rabbitlinepay: Rabbit LINE Pay
          alipayplus_tng: Touch 'n Go.
          alipayplus_truemoney: Monedero TrueMoney.
          amazon: Amazon Pay.
          card: Tarjetas bancarias.
          klarna: "Klarna. El almacenamiento de los datos de las cuentas de pago únicamente está disponible para los siguientes países: EE.\_UU., Reino Unido, Suecia, Alemania, Austria, Noruega, Finlandia, Dinamarca y Países Bajos."
          mercadopago: Mercado Pago (incluido Mercado Pago Connect).
          nupay: NuPay.
          paidy: Paidy.
          paypal: PayPal.
          paysafecard_eu: Paysafecard (EU).
          paysafecard_us: "Paysafecard (EE.\_UU.)."
          skrill: Monedero digital Skrill.
          softbank_au: au Easy Payment.
          softbank_docomo: Docomo.
          softbank_paypay: PayPay.
          softbank_softbank2: SoftBank.
          softbank_ymobile: Y!mobile.
          toss: Monedero Toss.
    account-id-path-param:
      description: ID de la cuenta guardada en la base de datos de Xsolla.
      in: path
      name: account_id
      required: true
      schema:
        type: integer
  schemas:
    empty-body:
      description: >-
        Para que la solicitud API funcione correctamente, el cuerpo de la
        solicitud debe estar vacío.
      nullable: true
      type: object
    status.enum:
      enum:
        - created
        - processing
        - review
        - error
        - done
        - awaitingRefund
        - refunded
        - canceled
        - partiallyRefunded
      type: string
      x-enumDescriptions:
        awaitingRefund: >-
          La transacción está pendiente de una decisión sobre el reembolso.
          Cuando el usuario haya solicitado un reembolso, el servicio de
          atención al cliente de Xsolla procesa la solicitud manualmente y
          adoptará una decisión sobre el reembolso.
        canceled: |-
          Hay dos escenarios posibles:
            - La transacción ha sido cancelada en el lado del sistema de pago. Por ejemplo, no había fondos suficientes en la cuenta del usuario.
            - El pago fue reembolsado al usuario.
        created: El usuario inició la transacción, pero esta aún no se ha procesado.
        done: La transacción fue procesada correctamente.
        error: >-
          Se produjo un error al procesar la transacción. Estos pagos pueden ser
          reembolsados si contacta con el equipo de atención al cliente de
          Xsolla.
        partiallyRefunded: El usuario recibió un reembolso parcial.
        processing: La transacción está siendo procesada.
        refunded: Se hizo un reembolso al saldo de Xsolla del usuario.
        review: >-
          El pago ha sido suspendido por el sistema antifraude y la transacción
          está siendo sometida a una verificación adicional.
    custom_parameters:
      description: >-
        Este objeto contiene parámetros destinados a configurar los filtros
        antifraude. La lista de parámetros se muestra a continuación. Para
        agregar parámetros personalizados, contacte con su gestor del éxito del
        cliente o envíe un correo electrónico a
        [csm@xsolla.com](mailto:csm@xsolla.com).
      properties:
        active_date:
          description: >-
            Fecha de última visita conforme a la norma [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601).
          type: string
        additional_verification:
          description: Si el jugador usa o no procedimientos de verificación de cuenta.
          type: boolean
        character_customized:
          description: Si el jugador ha personalizado o no su personaje.
          type: boolean
        chat_activity:
          description: Si el jugador emplea o no la función de chat.
          type: boolean
        completed_tasks:
          description: Número de tareas/objetivos realizados/alcanzados.
          type: integer
        forum_activity:
          description: Si el jugador emplea o no la función del foro.
          type: boolean
        items_used:
          description: Si el jugador usa o no artículos comprados en el juego.
          type: boolean
        karma_points:
          description: Karma del jugador.
          type: integer
        last_change_password_date:
          description: >-
            Fecha del último cambio de contraseña conforme a la norma [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601).
          type: string
        non_premium_currency:
          description: Importe de la moneda no prémium.
          format: float
          type: number
        notifications_enabled:
          description: Si el jugador habilitó o no las notificaciones.
          type: boolean
        profile_completed:
          description: Si el jugador añadió o no información adicional a su perfil.
          type: boolean
        profile_image_added:
          description: Si el jugador ha subido o no una imagen de perfil.
          type: boolean
        pvp_activity:
          description: >-
            Si el jugador participa en batallas PvP (jugadores contra
            jugadores).
          type: boolean
        registration_date:
          description: >-
            Fecha de creación de la cuenta conforme a la norma [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601).
          type: string
        session_time:
          description: >-
            Duración media de sesión conforme a la norma [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601).
          type: string
        social_networks_added:
          description: Si el jugador ha conectado o no perfiles de redes sociales.
          type: boolean
        total_bans:
          description: Número de veces que el jugador fue expulsado del chat/foro.
          type: integer
        total_characters:
          description: Número de personajes dentro del juego.
          type: integer
        total_clans:
          description: Número de clanes a los que pertenece el jugador.
          type: integer
        total_friends:
          description: Número de amigas/os.
          type: integer
        total_game_events:
          description: >-
            Número de eventos internos del juego en los que participó el
            jugador.
          type: integer
        total_gifts:
          description: >-
            Número de regalos internos del juego que el jugador ha
            enviado/recibido.
          type: integer
        total_hours:
          description: Número total de horas dentro del juego.
          type: integer
        total_inventory_value:
          description: Valor total del inventario (moneda del juego).
          format: float
          type: number
        total_sum:
          description: Importe total de los pagos.
          format: float
          type: number
        tutorial_completed:
          description: Si el jugador ha finalizado o no el tutorial del juego.
          type: boolean
        unlocked_achievements:
          description: Número de logros desbloqueados.
          type: integer
        user_level:
          description: Nivel, reputación o rango del jugador.
          type: integer
        win_rate:
          description: Índice de victorias.
          type: integer
      type: object
    subscription:
      description: Datos de la suscripción.
      properties:
        available_plans:
          description: Planes de suscripción que deben aparecer en la interfaz de pago.
          items:
            type: string
          type: array
        currency:
          description: >-
            Moneda del plan de suscripción que debe usarse en todos los
            cálculos.
          type: string
        operation:
          description: >-
            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`.
          type: string
        plan_id:
          description: >-
            ID externo del plan de suscripción. Puede encontrarse en la sección
            **Suscripciones > Planes de suscripción** de la Cuenta del editor.
          type: string
        product_id:
          description: ID del producto.
          type: string
        trial_days:
          description: Periodo de prueba en días.
          type: integer
      type: object
    purchase:
      description: Objeto con los detalles de la compra.
      properties:
        subscription:
          $ref: '#/components/schemas/subscription'
      type: object
    currency:
      description: >-
        Moneda preferida para la compra. Código de moneda de tres letras de
        conformidad con la norma [ISO
        4217](https://developers.xsolla.com/es/doc/pay-station/references/supported-currencies/).
      type: string
    external_id:
      description: >-
        ID de transacción en el juego. Debe ser distinto para cada pago de
        usuario. Consulta la <a
        href="https://developers.xsolla.com/es/doc/pay-station/references/faq/#faq_payments_q_new_transaction_external_id">documentación</a>
        para obtener información detallada.
      type: string
    language:
      description: >-
        Idioma de la interfaz. [Código de
        idioma](https://developers.xsolla.com/es/doc/pay-station/features/localization/)
        de dos letras minúsculas.
      type: string
    mode.settings:
      description: >-
        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.
      type: string
    payment_method:
      description: ID del método de pago.
      type: integer
    payment_widget:
      description: >-
        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
      type: string
    project_id:
      description: ID en Xsolla del juego. Se puede encontrar en Cuenta del editor.
      type: integer
    redirect_policy:
      description: Ajustes de las directivas de redireccionamiento.
      properties:
        delay:
          description: >-
            Retraso (en segundos) tras el cual a un usuario se le redirige
            automáticamente a la URL de retorno.
          type: integer
        manual_redirection_action:
          description: >-
            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
          type: string
        redirect_button_caption:
          description: Texto del botón para el redireccionamiento manual.
          type: string
        redirect_conditions:
          description: >-
            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
          type: string
        status_for_manual_redirection:
          description: >-
            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
          type: string
      type: object
    return_url:
      description: >-
        URL de la página a la que se redirige al usuario tras el pago. Consulta
        la <a
        href="https://developers.xsolla.com/es/doc/pay-station/how-to/how-to-configure-redirects/">documentación</a>
        para obtener información detallada sobre la configuración de
        redirecciones.
      type: string
    ap_quick_payment_button:
      description: >
        Si se muestra o no el botón de pago rápido a través de Apple Pay en la
        parte 

        superior de la interfaz de pago en los dispositivos admitidos. Es `true`
        por 

        defecto. Si es `false`, Apple Pay aparece en la lista de métodos de pago
        según 

        el algoritmo de
        [PayRank](/es/doc/pay-station/how-to/how-to-manage-top-payment-methods/).


        <div class="note">

        <p><strong>Nota</strong></p><p>En dispositivos Android y en cualquier
        otro dispositivo que no admita pagos con Apple Pay, este método de pago
        quedará oculto en la lista de métodos disponibles, con independencia del
        valor del parámetro.</p>

        </div>
      type: boolean
    components:
      description: Ajustes del menú.
      properties:
        subscriptions:
          description: Ajustes del submenú de planes de suscripción.
          properties:
            hidden:
              description: Si se muestra o no el submenú.
              type: boolean
            order:
              description: Posición del submenú en el menú.
              type: integer
          type: object
        virtual_currency:
          description: Ajustes del submenú de moneda virtual.
          properties:
            custom_amount:
              description: >-
                Si el usuario puede ingresar o no una cantidad arbitraria de
                moneda virtual en la interfaz de pago.
              type: boolean
            hidden:
              description: Si se muestra o no el submenú.
              type: boolean
            order:
              description: Posición del submenú en el menú.
              type: integer
          type: object
        virtual_items:
          description: Ajustes del submenú de artículos virtuales.
          properties:
            hidden:
              description: Si se muestra o no el submenú.
              type: boolean
            order:
              description: Posición del submenú en el menú.
              type: integer
            selected_group:
              description: >-
                Grupo que se mostrará tras abrir la pestaña de artículos
                virtuales.
              type: string
            selected_item:
              description: >-
                Artículo que se mostrará tras abrir la pestaña de artículos
                virtuales (código de artículo —SKU—).
              type: string
          type: object
      type: object
    currency_format:
      description: >-
        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.
      type: string
    close_button_icon:
      description: El icono del botón **Cerrar** en la interfaz de pago.
      enum:
        - arrow
        - cross
      type: string
      x-enumDescriptions:
        arrow: El icono **←** a la izquierda del encabezado de la interfaz de pago.
        cross: El icono **×** a la derecha del encabezado de la interfaz de pago.
    header.desktop:
      description: Ajustes del encabezado.
      properties:
        close_button:
          description: >-
            Mostrar o no el botón *Close** (Cerrar) en la interfaz de pago. El
            botón cierra la interfaz de pago y redirige al usuario a la URL
            especificada en el parámetro `settings.return_url`. Por defecto es
            `false`.
          type: boolean
        close_button_icon:
          $ref: '#/components/schemas/close_button_icon'
        is_visible:
          description: Si se muestra o no el encabezado en la interfaz de pago.
          type: boolean
        type:
          description: >-
            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
          type: string
        visible_logo:
          description: >-
            Si es `true`, el logotipo se muestra en el encabezado. Para subir
            una imagen, abra su proyecto en [Cuenta del
            editor](https://publisher.xsolla.com/) y vaya a la sección **Pay
            Station > Settings**.
          type: boolean
        visible_name:
          description: Si se muestra o no el nombre del proyecto en el encabezado.
          type: boolean
        visible_purchase:
          description: >-
            Si se muestra o no la descripción de la compra
            (`purchase.description.value`) en el encabezado. Por defecto es
            `true`.
          type: boolean
      type: object
    subscription_list.desktop:
      description: Configuración de la lista de planes de suscripción.
      properties:
        description:
          description: >-
            Cualquier texto que se muestre encima de la lista de planes de
            suscripción disponibles en la interfaz de pago.
          type: string
        display_local_price:
          description: >-
            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.
          type: boolean
      type: object
    desktop.ui:
      description: Ajustes de la interfaz para la versión de escritorio.
      properties:
        header:
          $ref: '#/components/schemas/header.desktop'
        subscription_list:
          $ref: '#/components/schemas/subscription_list.desktop'
      type: object
    gp_quick_payment_button:
      description: "La forma en que se muestra el método de pago Google\_Pay. Si es `true`, el botón de pago rápido mediante Google\_Pay se muestra en la parte superior de la interfaz de pago, independientemente del dispositivo y del navegador del usuario. Si es `false`, Google Pay aparece en la lista de métodos de pago según el algoritmo [PayRank](/es/doc/pay-station/how-to/how-to-manage-top-payment-methods/). Si no se transmite el parámetro, Google Pay se muestra en la parte superior de la interfaz de pago en los dispositivos y navegadores de cualquier usuario, salvo en Safari; en este sistema operativo se muestra en la lista de métodos de pago."
      type: boolean
    header.ui:
      properties:
        visible_virtual_currency_balance:
          description: >-
            Si este elemento puede ocultarse o no en la interfaz de pago. `true`
            por defecto.
          type: boolean
      type: object
    is_cart_open_by_default:
      description: >-
        La visualización de la lista de artículos de la cesta y los datos
        financieros en la interfaz de pago. Si es `true`, la información se
        muestra en una vista ampliada. Si es `false` (por defecto) o no se
        transmiten los parámetros, la información se muestra en una vista
        contraída.
      type: boolean
    is_independent_windows:
      description: >-
        Si se redirige a los usuarios desde el navegador del lanzador incrustado
        (WebView) a su navegador predeterminado para realizar una compra.
        `false` por defecto.
      type: boolean
    is_language_selector_hidden:
      description: >-
        Si el selector del idioma está oculto en la página de pago. Si es
        `false` (por defecto), se mostrará el selector.
      type: boolean
    is_payment_methods_list_mode:
      description: >-
        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/).
      type: boolean
    is_prevent_external_link_open:
      description: >-
        Si se desactiva o no la redirección de enlaces a un recurso externo.
        `false` por defecto. 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`.
      type: boolean
    is_search_field_hidden:
      description: >-
        Si se muestra o no una barra del método de pago en la interfaz de pago.
        Si es `true`, la barra de búsqueda se oculta. Es `false` por defecto.
      type: boolean
    is_show_close_widget_warning:
      description: >-
        Si se muestra un aviso 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á
        el aviso. `true` por defecto.
      type: boolean
    is_three_ds_independent_windows:
      default: false
      description: >-
        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`.
      type: boolean
    layout:
      description: >-
        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
      type: string
    mobile.ui:
      properties:
        header:
          properties:
            close_button:
              description: >-
                Si se muestra o no el 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`.
              type: boolean
            close_button_icon:
              $ref: '#/components/schemas/close_button_icon'
          type: object
      type: object
    mode.ui:
      description: >
        Modo de visualización de la interfaz de pago para gestionar los métodos
        de pago 

        guardados. Puede establecerse como `user_account` u omitirse. En este
        modo, el 

        usuario solamente puede cambiar el idioma, agregar nuevos métodos de
        pago y 

        eliminar los existentes.


        <div class="note">

        <p><strong>Observación</strong></p><p>Cuando se transmite este
        parámetro, no se muestra el botón de redireccionamiento. Para redirigir
        a un usuario tras guardar un método de pago, configure los <a
        href="/es/doc/pay-station/how-to/how-to-configure-redirects/#pay_station_how_to_configure_redirects_automatic/">redireccionamientos
        automáticos</a>.</p>

        </div>
      type: string
    theme.ui:
      description: >-
        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
      type: string
    payment_accounts_enable:
      properties:
        enable:
          description: >-
            Especifica si se muestra el icono del lápiz en la interfaz de
            usuario de pago que va a la página de edición del método de pago.
            `true` por defecto.
          type: boolean
        order:
          description: >-
            Posición de la sección en la lista desplegable de la interfaz de
            pago. Es necesario si se transmite
            `settings.ui.user_account.payment_accounts.enable`.
          minimum: 1
          type: integer
      type: object
    user_account:
      description: Datos de la cuenta del usuario.
      properties:
        payment_accounts:
          allOf:
            - description: Sección **Métodos guardados**.
            - $ref: '#/components/schemas/payment_accounts_enable'
      type: object
    ui:
      description: Ajustes de la interfaz.
      properties:
        apple_pay_quick_payment_button:
          $ref: '#/components/schemas/ap_quick_payment_button'
        components:
          $ref: '#/components/schemas/components'
        currency_format:
          $ref: '#/components/schemas/currency_format'
        desktop:
          $ref: '#/components/schemas/desktop.ui'
        gp_quick_payment_button:
          $ref: '#/components/schemas/gp_quick_payment_button'
        header:
          $ref: '#/components/schemas/header.ui'
        is_cart_open_by_default:
          $ref: '#/components/schemas/is_cart_open_by_default'
        is_independent_windows:
          $ref: '#/components/schemas/is_independent_windows'
        is_language_selector_hidden:
          $ref: '#/components/schemas/is_language_selector_hidden'
        is_payment_methods_list_mode:
          $ref: '#/components/schemas/is_payment_methods_list_mode'
        is_prevent_external_link_open:
          $ref: '#/components/schemas/is_prevent_external_link_open'
        is_search_field_hidden:
          $ref: '#/components/schemas/is_search_field_hidden'
        is_show_close_widget_warning:
          $ref: '#/components/schemas/is_show_close_widget_warning'
        is_three_ds_independent_windows:
          $ref: '#/components/schemas/is_three_ds_independent_windows'
        layout:
          $ref: '#/components/schemas/layout'
        mobile:
          $ref: '#/components/schemas/mobile.ui'
        mode:
          $ref: '#/components/schemas/mode.ui'
        theme:
          $ref: '#/components/schemas/theme.ui'
        user_account:
          $ref: '#/components/schemas/user_account'
      type: object
    settings:
      description: >-
        Configuración del proceso de pago y de la interfaz de pago para un
        usuario.
      properties:
        currency:
          $ref: '#/components/schemas/currency'
        external_id:
          $ref: '#/components/schemas/external_id'
        language:
          $ref: '#/components/schemas/language'
        mode:
          $ref: '#/components/schemas/mode.settings'
        payment_method:
          $ref: '#/components/schemas/payment_method'
        payment_widget:
          $ref: '#/components/schemas/payment_widget'
        project_id:
          $ref: '#/components/schemas/project_id'
        redirect_policy:
          $ref: '#/components/schemas/redirect_policy'
        return_url:
          $ref: '#/components/schemas/return_url'
        ui:
          $ref: '#/components/schemas/ui'
      required:
        - project_id
      type: object
    age.user:
      description: Edad del usuario.
      type: integer
    attributes.user:
      description: >-
        Atributos de usuario para filtrar la lista de artículos, representados
        como un conjunto JSON válido de pares clave-valor.
      type: object
    country.user:
      properties:
        allow_modify:
          description: >-
            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.
          type: boolean
        value:
          description: >-
            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).
          type: string
      type: object
    email.user:
      description: >-
        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 el correo electrónico transmitido en el parámetro o
        introducido en la página de pago.
      maxLength: 100
      properties:
        allow_modify:
          description: >-
            Si un usuario puede introducir su correo electrónico en la interfaz
            de pago. Si el parámetro `user.email.value` se transmite en el
            token, el valor es `false` por defecto.
          type: boolean
        value:
          description: >-
            Correo electrónico del usuario. Debe ser válido conforme al
            protocolo [RFC 822](https://www.w3.org/Protocols/rfc822/#z8).
          type: string
      required:
        - value
      type: object
    id.user:
      properties:
        value:
          description: >-
            ID único de usuario en el juego que está almacenado en su lado.
            Asegúrese de transmitir el ID de usuario existente. Si se produce un
            error, consulte las [respuestas a las Preguntas
            frecuentes](/es/doc/pay-station/references/faq/#faq_validation).
          type: string
      required:
        - value
      type: object
    is_legal.user:
      description: Si el usuario es una entidad jurídica.
      type: boolean
    legal:
      description: Objeto con datos de la entidad jurídica.
      properties:
        address:
          description: Dirección legal completa.
          type: string
        country:
          description: >-
            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).
          type: string
        name:
          description: Nombre legal completo.
          type: string
        vat_id:
          description: Identificador del contribuyente individual.
          type: string
      type: object
    legal.user:
      allOf:
        - description: >-
            Objeto con datos de la entidad jurídica. El objeto y todos sus
            parámetros son obligatorios si `user.is_legal` es `true`.
        - $ref: '#/components/schemas/legal'
    name.user:
      properties:
        allow_modify:
          description: >-
            Si un usuario puede introducir su nombre en la interfaz de pago. Si
            el parámetro `user.name.value` se transmite en el token, el valor es
            `false` por defecto.
          type: boolean
        value:
          description: Nombre de pantalla del usuario.
          type: string
      type: object
    phone.user:
      nullable: true
      properties:
        value:
          description: Número de teléfono del usuario.
          type: string
      type: object
    public_id.user:
      properties:
        value:
          description: "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)."
          type: string
      type: object
    steam_id.user:
      properties:
        value:
          description: ID de Steam.
          type: string
      type: object
    tracking_id.user:
      properties:
        value:
          description: >-
            ID único de usuario: se utiliza en campañas de marketing. Puede
            contener dígitos y caracteres latinos.
          maxLength: 32
          minLength: 32
          type: string
      type: object
    utm.user:
      description: Atributos de tráfico.
      properties:
        utm_campaign:
          description: Título de la campaña, transliterado o traducido al inglés.
          type: string
        utm_content:
          description: Contenido de campaña.
          type: string
        utm_medium:
          description: >-
            Canal de tráfico (anuncios contextuales, anuncios en medios de
            comunicación, listas de correo electrónico, etc.).
          type: string
        utm_source:
          description: Fuente de tráfico.
          type: string
        utm_term:
          description: >-
            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.
          type: string
      type: object
    user:
      description: Datos del usuario.
      properties:
        age:
          $ref: '#/components/schemas/age.user'
        attributes:
          $ref: '#/components/schemas/attributes.user'
        country:
          $ref: '#/components/schemas/country.user'
        email:
          $ref: '#/components/schemas/email.user'
        id:
          $ref: '#/components/schemas/id.user'
        is_legal:
          $ref: '#/components/schemas/is_legal.user'
        legal:
          $ref: '#/components/schemas/legal.user'
        name:
          $ref: '#/components/schemas/name.user'
        phone:
          $ref: '#/components/schemas/phone.user'
        public_id:
          $ref: '#/components/schemas/public_id.user'
        steam_id:
          $ref: '#/components/schemas/steam_id.user'
        tracking_id:
          $ref: '#/components/schemas/tracking_id.user'
        utm:
          $ref: '#/components/schemas/utm.user'
      required:
        - id
      type: object
    token:
      example:
        settings:
          currency: USD
          language: en
          project_id: 16184
          ui:
            size: medium
        user:
          email:
            value: email@example.com
          id:
            value: user_2
          name:
            value: John Smith
      properties:
        custom_parameters:
          $ref: '#/components/schemas/custom_parameters'
        purchase:
          $ref: '#/components/schemas/purchase'
        settings:
          $ref: '#/components/schemas/settings'
        user:
          $ref: '#/components/schemas/user'
      type: object
    mock_code:
      description: >-
        Un código de error que se debe reproducir al probar el proceso de pago a
        través de PayPal en modo de entorno de pruebas (sandbox). Solo funciona
        correctamente si se transmite el parámetro `"mode":"sandbox"`.
      enum:
        - 1057
        - 1015
        - 3006
        - 1801
        - 1803
        - 1039
        - 3031
        - 1203
        - 3006
        - 1201
        - 1002
        - 1089
        - 2031
        - 1046
        - 5004
      type: integer
  requestBodies:
    charge-with-saved-account:
      content:
        application/json:
          example:
            purchase:
              description:
                value: currency purchase
              virtual_currency:
                quantity: 100
            settings:
              currency: USD
              external_id: ext123
              mode: sandbox
            user:
              ip: 111.11.11.11
              legal:
                address: 17 Crown Street London SW2 0JW United Kingdom
                country: GB
                name: My Awesome Company
                vat_id: GB111111111
              name: John Smith
          schema:
            properties:
              custom_parameters:
                $ref: '#/components/schemas/custom_parameters'
              purchase:
                description: Objeto con los detalles de la compra.
                properties:
                  checkout:
                    description: Objeto con los detalles del pago.
                    properties:
                      amount:
                        description: Importe de la compra.
                        format: float
                        type: number
                      currency:
                        description: >-
                          Moneda de la compra. Código de moneda de tres letras
                          de conformidad con la norma [ISO
                          4217](https://developers.xsolla.com/es/doc/pay-station/references/supported-currencies/).
                        type: string
                    type: object
                  description:
                    maxLength: 4000
                    properties:
                      value:
                        type: string
                    type: object
                  virtual_currency:
                    description: Objeto con los detalles de la moneda virtual.
                    properties:
                      quantity:
                        description: Importe de la compra en la moneda virtual.
                        format: float
                        type: number
                    type: object
                type: object
              settings:
                description: Objeto con la configuración de la compra.
                properties:
                  currency:
                    $ref: '#/components/schemas/currency'
                  external_id:
                    $ref: '#/components/schemas/external_id'
                  mock_code:
                    $ref: '#/components/schemas/mock_code'
                  mode:
                    description: >-
                      Establecer en entorno de pruebas (`sandbox`) para probar
                      el proceso de pago. Elimina el parámetro para pagos
                      reales.
                    type: string
                type: object
              user:
                description: Datos del usuario.
                properties:
                  ip:
                    description: Dirección IP del usuario.
                    type: string
                  legal:
                    $ref: '#/components/schemas/legal'
                  name:
                    description: Nombre de usuario.
                    type: string
                required:
                  - ip
                type: object
            type: object
      required: true
