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

# 주문 생성

> 주문을 생성할 때 호출합니다. customerId, customCode 또는 customerUuid 중 하나는 필수로 입력해야 합니다.



## OpenAPI

````yaml /steppay_v1.json post /api/v1/orders
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/orders:
    post:
      tags:
        - 주문 API
      summary: 주문 생성
      description: >-
        주문을 생성할 때 호출합니다. customerId, customCode 또는 customerUuid 중 하나는 필수로 입력해야
        합니다.
      operationId: v1_createOrder
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderCreateV1DTO'
            examples:
              테스트 주문 생성:
                value:
                  customerId: 0
                  items:
                    - minimumQuantity: 1
                      productCode: product_AbCdEfGhI
                      priceCode: price_AbCdEfGhI
        required: true
      responses:
        '201':
          description: 정상적으로 생성됨
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProductOrderdto'
              examples:
                응답 예시:
                  value:
                    orderId: 1
                    orderCode: order_AbCdEfGhI
                    type: RECURRING_INITIAL
                    paidAmount: 0
                    returnedAmount: 0
                    leftAmount: 0
                    discountedAmount: 0
                    productName: Basic Product (Basic Plan)
                    items:
                      - id: 1
                        code: order_item_AbCdEfGhI
                        paidAmount: 0
                        currency: KRW
                        quantity: 0
                        price:
                          id: 1
                          code: price_AbCdEfGhI
                          price: 10000
                          unit: 개
                          planName: Basic Plan
                          planDescription: ''
                          type: FLAT
                          enabledFirstSalePrice: false
                          firstSalePrice: 0
                          claimMethodType: PRE
                          whenToClaimType: FIRST_PAYMENT
                          billingDate: 0
                          maximumPurchaseQuantity: 0
                          membershipExpirationDate: 0
                          membershipExpirationDateType: null
                          setupOption: null
                          options: []
                          volumes: []
                          additionalBilling: null
                          recurring:
                            id: 1
                            intervalCount: 1
                            aggregateUsageType: SUM
                            interval: MONTH
                            usageType: LICENSED
                          createdAt: '9999-01-01T00:00:00'
                          modifiedAt: '9999-01-01T00:00:00'
                          plan:
                            name: Basic Plan
                            description: ''
                            detailDescription: ''
                            isHiddenFromShop: false
                            adminName: null
                          firstSale:
                            enabled: false
                            price: 0
                          claim:
                            methodType: PRE
                            whenToClaimType: FIRST_PAYMENT
                            billingDate: 0
                            provideStartDay: null
                          basicServing: 0
                          bundlePrices: []
                          onetimeBundlePrice: 0
                          order: 0
                        product:
                          id: 1
                          code: product_AbCdEfGhI
                          type: SOFTWARE
                          status: SALE
                          name: Basic Product
                          subTitle: null
                          featuredImageUrl: ''
                          imageUrls: []
                          description: ''
                          summary: null
                          reasonOfReject: null
                          sku: null
                          quantity: null
                          combinedProducts: []
                          optionGroups: []
                          useCombination: true
                          optionCombinations: []
                          prices:
                            - id: 1
                              code: price_AbCdEfGhI
                              price: 10000
                              unit: 개
                              planName: Basic Plan
                              planDescription: ''
                              type: FLAT
                              enabledFirstSalePrice: false
                              firstSalePrice: 0
                              claimMethodType: PRE
                              whenToClaimType: FIRST_PAYMENT
                              billingDate: 0
                              maximumPurchaseQuantity: 0
                              membershipExpirationDate: 0
                              membershipExpirationDateType: null
                              setupOption: null
                              options: []
                              volumes: []
                              additionalBilling: null
                              recurring:
                                id: 1
                                intervalCount: 1
                                aggregateUsageType: SUM
                                interval: MONTH
                                usageType: LICENSED
                              createdAt: '9999-01-01T00:00:00'
                              modifiedAt: '9999-01-01T00:00:00'
                              plan:
                                name: Basic Plan
                                description: ''
                                detailDescription: ''
                                isHiddenFromShop: false
                                adminName: null
                              firstSale:
                                enabled: false
                                price: 0
                              claim:
                                methodType: PRE
                                whenToClaimType: FIRST_PAYMENT
                                billingDate: 0
                                provideStartDay: null
                              basicServing: 0
                              bundlePrices: []
                              onetimeBundlePrice: 0
                              order: 0
                          createdAt: '9999-01-01T00:00:00'
                          modifiedAt: '9999-01-01T00:00:00'
                          enabledDemo: false
                          demoPeriod: 7
                          demoPeriodUnit: DAY
                          categories: []
                          vendorUuid: 206992bb-6462-4b4f-9847-cf2f40d55b48
                          productOrder: 0
                          isOnetimePurchasable: false
                          eventBadge: []
                          notice: null
                          useWidget:
                            useDemo: false
                            useEventBadge: false
                            useOnetimePurchasable: false
                            useNotice: false
                          groupId: null
                          countrySetting: null
                          availableRegions: []
                        type: SKU
                        status: CREATED
                        featuredImageUrl: ''
                        selectedProductOptionLabel: ''
                        selectedProductOptionIds: []
                        createdAt: '9999-01-01T00:00:00.000000'
                        canceledDateTime: null
                        orderItemCode: order_item_AbCdEfGhI
                        modifiedAt: '9999-01-01T00:00:00.000000'
                        orderedProductType: SOFTWARE
                        orderedProductName: Basic Product
                        orderedPlanName: Basic Plan
                        discountName: null
                        relatedOrderItemId: null
                        priceSetupType: null
                        demoCycle: null
                        usedCount: null
                        usageFormula: null
                        deliveryCode: null
                        histories: null
                        minimumQuantity: 1
                        maximumQuantity: null
                        parentOrderItemCode: null
                        unitChangeHistory: null
                        unitCount: null
                    customer:
                      id: 1
                      uuid: 206992bb-6462-4b4f-9847-cf2f40d55b48
                      status: NORMAL
                      username: test@gmail.com
                      name: 고객 수정
                      email: test@gmail.com
                      phone: '01012341234'
                      shipping: null
                      code: customer_AbCdEfGhI
                      marketingSms: false
                      marketingEmail: false
                      marketingKakao: false
                      attributes: {}
                      createdAt: '9999-01-01T00:00:00'
                    paymentDate: null
                    paymentDueDate: null
                    purchaseDeadline: '9999-01-01T00:00:00'
                    shipping: null
                    createdAt: '9999-01-01T00:00:00.000000'
                    modifiedAt: '9999-01-01T00:00:00.000000'
                    payment: null
                    orderLogs: []
                    code: order_AbCdEfGhI
                    idKey: 17042685431546CQ4BVZw22hzN1jn
                    subscriptions: []
                    parentSubscription: null
                    relatedOrders: []
                    calculateStartDate: null
                    calculateEndDate: null
                    childOrders: []
                    paymentMethod: null
                    currency: KRW
                    exchangeRate: 1
                    region:
                      name: KR
                      currencies:
                        - KRW
                      country: South Korea
                      countryCode: KR
                      state: null
                      language: ko
                    baseCurrency: KRW
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProductErrorresponse'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProductErrorresponse'
        '404':
          description: 정보를 찾지 못 함
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProductOrderdto'
components:
  schemas:
    OrderCreateV1DTO:
      title: 주문 생성 데이터
      required:
        - customerId
        - customerCode
        - customerUuid
        - items
      type: object
      properties:
        customerId:
          minimum: 0
          type: integer
          description: 고객 번호
          format: int64
        customerCode:
          type: string
          description: 고객 코드
        customerUuid:
          type: string
          description: 고객 uuid
          format: uuid
        items:
          minLength: 1
          type: array
          description: 주문 항목 생성 데이터 목록
          items:
            $ref: '#/components/schemas/OrderItemCreateV1DTO'
        purchaseDeadline:
          type: string
          description: 결제 링크 유효 기간을 나타냅니다. ISO 8601 형식
          format: date-time
        paymentGateway:
          type: string
          description: '결제 화면에서 결제 할 수 있는 PG사를 고정합니다. (기본값: UNKNOWN)'
          enum:
            - NAVER
            - DANAL
            - KAKAO
            - KG
            - KCP
            - NICE
            - JT
            - GOOGLE
            - BANKPAY
            - BLUEWALNUT
            - KSNET
            - TOSS
            - EXIMBAY
            - SETTLE
            - DAOUDATA
            - WELCOME
            - NICE_V2
            - STRIPE
            - PAYPLE
            - PAYPLE_GLOBAL
            - KICC
            - EMPTY
            - STEPPAY
            - UNKNOWN
        region:
          type: string
          description: '주문의 판매 국가(주) 코드, 정의되지 않은 값 보낼 시 Exception 발생 (기본값: KR)'
          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
        currency:
          type: string
          description: '결제 통화 (기본값: KRW)'
      description: 주문 생성 데이터
    ProductOrderdto:
      title: 주문 상세 정보
      required:
        - baseCurrency
        - code
        - currency
        - discountedAmount
        - exchangeRate
        - leftAmount
        - orderCode
        - orderId
        - orderLogs
        - paidAmount
        - productName
        - region
        - relatedOrders
        - returnedAmount
        - subscriptions
        - type
      type: object
      properties:
        orderId:
          type: integer
          description: 주문 번호
          format: int64
        orderCode:
          type: string
          description: 주문 코드
        type:
          type: string
          description: 주문 타입
          enum:
            - RECURRING
            - ONE_TIME
            - PAYMENT_METHOD
            - RECURRING_INITIAL
            - ADD_USAGE
            - ADDITIONAL
            - ADD_PAYMENT_METHOD
        paidAmount:
          type: number
          description: 주문 금액
        returnedAmount:
          type: number
          description: 환불된 금액
        leftAmount:
          type: number
          description: 남은 금액
        discountedAmount:
          type: number
          description: 할인 금액
        productName:
          type: string
          description: 상품 이름
        items:
          type: array
          description: 주문 항목들
          items:
            $ref: '#/components/schemas/ProductOrderitemdto'
        customer:
          $ref: '#/components/schemas/OrderCustomerDTO'
        paymentDate:
          type: string
          description: 결제 시점
          format: date-time
        paymentDueDate:
          type: string
          description: 결제일 지정
          format: date-time
        purchaseDeadline:
          type: string
          description: 청구서 사용시, 구매 기한 시점
          format: date-time
        shipping:
          $ref: '#/components/schemas/Shipping'
        createdAt:
          type: string
          description: 생성된 시점
          format: date-time
        modifiedAt:
          type: string
          description: 수정된 시점
          format: date-time
        payment:
          $ref: '#/components/schemas/OrderPaymentDTO'
        orderLogs:
          type: array
          description: 주문 메모 목록
          items:
            $ref: '#/components/schemas/OrderLogDTO'
        code:
          type: string
          description: 주문 코드
        idKey:
          type: string
          description: 결제 정보 조회용 idKey
        subscriptions:
          type: array
          description: 관련 구독 목록
          items:
            $ref: '#/components/schemas/OrderSubscriptionDTO'
        parentSubscription:
          $ref: '#/components/schemas/OrderSubscriptionDTO'
        relatedOrders:
          type: array
          description: 관련 주문
          items:
            $ref: '#/components/schemas/RelatedOrder'
        calculateStartDate:
          type: string
          description: 합산 시작 시점
          format: date-time
        calculateEndDate:
          type: string
          description: 합산 끝 시점
          format: date-time
        childOrders:
          type: array
          description: 하위 벤더의 주문
          items:
            $ref: '#/components/schemas/ProductOrderdto'
        paymentMethod:
          type: string
          description: 결제 수단
          enum:
            - CARD
            - VBANK
            - BANK
            - BANK_TRANSFER
            - CELLPHONE
            - SIMPLE_PAY
            - CMS
            - CARD_BILL
            - CELLPHONE_BILL
            - CMS_BILL
            - PAYPAL
        currency:
          type: string
          description: 결제 통화
        exchangeRate:
          type: number
          description: 환율(금액에 곱할 값)
        region:
          $ref: '#/components/schemas/RegionDTO'
        baseCurrency:
          type: string
          description: 주문 생성 당시 기준 통화
        totalDisplayAmount:
          type: number
          description: 표시 통화 가격
      description: 청구서 주문 정보
    ProductErrorresponse:
      required:
        - errorCode
      type: object
      properties:
        traceId:
          type: string
        errorCode:
          type: string
        errorMessage:
          type: string
        details:
          $ref: '#/components/schemas/ReturnError'
    OrderItemCreateV1DTO:
      title: 주문 항목 생성 데이터
      minLength: 1
      required:
        - productCode
        - priceCode
      type: object
      properties:
        productOption:
          type: array
          description: 상품 옵션을 고정하는데 사용됩니다.
          items:
            type: integer
            description: 상품 옵션을 고정하는데 사용됩니다.
            format: int64
          default: []
        currency:
          type: string
          description: '통화 코드 (기본값: KRW)'
          default: KRW
        minimumQuantity:
          type: integer
          description: '최소 수량을 지정합니다. (기본값: 1)'
          format: int32
          default: 1
        maximumQuantity:
          type: integer
          description: 최대 수량을 지정합니다.
          format: int32
        productCode:
          type: string
          description: 상품 코드
        priceCode:
          type: string
          description: 가격플랜 코드
      description: 주문 항목 생성 데이터 목록
    ProductOrderitemdto:
      title: 주문 항목 정보
      required:
        - code
        - currency
        - id
        - minimumQuantity
        - orderItemCode
        - orderedPlanName
        - orderedProductName
        - orderedProductType
        - paidAmount
        - quantity
        - selectedProductOptionIds
        - status
      type: object
      properties:
        id:
          type: integer
          description: 주문 항목 번호
          format: int64
        code:
          type: string
          description: 주문 항목 코드
        paidAmount:
          type: number
          description: 결제 금액
        currency:
          type: string
          description: 통화 코드
        quantity:
          type: integer
          description: 수량
          format: int32
        price:
          $ref: '#/components/schemas/ProductPricedto'
        product:
          $ref: '#/components/schemas/ProductProductdto'
        type:
          type: string
          description: 주문 항목 타입
          enum:
            - SKU
            - TAX
            - SHIPPING
            - DISCOUNT
            - OFFLINE
            - FEE
            - ADDS
            - INSTANT
            - USAGE
        status:
          type: string
          description: 주문 항목 상태
          enum:
            - CREATED
            - DEPOSIT_WAITING
            - CANCELLED
            - PAID
            - CANCELLATION_REQUEST
            - CANCELLATION_REQUEST_CANCELLED
            - CANCELLATION_REQUEST_DENIED
            - CANCELLATION_REFUNDING
            - CANCELLATION_REFUNDED
            - CANCELLATION_REFUNDED_PARTIALLY
            - ORDER_DELIVERY_PREPARING
            - ORDER_DELIVERY_SUSPENDED
            - ORDER_DELIVERY_ON_THE_WAY
            - ORDER_DELIVERY_COMPLETED
            - EXCHANGE_REQUEST
            - EXCHANGE_REQUEST_CANCELLED
            - EXCHANGE_REQUEST_REJECTED
            - EXCHANGE_COLLECTION_PREPARING
            - EXCHANGE_COLLECTION_ON_THE_WAY
            - EXCHANGE_COLLECTION_COMPLETED
            - EXCHANGE_DELIVERY_PREPARING
            - EXCHANGE_DELIVERY_ON_THE_WAY
            - EXCHANGE_DELIVERY_COMPLETED
            - EXCHANGE_REJECT_DELIVERY_PREPARING
            - EXCHANGE_REJECT_DELIVERY_ON_THE_WAY
            - EXCHANGE_REJECT_DELIVERY_COMPLETED
            - EXCHANGE_PENDING
            - EXCHANGE_REJECTED
            - RETURN_REQUEST
            - RETURN_REQUEST_CANCELLED
            - RETURN_REQUEST_REJECTED
            - RETURN_COLLECTION_PREPARING
            - RETURN_COLLECTION_ON_THE_WAY
            - RETURN_COLLECTION_COMPLETED
            - RETURN_REJECT_DELIVERY_PREPARING
            - RETURN_REJECT_DELIVERY_ON_THE_WAY
            - RETURN_REJECT_DELIVERY_COMPLETED
            - RETURN_PENDING
            - RETURN_REJECTED
            - RETURN_REFUNDING
            - RETURN_REFUNDED
            - RETURN_REFUNDED_PARTIALLY
            - PAYMENT_FAILURE
            - FINISHED_EXCHANGE_AVAILABLE
            - FINISHED_RETURN_AVAILABLE
            - FINISHED_SUCCESSFULLY
        featuredImageUrl:
          type: string
          description: 상품 이미지 URL
        selectedProductOptionLabel:
          type: string
          description: 선택한 상품 옵션
        selectedProductOptionIds:
          type: array
          description: 선택한 옵션 ID 목록
          items:
            type: integer
            description: 선택한 옵션 ID 목록
            format: int64
        createdAt:
          type: string
          description: 생성된 시점
          format: date-time
        canceledDateTime:
          type: string
          description: 취소 시점
          format: date-time
        orderItemCode:
          type: string
          description: 주문 항목 코드
        modifiedAt:
          type: string
          description: 수정된 시점
          format: date-time
        orderedProductType:
          type: string
          description: 주문 시점의 상품 타입
          enum:
            - BOX
            - SOFTWARE
            - BUNDLE
            - INVOICE
            - DRAFT
        orderedProductName:
          type: string
          description: 주문 시점의 상품 이름
        orderedPlanName:
          type: string
          description: 주문 시점의 가격 플랜 이름
        discountName:
          type: string
          description: 할인 타입(주문 항목 타입이 DISCOUNT인 경우)
        relatedOrderItemId:
          type: integer
          description: 연관된 주문 항목 (주문 항목 타입이 DISCOUNT인 경우)
          format: int64
        priceSetupType:
          type: string
          description: 기본료 주문 항목인 경우 1회 또는 정기적으로 구분하는 타입
          enum:
            - INITIALLY
            - PERIODIC
        demoCycle:
          $ref: '#/components/schemas/DemoCycle'
        usedCount:
          type: number
          description: 사용량(사용량 기반 과금 상품인 경우)
        usageFormula:
          type: string
          description: 사용량 계산식
        deliveryCode:
          type: string
          description: 배송코드(매핑값)
        histories:
          type: array
          description: CS기록
          items:
            $ref: '#/components/schemas/CSItemDTO'
        minimumQuantity:
          type: integer
          description: 최소 구매 가능 수량
          format: int32
        maximumQuantity:
          type: integer
          description: 최대 구매 가능 수량
          format: int32
        parentOrderItemCode:
          type: string
          description: 파생 주문 아이템의 부모(번들) 주문 아이템 코드
        unitChangeHistory:
          type: array
          description: 계정 수 변동 내역(계정 수 기반 과금 상품인 경우)
          items:
            $ref: '#/components/schemas/OrderItemUnitChangeHistoryV1DTO'
        unitCount:
          type: integer
          description: 계정 수(계정 수 기반 과금 상품인 경우
          format: int64
        relatedSubscriptionItemId:
          type: integer
          description: 관련 구독 아이템 아이디
          format: int64
      description: 주문 항목들
    OrderCustomerDTO:
      title: 주문 고객 정보
      required:
        - attributes
        - createdAt
        - id
        - marketingEmail
        - marketingKakao
        - marketingSms
        - name
        - uuid
      type: object
      properties:
        id:
          type: integer
          description: 고객 번호
          format: int64
        uuid:
          type: string
          description: 고객 uuid
          format: uuid
        status:
          type: string
          description: 고객 상태
          enum:
            - NORMAL
            - DORMANT
        username:
          type: string
          description: 고객 아이디
        name:
          type: string
          description: 이름
        email:
          type: string
          description: 이메일
        phone:
          type: string
          description: 전화번호
        shipping:
          $ref: '#/components/schemas/Shipping'
        code:
          type: string
          description: 고객 코드
        marketingSms:
          type: boolean
          description: 고객이 허가한 마케팅 채널 - SMS
        marketingEmail:
          type: boolean
          description: 고객이 허가한 마케팅 채널 - Email
        marketingKakao:
          type: boolean
          description: 고객이 허가한 마케팅 채널 - Kakao
        attributes:
          type: object
          additionalProperties:
            type: string
            description: 고객 추가 데이터
          description: 고객 추가 데이터
        createdAt:
          type: string
          description: 고객 생성 시점
          format: date-time
      description: 주문한 고객 정보
    Shipping:
      title: 배송지 정보
      required:
        - address1
        - address2
        - name
        - phone
        - postcode
      type: object
      properties:
        name:
          maxLength: 2147483647
          minLength: 1
          type: string
          description: 수령인 이름
        phone:
          maxLength: 2147483647
          minLength: 1
          type: string
          description: 수령인 전화번호
        postcode:
          maxLength: 2147483647
          minLength: 1
          type: string
          description: 우편번호
        address1:
          maxLength: 2147483647
          minLength: 1
          type: string
          description: 주소
        address2:
          maxLength: 2147483647
          minLength: 1
          type: string
          description: 세부 주소
        state:
          type: string
          description: 주 정보
        city:
          type: string
          description: 도시 정보
        countryCode:
          type: string
          description: 국가 코드
      description: 고객이 최근에 사용한 배송지
    OrderPaymentDTO:
      title: 결제 상세 정보
      required:
        - amount
        - discount
      type: object
      properties:
        paymentMethod:
          type: string
          description: 결제 수단
          enum:
            - CARD
            - VBANK
            - BANK
            - BANK_TRANSFER
            - CELLPHONE
            - SIMPLE_PAY
            - CMS
            - CARD_BILL
            - CELLPHONE_BILL
            - CMS_BILL
            - PAYPAL
        paymentDate:
          type: string
          description: 결제 시점
          format: date-time
        amount:
          type: number
          description: 결제 금액
        discount:
          type: number
          description: 할인 금액
        paymentReturn:
          type: object
          additionalProperties:
            type: object
            description: PG사 반환값
          description: PG사 반환값
        paymentReceiptUrl:
          type: string
          description: 영수증 링크
        paymentGateway:
          type: string
          description: 사용한 PG
          enum:
            - NAVER
            - DANAL
            - KAKAO
            - KG
            - KCP
            - NICE
            - JT
            - GOOGLE
            - BANKPAY
            - BLUEWALNUT
            - KSNET
            - TOSS
            - EXIMBAY
            - SETTLE
            - DAOUDATA
            - WELCOME
            - NICE_V2
            - STRIPE
            - PAYPLE
            - PAYPLE_GLOBAL
            - KICC
            - EMPTY
            - STEPPAY
            - UNKNOWN
        cardNumber:
          type: string
          description: 결제 정보(카드 번호 등)
        vbankDTO:
          $ref: '#/components/schemas/VBankDTO'
        niceCmsDTO:
          $ref: '#/components/schemas/NiceCmsDTO'
        customerDTO:
          $ref: '#/components/schemas/ProductCustomerdto'
        errorCode:
          type: string
          description: 에러 코드(결제 실패시)
        errorMessage:
          type: string
          description: 에러 메세지(결제 실패시)
      description: 결제 상세 정보
    OrderLogDTO:
      title: 주문 메모 정보
      required:
        - content
        - createdAt
        - id
        - type
      type: object
      properties:
        id:
          type: integer
          description: 메모 번호
          format: int64
        type:
          type: string
          description: 메모 타입
          enum:
            - MANAGER
            - V1
            - RENEW
            - CUSTOMER
            - SYSTEM
            - PUBLIC
        content:
          type: string
          description: 메모 내용
        createdAt:
          type: string
          description: 생성된 시점
          format: date-time
      description: 주문 메모 목록
    OrderSubscriptionDTO:
      title: 주문 관련 구독 정보
      required:
        - id
        - interval
        - intervalCount
        - items
        - price
        - status
      type: object
      properties:
        id:
          type: integer
          description: 구독 번호
          format: int64
        status:
          type: string
          description: 구독 상태
          enum:
            - ACTIVE
            - UNPAID
            - PENDING_PAUSE
            - PAUSE
            - PENDING_CANCEL
            - EXPIRED
            - CANCELED
            - INCOMPLETE
            - QUEUEING
        items:
          type: array
          description: 구독 항목들
          items:
            $ref: '#/components/schemas/SubscriptionItemDTO'
        price:
          $ref: '#/components/schemas/ProductPricedto'
        startDate:
          type: string
          description: 구독 시작 시점
          format: date-time
        lastPaymentDate:
          type: string
          description: 최근 결제 시점
          format: date-time
        nextPaymentDate:
          type: string
          description: 다음 결제 시점
          format: date-time
        endDate:
          type: string
          description: 구독 만료 시점
          format: date-time
        interval:
          type: string
          description: 구독 주기 단위
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        intervalCount:
          type: integer
          description: 구독 주기
          format: int32
        trialEndDate:
          type: string
          description: 체험기간 종료 시점
          format: date-time
      description: 부모 구독 정보(갱신 결제일 경우)
    RelatedOrder:
      required:
        - code
        - createdAt
        - currency
        - id
        - items
        - orderType
        - paidAmount
        - productName
      type: object
      properties:
        id:
          type: integer
          description: 주문 번호
          format: int64
        code:
          type: string
          description: 주문 코드
        orderType:
          type: string
          description: 주문 타입
          enum:
            - RECURRING
            - ONE_TIME
            - PAYMENT_METHOD
            - RECURRING_INITIAL
            - ADD_USAGE
            - ADDITIONAL
            - ADD_PAYMENT_METHOD
        productName:
          type: string
          description: 상품 이름
        paidAmount:
          type: number
          description: 결제 금액
        items:
          type: array
          description: 주문 항목
          items:
            $ref: '#/components/schemas/RelatedOrderItem'
        createdAt:
          type: string
          format: date-time
        currency:
          type: string
      description: 관련 주문
    RegionDTO:
      title: 판매국가 정보
      required:
        - country
        - countryCode
        - currencies
        - language
        - name
      type: object
      properties:
        name:
          title: Region Enum Code
          type: string
        currencies:
          title: 해당 국가에서 사용되는 통화 코드 목록
          type: array
          items:
            title: 해당 국가에서 사용되는 통화 코드 목록
            type: string
        country:
          title: 국가 이름
          type: string
        countryCode:
          title: 국가 코드(ISO 3166 alpha-2)
          type: string
        state:
          title: 주 이름
          type: string
        language:
          title: 국가 언어 코드
          type: string
      description: 지역
    ReturnError:
      type: object
    ProductPricedto:
      title: 가격 플랜 정보
      required:
        - basicServing
        - billingDate
        - bundlePrices
        - code
        - currencyOnetimeBundlePrice
        - currencyPrice
        - 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/PriceSetupOptionDTO'
        options:
          type: array
          description: 옵션 정보
          items:
            $ref: '#/components/schemas/PriceOptionDTO'
        volumes:
          type: array
          deprecated: true
          items:
            $ref: '#/components/schemas/PriceVolumeDTO'
        additionalBilling:
          $ref: '#/components/schemas/PriceAdditionalBillingDTO'
        recurring:
          $ref: '#/components/schemas/PriceRecurringDTO'
        createdAt:
          type: string
          description: 생성된 시점
          format: date-time
        modifiedAt:
          type: string
          description: 수정된 시점
          format: date-time
        plan:
          $ref: '#/components/schemas/Plan'
        firstSale:
          $ref: '#/components/schemas/FirstSaleDTO'
        claim:
          $ref: '#/components/schemas/Claim'
        basicServing:
          type: integer
          description: 기본 제공량 - 계정/사용량 기반 요금 사용시
          format: int32
        bundlePrices:
          type: array
          description: 번들 플랜 - 번들 상품 구성
          items:
            $ref: '#/components/schemas/PriceBundleDTO'
        onetimeBundlePrice:
          type: number
          description: 번들 플랜 - 단건 상품 금액
        currencyOnetimeBundlePrice:
          type: object
          additionalProperties:
            type: number
            description: 통화별 번들 플랜 - 단건 상품 금액
          description: 통화별 번들 플랜 - 단건 상품 금액
        order:
          type: integer
          description: 우선 순위
          format: int32
      description: 가격 플랜 정보
    ProductProductdto:
      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
        quantity:
          type: integer
          description: 재고 수량
          format: int32
        combinedProducts:
          type: array
          description: 번들 상품 정보
          items:
            $ref: '#/components/schemas/BundleProductDTO'
        optionGroups:
          type: array
          description: 옵션 그룹 정보
          items:
            $ref: '#/components/schemas/ProductOptionGroupDTO'
        useCombination:
          type: boolean
          description: 조합형 옵션 사용 여부
        optionCombinations:
          type: array
          description: 옵션 조합
          items:
            $ref: '#/components/schemas/OptionCombinationDTO'
        prices:
          type: array
          description: 가격 플랜 목록
          items:
            $ref: '#/components/schemas/ProductPricedto'
        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/ProductCategoryDTO'
        vendorUuid:
          type: string
          description: 가맹점 UUID
          format: uuid
        productOrder:
          type: integer
          description: 순서
          format: int32
        isOnetimePurchasable:
          type: boolean
          description: 활성 구독 제한
        eventBadge:
          type: array
          description: 이벤트 뱃지
          items:
            $ref: '#/components/schemas/ProductEventBadge'
        notice:
          type: string
          description: 유의 사항
        useWidget:
          $ref: '#/components/schemas/ProductWidgetDTO'
        groupId:
          type: integer
          description: 그룹 ID
          format: int64
        countrySetting:
          $ref: '#/components/schemas/CountrySettingDTO'
        availableRegions:
          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
        shared:
          uniqueItems: true
          type: array
          description: 공유 벤더 목록
          items:
            type: string
            description: 공유 벤더 목록
            format: uuid
      description: 상품 정보
    DemoCycle:
      required:
        - num
        - type
      type: object
      properties:
        num:
          type: integer
          format: int32
        type:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
      description: 무료체험이 적용됐는지 적용 여부 및 기간
    CSItemDTO:
      required:
        - actor
        - category
        - createdAt
        - status
      type: object
      properties:
        actor:
          type: string
          enum:
            - SYSTEM
            - SELLER
            - BUYER
        category:
          type: string
          enum:
            - CANCELLATION
            - EXCHANGE
            - RETURN
        status:
          type: string
        reason:
          type: string
        createdAt:
          type: string
          format: date-time
      description: CS기록
    OrderItemUnitChangeHistoryV1DTO:
      title: 계정 수 변동 내역
      required:
        - changedCount
        - days
      type: object
      properties:
        changedCount:
          type: integer
          description: 계정 수 증감량
          format: int64
        days:
          type: integer
          description: 요금 계산 기준 날짜
          format: int64
      description: 계정 수 변동 내역(계정 수 기반 과금 상품인 경우)
    VBankDTO:
      required:
        - accountName
        - accountNumber
        - bankDate
        - bankName
      type: object
      properties:
        bankCode:
          type: string
        bankName:
          type: string
        accountNumber:
          type: string
        accountName:
          type: string
        bankDate:
          type: string
          format: date-time
      description: 가상 계좌 정보 (paymentMethod가 VBANK 일 때
    NiceCmsDTO:
      required:
        - accountHolderSocialSecurityNumber
        - bankAccount
        - bankCode
        - companyName
        - corporateManager
        - date
        - status
      type: object
      properties:
        corporateManager:
          type: string
        companyName:
          type: string
        companyRegistrationNumber:
          type: string
        accountHolderSocialSecurityNumber:
          type: string
        bankCode:
          type: string
        bankAccount:
          type: string
        date:
          type: string
          format: date-time
        status:
          type: string
          enum:
            - ACCOUNT_PENDING
            - ACCOUNT_FAIL
            - ACCOUNT_SUCCESS
            - WITHDRAW_PENDING
            - WITHDRAW_FAIL
            - WITHDRAW_SUCCESS
        errorReturn:
          type: string
      description: NICE CMS 정보
    ProductCustomerdto:
      title: 고객 상세 정보
      required:
        - additionalRecipients
        - attributes
        - createdAt
        - id
        - marketingEmail
        - marketingKakao
        - marketingSms
        - orderCount
        - orders
        - paymentMethods
        - region
        - subscriptions
        - totalPurchasedPrice
      type: object
      properties:
        id:
          type: integer
          description: 고객 번호
          format: int64
        status:
          type: string
          description: 고객 상태
          enum:
            - NORMAL
            - DORMANT
        username:
          type: string
          description: 고객 아이디
        name:
          type: string
          description: 고객 이름
        email:
          type: string
          description: 고객 이메일
        phone:
          type: string
          description: 고객 전화번호
        orderCount:
          type: integer
          description: 고객이 주문한 주문 개수
          format: int32
        totalPurchasedPrice:
          type: number
          description: 고객이 구매한 전체 금액
        shipping:
          $ref: '#/components/schemas/Shipping'
        orders:
          type: array
          description: 고객과 연관된 주소 목록
          items:
            $ref: '#/components/schemas/CustomerOrderDTO'
        subscriptions:
          type: array
          description: 고객과 연관된 구독 목록
          items:
            $ref: '#/components/schemas/CustomerSubscriptionDTO'
        paymentMethods:
          type: array
          description: 고객이 사용중인 결제수단 목록
          items:
            $ref: '#/components/schemas/PaymentMethodDTO'
        code:
          type: string
          description: 고객 코드
        marketingSms:
          type: boolean
          description: 고객이 허가한 마케팅 채널 - SMS
        marketingEmail:
          type: boolean
          description: 고객이 허가한 마케팅 채널 - Email
        marketingKakao:
          type: boolean
          description: 고객이 허가한 마케팅 채널 - Kakao
        attributes:
          type: object
          additionalProperties:
            type: string
            description: 고객 추가 데이터
          description: 고객 추가 데이터
        createdAt:
          type: string
          description: 고객 생성 시점
          format: date-time
        additionalRecipients:
          type: array
          description: 추가 수신인
          items:
            type: string
            description: 추가 수신인
        region:
          $ref: '#/components/schemas/RegionDTO'
    SubscriptionItemDTO:
      title: 구독 항목 정보
      required:
        - claimMethodType
        - currency
        - featuredImageUrl
        - hasOptions
        - id
        - isAdditional
        - isOnetimePurchasable
        - keepWhenRenew
        - plan
        - price
        - priceType
        - productName
        - productType
        - quantity
        - selectedOptions
        - selectedProductOptionIds
        - selectedProductOptionPrice
        - type
      type: object
      properties:
        id:
          type: integer
          description: 구독 항목 번호
          format: int64
        code:
          type: string
          description: 구독 항목 코드
        productName:
          type: string
          description: 상품명
        productType:
          type: string
          description: 상품 타입
          enum:
            - BOX
            - SOFTWARE
            - BUNDLE
            - INVOICE
            - DRAFT
        isOnetimePurchasable:
          type: boolean
          description: 활성구독 제한 여부
        featuredImageUrl:
          type: string
          description: 이미지 URL
        selectedProductOptionLabel:
          type: string
          description: 선택한 옵션 정보
        selectedProductOptionIds:
          type: array
          description: 선택한 옵션들의 ID
          items:
            type: integer
            description: 선택한 옵션들의 ID
            format: int64
        selectedProductOptionPrice:
          type: number
          description: 선택한 옵션 추가 금액
        plan:
          $ref: '#/components/schemas/Plan'
        price:
          type: number
          description: 가격
        currency:
          type: string
          description: 가격 통화
        quantity:
          type: integer
          description: 수량
          format: int32
        isAdditional:
          type: boolean
          description: 추가 구매 상품인지 여부
        keepWhenRenew:
          type: boolean
          description: 갱신될 때 유지되는 항목인지 여부
        hasOptions:
          type: boolean
          description: 옵션이 존재하는지 여부
        maximumPurchaseQuantity:
          type: integer
          description: 최대 구매 가능 수량
          format: int32
        productCode:
          type: string
          description: 상품 코드
        priceCode:
          type: string
          description: 가격 플랜 코드
        type:
          type: string
          description: 항목 타입
          enum:
            - SKU
            - TAX
            - SHIPPING
            - DISCOUNT
            - OFFLINE
            - FEE
            - ADDS
            - INSTANT
            - USAGE
        claimMethodType:
          type: string
          description: 선불인지 후불인지 정보
          enum:
            - PRE
            - POST
        priceType:
          type: string
          description: 가격 플랜 타입
          enum:
            - ONE_TIME
            - FLAT
            - UNIT_BASED
            - USAGE_BASED
            - VOLUME_BASED
            - BUNDLE
        selectedOptions:
          type: array
          description: 선택된 옵션
          items:
            type: integer
            description: 선택된 옵션
            format: int64
        parentSubscriptionItemCode:
          type: string
          description: 파생 구독 아이템의 부모(번들) 아이템 코드
      description: 구독 항목들
    RelatedOrderItem:
      title: 관련 주문 항목 상세정보
      required:
        - amount
        - code
        - orderItemId
        - plan
        - priceType
        - productName
        - status
      type: object
      properties:
        orderItemId:
          type: integer
          description: 주문 아이템 번호
          format: int64
        code:
          type: string
          description: 주문 아이템 코드
        productName:
          type: string
          description: 상품명
        plan:
          $ref: '#/components/schemas/Plan'
        status:
          type: string
          description: 주문 항목 상태
          enum:
            - CREATED
            - DEPOSIT_WAITING
            - CANCELLED
            - PAID
            - CANCELLATION_REQUEST
            - CANCELLATION_REQUEST_CANCELLED
            - CANCELLATION_REQUEST_DENIED
            - CANCELLATION_REFUNDING
            - CANCELLATION_REFUNDED
            - CANCELLATION_REFUNDED_PARTIALLY
            - ORDER_DELIVERY_PREPARING
            - ORDER_DELIVERY_SUSPENDED
            - ORDER_DELIVERY_ON_THE_WAY
            - ORDER_DELIVERY_COMPLETED
            - EXCHANGE_REQUEST
            - EXCHANGE_REQUEST_CANCELLED
            - EXCHANGE_REQUEST_REJECTED
            - EXCHANGE_COLLECTION_PREPARING
            - EXCHANGE_COLLECTION_ON_THE_WAY
            - EXCHANGE_COLLECTION_COMPLETED
            - EXCHANGE_DELIVERY_PREPARING
            - EXCHANGE_DELIVERY_ON_THE_WAY
            - EXCHANGE_DELIVERY_COMPLETED
            - EXCHANGE_REJECT_DELIVERY_PREPARING
            - EXCHANGE_REJECT_DELIVERY_ON_THE_WAY
            - EXCHANGE_REJECT_DELIVERY_COMPLETED
            - EXCHANGE_PENDING
            - EXCHANGE_REJECTED
            - RETURN_REQUEST
            - RETURN_REQUEST_CANCELLED
            - RETURN_REQUEST_REJECTED
            - RETURN_COLLECTION_PREPARING
            - RETURN_COLLECTION_ON_THE_WAY
            - RETURN_COLLECTION_COMPLETED
            - RETURN_REJECT_DELIVERY_PREPARING
            - RETURN_REJECT_DELIVERY_ON_THE_WAY
            - RETURN_REJECT_DELIVERY_COMPLETED
            - RETURN_PENDING
            - RETURN_REJECTED
            - RETURN_REFUNDING
            - RETURN_REFUNDED
            - RETURN_REFUNDED_PARTIALLY
            - PAYMENT_FAILURE
            - FINISHED_EXCHANGE_AVAILABLE
            - FINISHED_RETURN_AVAILABLE
            - FINISHED_SUCCESSFULLY
        amount:
          type: number
          description: 가격
        priceType:
          type: string
          description: 가격 플랜 타입
          enum:
            - ONE_TIME
            - FLAT
            - UNIT_BASED
            - USAGE_BASED
            - VOLUME_BASED
            - BUNDLE
        parentOrderItemCode:
          type: string
          description: 부모 아이템 코드
      description: 주문 항목
    PriceSetupOptionDTO:
      title: 기본료 정보
      required:
        - claimMethodType
        - currencyPrice
        - id
        - price
      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: 기본료 정보
    PriceOptionDTO:
      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/PriceRecurringDTO'
      description: 옵션 정보
    PriceVolumeDTO:
      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
    PriceAdditionalBillingDTO:
      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/PriceAdditionalBillingRangeDTO'
      description: 추가 과금 정보
    PriceRecurringDTO:
      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: 구독 주기 정보
    Plan:
      title: 가격 플랜 정보
      required:
        - name
        - description
      type: object
      properties:
        name:
          type: string
          description: 플랜 이름
        description:
          type: string
          description: 플랜 설명
        detailDescription:
          type: string
          description: 자세히 보기
        isHiddenFromShop:
          type: boolean
          description: '플랜 사용 여부 (기본값: false)'
        adminName:
          type: string
          description: 어드민 플랜 이름
      description: 가격 플랜 정보
    FirstSaleDTO:
      title: 첫 구매 할인 정보
      type: object
      properties:
        enabled:
          type: boolean
        price:
          type: number
        currencyPrice:
          type: object
          additionalProperties:
            type: number
      description: 첫 구매 할인 정보
    Claim:
      title: 청구 방식 정보
      type: object
      properties:
        methodType:
          type: string
          description: '선불인지 후불인지 여부 (기본값: PRE)'
          enum:
            - PRE
            - POST
        whenToClaimType:
          type: string
          description: '후불인 경우, 언제 결제되는지 (기본값: FIRST_PAYMENT)'
          enum:
            - FIRST_PAYMENT
            - DATE
        billingDate:
          type: integer
          description: '후불일 때 결제되는 날짜를 지정한 경우, 지정된 날짜 (기본값: 1)'
          format: int32
        provideStartDay:
          type: integer
          description: 서비스 제공기간 시작일
          format: int32
      description: 청구 방식 정보
    PriceBundleDTO:
      required:
        - price
        - product
      type: object
      properties:
        product:
          $ref: '#/components/schemas/ProductProductdto'
        price:
          $ref: '#/components/schemas/ProductPricedto'
      description: 번들 플랜 - 번들 상품 구성
    BundleProductDTO:
      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/ProductOptionGroupDTO'
        prices:
          type: array
          description: 상품 가격플랜 목록
          items:
            $ref: '#/components/schemas/ProductPricedto'
        createdAt:
          type: string
          description: 생성된 시점
          format: date-time
        modifiedAt:
          type: string
          description: 수정된 시점
          format: date-time
      description: 번들 상품 정보
    ProductOptionGroupDTO:
      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/ProductOptionDTO'
        depth:
          type: integer
          format: int32
      description: 옵션 그룹 정보
    OptionCombinationDTO:
      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: 옵션 조합
    ProductCategoryDTO:
      required:
        - categoryId
        - name
      type: object
      properties:
        categoryId:
          type: integer
          format: int64
        name:
          type: string
      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: 이벤트 뱃지
    ProductWidgetDTO:
      type: object
      properties:
        useDemo:
          type: boolean
        useEventBadge:
          type: boolean
        useOnetimePurchasable:
          type: boolean
        useNotice:
          type: boolean
      description: 상품 위젯 사용 여부
    CountrySettingDTO:
      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: 국가 설정 정보
    CustomerOrderDTO:
      title: 고객과 연관된 주소 정보
      required:
        - amount
        - claimMethodType
        - createdAt
        - currency
        - id
        - productName
        - type
      type: object
      properties:
        id:
          type: integer
          description: 주문 번호
          format: int64
        type:
          type: string
          description: 주문 타입
          enum:
            - RECURRING
            - ONE_TIME
            - PAYMENT_METHOD
            - RECURRING_INITIAL
            - ADD_USAGE
            - ADDITIONAL
            - ADD_PAYMENT_METHOD
        productName:
          type: string
          description: 상품명
        amount:
          type: number
          description: 주문 금액
        claimMethodType:
          type: string
          description: 선불인지 후불인지 정보
          enum:
            - PRE
            - POST
        createdAt:
          type: string
          description: 생성 일시
          format: date-time
        currency:
          type: string
          description: 승인 통화
      description: 고객과 연관된 주소 목록
    CustomerSubscriptionDTO:
      title: 고객과 연관된 구독 정보
      required:
        - code
        - currency
        - id
        - items
        - recurring
        - status
      type: object
      properties:
        id:
          type: integer
          description: 구독 번호
          format: int64
        code:
          type: string
          description: 구독 코드
        nextPaymentDateTime:
          type: string
          description: 다음 결제 시점
          format: date-time
        items:
          type: array
          description: 구독 항목들
          items:
            $ref: '#/components/schemas/SubscriptionItemDTO'
        status:
          type: string
          description: 구독 상태
          enum:
            - ACTIVE
            - UNPAID
            - PENDING_PAUSE
            - PAUSE
            - PENDING_CANCEL
            - EXPIRED
            - CANCELED
            - INCOMPLETE
            - QUEUEING
        recurring:
          $ref: '#/components/schemas/Interval'
        paymentMethod:
          $ref: '#/components/schemas/PaymentMethodDTO'
        endDate:
          type: string
          description: 종료일
          format: date-time
        lastPaymentDateTime:
          type: string
          description: 최근 결제 시점
          format: date-time
        currency:
          type: string
          description: 승인 통화
      description: 고객과 연관된 구독 목록
    PaymentMethodDTO:
      title: 결제수단 정보
      required:
        - id
        - paymentInfo
      type: object
      properties:
        id:
          type: integer
          description: 결제수단 번호
          format: int64
        paymentInfo:
          type: string
          description: 결제수단 정보
      description: 고객이 사용중인 결제수단 목록
    PriceAdditionalBillingRangeDTO:
      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: 추가 과금 범위 정보
    ProductOptionDTO:
      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
    Interval:
      required:
        - interval
        - intervalCount
      type: object
      properties:
        interval:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        intervalCount:
          type: integer
          format: int32
      description: 구독 주기 정보
  securitySchemes:
    Secret-Token:
      type: apiKey
      in: header
      name: Secret-Token

````