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

# 상품 생성

> 상품을 생성할 때 호출합니다.



## OpenAPI

````yaml /steppay_v1.json post /api/v1/products
openapi: 3.0.1
info:
  title: STEPPAY
  version: '1.0'
  contact:
    name: Steppay
    url: https://www.steppay.kr
    email: contact@steppay.kr
servers:
  - url: https://api.steppay.kr
    description: Generated server url
security:
  - Secret-Token: []
paths:
  /api/v1/products:
    post:
      tags:
        - 상품 API
      summary: 상품 생성
      description: 상품을 생성할 때 호출합니다.
      operationId: v1_createProduct
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProductCreateDTO'
            examples:
              유튜브 구독 상품:
                value:
                  type: SOFTWARE
                  status: SALE
                  name: 유튜브 구독 상품
                  productOrder: 0
                  featuredImageUrl: Url string
                  imageUrls:
                    - Url string
                  description: 유튜브 프리미엄
                  summary: string
                  sku: 회
                  quantity: null
                  enabledDemo: true
                  demoPeriod: 30
                  demoPeriodUnit: DAY
                  useCombination: false
                  optionCombinations: []
                  categoryIds: []
                  eventBadge:
                    - event: string
                      startDateTime: '9999-01-01T00:00:00'
                      endDateTime: '9999-01-01T00:00:00'
                  useWidget:
                    useDemo: true
                    useEventBadge: true
                    useOnetimePurchasable: true
                    useNotice: true
        required: true
      responses:
        '201':
          description: 정상적으로 생성됨
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProductV1DTO'
              examples:
                유튜브 구독 상품:
                  value:
                    id: 1
                    code: product_AbCdEfGhI
                    type: SOFTWARE
                    status: SALE
                    name: 유튜브 구독 상품
                    subTitle: null
                    featuredImageUrl: Url string
                    imageUrls:
                      - Url string
                    description: 유튜브 프리미엄
                    summary: string
                    reasonOfReject: null
                    sku: 회
                    quantity: null
                    combinedProducts: []
                    optionGroups: []
                    useCombination: false
                    optionCombinations: []
                    prices: []
                    createdAt: '9999-01-01T00:00:00.000000'
                    modifiedAt: '9999-01-01T00:00:00.000000'
                    enabledDemo: true
                    demoPeriod: 30
                    demoPeriodUnit: DAY
                    categories: []
                    vendorUuid: 206992bb-6462-4b4f-9847-cf2f40d55b48
                    productOrder: 0
                    isOnetimePurchasable: false
                    eventBadge:
                      - event: string
                        startDateTime: '9999-01-01T00:00:00'
                        endDateTime: '9999-01-01T00:00:00'
                    notice: null
                    useWidget:
                      useDemo: false
                      useEventBadge: false
                      useOnetimePurchasable: false
                      useNotice: false
                    groupId: null
                    countrySetting: null
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProductErrorresponse'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProductErrorresponse'
components:
  schemas:
    ProductCreateDTO:
      title: 상품 생성 데이터
      required:
        - type
        - status
        - name
      type: object
      properties:
        type:
          type: string
          description: 상품 타입을 지정합니다.
          enum:
            - BOX
            - SOFTWARE
            - BUNDLE
            - INVOICE
            - DRAFT
        status:
          type: string
          description: 상품 상태를 지정합니다.
          enum:
            - SALE
            - OUT_OF_STOCK
            - UNSOLD
            - WAITING_APPROVAL
            - REJECTED
        name:
          type: string
          description: 상품 이름
        productOrder:
          type: integer
          description: 순서
          format: int32
        subTitle:
          type: string
          description: 부제목
        featuredImageUrl:
          type: string
          description: 결제화면에서 나타는 상품 이미지 입니다.
        imageUrls:
          type: array
          description: 상품 이미지 URL
          items:
            type: string
            description: 상품 이미지 URL
        description:
          type: string
          description: 상품 설명
        summary:
          type: string
          description: 상품 요약
        sku:
          type: string
          description: SKU
        quantity:
          type: integer
          description: 상품 수량 - null 로 지정하면 상품 구매시 수량이 감소되지 않습니다.
          format: int32
        enabledDemo:
          type: boolean
          description: '체험 기간 사용 여부 (기본값: false)'
        demoPeriod:
          type: integer
          description: '체험 기간 (기본값: 7)'
          format: int32
        demoPeriodUnit:
          type: string
          description: '체험 기간 단위 (기본값: DAY)'
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        optionGroups:
          type: array
          description: 옵션 그룹 설정
          items:
            $ref: '#/components/schemas/ProductOptionGroupCreateDTO'
        useCombination:
          type: boolean
          description: '조합형 옵션 사용 여부 (기본값: true)'
        optionCombinations:
          type: array
          description: 옵션 조합
          items:
            $ref: '#/components/schemas/OptionCombinationCreateDTO'
        categoryIds:
          type: array
          description: 카테고리
          items:
            type: integer
            description: 카테고리
            format: int64
        eventBadge:
          type: array
          description: 이벤트 뱃지
          items:
            $ref: '#/components/schemas/ProductEventBadge'
        notice:
          type: string
          description: 유의 사항
        isOnetimePurchasable:
          type: boolean
          description: '활성 구독 제한 (기본값: false)'
        useWidget:
          $ref: '#/components/schemas/ProductWidget'
        countrySettingId:
          type: integer
          description: 결제 국가 설정 ID
          format: int64
        availableRegions:
          uniqueItems: true
          type: array
          description: 판매 가능 국가(region)
          items:
            type: string
            description: 판매 가능 국가(region)
            enum:
              - AD
              - AE
              - AF
              - AG
              - AI
              - AL
              - AM
              - AO
              - AQ
              - AR
              - AS
              - AT
              - AU
              - AW
              - AX
              - AZ
              - BA
              - BB
              - BD
              - BE
              - BF
              - BG
              - BH
              - BI
              - BJ
              - BL
              - BM
              - BN
              - BO
              - BQ
              - BR
              - BS
              - BT
              - BV
              - BW
              - BY
              - BZ
              - CA
              - CC
              - CD
              - CF
              - CG
              - CH
              - CI
              - CK
              - CL
              - CM
              - CN
              - CO
              - CR
              - CU
              - CV
              - CW
              - CX
              - CY
              - CZ
              - DE
              - DJ
              - DK
              - DM
              - DO
              - DZ
              - EC
              - EE
              - EG
              - EH
              - ER
              - ES
              - ET
              - FI
              - FJ
              - FK
              - FM
              - FO
              - FR
              - GA
              - GB
              - GD
              - GE
              - GF
              - GG
              - GH
              - GI
              - GL
              - GM
              - GN
              - GP
              - GQ
              - GR
              - GS
              - GT
              - GU
              - GW
              - GY
              - HK
              - HM
              - HN
              - HR
              - HT
              - HU
              - ID
              - IE
              - IL
              - IM
              - IN
              - IO
              - IQ
              - IR
              - IS
              - IT
              - JE
              - JM
              - JO
              - JP
              - KE
              - KG
              - KH
              - KI
              - KM
              - KN
              - KP
              - KR
              - KW
              - KY
              - KZ
              - LA
              - LB
              - LC
              - LI
              - LK
              - LR
              - LS
              - LT
              - LU
              - LV
              - LY
              - MA
              - MC
              - MD
              - ME
              - MF
              - MG
              - MH
              - MK
              - ML
              - MM
              - MN
              - MO
              - MP
              - MQ
              - MR
              - MS
              - MT
              - MU
              - MV
              - MW
              - MX
              - MY
              - MZ
              - NA
              - NC
              - NE
              - NF
              - NG
              - NI
              - NL
              - 'NO'
              - NP
              - NR
              - NU
              - NZ
              - OM
              - PA
              - PE
              - PF
              - PG
              - PH
              - PK
              - PL
              - PM
              - PN
              - PR
              - PS
              - PT
              - PW
              - PY
              - QA
              - RE
              - RO
              - RS
              - RU
              - RW
              - SA
              - SB
              - SC
              - SD
              - SE
              - SG
              - SH
              - SI
              - SJ
              - SK
              - SL
              - SM
              - SN
              - SO
              - SR
              - SS
              - ST
              - SV
              - SX
              - SY
              - SZ
              - TC
              - TD
              - TF
              - TG
              - TH
              - TJ
              - TK
              - TL
              - TM
              - TN
              - TO
              - TR
              - TT
              - TV
              - TW
              - TZ
              - UA
              - UG
              - UM
              - US
              - US_ALABAMA
              - US_ALASKA
              - US_ARIZONA
              - US_ARKANSAS
              - US_CALIFORNIA
              - US_COLORADO
              - US_CONNECTICUT
              - US_DELAWARE
              - US_FLORIDA
              - US_GEORGIA
              - US_HAWAII
              - US_IDAHO
              - US_ILLINOIS
              - US_INDIANA
              - US_IOWA
              - US_KANSAS
              - US_KENTUCKY
              - US_LOUISIANA
              - US_MAINE
              - US_MARYLAND
              - US_MASSACHUSETTS
              - US_MICHIGAN
              - US_MINNESOTA
              - US_MISSISSIPPI
              - US_MISSOURI
              - US_MONTANA
              - US_NEBRASKA
              - US_NEVADA
              - US_NEW_HAMPSHIRE
              - US_NEW_JERSEY
              - US_NEW_MEXICO
              - US_NEW_YORK
              - US_NORTH_CAROLINA
              - US_NORTH_DAKOTA
              - US_OHIO
              - US_OKLAHOMA
              - US_OREGON
              - US_PENNSYLVANIA
              - US_RHODE_ISLAND
              - US_SOUTH_CAROLINA
              - US_SOUTH_DAKOTA
              - US_TENNESSEE
              - US_TEXAS
              - US_UTAH
              - US_VERMONT
              - US_VIRGINIA
              - US_WASHINGTON
              - US_WEST_VIRGINIA
              - US_WISCONSIN
              - US_WYOMING
              - UY
              - UZ
              - VA
              - VC
              - VE
              - VG
              - VI
              - VN
              - VU
              - WF
              - WS
              - YE
              - YT
              - ZA
              - ZM
              - ZW
        vendorUuid:
          type: string
          format: uuid
    ProductV1DTO:
      title: 상품 상세 정보
      required:
        - categories
        - code
        - combinedProducts
        - createdAt
        - demoPeriod
        - demoPeriodUnit
        - enabledDemo
        - eventBadge
        - id
        - isOnetimePurchasable
        - optionCombinations
        - optionGroups
        - prices
        - productOrder
        - status
        - useCombination
        - vendorUuid
      type: object
      properties:
        id:
          type: integer
          description: 상품 아이디
          format: int64
        code:
          type: string
          description: 상품 코드
        type:
          type: string
          description: 상품 타입
          enum:
            - BOX
            - SOFTWARE
            - BUNDLE
            - INVOICE
            - DRAFT
        status:
          type: string
          description: 상품 상태
          enum:
            - SALE
            - OUT_OF_STOCK
            - UNSOLD
            - WAITING_APPROVAL
            - REJECTED
        name:
          type: string
          description: 상품 이름
        subTitle:
          type: string
          description: 부제목
        featuredImageUrl:
          type: string
          description: 상품 대표 이미지 URL
        imageUrls:
          type: array
          description: 상품 이미지 URL
          items:
            type: string
            description: 상품 이미지 URL
        description:
          type: string
          description: 상품 설명
        summary:
          type: string
          description: 상품 요약
        reasonOfReject:
          type: string
          description: 상품 승인 거절 사유
        sku:
          type: string
          description: SKU
          deprecated: true
        quantity:
          type: integer
          description: 재고 수량
          format: int32
        combinedProducts:
          type: array
          description: 번들 상품 정보
          items:
            $ref: '#/components/schemas/BundleProductV1DTO'
        optionGroups:
          type: array
          description: 옵션 그룹 정보
          items:
            $ref: '#/components/schemas/ProductOptionGroupV1DTO'
        useCombination:
          type: boolean
          description: 조합형 옵션 사용 여부
        optionCombinations:
          type: array
          description: 옵션 조합
          items:
            $ref: '#/components/schemas/OptionCombinationV1DTO'
        prices:
          type: array
          description: 가격 플랜 목록
          items:
            $ref: '#/components/schemas/PriceV1DTO'
        createdAt:
          type: string
          description: 생성 시점
          format: date-time
        modifiedAt:
          type: string
          description: 수정 시점
          format: date-time
        enabledDemo:
          type: boolean
          description: 체험기간 활성화 여부
        demoPeriod:
          type: integer
          description: 체험 기간
          format: int32
        demoPeriodUnit:
          type: string
          description: 체험 기간 단위
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        categories:
          type: array
          description: 카테고리
          items:
            $ref: '#/components/schemas/ProductCategoryV1DTO'
        vendorUuid:
          type: string
          description: 가맹점 UUID
          format: uuid
        productOrder:
          type: integer
          description: 순서
          format: int32
        isOnetimePurchasable:
          type: boolean
          description: 활성 구독 제한
          deprecated: true
        eventBadge:
          type: array
          description: 이벤트 뱃지
          deprecated: true
          items:
            $ref: '#/components/schemas/ProductEventBadgeV1DTO'
        notice:
          type: string
          description: 유의 사항
          deprecated: true
        useWidget:
          $ref: '#/components/schemas/ProductWidgetV1DTO'
        groupId:
          type: integer
          description: 그룹 ID
          format: int64
          deprecated: true
        countrySetting:
          $ref: '#/components/schemas/CountrySettingV1DTO'
        availableRegions:
          type: array
          description: 판매 가능 국가
          items:
            $ref: '#/components/schemas/RegionV1DTO'
      description: 상품 정보
    ProductErrorresponse:
      required:
        - errorCode
      type: object
      properties:
        traceId:
          type: string
        errorCode:
          type: string
        errorMessage:
          type: string
        details:
          $ref: '#/components/schemas/ReturnError'
    ProductOptionGroupCreateDTO:
      required:
        - name
        - options
        - type
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        type:
          type: string
          description: '옵션 그룹 타입 (기본값: SELECT)'
          enum:
            - SELECT
            - COLOR
            - PRODUCT
        options:
          type: array
          description: 세부 옵션
          items:
            $ref: '#/components/schemas/ProductOptionCreateDTO'
      description: 옵션 그룹 수정 데이터
    OptionCombinationCreateDTO:
      required:
        - addQuantity
        - optionIds
        - price
        - status
      type: object
      properties:
        optionIds:
          type: array
          items:
            type: object
        quantity:
          type: integer
          format: int32
        addQuantity:
          type: integer
          description: '기본값: 0'
          format: int32
        price:
          type: number
          description: '가격 (기본값: 0)'
        status:
          type: string
          enum:
            - SALE
            - OUT_OF_STOCK
            - HIDDEN
      description: 옵션 조합
    ProductEventBadge:
      required:
        - event
      type: object
      properties:
        event:
          type: string
        startDateTime:
          type: string
          description: 시작 시점
          format: date-time
        endDateTime:
          type: string
          description: 끝 시점
          format: date-time
      description: 이벤트 뱃지
    ProductWidget:
      required:
        - useDemo
        - useEventBadge
        - useNotice
        - useOnetimePurchasable
      type: object
      properties:
        useDemo:
          type: boolean
        useEventBadge:
          type: boolean
        useOnetimePurchasable:
          type: boolean
        useNotice:
          type: boolean
    BundleProductV1DTO:
      title: 번들 상품 정보
      type: object
      properties:
        code:
          type: string
          description: 상품 코드
        type:
          type: string
          description: 상품 타입
          enum:
            - BOX
            - SOFTWARE
            - BUNDLE
            - INVOICE
            - DRAFT
        status:
          type: string
          description: 상품 상태
          enum:
            - SALE
            - OUT_OF_STOCK
            - UNSOLD
            - WAITING_APPROVAL
            - REJECTED
        name:
          type: string
          description: 상품 이름
        description:
          type: string
          description: 상품 설명
        options:
          type: array
          description: 상품 옵션 목록
          items:
            $ref: '#/components/schemas/ProductOptionGroupV1DTO'
        prices:
          type: array
          description: 상품 가격플랜 목록
          items:
            $ref: '#/components/schemas/PriceV1DTO'
        createdAt:
          type: string
          description: 생성된 시점
          format: date-time
        modifiedAt:
          type: string
          description: 수정된 시점
          format: date-time
      description: 번들 상품 정보
    ProductOptionGroupV1DTO:
      title: 상품 옵션 그룹 정보
      required:
        - id
        - name
        - options
      type: object
      properties:
        id:
          type: integer
          description: 옵션 그룹 번호
          format: int64
        name:
          type: string
          description: 옵션 그룹 이름
        options:
          type: array
          items:
            $ref: '#/components/schemas/ProductOptionV1DTO'
        depth:
          type: integer
          format: int32
      description: 옵션 그룹 정보
    OptionCombinationV1DTO:
      required:
        - id
        - status
      type: object
      properties:
        id:
          type: array
          items:
            type: integer
            format: int64
        quantity:
          type: integer
          format: int32
        price:
          type: number
        status:
          type: string
          enum:
            - SALE
            - OUT_OF_STOCK
            - HIDDEN
      description: 옵션 조합
    PriceV1DTO:
      title: 가격 플랜 정보
      required:
        - basicServing
        - billingDate
        - bundlePrices
        - code
        - enabledFirstSalePrice
        - firstSalePrice
        - id
        - maximumPurchaseQuantity
        - membershipExpirationDate
        - onetimeBundlePrice
        - options
        - order
        - price
        - type
        - volumes
      type: object
      properties:
        id:
          type: integer
          description: 가격 플랜 아이디
          format: int64
        code:
          type: string
          description: 가격 플랜 코드
        price:
          type: number
          description: 가격(기준통화)
        currencyPrice:
          type: object
          additionalProperties:
            type: number
            description: 통화별 가격(기준통화 외)
          description: 통화별 가격(기준통화 외)
        unit:
          type: string
          description: 단위
        planName:
          type: string
          description: 플랜명
          deprecated: true
        planDescription:
          type: string
          description: 플랜 설명
          deprecated: true
        type:
          type: string
          description: 플랜 타입
          enum:
            - ONE_TIME
            - FLAT
            - UNIT_BASED
            - USAGE_BASED
            - VOLUME_BASED
            - BUNDLE
        enabledFirstSalePrice:
          type: boolean
          description: 첫 구매 할인 적용 여부
          deprecated: true
        firstSalePrice:
          type: number
          description: 첫 구매 할인시 적용되는 할인 금액
          deprecated: true
        claimMethodType:
          type: string
          description: 선불인지 후불인지 여부
          enum:
            - PRE
            - POST
        whenToClaimType:
          type: string
          description: 후불인 경우, 언제 결제되는지
          enum:
            - FIRST_PAYMENT
            - DATE
        billingDate:
          type: integer
          description: 후불일 때 결제되는 날짜를 지정한 경우, 지정된 날짜
          format: int32
        maximumPurchaseQuantity:
          type: integer
          description: 최대 구매가능 수량
          format: int32
        membershipExpirationDate:
          type: integer
          description: 구독 만기 기간
          format: int32
        membershipExpirationDateType:
          type: string
          description: 구독 만기 기간 단위
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        setupOption:
          $ref: '#/components/schemas/PriceSetupOptionV1DTO'
        options:
          type: array
          description: 옵션 정보
          deprecated: true
          items:
            $ref: '#/components/schemas/PriceOptionV1DTO'
        volumes:
          type: array
          deprecated: true
          items:
            $ref: '#/components/schemas/PriceVolumeV1DTO'
        additionalBilling:
          $ref: '#/components/schemas/PriceAdditionalBillingV1DTO'
        recurring:
          $ref: '#/components/schemas/PriceRecurringV1DTO'
        createdAt:
          type: string
          description: 생성된 시점
          format: date-time
        modifiedAt:
          type: string
          description: 수정된 시점
          format: date-time
        plan:
          $ref: '#/components/schemas/PlanV1DTO'
        firstSale:
          $ref: '#/components/schemas/FirstSaleV1DTO'
        claim:
          $ref: '#/components/schemas/ClaimV1DTO'
        basicServing:
          type: integer
          description: 기본 제공량 - 계정/사용량 기반 요금 사용시
          format: int32
        bundlePrices:
          type: array
          description: 번들 플랜 - 번들 상품 구성
          items:
            $ref: '#/components/schemas/PriceBundleV1DTO'
        onetimeBundlePrice:
          type: number
          description: 번들 플랜 - 단건 상품 금액
        order:
          type: integer
          description: 우선 순위
          format: int32
      description: 가격 플랜 정보
    ProductCategoryV1DTO:
      required:
        - categoryId
        - name
      type: object
      properties:
        categoryId:
          type: integer
          format: int64
        name:
          type: string
      description: 카테고리
    ProductEventBadgeV1DTO:
      title: 첫 구매 할인 정보
      required:
        - event
      type: object
      properties:
        event:
          type: string
        startDateTime:
          type: string
          description: 시작 시점
          format: date-time
        endDateTime:
          type: string
          description: 끝 시점
          format: date-time
      description: 이벤트 뱃지
      deprecated: true
    ProductWidgetV1DTO:
      type: object
      properties:
        useDemo:
          type: boolean
        useEventBadge:
          type: boolean
        useOnetimePurchasable:
          type: boolean
        useNotice:
          type: boolean
      description: 상품 위젯 사용 여부
      deprecated: true
    CountrySettingV1DTO:
      required:
        - countryCode
        - currencyCode
        - id
        - isDefault
        - taxRate
        - timezoneName
      type: object
      properties:
        id:
          type: integer
          format: int64
        countryCode:
          type: string
        timezoneName:
          type: string
        currencyCode:
          type: string
        isDefault:
          type: boolean
        taxRate:
          type: number
      description: 국가 설정 정보
    RegionV1DTO:
      title: 판매국가 정보
      required:
        - code
        - country
        - countryCode
        - currency
      type: object
      properties:
        code:
          title: Region Enum Code
          type: string
        currency:
          title: 해당 국가에서 사용되는 대표 통화 코드
          type: string
        country:
          title: 국가 이름
          type: string
        countryCode:
          title: 국가 코드(ISO 3166 alpha-2)
          type: string
        state:
          title: 주 이름
          type: string
        language:
          title: 국가 언어 코드(ISO 639-1)
          type: string
      description: 판매 국가(주)
    ReturnError:
      type: object
    ProductOptionCreateDTO:
      required:
        - addQuantity
        - groupName
        - key
        - name
        - price
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        quantity:
          type: integer
          description: 조합형 옵션 사용시 무시됩니다.
          format: int32
        addQuantity:
          type: integer
          description: '기본값: 0'
          format: int32
        price:
          type: number
          description: 조합형 옵션 사용시 무시됩니다.
        key:
          type: string
        groupName:
          type: string
      description: 세부 옵션
    ProductOptionV1DTO:
      title: 옵션 정보
      required:
        - id
        - name
        - price
      type: object
      properties:
        id:
          type: integer
          description: 옵션 번호
          format: int64
        name:
          type: string
          description: 옵션 이름
        quantity:
          type: integer
          description: 수량
          format: int32
        price:
          type: number
          description: 가격
        parent:
          type: integer
          format: int64
    PriceSetupOptionV1DTO:
      title: 기본료 정보
      required:
        - name
        - type
      type: object
      properties:
        id:
          type: integer
          description: 기본료 번호
          format: int64
        name:
          type: string
          description: 기본료 이름
        type:
          type: string
          description: 기본료 타입
          enum:
            - INITIALLY
            - PERIODIC
        price:
          type: number
          description: 기본료 금액(기준통화)
        currencyPrice:
          type: object
          additionalProperties:
            type: number
            description: 통화별 기본료 금액(기준통화 외)
          description: 통화별 기본료 금액(기준통화 외)
        claimMethodType:
          type: string
          description: 기본료가 선불인지 후불인지 여부
          enum:
            - PRE
            - POST
      description: 기본료 정보
    PriceOptionV1DTO:
      title: 가격 플랜 옵션 정보
      required:
        - id
        - price
      type: object
      properties:
        id:
          type: integer
          description: 옵션 번호
          format: int64
        name:
          type: string
          description: 옵션 이름
        productCode:
          type: string
          description: 연관 상품 코드
        type:
          type: string
          description: 옵션 타입
          enum:
            - INITIALLY
            - PERIODIC
        price:
          type: integer
          description: 가격
          format: int64
        priceCode:
          type: string
          description: 연관 가격플랜 코드
        priceName:
          type: string
          description: 연관 가격플랜 이름
        productType:
          type: string
          description: 연관 상품 타입
          enum:
            - BOX
            - SOFTWARE
            - BUNDLE
            - INVOICE
            - DRAFT
        recurringDTO:
          $ref: '#/components/schemas/PriceRecurringV1DTO'
      description: 옵션 정보
      deprecated: true
    PriceVolumeV1DTO:
      required:
        - id
        - max
        - min
        - price
      type: object
      properties:
        id:
          type: integer
          format: int64
        min:
          type: integer
          format: int64
        max:
          type: integer
          format: int64
        price:
          type: integer
          format: int64
      deprecated: true
    PriceAdditionalBillingV1DTO:
      title: 추가 과금 정보
      required:
        - id
        - ranges
        - type
      type: object
      properties:
        id:
          type: integer
          description: 추가 과금 번호
          format: int64
        type:
          type: string
          description: 추가 과금 타입
          enum:
            - USAGE_BASED_WITH_RANGE
            - USAGE_BASED_WITH_RANGE_AND_FIXED_PRICE
        ranges:
          type: array
          description: 추가 과금 범위 정보
          items:
            $ref: '#/components/schemas/PriceAdditionalBillingRangeV1DTO'
      description: 추가 과금 정보
    PriceRecurringV1DTO:
      title: 구독 주기 정보
      required:
        - id
        - intervalCount
      type: object
      properties:
        id:
          type: integer
          description: 주기 정보 번호
          format: int64
        intervalCount:
          type: integer
          description: 주기
          format: int32
        aggregateUsageType:
          type: string
          deprecated: true
          enum:
            - SUM
            - LAST_DURING_PERIOD
            - LAST_EVER
            - MAX
        interval:
          type: string
          description: 주기 단위
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        usageType:
          type: string
          deprecated: true
          enum:
            - LICENSED
            - METERED
      description: 구독 주기 정보
    PlanV1DTO:
      title: 가격 플랜 정보
      required:
        - description
        - isHiddenFromShop
        - name
      type: object
      properties:
        name:
          type: string
          description: 플랜 이름
        description:
          type: string
          description: 플랜 설명
        detailDescription:
          type: string
          description: 자세히 보기
        isHiddenFromShop:
          type: boolean
          description: 플랜 사용 여부
        adminName:
          type: string
          description: 어드민 플랜 이름
      description: 가격 플랜 정보
    FirstSaleV1DTO:
      title: 첫 구매 할인 정보
      required:
        - currencyPrice
        - enabled
        - price
      type: object
      properties:
        enabled:
          type: boolean
          description: 첫 구매 할인 적용 여부
        price:
          type: number
          description: 첫 구매 할인시 적용되는 할인 금액(기준통화)
        currencyPrice:
          type: object
          additionalProperties:
            type: number
            description: 통화별 첫구매 할인 금액(기준통화 외)
          description: 통화별 첫구매 할인 금액(기준통화 외)
      description: 첫 구매 할인 정보
    ClaimV1DTO:
      title: 청구 방식 정보
      required:
        - billingDate
        - methodType
        - whenToClaimType
      type: object
      properties:
        methodType:
          type: string
          description: 선불인지 후불인지 여부
          enum:
            - PRE
            - POST
        whenToClaimType:
          type: string
          description: 후불인 경우, 언제 결제되는지
          enum:
            - FIRST_PAYMENT
            - DATE
        billingDate:
          type: integer
          description: 후불일 때 결제되는 날짜를 지정한 경우, 지정된 날짜
          format: int32
        provideStartDay:
          type: integer
          description: 서비스 제공기간 시작일
          format: int32
      description: 청구 방식 정보
    PriceBundleV1DTO:
      required:
        - price
        - product
      type: object
      properties:
        product:
          $ref: '#/components/schemas/ProductV1DTO'
        price:
          $ref: '#/components/schemas/PriceV1DTO'
      description: 번들 플랜 - 번들 상품 구성
    PriceAdditionalBillingRangeV1DTO:
      title: 추가 과금 범위 정보
      required:
        - id
        - price
        - until
      type: object
      properties:
        id:
          type: integer
          description: 추가 과금 범위 번호
          format: int64
        until:
          type: integer
          description: 범위가 어디까지인지
          format: int64
        price:
          type: number
          description: 범위에 적용되는 금액
      description: 추가 과금 범위 정보
  securitySchemes:
    Secret-Token:
      type: apiKey
      in: header
      name: Secret-Token

````