openapi: 3.0.0
info:
  description: >
    # 개요


    * **버전:** 2.0.0

    * **서버**:
      * `https://api.xsolla.com/api`

    페이 스테이션을 통해 파트너가 사용자에게 게임 스토어에서 인게임 구매를 결제하도록 돕는 편리한 UI를 제공하고 수익을 창출할 수
    있습니다. 

    결제 UI를 열도록 설정하려면 다음
    [지침](/ko/doc/pay-station/how-to/how-to-open-payment-ui/)을 참조해 

    주세요.


    페이 스테이션 API는 다음과 같은 호출 그룹을 제공합니다.

    - 토큰 - 결제 UI를 통해 추후 결제 처리에 사용하는 임의 사용자 매개 변수로 토큰을 생성하는 API 호출을 포함합니다.

    - [토큰화](/ko/doc/pay-station/features/tokenization/) - 결제 UI를 열지 않고 사용자의 개입이
    없어도 안전하게 
      결제를 처리하는 API 호출을 포함합니다.
    - 보고서 - 사용자 트랜잭션 데이터를 반환하고, 보고서를 생성하고, 통화별 지급액 내역을 확인할 수 있는 API 호출을 포함합니다.

    - 환불 - 전액 및 부분 환불을 요청하는 API 호출을 포함합니다.

    - 테스트 - 지불 거절 프로세스를 테스트하는 API 호출을 포함합니다.


    결제 UI 구성에 대한 자세한 정보는 [결제 솔루션 연동
    가이드](/ko/solutions/payments/integration-guide/integration-flow/)에서 확인할 수
    있습니다.


    <div class="note">

    <p><strong>참고</strong></p><p>또한 <a
    href="https://github.com/xsolla/xsolla-postman">포스트맨 컬렉션</a>의 <b>Xsolla Base
    API</b> 섹션을 참조하여 연동에 사용되는 API 호출을 테스트할 수 있습니다.</p>

    </div>
  title: Pay Station API
  version: '2.0'
servers:
  - url: https://api.xsolla.com/merchant/v2
tags:
  - name: token
    x-displayName: 토큰
  - name: tokenization
    x-displayName: 직접 결제
  - name: reports
    x-displayName: 보고서
  - name: refund
    x-displayName: 환불
  - name: testing
    x-displayName: 테스트
paths:
  /merchants/{merchant_id}/projects/{project_id}/payments/{transaction_id}/chargeback:
    post:
      description: >
        샌드박스 모드에서 지불 거절 요청:


        - 샌드박스 모드에 액세스하려면 [토큰을
        획득](https://developers.xsolla.com/ko/api/pay-station/operation/create-token/)할
        때 `"mode":"sandbox"`를 전달합니다.


        - 테스트 결제는 테스트에 사용한 것과 동일한 프로젝트의 샌드박스 모드에서 이루어져야 합니다.


        - 거래 상태는 `refunded`와 `cancelled` **이외**여야 합니다.


        - 게시자 계정에서 여러분의 역할이 최소한 **재무 관리자**여야 합니다(**회사 설정 > 사용자** 섹션에서 확인할 수
        있습니다).


        - 이 테스트 시나리오에 대한 자세한 정보는 <a
        href="https://developers.xsolla.com/ko/doc/pay-
          station/testing/test-one-time-purchase-in-
          sandbox/#pay_station_testing_sandbox_bank_card_chargeback">지침</a>을 참조하세요.

        <div class="note">

        <p><strong>참고</strong></p><p>다른 테스트 시나리오에 대한 자세한 정보는 <a
        href="https://developers.xsolla.com/ko/doc/pay-station/testing/general-info/">문서</a>를
        참조하세요.</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(오류 없음).
        '404':
          description: 거래를 찾을 수 없습니다.
        '422':
          content:
            application/json:
              example:
                message: >-
                  Not test payment. Chargeback is possible only for payments
                  made in sandbox mode.
              schema:
                properties:
                  message:
                    description: >-
                      다음 메시지 중 하나 반환 가능:

                      - 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(유효하지 않은 요청 매개 변수).
      security:
        - basicAuth: []
      summary: 지불 거절 요청
      tags:
        - testing
      x-server: true
  /merchants/{merchant_id}/reports:
    get:
      description: >
        지정된 데이터 범위의 재무 보고서 목록을 가져옵니다.


        <div class="notice">

        <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개
        변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</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: 모든 보고서 나열
      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: >
        지정된 기간 동안의 성공 및 취소된 트랜잭션에 대한 세부 정보 목록을 반환합니다. 이에 대한 응답으로 수수료, 세금, 주문 및
        사용자에 대한 

        데이터를 포함한 결제 관련 정보를 얻을 수 있습니다. JSON 또는 CSV 형식으로 목록을 가져올 수 있습니다. 이 API 호출을
        사용하여 

        재정 조정을 수행할 수 있습니다.


        <div class="notice">

        <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개
        변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</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: 결제 세부 정보입니다.
                      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: 구매 세부 정보.
                      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: 거래 데이터.
                      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: 사용자 세부 정보.
                      properties:
                        country:
                          description: >-
                            [ISO 3166-1 alpha-2
                            standard](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)에
                            따른 2자로 된 국가 코드를 사용합니다.
                          type: string
                        custom:
                          nullable: true
                          type: string
                        email:
                          description: 사용자 이메일.
                          type: string
                        id:
                          description: 사용자 ID.
                          type: string
                        ip:
                          type: string
                        marketplace:
                          type: string
                        name:
                          description: 게임유저 닉네임입니다.
                          type: string
                        phone:
                          description: 전화번호.
                          nullable: true
                          type: string
                      type: object
                    user_balance:
                      description: 사용자 잔액.
                      properties:
                        payment_currency:
                          description: 선호하는 결제 통화.
                          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: 거래 목록이 성공적으로 반환되었습니다.
      security:
        - basicAuth: []
      summary: 모든 작업 나열
      tags:
        - reports
      x-admin: true
      x-server: true
  /merchants/{merchant_id}/reports/transactions/search.{format}:
    get:
      description: >
        특정 검색 매개 변수를 기준으로 트랜잭션 목록을 반환합니다. 이에 대한 응답으로 성공적으로 완료되지 않았더라도 게임에서 이루어진
        모든 결제에 

        대한 데이터를 얻을 수 있습니다. 트랜잭션 기간뿐만 아니라 특정 사용자 또는 특정 결제 상태의 거래를 검색하는 등 다른 매개
        변수도 지정할 수 

        있습니다. JSON 또는 CSV 형식으로 목록을 가져올 수 있습니다.


        <div class="notice">

        <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개
        변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>

        </div>
      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: 모든 트랜잭션 검색
      tags:
        - reports
      x-admin: true
      x-server: true
  /merchants/{merchant_id}/reports/transactions/simple_search:
    get:
      description: >
        몇 초 내에 특정 검색 매개변수를 기반으로 트랜잭션 목록을 구합니다. 이는 [모든 트랜잭션
        검색](/ko/api/pay-station/operation/find-transactions/) API 호출을 대체할 수 있는
        기능으로 JSON, CSV 또는 XLS 

        형식으로 데이터를 반환합니다.


        <div class="notice">

        <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개
        변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>

        </div>
      operationId: find-transactions-fast
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - description: 트랜잭션 ID입니다. 이 값 또는 `external_id` 중 하나만 제공해야 하며 둘 다 제공하면 안 됩니다.
          in: query
          name: transaction_id
          schema:
            type: integer
        - description: >-
            게임의 트랜잭션 ID입니다. 각 결제마다 고유합니다. 이 값 또는 `transaction_id` 중 하나만 제공해야 하며
            둘 다 제공하면 안 됩니다.
          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: 결제 세부 정보입니다.
                      properties:
                        payment:
                          properties:
                            amount:
                              description: 결제 금액입니다.
                              format: float
                              type: number
                            currency:
                              description: >-
                                결제 통화입니다. [ISO
                                4217](https://developers.xsolla.com/ko/doc/pay-station/references/supported-currencies/)에
                                따른 3자리 통화 코드입니다.
                              type: string
                          type: object
                      type: object
                    transaction:
                      description: 트랜잭션 세부 정보입니다.
                      properties:
                        external_id:
                          description: 게임의 트랜잭션 ID입니다. 각 사용자 결제별로 고유해야 합니다.
                          type: string
                        id:
                          description: 트랜잭션 ID.
                          type: integer
                        payment_date:
                          description: YY-MM-DD 형식으로 된 결제 날짜입니다.
                          type: string
                        project:
                          properties:
                            id:
                              description: 엑솔라 시스템 내의 게임 식별자입니다. 판매자 계정 에서 확인할 수 있습니다.
                              type: integer
                            name:
                              description: 프로젝트 이름.
                              type: string
                          type: object
                        refund_reason:
                          description: 환불 이유입니다.
                          type: string
                        status:
                          $ref: '#/components/schemas/status.enum'
                          description: 트랜잭션의 상태입니다.
                      type: object
                    user:
                      description: 사용자에 대한 데이터가 포함된 개체입니다.
                      properties:
                        country:
                          description: >-
                            [ISO 3166-1 alpha-2
                            standard](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)에
                            따른 2자로 된 국가 코드를 사용합니다.
                          type: string
                        email:
                          description: 사용자 이메일.
                          type: string
                        id:
                          description: 사용자 ID.
                          type: string
                        name:
                          description: 사용자 이름.
                          type: string
                      type: object
                  type: object
                type: array
          description: 거래 목록이 성공적으로 반환되었습니다.
        '403':
          description: 액세스가 거부되었습니다.
        '404':
          description: 거래를 찾을 수 없습니다.
        '422':
          description: 처리할 수 없는 엔터티입니다(`transaction_id` 또는 `external_id`를 전달해야 함).
      security:
        - basicAuth: []
      summary: 트랜잭션 검색(빠른 검색)
      tags:
        - reports
      x-admin: true
      x-server: true
  /merchants/{merchant_id}/reports/transactions/summary/transfer:
    get:
      description: >
        통화로 지불금 내역을 받습니다.


        <div class="notice">

        <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개
        변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</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: 통화로 지불금 내역을 받습니다
      tags:
        - reports
      x-admin: true
      x-server: true
  /merchants/{merchant_id}/reports/transactions/{transaction_id}/details:
    get:
      description: >
        ID별로 전체 트랜잭션 정보를 가져옵니다.


        <div class="notice">

        <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개
        변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</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: 결제 통화로 표시된 분쟁 수수료 금액입니다.
                              format: float
                              type: number
                            currency:
                              description: >-
                                결제 통화입니다. [ISO
                                4217](/ko/doc/pay-station/references/supported-currencies/)에
                                따른 3자리 통화 코드입니다.
                              type: string
                            date:
                              description: 분쟁이 시작된 날짜입니다.
                              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: 트랜잭션 정보를 성공적으로 반환했습니다.
      security:
        - basicAuth: []
      summary: 트랜잭션 정보 가져오기
      tags:
        - reports
      x-admin: true
      x-server: true
  /merchants/{merchant_id}/reports/transactions/{transaction_id}/partial_refund:
    put:
      description: >
        사용자에게 부분 환불 요청을 보냅니다. 부분 환불과 부분 환불을 지원하는 결제 방식에 대한 자세한 내용은 

        [문서](https://developers.xsolla.com/ko/doc/pay-station/features/refund/#pay_station_features_refund_how_it_works_partial_refund_flow)을
        참조해 주세요.


        <div class="note">

        <p><strong>참고</strong></p><p>샌드박스 모드에서 이 API 메소드를 호출할 수 있습니다. 이렇게 하려면
        요청에서 테스트 결제 데이터를 전달합니다. 샌드박스 모드 액세스 및 테스트 시나리오에 대한 자세한 내용은 <a
        href="https://developers.xsolla.com/ko/doc/pay-station/testing/test-one-time-purchase-in-sandbox/#pay_station_testing_sandbox_bank_card_partial_refund">지침</a>을
        참조하세요.</p>

        </div>


        <p></p>


        <div class="notice">

        <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개
        변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</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: 환불 사유입니다.
                  maxLength: 4000
                  type: string
                refund_amount:
                  description: 구매 통화로 표시된 환불 금액입니다.
                  format: float
                  type: number
              required:
                - description
                - refund_amount
              type: object
        required: true
      responses:
        '204':
          description: 환불 요청이 수락됨
        '403':
          description: 필요한 권한이 없음
        '404':
          content:
            application/json:
              example:
                message: Transaction with specified ID does not exist.
              schema:
                properties:
                  message:
                    description: >-
                      지정한 ID의 거래가 존재하지 않습니다. 결제 자격 증명을 확인하세요. 또는 엑솔라 지원팀
                      support@xsolla.com에 연락해 주세요.
                    type: string
                type: object
          description: 거래를 찾을 수 없음
        '422':
          content:
            application/json:
              example:
                message: Partial refund is unavailable for subscription payments.
              schema:
                properties:
                  message:
                    description: >
                      **환불을 처리할 수 없음**


                      다음 메시지 중 하나를 반환합니다.

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


                      **현재의 결제 수단은 부분 환불을 지원하지 않음**


                      다음 메시지 중 하나를 반환합니다.

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

                      **잘못된 정밀도 설정으로 인해 부분 환불을 실행할 수 없음**


                      다음 메시지를 반환합니다.

                      - Partial refund is unavailable because requested amount
                      is specified with 
                        incorrect precision for purchase currency.
                    type: string
                type: object
          description: 처리할 수 없는 엔터티
      security:
        - basicAuth: []
      summary: 부분 환불
      tags:
        - refund
      x-server: true
  /merchants/{merchant_id}/reports/transactions/{transaction_id}/refund:
    put:
      description: >
        환불 요청을 전송하여 사용자에게 결제 금액을 반환합니다. 해당 절차에 대해 자세히 알아보려면 [환불 

        기능](https://developers.xsolla.com/ko/doc/pay-station/features/refund/)을
        읽어 보십시오.


        <div class="note">

        <p><strong>참고</strong></p><p>샌드박스 모드에서 이 API 메소드를 호출할 수 있습니다. 이렇게 하려면
        요청에서 테스트 결제 데이터를 전달합니다. 샌드박스 모드 액세스 및 테스트 시나리오에 대한 자세한 내용은 <a
        href="https://developers.xsolla.com/ko/doc/pay-station/testing/test-one-time-purchase-in-sandbox/#pay_station_testing_sandbox_bank_card_refund">지침</a>을
        참조하세요.</p>

        </div>


        <p></p>


        <div class="notice">

        <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개
        변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</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: 환불 사유입니다.
                  maxLength: 4000
                  type: string
                email:
                  description: 사용자 이메일.
                  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: >-
                      다음 두 메시지 중 하나를 반환할 수 있습니다.

                      - 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(오류 없음).
        '204':
          description: 환불 요청이 수락됨.
        '401':
          description: Unauthorized(액세스가 거부됨).
        '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: >-
                      트랜잭션 ID가 유효하지 않습니다. 결제 자격 증명을 확인하세요. 또는 엑솔라 지원팀
                      support@xsolla.com에 연락해 주세요.
                    type: string
                type: object
          description: 거래를 찾을 수 없습니다.
        '422':
          content:
            application/json:
              example:
                message: >-
                  We are processing the refund request. This may take up to two
                  business days.
              schema:
                properties:
                  message:
                    description: >-
                      다음 두 메시지 중 하나를 반환할 수 있습니다.

                      - 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(유효하지 않은 요청 매개 변수).
      security:
        - basicAuth: []
      summary: 전체 환불
      tags:
        - refund
      x-server: true
  /merchants/{merchant_id}/reports/transfers:
    get:
      description: >
        일정 기간 동안의 모든 지불금을 나열합니다.


        <div class="notice">

        <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개
        변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</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: 모든 송금 나열
      tags:
        - reports
      x-admin: true
      x-server: true
  /merchants/{merchant_id}/token:
    post:
      description: >
        임의의 사용자 매개변수로 토큰을 생성할 수 있습니다. 토큰을 받을 때 이러한 매개변수를 전송하고, 결제가 성공적으로 완료된 후
        전송했던 

        매개변수를 다시 받습니다. 토큰에는 이 문서에 설명되어 있거나 미리 정의한 매개변수만 포함할 수 있습니다.


        매개변수가 잘못된 형식으로 전송되거나 잘못된 유형인 경우 토큰이 발급되지 않습니다. JSON 본문으로 오류 설명이 포함된 422
        HTTP 

        코드를 받게 됩니다. `extended_message`로 정확히 어떤 매개변수가 잘못 전송되었는지에 대한 정보를 받게 됩니다.


        기본적으로 토큰의 수명은 24시간입니다. 이 값을 변경하려면 계정 관리자에게 문의하거나 <a 

        href="mailto:csm@xsolla.com">csm@xsolla.com</a>으로 이메일을 보내주세요. 새 값은 <a 

        href="https://publisher.xsolla.com/">관리자 페이지</a>에서 생성한 회사의 모든 프로젝트에서
        활성화됩니다.


        <div class="notice">

        <p><strong>주의</strong></p><p>이 API 메소드를 호출한 후 획득한 토큰은 다른 요청을 인증하는 용도로만
        사용할 수 있습니다. 이 토큰은 <a
        href="https://developers.xsolla.com/ko/doc/subscriptions/">정기 결제</a> 제품을
        연동한 경우에만 결제 UI를 여는 데 사용할 수 있습니다.</p><p>결제 UI를 새 창에서 열려면
        <code>https://secure.xsolla.com/paystation4/?token={token}</code> 링크를
        사용합니다. 여기서 <code>{token}</code> 은 수신한 토큰입니다.</p><p>테스트를 진행할 때에는
        <code>https://sandbox-secure.xsolla.com/paystation4/?token={token}</code>
        URL을 사용합니다.</p>

        </div>


        <p></p>


        <div class="notice">

        <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개
        변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>

        </div>
      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/ko/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: 개체는 오류 설명과 함께 매개 변수 이름을 포함합니다.
                        type: object
                    type: object
                  http_status_code:
                    type: integer
                  message:
                    type: string
                  request_id:
                    type: string
                type: object
          description: Unprocessable Entity.
      security:
        - basicAuth: []
      summary: 토큰 생성
      tags:
        - token
      x-server: true
  /projects/{project_id}/users/{user_id}/payment_accounts:
    get:
      description: >
        사용자의 저장된 결제 계정을 나열합니다.


        <div class="note">

        <p><strong>참고</strong></p><p>샌드박스 모드에서는 3D 보안 기능이 없는 <a
        href="https://developers.xsolla.com/ko/doc/pay-station/testing/test-cards/">테스트
        카드</a>에서만 이 API 호출이 작동합니다.</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: 저장된 결제 계정 나열
      tags:
        - tokenization
      x-server: true
  /projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}:
    delete:
      description: >
        저장된 결제 계정 삭제.


        <div class="note">

        <p><strong>참고</strong></p><p>샌드박스 모드에서는 3D 보안 기능이 없는 <a
        href="https://developers.xsolla.com/ko/doc/pay-station/testing/test-cards/">테스트
        카드</a>에서만 이 API 호출이 작동합니다.</p>

        </div>


        <p></p>


        <div class="note">

        <p><strong>참고</strong></p><p>샌드박스 모드에서 이 API 메소드를 호출할 수 있습니다. 이렇게 하려면
        요청에서 테스트 결제 계정 데이터를 전달합니다. 샌드박스 모드 액세스 및 테스트 시나리오에 대한 자세한 내용은 <a
        href="https://developers.xsolla.com/ko/doc/pay-station/testing/test-saved-cards-in-sandbox/#pay_station_testing_tokenization_sandbox_delete_saved_card">지침</a>을
        참조하세요.</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: 저장된 결제 계정 삭제
      tags:
        - tokenization
      x-server: true
  /projects/{project_id}/users/{user_id}/payments/{type}/{account_id}:
    post:
      description: >
        저장된 결제 계정을 사용하여 청구합니다.


        <div class="note">

        <p><strong>참고</strong></p><p>샌드박스 모드에서는 3D 보안 기능이 없는 <a
        href="https://developers.xsolla.com/ko/doc/pay-station/testing/test-cards/">테스트
        카드</a>에서만 이 API 호출이 작동합니다.</p>

        </div>


        <p></p>


        <div class="notice">

        <p><strong>주의</strong></p><p>API 호출이 올바르게 작동되게 하려면 시간제한을 2분으로 구성하세요.</p>

        </div>
      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: 저장한 계정으로 청구
      tags:
        - tokenization
      x-server: true
components:
  securitySchemes:
    basicAuth:
      description: "엑솔라 API는 기본 액세스 인증을 사용합니다. API에 대한 모든 요청은 `Authorization: Basic <your_authorization_basic_key>` 헤더를 포함해야 하며 여기서 `<your_authorization_basic_key>`는 Base64 표준에 따라 인코딩 된 `merchant_id:api_key` 쌍입니다. \n\n[게시자 계정](https://publisher.xsolla.com/)으로 이동하여 다음 매개변수를 찾습니다.<ul><li>`merchant_id`의 표시 위치:<ul><li>**회사 설정 > 회사 섹션**</li><li>관리자 페이지에서 브라우저 주소 표시줄의 URL. 이 URL의 형식:`https://publisher.xsolla.com/<merchant_id>`</li></ul></li><li>`api_key`는 생성될 때 한 번만 게시자 계정에 표시되며 자체적으로 보관해야 합니다. 다음 섹션에서 새 키를 생성할 수 있습니다.<ul><li>**회사 설정 > API 키**</li><li>**프로젝트 설정 > API 키**</li></ul></li></ul><br>\nAPI 키 작업에 대한 자세한 정보는\_[API 참조](https://developers.xsolla.com/ko/api/getting-started/#api_keys_overview)를 확인하세요."
      scheme: basic
      type: http
  parameters:
    merchant-id-path-param:
      description: 판매자 ID입니다.
      in: path
      name: merchant_id
      required: true
      schema:
        type: integer
    project-id-path-param:
      description: 프로젝트 ID.
      in: path
      name: project_id
      required: true
      schema:
        type: integer
    transaction-id-path-param:
      description: 트랜잭션 ID.
      in: path
      name: transaction_id
      required: true
      schema:
        type: integer
    datetime-from-req:
      description: >-
        기간은 YYYY-MM-DD 형식으로 시작합니다. 다음 매개 변수 중 하나 이상이 전달되는 경우 필요하지
        않습니다:<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: >-
        기간은 YYYY-MM-DD 형식으로 끝납니다. 다음 매개 변수 중 하나 이상이 전달되는 경우 필요하지
        않습니다:<ul><li>`transfer_id`</li><li>`report_id`</li></ul>
        `datetime_from`와(과) `datetime_to` 사이의 차이는 92일을 초과할 수 없습니다.
      example: '2023-03-08'
      in: query
      name: datetime_to
      required: true
      schema:
        format: datetime
        type: string
    format:
      description: 데이터 형식
      in: path
      name: format
      required: true
      schema:
        enum:
          - json
          - csv
          - xls
        type: string
    in-transfer-currency:
      description: >-
        모든 재무 데이터를 지급 통화로 변환합니다(기본적으로 지급 통화가 사용됨). 다음 매개 변수 중 하나 이상이 전달되는 경우
        필요하지 않습니다:<ul><li>`transfer_id`</li><li>`report_id`</li></ul>
      in: query
      name: in_transfer_currency
      required: true
      schema:
        type: integer
    show-total:
      description: 보고서에 총 거래 금액을 포함할지 여부입니다. CSV 형식으로만 내보낼 수 있습니다. 기본값은 `true`입니다.
      in: query
      name: show_total
      schema:
        type: boolean
    merchant-of-records:
      description: >-
        머천트 오브 레코드. `xsolla` 혹은 `merchant` 이거나 명시되지 않음. `merchant`인 경우, 파트너의
        게이트웨이를 통한 거래를 반환합니다. `xsolla`인 경우에는, 파트너의 게이트웨이를 거치지 않은 거래를 반환합니다. 명시되지
        않은 경우에는, 모든 거래를 반환합니다.
      in: query
      name: merchant_of_records
      required: false
      schema:
        enum:
          - xsolla
          - merchant
        nullable: true
        type: string
        x-enumDescriptions:
          merchant: 파트너의 게이트웨이를 통한 거래를 반환합니다.
          xsolla: 파트너의 게이트웨이를 거치지 않은 거래를 반환합니다.
    project-id-query-param:
      description: 프로젝트 ID.
      in: query
      name: project_id
      required: false
      schema:
        type: integer
    show-dry-run:
      description: 테스트 트랜잭션을 포함할지 여부를 나타냅니다.
      in: query
      name: show_dry_run
      required: false
      schema:
        type: boolean
    transfer-id:
      description: 트랜잭션 전송 ID입니다.
      in: query
      name: transfer_id
      required: false
      schema:
        type: integer
    report-id:
      description: 재무 보고서 ID입니다.
      in: query
      name: report_id
      required: false
      schema:
        type: integer
    offset:
      description: 목록이 생성된 요소 개수(개수는 0부터 시작함).
      in: query
      name: offset
      required: false
      schema:
        type: integer
    limit-req:
      description: >-
        페이지에 표시되는 트랜잭션 수에 대한 제한. 이 매개 변수가 전달되면 `datetime_from` 및 `datetime_to`
        매개 변수를 전달할 필요가 없습니다.
      in: query
      name: limit
      required: false
      schema:
        type: integer
    transaction-status:
      description: 트랜잭션의 상태입니다.
      in: query
      name: status
      required: false
      schema:
        enum:
          - done
          - canceled
          - error
          - refunded
        type: string
    datetime-from:
      description: 날짜 범위의 시작입니다.
      in: query
      name: datetime_from
      required: false
      schema:
        format: datetime
        type: string
    datetime-to:
      description: 날짜 범위의 끝입니다.
      in: query
      name: datetime_to
      required: false
      schema:
        format: datetime
        type: string
    transaction-id:
      description: 트랜잭션 ID.
      in: query
      name: transaction_id
      required: false
      schema:
        type: integer
    type:
      description: '검색 결과에 표시되는 거래 유형:'
      in: query
      name: type
      required: false
      schema:
        enum:
          - all
          - transferred
          - canceled
          - test
        type: string
        x-enumDescriptions:
          all: 모든 거래.
          canceled: 취소된 거래(테스트 거래 제외).
          test: 테스트 거래.
          transferred: 성공한 거래(테스트 거래 제외).
    phone:
      description: 게임유저 전화 번호입니다(국제 형식).
      in: query
      name: phone
      required: false
      schema:
        type: string
    user-id-query-param:
      description: >-
        귀하 측에 저장된 게임 내 고유 사용자 ID입니다. 기존 사용자 ID여야 합니다. 오류가 발생하면 [자주 묻는 질문에 대한
        답변](/ko/doc/pay-station/references/faq/#faq_validation)을 참조해 주세요.
      in: query
      name: user_id
      required: false
      schema:
        type: string
    user-name:
      description: 사용자 이름.
      in: query
      name: user_name
      required: false
      schema:
        type: string
    user-custom:
      description: 게임유저 식별을 위한 파라미터를 사용자 지정합니다.
      in: query
      name: user_custom
      required: false
      schema:
        type: string
    email:
      description: 사용자 이메일.
      in: query
      name: email
      required: false
      schema:
        maxLength: 100
        type: string
    external-id:
      description: 게임의 트랜잭션 ID 입니다. 각 사용자 결제별로 고유해야 합니다.
      in: query
      name: external_id
      required: false
      schema:
        type: string
    order-id:
      description: >-
        주문 ID. 주문 ID를 사용하여 [주문 가져오기](/ko/api/shop-builder/operation/get-order/)
        API 메서드를 호출할 수 있습니다.
      example: 1234
      in: query
      name: order_id
      required: false
      schema:
        type: integer
    limit:
      description: 페이지 요소 개수 제한.
      in: query
      name: limit
      required: false
      schema:
        type: integer
    status:
      description: 트랜잭션 상태입니다.
      in: query
      name: status
      required: false
      schema:
        $ref: '#/components/schemas/status.enum'
    legal-entity-id:
      description: 개발자 법인 엔터티 ID
      in: query
      name: legal_entity_id
      required: false
      schema:
        type: integer
    payout-status:
      description: 지불 상태.
      in: query
      name: status
      required: false
      schema:
        enum:
          - hold
          - ready
          - paid
        type: string
        x-enumDescriptions:
          hold: 요청이 진행되기를 기다리는 중.
          paid: 지불이 완료됨.
          ready: 지불이 진행 중.
    user-id-path-param:
      description: >-
        귀하 측에 저장된 게임 내 고유 사용자 ID입니다. 기존 사용자 ID여야 합니다. 오류가 발생하면 [자주 묻는 질문에 대한
        답변](/ko/doc/pay-station/references/faq/#faq_validation)을 참조해 주세요.
      in: path
      name: user_id
      required: true
      schema:
        type: string
    mode:
      description: 결제 프로세스를 테스트하려면 `sandbox`로 설정하세요. 실제 결제를 진행하려면 매개변수를 제거하세요.
      in: query
      name: mode
      required: false
      schema:
        type: string
    type-path-param:
      description: 결제 계정 유형.
      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(홍콩).
          alipayplus_kplus: K PLUS.
          alipayplus_maya: Maya.
          alipayplus_rabbitlinepay: Rabbit LINE 페이.
          alipayplus_tng: Touch 'n Go.
          alipayplus_truemoney: TrueMoney 지갑.
          amazon: Amazon 페이.
          card: 은행 카드.
          klarna: >-
            Klarna. 결제 계정 적립은 미국, 영국, 스웨덴, 독일, 오스트리아, 노르웨이, 핀란드, 덴마크, 네덜란드 국가에서만
            가능합니다.
          mercadopago: Mercado Pago(Mercado Pago Connect 포함).
          nupay: NuPay.
          paidy: Paidy.
          paypal: PayPal.
          paysafecard_eu: Paysafecard(유럽 연합).
          paysafecard_us: Paysafecard(미국).
          skrill: Skrill 디지털 지갑.
          softbank_au: au Easy Payment.
          softbank_docomo: Docomo.
          softbank_paypay: PayPay.
          softbank_softbank2: SoftBank.
          softbank_ymobile: Y!mobile.
          toss: Toss 지갑.
    account-id-path-param:
      description: 엑솔라 시스템에 저장된 계정의 ID입니다.
      in: path
      name: account_id
      required: true
      schema:
        type: integer
  schemas:
    empty-body:
      description: API 호출이 올바르게 작동하려면 요청 본문이 비어 있어야 합니다.
      nullable: true
      type: object
    status.enum:
      enum:
        - created
        - processing
        - review
        - error
        - done
        - awaitingRefund
        - refunded
        - canceled
        - partiallyRefunded
      type: string
      x-enumDescriptions:
        awaitingRefund: >-
          트랜잭션 환불 결정을 기다리고 있습니다. 사용자가 환불을 요청하면 엑솔라 고객 지원팀에서 요청을 수동으로 처리하고 환불을
          결정합니다.
        canceled: |-
          가능한 사례는 다음과 같습니다.
           - 결제 시스템 측에서 거래를 취소했습니다. 예를 들어, 사용자 계정에 잔액이 부족한 경우입니다.
           - 사용자에게 결제 금액이 환불되었습니다.
        created: 사용자가 트랜잭션을 시작했지만 아직 처리되지 않았습니다.
        done: 트랜잭션을 성공적으로 처리했습니다.
        error: 트랜잭션을 처리하는 동안 오류가 발생했습니다. 오류가 발생한 결제 금액은 엑솔라 고객 지원팀에 연락하여 환불받을 수 있습니다.
        partiallyRefunded: 사용자가 부분 환불을 받았습니다.
        processing: 트랜잭션을 처리하고 있습니다.
        refunded: 사용자의 엑솔라 잔액으로 환불이 이루어졌습니다.
        review: 부정 결제 방지 시스템에 의해 트랜잭션 처리가 일시 중지되었으며 현재 추가로 거래를 확인하고 있습니다.
    custom_parameters:
      description: >-
        이 개체에는 부정 결제 방지 필터를 구성하는 매개 변수가 포함되어 있습니다. 매개 변수 목록은 아래와 같습니다. 사용자 정의 매개
        변수를 추가하려면 계정 관리자에게 문의하거나 [csm@xsolla.com](mailto:csm@xsolla.com)으로 이메일을
        보내 주세요.
      properties:
        active_date:
          description: '[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)에 따른 마지막 확인 날짜.'
          type: string
        additional_verification:
          description: 플레이어가 계정 확인 절차를 사용하고 있는지 여부.
          type: boolean
        character_customized:
          description: 플레이어가 자신의 캐릭터를 맞춤 설정했는지 여부.
          type: boolean
        chat_activity:
          description: 플레이어의 채팅 기능 사용 여부.
          type: boolean
        completed_tasks:
          description: 완료한 임무/목표의 수.
          type: integer
        forum_activity:
          description: 플레이어의 포럼 기능 사용 여부.
          type: boolean
        items_used:
          description: 플레이어가 구매한 인게임 아이템을 사용하고 있는지 여부.
          type: boolean
        karma_points:
          description: 플레이어의 카르마.
          type: integer
        last_change_password_date:
          description: '[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)에 따른 마지막 암호 변경 날짜.'
          type: string
        non_premium_currency:
          description: 프리미엄이 아닌 통화의 금액.
          format: float
          type: number
        notifications_enabled:
          description: 플레이어가 알림을 활성화했는지 여부.
          type: boolean
        profile_completed:
          description: 플레이어가 프로필에 추가 정보를 추가했는지 여부.
          type: boolean
        profile_image_added:
          description: 플레이어가 프로필 이미지를 업로드했는지 여부.
          type: boolean
        pvp_activity:
          description: 플레이어가 PvP(플레이어 대 플레이어) 전투에 참여하고 있는지 여부.
          type: boolean
        registration_date:
          description: '[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)에 따른 계정 생성일.'
          type: string
        session_time:
          description: '[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)에 따른 평균 세션 시간.'
          type: string
        social_networks_added:
          description: 플레이어가 소셜 미디어 프로필을 연결했는지 여부.
          type: boolean
        total_bans:
          description: 플레이어가 채팅/포럼에서 금지된 횟수.
          type: integer
        total_characters:
          description: 인게임 캐릭터 수.
          type: integer
        total_clans:
          description: 플레이어가 가입한 클랜의 수.
          type: integer
        total_friends:
          description: 친구의 수.
          type: integer
        total_game_events:
          description: 플레이어가 참여했던 인게임 이벤트의 수.
          type: integer
        total_gifts:
          description: 플레이어가 전송/수신한 인게임 선물의 수.
          type: integer
        total_hours:
          description: 총 인게임 시간.
          type: integer
        total_inventory_value:
          description: 인벤토리의 총 가치(인게임 통화).
          format: float
          type: number
        total_sum:
          description: 총 결제 금액.
          format: float
          type: number
        tutorial_completed:
          description: 플레이어가 게임 튜토리얼을 완료했는지 여부.
          type: boolean
        unlocked_achievements:
          description: 잠금을 해제한 업적의 수.
          type: integer
        user_level:
          description: 플레이의 레벨, 명성 또는 순위.
          type: integer
        win_rate:
          description: 승률.
          type: integer
      type: object
    subscription:
      description: 정기결제 데이터 관련 값입니다.
      properties:
        available_plans:
          description: 구독권에 대한 데이터가 있는 배열입니다. 오직 이러한 구독권만 결제 UI에 보여집니다.
          items:
            type: string
          type: array
        currency:
          description: 구매 시 플랜의 통화, 이를 바탕으로 모든 계산이 수행됩니다.
          type: string
        operation:
          description: >-
            사용자의 구독 플랜에 적용되는 작업 유형. 구독 플랜을 변경하려면 `change_plan` 값을 전달합니다.
            `purchase.subscription.plan_id` 매개변수에서 새 플랜 ID를 지정해야 합니다.
          type: string
        plan_id:
          description: 구독 플랜 외부 ID. 게시자 계정의 **구독 > 구독 플랜** 섹션에서 확인할 수 있습니다.
          type: string
        product_id:
          description: 제품 ID.
          type: string
        trial_days:
          description: 평가 기간(일)입니다.
          type: integer
      type: object
    purchase:
      description: 구매 데이터 관련 값입니다.
      properties:
        subscription:
          $ref: '#/components/schemas/subscription'
      type: object
    currency:
      description: >-
        선호하는 결제 통화입니다. 통화의 3자리 정의가 [ISO
        4217](https://developers.xsolla.com/ko/doc/pay-station/references/supported-currencies/)에
        따라 사용됩니다.
      type: string
    external_id:
      description: >-
        게임 내 트랜잭션 ID. 각 사용자 결제마다 고유해야 합니다. 자세한 정보는 <a
        href="https://developers.xsolla.com/ko/doc/pay-station/references/faq/#faq_payments_q_new_transaction_external_id">문서
        자료</a>를 참조하세요.
      type: string
    language:
      description: >-
        인터페이스 언어입니다. 2자리 소문자 [언어
        코드](https://developers.xsolla.com/ko/doc/pay-station/features/localization/)입니다.
      type: string
    mode.settings:
      description: >-
        결제 프로세스를 테스트하기 위한 `sandbox` 값을 설정합니다. 참고로 결제 UI의 URL은
        *https://sandbox-secure.xsolla.com* 이 됩니다.
      type: string
    payment_method:
      description: 결제 수단의 ID입니다.
      type: integer
    payment_widget:
      description: >-
        결제 위젯. '페이바이캐쉬(`paybycash`)' 혹은 '기프트카드(`giftcard`)'일 수 있습니다. 한도가 설정되면,
        사용자는 각각 페이바이캐쉬(Pay by Cash) 혹은 기프트 카드(Gift Cards) 위젯으로 다시 보내집니다.
      enum:
        - paybycash
        - giftcard
      type: string
    project_id:
      description: 엑솔라 시스템 내의 게임 식별자입니다. 판매자 계정 에서 확인할 수 있습니다.
      type: integer
    redirect_policy:
      description: 재지정 정책 설정(객체).
      properties:
        delay:
          description: 사용자가 복귀 URL로 자동 재지정된 이후 지연 시간(초).
          type: integer
        manual_redirection_action:
          description: >-
            페이 스테이션 동작은 닫기 버튼 또는 **게임으로 돌아가기** 버튼을 사용자가 클릭하면 트리거됩니다.
            `redirect`(기본값) 및 `postmessage`가 될 수 있습니다. `redirect`로 설정되었다면 사용자는
            토큰에서 전달되었거나 게시자 계정에서 지정된 URL로 리디렉션 됩니다. `postmessage`로 설정되었다면 사용자는
            다른 페이지로 리디렉션되지 않습니다. 닫기 아이콘 버튼을 클릭하면 `close` 이벤트 보내기 및 clicking the
            **게임으로 돌아가기** 버튼 클릭(`return` 이벤트)이 초기화됩니다.
          enum:
            - redirect
            - postmessage
          type: string
        redirect_button_caption:
          description: 수동 재지정 버튼 문구.
          type: string
        redirect_conditions:
          description: >-
            복귀 URL로 사용자 재지정 시 지불 상태. 이는 `none`, `successful`,
            `successful_or_canсeled`, 혹은 `any`일 수 있습니다.
          enum:
            - none
            - successful
            - successful_or_canceled
            - any
          type: string
        status_for_manual_redirection:
          description: >-
            복귀 URL로 사용자 재지정 버튼 지불 상태. 이는 `none`, `successful`,
            `successful_or_canсeled`, 혹은 `any`일 수 있습니다.
          enum:
            - none
            - successful
            - successful_or_canceled
            - any
          type: string
      type: object
    return_url:
      description: >-
        결제 후 사용자가 리디렉션되는 페이지의 URL입니다. 리디렉션 구성에 대한 자세한 내용은 이 <a
        href="https://developers.xsolla.com/ko/doc/pay-station/how-to/how-to-configure-redirects/">문서</a>를
        참조하세요.
      type: string
    ap_quick_payment_button:
      description: >
        지원 장치의 결제 UI 상단에 있는 Apple Pay를 통해 신속 결제를 위한 버튼 표시 여부. 기본적으로 `true`입니다.
        `false`인 

        경우,
        [PayRank](/ko/doc/pay-station/how-to/how-to-manage-top-payment-methods/)
        알고리즘에 

        따라 결제 방식 목록에 Apple Pay가 표시됩니다.


        <div class="note">

        <p><strong>참고</strong></p><p>Android 장치 및 Apple Pay 결제를 지원하지 않는 기타 장치에서는
        매개 변수 값에 관계없이 이 결제 방식이 사용 가능한 결제 방식 목록에서 숨겨집니다.</p>

        </div>
      type: boolean
    components:
      description: 모듈 메뉴 설정 데이터와 관련된 값입니다.
      properties:
        subscriptions:
          description: 정기 결제 모듈 설정 데이터와 관련된 값입니다.
          properties:
            hidden:
              description: 모듈 메뉴에 게임 아이템을 표시하는지 여부를 나타냅니다.
              type: boolean
            order:
              description: 모듈 메뉴에서 게임 아이템의 위치입니다.
              type: integer
          type: object
        virtual_currency:
          description: 게임머니 모듈 설정 데이터와 관련된 값입니다.
          properties:
            custom_amount:
              description: 사용자가 결제 UI에 임의의 가상 통화 수량을 입력할 수 있도록 설정합니다.
              type: boolean
            hidden:
              description: 모듈 메뉴에 게임 아이템을 표시하는지 여부를 나타냅니다.
              type: boolean
            order:
              description: 모듈 메뉴에서 게임 아이템의 위치입니다.
              type: integer
          type: object
        virtual_items:
          description: 게임 아이템 모듈 설정 데이터와 관련된 값입니다.
          properties:
            hidden:
              description: 모듈 메뉴에 게임 아이템을 표시하는지 여부를 나타냅니다.
              type: boolean
            order:
              description: 모듈 메뉴에서 게임 아이템의 위치입니다.
              type: integer
            selected_group:
              description: 게임유저가 게임 아이템 탭을 열었을 때 선택되는 그룹입니다.
              type: string
            selected_item:
              description: 게임유저가 게임 아이템 탭을 열었을 때 선택되는 아이템입니다. 아이템 SKU는 이곳에서 보내야 합니다.
              type: string
          type: object
      type: object
    currency_format:
      description: >-
        결제 UI에 3자리 [ISO
        4217](https://developers.xsolla.com/ko/doc/pay-station/references/supported-currencies/)
        통화 코드를 표시하려면 `code`로 설정합니다. 기본적으로는 3자리 통화 코드 대신 통화 기호가 표시됩니다.
      type: string
    close_button_icon:
      description: 결제 UI의 **닫기** 버튼 아이콘.
      enum:
        - arrow
        - cross
      type: string
      x-enumDescriptions:
        arrow: 결제 UI 헤더 왼쪽에 있는 **←** 아이콘.
        cross: 결제 UI 헤더 오른쪽에 있는 **×** 아이콘.
    header.desktop:
      description: 헤더 설정 데이터와 관련된 값입니다.
      properties:
        close_button:
          description: >-
            결제 UI에 **닫기** 버튼을 표시할지 여부입니다. 이 버튼은 결제 UI를 닫고 사용자를
            `settings.return_url` 매개 변수에 지정된 URL로 리디렉션합니다. 기본값은 `false`입니다.
          type: boolean
        close_button_icon:
          $ref: '#/components/schemas/close_button_icon'
        is_visible:
          description: 결제 UI에 헤더가 표시되는지 여부를 나타냅니다.
          type: boolean
        type:
          description: >-
            헤더를 표시하는 설정 방식입니다. `compact`(프로젝트 이름 및 사용자 ID 표지 안 함) 또는 `normal`
            (기본값)을 설정할 수 있습니다.
          enum:
            - compact
            - normal
          type: string
        visible_logo:
          description: >-
            `true`인 경우, 로고가 헤더에 표시됩니다. 이미지를 업로드하려면 [관리자
            페이지](https://publisher.xsolla.com/)에서 프로젝트를 열고 **Pay Station > 설정**
            섹션으로 이동하십시오.
          type: boolean
        visible_name:
          description: 프로젝트 이름이 헤더에 표시되는지 여부를 나타냅니다.
          type: boolean
        visible_purchase:
          description: >-
            구매 설명(`purchase.description.value`)이 헤더에 표시되는지 여부를 나타냅니다. 기본값은
            `true`입니다.
          type: boolean
      type: object
    subscription_list.desktop:
      description: 정기 결제 목록 설정 데이터와 관련된 값입니다.
      properties:
        description:
          description: 정기결제에 관한 어떠한 텍스트도 이곳에서 전달할 수 있습니다. 정기 결제 요금제 목록 위에 텍스트가 표시됩니다.
          type: string
        display_local_price:
          description: >-
            `true`인 경우 및 사용자의 현지 통화가 정기결제 플랜의 통화와 다른 경우, 사용자는 현지 통화의 가격 및 기본 통화의
            가격과 같이 두 가지 가격을 볼 수 있습니다.
          type: boolean
      type: object
    desktop.ui:
      description: PC 버전의 인터페이스 설정 데이터와 관련된 값입니다.
      properties:
        header:
          $ref: '#/components/schemas/header.desktop'
        subscription_list:
          $ref: '#/components/schemas/subscription_list.desktop'
      type: object
    gp_quick_payment_button:
      description: >-
        Google Pay 결제 방식을 표시되는 방법. `true`인 경우 사용자의 장치 및 브라우저에 관계없이 Google Pay를
        통한 빠른 결제 버튼이 결제 UI 상단에 표시됩니다. `false`인 경우
        [PayRank](/ko/doc/pay-station/how-to/how-to-manage-top-payment-methods/)
        알고리즘에 따라 결제 방식 목록에 Google Pay가 표시됩니다. 매개 변수가 전달되지 않으면 사용자의 모든 장치 및
        브라우저(Safari 제외)의 결제 UI 상단에 Google Pay가 표시됩니다. Safari에서는 결제 방식 목록에 표시됩니다.
      type: boolean
    header.ui:
      properties:
        visible_virtual_currency_balance:
          description: 결제 UI에서 이 요소를 숨길 수 있는지 여부를 나타냅니다. 기본값은 `true`입니다.
          type: boolean
      type: object
    is_cart_open_by_default:
      description: >-
        결제 UI에 장바구니 아이템 목록과 결제 세부 정보를 표시합니다. `true`이면 정보가 확장 보기로 표시됩니다.
        `false`(기본값)이거나 매개 변수가 전달되지 않을 경우 정보가 축소된 보기로 표시됩니다.
      type: boolean
    is_independent_windows:
      description: >-
        구매 시 사용자를 임베디드 런처의 브라우저(WebView)에서 기본 브라우저로 리디렉션할지 여부입니다. 기본값은
        `false`입니다.
      type: boolean
    is_language_selector_hidden:
      description: 결제 페이지에서 언어 선택기가 숨겨져 있는지 여부. `false`(기본값)인 경우 선택기가 표시됩니다.
      type: boolean
    is_payment_methods_list_mode:
      description: >-
        결제 UI를 열 때 사용자의 국가에서 사용할 수 있는 결제 방식목록이 표시되는지 여부입니다. `false`(기본값)인 경우
        `settings.payment_method` 매개변수에서 전달된 결제 방식이나 [PayRank
        알고리즘](https://developers.xsolla.com/ko/solutions/payments/payment-ui-management/top-payment-methods-management/)으로
        선택한 결제 방식이 표시됩니다.
      type: boolean
    is_prevent_external_link_open:
      description: >-
        외부 리소스로 링크 리디렉션 여부가 비활성화되었습니다.`false`가 기본값입니다. 외부 링크를
        클릭하면`external-link-open`이벤트가`postMessage`메커니즘을 통해 전송됩니다. 리디렉션 링크용
        주소는`url`매개 변수에서 전달됩니다.
      type: boolean
    is_search_field_hidden:
      description: 결제 UI에 결제 방식 검색창을 표시할지 여부입니다. `true`이면 검색창이 숨겨집니다. 기본값은 `false`입니다.
      type: boolean
    is_show_close_widget_warning:
      description: >-
        결제 페이지를 닫기 전에 **×** 아이콘 위에 트랜잭션 처리에 대한 경고를 표시할지 여부입니다. `false`가 전달되거나
        매개변수가 전달되지 않으면 경고가 표시되지 않습니다. 기본값은 `true`입니다.
      type: boolean
    is_three_ds_independent_windows:
      default: false
      description: >-
        3D 보안 인증을 새 브라우저 창에서 열지 여부를 선택합니다. 설정에 따라 콘텐츠 보안 정책(CSP)을 적용하는 경우
        `true`로 설정합니다.
      type: boolean
    layout:
      description: >-
        결제 UI의 주요 요소 위치. 게임 내부에서 결제 UI를 열거나 주문 및 결제 방식에 대한 정보로 열을 바꿀 수 있습니다. 자세한
        내용은 [사용자 정의
        지침](https://developers.xsolla.com/ko/doc/pay-station/features/ui-theme-customization/#pay_station_ui_theme_customization_layout)을
        참조해 주세요.
      enum:
        - embed
        - column_reverse
        - embed_column_reverse
      type: string
    mobile.ui:
      properties:
        header:
          properties:
            close_button:
              description: >-
                페이 스테이션 모바일에서 **닫기** 버튼을 표시할지 여부. 이 버튼을 누르면 페이 스테이션이
                종료되고`settings.return_url` 매개 변수에 지정된 URL로 사용자를 리디렉션합니다(기본값:
                `false`).
              type: boolean
            close_button_icon:
              $ref: '#/components/schemas/close_button_icon'
          type: object
      type: object
    mode.ui:
      description: >
        저장된 결제 수단 관리를 위한 결제 UI의 표시 모드입니다. `user_account`로 설정하거나 생략할 수 있습니다. 이
        모드에서 사용자는 

        언어 변경, 새 결제 수단 추가, 기존 결제 수단 삭제만 가능합니다.


        <div class="note">

        <p><strong>참고</strong></p><p>이 매개 변수가 전달되면 리디렉션 버튼이 표시되지 않습니다. 결제 수단 저장
        후 사용자를 리디렉션하려면 <a
        href="/ko/doc/pay-station/how-to/how-to-configure-redirects/#pay_station_how_to_configure_redirects_automatic/">자동
        리디렉션</a>을 구성하십시오.</p>

        </div>
      type: string
    theme.ui:
      description: >-
        결제 UI 테마. 라이트 테마(기본값)의 경우 `63295a9a2e47fab76f7708e1`, 다크 테마의 경우
        `63295aab2e47fab76f7708e3`일 수 있습니다. [사용자 정의 테마를
        생성](https://developers.xsolla.com/ko/doc/pay-station/features/ui-theme-customization/#pay_station_ui_theme_customization_in_token)하고
        이 매개 변수의 해당 ID를 전달할 수도 있습니다.
      enum:
        - 63295a9a2e47fab76f7708e1
        - 63295aab2e47fab76f7708e3
      type: string
    payment_accounts_enable:
      properties:
        enable:
          description: 결제 방식 편집 페이지로 이동하는 결제 UI에 연필 아이콘을 표시할지 여부를 지정합니다. 기본값은 `true`입니다.
          type: boolean
        order:
          description: >-
            결제 UI의 드롭다운 목록에서 섹션의 위치입니다.
            `settings.ui.user_account.payment_accounts.enable`이 전달될 경우 필요합니다.
          minimum: 1
          type: integer
      type: object
    user_account:
      description: 사용자 계정에 관한 데이터가 담긴 객체.
      properties:
        payment_accounts:
          allOf:
            - description: '**저장된 결제 방식** 섹션입니다.'
            - $ref: '#/components/schemas/payment_accounts_enable'
      type: object
    ui:
      description: 인터페이스 설정 데이터와 관련된 값입니다.
      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: 사용자의 결제 프로세스와 결제 UI를 구성하는 설정입니다.
      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: 사용자 나이.
      type: integer
    attributes.user:
      description: 게임유저 특성 데이터와 관련된 객체로서 아이템 목록을 필터링하는데 사용됩니다. 키값 쌍을 가진 올바른 JSON 해시여야 합니다.
      type: object
    country.user:
      properties:
        allow_modify:
          description: >-
            결제 UI에서 사용자의 국가 변경 가능 여부. `country.value`가 토큰에서 전달되면 기본값은
            `false`입니다.
          type: boolean
        value:
          description: >-
            [ISO 3166-1 alpha-2
            standard](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)에 따른 2자로
            된 국가 코드를 사용합니다.
          type: string
      type: object
    email.user:
      description: >-
        `user.email` 개체는 부정 결제 방지 모델 만들기의 정수 부분이며 수락률을 높여줍니다. 해당 개체는 엑솔라와 결제 시스템
        양쪽 모두의 요구 사항입니다. 매개 변수가 전달되지 않으면 이메일 입력용 필수 필드가 결제 페이지에 나타납니다. 사용자는 매개
        변수에서 전달되었거나 결제 페이지에 입력된 이메일로 구매 영수증을 받습니다.
      maxLength: 100
      properties:
        allow_modify:
          description: >-
            결제 UI에서 사용자가 자신의 이메일을 입력할 수 있는지 여부. `user.email.value` 매개변수가 토큰에서
            전달되는 경우 기본값은 `false`입니다.
          type: boolean
        value:
          description: >-
            사용자 이메일. [RFC 822](https://www.w3.org/Protocols/rfc822/#z8) 프로토콜에 따라
            유효해야 합니다.
          type: string
      required:
        - value
      type: object
    id.user:
      properties:
        value:
          description: >-
            귀하 측에 저장된 게임 내 고유 사용자 ID입니다. 기존 사용자 ID여야 합니다. 오류가 발생하면 [자주 묻는 질문에 대한
            답변](/ko/doc/pay-station/references/faq/#faq_validation)을 참조해 주세요.
          type: string
      required:
        - value
      type: object
    is_legal.user:
      description: 게임유저가 법인인지 여부를 나타냅니다.
      type: boolean
    legal:
      description: 법인 세부 정보가 있는 오브젝트.
      properties:
        address:
          description: 법인 전체 주소.
          type: string
        country:
          description: >-
            기업이 속한 국가. [ISO 3166-1 alpha-2
            standard](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)에 따른 2자로
            된 대문자 국가 코드를 사용합니다.
          type: string
        name:
          description: 법인 전체 이름.
          type: string
        vat_id:
          description: 개별 납세자 식별자.
          type: string
      type: object
    legal.user:
      allOf:
        - description: >-
            법인 세부 정보가 있는 오브젝트. `user.is_legal`가 `true`인 경우 오브젝트와 이에 해당하는 모든
            매개변수는 필수입니다.
        - $ref: '#/components/schemas/legal'
    name.user:
      properties:
        allow_modify:
          description: >-
            결제 UI에서 사용자가 자신의 이름을 입력할 수 있는지 여부. `user.name.value` 매개변수가 토큰에서 전달되는
            경우 기본값은 `false`입니다.
          type: boolean
        value:
          description: 게임유저 닉네임입니다.
          type: string
      type: object
    phone.user:
      nullable: true
      properties:
        value:
          description: 전화번호.
          type: string
      type: object
    public_id.user:
      properties:
        value:
          description: >-
            사용자를 고유하게 식별할 수 있고 사용자 ID(이메일, 애칭 등)와 달리 사용자에 대해 알려진 매개 변수입니다. 이 매개
            변수는 게임 스토어 외부(예: 캐시 키오스크의 게임 버튼)에서 구매할 수 있을 때 사용됩니다.
          type: string
      type: object
    steam_id.user:
      properties:
        value:
          description: Steam ID입니다.
          type: string
      type: object
    tracking_id.user:
      properties:
        value:
          description: 고유 사용자 ID - 마케팅 캠페인에 사용. 숫자와 라틴 문자를 사용할 수 있습니다.
          maxLength: 32
          minLength: 32
          type: string
      type: object
    utm.user:
      description: 트래픽 성향을 나타내는 데이터를 포함한 오브젝트.
      properties:
        utm_campaign:
          description: 캠페인 제목. 이 항목은 음차한 캠페인 제목이나 영어로 번역한 캠페인 제목을 포함해야 합니다.
          type: string
        utm_content:
          description: 캠페인 구성 요소.
          type: string
        utm_medium:
          description: 트래픽 채널(맥락 이해 광고, 언론 광고, 이메일 목록 메시지).
          type: string
        utm_source:
          description: 트래픽 소스.
          type: string
        utm_term:
          description: >-
            캠페인 키워드. 이 항목을 지정할 경우 광고 캠페인 목표 설정에 사용된 키워드 데이터에 기반하여 통계가 만들어집니다.
            Google Analytics에서는 `utm_term` 라벨 콘텐츠가 검색어를 포함한 일반 보고서의 일부가 됩니다.
          type: string
      type: object
    user:
      description: 사용자 세부 정보.
      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: >-
        샌드박스 모드에서 PayPal로 결제하는 프로세스를 테스트할 때 재현하려는 오류 코드입니다. `"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: 구매 데이터 관련 값입니다.
                properties:
                  checkout:
                    description: 결제 파라미터 데이터와 관련된 값입니다.
                    properties:
                      amount:
                        description: 구매 금액입니다.
                        format: float
                        type: number
                      currency:
                        description: >-
                          구매 통화입니다. 통화의 3자리 정의가 [ISO
                          4217](https://developers.xsolla.com/ko/doc/pay-station/references/supported-currencies/)에
                          따라 사용됩니다.
                        type: string
                    type: object
                  description:
                    maxLength: 4000
                    properties:
                      value:
                        type: string
                    type: object
                  virtual_currency:
                    description: 게임머니 데이터와 관련된 값입니다.
                    properties:
                      quantity:
                        description: 게임머니 구매량입니다.
                        format: float
                        type: number
                    type: object
                type: object
              settings:
                description: 구매 설정에 대한 데이터가 포함된 개체입니다.
                properties:
                  currency:
                    $ref: '#/components/schemas/currency'
                  external_id:
                    $ref: '#/components/schemas/external_id'
                  mock_code:
                    $ref: '#/components/schemas/mock_code'
                  mode:
                    description: >-
                      결제 프로세스를 테스트하기 위한 `sandbox` 값을 설정합니다. 실제 결제의 경우 이 매개 변수는
                      제거되어야 합니다.
                    type: string
                type: object
              user:
                description: 사용자 세부 정보.
                properties:
                  ip:
                    description: 사용자 IP입니다.
                    type: string
                  legal:
                    $ref: '#/components/schemas/legal'
                  name:
                    description: 사용자 이름.
                    type: string
                required:
                  - ip
                type: object
            type: object
      required: true
