> ## Documentation Index
> Fetch the complete documentation index at: https://playcamp.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 유저 결제 내역



## OpenAPI

````yaml /api_docs/openapi-ko.yaml get /v1/server/payments/user/{userId}
openapi: 3.0.3
info:
  title: PlayCamp SDK API
  description: |
    PlayCamp SDK API - 게임 분석 및 크리에이터 캠페인 연동 API

    ## 필수 연동 API (Server API)
    캠페인 진행을 위해 반드시 연동해야 하는 API 3개:
    - `POST /v1/server/sponsors` - 유저가 크리에이터를 부스트
    - `POST /v1/server/coupons/validate` - 쿠폰 코드 유효성 검사
    - `POST /v1/server/payments` - 인게임 결제 등록

    ## 인증 방식
    - **Client API**: `Authorization: Bearer {CLIENT_KEY_ID}:{CLIENT_SECRET}`
    - **Server API**: `Authorization: Bearer {SERVER_KEY_ID}:{SERVER_SECRET}`

    ## 서버
    - **Live**: https://sdk-api.playcamp.io (실제 데이터)
    - **Sandbox**: https://sandbox-sdk-api.playcamp.io (테스트 데이터)

    ## 키 타입
    - **Client 키**: 게임 클라이언트용 (읽기 전용 - 캠페인, 크리에이터 조회)
    - **Server 키**: 게임 서버용 (읽기/쓰기 - 쿠폰 사용, 결제 등록 등)

    ## 테스트 모드 (isTest)
    캠페인 실행 전에 `isTest: true` 파라미터를 사용하여 API 연동을 테스트할 수 있습니다.
    - 요청 파라미터 검증은 실제와 동일하게 수행
    - 모의 데이터를 반환하며 실제 DB에 기록되지 않음
    - 캠페인 시작 전 Sandbox 환경에서 연동 검증 후, 실제 캠페인 시 `isTest` 파라미터 제거
  version: 1.1.0
  contact:
    name: PlayCamp Support
servers:
  - url: https://sdk-api.playcamp.io
    description: Live Server
  - url: https://sandbox-sdk-api.playcamp.io
    description: Sandbox Server
  - url: http://localhost:3001
    description: Local Live Server
  - url: http://localhost:3003
    description: Local Sandbox Server
security: []
tags:
  - name: Health
    description: 서버 상태 확인
  - name: Client Campaign
    description: 캠페인 조회 (Client API)
  - name: Client Creator
    description: 크리에이터 조회 (Client API)
  - name: Client Coupon
    description: 쿠폰 유효성 검사 (Client API)
  - name: Client Sponsor
    description: 부스트 상태 조회 — Sponsor API (Client API)
  - name: Server Campaign
    description: 캠페인 조회 (Server API)
  - name: Server Creator
    description: 크리에이터 조회 (Server API)
  - name: Server Coupon
    description: 쿠폰 관리 (Server API)
  - name: Server Sponsor
    description: 부스트 관리 — Sponsor API (Server API)
  - name: Server Payment
    description: 결제 관리 (Server API)
  - name: Server Playtime
    description: 플레이타임 세션 관리 (Server API)
  - name: Server Webhook
    description: 웹훅 관리 (Server API)
  - name: Server Webview
    description: WebView 관리 (Server API)
paths:
  /v1/server/payments/user/{userId}:
    get:
      tags:
        - Server Payment
      summary: 유저 결제 내역
      operationId: serverListUserPayments
      parameters:
        - name: userId
          in: path
          required: true
          schema:
            type: string
        - name: page
          in: query
          schema:
            type: integer
            default: 1
        - name: limit
          in: query
          schema:
            type: integer
            default: 20
            maximum: 100
      responses:
        '200':
          description: 성공
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - pagination
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Payment'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
      security:
        - ServerAuth: []
components:
  schemas:
    Payment:
      type: object
      properties:
        id:
          type: integer
        transactionId:
          type: string
        userId:
          type: string
        productId:
          type: string
        productName:
          type: string
        amount:
          type: number
        currency:
          type: string
        amountUsd:
          type: number
          description: USD 환산 금액 (자동 계산)
        platform:
          type: string
          enum:
            - iOS
            - Android
            - Web
            - Roblox
            - Other
        distributionType:
          type: string
          enum:
            - MOBILE_STORE
            - MOBILE_SELF_STORE
            - PC_STORE
            - PC_SELF_STORE
          description: |
            유통 타입 (스토어 수수료 결정):
            - `MOBILE_STORE`: 모바일 외부 스토어 (Google Play, App Store) - 30%
            - `PC_STORE`: PC 외부 스토어 (Steam 등) - 30%
            - `MOBILE_SELF_STORE`: 모바일 자체 결제 - 0%
            - `PC_SELF_STORE`: PC 자체 스토어 - 0%
        status:
          type: string
          enum:
            - COMPLETED
            - REFUNDED
        campaignId:
          type: string
        creatorKey:
          type: string
        purchasedAt:
          type: string
          format: date-time
        createdAt:
          type: string
          format: date-time
    Pagination:
      type: object
      required:
        - page
        - limit
        - total
        - totalPages
      properties:
        page:
          type: integer
          description: 현재 페이지 번호
        limit:
          type: integer
          description: 페이지당 항목 수
        total:
          type: integer
          description: 전체 항목 수
        totalPages:
          type: integer
          description: 전체 페이지 수
  securitySchemes:
    ServerAuth:
      type: http
      scheme: bearer
      description: 'Server API Key (format: {keyId}:{secret})'

````