{
  "openapi": "3.0.1",
  "x-stoplight": {
    "id": "h7olll6xt2zrg"
  },
  "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"
    }
  ],
  "paths": {
    "/api/v1/vendors/{vendorUuid}/children": {
      "get": {
        "tags": [
          "벤더 API"
        ],
        "summary": "하위 벤더 목록 조회",
        "operationId": "v1_getChildVendors",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "페이지 번호(기본값: 0)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "페이지 크기(기본값: 20)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "vendorUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "pageable",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Pageable"
            }
          },
          {
            "name": "unpaged",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "query",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/VendorQueryDTO"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 조회됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/VendorListDTO"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AccountErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AccountErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "wd0galpngs4nf"
        }
      },
      "post": {
        "tags": [
          "벤더 API"
        ],
        "summary": "하위 벤더 추가",
        "operationId": "v1_addChildVendor",
        "parameters": [
          {
            "name": "vendorUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChildVendorCreateRequestDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "정상적으로 추가됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/VendorDTO"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AccountErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AccountErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "yicvc7yydev8e"
        }
      }
    },
    "/api/v1/vendors/{vendorUuid}/children/{childUuid}": {
      "get": {
        "tags": [
          "벤더 API"
        ],
        "summary": "하위 벤더 상세 조회",
        "operationId": "v1_getChildVendor",
        "parameters": [
          {
            "name": "vendorUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "childUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 조회됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/VendorDTO"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AccountErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AccountErrorresponse"
                }
              }
            }
          },
          "404": {
            "description": "벤더를 찾지 못 함",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/VendorDTO"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "6vjjmundk6pk1"
        }
      }
    },
    "/api/v1/customers": {
      "post": {
        "tags": [
          "고객 API"
        ],
        "summary": "고객 생성",
        "description": "고객을 생성할 때 호출합니다.",
        "operationId": "v1_createCustomer",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerCreateDTO"
              },
              "examples": {
                "테스트 고객 생성": {
                  "value": {
                    "name": "테스트 고객",
                    "username": "test@gmail.com",
                    "email": "test@gmail.com",
                    "phone": "010-1234-5678"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "정상적으로 생성됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AccountCustomerv1dto"
                },
                "examples": {
                  "응답 예시": {
                    "value": {
                      "id": 1,
                      "username": "test@gmail.com",
                      "name": "테스트 고객",
                      "email": "test@gmail.com",
                      "phone": "01012345678",
                      "code": "customer_AbCdEfGhI",
                      "marketingSms": false,
                      "marketingEmail": false,
                      "marketingKakao": false,
                      "createdAt": "9999-01-01T00:00:00.000000"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "파라미터 검증 실패"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AccountErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "y5u57kwssikj3"
        }
      },
      "get": {
        "tags": [
          "고객 API"
        ],
        "summary": "고객 목록 조회",
        "description": "고객 목록을 반환합니다. Pagination 형태로 지원됩니다.",
        "operationId": "v1_getCustomerList",
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "description": "조회 시작 시점",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "조회 끝 시점",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "페이지 번호(기본값: 0)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "페이지 크기(기본값: 20)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sortDir",
            "in": "query",
            "description": "정렬 방향(오름차순: ASC, 내림차순: DESC(기본값))",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "정렬 기준값 - 기본값: 생성 시점",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "keyword",
            "in": "query",
            "description": "검색 키워드 - 이름과 이메일에서 검색됩니다.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 조회됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerListPageDTO"
                },
                "examples": {
                  "응답 예시": {
                    "value": {
                      "content": [
                        {
                          "id": 1,
                          "code": "customer_AbCdEfGhI",
                          "status": "NORMAL",
                          "username": "test1@gmail.com",
                          "name": "테스트 고객",
                          "email": "test1@gmail.com",
                          "phone": "01012345678",
                          "orderCount": 0,
                          "activeSubscriptionCount": 0,
                          "paymentMethods": [],
                          "marketingSms": false,
                          "marketingEmail": false,
                          "marketingKakao": false,
                          "createdAt": "9999-01-01T00:00:00",
                          "dormantAt": null,
                          "customFields": {},
                          "countryCode": "KR"
                        },
                        {
                          "id": 1,
                          "code": "customer_AbCdEfGhI",
                          "status": "NORMAL",
                          "username": "test2@gmail.com",
                          "name": "테스트 고객2",
                          "email": "test2@gmail.com",
                          "phone": "01011231123",
                          "orderCount": 1,
                          "activeSubscriptionCount": 0,
                          "paymentMethods": [
                            {
                              "id": 1,
                              "paymentInfo": "XX카드 111111**********"
                            }
                          ],
                          "marketingSms": false,
                          "marketingEmail": false,
                          "marketingKakao": false,
                          "createdAt": "9999-01-01T00:00:00",
                          "dormantAt": null,
                          "customFields": {},
                          "countryCode": "UNKNOWN"
                        }
                      ],
                      "pageable": {
                        "page": 0,
                        "size": 20,
                        "sortDir": "DESC",
                        "sort": "createdAt",
                        "pageSize": 20,
                        "pageNumber": 0,
                        "offset": 0,
                        "paged": true,
                        "unpaged": false
                      },
                      "last": true,
                      "totalElements": 2,
                      "totalPages": 1,
                      "sort": {
                        "unsorted": false,
                        "sorted": true,
                        "empty": false
                      },
                      "number": 0,
                      "first": true,
                      "numberOfElements": 20,
                      "size": 20,
                      "empty": false
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "jpd5w840p1ke3"
        }
      }
    },
    "/api/v1/customers/{id}": {
      "put": {
        "tags": [
          "고객 API"
        ],
        "summary": "고객 수정",
        "description": "고객 정보를 수정할 때 호출합니다. 파라미터로 전달된 정보로 고객 정보가 치환됩니다.",
        "operationId": "v1_updateCustomer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "수정할 고객 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerUpdateDTO"
              },
              "examples": {
                "테스트 고객 수정": {
                  "value": {
                    "name": "고객 수정",
                    "email": "test_modify@gmail.com",
                    "phone": "010-1234-1234"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "정상적으로 수정됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AccountCustomerv1dto"
                },
                "examples": {
                  "응답 예시": {
                    "value": {
                      "id": 1,
                      "username": "test@gmail.com",
                      "name": "고객 수정",
                      "email": "test_modify@gmail.com",
                      "phone": "01012341234",
                      "code": null,
                      "marketingSms": null,
                      "marketingEmail": null,
                      "marketingKakao": null,
                      "createdAt": "9999-01-01T00:00:00"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "파라미터 검증 실패"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AccountErrorresponse"
                }
              }
            }
          },
          "404": {
            "description": "수정할 고객 정보를 찾지 못 함",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AccountCustomerv1dto"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "gtlznwiejhf9b"
        }
      },
      "delete": {
        "tags": [
          "고객 API"
        ],
        "summary": "고객 삭제",
        "description": "고객 정보를 삭제할 때 호출합니다.",
        "operationId": "v1_deleteCustomer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "삭제할 고객 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 삭제됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AccountApiresponse"
                }
              }
            }
          },
          "400": {
            "description": "파라미터 검증 실패"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AccountErrorresponse"
                }
              }
            }
          },
          "404": {
            "description": "삭제할 고객 정보를 찾지 못 함",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AccountApiresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "rv1na38tpxg9w"
        }
      },
      "get": {
        "tags": [
          "고객 API"
        ],
        "summary": "고객 상세 조회",
        "description": "고객 상세정보를 반환합니다.",
        "operationId": "v1_getCustomerDetail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "고객 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 조회됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCustomerdto"
                },
                "examples": {
                  "응답 예시": {
                    "value": {
                      "id": 1,
                      "status": "NORMAL",
                      "username": "test@gmail.com",
                      "name": "테스트 고객",
                      "email": "test@gmail.com",
                      "phone": "01012345678",
                      "orderCount": 0,
                      "totalPurchasedPrice": 0,
                      "shipping": null,
                      "orders": [],
                      "subscriptions": [],
                      "paymentMethods": [],
                      "code": "customer_AbCdEfGhI",
                      "marketingSms": false,
                      "marketingEmail": false,
                      "marketingKakao": false,
                      "attributes": {},
                      "createdAt": "9999-01-01T00:00:00",
                      "additionalRecipients": []
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "p9imo3u89uelf"
        }
      }
    },
    "/api/v1/products": {
      "get": {
        "tags": [
          "상품 API"
        ],
        "summary": "상품 목록 조회",
        "operationId": "v1_getProductList",
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "description": "조회 시작 시점",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "조회 끝 시점",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "페이지 번호(기본값: 0)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "페이지 크기(기본값: 20)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sortDir",
            "in": "query",
            "description": "정렬 방향(오름차순: ASC, 내림차순: DESC(기본값))",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "정렬 기준값 - 기본값: 생성 시점",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "keyword",
            "in": "query",
            "description": "검색 키워드. 이름을 검색할 수 있습니다.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "description": "특정 카테고리 아이디에 포함되어 있는 상품 목록을 반환합니다.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "지정한 상태만 목록을 반환하게 합니다.",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "SALE",
                "OUT_OF_STOCK",
                "UNSOLD",
                "WAITING_APPROVAL",
                "REJECTED"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 조회됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductListPageDTO"
                },
                "examples": {
                  "상품 목록": {
                    "value": {
                      "last": true,
                      "size": 0,
                      "sort": {
                        "empty": true,
                        "sorted": true,
                        "unsorted": true
                      },
                      "empty": true,
                      "first": true,
                      "number": 0,
                      "content": [
                        {
                          "id": 1,
                          "code": "string",
                          "name": "string",
                          "type": "BOX",
                          "prices": [
                            {
                              "id": 1,
                              "code": "string",
                              "plan": {
                                "name": "string",
                                "adminName": "string",
                                "description": "string",
                                "isHiddenFromShop": true,
                                "detailDescription": "string"
                              },
                              "type": "ONE_TIME",
                              "unit": "string",
                              "claim": {
                                "methodType": "PRE",
                                "billingDate": 0,
                                "provideStartDay": 0,
                                "whenToClaimType": "FIRST_PAYMENT"
                              },
                              "order": 0,
                              "price": 0,
                              "options": [
                                {
                                  "id": 1,
                                  "name": "string",
                                  "type": "INITIALLY",
                                  "price": 0,
                                  "priceCode": "string",
                                  "priceName": "string",
                                  "productCode": "string",
                                  "productType": "BOX",
                                  "recurringDTO": {
                                    "id": 1,
                                    "interval": "DAY",
                                    "usageType": "LICENSED",
                                    "intervalCount": 0,
                                    "aggregateUsageType": "SUM"
                                  }
                                }
                              ],
                              "volumes": [
                                {
                                  "id": 1,
                                  "max": 0,
                                  "min": 0,
                                  "price": 0
                                }
                              ],
                              "planName": "string",
                              "createdAt": "9999-01-01T00:00:00",
                              "firstSale": {
                                "price": 0,
                                "enabled": true
                              },
                              "recurring": {
                                "id": 1,
                                "interval": "DAY",
                                "usageType": "LICENSED",
                                "intervalCount": 0,
                                "aggregateUsageType": "SUM"
                              },
                              "modifiedAt": "9999-01-01T00:00:00",
                              "billingDate": 0,
                              "setupOption": {
                                "id": 1,
                                "name": "string",
                                "type": "INITIALLY",
                                "price": 0,
                                "claimMethodType": "PRE"
                              },
                              "basicServing": 0,
                              "bundlePrices": [
                                {
                                  "price": {},
                                  "product": {
                                    "id": 1,
                                    "sku": "string",
                                    "code": "string",
                                    "name": "string",
                                    "type": "BOX",
                                    "notice": "string",
                                    "prices": [
                                      {}
                                    ],
                                    "status": "SALE",
                                    "groupId": 0,
                                    "summary": "string",
                                    "quantity": 0,
                                    "subTitle": "string",
                                    "createdAt": "9999-01-01T00:00:00",
                                    "imageUrls": [
                                      "string"
                                    ],
                                    "useWidget": {
                                      "useDemo": true,
                                      "useNotice": true,
                                      "useEventBadge": true,
                                      "useOnetimePurchasable": true
                                    },
                                    "categories": [
                                      {
                                        "name": "string",
                                        "categoryId": 0
                                      }
                                    ],
                                    "demoPeriod": 0,
                                    "eventBadge": [
                                      {
                                        "event": "string",
                                        "endDateTime": "9999-01-01T00:00:00",
                                        "startDateTime": "9999-01-01T00:00:00"
                                      }
                                    ],
                                    "modifiedAt": "9999-01-01T00:00:00",
                                    "vendorUuid": "206992bb-6462-4b4f-9847-cf2f40d55b48",
                                    "description": "string",
                                    "enabledDemo": true,
                                    "optionGroups": [
                                      {
                                        "id": 1,
                                        "name": "string",
                                        "depth": 0,
                                        "options": [
                                          {
                                            "id": 1,
                                            "name": "string",
                                            "price": 0,
                                            "parent": 0,
                                            "quantity": 0
                                          }
                                        ]
                                      }
                                    ],
                                    "productOrder": 0,
                                    "countrySetting": {
                                      "id": 1,
                                      "taxRate": 0,
                                      "isDefault": true,
                                      "countryCode": "string",
                                      "currencyCode": "string",
                                      "timezoneName": "string"
                                    },
                                    "demoPeriodUnit": "DAY",
                                    "reasonOfReject": "string",
                                    "useCombination": true,
                                    "combinedProducts": [
                                      {
                                        "code": "string",
                                        "name": "string",
                                        "type": "BOX",
                                        "prices": [
                                          {}
                                        ],
                                        "status": "SALE",
                                        "options": [
                                          {
                                            "id": 1,
                                            "name": "string",
                                            "depth": 0,
                                            "options": [
                                              {
                                                "id": 1,
                                                "name": "string",
                                                "price": 0,
                                                "parent": 0,
                                                "quantity": 0
                                              }
                                            ]
                                          }
                                        ],
                                        "createdAt": "9999-01-01T00:00:00",
                                        "modifiedAt": "9999-01-01T00:00:00",
                                        "description": "string"
                                      }
                                    ],
                                    "featuredImageUrl": "string",
                                    "optionCombinations": [
                                      {
                                        "id": [
                                          1
                                        ],
                                        "price": 0,
                                        "status": "SALE",
                                        "quantity": 0
                                      }
                                    ],
                                    "isOnetimePurchasable": true
                                  }
                                }
                              ],
                              "firstSalePrice": 0,
                              "claimMethodType": "PRE",
                              "planDescription": "string",
                              "whenToClaimType": "FIRST_PAYMENT",
                              "additionalBilling": {
                                "id": 1,
                                "type": "USAGE_BASED_WITH_RANGE",
                                "ranges": [
                                  {
                                    "id": 1,
                                    "price": 0,
                                    "until": 0
                                  }
                                ]
                              },
                              "onetimeBundlePrice": 0,
                              "enabledFirstSalePrice": true,
                              "maximumPurchaseQuantity": 0,
                              "membershipExpirationDate": 0,
                              "membershipExpirationDateType": "DAY"
                            }
                          ],
                          "status": "SALE",
                          "quantity": 0,
                          "createdAt": "9999-01-01T00:00:00",
                          "categories": [
                            {
                              "name": "string",
                              "categoryId": 0
                            }
                          ],
                          "modifiedAt": "9999-01-01T00:00:00",
                          "vendorUuid": "206992bb-6462-4b4f-9847-cf2f40d55b48",
                          "description": "string",
                          "enabledDemo": true,
                          "productOrder": 0,
                          "countrySetting": {
                            "id": 1,
                            "taxRate": 0,
                            "isDefault": true,
                            "countryCode": "string",
                            "currencyCode": "string",
                            "timezoneName": "string"
                          },
                          "featuredImageUrl": "string",
                          "isOnetimePurchasable": true
                        }
                      ],
                      "pageable": {
                        "sort": {
                          "empty": true,
                          "sorted": true,
                          "unsorted": true
                        },
                        "paged": true,
                        "offset": 0,
                        "unpaged": true,
                        "pageSize": 0,
                        "pageNumber": 0
                      },
                      "totalPages": 0,
                      "totalElements": 0,
                      "numberOfElements": 0
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "qk7wwjo8q4t62"
        }
      },
      "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"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "cmpcpf85mlsai"
        }
      }
    },
    "/api/v1/products/{id}": {
      "put": {
        "tags": [
          "상품 API"
        ],
        "summary": "상품 수정",
        "description": "상품을 수정할 때 호출합니다. 파라미터로 전달된 정보로 가격플랜 정보가 치환됩니다.",
        "operationId": "v1_updateProduct",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "상품 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductUpdateDTO"
              },
              "examples": {
                "넷플릭스 구독 상품": {
                  "value": {
                    "type": "SOFTWARE",
                    "status": "SALE",
                    "name": "넷플릭스 구독 상품",
                    "featuredImageUrl": "string",
                    "imageUrls": [
                      "string"
                    ],
                    "description": "다양한 영화와 드라마",
                    "summary": "New summary",
                    "sku": "회차",
                    "quantity": null,
                    "eventBadge": [
                      {
                        "event": "string",
                        "startDateTime": "9999-01-01T00:00:00",
                        "endDateTime": "9999-01-01T00:00:00"
                      }
                    ],
                    "productOrder": 0,
                    "enabledDemo": true,
                    "demoPeriod": 29,
                    "demoPeriodUnit": "DAY",
                    "combinedProducts": [],
                    "useCombination": false,
                    "optionCombinations": null,
                    "isOnetimePurchasable": false,
                    "useWidget": {
                      "useDemo": true,
                      "useEventBadge": true,
                      "useOnetimePurchasable": true,
                      "useNotice": true
                    },
                    "categoryIds": []
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "정상적으로 수정됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductV1DTO"
                },
                "examples": {
                  "넷플릭스 구독 상품": {
                    "value": {
                      "id": 1,
                      "code": "product_AbCdEfGhI",
                      "type": "SOFTWARE",
                      "status": "SALE",
                      "name": "New Product Name",
                      "subTitle": null,
                      "featuredImageUrl": "string",
                      "imageUrls": [
                        "string"
                      ],
                      "description": "New Description",
                      "summary": "New summary",
                      "reasonOfReject": "New Reason",
                      "sku": "units",
                      "quantity": 0,
                      "combinedProducts": [],
                      "optionGroups": [
                        {
                          "id": 1,
                          "name": "string",
                          "options": [
                            {
                              "id": 1,
                              "name": "string",
                              "quantity": 0,
                              "price": 0,
                              "parent": null
                            }
                          ],
                          "depth": null
                        }
                      ],
                      "useCombination": false,
                      "optionCombinations": [],
                      "prices": [],
                      "createdAt": "9999-01-01T00:00:00",
                      "modifiedAt": "9999-01-01T00:00:00",
                      "enabledDemo": true,
                      "demoPeriod": 2,
                      "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": "New notice",
                      "useWidget": {
                        "useDemo": true,
                        "useEventBadge": true,
                        "useOnetimePurchasable": true,
                        "useNotice": true
                      },
                      "groupId": null,
                      "countrySetting": null
                    }
                  }
                }
              }
            }
          },
          "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/ProductV1DTO"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "se6ybsgbemmyi"
        }
      },
      "delete": {
        "tags": [
          "상품 API"
        ],
        "summary": "상품 삭제",
        "description": "상품을 삭제할 때 호출합니다.",
        "operationId": "v1_deleteProduct",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "상품 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 삭제됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductApiresponse"
                },
                "examples": {
                  "응답 예시": {
                    "value": {
                      "body": null,
                      "message": "상품 삭제 성공"
                    }
                  }
                }
              }
            }
          },
          "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/ApiResponseUnit"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "5kztpmow6gf70"
        }
      }
    },
    "/api/v1/products/{code}": {
      "get": {
        "tags": [
          "상품 API"
        ],
        "summary": "상품 상세 조회",
        "description": "상품 상세정보를 반환합니다.",
        "operationId": "v1_getOne",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "상품 코드",
            "required": true,
            "schema": {
              "type": "string",
              "description": "상품 코드"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 조회됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductV1DTO"
                },
                "examples": {
                  "응답 예시": {
                    "value": {
                      "id": 1,
                      "code": "product_AbCdEfGhI",
                      "type": "SOFTWARE",
                      "status": "SALE",
                      "name": "Product Name",
                      "subTitle": null,
                      "featuredImageUrl": "Url string",
                      "imageUrls": [
                        "Url string"
                      ],
                      "description": "Product Description",
                      "summary": "string",
                      "reasonOfReject": null,
                      "sku": "unit",
                      "quantity": 0,
                      "combinedProducts": [],
                      "optionGroups": [
                        {
                          "id": 1,
                          "name": "Option Group Name",
                          "options": [
                            {
                              "id": 1,
                              "name": "Basic",
                              "quantity": 0,
                              "price": 1000,
                              "parent": null
                            },
                            {
                              "id": 1,
                              "name": "Standard",
                              "quantity": 0,
                              "price": 2000,
                              "parent": null
                            },
                            {
                              "id": 1,
                              "name": "Pro",
                              "quantity": 0,
                              "price": 2000,
                              "parent": null
                            }
                          ],
                          "depth": null
                        }
                      ],
                      "useCombination": false,
                      "optionCombinations": [],
                      "prices": [],
                      "createdAt": "9999-01-01T00:00:00",
                      "modifiedAt": "9999-01-01T00:00:00",
                      "enabledDemo": true,
                      "demoPeriod": 3,
                      "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": "notice",
                      "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"
                }
              }
            }
          },
          "404": {
            "description": "상품을 찾지 못 함",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductV1DTO"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "sex7rn9yehufv"
        }
      }
    },
    "/api/v1/products/{id}/prices": {
      "get": {
        "tags": [
          "상품 API"
        ],
        "summary": "가격플랜 목록 조회",
        "description": "특정 상품의 가격플랜 목록을 반환합니다.",
        "operationId": "v1_getProductPriceList",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "상품 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 조회됨",
            "content": {
              "*/*": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PriceV1DTO"
                  }
                },
                "examples": {
                  "응답 예시": {
                    "value": [
                      {
                        "id": 1,
                        "code": "price_AbCdEfGhI",
                        "price": 10000,
                        "unit": "회",
                        "planName": "단건 가격플랜 이름",
                        "planDescription": "단건 가격플랜 설명",
                        "type": "ONE_TIME",
                        "enabledFirstSalePrice": true,
                        "firstSalePrice": 1000,
                        "claimMethodType": "PRE",
                        "whenToClaimType": "FIRST_PAYMENT",
                        "billingDate": 0,
                        "maximumPurchaseQuantity": 0,
                        "membershipExpirationDate": 0,
                        "membershipExpirationDateType": null,
                        "setupOption": {
                          "id": 1,
                          "name": "가입비",
                          "type": "INITIALLY",
                          "price": 500,
                          "claimMethodType": "PRE"
                        },
                        "options": [],
                        "volumes": [],
                        "additionalBilling": null,
                        "recurring": null,
                        "createdAt": "9999-01-01T00:00:00",
                        "modifiedAt": "9999-01-01T00:00:00",
                        "plan": {
                          "name": "단건 가격플랜 이름",
                          "description": "단건 가격플랜 설명",
                          "detailDescription": "단건 가격플랜 상세설명",
                          "isHiddenFromShop": false,
                          "adminName": "admin"
                        },
                        "firstSale": {
                          "enabled": true,
                          "price": 1000
                        },
                        "claim": {
                          "methodType": "PRE",
                          "whenToClaimType": "FIRST_PAYMENT",
                          "billingDate": 0,
                          "provideStartDay": 0
                        },
                        "basicServing": 0,
                        "bundlePrices": [],
                        "onetimeBundlePrice": 0,
                        "order": 0
                      },
                      {
                        "id": 1,
                        "code": "price_AbCdEfGhI",
                        "price": 8900,
                        "unit": "회",
                        "planName": "구독 가격플랜",
                        "planDescription": "구독 가격플랜 설명",
                        "type": "FLAT",
                        "enabledFirstSalePrice": true,
                        "firstSalePrice": 1000,
                        "claimMethodType": "PRE",
                        "whenToClaimType": "FIRST_PAYMENT",
                        "billingDate": 0,
                        "maximumPurchaseQuantity": 0,
                        "membershipExpirationDate": 0,
                        "membershipExpirationDateType": null,
                        "setupOption": {
                          "id": 1,
                          "name": "가입비",
                          "type": "INITIALLY",
                          "price": 0,
                          "claimMethodType": "PRE"
                        },
                        "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": "구독 가격플랜",
                          "description": "구독 가격플랜 설명",
                          "detailDescription": "구독 가격플랜 상세설명",
                          "isHiddenFromShop": false,
                          "adminName": "admin"
                        },
                        "firstSale": {
                          "enabled": true,
                          "price": 1000
                        },
                        "claim": {
                          "methodType": "PRE",
                          "whenToClaimType": "FIRST_PAYMENT",
                          "billingDate": 0,
                          "provideStartDay": 0
                        },
                        "basicServing": 0,
                        "bundlePrices": [],
                        "onetimeBundlePrice": 0,
                        "order": 0
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          },
          "404": {
            "description": "상품을 찾지 못 함",
            "content": {
              "*/*": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PriceV1DTO"
                  }
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "2scmjn8mmxh21"
        }
      },
      "post": {
        "tags": [
          "상품 API"
        ],
        "summary": "가격플랜 생성",
        "description": "가격플랜을 생성할 때 호출합니다.",
        "operationId": "v1_createProductPrice",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "상품 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PriceCreateDTO"
              },
              "examples": {
                "단건 가격플랜": {
                  "value": {
                    "price": 10000,
                    "unit": "회",
                    "plan": {
                      "name": "단건 가격플랜 이름",
                      "description": "단건 가격플랜 설명",
                      "detailDescription": "단건 가격플랜 상세설명",
                      "isHiddenFromShop": false,
                      "adminName": "admin"
                    },
                    "type": "ONE_TIME",
                    "firstSale": {
                      "enabled": true,
                      "price": 1000
                    },
                    "claim": {
                      "methodType": "PRE",
                      "whenToClaimType": "FIRST_PAYMENT",
                      "billingDate": 0,
                      "provideStartDay": 0
                    },
                    "maximumPurchaseQuantity": 0,
                    "expiryRecurringCount": 0,
                    "setupOption": {
                      "name": "가입비",
                      "type": "INITIALLY",
                      "price": 500,
                      "claimMethodType": "PRE"
                    },
                    "isRepresentative": false
                  }
                },
                "구독 가격플랜": {
                  "value": {
                    "price": 8900,
                    "unit": "회",
                    "plan": {
                      "name": "구독 가격플랜",
                      "description": "구독 가격플랜 설명",
                      "detailDescription": "구독 가격플랜 상세설명",
                      "isHiddenFromShop": false,
                      "adminName": "admin"
                    },
                    "type": "FLAT",
                    "firstSale": {
                      "enabled": true,
                      "price": 1000
                    },
                    "claim": {
                      "methodType": "PRE",
                      "whenToClaimType": "FIRST_PAYMENT",
                      "billingDate": 0,
                      "provideStartDay": 0
                    },
                    "maximumPurchaseQuantity": 0,
                    "expiryRecurringCount": 0,
                    "setupOption": {
                      "name": "가입비",
                      "type": "INITIALLY",
                      "price": 0,
                      "claimMethodType": "PRE"
                    },
                    "recurring": {
                      "intervalCount": 1,
                      "interval": "MONTH",
                      "aggregateUsageType": "SUM",
                      "usageType": "LICENSED"
                    },
                    "isRepresentative": false
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "정상적으로 생성됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/PriceV1DTO"
                },
                "examples": {
                  "단건 가격플랜": {
                    "value": {
                      "id": 1,
                      "code": "string",
                      "price": 0,
                      "unit": "string",
                      "planName": "string",
                      "planDescription": "string",
                      "type": "ONE_TIME",
                      "enabledFirstSalePrice": true,
                      "firstSalePrice": 0,
                      "claimMethodType": "PRE",
                      "whenToClaimType": "FIRST_PAYMENT",
                      "billingDate": 0,
                      "maximumPurchaseQuantity": 0,
                      "membershipExpirationDate": 0,
                      "membershipExpirationDateType": "DAY",
                      "setupOption": {
                        "id": 1,
                        "name": "string",
                        "type": "INITIALLY",
                        "price": 0,
                        "claimMethodType": "PRE"
                      },
                      "options": [
                        {
                          "id": 1,
                          "name": "string",
                          "productCode": "string",
                          "type": "INITIALLY",
                          "price": 0,
                          "priceCode": "string",
                          "priceName": "string",
                          "productType": "BOX",
                          "recurringDTO": {
                            "id": 1,
                            "intervalCount": 0,
                            "aggregateUsageType": "SUM",
                            "interval": "DAY",
                            "usageType": "LICENSED"
                          }
                        }
                      ],
                      "volumes": [
                        {
                          "id": 1,
                          "min": 0,
                          "max": 0,
                          "price": 0
                        }
                      ],
                      "additionalBilling": {
                        "id": 1,
                        "type": "USAGE_BASED_WITH_RANGE",
                        "ranges": [
                          {
                            "id": 1,
                            "until": 0,
                            "price": 0
                          }
                        ]
                      },
                      "recurring": {
                        "id": 1,
                        "intervalCount": 0,
                        "aggregateUsageType": "SUM",
                        "interval": "DAY",
                        "usageType": "LICENSED"
                      },
                      "createdAt": "9999-01-01T00:00:00",
                      "modifiedAt": "9999-01-01T00:00:00",
                      "plan": {
                        "name": "string",
                        "description": "string",
                        "detailDescription": "string",
                        "isHiddenFromShop": true,
                        "adminName": "string"
                      },
                      "firstSale": {
                        "enabled": true,
                        "price": 0
                      },
                      "claim": {
                        "methodType": "PRE",
                        "whenToClaimType": "FIRST_PAYMENT",
                        "billingDate": 0,
                        "provideStartDay": 0
                      },
                      "basicServing": 0,
                      "bundlePrices": [
                        {
                          "product": {
                            "id": 1,
                            "code": "string",
                            "type": "BOX",
                            "status": "SALE",
                            "name": "string",
                            "subTitle": "string",
                            "featuredImageUrl": "string",
                            "imageUrls": [
                              "string"
                            ],
                            "description": "string",
                            "summary": "string",
                            "reasonOfReject": "string",
                            "sku": "string",
                            "quantity": 0,
                            "combinedProducts": [
                              {
                                "code": "string",
                                "type": "BOX",
                                "status": "SALE",
                                "name": "string",
                                "description": "string",
                                "options": [
                                  {
                                    "id": 1,
                                    "name": "string",
                                    "options": [
                                      {
                                        "id": 1,
                                        "name": "string",
                                        "quantity": 0,
                                        "price": 0,
                                        "parent": 0
                                      }
                                    ],
                                    "depth": 0
                                  }
                                ],
                                "prices": [
                                  {}
                                ],
                                "createdAt": "9999-01-01T00:00:00",
                                "modifiedAt": "9999-01-01T00:00:00"
                              }
                            ],
                            "optionGroups": [
                              {
                                "id": 1,
                                "name": "string",
                                "options": [
                                  {
                                    "id": 1,
                                    "name": "string",
                                    "quantity": 0,
                                    "price": 0,
                                    "parent": 0
                                  }
                                ],
                                "depth": 0
                              }
                            ],
                            "useCombination": true,
                            "optionCombinations": [
                              {
                                "id": [
                                  1
                                ],
                                "quantity": 0,
                                "price": 0,
                                "status": "SALE"
                              }
                            ],
                            "prices": [
                              {}
                            ],
                            "createdAt": "9999-01-01T00:00:00",
                            "modifiedAt": "9999-01-01T00:00:00",
                            "enabledDemo": true,
                            "demoPeriod": 0,
                            "demoPeriodUnit": "DAY",
                            "categories": [
                              {
                                "categoryId": 0,
                                "name": "string"
                              }
                            ],
                            "vendorUuid": "206992bb-6462-4b4f-9847-cf2f40d55b48",
                            "productOrder": 0,
                            "isOnetimePurchasable": true,
                            "eventBadge": [
                              {
                                "event": "string",
                                "startDateTime": "9999-01-01T00:00:00",
                                "endDateTime": "9999-01-01T00:00:00"
                              }
                            ],
                            "notice": "string",
                            "useWidget": {
                              "useDemo": true,
                              "useEventBadge": true,
                              "useOnetimePurchasable": true,
                              "useNotice": true
                            },
                            "groupId": 0,
                            "countrySetting": {
                              "id": 1,
                              "countryCode": "string",
                              "timezoneName": "string",
                              "currencyCode": "string",
                              "isDefault": true,
                              "taxRate": 0
                            }
                          },
                          "price": {}
                        }
                      ],
                      "onetimeBundlePrice": 0,
                      "order": 0
                    }
                  },
                  "구독 가격플랜": {
                    "value": {
                      "id": 1,
                      "code": "price_AbCdEfGhI",
                      "price": 8900,
                      "unit": "회",
                      "planName": "구독 가격플랜",
                      "planDescription": "구독 가격플랜 설명",
                      "type": "FLAT",
                      "enabledFirstSalePrice": true,
                      "firstSalePrice": 1000,
                      "claimMethodType": "PRE",
                      "whenToClaimType": "FIRST_PAYMENT",
                      "billingDate": 0,
                      "maximumPurchaseQuantity": 0,
                      "membershipExpirationDate": 0,
                      "membershipExpirationDateType": null,
                      "setupOption": {
                        "id": 1,
                        "name": "가입비",
                        "type": "INITIALLY",
                        "price": 0,
                        "claimMethodType": "PRE"
                      },
                      "options": [],
                      "volumes": [],
                      "additionalBilling": null,
                      "recurring": {
                        "id": 1,
                        "intervalCount": 1,
                        "aggregateUsageType": "SUM",
                        "interval": "MONTH",
                        "usageType": "LICENSED"
                      },
                      "createdAt": "9999-01-01T00:00:00.000000",
                      "modifiedAt": "9999-01-01T00:00:00.000000",
                      "plan": {
                        "name": "구독 가격플랜",
                        "description": "구독 가격플랜 설명",
                        "detailDescription": "구독 가격플랜 상세설명",
                        "isHiddenFromShop": false,
                        "adminName": "admin"
                      },
                      "firstSale": {
                        "enabled": true,
                        "price": 1000
                      },
                      "claim": {
                        "methodType": "PRE",
                        "whenToClaimType": "FIRST_PAYMENT",
                        "billingDate": 0,
                        "provideStartDay": 0
                      },
                      "basicServing": 0,
                      "bundlePrices": [],
                      "onetimeBundlePrice": 0,
                      "order": 0
                    }
                  }
                }
              }
            }
          },
          "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/PriceV1DTO"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "qwwy8n7l0sc4q"
        }
      }
    },
    "/api/v1/products/{id}/prices/{priceId}": {
      "get": {
        "tags": [
          "상품 API"
        ],
        "summary": "가격플랜 상세 조회",
        "description": "가격플랜의 상세 정보를 반환합니다.",
        "operationId": "v1_getProductPrice",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "상품 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "priceId",
            "in": "path",
            "description": "가격 플랜 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 조회됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/PriceV1DTO"
                },
                "examples": {
                  "단건 가격플랜": {
                    "value": {
                      "id": 1,
                      "code": "price_AbCdEfGhI",
                      "price": 10000,
                      "unit": "회",
                      "planName": "단건 가격플랜 이름",
                      "planDescription": "단건 가격플랜 설명",
                      "type": "ONE_TIME",
                      "enabledFirstSalePrice": true,
                      "firstSalePrice": 1000,
                      "claimMethodType": "PRE",
                      "whenToClaimType": "FIRST_PAYMENT",
                      "billingDate": 0,
                      "maximumPurchaseQuantity": 0,
                      "membershipExpirationDate": 0,
                      "membershipExpirationDateType": null,
                      "setupOption": {
                        "id": 951,
                        "name": "가입비",
                        "type": "INITIALLY",
                        "price": 500,
                        "claimMethodType": "PRE"
                      },
                      "options": [],
                      "volumes": [],
                      "additionalBilling": null,
                      "recurring": null,
                      "createdAt": "9999-01-01T00:00:00",
                      "modifiedAt": "9999-01-01T00:00:00",
                      "plan": {
                        "name": "단건 가격플랜 이름",
                        "description": "단건 가격플랜 설명",
                        "detailDescription": "단건 가격플랜 상세설명",
                        "isHiddenFromShop": false,
                        "adminName": "admin"
                      },
                      "firstSale": {
                        "enabled": true,
                        "price": 1000
                      },
                      "claim": {
                        "methodType": "PRE",
                        "whenToClaimType": "FIRST_PAYMENT",
                        "billingDate": 0,
                        "provideStartDay": 0
                      },
                      "basicServing": 0,
                      "bundlePrices": [],
                      "onetimeBundlePrice": 0,
                      "order": 0
                    }
                  },
                  "구독 가격플랜": {
                    "value": {
                      "id": 1,
                      "code": "price_AbCdEfGhI",
                      "price": 8900,
                      "unit": "회",
                      "planName": "구독 가격플랜",
                      "planDescription": "구독 가격플랜 설명",
                      "type": "FLAT",
                      "enabledFirstSalePrice": true,
                      "firstSalePrice": 1000,
                      "claimMethodType": "PRE",
                      "whenToClaimType": "FIRST_PAYMENT",
                      "billingDate": 0,
                      "maximumPurchaseQuantity": 0,
                      "membershipExpirationDate": 0,
                      "membershipExpirationDateType": null,
                      "setupOption": {
                        "id": 1,
                        "name": "가입비",
                        "type": "INITIALLY",
                        "price": 0,
                        "claimMethodType": "PRE"
                      },
                      "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": "구독 가격플랜",
                        "description": "구독 가격플랜 설명",
                        "detailDescription": "구독 가격플랜 상세설명",
                        "isHiddenFromShop": false,
                        "adminName": "admin"
                      },
                      "firstSale": {
                        "enabled": true,
                        "price": 1000
                      },
                      "claim": {
                        "methodType": "PRE",
                        "whenToClaimType": "FIRST_PAYMENT",
                        "billingDate": 0,
                        "provideStartDay": 0
                      },
                      "basicServing": 0,
                      "bundlePrices": [],
                      "onetimeBundlePrice": 0,
                      "order": 0
                    }
                  }
                }
              }
            }
          },
          "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/PriceV1DTO"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "jjwg13cb8q4el"
        }
      },
      "put": {
        "tags": [
          "상품 API"
        ],
        "summary": "가격플랜 수정",
        "description": "가격플랜을 수정할 때 호출합니다. 파라미터로 전달된 정보로 가격플랜 정보가 치환됩니다. 연관 주문이 존재한다면 이름과 설명만 수정됩니다.",
        "operationId": "v1_updateProductPrice",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "상품 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "priceId",
            "in": "path",
            "description": "가격플랜 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PriceUpdateDTO"
              },
              "examples": {
                "단건 가격플랜": {
                  "value": {
                    "price": 6000,
                    "unit": "개",
                    "firstSale": {
                      "enabled": true,
                      "price": 1000
                    },
                    "claim": {
                      "methodType": "PRE",
                      "whenToClaimType": "FIRST_PAYMENT",
                      "billingDate": 0,
                      "provideStartDay": 0
                    },
                    "maximumPurchaseQuantity": 0,
                    "expiryPaymentCount": 0,
                    "setupOption": {
                      "id": 1,
                      "name": "가입비",
                      "type": "INITIALLY",
                      "price": 2000
                    },
                    "isRepresentative": true,
                    "type": "ONE_TIME",
                    "plan": {
                      "name": "단건 가격플랜 이름",
                      "description": "단건 가격플랜 설명",
                      "detailDescription": "단건 가격플랜 상세설명",
                      "isHiddenFromShop": false,
                      "adminName": "admin"
                    }
                  }
                },
                "구독 가격플랜": {
                  "value": {
                    "price": 5000,
                    "unit": "회차",
                    "firstSale": {
                      "enabled": true,
                      "price": 200
                    },
                    "claim": {
                      "methodType": "PRE",
                      "whenToClaimType": "FIRST_PAYMENT",
                      "billingDate": 0,
                      "provideStartDay": 0
                    },
                    "maximumPurchaseQuantity": 0,
                    "setupOption": {
                      "id": 1,
                      "name": "가입비",
                      "type": "INITIALLY",
                      "price": 0
                    },
                    "recurring": {
                      "id": 1,
                      "intervalCount": 7,
                      "interval": "DAY",
                      "aggregateUsageType": "SUM",
                      "usageType": "LICENSED"
                    },
                    "isRepresentative": true,
                    "type": "FLAT",
                    "plan": {
                      "name": "구독 가격플랜",
                      "description": "구독 가격플랜 설명",
                      "detailDescription": "구독 가격플랜 상세설명",
                      "isHiddenFromShop": false,
                      "adminName": "admin"
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "정상적으로 수정됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/PriceV1DTO"
                },
                "examples": {
                  "단건 가격플랜": {
                    "value": {
                      "id": 1,
                      "code": "price_AbCdEfGhI",
                      "price": 6000,
                      "unit": "string",
                      "planName": "string",
                      "planDescription": "string",
                      "type": "ONE_TIME",
                      "enabledFirstSalePrice": true,
                      "firstSalePrice": 1000,
                      "claimMethodType": "PRE",
                      "whenToClaimType": "FIRST_PAYMENT",
                      "billingDate": 0,
                      "maximumPurchaseQuantity": 0,
                      "membershipExpirationDate": 0,
                      "membershipExpirationDateType": null,
                      "setupOption": {
                        "id": 1,
                        "name": "가입비",
                        "type": "INITIALLY",
                        "price": 2000,
                        "claimMethodType": "PRE"
                      },
                      "options": [],
                      "volumes": [],
                      "additionalBilling": null,
                      "recurring": null,
                      "createdAt": "9999-01-01T00:00:00",
                      "modifiedAt": "9999-01-01T00:00:00.000000",
                      "plan": {
                        "name": "string",
                        "description": "string",
                        "detailDescription": "string",
                        "isHiddenFromShop": false,
                        "adminName": "string"
                      },
                      "firstSale": {
                        "enabled": true,
                        "price": 1000
                      },
                      "claim": {
                        "methodType": "PRE",
                        "whenToClaimType": "FIRST_PAYMENT",
                        "billingDate": 0,
                        "provideStartDay": 0
                      },
                      "basicServing": 0,
                      "bundlePrices": [],
                      "onetimeBundlePrice": 0,
                      "order": 4
                    }
                  },
                  "구독 가격플랜": {
                    "value": {
                      "id": 1,
                      "code": "price_AbCdEfGhI",
                      "price": 5000,
                      "unit": "회차",
                      "planName": "구독 가격플랜",
                      "planDescription": "구독 가격플랜 설명",
                      "type": "FLAT",
                      "enabledFirstSalePrice": true,
                      "firstSalePrice": 200,
                      "claimMethodType": "PRE",
                      "whenToClaimType": "FIRST_PAYMENT",
                      "billingDate": 0,
                      "maximumPurchaseQuantity": 0,
                      "membershipExpirationDate": 0,
                      "membershipExpirationDateType": null,
                      "setupOption": {
                        "id": 1,
                        "name": "string",
                        "type": "INITIALLY",
                        "price": 0,
                        "claimMethodType": "PRE"
                      },
                      "options": [],
                      "volumes": [],
                      "additionalBilling": null,
                      "recurring": {
                        "id": 1,
                        "intervalCount": 7,
                        "aggregateUsageType": "SUM",
                        "interval": "DAY",
                        "usageType": "LICENSED"
                      },
                      "createdAt": "9999-01-01T00:00:00",
                      "modifiedAt": "9999-01-01T00:00:00.000000",
                      "plan": {
                        "name": "구독 가격플랜",
                        "description": "구독 가격플랜 설명",
                        "detailDescription": "구독 가격플랜 상세설명",
                        "isHiddenFromShop": false,
                        "adminName": "admin"
                      },
                      "firstSale": {
                        "enabled": true,
                        "price": 200
                      },
                      "claim": {
                        "methodType": "PRE",
                        "whenToClaimType": "FIRST_PAYMENT",
                        "billingDate": 0,
                        "provideStartDay": 0
                      },
                      "basicServing": 0,
                      "bundlePrices": [],
                      "onetimeBundlePrice": 0,
                      "order": 5
                    }
                  }
                }
              }
            }
          },
          "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/PriceV1DTO"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "a1lk0z55qet7y"
        }
      },
      "delete": {
        "tags": [
          "상품 API"
        ],
        "summary": "가격 삭제",
        "description": "가격을 삭제할 때 호출합니다.",
        "operationId": "v1_deleteProductPrice",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "상품 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "priceId",
            "in": "path",
            "description": "가격플랜 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 수정됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductApiresponse"
                },
                "examples": {
                  "응답 예시": {
                    "value": {
                      "body": null,
                      "message": "상품 모델을 성공적으로 삭제 했습니다"
                    }
                  }
                }
              }
            }
          },
          "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/ApiResponseUnit"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "i2ll47ew0t6vn"
        }
      }
    },
    "/api/v1/products/{id}/status": {
      "patch": {
        "tags": [
          "상품 API"
        ],
        "summary": "상품 게시 상태 변경",
        "description": "상품 게시 상태를 변경할 때 호출합니다. SALE, OUT_OF_STOCK, UNSOLD 사용 가능",
        "operationId": "v1_updateProductStatus_1",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "상품 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "변경할 상태",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "SALE",
                "OUT_OF_STOCK",
                "UNSOLD",
                "WAITING_APPROVAL",
                "REJECTED"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 변경됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductApiresponse"
                },
                "examples": {
                  "응답 예시": {
                    "value": {
                      "body": null,
                      "message": "상품 상태 변경 성공"
                    }
                  }
                }
              }
            }
          },
          "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/ApiResponseUnit"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "x1b3yitqwq6c5"
        }
      }
    },
    "/api/v1/orders": {
      "get": {
        "tags": [
          "주문 API"
        ],
        "summary": "주문 목록 조회",
        "description": "주문 목록을 반환합니다.",
        "operationId": "v1_getOrderList",
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "description": "조회 시작 시점",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "조회 끝 시점",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "페이지 번호(기본값: 0)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "페이지 크기(기본값: 20)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sortDir",
            "in": "query",
            "description": "정렬 방향(오름차순: ASC, 내림차순: DESC(기본값))",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "정렬 기준값 - 기본값: 생성 시점",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "keyword",
            "in": "query",
            "description": "검색 키워드",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "검색 대상(orderCode, productName, customerName, phone, email)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "지정한 상태만 목록을 반환하게 합니다.",
            "required": false,
            "schema": {
              "type": "string",
              "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"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 조회됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/OrderListPageV1DTO"
                },
                "examples": {
                  "응답 예시": {
                    "value": {
                      "content": [
                        {
                          "id": 1,
                          "code": "order_AbCdEfGhI",
                          "customerName": "테스트 고객",
                          "type": "RECURRING_INITIAL",
                          "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",
                              "canceledDateTime": null,
                              "orderItemCode": "order_item_AbCdEfGhI",
                              "modifiedAt": "9999-01-01T00:00:00",
                              "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
                            }
                          ],
                          "price": 0,
                          "paymentDate": null,
                          "paymentMethod": null,
                          "purchaseDeadline": "9999-01-01T00:00:00",
                          "createdAt": "9999-01-01T00:00:00",
                          "modifiedAt": "9999-01-01T00:00:00",
                          "claimMethodType": "PRE",
                          "paidAmount": 0,
                          "returnedAmount": 0,
                          "leftAmount": 0,
                          "exchangeRate": 1,
                          "region": {
                            "code": "KR",
                            "currency": "KRW",
                            "country": "South Korea",
                            "countryCode": "KR",
                            "state": null,
                            "language": "ko"
                          },
                          "currency": "KRW",
                          "baseCurrency": "KRW"
                        }
                      ],
                      "pageable": {
                        "page": 0,
                        "size": 20,
                        "sortDir": "DESC",
                        "sort": "createdAt",
                        "pageSize": 20,
                        "pageNumber": 0,
                        "offset": 0,
                        "paged": true,
                        "unpaged": false
                      },
                      "last": false,
                      "totalElements": 1,
                      "totalPages": 10,
                      "sort": {
                        "unsorted": false,
                        "sorted": true,
                        "empty": false
                      },
                      "number": 0,
                      "first": true,
                      "numberOfElements": 20,
                      "size": 20,
                      "empty": false
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "7ggihe0kn9h4f"
        }
      },
      "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"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "mopoq2ivh7trq"
        }
      }
    },
    "/api/v1/orders/{orderIdOrCode}": {
      "get": {
        "tags": [
          "주문 API"
        ],
        "summary": "주문 상세 조회",
        "description": "주문 상세정보를 반환합니다.",
        "operationId": "v1_getOrderDetail",
        "parameters": [
          {
            "name": "orderIdOrCode",
            "in": "path",
            "description": "주문 코드",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 조회됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/OrderV1DTO"
                },
                "examples": {
                  "응답 예시": {
                    "value": {
                      "id": 1,
                      "orderId": 1,
                      "orderCode": "order_AbCdEfGhI",
                      "type": "RECURRING_INITIAL",
                      "paidAmount": 0,
                      "leftAmount": 0,
                      "returnedAmount": 0,
                      "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",
                          "canceledDateTime": null,
                          "orderItemCode": "order_item_AbCdEfGhI",
                          "modifiedAt": "9999-01-01T00:00:00",
                          "orderedProductType": "SOFTWARE",
                          "orderedProductName": "Basic Product",
                          "orderedPlanName": "Basic Plan",
                          "discountName": null,
                          "relatedOrderItemId": null,
                          "priceSetupType": null,
                          "demoCycle": null,
                          "usedCount": null,
                          "usageFormula": null,
                          "deliveryCode": null,
                          "histories": null,
                          "unitChangeHistory": null,
                          "unitCount": null,
                          "minimumQuantity": 1,
                          "maximumQuantity": null,
                          "parentOrderItemCode": null
                        }
                      ],
                      "customer": {
                        "id": 1,
                        "uuid": "206992bb-6462-4b4f-9847-cf2f40d55b48",
                        "status": "NORMAL",
                        "name": "테스트 고객",
                        "email": "test@gmail.com",
                        "phone": "01012341234",
                        "shipping": null,
                        "username": null,
                        "code": "customer_AbCdEfGhI",
                        "marketingSms": false,
                        "marketingEmail": false,
                        "marketingKakao": false,
                        "attributes": {},
                        "createdAt": "9999-01-01T00:00:00"
                      },
                      "paymentDate": null,
                      "purchaseDeadline": "9999-01-01T00:00:00",
                      "shipping": null,
                      "createdAt": "9999-01-01T00:00:00",
                      "modifiedAt": "9999-01-01T00:00:00",
                      "payment": {
                        "paymentMethod": "CARD_BILL",
                        "paymentDate": null,
                        "amount": 10000,
                        "discount": 0,
                        "paymentReturn": null,
                        "paymentReceiptUrl": null,
                        "paymentGateway": "UNKNOWN",
                        "cardNumber": null,
                        "vbankDTO": null,
                        "niceCmsDTO": null,
                        "customerDTO": {
                          "name": "테스트 고객",
                          "email": "test@gmail.com",
                          "phone": "01012341234"
                        },
                        "errorCode": null,
                        "errorMessage": null
                      },
                      "orderLogs": [],
                      "code": "order_AbCdEfGhI",
                      "subscriptions": [],
                      "parentSubscription": null,
                      "invoiceId": null,
                      "discountedAmount": 0,
                      "productName": "Basic Product (Basic Plan)",
                      "paymentDueDate": null,
                      "idKey": "17042685431546CQ4BVZw22hzN1jn",
                      "relatedOrders": [],
                      "calculateStartDate": null,
                      "calculateEndDate": null,
                      "childOrders": [],
                      "exchangeRate": 1,
                      "region": {
                        "code": "KR",
                        "currency": "KRW",
                        "country": "South Korea",
                        "countryCode": "KR",
                        "state": null,
                        "language": "ko"
                      },
                      "currency": "KRW",
                      "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/OrderV1DTO"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "9j1l5azkkdxcp"
        }
      }
    },
    "/api/v1/orders/{orderIdOrCode}/cancel": {
      "patch": {
        "tags": [
          "주문 API"
        ],
        "summary": "주문 취소",
        "description": "주문을 취소할 때 호출합니다. 결제가 완료된 주문건은 환불되며, 그렇지 않은 주문은 취소됩니다.",
        "operationId": "v1_cancelOrder",
        "parameters": [
          {
            "name": "orderIdOrCode",
            "in": "path",
            "description": "주문 번호",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReqV1"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "정상적으로 취소됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductApiresponse"
                }
              }
            }
          },
          "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/ApiResponseUnit"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "vvz292qgotdjy"
        }
      }
    },
    "/api/v1/orders/{idOrCode}/pay": {
      "get": {
        "tags": [
          "주문 API"
        ],
        "summary": "주문 결제링크 리다이렉트",
        "description": "직접 제어 하고 싶은 경우 응답에 포함된 Location 헤더를 확인하여 리다이렉트될 URI을 가져와 처리하시면 됩니다. 우측의 API 테스트 툴에서는 302 리다이렉트가 제대로 표현되지 않습니다.",
        "operationId": "v1_payOrder",
        "parameters": [
          {
            "name": "idOrCode",
            "in": "path",
            "description": "주문 번호 또는 코드(주문 번호는 deprecate 될 예정입니다)",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "successUrl",
            "in": "query",
            "description": "결제 성공시 리다이렉트 될 URL",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "errorUrl",
            "in": "query",
            "description": "결제 실패시 리다이렉트 될 URL",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cancelUrl",
            "in": "query",
            "description": "결제 취소시 리다이렉트 될 URL",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "302": {
            "description": "결제링크로 리다이렉트 됩니다.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/RedirectView"
                }
              }
            },
            "headers": {
              "header-0": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "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/RedirectView"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "chr8dssl5ajwt"
        }
      }
    },
    "/api/v1/delivery/orders/{orderIdOrCode}": {
      "get": {
        "tags": [
          "주문 API"
        ],
        "summary": "배송 정보 조회",
        "description": "주문의 배송 정보가 조회됩니다.",
        "operationId": "v1_findAllDeliveries",
        "parameters": [
          {
            "name": "orderIdOrCode",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DeliveryBunchSingleV1"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "7f8b09108201f"
        }
      }
    },
    "/api/v1/invoices": {
      "get": {
        "tags": [
          "청구서 API"
        ],
        "summary": "청구서 목록 조회",
        "description": "청구서 목록을 반환합니다.",
        "operationId": "v1_getInvoiceList",
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "description": "조회 시작 시점",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "조회 끝 시점",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "페이지 번호(기본값: 0)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "페이지 크기(기본값: 20)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sortDir",
            "in": "query",
            "description": "정렬 방향(오름차순: ASC, 내림차순: DESC(기본값))",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "정렬 기준값 - 기본값: 생성 시점",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "지정한 상태만 목록을 반환하게 합니다.",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "TEMPORARY",
                "RESERVATION",
                "SENT",
                "PAID",
                "OVER_DUE",
                "SEND_FAIL"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 조회됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceListResponseDTO"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "bml65rreylfwc"
        }
      },
      "post": {
        "tags": [
          "청구서 API"
        ],
        "summary": "청구서 생성",
        "description": "청구서를 생성할 때 호출합니다.",
        "operationId": "v1_createInvoice",
        "parameters": [
          {
            "name": "temporary",
            "in": "query",
            "description": "임시 저장 여부. 임시 저장은 청구서가 발송되지 않습니다.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceCreateDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "정상적으로 생성됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceResponseDTO"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "0nrinnszkw9at"
        }
      }
    },
    "/api/v1/invoices/{id}": {
      "get": {
        "tags": [
          "청구서 API"
        ],
        "summary": "청구서 상세 조회",
        "description": "청구서의 상세정보를 반환합니다.",
        "operationId": "v1_getInvoiceDetail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "청구서 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 조회됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceDTO"
                }
              }
            }
          },
          "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/InvoiceV1DTO"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "q1clx2dui0d8b"
        }
      },
      "put": {
        "tags": [
          "청구서 API"
        ],
        "summary": "청구서 수정",
        "description": "청구서를 수정할 때 호출합니다. 파라미터로 전달된 정보로 청구서가 치환됩니다.",
        "operationId": "v1_updateInvoice",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "청구서 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "temporary",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceUpdateDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "정상적으로 수정됨"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          },
          "404": {
            "description": "청구서를 찾지 못 함"
          }
        },
        "x-stoplight": {
          "id": "eo4ebtjq4y0dc"
        }
      },
      "delete": {
        "tags": [
          "청구서 API"
        ],
        "summary": "청구서 삭제",
        "description": "청구서를 삭제할 때 호출합니다.",
        "operationId": "v1_deleteInvoice",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "청구서 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 삭제됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductApiresponse"
                }
              }
            }
          },
          "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/ApiResponseUnit"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "gvb2db1qhkp12"
        }
      }
    },
    "/api/v1/subscriptions": {
      "get": {
        "tags": [
          "구독 API"
        ],
        "summary": "구독 목록 조회",
        "description": "구독 목록을 반환합니다.",
        "operationId": "v1_getSubscriptionList",
        "parameters": [
          {
            "name": "ids",
            "in": "query",
            "description": "구독 ID로 검색",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "statuses",
            "in": "query",
            "description": "구독 상태로 검색",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productName",
            "in": "query",
            "description": "구독 아이템의 상품명으로 검색",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "planName",
            "in": "query",
            "description": "구독 아이템의 가격 플랜명으로 검색",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "description": "구독의 고객 번호로 검색",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "customerUsername",
            "in": "query",
            "description": "구독의 고객 아이디로 검색",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerName",
            "in": "query",
            "description": "구독의 고객 이름으로 검색",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "email",
            "in": "query",
            "description": "구독의 고객 이메일로 검색",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phone",
            "in": "query",
            "description": "구독의 고객 전화번호로 검색",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "조회 시작 시점",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "조회 끝 시점",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "페이지 번호(기본값: 0)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "페이지 크기(기본값: 20)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sortDir",
            "in": "query",
            "description": "정렬 방향(오름차순: ASC, 내림차순: DESC(기본값))",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "정렬 기준값 - 기본값: 생성 시점",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 조회됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionListV1PageDTO"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "xl64x0x1q91u1"
        }
      }
    },
    "/api/v1/subscriptions/{id}": {
      "get": {
        "tags": [
          "구독 API"
        ],
        "summary": "구독 상세 조회",
        "description": "구독의 상세 정보를 반환합니다.",
        "operationId": "v1_getSubscriptionDetail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "구독 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 조회됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionV1DTO"
                }
              }
            }
          },
          "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/SubscriptionV1DTO"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "rid399o08zwtw"
        }
      }
    },
    "/api/v1/subscriptions/{subscriptionId}/items": {
      "put": {
        "tags": [
          "구독 API"
        ],
        "summary": "구독 항목 교체",
        "description": "구독 항목을 파라미터로 전달한 데이터로 교체합니다.",
        "operationId": "v1_replaceSubscriptionItems",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "구독 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "description": "교체할 구독 항목 정보",
                "items": {
                  "$ref": "#/components/schemas/SubscriptionItemReplaceDTO"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "정상적으로 교체됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionV1DTO"
                }
              }
            }
          },
          "400": {
            "description": "구독 항목 교체 정보 검증 실패"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          },
          "404": {
            "description": "구독을 찾지 못 함",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionV1DTO"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "50hcadi89cfi5"
        }
      },
      "post": {
        "tags": [
          "구독 API"
        ],
        "summary": "구독 항목 추가",
        "description": "구독 항목을 추가할 때 호출합니다.",
        "operationId": "v1_addSubscriptionItem",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "구독 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionItemCreateDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "정상적으로 추가됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionV1DTO"
                }
              }
            }
          },
          "400": {
            "description": "구독 항목 생성 정보 검증 실패"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          },
          "404": {
            "description": "구독 또는 구독 항목을 찾지 못 함",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionV1DTO"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "3rj4vs4tbb4lp"
        }
      }
    },
    "/api/v1/subscriptions/{subscriptionId}/items/{itemId}": {
      "put": {
        "tags": [
          "구독 API"
        ],
        "summary": "구독 항목 수정",
        "description": "특정 구독 항목을 수정할 때 사용합니다.",
        "operationId": "v1_updateSubscriptionItem",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "구독 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "description": "구독 항목 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionItemChangeDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "정상적으로 수정됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionV1DTO"
                }
              }
            }
          },
          "400": {
            "description": "구독 항목 수정 정보 검증 실패"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          },
          "404": {
            "description": "구독 또는 구독 항목을 찾지 못 함",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionV1DTO"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "amsu0gh78f6rl"
        }
      },
      "delete": {
        "tags": [
          "구독 API"
        ],
        "summary": "구독 항목 삭제",
        "description": "구독 항목을 삭제할 때 호출합니다.",
        "operationId": "v1_removeSubscriptionItem",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "구독 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "description": "구독 항목 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 삭제됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionV1DTO"
                }
              }
            }
          },
          "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/SubscriptionV1DTO"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "1zkzv8x600wqw"
        }
      }
    },
    "/api/v1/subscriptions/{subscriptionId}/payment-method": {
      "put": {
        "tags": [
          "구독 API"
        ],
        "summary": "결제수단 변경",
        "description": "구독의 결제수단을 변경할 때 호출합니다. 변경을 위한 주문이 생성됩니다.",
        "operationId": "v1_changePaymentMethod",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "구독 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionChangePaymentMethodDTO"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "정상적으로 주문이 생성됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductOrderdto"
                }
              }
            }
          },
          "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/OrderV1DTO"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "zvbg7bxjuhifz"
        }
      }
    },
    "/api/v1/subscriptions/{subscriptionId}/interval": {
      "put": {
        "tags": [
          "구독 API"
        ],
        "summary": "구독 주기 변경",
        "description": "구독 주기를 변경합니다.",
        "operationId": "v1_changeSubscriptionRecurring",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "구독 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionChangeRecurringDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "정상적으로 변경됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductApiresponse"
                }
              }
            }
          },
          "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/ApiResponseUnit"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "klfut9sx56rqw"
        }
      }
    },
    "/api/v1/subscriptions/{subscriptionId}/pause": {
      "post": {
        "tags": [
          "구독 API"
        ],
        "summary": "구독 일시 정지",
        "description": "구독을 일시정지 합니다. 활성화 상태의 구독만 일시정지 할 수 있습니다.",
        "operationId": "v1_pauseSubscription",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "구독 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionPauseDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "정상적으로 처리됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductApiresponse"
                }
              }
            }
          },
          "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/ApiResponseUnit"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "qgfux29t08y1z"
        }
      }
    },
    "/api/v1/subscriptions/{subscriptionId}/change-pay-datetime": {
      "post": {
        "tags": [
          "구독 API"
        ],
        "summary": "결제일 변경",
        "description": "다음 결제일을 변경합니다.",
        "operationId": "v1_changePayDatetimeSubscription",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "구독 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionChangePayDatetimeDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "정상적으로 변경됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductApiresponse"
                }
              }
            }
          },
          "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/ApiResponseUnit"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "ct5ag3bzyksr0"
        }
      }
    },
    "/api/v1/subscriptions/{subscriptionId}/cancel": {
      "post": {
        "tags": [
          "구독 API"
        ],
        "summary": "구독 취소",
        "description": "구독을 취소합니다. 활성화, 일시정지, 결제실패 상태의 구독만 취소할 수 있습니다.",
        "operationId": "v1_cancelSubscription",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "구독 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionCancelDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "정상적으로 처리됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductApiresponse"
                }
              }
            }
          },
          "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/ApiResponseUnit"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "9xtembnv67dz9"
        }
      }
    },
    "/api/v1/subscriptions/{subscriptionId}/active": {
      "post": {
        "tags": [
          "구독 API"
        ],
        "summary": "구독 활성화",
        "description": "구독을 다시 활성화 시킵니다. 일시정지 및 취소 대기중 상태만 변경가능합니다.",
        "operationId": "v1_activeSubscription",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "구독 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "정상적으로 활성화됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductApiresponse"
                }
              }
            }
          },
          "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/ApiResponseUnit"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "f8t3a1nhyy1om"
        }
      }
    },
    "/api/v1/subscriptions/{id}/renew": {
      "post": {
        "tags": [
          "구독 API"
        ],
        "summary": "구독 갱신 결제",
        "description": "다음 결제일과 상관없이 현재 시점으로 구독을 갱신시킵니다. 결제가 진행되며, 구독 시작, 끝 시점이 갱신됩니다.",
        "operationId": "v1_renewSubscription",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "구독 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 갱신됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductApiresponse"
                }
              }
            }
          },
          "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/ApiResponseSubscriptionManualRenewResultDTO"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "cetduidoqmooy"
        },
        "x-internal": true
      }
    },
    "/api/v1/subscriptions/{subscriptionId}/items/{itemId}/options": {
      "get": {
        "tags": [
          "구독 API"
        ],
        "summary": "구독 항목에서 사용할 수 있는 옵션 가져오기",
        "description": "구독 항목에서 사용할 수 있는 옵션 목록을 반환합니다.",
        "operationId": "v1_getSubscriptionItemOptions",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "구독 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "description": "구독 항목 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 조회됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductOptionGroupDTO"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          },
          "404": {
            "description": "구독을 찾지 못 함",
            "content": {
              "*/*": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductOptionGroupV1DTO"
                  }
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "1rynb6kxsebam"
        }
      }
    },
    "/api/v1/usages": {
      "get": {
        "tags": [
          "사용량 API"
        ],
        "summary": "사용량/계정 조회 API",
        "description": "사용량 또는 계정을 조회할 때 사용합니다.",
        "operationId": "v1_getRecordQuotas",
        "parameters": [
          {
            "name": "subscriptionItemId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "사용량/계정 기록이 정상적으로 조회됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/RecordForV1"
                }
              }
            }
          },
          "400": {
            "description": "사용량/계정 기록을 조회할 수 없는 상황",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/Usage_recordErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/Usage_recordErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "q58gmj40ulr22"
        }
      },
      "post": {
        "tags": [
          "사용량 API"
        ],
        "summary": "사용량/계정 등록 API",
        "description": "사용량 또는 계정을 등록할 때 사용합니다.",
        "operationId": "v1_createRecordQuota",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Usage_recordReq"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "사용량/계정 기록이 정상적으로 등록됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/Res"
                }
              }
            }
          },
          "400": {
            "description": "사용량/계정 기록을 등록할 수 없는 상황",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/Usage_recordErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/Usage_recordErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "usn75ct3klqvb"
        }
      }
    },
    "/api/v1/subscriptions/{subscriptionId}/calculate": {
      "get": {
        "tags": [
          "사용량 API"
        ],
        "summary": "사용량 정산",
        "description": "구독 중간에 사용량과 예상 결제 금액을 확인할 때 사용합니다.",
        "operationId": "v1_calculateSubscription",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "구독 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상적으로 조회됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionCalculatedDTO"
                }
              }
            }
          },
          "400": {
            "description": "사용량을 사용할 수 있는 가격 플랜임"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProductErrorresponse"
                }
              }
            }
          },
          "404": {
            "description": "구독을 찾지 못 함",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionCalculatedV1DTO"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "3cujnnbmdysz8"
        }
      }
    },
    "/api/v1/cover/customer": {
      "post": {
        "tags": [
          "커버 API"
        ],
        "summary": "고객 정보 등록 API",
        "description": "고객 정보를 스텝커버에 등록할 때 사용합니다.",
        "operationId": "v1_createCustomer_1",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomerRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "고객 정보가 정상적으로 등록됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CreateCustomerResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "ofidcynlumo5s"
        }
      }
    },
    "/api/v1/cover/product": {
      "post": {
        "tags": [
          "커버 API"
        ],
        "summary": "상품 정보 등록 API",
        "description": "상품 정보를 스텝커버에 등록할 때 사용합니다.",
        "operationId": "v1_createCustomer_2",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProductRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "상품 정보가 정상적으로 등록됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CreateProductResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "ex80tbh82es6t"
        }
      }
    },
    "/api/v1/cover/price": {
      "post": {
        "tags": [
          "커버 API"
        ],
        "summary": "가격 플랜 정보 등록 API",
        "description": "가격 플랜 정보를 스텝커버에 등록할 때 사용합니다.",
        "operationId": "v1_createPrice",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePriceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "가격 플랜 정보가 정상적으로 등록됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CreatePriceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "1plpx97iq75sp"
        }
      }
    },
    "/api/v1/cover/order": {
      "post": {
        "tags": [
          "커버 API"
        ],
        "summary": "주문 정보 등록 API",
        "description": "주문 정보를 스텝커버에 등록할 때 사용합니다.",
        "operationId": "v1_createOrder_2",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "주문 정보가 정상적으로 등록됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CreateOrderResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "8x7b5pwxu7yyp"
        }
      }
    },
    "/api/v1/cover/order/{token}/idKey": {
      "get": {
        "tags": [
          "커버 API"
        ],
        "summary": "idKey 알아내기 API",
        "description": "특정 토큰에서 결제된 idKey를 알아냅니다. 결제수단을 변경할 때 사용합니다.",
        "operationId": "v1_getIdKey",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "description": "복구 토큰",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "정상 동작",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/GetOrderIdKeyResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "qii1pxt90t6h7"
        }
      }
    },
    "/api/v1/cover/order/success/{orderId}": {
      "patch": {
        "tags": [
          "커버 API"
        ],
        "summary": "주문 성공 API",
        "description": "주문을 성공 상태로 바꿉니다. 결제 복구 시나리오가 멈춥니다.",
        "operationId": "v1_changeToSuccess",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "description": "주문 ID",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "notify",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "주문 상태 변경됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ChangeOrderToSuccessResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "rduy90zkb6qnc"
        }
      }
    },
    "/api/v1/cover/order/cancel/{orderId}": {
      "patch": {
        "tags": [
          "커버 API"
        ],
        "summary": "주문 취소 API",
        "description": "주문을 취소 상태로 바꿉니다. 결제 복구 시나리오가 멈춥니다.",
        "operationId": "v1_cancelOrder_2",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "description": "주문 ID",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "주문 상태 변경됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CancelOrderResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "9yjpn6ywm46e9"
        }
      }
    },
    "/api/v1/cover/subscription": {
      "post": {
        "tags": [
          "커버 API"
        ],
        "summary": "구독 정보 등록 API",
        "description": "구독 정보를 스텝커버에 등록할 때 사용합니다.",
        "operationId": "v1_createSubscription",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSubscriptionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "구독 정보가 정상적으로 등록됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CreateSubscriptionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "4t9lalaqwxsr8"
        }
      }
    },
    "/api/v1/cover/subscription/{subscriptionId}/active": {
      "put": {
        "tags": [
          "커버 API"
        ],
        "summary": "구독 활성 API",
        "description": "구독이 활성화 되었을 때 사용합니다. 진행중이던 시나리오가 있다면 멈춥니다.",
        "operationId": "v1_activeSubscription_2",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "구독 ID",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "구독 정보가 정상적으로 변경됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/DefaultResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "8fyh8k3ow9gmf"
        }
      }
    },
    "/api/v1/cover/subscription/{subscriptionId}/cancel": {
      "put": {
        "tags": [
          "커버 API"
        ],
        "summary": "구독 취소 API",
        "description": "구독이 취소되었을 때 사용합니다. 진행중이던 시나리오가 있다면 멈춥니다.",
        "operationId": "v1_cancelSubscription_2",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "구독 ID",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "구독 정보가 정상적으로 취소됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/DefaultResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "rvvwu6ysr2rte"
        }
      }
    },
    "/api/v1/cover/recovery": {
      "post": {
        "tags": [
          "커버 API"
        ],
        "summary": "복구 시작 API",
        "description": "결제 복구 시나리오를 실행합니다.",
        "operationId": "v1_startRecovery",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRecoveryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "결제 복구 시나리오가 시작됨",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CreateRecoveryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/CoverErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "m3w88x1ce3b5g"
        }
      }
    },
    "/api/v1/session/{customerId}": {
      "get": {
        "tags": [
          "인증 API"
        ],
        "summary": "세션 생성",
        "description": "고객 연동을 위한 세션을 생성합니다. 세션 연동을 위한 키를 리턴합니다.",
        "operationId": "v1_getSession",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "고객 번호",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "세션 생성됨. 생성된 세션 키를 리턴함",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AccountErrorresponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AccountErrorresponse"
                }
              }
            }
          }
        },
        "x-stoplight": {
          "id": "yruxih4kcqqtc"
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ReturnError": {
        "type": "object"
      },
      "CustomerUpdateDTO": {
        "title": "고객 수정 데이터",
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "이메일"
          },
          "name": {
            "type": "string",
            "description": "이름"
          },
          "phone": {
            "pattern": "^(0\\d{1,2}-?\\d{3,4}-?\\d{4}|(\\+\\d{2,3}|\\d{2,3}\\)|\\d{2,3})[ -]?\\d{1,2}[ -]?\\d{3,4}[ -]?\\d{4})$",
            "type": "string",
            "description": "전화번호"
          },
          "shipping": {
            "$ref": "#/components/schemas/ShippingAddressDTO"
          },
          "marketingEmail": {
            "type": "boolean",
            "description": "고객이 허가한 마케팅 채널 - Email (기본값: false)"
          },
          "marketingSms": {
            "type": "boolean",
            "description": "고객이 허가한 마케팅 채널 - SMS (기본값: false)"
          },
          "marketingKakao": {
            "type": "boolean",
            "description": "고객이 허가한 마케팅 채널 - Kakao (기본값: false)"
          },
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "고객의 추가 정보 (커스텀 필드)"
            },
            "description": "고객의 추가 정보 (커스텀 필드)"
          }
        },
        "description": "고객 수정 데이터"
      },
      "ShippingAddressDTO": {
        "title": "배송지 정보 데이터",
        "required": [
          "address1",
          "address2",
          "postcode"
        ],
        "type": "object",
        "properties": {
          "postcode": {
            "type": "string",
            "description": "우편번호"
          },
          "address1": {
            "type": "string",
            "description": "주소"
          },
          "address2": {
            "type": "string",
            "description": "세부 주소"
          },
          "state": {
            "type": "string",
            "description": "주 정보"
          },
          "city": {
            "type": "string",
            "description": "도시 정보"
          },
          "countryCode": {
            "type": "string",
            "description": "국가 코드"
          }
        },
        "description": "배송지 정보"
      },
      "DeliveryChargeResponseDTO": {
        "required": [
          "islandAndMountainShipAmount",
          "jejuShipAmount",
          "useDefaultCourier",
          "useDeliveryCharge",
          "useLocalShipCharge"
        ],
        "type": "object",
        "properties": {
          "useDefaultCourier": {
            "type": "boolean"
          },
          "defaultCourierId": {
            "type": "string"
          },
          "useDeliveryCharge": {
            "type": "boolean"
          },
          "deliveryChargeType": {
            "type": "string",
            "enum": [
              "FREE",
              "CONDITIONAL_FREE",
              "FIXED"
            ]
          },
          "defaultDeliveryCharge": {
            "type": "integer",
            "format": "int64"
          },
          "freeShipOverAmount": {
            "type": "integer",
            "format": "int64"
          },
          "useLocalShipCharge": {
            "type": "boolean"
          },
          "jejuShipAmount": {
            "type": "integer",
            "format": "int64"
          },
          "islandAndMountainShipAmount": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "LocalTime": {
        "type": "object",
        "properties": {
          "hour": {
            "type": "integer",
            "format": "int32"
          },
          "minute": {
            "type": "integer",
            "format": "int32"
          },
          "second": {
            "type": "integer",
            "format": "int32"
          },
          "nano": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ManagerDTO": {
        "required": [
          "createdAt",
          "emailVerified",
          "enabled",
          "nickname",
          "username",
          "uuid"
        ],
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "username": {
            "type": "string"
          },
          "nickname": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "emailVerified": {
            "type": "boolean"
          },
          "choo": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "VendorAppDTO": {
        "required": [
          "installed",
          "priceCode",
          "productCode",
          "status"
        ],
        "type": "object",
        "properties": {
          "productCode": {
            "type": "string"
          },
          "priceCode": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "ACTIVE",
              "UNPAID",
              "PENDING_PAUSE",
              "PAUSE",
              "PENDING_CANCEL",
              "EXPIRED",
              "CANCELED",
              "INCOMPLETE",
              "QUEUEING"
            ]
          },
          "installed": {
            "type": "boolean"
          },
          "subscriptionId": {
            "type": "integer",
            "format": "int64"
          },
          "settings": {
            "type": "string"
          }
        }
      },
      "VendorCustomDomainDTO": {
        "required": [
          "domain",
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "CONNECTED",
              "CHECKING",
              "DISCONNECTED"
            ]
          },
          "domain": {
            "type": "string"
          }
        }
      },
      "VendorDTO": {
        "required": [
          "apps",
          "checkFirstActivation",
          "currency",
          "currencyLock",
          "deliveryCharge",
          "description",
          "firstManagerUuid",
          "manager",
          "name",
          "paymentKey",
          "secretKey",
          "surveyed",
          "useAuth",
          "useDormantCustomer",
          "useDormantNotification",
          "usePayout",
          "useStore",
          "uuid",
          "vendorSettings",
          "zoneId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "parentUuid": {
            "type": "string",
            "format": "uuid"
          },
          "firstManagerUuid": {
            "type": "string",
            "format": "uuid"
          },
          "manager": {
            "$ref": "#/components/schemas/ManagerDTO"
          },
          "realmKeycloakId": {
            "type": "string",
            "format": "uuid"
          },
          "realmName": {
            "type": "string"
          },
          "realmEmailAsUsername": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "featuredImageUrl": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "secretKey": {
            "type": "string"
          },
          "paymentKey": {
            "type": "string"
          },
          "wordpress": {
            "$ref": "#/components/schemas/WordpressDTO"
          },
          "deliveryCharge": {
            "$ref": "#/components/schemas/DeliveryChargeResponseDTO"
          },
          "vendorSettings": {
            "$ref": "#/components/schemas/VendorSettingsDTO"
          },
          "contactUrl": {
            "type": "string"
          },
          "checkFirstActivation": {
            "type": "boolean"
          },
          "checkFailStepbuilder": {
            "type": "string"
          },
          "surveyed": {
            "type": "boolean"
          },
          "useDormantCustomer": {
            "type": "boolean"
          },
          "useDormantNotification": {
            "type": "boolean"
          },
          "apps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VendorAppDTO"
            }
          },
          "useAuth": {
            "type": "boolean"
          },
          "useStore": {
            "type": "boolean"
          },
          "usePayout": {
            "type": "boolean"
          },
          "vendorTerms": {
            "$ref": "#/components/schemas/VendorTermsDTO"
          },
          "zoneId": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "currencyLock": {
            "type": "boolean"
          }
        }
      },
      "VendorSettingsDTO": {
        "required": [
          "notiBeforePayment",
          "notiBeforePaymentDays",
          "usageAutoRefund",
          "vatIncluded",
          "vatRate"
        ],
        "type": "object",
        "properties": {
          "vatIncluded": {
            "type": "boolean"
          },
          "vatRate": {
            "type": "number"
          },
          "paymentAmountScale": {
            "type": "integer",
            "format": "int32"
          },
          "notiBeforePayment": {
            "type": "boolean"
          },
          "notiBeforePaymentDays": {
            "type": "integer",
            "format": "int32"
          },
          "notiBeforePaymentTime": {
            "$ref": "#/components/schemas/LocalTime"
          },
          "usageAutoRefund": {
            "type": "boolean"
          },
          "workspace": {
            "type": "string"
          },
          "customDomain": {
            "$ref": "#/components/schemas/VendorCustomDomainDTO"
          }
        }
      },
      "VendorTermsAgreeDTO": {
        "required": [
          "field"
        ],
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "order": {
            "type": "integer",
            "format": "int32"
          },
          "field": {
            "type": "boolean"
          },
          "content": {
            "type": "string"
          }
        }
      },
      "VendorTermsDTO": {
        "required": [
          "termsAgree",
          "useCheckBox"
        ],
        "type": "object",
        "properties": {
          "useCheckBox": {
            "type": "boolean"
          },
          "termsAgree": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VendorTermsAgreeDTO"
            }
          }
        }
      },
      "WordpressDTO": {
        "required": [
          "consumerKey",
          "consumerSecret"
        ],
        "type": "object",
        "properties": {
          "consumerKey": {
            "type": "string"
          },
          "consumerSecret": {
            "type": "string"
          }
        }
      },
      "Unit": {
        "type": "object"
      },
      "ChildVendorCreateRequestDTO": {
        "required": [
          "email",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "password": {
            "type": "string"
          }
        }
      },
      "CustomerCreateDTO": {
        "title": "고객 생성 데이터",
        "required": [
          "username",
          "email",
          "name"
        ],
        "type": "object",
        "properties": {
          "username": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string",
            "description": "고객 아이디 (미입력 시 email을 username으로 사용합니다.)"
          },
          "email": {
            "type": "string",
            "description": "이메일"
          },
          "name": {
            "type": "string",
            "description": "이름"
          },
          "phone": {
            "pattern": "^(0\\d{1,2}-?\\d{3,4}-?\\d{4}|(\\+\\d{2,3}|\\d{2,3}\\)|\\d{2,3})[ -]?\\d{1,2}[ -]?\\d{3,4}[ -]?\\d{4})$",
            "type": "string",
            "description": "전화번호"
          },
          "shipping": {
            "$ref": "#/components/schemas/ShippingAddressDTO"
          },
          "marketingEmail": {
            "type": "boolean",
            "description": "고객이 허가한 마케팅 채널 - Email (기본값: false)"
          },
          "marketingSms": {
            "type": "boolean",
            "description": "고객이 허가한 마케팅 채널 - SMS (기본값: false)"
          },
          "marketingKakao": {
            "type": "boolean",
            "description": "고객이 허가한 마케팅 채널 - Kakao (기본값: false)"
          },
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "고객의 추가 정보 (커스텀 필드)"
            },
            "description": "고객의 추가 정보 (커스텀 필드)"
          }
        },
        "description": "고객 생성 데이터"
      },
      "DemoCycleDTO": {
        "required": [
          "num",
          "type"
        ],
        "type": "object",
        "properties": {
          "num": {
            "type": "integer",
            "format": "int32"
          },
          "type": {
            "type": "string",
            "enum": [
              "DAY",
              "WEEK",
              "MONTH",
              "YEAR"
            ]
          }
        },
        "description": "무료체험이 적용됐는지 적용 여부 및 기간"
      },
      "VendorListDTO": {
        "required": [
          "createdAt",
          "enabled",
          "managerUsername",
          "name",
          "surveyed",
          "uuid"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "realmKeycloakId": {
            "type": "string",
            "format": "uuid"
          },
          "realmName": {
            "type": "string"
          },
          "surveyed": {
            "type": "boolean"
          },
          "managerUsername": {
            "type": "string"
          },
          "managerPhone": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "enabled": {
            "type": "boolean"
          }
        }
      },
      "Pageable": {
        "type": "object",
        "properties": {
          "page": {
            "minimum": 0,
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "VendorQueryDTO": {
        "type": "object",
        "properties": {
          "serviceName": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "startCreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "endCreatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "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": "번들 상품 정보"
      },
      "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": "청구 방식 정보"
      },
      "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": "국가 설정 정보"
      },
      "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": "첫 구매 할인 정보"
      },
      "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": "옵션 조합"
      },
      "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": "가격 플랜 정보"
      },
      "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": "추가 과금 범위 정보"
      },
      "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": "추가 과금 정보"
      },
      "PriceBundleV1DTO": {
        "required": [
          "price",
          "product"
        ],
        "type": "object",
        "properties": {
          "product": {
            "$ref": "#/components/schemas/ProductV1DTO"
          },
          "price": {
            "$ref": "#/components/schemas/PriceV1DTO"
          }
        },
        "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
      },
      "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": "구독 주기 정보"
      },
      "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": "기본료 정보"
      },
      "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": "가격 플랜 정보"
      },
      "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
      },
      "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
      },
      "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": "옵션 그룹 정보"
      },
      "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"
          }
        }
      },
      "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": "상품 정보"
      },
      "ProductWidgetV1DTO": {
        "type": "object",
        "properties": {
          "useDemo": {
            "type": "boolean"
          },
          "useEventBadge": {
            "type": "boolean"
          },
          "useOnetimePurchasable": {
            "type": "boolean"
          },
          "useNotice": {
            "type": "boolean"
          }
        },
        "description": "상품 위젯 사용 여부",
        "deprecated": true
      },
      "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": "판매 국가(주)"
      },
      "ApplicationContext": {
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string"
          },
          "autowireCapableBeanFactory": {
            "$ref": "#/components/schemas/AutowireCapableBeanFactory"
          },
          "applicationName": {
            "type": "string"
          },
          "startupDate": {
            "type": "integer",
            "format": "int64"
          },
          "parent": {
            "$ref": "#/components/schemas/ApplicationContext"
          },
          "id": {
            "type": "string"
          },
          "environment": {
            "$ref": "#/components/schemas/Environment"
          },
          "beanDefinitionCount": {
            "type": "integer",
            "format": "int32"
          },
          "beanDefinitionNames": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "parentBeanFactory": {
            "$ref": "#/components/schemas/BeanFactory"
          },
          "classLoader": {
            "type": "object",
            "properties": {
              "parent": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "unnamedModule": {
                    "type": "object",
                    "properties": {
                      "layer": {
                        "type": "object"
                      },
                      "name": {
                        "type": "string"
                      },
                      "descriptor": {
                        "type": "object",
                        "properties": {
                          "open": {
                            "type": "boolean"
                          },
                          "automatic": {
                            "type": "boolean"
                          }
                        }
                      },
                      "classLoader": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "defaultAssertionStatus": {
                            "type": "boolean",
                            "writeOnly": true
                          },
                          "registeredAsParallelCapable": {
                            "type": "boolean"
                          },
                          "definedPackages": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "specificationTitle": {
                                  "type": "string"
                                },
                                "specificationVersion": {
                                  "type": "string"
                                },
                                "specificationVendor": {
                                  "type": "string"
                                },
                                "implementationTitle": {
                                  "type": "string"
                                },
                                "implementationVersion": {
                                  "type": "string"
                                },
                                "implementationVendor": {
                                  "type": "string"
                                },
                                "annotations": {
                                  "type": "array",
                                  "items": {
                                    "type": "object"
                                  }
                                },
                                "declaredAnnotations": {
                                  "type": "array",
                                  "items": {
                                    "type": "object"
                                  }
                                },
                                "sealed": {
                                  "type": "boolean"
                                }
                              }
                            }
                          }
                        }
                      },
                      "annotations": {
                        "type": "array",
                        "items": {
                          "type": "object"
                        }
                      },
                      "declaredAnnotations": {
                        "type": "array",
                        "items": {
                          "type": "object"
                        }
                      },
                      "named": {
                        "type": "boolean"
                      },
                      "packages": {
                        "uniqueItems": true,
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "defaultAssertionStatus": {
                    "type": "boolean",
                    "writeOnly": true
                  },
                  "registeredAsParallelCapable": {
                    "type": "boolean"
                  },
                  "definedPackages": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "specificationTitle": {
                          "type": "string"
                        },
                        "specificationVersion": {
                          "type": "string"
                        },
                        "specificationVendor": {
                          "type": "string"
                        },
                        "implementationTitle": {
                          "type": "string"
                        },
                        "implementationVersion": {
                          "type": "string"
                        },
                        "implementationVendor": {
                          "type": "string"
                        },
                        "annotations": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        },
                        "declaredAnnotations": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        },
                        "sealed": {
                          "type": "boolean"
                        }
                      }
                    }
                  }
                }
              },
              "name": {
                "type": "string"
              },
              "unnamedModule": {
                "type": "object",
                "properties": {
                  "layer": {
                    "type": "object"
                  },
                  "name": {
                    "type": "string"
                  },
                  "descriptor": {
                    "type": "object",
                    "properties": {
                      "open": {
                        "type": "boolean"
                      },
                      "automatic": {
                        "type": "boolean"
                      }
                    }
                  },
                  "classLoader": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "defaultAssertionStatus": {
                        "type": "boolean",
                        "writeOnly": true
                      },
                      "registeredAsParallelCapable": {
                        "type": "boolean"
                      },
                      "definedPackages": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "specificationTitle": {
                              "type": "string"
                            },
                            "specificationVersion": {
                              "type": "string"
                            },
                            "specificationVendor": {
                              "type": "string"
                            },
                            "implementationTitle": {
                              "type": "string"
                            },
                            "implementationVersion": {
                              "type": "string"
                            },
                            "implementationVendor": {
                              "type": "string"
                            },
                            "annotations": {
                              "type": "array",
                              "items": {
                                "type": "object"
                              }
                            },
                            "declaredAnnotations": {
                              "type": "array",
                              "items": {
                                "type": "object"
                              }
                            },
                            "sealed": {
                              "type": "boolean"
                            }
                          }
                        }
                      }
                    }
                  },
                  "annotations": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  },
                  "declaredAnnotations": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  },
                  "named": {
                    "type": "boolean"
                  },
                  "packages": {
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              },
              "defaultAssertionStatus": {
                "type": "boolean",
                "writeOnly": true
              },
              "registeredAsParallelCapable": {
                "type": "boolean"
              },
              "definedPackages": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "specificationTitle": {
                      "type": "string"
                    },
                    "specificationVersion": {
                      "type": "string"
                    },
                    "specificationVendor": {
                      "type": "string"
                    },
                    "implementationTitle": {
                      "type": "string"
                    },
                    "implementationVersion": {
                      "type": "string"
                    },
                    "implementationVendor": {
                      "type": "string"
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "declaredAnnotations": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "sealed": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "AutowireCapableBeanFactory": {
        "type": "object"
      },
      "BeanFactory": {
        "type": "object"
      },
      "Environment": {
        "type": "object",
        "properties": {
          "activeProfiles": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "defaultProfiles": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "RedirectView": {
        "type": "object",
        "properties": {
          "applicationContext": {
            "$ref": "#/components/schemas/ApplicationContext"
          },
          "servletContext": {
            "type": "object",
            "properties": {
              "majorVersion": {
                "type": "integer",
                "format": "int32"
              },
              "minorVersion": {
                "type": "integer",
                "format": "int32"
              },
              "attributeNames": {
                "type": "object"
              },
              "initParameterNames": {
                "type": "object"
              },
              "contextPath": {
                "type": "string"
              },
              "servletNames": {
                "type": "object",
                "deprecated": true
              },
              "sessionCookieConfig": {
                "type": "object",
                "properties": {
                  "comment": {
                    "type": "string"
                  },
                  "maxAge": {
                    "type": "integer",
                    "format": "int32"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "path": {
                    "type": "string"
                  },
                  "secure": {
                    "type": "boolean"
                  },
                  "httpOnly": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "string"
                  }
                }
              },
              "filterRegistrations": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "servletNameMappings": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "urlPatternMappings": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "initParameters": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "name": {
                      "type": "string"
                    },
                    "className": {
                      "type": "string"
                    }
                  }
                }
              },
              "sessionTrackingModes": {
                "uniqueItems": true,
                "type": "array",
                "writeOnly": true,
                "items": {
                  "type": "string",
                  "enum": [
                    "COOKIE",
                    "URL",
                    "SSL"
                  ]
                }
              },
              "defaultSessionTrackingModes": {
                "uniqueItems": true,
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "COOKIE",
                    "URL",
                    "SSL"
                  ]
                }
              },
              "effectiveSessionTrackingModes": {
                "uniqueItems": true,
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "COOKIE",
                    "URL",
                    "SSL"
                  ]
                }
              },
              "jspConfigDescriptor": {
                "type": "object",
                "properties": {
                  "taglibs": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "taglibURI": {
                          "type": "string"
                        },
                        "taglibLocation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "jspPropertyGroups": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "scriptingInvalid": {
                          "type": "string"
                        },
                        "elIgnored": {
                          "type": "string"
                        },
                        "pageEncoding": {
                          "type": "string"
                        },
                        "isXml": {
                          "type": "string"
                        },
                        "includeCodas": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "trimDirectiveWhitespaces": {
                          "type": "string"
                        },
                        "deferredSyntaxAllowedAsLiteral": {
                          "type": "string"
                        },
                        "errorOnUndeclaredNamespace": {
                          "type": "string"
                        },
                        "includePreludes": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "buffer": {
                          "type": "string"
                        },
                        "urlPatterns": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "defaultContentType": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              },
              "virtualServerName": {
                "type": "string"
              },
              "sessionTimeout": {
                "type": "integer",
                "format": "int32"
              },
              "requestCharacterEncoding": {
                "type": "string"
              },
              "responseCharacterEncoding": {
                "type": "string"
              },
              "effectiveMajorVersion": {
                "type": "integer",
                "format": "int32"
              },
              "effectiveMinorVersion": {
                "type": "integer",
                "format": "int32"
              },
              "servlets": {
                "type": "object",
                "deprecated": true
              },
              "serverInfo": {
                "type": "string"
              },
              "servletContextName": {
                "type": "string"
              },
              "servletRegistrations": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "mappings": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "runAsRole": {
                      "type": "string"
                    },
                    "initParameters": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "name": {
                      "type": "string"
                    },
                    "className": {
                      "type": "string"
                    }
                  }
                }
              },
              "classLoader": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "defaultAssertionStatus": {
                    "type": "boolean",
                    "writeOnly": true
                  },
                  "registeredAsParallelCapable": {
                    "type": "boolean"
                  },
                  "definedPackages": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "specificationTitle": {
                          "type": "string"
                        },
                        "specificationVersion": {
                          "type": "string"
                        },
                        "specificationVendor": {
                          "type": "string"
                        },
                        "implementationTitle": {
                          "type": "string"
                        },
                        "implementationVersion": {
                          "type": "string"
                        },
                        "implementationVendor": {
                          "type": "string"
                        },
                        "annotations": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        },
                        "declaredAnnotations": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        },
                        "sealed": {
                          "type": "boolean"
                        }
                      }
                    }
                  }
                }
              }
            },
            "writeOnly": true
          },
          "contentType": {
            "type": "string"
          },
          "requestContextAttribute": {
            "type": "string"
          },
          "staticAttributes": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "exposePathVariables": {
            "type": "boolean"
          },
          "exposeContextBeansAsAttributes": {
            "type": "boolean",
            "writeOnly": true
          },
          "exposedContextBeanNames": {
            "type": "array",
            "writeOnly": true,
            "items": {
              "type": "string"
            }
          },
          "beanName": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "contextRelative": {
            "type": "boolean",
            "writeOnly": true
          },
          "http10Compatible": {
            "type": "boolean",
            "writeOnly": true
          },
          "exposeModelAttributes": {
            "type": "boolean",
            "writeOnly": true
          },
          "encodingScheme": {
            "type": "string",
            "writeOnly": true
          },
          "statusCode": {
            "type": "string",
            "writeOnly": true,
            "enum": [
              "100 CONTINUE",
              "101 SWITCHING_PROTOCOLS",
              "102 PROCESSING",
              "103 CHECKPOINT",
              "200 OK",
              "201 CREATED",
              "202 ACCEPTED",
              "203 NON_AUTHORITATIVE_INFORMATION",
              "204 NO_CONTENT",
              "205 RESET_CONTENT",
              "206 PARTIAL_CONTENT",
              "207 MULTI_STATUS",
              "208 ALREADY_REPORTED",
              "226 IM_USED",
              "300 MULTIPLE_CHOICES",
              "301 MOVED_PERMANENTLY",
              "302 FOUND",
              "302 MOVED_TEMPORARILY",
              "303 SEE_OTHER",
              "304 NOT_MODIFIED",
              "305 USE_PROXY",
              "307 TEMPORARY_REDIRECT",
              "308 PERMANENT_REDIRECT",
              "400 BAD_REQUEST",
              "401 UNAUTHORIZED",
              "402 PAYMENT_REQUIRED",
              "403 FORBIDDEN",
              "404 NOT_FOUND",
              "405 METHOD_NOT_ALLOWED",
              "406 NOT_ACCEPTABLE",
              "407 PROXY_AUTHENTICATION_REQUIRED",
              "408 REQUEST_TIMEOUT",
              "409 CONFLICT",
              "410 GONE",
              "411 LENGTH_REQUIRED",
              "412 PRECONDITION_FAILED",
              "413 PAYLOAD_TOO_LARGE",
              "413 REQUEST_ENTITY_TOO_LARGE",
              "414 URI_TOO_LONG",
              "414 REQUEST_URI_TOO_LONG",
              "415 UNSUPPORTED_MEDIA_TYPE",
              "416 REQUESTED_RANGE_NOT_SATISFIABLE",
              "417 EXPECTATION_FAILED",
              "418 I_AM_A_TEAPOT",
              "419 INSUFFICIENT_SPACE_ON_RESOURCE",
              "420 METHOD_FAILURE",
              "421 DESTINATION_LOCKED",
              "422 UNPROCESSABLE_ENTITY",
              "423 LOCKED",
              "424 FAILED_DEPENDENCY",
              "425 TOO_EARLY",
              "426 UPGRADE_REQUIRED",
              "428 PRECONDITION_REQUIRED",
              "429 TOO_MANY_REQUESTS",
              "431 REQUEST_HEADER_FIELDS_TOO_LARGE",
              "451 UNAVAILABLE_FOR_LEGAL_REASONS",
              "500 INTERNAL_SERVER_ERROR",
              "501 NOT_IMPLEMENTED",
              "502 BAD_GATEWAY",
              "503 SERVICE_UNAVAILABLE",
              "504 GATEWAY_TIMEOUT",
              "505 HTTP_VERSION_NOT_SUPPORTED",
              "506 VARIANT_ALSO_NEGOTIATES",
              "507 INSUFFICIENT_STORAGE",
              "508 LOOP_DETECTED",
              "509 BANDWIDTH_LIMIT_EXCEEDED",
              "510 NOT_EXTENDED",
              "511 NETWORK_AUTHENTICATION_REQUIRED"
            ]
          },
          "expandUriTemplateVariables": {
            "type": "boolean",
            "writeOnly": true
          },
          "propagateQueryParams": {
            "type": "boolean",
            "writeOnly": true
          },
          "hosts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "propagateQueryProperties": {
            "type": "boolean"
          },
          "redirectView": {
            "type": "boolean"
          },
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "writeOnly": true
          },
          "attributesCSV": {
            "type": "string",
            "writeOnly": true
          },
          "attributesMap": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          }
        }
      },
      "AccountErrorresponse": {
        "required": [
          "errorCode"
        ],
        "type": "object",
        "properties": {
          "traceId": {
            "type": "string"
          },
          "errorCode": {
            "type": "string"
          },
          "errorMessage": {
            "type": "string"
          },
          "details": {
            "$ref": "#/components/schemas/ReturnError"
          }
        }
      },
      "AccountCustomerv1dto": {
        "title": "고객 상세 정보 데이터",
        "required": [
          "createdAt",
          "id",
          "username"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "고객 번호",
            "format": "int64"
          },
          "username": {
            "type": "string",
            "description": "고객 아이디"
          },
          "name": {
            "type": "string",
            "description": "고객 이름"
          },
          "email": {
            "type": "string",
            "description": "고객 이메일"
          },
          "phone": {
            "type": "string",
            "description": "고객 전화번호"
          },
          "code": {
            "type": "string",
            "description": "고객 코드"
          },
          "marketingSms": {
            "type": "boolean",
            "description": "고객이 허가한 마케팅 채널 - SMS"
          },
          "marketingEmail": {
            "type": "boolean",
            "description": "고객이 허가한 마케팅 채널 - Email"
          },
          "marketingKakao": {
            "type": "boolean",
            "description": "고객이 허가한 마케팅 채널 - Kakao"
          },
          "createdAt": {
            "type": "string",
            "description": "고객 생성 시점",
            "format": "date-time"
          }
        }
      },
      "AccountApiresponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "writeOnly": true
          },
          "message": {
            "type": "string",
            "writeOnly": true
          }
        }
      },
      "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 정보"
      },
      "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 일 때"
      },
      "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": "번들 상품 정보"
      },
      "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기록"
      },
      "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": "청구 방식 정보"
      },
      "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": "국가 설정 정보"
      },
      "DemoCycle": {
        "required": [
          "num",
          "type"
        ],
        "type": "object",
        "properties": {
          "num": {
            "type": "integer",
            "format": "int32"
          },
          "type": {
            "type": "string",
            "enum": [
              "DAY",
              "WEEK",
              "MONTH",
              "YEAR"
            ]
          }
        },
        "description": "무료체험이 적용됐는지 적용 여부 및 기간"
      },
      "FirstSaleDTO": {
        "title": "첫 구매 할인 정보",
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "price": {
            "type": "number"
          },
          "currencyPrice": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            }
          }
        },
        "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": "옵션 조합"
      },
      "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": "주문한 고객 정보"
      },
      "OrderItemUnitChangeHistoryV1DTO": {
        "title": "계정 수 변동 내역",
        "required": [
          "changedCount",
          "days"
        ],
        "type": "object",
        "properties": {
          "changedCount": {
            "type": "integer",
            "description": "계정 수 증감량",
            "format": "int64"
          },
          "days": {
            "type": "integer",
            "description": "요금 계산 기준 날짜",
            "format": "int64"
          }
        },
        "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": "주문 메모 목록"
      },
      "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": "결제 상세 정보"
      },
      "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": "부모 구독 정보(갱신 결제일 경우)"
      },
      "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": "가격 플랜 정보"
      },
      "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": "추가 과금 정보"
      },
      "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": "추가 과금 범위 정보"
      },
      "PriceBundleDTO": {
        "required": [
          "price",
          "product"
        ],
        "type": "object",
        "properties": {
          "product": {
            "$ref": "#/components/schemas/ProductProductdto"
          },
          "price": {
            "$ref": "#/components/schemas/ProductPricedto"
          }
        },
        "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": "옵션 정보"
      },
      "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": "구독 주기 정보"
      },
      "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": "기본료 정보"
      },
      "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
      },
      "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": "이벤트 뱃지"
      },
      "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"
          }
        }
      },
      "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": "옵션 그룹 정보"
      },
      "ProductWidgetDTO": {
        "type": "object",
        "properties": {
          "useDemo": {
            "type": "boolean"
          },
          "useEventBadge": {
            "type": "boolean"
          },
          "useOnetimePurchasable": {
            "type": "boolean"
          },
          "useNotice": {
            "type": "boolean"
          }
        },
        "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": "지역"
      },
      "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": "관련 주문"
      },
      "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": "주문 항목"
      },
      "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": "고객이 최근에 사용한 배송지"
      },
      "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": "구독 항목들"
      },
      "SubscriptionChangePaymentMethodDTO": {
        "title": "구독 결제수단 변경 정보",
        "type": "object",
        "properties": {
          "paymentGateway": {
            "type": "string",
            "description": "사용할 PG. 지정하면 지정된 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"
            ]
          }
        },
        "description": "결제수단 변경 정보"
      },
      "NiceCmsV1DTO": {
        "required": [
          "bankAccount",
          "bankCode",
          "companyName",
          "corporateManager",
          "date",
          "status"
        ],
        "type": "object",
        "properties": {
          "corporateManager": {
            "type": "string"
          },
          "companyName": {
            "type": "string"
          },
          "companyRegistrationNumber": {
            "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 정보"
      },
      "OrderCustomerV1DTO": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          }
        },
        "description": "결제자 정보"
      },
      "OrderItemV1DTO": {
        "title": "주문 항목 정보",
        "required": [
          "code",
          "createdAt",
          "currency",
          "id",
          "minimumQuantity",
          "modifiedAt",
          "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/PriceV1DTO"
          },
          "product": {
            "$ref": "#/components/schemas/ProductV1DTO"
          },
          "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/DemoCycleDTO"
          },
          "usedCount": {
            "type": "number",
            "description": "사용량(사용량 기반 과금 상품인 경우)"
          },
          "usageFormula": {
            "type": "string",
            "description": "사용량 계산식"
          },
          "deliveryCode": {
            "type": "string",
            "description": "배송코드(매핑값)"
          },
          "histories": {
            "type": "array",
            "description": "CS기록",
            "items": {
              "$ref": "#/components/schemas/CSItemDTO"
            }
          },
          "unitChangeHistory": {
            "type": "array",
            "description": "계정 수 변동 내역(계정 수 기반 과금 상품인 경우)",
            "items": {
              "$ref": "#/components/schemas/OrderItemUnitChangeHistoryV1DTO"
            }
          },
          "unitCount": {
            "type": "integer",
            "description": "계정 수(계정 수 기반 과금 상품인 경우",
            "format": "int64"
          },
          "minimumQuantity": {
            "type": "integer",
            "description": "최소 구매 가능 수량",
            "format": "int32"
          },
          "maximumQuantity": {
            "type": "integer",
            "description": "최대 구매 가능 수량",
            "format": "int32"
          },
          "parentOrderItemCode": {
            "type": "string",
            "description": "파생 주문 아이템의 부모(번들) 주문 아이템 코드"
          },
          "relatedSubscriptionItemId": {
            "type": "integer",
            "description": "관련 구독 아이템 아이디",
            "format": "int64"
          }
        },
        "description": "주문 항목들"
      },
      "OrderLogV1DTO": {
        "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": "주문 메모 목록"
      },
      "OrderPaymentV1DTO": {
        "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/VBankV1DTO"
          },
          "niceCmsDTO": {
            "$ref": "#/components/schemas/NiceCmsV1DTO"
          },
          "customerDTO": {
            "$ref": "#/components/schemas/OrderCustomerV1DTO"
          },
          "errorCode": {
            "type": "string",
            "description": "에러 코드(결제 실패시)"
          },
          "errorMessage": {
            "type": "string",
            "description": "에러 메세지(결제 실패시)"
          }
        },
        "description": "결제 정보"
      },
      "OrderSubscriptionV1DTO": {
        "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/SubscriptionItemV1DTO"
            }
          },
          "price": {
            "$ref": "#/components/schemas/PriceV1DTO"
          },
          "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": "부모 구독 정보(갱신 결제일 경우)"
      },
      "OrderV1DTO": {
        "title": "주문 상세 정보",
        "required": [
          "baseCurrency",
          "currency",
          "discountedAmount",
          "exchangeRate",
          "id",
          "leftAmount",
          "orderCode",
          "orderId",
          "orderLogs",
          "paidAmount",
          "productName",
          "region",
          "relatedOrders",
          "returnedAmount",
          "subscriptions",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "주문 번호",
            "format": "int64"
          },
          "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": "결제 금액"
          },
          "leftAmount": {
            "type": "number",
            "description": "남은 금액"
          },
          "returnedAmount": {
            "type": "number",
            "description": "환불 금액"
          },
          "items": {
            "type": "array",
            "description": "주문 항목들",
            "items": {
              "$ref": "#/components/schemas/OrderItemV1DTO"
            }
          },
          "customer": {
            "$ref": "#/components/schemas/OrderCustomerV1DTO"
          },
          "paymentDate": {
            "type": "string",
            "description": "결제 시점",
            "format": "date-time"
          },
          "purchaseDeadline": {
            "type": "string",
            "description": "청구서 사용시, 구매 기한",
            "format": "date-time"
          },
          "shipping": {
            "$ref": "#/components/schemas/ShippingV1DTO"
          },
          "createdAt": {
            "type": "string",
            "description": "생성된 시점",
            "format": "date-time"
          },
          "modifiedAt": {
            "type": "string",
            "description": "수정된 시점",
            "format": "date-time"
          },
          "payment": {
            "$ref": "#/components/schemas/OrderPaymentV1DTO"
          },
          "orderLogs": {
            "type": "array",
            "description": "주문 메모 목록",
            "items": {
              "$ref": "#/components/schemas/OrderLogV1DTO"
            }
          },
          "code": {
            "type": "string"
          },
          "subscriptions": {
            "type": "array",
            "description": "관련 구독 목록",
            "items": {
              "$ref": "#/components/schemas/OrderSubscriptionV1DTO"
            }
          },
          "parentSubscription": {
            "$ref": "#/components/schemas/OrderSubscriptionV1DTO"
          },
          "invoiceId": {
            "type": "integer",
            "description": "청구서 ID",
            "format": "int64"
          },
          "discountedAmount": {
            "type": "number",
            "description": "할인 금액"
          },
          "productName": {
            "type": "string",
            "description": "상품 이름"
          },
          "paymentDueDate": {
            "type": "string",
            "description": "결제일 지정",
            "format": "date-time"
          },
          "idKey": {
            "type": "string",
            "description": "결제 정보 조회용 idKey"
          },
          "relatedOrders": {
            "type": "array",
            "description": "관련 주문",
            "items": {
              "$ref": "#/components/schemas/RelatedOrderV1"
            }
          },
          "calculateStartDate": {
            "type": "string",
            "description": "합산 시작 시점",
            "format": "date-time"
          },
          "calculateEndDate": {
            "type": "string",
            "description": "합산 끝 시점",
            "format": "date-time"
          },
          "childOrders": {
            "type": "array",
            "description": "하위 벤더의 주문",
            "items": {
              "$ref": "#/components/schemas/OrderV1DTO"
            }
          },
          "exchangeRate": {
            "type": "number",
            "description": "주문에 적용된 환율"
          },
          "region": {
            "$ref": "#/components/schemas/RegionV1DTO"
          },
          "currency": {
            "type": "string",
            "description": "승인 통화"
          },
          "baseCurrency": {
            "type": "string",
            "description": "주문 생성 당시 기준 통화"
          }
        },
        "description": "관련 주문"
      },
      "RelatedOrderItemV1": {
        "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/PlanV1DTO"
          },
          "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": "주문 항목"
      },
      "RelatedOrderV1": {
        "required": [
          "code",
          "createdAt",
          "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/RelatedOrderItemV1"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "description": "관련 주문"
      },
      "ShippingV1DTO": {
        "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": "고객이 최근에 사용한 배송 정보 - 주소"
      },
      "SubscriptionItemV1DTO": {
        "title": "구독 항목 정보",
        "required": [
          "claimMethodType",
          "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/PlanV1DTO"
          },
          "price": {
            "type": "number",
            "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": "구독 항목들"
      },
      "VBankV1DTO": {
        "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 일 때"
      },
      "CustomerPaymentMethodV1DTO": {
        "title": "결제 수단 정보",
        "type": "object",
        "properties": {
          "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"
            ]
          },
          "paymentInfo": {
            "type": "string",
            "description": "결제수단 정보(카드번호 등)"
          }
        },
        "description": "연관 결제수단"
      },
      "SubscriptionCustomerV1DTO": {
        "title": "구독 고객 정보",
        "required": [
          "attributes",
          "id",
          "marketingEmail",
          "marketingKakao",
          "marketingSms"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "고객 번호",
            "format": "int64"
          },
          "uuid": {
            "type": "string",
            "description": "고객 UUID",
            "format": "uuid"
          },
          "code": {
            "type": "string",
            "description": "고객 코드"
          },
          "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/ShippingV1DTO"
          },
          "marketingSms": {
            "type": "boolean",
            "description": "고객이 허가한 마케팅 채널 - SMS"
          },
          "marketingEmail": {
            "type": "boolean",
            "description": "고객이 허가한 마케팅 채널 - Email"
          },
          "marketingKakao": {
            "type": "boolean",
            "description": "고객이 허가한 마케팅 채널 - Kakao"
          },
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "고객 추가 데이터"
            },
            "description": "고객 추가 데이터"
          }
        },
        "description": "고객 정보"
      },
      "SubscriptionV1DTO": {
        "title": "구독 상세 정보",
        "required": [
          "currentPeriod",
          "customer",
          "id",
          "interval",
          "intervalCount",
          "price",
          "recurringCount",
          "relatedOrders",
          "startDate",
          "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"
            ]
          },
          "price": {
            "$ref": "#/components/schemas/PriceV1DTO"
          },
          "startDate": {
            "type": "string",
            "description": "시작 시점",
            "format": "date-time"
          },
          "trialPeriod": {
            "$ref": "#/components/schemas/ProductPerioddto"
          },
          "lastPaymentDate": {
            "type": "string",
            "description": "최근 결제 시점",
            "format": "date-time"
          },
          "nextPaymentDate": {
            "type": "string",
            "description": "다음 결제 시점",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "description": "종료일",
            "format": "date-time"
          },
          "parentOrder": {
            "$ref": "#/components/schemas/OrderV1DTO"
          },
          "items": {
            "type": "array",
            "description": "구독 항목들",
            "items": {
              "$ref": "#/components/schemas/SubscriptionItemV1DTO"
            }
          },
          "customer": {
            "$ref": "#/components/schemas/SubscriptionCustomerV1DTO"
          },
          "relatedOrders": {
            "type": "array",
            "description": "관련 주문",
            "items": {
              "$ref": "#/components/schemas/OrderV1DTO"
            }
          },
          "pausedDateTime": {
            "type": "string",
            "description": "일시정지 시점",
            "format": "date-time"
          },
          "interval": {
            "type": "string",
            "description": "구독 주기 단위",
            "enum": [
              "DAY",
              "WEEK",
              "MONTH",
              "YEAR"
            ]
          },
          "intervalCount": {
            "type": "integer",
            "description": "구독 주기",
            "format": "int32"
          },
          "paymentMethod": {
            "$ref": "#/components/schemas/CustomerPaymentMethodV1DTO"
          },
          "originNextPaymentDate": {
            "type": "string",
            "description": "최초 다음 결제 시점 - nextPaymentDate 는 변경될 수 있기 때문에 변경 전 데이터를 저장합니다.",
            "format": "date-time"
          },
          "shipping": {
            "$ref": "#/components/schemas/ShippingV1DTO"
          },
          "canceledVia": {
            "type": "string",
            "description": "구독이 취소되었을 때 어떤 경로로 취소되었는지 정보",
            "enum": [
              "MANAGER",
              "V1",
              "RENEW",
              "CUSTOMER",
              "SYSTEM",
              "PUBLIC"
            ]
          },
          "recurringCount": {
            "type": "integer",
            "description": "구독이 몇번 갱신되었는지 나타내는 정보",
            "format": "int32"
          },
          "currentPeriod": {
            "$ref": "#/components/schemas/ProductPerioddto"
          }
        }
      },
      "SubscriptionItemReplaceDTO": {
        "title": "구독 항목 교체 정보",
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "구독 항목 번호",
            "format": "int64"
          },
          "quantity": {
            "type": "integer",
            "description": "수량",
            "format": "int32"
          },
          "selectedProductOptionIds": {
            "type": "array",
            "description": "선택한 상품 옵션 정보",
            "items": {
              "type": "integer",
              "description": "선택한 상품 옵션 정보",
              "format": "int64"
            }
          }
        }
      },
      "SubscriptionItemChangeDTO": {
        "title": "구독 항목 수정 정보",
        "type": "object",
        "properties": {
          "quantity": {
            "type": "integer",
            "description": "수량",
            "format": "int32"
          },
          "selectedProductOptions": {
            "type": "array",
            "description": "선택한 상품 옵션 정보",
            "items": {
              "type": "integer",
              "description": "선택한 상품 옵션 정보",
              "format": "int64"
            }
          }
        }
      },
      "SubscriptionChangeRecurringDTO": {
        "title": "구독 주기 변경 정보",
        "required": [
          "interval",
          "intervalCount"
        ],
        "type": "object",
        "properties": {
          "interval": {
            "type": "string",
            "description": "구독 주기 단위",
            "enum": [
              "DAY",
              "WEEK",
              "MONTH",
              "YEAR"
            ]
          },
          "intervalCount": {
            "type": "integer",
            "description": "구독 주기",
            "format": "int32"
          }
        },
        "description": "변경할 주기 정보"
      },
      "ApiResponseUnit": {
        "title": "단순 API 응답",
        "required": [
          "message"
        ],
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "결과에 대한 메세지"
          },
          "body": {
            "$ref": "#/components/schemas/Unit"
          }
        }
      },
      "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": "옵션 조합"
      },
      "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": "세부 옵션"
      },
      "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": "옵션 그룹 수정 데이터"
      },
      "ProductUpdateDTO": {
        "title": "상품 수정 데이터",
        "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": "상품 이름"
          },
          "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"
          },
          "eventBadge": {
            "type": "array",
            "description": "이벤트 뱃지",
            "items": {
              "$ref": "#/components/schemas/ProductEventBadge"
            }
          },
          "notice": {
            "type": "string",
            "description": "유의 사항"
          },
          "productOrder": {
            "type": "integer",
            "description": "순서 (기본값: 0)",
            "format": "int32"
          },
          "enabledDemo": {
            "type": "boolean",
            "description": "체험기간 활성 여부"
          },
          "demoPeriod": {
            "type": "integer",
            "description": "체험기간 (기본값: 0)",
            "format": "int32"
          },
          "demoPeriodUnit": {
            "type": "string",
            "description": "체험기간 단위",
            "enum": [
              "DAY",
              "WEEK",
              "MONTH",
              "YEAR"
            ]
          },
          "combinedProducts": {
            "type": "array",
            "description": "번들 상품 번호",
            "items": {
              "type": "integer",
              "description": "번들 상품 번호",
              "format": "int64"
            }
          },
          "optionGroups": {
            "type": "array",
            "description": "옵션 그룹 수정 데이터",
            "items": {
              "$ref": "#/components/schemas/ProductOptionGroupCreateDTO"
            }
          },
          "useCombination": {
            "type": "boolean",
            "description": "조합형 옵션 사용 여부"
          },
          "optionCombinations": {
            "type": "array",
            "description": "옵션 조합",
            "items": {
              "$ref": "#/components/schemas/OptionCombinationCreateDTO"
            }
          },
          "isOnetimePurchasable": {
            "type": "boolean",
            "description": "1회 구매 상품"
          },
          "useWidget": {
            "$ref": "#/components/schemas/ProductWidgetCreatDTO"
          },
          "categoryIds": {
            "type": "array",
            "description": "카테고리 리스트 아이디",
            "items": {
              "type": "integer",
              "description": "카테고리 리스트 아이디",
              "format": "int64"
            }
          },
          "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"
              ]
            }
          },
          "shared": {
            "type": "array",
            "description": "공유 벤더 목록",
            "items": {
              "type": "string",
              "description": "공유 벤더 목록",
              "format": "uuid"
            }
          }
        },
        "description": "상품 수정 데이터"
      },
      "ProductWidgetCreatDTO": {
        "type": "object",
        "properties": {
          "useDemo": {
            "type": "boolean",
            "description": "기본값: false"
          },
          "useEventBadge": {
            "type": "boolean",
            "description": "기본값: false"
          },
          "useOnetimePurchasable": {
            "type": "boolean",
            "description": "기본값: false"
          },
          "useNotice": {
            "type": "boolean",
            "description": "기본값: false"
          }
        },
        "description": "상품 위젯 사용 여부"
      },
      "PriceAdditionalBillingRangeCreateDTO": {
        "title": "추가 과금 생성 정보",
        "required": [
          "price",
          "until"
        ],
        "type": "object",
        "properties": {
          "until": {
            "type": "integer",
            "description": "범위가 어디까지인지. -1 이면 무한대의 범위를 나타내며, -1 값은 배열에 적어도 하나 있어야 합니다. (기본값: 0)",
            "format": "int64"
          },
          "price": {
            "type": "number",
            "description": "범위에 적용되는 금액 (기본값: 0)"
          }
        },
        "description": "추가 과금 범위 정보"
      },
      "PriceAdditionalBillingUpdateDTO": {
        "title": "추가 과금 수정 정보",
        "required": [
          "id",
          "ranges",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "추가 과금 번호",
            "format": "int64"
          },
          "type": {
            "type": "string",
            "description": "추가 과금 타입 (기본값: USAGE_BASED_WITH_RANGE)",
            "enum": [
              "USAGE_BASED_WITH_RANGE",
              "USAGE_BASED_WITH_RANGE_AND_FIXED_PRICE"
            ]
          },
          "ranges": {
            "type": "array",
            "description": "추가 과금 범위 정보",
            "items": {
              "$ref": "#/components/schemas/PriceAdditionalBillingRangeCreateDTO"
            }
          }
        },
        "description": "추가 과금 수정 정보"
      },
      "PriceOptionUpdateDTO": {
        "title": "가격 플랜 옵션 수정 정보",
        "required": [
          "id",
          "priceCode",
          "productCode",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "옵션 번호",
            "format": "int64"
          },
          "productCode": {
            "type": "string",
            "description": "상품 코드"
          },
          "type": {
            "type": "string",
            "description": "옵션 타입",
            "enum": [
              "INITIALLY",
              "PERIODIC"
            ]
          },
          "priceCode": {
            "type": "string",
            "description": "가격플랜 코드"
          }
        },
        "description": "가격플랜 옵션 수정 정보",
        "deprecated": true
      },
      "PriceRecurringUpdateDTO": {
        "title": "구독 주기 수정 정보",
        "required": [
          "aggregateUsageType",
          "id",
          "interval",
          "intervalCount",
          "usageType"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "주기 정보 번호",
            "format": "int64"
          },
          "intervalCount": {
            "type": "integer",
            "description": "주기 (기본값: 0)",
            "format": "int32"
          },
          "interval": {
            "type": "string",
            "description": "주기 단위",
            "enum": [
              "DAY",
              "WEEK",
              "MONTH",
              "YEAR"
            ]
          },
          "aggregateUsageType": {
            "type": "string",
            "deprecated": true,
            "enum": [
              "SUM",
              "LAST_DURING_PERIOD",
              "LAST_EVER",
              "MAX"
            ]
          },
          "usageType": {
            "type": "string",
            "deprecated": true,
            "enum": [
              "LICENSED",
              "METERED"
            ]
          }
        },
        "description": "구독 주기 수정 정보"
      },
      "PriceUpdateDTO": {
        "title": "가격플랜 수정 데이터",
        "required": [
          "unit",
          "plan"
        ],
        "type": "object",
        "properties": {
          "price": {
            "minimum": 0,
            "exclusiveMinimum": false,
            "type": "number",
            "description": "가격"
          },
          "currencyPrice": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "description": "통화별 가격"
            },
            "description": "통화별 가격"
          },
          "unit": {
            "type": "string",
            "description": "단위"
          },
          "firstSale": {
            "$ref": "#/components/schemas/FirstSaleDTO"
          },
          "claim": {
            "$ref": "#/components/schemas/Claim"
          },
          "maximumPurchaseQuantity": {
            "type": "integer",
            "description": "최대 구매 수량",
            "format": "int32"
          },
          "membershipExpirationDate": {
            "type": "integer",
            "description": "구독 만기 기간",
            "format": "int32",
            "deprecated": true
          },
          "membershipExpirationDateType": {
            "type": "string",
            "description": "구독 만기 기간 단위",
            "deprecated": true,
            "enum": [
              "DAY",
              "WEEK",
              "MONTH",
              "YEAR"
            ]
          },
          "expiryPaymentCount": {
            "type": "integer",
            "description": "구독 만료되는 결제 횟수",
            "format": "int32"
          },
          "setupOption": {
            "$ref": "#/components/schemas/PriceSetupOptionDTO"
          },
          "options": {
            "type": "array",
            "description": "가격플랜 옵션 수정 정보",
            "deprecated": true,
            "items": {
              "$ref": "#/components/schemas/PriceOptionUpdateDTO"
            }
          },
          "volumes": {
            "type": "array",
            "deprecated": true,
            "items": {
              "$ref": "#/components/schemas/PriceVolumeUpdateDTO"
            }
          },
          "recurring": {
            "$ref": "#/components/schemas/PriceRecurringUpdateDTO"
          },
          "additionalBilling": {
            "$ref": "#/components/schemas/PriceAdditionalBillingUpdateDTO"
          },
          "basicServing": {
            "type": "integer",
            "description": "기본 제공량 - 계정/사용량 기반 요금 사용시 (기본값: 0)",
            "format": "int32"
          },
          "isRepresentative": {
            "type": "boolean",
            "description": "대표 가격 지정 - 스텝샵에서 기본 가격으로 설정됩니다. (기본값: false)"
          },
          "bundlePrices": {
            "type": "array",
            "description": "번들 가격 코드 - 번들로 만들 가격 코드를 입력합니다.",
            "items": {
              "type": "string",
              "description": "번들 가격 코드 - 번들로 만들 가격 코드를 입력합니다."
            }
          },
          "onetimeBundlePrice": {
            "type": "number",
            "description": "번들 플랜 설정 - 번들 플랜에 포함된 단건 가격이 설정됩니다."
          },
          "currencyOnetimeBundlePrice": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "description": "통화별 번들 플랜 단건 가격"
            },
            "description": "통화별 번들 플랜 단건 가격"
          },
          "type": {
            "type": "string",
            "description": "가격 플랜 타입 (기본값: ONE_TIME)",
            "enum": [
              "ONE_TIME",
              "FLAT",
              "UNIT_BASED",
              "USAGE_BASED",
              "VOLUME_BASED",
              "BUNDLE"
            ]
          },
          "plan": {
            "$ref": "#/components/schemas/Plan"
          },
          "isSupportUpDownGrade": {
            "type": "boolean"
          }
        },
        "description": "가격플랜 수정 데이터"
      },
      "PriceVolumeUpdateDTO": {
        "required": [
          "id",
          "max",
          "min",
          "price"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "min": {
            "minimum": 0,
            "type": "integer",
            "description": "기본값: 0",
            "format": "int32"
          },
          "max": {
            "type": "integer",
            "description": "기본값: 0",
            "format": "int32"
          },
          "price": {
            "minimum": 0,
            "exclusiveMinimum": false,
            "type": "number",
            "description": "기본값: 0"
          }
        },
        "deprecated": true
      },
      "InvoiceProductDTO": {
        "title": "청구서 상품 및 가격플랜 정보",
        "required": [
          "minimumQuantity",
          "priceCode",
          "productCode"
        ],
        "type": "object",
        "properties": {
          "productCode": {
            "type": "string",
            "description": "상품 코드"
          },
          "priceCode": {
            "type": "string",
            "description": "가격 플랜 코드"
          },
          "minimumQuantity": {
            "type": "integer",
            "description": "최소 수량. 청구서를 받은 고객은 이 수량보다 적은 수량으로 구매할 수 없습니다.",
            "format": "int32"
          },
          "maximumQuantity": {
            "type": "integer",
            "description": "최대 수량. 청구서를 받은 고객은 이 수량보다 많은 수량으로 구매할 수 없습니다.",
            "format": "int32"
          },
          "productName": {
            "type": "string",
            "description": "상품명"
          },
          "price": {
            "type": "number",
            "description": "가격"
          }
        },
        "description": "청구서 상품 및 가격 플랜 목록"
      },
      "InvoiceUpdateDTO": {
        "title": "청구서 수정 데이터",
        "required": [
          "customerId",
          "discount",
          "id",
          "products",
          "publishMethods",
          "publishType",
          "purchaseDeadline"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "청구서 번호",
            "format": "int64"
          },
          "customerId": {
            "type": "integer",
            "description": "청구서 받을 고객 번호",
            "format": "int64"
          },
          "products": {
            "type": "array",
            "description": "청구서 상품 및 가격 플랜 목록",
            "items": {
              "$ref": "#/components/schemas/InvoiceProductDTO"
            }
          },
          "publishType": {
            "type": "string",
            "description": "청구서 발행 타입",
            "enum": [
              "NOW",
              "RESERVATION"
            ]
          },
          "purchaseDeadline": {
            "type": "string",
            "description": "구매 가능 기한",
            "format": "date-time"
          },
          "reservationAt": {
            "type": "string",
            "description": "예약 발송 시점",
            "format": "date-time"
          },
          "publishMethods": {
            "uniqueItems": true,
            "type": "array",
            "description": "발송 수단 목록",
            "items": {
              "type": "string",
              "description": "발송 수단 목록",
              "enum": [
                "KAKAO",
                "SMS",
                "EMAIL"
              ]
            }
          },
          "invoicePayMethods": {
            "uniqueItems": true,
            "type": "array",
            "description": "지정 결제 수단",
            "items": {
              "type": "string",
              "description": "지정 결제 수단",
              "enum": [
                "CARD",
                "VBANK",
                "BANK",
                "BANK_TRANSFER",
                "CELLPHONE",
                "SIMPLE_PAY",
                "CMS",
                "CARD_BILL",
                "CELLPHONE_BILL",
                "CMS_BILL",
                "PAYPAL"
              ]
            }
          },
          "discount": {
            "minimum": 0,
            "exclusiveMinimum": false,
            "type": "number",
            "description": "할인 금액"
          },
          "memoToCustomer": {
            "type": "string",
            "description": "청구서 메모"
          }
        },
        "description": "청구서 수정 데이터"
      },
      "RecipientDTO": {
        "required": [
          "address1",
          "address2",
          "name",
          "phone",
          "postcode"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "postcode": {
            "type": "string"
          },
          "address1": {
            "type": "string"
          },
          "address2": {
            "type": "string"
          }
        }
      },
      "ProductWidget": {
        "required": [
          "useDemo",
          "useEventBadge",
          "useNotice",
          "useOnetimePurchasable"
        ],
        "type": "object",
        "properties": {
          "useDemo": {
            "type": "boolean"
          },
          "useEventBadge": {
            "type": "boolean"
          },
          "useOnetimePurchasable": {
            "type": "boolean"
          },
          "useNotice": {
            "type": "boolean"
          }
        }
      },
      "SubscriptionPauseDTO": {
        "title": "구독 일시정지 정보",
        "type": "object",
        "properties": {
          "whenToResume": {
            "type": "string",
            "description": "일시정지 후 언제 재개되는지를 설정합니다. (기본값: NOTHING)",
            "enum": [
              "NOTHING",
              "PAUSED_UNTIL"
            ]
          },
          "whenToPause": {
            "type": "string",
            "description": "언제 일시정지 시킬 지를 설정합니다. (기본값: IMMEDIATE)",
            "enum": [
              "IMMEDIATE",
              "LAZY"
            ]
          },
          "until": {
            "$ref": "#/components/schemas/ProductCycledto"
          }
        },
        "description": "일시정지 정보 - 일시정지, 재개 시점을 설정합니다."
      },
      "SubscriptionItemCreateDTO": {
        "title": "구독 항목 생성 정보",
        "required": [
          "productCode",
          "priceCode"
        ],
        "type": "object",
        "properties": {
          "productCode": {
            "type": "string",
            "description": "추가할 상품 코드"
          },
          "priceCode": {
            "type": "string",
            "description": "추가할 가격플랜 코드"
          },
          "quantity": {
            "minimum": 1,
            "type": "integer",
            "description": "상품 수량 (기본값: 1)",
            "format": "int32",
            "default": 1
          },
          "type": {
            "type": "string",
            "description": "기본값: SKU",
            "enum": [
              "SKU",
              "TAX",
              "SHIPPING",
              "DISCOUNT",
              "OFFLINE",
              "FEE",
              "ADDS",
              "INSTANT",
              "USAGE"
            ]
          },
          "selectedProductOptions": {
            "type": "array",
            "description": "상품 옵션",
            "items": {
              "type": "integer",
              "description": "상품 옵션",
              "format": "int64"
            },
            "default": []
          },
          "shipping": {
            "$ref": "#/components/schemas/Shipping"
          }
        },
        "description": "추가할 구독 항목 정보"
      },
      "SubscriptionChangePayDatetimeDTO": {
        "title": "결제일 변경 정보",
        "required": [
          "when"
        ],
        "type": "object",
        "properties": {
          "when": {
            "type": "string",
            "description": "변경될 시점. 현재보다 미래 시점으로 설정해야 합니다. (시간대: UTC)",
            "format": "date-time"
          }
        },
        "description": "결제일 변경을 위한 정보"
      },
      "SubscriptionCancelDTO": {
        "title": "구독 취소 정보",
        "required": [
          "whenToCancel"
        ],
        "type": "object",
        "properties": {
          "whenToCancel": {
            "type": "string",
            "description": "언제 취소되는지를 설정합니다. NOW일 경우 바로 취소되며, 이외에는 설정 시점이 되었을 때까지 취소 대기중 상태가 됩니다.",
            "enum": [
              "NOW",
              "END_OF_PERIOD",
              "SPECIFIC_DATE_TIME"
            ]
          },
          "when": {
            "type": "string",
            "description": "whenToCancel 이 SPECIFIC_DATE_TIME 일 경우 필수값입니다. 취소되는 시점을 설정할 수 있으며, 시점이 되기 전까지는 취소 대기중 상태가 됩니다.",
            "format": "date-time"
          }
        },
        "description": "취소 정보 - 취소 시점을 설정합니다."
      },
      "ApiResponseSubscriptionManualRenewResultDTO": {
        "title": "단순 API 응답",
        "required": [
          "message"
        ],
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "결과에 대한 메세지"
          },
          "body": {
            "$ref": "#/components/schemas/SubscriptionManualRenewResultDTO"
          }
        }
      },
      "SubscriptionManualRenewResultDTO": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "integer",
            "format": "int64"
          }
        },
        "description": "관련 데이터"
      },
      "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"
          }
        }
      },
      "PriceCreateDTO": {
        "title": "가격플랜 생성 데이터",
        "required": [
          "unit",
          "plan",
          "type"
        ],
        "type": "object",
        "properties": {
          "price": {
            "minimum": 0,
            "exclusiveMinimum": false,
            "type": "number",
            "description": "기본 가격 (기본값: 0)"
          },
          "currencyPrice": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "description": "통화별 기본 가격"
            },
            "description": "통화별 기본 가격"
          },
          "unit": {
            "type": "string",
            "description": "단위"
          },
          "plan": {
            "$ref": "#/components/schemas/Plan"
          },
          "type": {
            "type": "string",
            "description": "가격 플랜 타입",
            "enum": [
              "ONE_TIME",
              "FLAT",
              "UNIT_BASED",
              "USAGE_BASED",
              "VOLUME_BASED",
              "BUNDLE"
            ]
          },
          "firstSale": {
            "$ref": "#/components/schemas/FirstSaleDTO"
          },
          "claim": {
            "$ref": "#/components/schemas/Claim"
          },
          "maximumPurchaseQuantity": {
            "type": "integer",
            "description": "최대 구매 가능 개수 지정",
            "format": "int32"
          },
          "membershipExpirationDate": {
            "type": "integer",
            "description": "구독 만기 기간",
            "format": "int32",
            "deprecated": true
          },
          "membershipExpirationDateType": {
            "type": "string",
            "description": "구독 만기 기간 단위",
            "deprecated": true,
            "enum": [
              "DAY",
              "WEEK",
              "MONTH",
              "YEAR"
            ]
          },
          "expiryRecurringCount": {
            "type": "integer",
            "description": "구독 만료되는 결제 횟수",
            "format": "int32"
          },
          "setupOption": {
            "$ref": "#/components/schemas/PriceSetupOptionDTO"
          },
          "options": {
            "type": "array",
            "description": "추가 구매 가능한 상품 옵션",
            "deprecated": true,
            "items": {
              "$ref": "#/components/schemas/PriceOptionCreateDTO"
            }
          },
          "recurring": {
            "$ref": "#/components/schemas/PriceRecurringCreateDTO"
          },
          "basicServing": {
            "type": "integer",
            "description": "기본 제공량 - 계정/사용량 기반 요금 사용시",
            "format": "int32"
          },
          "isRepresentative": {
            "type": "boolean",
            "description": "대표 가격 지정 - 스텝샵에서 기본 가격으로 설정됩니다. (기본값: false)"
          },
          "onetimeBundlePrice": {
            "type": "number",
            "description": "번들 플랜 설정 - 번들 플랜의 단건 가격을 설정합니다."
          },
          "currencyOnetimeBundlePrice": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "description": "통화별 번들 플랜 단건 가격"
            },
            "description": "통화별 번들 플랜 단건 가격"
          }
        },
        "description": "가격플랜 생성 데이터"
      },
      "PriceOptionCreateDTO": {
        "required": [
          "priceCode"
        ],
        "type": "object",
        "properties": {
          "priceCode": {
            "type": "string"
          }
        },
        "description": "추가 구매 가능한 상품 옵션",
        "deprecated": true
      },
      "PriceRecurringCreateDTO": {
        "required": [
          "interval",
          "intervalCount"
        ],
        "type": "object",
        "properties": {
          "intervalCount": {
            "minimum": 0,
            "type": "integer",
            "format": "int32"
          },
          "interval": {
            "type": "string",
            "enum": [
              "DAY",
              "WEEK",
              "MONTH",
              "YEAR"
            ]
          }
        },
        "description": "반복 주기, 가격 타입이 ONE_TIME이 아닌 경우 필수값입니다. "
      },
      "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": "주문 생성 데이터"
      },
      "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": "주문 항목 생성 데이터 목록"
      },
      "InvoiceCreateDTO": {
        "title": "청구서 생성 데이터",
        "required": [
          "customerId",
          "discount",
          "invoicePayMethods",
          "items",
          "paymentGateway",
          "publishMethods",
          "publishType"
        ],
        "type": "object",
        "properties": {
          "customerId": {
            "minimum": 0,
            "type": "integer",
            "description": "청구서를 받을 고객 번호",
            "format": "int64"
          },
          "items": {
            "minLength": 1,
            "type": "array",
            "description": "청구 상품 및 가격플랜 목록",
            "items": {
              "$ref": "#/components/schemas/InvoiceProductDTO"
            }
          },
          "publishType": {
            "type": "string",
            "description": "청구서 발행 타입",
            "enum": [
              "NOW",
              "RESERVATION"
            ],
            "default": "NOW"
          },
          "purchaseDeadline": {
            "type": "string",
            "description": "결제 링크 유효 기간을 나타냅니다. ISO 8601 형식",
            "format": "date-time"
          },
          "reservationAt": {
            "type": "string",
            "description": "발송 시간을 나타냅니다. ISO 8601 형식",
            "format": "date-time"
          },
          "publishMethods": {
            "type": "array",
            "description": "사용할 발송 수단 목록",
            "items": {
              "type": "string",
              "description": "사용할 발송 수단 목록",
              "enum": [
                "KAKAO",
                "SMS",
                "EMAIL"
              ]
            }
          },
          "invoicePayMethods": {
            "type": "array",
            "description": "지정 결제 수단",
            "items": {
              "type": "string",
              "description": "지정 결제 수단",
              "enum": [
                "CARD",
                "VBANK",
                "BANK",
                "BANK_TRANSFER",
                "CELLPHONE",
                "SIMPLE_PAY",
                "CMS",
                "CARD_BILL",
                "CELLPHONE_BILL",
                "CMS_BILL",
                "PAYPAL"
              ]
            }
          },
          "discount": {
            "minimum": 0,
            "exclusiveMinimum": false,
            "type": "number",
            "description": "할인 금액",
            "default": 0
          },
          "instantAmount": {
            "minimum": 0,
            "exclusiveMinimum": false,
            "type": "number",
            "description": "청구서 즉시 결제"
          },
          "memoToCustomer": {
            "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"
            ]
          },
          "region": {
            "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"
            ]
          },
          "currency": {
            "type": "string",
            "description": "청구서 승인 통화"
          }
        },
        "description": "청구서 생성 데이터"
      },
      "InvoiceResponseDTO": {
        "title": "청구서 생성 응답 정보",
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "청구서 번호",
            "format": "int64"
          }
        }
      },
      "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": "고객과 연관된 구독 목록"
      },
      "Interval": {
        "required": [
          "interval",
          "intervalCount"
        ],
        "type": "object",
        "properties": {
          "interval": {
            "type": "string",
            "enum": [
              "DAY",
              "WEEK",
              "MONTH",
              "YEAR"
            ]
          },
          "intervalCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "description": "구독 주기 정보"
      },
      "InvoiceDTO": {
        "title": "청구서 상세 정보",
        "required": [
          "discount",
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "청구서 번호",
            "format": "int64"
          },
          "status": {
            "type": "string",
            "description": "청구서 상태",
            "enum": [
              "TEMPORARY",
              "RESERVATION",
              "SENT",
              "PAID",
              "OVER_DUE",
              "SEND_FAIL"
            ]
          },
          "customer": {
            "$ref": "#/components/schemas/ProductCustomerdto"
          },
          "publishType": {
            "type": "string",
            "description": "청구서 발행 상태",
            "enum": [
              "NOW",
              "RESERVATION"
            ]
          },
          "order": {
            "$ref": "#/components/schemas/ProductOrderdto"
          },
          "purchaseDeadline": {
            "type": "string",
            "description": "구매 기한",
            "format": "date-time"
          },
          "publishMethod": {
            "uniqueItems": true,
            "type": "array",
            "description": "발송 수단 목록",
            "items": {
              "type": "string",
              "description": "발송 수단 목록",
              "enum": [
                "KAKAO",
                "SMS",
                "EMAIL"
              ]
            }
          },
          "invoicePayMethods": {
            "uniqueItems": true,
            "type": "array",
            "description": "지정 결제 수단 목록",
            "items": {
              "type": "string",
              "description": "지정 결제 수단 목록",
              "enum": [
                "CARD",
                "VBANK",
                "BANK",
                "BANK_TRANSFER",
                "CELLPHONE",
                "SIMPLE_PAY",
                "CMS",
                "CARD_BILL",
                "CELLPHONE_BILL",
                "CMS_BILL",
                "PAYPAL"
              ]
            }
          },
          "discount": {
            "type": "number",
            "description": "할인 금액"
          },
          "memoToCustomer": {
            "type": "string",
            "description": "청구서 메모"
          },
          "reservationAt": {
            "type": "string",
            "description": "예약 일시",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "description": "삭제 일시",
            "format": "date-time"
          },
          "region": {
            "$ref": "#/components/schemas/RegionDTO"
          },
          "currency": {
            "type": "string",
            "description": "승인 통화"
          },
          "baseCurrency": {
            "type": "string",
            "description": "청구서 생성 당시 기준 통화"
          },
          "exchangeRate": {
            "type": "number",
            "description": "청구서 생성 당시 환율(기준통화 -> 승인통화)"
          }
        }
      },
      "PaymentMethodDTO": {
        "title": "결제수단 정보",
        "required": [
          "id",
          "paymentInfo"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "결제수단 번호",
            "format": "int64"
          },
          "paymentInfo": {
            "type": "string",
            "description": "결제수단 정보"
          }
        },
        "description": "고객이 사용중인 결제수단 목록"
      },
      "ReqV1": {
        "required": [
          "requestPrice"
        ],
        "type": "object",
        "properties": {
          "requestPrice": {
            "minimum": 0,
            "type": "number",
            "description": "환불 요청 금액"
          },
          "reason": {
            "type": "string",
            "description": "환불 사유"
          }
        },
        "description": "주문 취소 요청 데이터"
      },
      "DeliveryTrackingDTO": {
        "required": [
          "courier",
          "trackingNumber"
        ],
        "type": "object",
        "properties": {
          "courier": {
            "type": "string",
            "enum": [
              "DOOR_TO_DOOR",
              "LOTTE",
              "DONGBUEXPRESS",
              "HANIPS",
              "HANJIN",
              "HLC",
              "KDEXP",
              "KGLOGIS",
              "KOREANAIR",
              "ILOGEN",
              "EPANTOS",
              "EPOST",
              "INNOGIS",
              "ILYANGLOGIS",
              "CVSNET",
              "EPOST_EMS",
              "FEDEX",
              "KGBLS",
              "OCSKOREA",
              "TNT",
              "UPS",
              "DHL",
              "ETC"
            ]
          },
          "trackingNumber": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "departedAt": {
            "type": "string",
            "format": "date-time"
          },
          "arrivedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PageableDTO": {
        "title": "Pagination 정보",
        "required": [
          "offset",
          "pageNumber",
          "pageSize",
          "paged",
          "sort",
          "unpaged"
        ],
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "description": "오프셋",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "description": "페이지 번호",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "페이지 크기",
            "format": "int32"
          },
          "paged": {
            "type": "boolean",
            "description": "Pagination 정보 포함 여부"
          },
          "sort": {
            "$ref": "#/components/schemas/SortDTO"
          },
          "unpaged": {
            "type": "boolean",
            "description": "Pagination 정보 미포함 여부"
          }
        },
        "description": "Pagination 정보"
      },
      "SortDTO": {
        "title": "Pagination 정렬 정보",
        "required": [
          "empty",
          "sorted",
          "unsorted"
        ],
        "type": "object",
        "properties": {
          "empty": {
            "type": "boolean",
            "description": "비어있는지 여부"
          },
          "sorted": {
            "type": "boolean",
            "description": "정렬되어 있는지 여부"
          },
          "unsorted": {
            "type": "boolean",
            "description": "정렬되어 있지 않은지 여부"
          }
        },
        "description": "정렬 정보"
      },
      "SubscriptionListV1DTO": {
        "title": "구독 목록 정보",
        "required": [
          "baseCurrency",
          "currency",
          "customerName",
          "exchangeRate",
          "id",
          "interval",
          "intervalCount",
          "items",
          "lastPaymentDateTime",
          "price",
          "productName",
          "region",
          "startDateTime",
          "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"
            ]
          },
          "customerName": {
            "type": "string",
            "description": "고객명"
          },
          "productName": {
            "type": "string",
            "description": "상품명"
          },
          "price": {
            "$ref": "#/components/schemas/PriceV1DTO"
          },
          "items": {
            "type": "array",
            "description": "구독 항목들",
            "items": {
              "$ref": "#/components/schemas/SubscriptionItemV1DTO"
            }
          },
          "startDateTime": {
            "type": "string",
            "description": "구독 시작 시점",
            "format": "date-time"
          },
          "lastPaymentDateTime": {
            "type": "string",
            "description": "최근 결제 시점",
            "format": "date-time"
          },
          "nextPaymentDateTime": {
            "type": "string",
            "description": "다음 결제 시점",
            "format": "date-time"
          },
          "expiredDateTime": {
            "type": "string",
            "description": "구독 만료 시점",
            "format": "date-time"
          },
          "pausedDateTime": {
            "type": "string",
            "description": "구독 일시정지 시점",
            "format": "date-time"
          },
          "interval": {
            "type": "string",
            "description": "구독 주기 단위",
            "enum": [
              "DAY",
              "WEEK",
              "MONTH",
              "YEAR"
            ]
          },
          "intervalCount": {
            "type": "integer",
            "description": "구독 주기",
            "format": "int32"
          },
          "paymentMethod": {
            "$ref": "#/components/schemas/CustomerPaymentMethodV1DTO"
          },
          "endDate": {
            "type": "string",
            "description": "종료일",
            "format": "date-time"
          },
          "baseCurrency": {
            "type": "string",
            "description": "부모 주문의 기준통화"
          },
          "currency": {
            "type": "string",
            "description": "부모 주문의 승인통화"
          },
          "exchangeRate": {
            "type": "number",
            "description": "부모 주문의 환율"
          },
          "region": {
            "$ref": "#/components/schemas/RegionV1DTO"
          }
        },
        "description": "구독 목록"
      },
      "SubscriptionListV1PageDTO": {
        "title": "구독 목록 Pagination 정보",
        "required": [
          "content",
          "empty",
          "first",
          "last",
          "number",
          "numberOfElements",
          "pageable",
          "size",
          "sort",
          "totalElements",
          "totalPages"
        ],
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "description": "구독 목록",
            "items": {
              "$ref": "#/components/schemas/SubscriptionListV1DTO"
            }
          },
          "empty": {
            "type": "boolean",
            "description": "목록이 비어있는지 여부"
          },
          "first": {
            "type": "boolean",
            "description": "첫 번째 페이지인지 여부"
          },
          "last": {
            "type": "boolean",
            "description": "마지막 페이지인지 여부"
          },
          "number": {
            "type": "integer",
            "description": "페이지 번호",
            "format": "int32"
          },
          "numberOfElements": {
            "type": "integer",
            "description": "페이지 내 고객 목록 개수",
            "format": "int32"
          },
          "pageable": {
            "$ref": "#/components/schemas/PageableDTO"
          },
          "size": {
            "type": "integer",
            "description": "페이지 크기",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/SortDTO"
          },
          "totalElements": {
            "type": "integer",
            "description": "전체 고객 개수",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "전체 페이지수",
            "format": "int32"
          }
        }
      },
      "SubscriptionCalculatedDTO": {
        "title": "사용량 정산 정보",
        "required": [
          "amount",
          "endDate",
          "items",
          "startDate"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "예상 결제 금액"
          },
          "items": {
            "type": "array",
            "description": "예상 결제 금액 항목들",
            "items": {
              "$ref": "#/components/schemas/SubscriptionCalculatedItemDTO"
            }
          },
          "startDate": {
            "type": "string",
            "description": "측정 시작 시점",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "description": "측정 종료 시점",
            "format": "date-time"
          }
        }
      },
      "SubscriptionCalculatedItemDTO": {
        "required": [
          "amount",
          "currency",
          "name",
          "quantity",
          "subscriptionItemId",
          "type"
        ],
        "type": "object",
        "properties": {
          "subscriptionItemId": {
            "type": "integer",
            "description": "구독 항목 번호",
            "format": "int64"
          },
          "count": {
            "type": "number",
            "description": "현재 사용량"
          },
          "amount": {
            "type": "number",
            "description": "예상 결제 금액"
          },
          "quantity": {
            "type": "integer",
            "description": "수량",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "이름"
          },
          "type": {
            "type": "string",
            "description": "타입",
            "enum": [
              "SKU",
              "TAX",
              "SHIPPING",
              "DISCOUNT",
              "OFFLINE",
              "FEE",
              "ADDS",
              "INSTANT",
              "USAGE"
            ]
          },
          "unit": {
            "type": "string",
            "description": "단위"
          },
          "additionalBillings": {
            "$ref": "#/components/schemas/PriceAdditionalBillingDTO"
          },
          "usageFormula": {
            "type": "string",
            "description": "사용량 기반 과금 계산식"
          },
          "currency": {
            "type": "string",
            "description": "통화"
          }
        },
        "description": "예상 결제 금액 항목들"
      },
      "SubscriptionCalculatedItemV1DTO": {
        "required": [
          "amount",
          "name",
          "subscriptionItemId",
          "type"
        ],
        "type": "object",
        "properties": {
          "subscriptionItemId": {
            "type": "integer",
            "description": "구독 항목 번호",
            "format": "int64"
          },
          "count": {
            "type": "number",
            "description": "현재 사용량"
          },
          "amount": {
            "type": "number",
            "description": "예상 결제 금액"
          },
          "name": {
            "type": "string",
            "description": "이름"
          },
          "type": {
            "type": "string",
            "description": "타입",
            "enum": [
              "SKU",
              "TAX",
              "SHIPPING",
              "DISCOUNT",
              "OFFLINE",
              "FEE",
              "ADDS",
              "INSTANT",
              "USAGE"
            ]
          },
          "unit": {
            "type": "string",
            "description": "단위"
          },
          "additionalBillings": {
            "$ref": "#/components/schemas/PriceAdditionalBillingV1DTO"
          }
        },
        "description": "예상 결제 금액 항목들"
      },
      "SubscriptionCalculatedV1DTO": {
        "title": "사용량 정산 정보",
        "required": [
          "amount",
          "endDate",
          "items",
          "startDate"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "예상 결제 금액"
          },
          "items": {
            "type": "array",
            "description": "예상 결제 금액 항목들",
            "items": {
              "$ref": "#/components/schemas/SubscriptionCalculatedItemV1DTO"
            }
          },
          "startDate": {
            "type": "string",
            "description": "측정 시작 시점",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "description": "측정 종료 시점",
            "format": "date-time"
          }
        }
      },
      "ProductListDTO": {
        "required": [
          "availableRegions",
          "categories",
          "code",
          "createdAt",
          "description",
          "enabledDemo",
          "featuredImageUrl",
          "id",
          "modifiedAt",
          "name",
          "prices",
          "productOrder",
          "status",
          "type",
          "vendorUuid"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "code": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "BOX",
              "SOFTWARE",
              "BUNDLE",
              "INVOICE",
              "DRAFT"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "SALE",
              "OUT_OF_STOCK",
              "UNSOLD",
              "WAITING_APPROVAL",
              "REJECTED"
            ]
          },
          "name": {
            "type": "string"
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "featuredImageUrl": {
            "type": "string"
          },
          "prices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductPricedto"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedAt": {
            "type": "string",
            "format": "date-time"
          },
          "description": {
            "type": "string"
          },
          "categories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductCategoryDTO"
            }
          },
          "vendorUuid": {
            "type": "string",
            "format": "uuid"
          },
          "enabledDemo": {
            "type": "boolean"
          },
          "isOnetimePurchasable": {
            "type": "boolean"
          },
          "productOrder": {
            "type": "integer",
            "format": "int32"
          },
          "countrySetting": {
            "$ref": "#/components/schemas/CountrySettingDTO"
          },
          "availableRegions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RegionDTO"
            }
          }
        },
        "description": "상품 목록"
      },
      "ProductListPageDTO": {
        "title": "상품 목록 Pagination 정보",
        "required": [
          "content",
          "empty",
          "first",
          "last",
          "number",
          "numberOfElements",
          "pageable",
          "size",
          "sort",
          "totalElements",
          "totalPages"
        ],
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "description": "상품 목록",
            "items": {
              "$ref": "#/components/schemas/ProductListDTO"
            }
          },
          "empty": {
            "type": "boolean",
            "description": "목록이 비어있는지 여부"
          },
          "first": {
            "type": "boolean",
            "description": "첫 번째 페이지인지 여부"
          },
          "last": {
            "type": "boolean",
            "description": "마지막 페이지인지 여부"
          },
          "number": {
            "type": "integer",
            "description": "페이지 번호",
            "format": "int32"
          },
          "numberOfElements": {
            "type": "integer",
            "description": "페이지 내 고객 목록 개수",
            "format": "int32"
          },
          "pageable": {
            "$ref": "#/components/schemas/PageableDTO"
          },
          "size": {
            "type": "integer",
            "description": "페이지 크기",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/SortDTO"
          },
          "totalElements": {
            "type": "integer",
            "description": "전체 고객 개수",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "전체 페이지수",
            "format": "int32"
          }
        }
      },
      "OrderListPageV1DTO": {
        "title": "주문 목록 Pagination 정보",
        "required": [
          "content",
          "empty",
          "first",
          "last",
          "number",
          "numberOfElements",
          "pageable",
          "size",
          "sort",
          "totalElements",
          "totalPages"
        ],
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "description": "주문 목록",
            "items": {
              "$ref": "#/components/schemas/OrderListV1DTO"
            }
          },
          "empty": {
            "type": "boolean",
            "description": "목록이 비어있는지 여부"
          },
          "first": {
            "type": "boolean",
            "description": "첫 번째 페이지인지 여부"
          },
          "last": {
            "type": "boolean",
            "description": "마지막 페이지인지 여부"
          },
          "number": {
            "type": "integer",
            "description": "페이지 번호",
            "format": "int32"
          },
          "numberOfElements": {
            "type": "integer",
            "description": "페이지 내 고객 목록 개수",
            "format": "int32"
          },
          "pageable": {
            "$ref": "#/components/schemas/PageableDTO"
          },
          "size": {
            "type": "integer",
            "description": "페이지 크기",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/SortDTO"
          },
          "totalElements": {
            "type": "integer",
            "description": "전체 고객 개수",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "전체 페이지수",
            "format": "int32"
          }
        }
      },
      "OrderListV1DTO": {
        "title": "주문 목록 정보",
        "required": [
          "baseCurrency",
          "claimMethodType",
          "code",
          "createdAt",
          "currency",
          "exchangeRate",
          "id",
          "items",
          "leftAmount",
          "paidAmount",
          "price",
          "productName",
          "region",
          "returnedAmount",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "주문 번호",
            "format": "int64"
          },
          "code": {
            "type": "string",
            "description": "주문 코드"
          },
          "customerName": {
            "type": "string",
            "description": "고객명"
          },
          "type": {
            "type": "string",
            "description": "주문 타입",
            "enum": [
              "RECURRING",
              "ONE_TIME",
              "PAYMENT_METHOD",
              "RECURRING_INITIAL",
              "ADD_USAGE",
              "ADDITIONAL",
              "ADD_PAYMENT_METHOD"
            ]
          },
          "productName": {
            "type": "string",
            "description": "상품명"
          },
          "items": {
            "type": "array",
            "description": "주문 항목",
            "items": {
              "$ref": "#/components/schemas/ProductOrderitemdto"
            }
          },
          "price": {
            "type": "integer",
            "description": "가격",
            "format": "int32"
          },
          "paymentDate": {
            "type": "string",
            "description": "결제 시점",
            "format": "date-time"
          },
          "paymentMethod": {
            "type": "string",
            "description": "결제 수단",
            "enum": [
              "CARD",
              "VBANK",
              "BANK",
              "BANK_TRANSFER",
              "CELLPHONE",
              "SIMPLE_PAY",
              "CMS",
              "CARD_BILL",
              "CELLPHONE_BILL",
              "CMS_BILL",
              "PAYPAL"
            ]
          },
          "purchaseDeadline": {
            "type": "string",
            "description": "청구서 사용시, 구매 기한",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "description": "주문 생성 시점",
            "format": "date-time"
          },
          "modifiedAt": {
            "type": "string",
            "description": "주문 수정 시점",
            "format": "date-time"
          },
          "claimMethodType": {
            "type": "string",
            "description": "선불인지, 후불인지 여부",
            "enum": [
              "PRE",
              "POST"
            ]
          },
          "paidAmount": {
            "type": "number",
            "description": "결제 금액"
          },
          "returnedAmount": {
            "type": "number",
            "description": "환불 금액"
          },
          "leftAmount": {
            "type": "number",
            "description": "환불 안 된 금액"
          },
          "exchangeRate": {
            "type": "number",
            "description": "주문에 적용된 환율"
          },
          "region": {
            "$ref": "#/components/schemas/RegionV1DTO"
          },
          "currency": {
            "type": "string",
            "description": "승인 통화"
          },
          "baseCurrency": {
            "type": "string",
            "description": "주문 생성 당시 기준 통화"
          }
        },
        "description": "주문 목록"
      },
      "InvoiceListDTO": {
        "title": "청구서 목록 정보",
        "required": [
          "baseCurrency",
          "currency",
          "exchangeRate",
          "id",
          "orderCode",
          "orderType",
          "price",
          "productCountryCode",
          "productCurrencyCode",
          "region",
          "vendorUUID"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "청구서 번호",
            "format": "int64"
          },
          "createdAt": {
            "type": "string",
            "description": "생성된 시점",
            "format": "date-time"
          },
          "orderCode": {
            "type": "string",
            "description": "관련 주문 코드"
          },
          "customerName": {
            "type": "string",
            "description": "청구서를 받는 고객 이름"
          },
          "productName": {
            "type": "string",
            "description": "상품명"
          },
          "orderType": {
            "type": "string",
            "description": "주문 타입",
            "enum": [
              "RECURRING",
              "ONE_TIME",
              "PAYMENT_METHOD",
              "RECURRING_INITIAL",
              "ADD_USAGE",
              "ADDITIONAL",
              "ADD_PAYMENT_METHOD"
            ]
          },
          "price": {
            "type": "number",
            "description": "금액"
          },
          "status": {
            "type": "string",
            "description": "청구서 상태",
            "enum": [
              "TEMPORARY",
              "RESERVATION",
              "SENT",
              "PAID",
              "OVER_DUE",
              "SEND_FAIL"
            ]
          },
          "paymentDate": {
            "type": "string",
            "description": "결제 시점",
            "format": "date-time"
          },
          "purchaseDeadline": {
            "type": "string",
            "description": "구매 기한",
            "format": "date-time"
          },
          "vendorUUID": {
            "type": "string",
            "description": "벤더 UUID",
            "format": "uuid"
          },
          "parentVendorUUID": {
            "type": "string",
            "description": "부모 벤더 UUID",
            "format": "uuid"
          },
          "reservationAt": {
            "type": "string",
            "description": "예약 발송일",
            "format": "date-time"
          },
          "productCountryCode": {
            "type": "string",
            "description": "첫번째 상품의 국가 코드",
            "deprecated": true
          },
          "productCurrencyCode": {
            "type": "string",
            "description": "첫번째 상품의 통화 코드",
            "deprecated": true
          },
          "region": {
            "$ref": "#/components/schemas/RegionDTO"
          },
          "currency": {
            "type": "string",
            "description": "승인 통화"
          },
          "baseCurrency": {
            "type": "string",
            "description": "청구서 생성 당시 기준 통화"
          },
          "exchangeRate": {
            "type": "number",
            "description": "청구서 생성 당시 환율(기준통화 -> 승인통화)"
          },
          "invoicePayMethods": {
            "type": "array",
            "description": "청구서 결제 수단 ('계좌결제' 애드온 활성화 시 사용)",
            "items": {
              "type": "string",
              "description": "청구서 결제 수단 ('계좌결제' 애드온 활성화 시 사용)",
              "enum": [
                "CARD",
                "VBANK",
                "BANK",
                "BANK_TRANSFER",
                "CELLPHONE",
                "SIMPLE_PAY",
                "CMS",
                "CARD_BILL",
                "CELLPHONE_BILL",
                "CMS_BILL",
                "PAYPAL"
              ]
            }
          }
        },
        "description": "청구서 목록"
      },
      "InvoiceListPageDTO": {
        "title": "청구서 목록 Pagination 정보",
        "required": [
          "content",
          "empty",
          "first",
          "last",
          "number",
          "numberOfElements",
          "pageable",
          "size",
          "sort",
          "totalElements",
          "totalPages"
        ],
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "description": "청구서 목록",
            "items": {
              "$ref": "#/components/schemas/InvoiceListDTO"
            }
          },
          "empty": {
            "type": "boolean",
            "description": "목록이 비어있는지 여부"
          },
          "first": {
            "type": "boolean",
            "description": "첫 번째 페이지인지 여부"
          },
          "last": {
            "type": "boolean",
            "description": "마지막 페이지인지 여부"
          },
          "number": {
            "type": "integer",
            "description": "페이지 번호",
            "format": "int32"
          },
          "numberOfElements": {
            "type": "integer",
            "description": "페이지 내 고객 목록 개수",
            "format": "int32"
          },
          "pageable": {
            "$ref": "#/components/schemas/PageableDTO"
          },
          "size": {
            "type": "integer",
            "description": "페이지 크기",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/SortDTO"
          },
          "totalElements": {
            "type": "integer",
            "description": "전체 고객 개수",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "전체 페이지수",
            "format": "int32"
          }
        },
        "description": "청구서 목록"
      },
      "InvoiceListResponseDTO": {
        "title": "청구서 목록 및 통계 정보",
        "required": [
          "invoiceList"
        ],
        "type": "object",
        "properties": {
          "invoiceList": {
            "$ref": "#/components/schemas/InvoiceListPageDTO"
          }
        }
      },
      "CustomerOrderV1DTO": {
        "title": "고객과 연관된 주소 정보",
        "required": [
          "amount",
          "claimMethodType",
          "createdAt",
          "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"
          }
        },
        "description": "고객과 연관된 주소 목록"
      },
      "CustomerSubscriptionV1DTO": {
        "title": "고객과 연관된 구독 정보",
        "required": [
          "code",
          "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/SubscriptionItemV1DTO"
            }
          },
          "status": {
            "type": "string",
            "description": "구독 상태",
            "enum": [
              "ACTIVE",
              "UNPAID",
              "PENDING_PAUSE",
              "PAUSE",
              "PENDING_CANCEL",
              "EXPIRED",
              "CANCELED",
              "INCOMPLETE",
              "QUEUEING"
            ]
          },
          "recurring": {
            "$ref": "#/components/schemas/IntervalV1DTO"
          },
          "paymentMethod": {
            "$ref": "#/components/schemas/PaymentMethodV1DTO"
          },
          "endDate": {
            "type": "string",
            "description": "종료일",
            "format": "date-time"
          },
          "lastPaymentDateTime": {
            "type": "string",
            "description": "최근 결제 시점",
            "format": "date-time"
          }
        },
        "description": "고객과 연관된 구독 목록"
      },
      "IntervalV1DTO": {
        "required": [
          "interval",
          "intervalCount"
        ],
        "type": "object",
        "properties": {
          "interval": {
            "type": "string",
            "enum": [
              "DAY",
              "WEEK",
              "MONTH",
              "YEAR"
            ]
          },
          "intervalCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "description": "구독 주기 정보"
      },
      "InvoiceV1DTO": {
        "title": "청구서 상세 정보",
        "required": [
          "baseCurrency",
          "currency",
          "discount",
          "exchangeRate",
          "id",
          "region"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "청구서 번호",
            "format": "int64"
          },
          "status": {
            "type": "string",
            "description": "청구서 상태",
            "enum": [
              "TEMPORARY",
              "RESERVATION",
              "SENT",
              "PAID",
              "OVER_DUE",
              "SEND_FAIL"
            ]
          },
          "customer": {
            "$ref": "#/components/schemas/ProductCustomerv1dto"
          },
          "publishType": {
            "type": "string",
            "description": "청구서 발행 상태",
            "enum": [
              "NOW",
              "RESERVATION"
            ]
          },
          "order": {
            "$ref": "#/components/schemas/OrderV1DTO"
          },
          "purchaseDeadline": {
            "type": "string",
            "description": "구매 기한",
            "format": "date-time"
          },
          "publishMethod": {
            "uniqueItems": true,
            "type": "array",
            "description": "발송 수단 목록",
            "items": {
              "type": "string",
              "description": "발송 수단 목록",
              "enum": [
                "KAKAO",
                "SMS",
                "EMAIL"
              ]
            }
          },
          "invoicePayMethods": {
            "uniqueItems": true,
            "type": "array",
            "description": "지정 결제 수단 목록",
            "items": {
              "type": "string",
              "description": "지정 결제 수단 목록",
              "enum": [
                "CARD",
                "VBANK",
                "BANK",
                "BANK_TRANSFER",
                "CELLPHONE",
                "SIMPLE_PAY",
                "CMS",
                "CARD_BILL",
                "CELLPHONE_BILL",
                "CMS_BILL",
                "PAYPAL"
              ]
            }
          },
          "discount": {
            "type": "integer",
            "description": "할인 금액",
            "format": "int64"
          },
          "memoToCustomer": {
            "type": "string",
            "description": "청구서 메모"
          },
          "reservationAt": {
            "type": "string",
            "description": "예약 일시",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "description": "삭제 일시",
            "format": "date-time"
          },
          "region": {
            "$ref": "#/components/schemas/RegionV1DTO"
          },
          "currency": {
            "type": "string",
            "description": "승인 통화"
          },
          "baseCurrency": {
            "type": "string",
            "description": "청구서 생성 당시 기준 통화"
          },
          "exchangeRate": {
            "type": "number",
            "description": "청구서 생성 당시 환율(기준통화 -> 승인통화)"
          }
        }
      },
      "PaymentMethodV1DTO": {
        "title": "결제수단 정보",
        "required": [
          "id",
          "paymentInfo"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "결제수단 번호",
            "format": "int64"
          },
          "paymentInfo": {
            "type": "string",
            "description": "결제수단 정보"
          }
        },
        "description": "고객이 사용중인 결제수단 목록"
      },
      "DeliveryBunchSingleV1": {
        "required": [
          "deliveryCharge",
          "deliveryItemList",
          "direction",
          "purpose",
          "recipient",
          "status"
        ],
        "type": "object",
        "properties": {
          "purpose": {
            "type": "string",
            "enum": [
              "ORDER",
              "EXCHANGE_COLLECTION",
              "EXCHANGE_DELIVERY",
              "EXCHANGE_REJECTED",
              "RETURN_COLLECTION",
              "RETURN_REJECTED"
            ]
          },
          "direction": {
            "type": "string",
            "enum": [
              "TO_BUYER",
              "TO_SELLER"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "PREPARING",
              "SUSPENDED",
              "ON_THE_WAY",
              "COMPLETED"
            ]
          },
          "deliveryCharge": {
            "type": "integer",
            "format": "int64"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "recipient": {
            "$ref": "#/components/schemas/RecipientDTO"
          },
          "deliveryItemList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeliveryItemSingleV1"
            }
          },
          "tracking": {
            "$ref": "#/components/schemas/DeliveryTrackingDTO"
          }
        }
      },
      "DeliveryItemSingleV1": {
        "required": [
          "orderItemCode"
        ],
        "type": "object",
        "properties": {
          "orderItemCode": {
            "type": "string"
          },
          "movedTo": {
            "type": "string"
          }
        }
      },
      "CustomerListDTO": {
        "title": "고객 목록 정보",
        "required": [
          "activeSubscriptionCount",
          "code",
          "countryCode",
          "customFields",
          "id",
          "marketingEmail",
          "marketingKakao",
          "marketingSms",
          "orderCount",
          "paymentMethods"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "고객 번호",
            "format": "int64"
          },
          "code": {
            "type": "string",
            "description": "고객 코드"
          },
          "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"
          },
          "activeSubscriptionCount": {
            "type": "integer",
            "description": "고객의 활성 구독 개수",
            "format": "int32"
          },
          "paymentMethods": {
            "type": "array",
            "description": "고객이 사용중인 결제수단 목록",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodDTO"
            }
          },
          "marketingSms": {
            "type": "boolean",
            "description": "고객이 허가한 마케팅 채널 - SMS"
          },
          "marketingEmail": {
            "type": "boolean",
            "description": "고객이 허가한 마케팅 채널 - Email"
          },
          "marketingKakao": {
            "type": "boolean",
            "description": "고객이 허가한 마케팅 채널 - Kakao"
          },
          "createdAt": {
            "type": "string",
            "description": "고객 생성 일시",
            "format": "date-time"
          },
          "dormantAt": {
            "type": "string",
            "description": "고객 휴면전환 일시",
            "format": "date-time"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "커스텀 필드 영역"
            },
            "description": "커스텀 필드 영역"
          },
          "countryCode": {
            "type": "string",
            "description": "가입한 위치의 국가 코드"
          }
        },
        "description": "고객 목록"
      },
      "CustomerListPageDTO": {
        "title": "고객 목록 Pagination 정보",
        "required": [
          "content",
          "empty",
          "first",
          "last",
          "number",
          "numberOfElements",
          "pageable",
          "size",
          "sort",
          "totalElements",
          "totalPages"
        ],
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "description": "고객 목록",
            "items": {
              "$ref": "#/components/schemas/CustomerListDTO"
            }
          },
          "empty": {
            "type": "boolean",
            "description": "목록이 비어있는지 여부"
          },
          "first": {
            "type": "boolean",
            "description": "첫 번째 페이지인지 여부"
          },
          "last": {
            "type": "boolean",
            "description": "마지막 페이지인지 여부"
          },
          "number": {
            "type": "integer",
            "description": "페이지 번호",
            "format": "int32"
          },
          "numberOfElements": {
            "type": "integer",
            "description": "페이지 내 고객 목록 개수",
            "format": "int32"
          },
          "pageable": {
            "$ref": "#/components/schemas/PageableDTO"
          },
          "size": {
            "type": "integer",
            "description": "페이지 크기",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/SortDTO"
          },
          "totalElements": {
            "type": "integer",
            "description": "전체 고객 개수",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "전체 페이지수",
            "format": "int32"
          }
        }
      },
      "ProductErrorresponse": {
        "required": [
          "errorCode"
        ],
        "type": "object",
        "properties": {
          "traceId": {
            "type": "string"
          },
          "errorCode": {
            "type": "string"
          },
          "errorMessage": {
            "type": "string"
          },
          "details": {
            "$ref": "#/components/schemas/ReturnError"
          }
        }
      },
      "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"
          }
        }
      },
      "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": "청구서 주문 정보"
      },
      "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": "주문 항목들"
      },
      "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": "상품 정보"
      },
      "ProductPerioddto": {
        "title": "기간 정보",
        "required": [
          "endDateTime",
          "startDateTime"
        ],
        "type": "object",
        "properties": {
          "startDateTime": {
            "type": "string",
            "description": "시작 시점",
            "format": "date-time"
          },
          "endDateTime": {
            "type": "string",
            "description": "끝 시점",
            "format": "date-time"
          }
        },
        "description": "현재 주기 정보"
      },
      "ProductApiresponse": {
        "title": "단순 API 응답",
        "required": [
          "message"
        ],
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "결과에 대한 메세지"
          },
          "body": {
            "type": "object",
            "description": "관련 데이터"
          }
        }
      },
      "ProductCycledto": {
        "title": "기간 정보",
        "required": [
          "interval",
          "intervalCount"
        ],
        "type": "object",
        "properties": {
          "interval": {
            "type": "string",
            "description": "기간 단위 (기본값: MONTH)",
            "enum": [
              "DAY",
              "WEEK",
              "MONTH",
              "YEAR"
            ]
          },
          "intervalCount": {
            "type": "integer",
            "description": "기간 (기본값: 1)",
            "format": "int32"
          }
        },
        "description": "whenToResume 이 PAUSED_UNTIL 일 경우 필수값입니다. 일시정지 되기까지의 기간을 설정합니다. "
      },
      "ProductCustomerv1dto": {
        "title": "고객 상세 정보",
        "required": [
          "additionalRecipients",
          "attributes",
          "createdAt",
          "id",
          "marketingEmail",
          "marketingKakao",
          "marketingSms",
          "orderCount",
          "orders",
          "paymentMethods",
          "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/ShippingV1DTO"
          },
          "orders": {
            "type": "array",
            "description": "고객과 연관된 주소 목록",
            "items": {
              "$ref": "#/components/schemas/CustomerOrderV1DTO"
            }
          },
          "subscriptions": {
            "type": "array",
            "description": "고객과 연관된 구독 목록",
            "items": {
              "$ref": "#/components/schemas/CustomerSubscriptionV1DTO"
            }
          },
          "paymentMethods": {
            "type": "array",
            "description": "고객이 사용중인 결제수단 목록",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodV1DTO"
            }
          },
          "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": "추가 수신인"
            }
          }
        },
        "description": "청구서 받는 고객 정보"
      },
      "Res": {
        "title": "기록 조회",
        "required": [
          "accumulateRecord",
          "amountForQuota",
          "influxDate",
          "restDays"
        ],
        "type": "object",
        "properties": {
          "accumulateQuota": {
            "type": "integer",
            "format": "int64"
          },
          "accumulateRecord": {
            "type": "integer",
            "format": "int64"
          },
          "influxDate": {
            "type": "string",
            "format": "date-time"
          },
          "amountForQuota": {
            "type": "number"
          },
          "restDays": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "RecordForV1": {
        "required": [
          "record",
          "via"
        ],
        "type": "object",
        "properties": {
          "quota": {
            "type": "integer",
            "format": "int64"
          },
          "record": {
            "type": "integer",
            "format": "int64"
          },
          "influxDate": {
            "type": "string",
            "format": "date-time"
          },
          "via": {
            "type": "string",
            "enum": [
              "MANAGER",
              "V1",
              "RENEW",
              "CUSTOMER",
              "SYSTEM",
              "PUBLIC"
            ]
          },
          "payload": {
            "type": "string"
          }
        }
      },
      "Usage_recordErrorresponse": {
        "required": [
          "errorCode"
        ],
        "type": "object",
        "properties": {
          "traceId": {
            "type": "string"
          },
          "errorCode": {
            "type": "string"
          },
          "errorMessage": {
            "type": "string"
          },
          "details": {
            "$ref": "#/components/schemas/ReturnError"
          }
        }
      },
      "Usage_recordReq": {
        "title": "기록 생성",
        "required": [
          "quota",
          "record"
        ],
        "type": "object",
        "properties": {
          "subscriptionItemId": {
            "type": "integer",
            "format": "int64"
          },
          "quota": {
            "type": "integer",
            "description": "기존 AccumulatedQuota 값에 대하여 증감합니다.",
            "format": "int64"
          },
          "record": {
            "type": "integer",
            "description": "기존 AccumulatedRecord 값에 대하여 증감합니다.",
            "format": "int64"
          },
          "influxDate": {
            "type": "string",
            "description": "인입일",
            "format": "date-time"
          },
          "payload": {
            "type": "string"
          }
        }
      },
      "DefaultResponse": {
        "title": "기본 응답 데이터",
        "required": [
          "message",
          "result"
        ],
        "type": "object",
        "properties": {
          "result": {
            "type": "boolean",
            "description": "성공 여부"
          },
          "message": {
            "type": "string",
            "description": "메세지"
          }
        }
      },
      "CreateSubscriptionResponse": {
        "title": "구독 정보",
        "required": [
          "currentPeriodEnd",
          "currentPeriodStart",
          "customer",
          "id",
          "partnerSubscriptionId",
          "recurringInterval",
          "recurringIntervalCount",
          "renewalOrders",
          "start",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "구독 ID - 다른 API 호출에 사용되므로 해당 구독 정보와 함께 저장해놓고 사용하세요.",
            "format": "int64"
          },
          "customer": {
            "$ref": "#/components/schemas/CoverCustomerdto"
          },
          "trialStart": {
            "type": "string",
            "description": "체험기간 시작 시점",
            "format": "date-time"
          },
          "trialEnd": {
            "type": "string",
            "description": "체험기간 종료 시점",
            "format": "date-time"
          },
          "start": {
            "type": "string",
            "description": "구독 시작 시점",
            "format": "date-time"
          },
          "currentPeriodStart": {
            "type": "string",
            "description": "현재 주기의 시작 시점",
            "format": "date-time"
          },
          "currentPeriodEnd": {
            "type": "string",
            "description": "현재 주기의 종료 시점",
            "format": "date-time"
          },
          "canceledAt": {
            "type": "string",
            "description": "취소 시점",
            "format": "date-time"
          },
          "cancelAtPeriodEnd": {
            "type": "boolean",
            "description": "이번 주기가 마지막인지 여부 - 이번 주기 후 만료될 경우 true"
          },
          "status": {
            "type": "string",
            "description": "구독 상태",
            "enum": [
              "ACTIVE",
              "CANCELED",
              "UNPAID",
              "PAUSE",
              "EXPIRED"
            ]
          },
          "initialOrder": {
            "$ref": "#/components/schemas/CoverOrderdto"
          },
          "renewalOrders": {
            "type": "array",
            "description": "구독과 연관된 갱신 주문 정보",
            "items": {
              "$ref": "#/components/schemas/CoverOrderdto"
            }
          },
          "partnerSubscriptionId": {
            "type": "string",
            "description": "가맹점에서 사용하는 구독의 unique ID"
          },
          "recurringIntervalCount": {
            "type": "integer",
            "description": "구독 주기",
            "format": "int32"
          },
          "recurringInterval": {
            "type": "string",
            "description": "구독 주기 단위",
            "enum": [
              "DAY",
              "WEEK",
              "MONTH",
              "YEAR"
            ]
          }
        }
      },
      "CreateSubscriptionRequest": {
        "title": "구독 생성 데이터",
        "required": [
          "currentPeriodEnd",
          "currentPeriodStart",
          "customerId",
          "partnerSubscriptionId",
          "recurringInterval",
          "recurringIntervalCount"
        ],
        "type": "object",
        "properties": {
          "customerId": {
            "type": "integer",
            "description": "고객 ID",
            "format": "int64"
          },
          "trialStart": {
            "type": "string",
            "description": "체험기간 시작 시점",
            "format": "date-time"
          },
          "trialEnd": {
            "type": "string",
            "description": "체험기간 종료 시점",
            "format": "date-time"
          },
          "start": {
            "type": "string",
            "description": "구독 시작 시점",
            "format": "date-time"
          },
          "currentPeriodStart": {
            "type": "string",
            "description": "현재 주기의 시작 시점",
            "format": "date-time"
          },
          "currentPeriodEnd": {
            "type": "string",
            "description": "현재 주기의 종료 시점",
            "format": "date-time"
          },
          "canceledAt": {
            "type": "string",
            "description": "취소 시점",
            "format": "date-time"
          },
          "cancelAtPeriodEnd": {
            "type": "boolean",
            "description": "이번 주기가 마지막인지 여부 - 이번 주기 후 만료될 경우 true 입력"
          },
          "initialOrderId": {
            "type": "integer",
            "description": "구독이 시작되는 최초 주문의 ID",
            "format": "int64"
          },
          "replaceIfExists": {
            "type": "boolean",
            "description": "partnerSubscriptionId 이미 존재할 때 replaceIfExists가 true 이면 값을 수정하고, false 이면 exception 이 발생합니다."
          },
          "recurringIntervalCount": {
            "type": "integer",
            "description": "구독 주기",
            "format": "int32"
          },
          "recurringInterval": {
            "type": "string",
            "description": "구독 주기 단위",
            "enum": [
              "DAY",
              "WEEK",
              "MONTH",
              "YEAR"
            ]
          },
          "partnerSubscriptionId": {
            "type": "string",
            "description": "가맹점에서 사용하는 구독의 unique ID"
          }
        },
        "description": "구독 생성 데이터"
      },
      "CreateRecoveryResponse": {
        "title": "복구 시작 응답",
        "required": [
          "coverId"
        ],
        "type": "object",
        "properties": {
          "coverId": {
            "type": "integer",
            "description": "커버 ID - 다른 동작을 위해 사용됩니다.",
            "format": "int64"
          },
          "retryDate": {
            "type": "string",
            "description": "다음 결제 시도 시점 - 시나리오에 의해서 계산된 시점입니다. 해당 시점에 다시 결제를 시도해주세요. NULL인 경우, 종료된 시나리오입니다.",
            "format": "date-time"
          }
        }
      },
      "CreateRecoveryRequest": {
        "title": "복구 시작 데이터",
        "required": [
          "orderId",
          "subscriptionId"
        ],
        "type": "object",
        "properties": {
          "subscriptionId": {
            "type": "integer",
            "description": "구독 ID",
            "format": "int64"
          },
          "orderId": {
            "type": "integer",
            "description": "주문 ID",
            "format": "int64"
          },
          "errorCode": {
            "type": "string",
            "description": "PG사에서 알아낸 결제 오류 코드"
          },
          "errorMessage": {
            "type": "string",
            "description": "PG사에서 알아낸 결제 오류 메세지"
          }
        },
        "description": "복구 시작 데이터"
      },
      "CreateProductResponse": {
        "required": [
          "id",
          "name",
          "partnerProductId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "상품 ID - 다른 API 호출에 사용되므로 해당 상품 정보와 함께 저장해놓고 사용하세요.",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "description": "상품 이름"
          },
          "featuredImageUrl": {
            "type": "string",
            "description": "상품 대표 이미지 URL"
          },
          "partnerProductId": {
            "type": "string",
            "description": "가맹점에서 사용하는 상품의 unique ID"
          }
        }
      },
      "CreateProductRequest": {
        "title": "상품 생성 데이터",
        "required": [
          "name",
          "partnerProductId"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "상품 이름"
          },
          "featuredImageUrl": {
            "type": "string",
            "description": "상품 대표 이미지 URL"
          },
          "replaceIfExists": {
            "type": "boolean",
            "description": "partnerProductId 이미 존재할 때 replaceIfExists가 true 이면 값을 수정하고, false 이면 exception 이 발생합니다."
          },
          "partnerProductId": {
            "type": "string",
            "description": "가맹점에서 사용하는 상품의 unique ID"
          }
        },
        "description": "상품 생성 데이터"
      },
      "CreatePriceResponse": {
        "title": "가격 플랜 정보",
        "required": [
          "id",
          "isRecurring",
          "name",
          "partnerPriceId",
          "price",
          "product"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "플랜 ID - 다른 API 호출에 사용되므로 해당 플랜 정보와 함께 저장해놓고 사용하세요.",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "description": "플랜 이름"
          },
          "partnerPriceId": {
            "type": "string",
            "description": "가맹점에서 사용하는 플랜의 unique ID"
          },
          "product": {
            "$ref": "#/components/schemas/CoverProductdto"
          },
          "price": {
            "type": "number",
            "description": "판매 가격"
          },
          "isRecurring": {
            "type": "boolean",
            "description": "정기결제인지 여부"
          },
          "recurringInterval": {
            "type": "string",
            "description": "결제 주기에 대한 단위(isRecurring이 true일 때)",
            "enum": [
              "DAY",
              "WEEK",
              "MONTH",
              "YEAR"
            ]
          },
          "recurringIntervalCount": {
            "type": "integer",
            "description": "결제 주기에 대한 수(isRecurring이 true일 때)",
            "format": "int32"
          }
        }
      },
      "CreatePriceRequest": {
        "title": "가격 플랜 생성 데이터",
        "required": [
          "isRecurring",
          "name",
          "partnerPriceId",
          "price",
          "productId"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "플랜 이름"
          },
          "productId": {
            "type": "integer",
            "description": "플랜과 연관된 상품 ID",
            "format": "int64"
          },
          "price": {
            "type": "number",
            "description": "판매 가격"
          },
          "isRecurring": {
            "type": "boolean",
            "description": "정기결제인지 여부"
          },
          "replaceIfExists": {
            "type": "boolean",
            "description": "partnerPriceId 이미 존재할 때 replaceIfExists가 true 이면 값을 수정하고, false 이면 exception 이 발생합니다."
          },
          "recurringInterval": {
            "type": "string",
            "description": "결제 주기에 대한 단위(isRecurring이 true일 때)",
            "enum": [
              "DAY",
              "WEEK",
              "MONTH",
              "YEAR"
            ]
          },
          "recurringIntervalCount": {
            "type": "integer",
            "description": "결제 주기에 대한 수(isRecurring이 true일 때)",
            "format": "int32"
          },
          "partnerPriceId": {
            "type": "string",
            "description": "가맹점에서 사용하는 플랜의 unique ID"
          }
        },
        "description": "가격 생성 데이터"
      },
      "CreateOrderResponse": {
        "title": "구독 정보",
        "required": [
          "amount",
          "amountReturned",
          "customer",
          "id",
          "items",
          "partnerOrderId",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "주문 ID - 다른 API 호출에 사용되므로 해당 주문 정보와 함께 저장해놓고 사용하세요.",
            "format": "int64"
          },
          "customer": {
            "$ref": "#/components/schemas/CoverCustomerdto"
          },
          "amount": {
            "type": "number",
            "description": "주문 금액"
          },
          "amountReturned": {
            "type": "number",
            "description": "환불 금액"
          },
          "items": {
            "type": "array",
            "description": "주문 항목",
            "items": {
              "$ref": "#/components/schemas/CoverOrderitemdto"
            }
          },
          "status": {
            "type": "string",
            "description": "주문 상태",
            "enum": [
              "CREATED",
              "PAID",
              "CANCEL_REQ",
              "CANCELED",
              "CHANGE_REQ",
              "CHANGE_PROCESS",
              "CHANGED",
              "RETURN_REQ",
              "RETURN_PROCESS",
              "RETURNED",
              "PREPARING",
              "SHIPPING",
              "FULFILLED",
              "FULL_REFUND",
              "PARTIAL_REFUND",
              "PAYMENT_FAILURE"
            ]
          },
          "canceledDate": {
            "type": "string",
            "description": "주문 취소 시점",
            "format": "date-time"
          },
          "paymentDate": {
            "type": "string",
            "description": "주문 결제 시점",
            "format": "date-time"
          },
          "idKey": {
            "type": "string",
            "description": "스텝페이 주문 idKey"
          },
          "retryDate": {
            "type": "string",
            "description": "다음 결제 시도 시점 - 시나리오에 의해서 계산된 시점입니다. 해당 시점에 다시 결제를 시도해주세요(실패 주문을 생성했을 때 포함됩니다).",
            "format": "date-time"
          },
          "partnerOrderId": {
            "type": "string",
            "description": "가맹점에서 사용하는 주문의 unique ID"
          }
        }
      },
      "CreateOrderRequest": {
        "title": "주문 생성 데이터",
        "required": [
          "amount",
          "amountReturned",
          "customerId",
          "items",
          "partnerOrderId",
          "paymentGateway",
          "replaceIfExists"
        ],
        "type": "object",
        "properties": {
          "customerId": {
            "type": "integer",
            "description": "고객 ID",
            "format": "int64"
          },
          "amount": {
            "type": "number",
            "description": "주문 금액"
          },
          "amountReturned": {
            "type": "number",
            "description": "환불된 금액"
          },
          "items": {
            "type": "array",
            "description": "주문 항목",
            "items": {
              "$ref": "#/components/schemas/CoverOrderitemcreatedto"
            }
          },
          "paymentDate": {
            "type": "string",
            "description": "결제일",
            "format": "date-time"
          },
          "idKey": {
            "type": "string",
            "description": "스텝페이 결제 ID"
          },
          "replaceIfExists": {
            "type": "boolean",
            "description": "partnerOrderId가 이미 존재할 때 replaceIfExists가 true 이면 값을 수정하고, false 이면 exception 이 발생합니다."
          },
          "canceledDate": {
            "type": "string",
            "description": "취소 날짜",
            "format": "date-time"
          },
          "subscriptionId": {
            "type": "integer",
            "description": "연관된 구독 ID",
            "format": "int64"
          },
          "paymentInfo": {
            "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"
            ]
          },
          "paymentFailed": {
            "type": "boolean",
            "description": "주문 등록과 함께 시나리오가 실행되게 하려면 true 입력"
          },
          "errorCode": {
            "type": "string",
            "description": "PG사에서 받은 에러 코드(paymentFailed가 true일 때)"
          },
          "errorMessage": {
            "type": "string",
            "description": "PG사에서 받은 에러 메세지(paymentFailed가 true일 때)"
          },
          "partnerOrderId": {
            "type": "string",
            "description": "가맹점에서 사용하는 주문의 unique ID"
          }
        },
        "description": "주문 생성 데이터"
      },
      "CreateCustomerResponse": {
        "required": [
          "email",
          "id",
          "name",
          "partnerCustomerId",
          "phone"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "고객 ID - 다른 API 호출에 사용되므로 해당 고객 정보와 함께 저장해놓고 사용하세요.",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "description": "고객 이름"
          },
          "email": {
            "type": "string",
            "description": "고객 email"
          },
          "phone": {
            "type": "string",
            "description": "고객 전화번호"
          },
          "partnerCustomerId": {
            "type": "string",
            "description": "가맹점에서 사용하는 고객의 unique ID"
          }
        }
      },
      "CreateCustomerRequest": {
        "title": "고객 생성 데이터",
        "required": [
          "email",
          "name",
          "partnerCustomerId",
          "phone",
          "replaceIfExists"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "고객 이름"
          },
          "email": {
            "type": "string",
            "description": "고객 email"
          },
          "phone": {
            "type": "string",
            "description": "고객 전화번호"
          },
          "replaceIfExists": {
            "type": "boolean",
            "description": "partnerCustomerId가 이미 존재할 때 replaceIfExists가 true 이면 값을 수정하고, false 이면 exception 이 발생합니다."
          },
          "partnerCustomerId": {
            "type": "string",
            "description": "가맹점에서 사용하는 고객의 unique ID"
          }
        },
        "description": "고객 정보 등록 데이터"
      },
      "ChangeOrderToSuccessResponse": {
        "required": [
          "amount",
          "amountReturned",
          "customer",
          "id",
          "items",
          "partnerOrderId",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "주문 ID - 다른 API 호출에 사용되므로 해당 주문 정보와 함께 저장해놓고 사용하세요.",
            "format": "int64"
          },
          "customer": {
            "$ref": "#/components/schemas/CoverCustomerdto"
          },
          "amount": {
            "type": "number",
            "description": "주문 금액"
          },
          "amountReturned": {
            "type": "number",
            "description": "환불 금액"
          },
          "items": {
            "type": "array",
            "description": "주문 항목",
            "items": {
              "$ref": "#/components/schemas/CoverOrderitemdto"
            }
          },
          "status": {
            "type": "string",
            "description": "주문 상태",
            "enum": [
              "CREATED",
              "PAID",
              "CANCEL_REQ",
              "CANCELED",
              "CHANGE_REQ",
              "CHANGE_PROCESS",
              "CHANGED",
              "RETURN_REQ",
              "RETURN_PROCESS",
              "RETURNED",
              "PREPARING",
              "SHIPPING",
              "FULFILLED",
              "FULL_REFUND",
              "PARTIAL_REFUND",
              "PAYMENT_FAILURE"
            ]
          },
          "canceledDate": {
            "type": "string",
            "description": "주문 취소 시점",
            "format": "date-time"
          },
          "paymentDate": {
            "type": "string",
            "description": "주문 결제 시점",
            "format": "date-time"
          },
          "idKey": {
            "type": "string",
            "description": "스텝페이 주문 idKey"
          },
          "retryDate": {
            "type": "string",
            "description": "다음 결제 시도 시점 - 시나리오에 의해서 계산된 시점입니다. 해당 시점에 다시 결제를 시도해주세요(실패 주문을 생성했을 때 포함됩니다).",
            "format": "date-time"
          },
          "partnerOrderId": {
            "type": "string",
            "description": "가맹점에서 사용하는 주문의 unique ID"
          }
        }
      },
      "CancelOrderResponse": {
        "required": [
          "amount",
          "amountReturned",
          "customer",
          "id",
          "items",
          "partnerOrderId",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "주문 ID - 다른 API 호출에 사용되므로 해당 주문 정보와 함께 저장해놓고 사용하세요.",
            "format": "int64"
          },
          "customer": {
            "$ref": "#/components/schemas/CoverCustomerdto"
          },
          "amount": {
            "type": "number",
            "description": "주문 금액"
          },
          "amountReturned": {
            "type": "number",
            "description": "환불 금액"
          },
          "items": {
            "type": "array",
            "description": "주문 항목",
            "items": {
              "$ref": "#/components/schemas/CoverOrderitemdto"
            }
          },
          "status": {
            "type": "string",
            "description": "주문 상태",
            "enum": [
              "CREATED",
              "PAID",
              "CANCEL_REQ",
              "CANCELED",
              "CHANGE_REQ",
              "CHANGE_PROCESS",
              "CHANGED",
              "RETURN_REQ",
              "RETURN_PROCESS",
              "RETURNED",
              "PREPARING",
              "SHIPPING",
              "FULFILLED",
              "FULL_REFUND",
              "PARTIAL_REFUND",
              "PAYMENT_FAILURE"
            ]
          },
          "canceledDate": {
            "type": "string",
            "description": "주문 취소 시점",
            "format": "date-time"
          },
          "paymentDate": {
            "type": "string",
            "description": "주문 결제 시점",
            "format": "date-time"
          },
          "idKey": {
            "type": "string",
            "description": "스텝페이 주문 idKey"
          },
          "retryDate": {
            "type": "string",
            "description": "다음 결제 시도 시점 - 시나리오에 의해서 계산된 시점입니다. 해당 시점에 다시 결제를 시도해주세요(실패 주문을 생성했을 때 포함됩니다).",
            "format": "date-time"
          },
          "partnerOrderId": {
            "type": "string",
            "description": "가맹점에서 사용하는 주문의 unique ID"
          }
        }
      },
      "GetOrderIdKeyResponse": {
        "required": [
          "orderId"
        ],
        "type": "object",
        "properties": {
          "idKey": {
            "type": "string",
            "description": "idKey"
          },
          "orderId": {
            "type": "integer",
            "description": "주문 ID",
            "format": "int64"
          },
          "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"
            ]
          }
        }
      },
      "CoverErrorresponse": {
        "required": [
          "errorCode"
        ],
        "type": "object",
        "properties": {
          "traceId": {
            "type": "string"
          },
          "errorCode": {
            "type": "string"
          },
          "errorMessage": {
            "type": "string"
          },
          "details": {
            "$ref": "#/components/schemas/ReturnError"
          }
        }
      },
      "CoverCustomerdto": {
        "required": [
          "email",
          "id",
          "name",
          "partnerCustomerId",
          "phone"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "고객 ID - 다른 API 호출에 사용되므로 해당 고객 정보와 함께 저장해놓고 사용하세요.",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "description": "고객 이름"
          },
          "email": {
            "type": "string",
            "description": "고객 email"
          },
          "phone": {
            "type": "string",
            "description": "고객 전화번호"
          },
          "partnerCustomerId": {
            "type": "string",
            "description": "가맹점에서 사용하는 고객의 unique ID"
          }
        },
        "description": "고객 정보"
      },
      "CoverOrderdto": {
        "required": [
          "amount",
          "amountReturned",
          "customer",
          "id",
          "items",
          "partnerOrderId",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "주문 ID - 다른 API 호출에 사용되므로 해당 주문 정보와 함께 저장해놓고 사용하세요.",
            "format": "int64"
          },
          "customer": {
            "$ref": "#/components/schemas/CoverCustomerdto"
          },
          "amount": {
            "type": "number",
            "description": "주문 금액"
          },
          "amountReturned": {
            "type": "number",
            "description": "환불 금액"
          },
          "items": {
            "type": "array",
            "description": "주문 항목",
            "items": {
              "$ref": "#/components/schemas/CoverOrderitemdto"
            }
          },
          "status": {
            "type": "string",
            "description": "주문 상태",
            "enum": [
              "CREATED",
              "PAID",
              "CANCEL_REQ",
              "CANCELED",
              "CHANGE_REQ",
              "CHANGE_PROCESS",
              "CHANGED",
              "RETURN_REQ",
              "RETURN_PROCESS",
              "RETURNED",
              "PREPARING",
              "SHIPPING",
              "FULFILLED",
              "FULL_REFUND",
              "PARTIAL_REFUND",
              "PAYMENT_FAILURE"
            ]
          },
          "canceledDate": {
            "type": "string",
            "description": "주문 취소 시점",
            "format": "date-time"
          },
          "paymentDate": {
            "type": "string",
            "description": "주문 결제 시점",
            "format": "date-time"
          },
          "idKey": {
            "type": "string",
            "description": "스텝페이 주문 idKey"
          },
          "retryDate": {
            "type": "string",
            "description": "다음 결제 시도 시점 - 시나리오에 의해서 계산된 시점입니다. 해당 시점에 다시 결제를 시도해주세요(실패 주문을 생성했을 때 포함됩니다).",
            "format": "date-time"
          },
          "partnerOrderId": {
            "type": "string",
            "description": "가맹점에서 사용하는 주문의 unique ID"
          }
        },
        "description": "구독과 연관된 갱신 주문 정보"
      },
      "CoverOrderitemdto": {
        "title": "주문 항목 정보",
        "required": [
          "quantity"
        ],
        "type": "object",
        "properties": {
          "price": {
            "$ref": "#/components/schemas/CoverPricedto"
          },
          "quantity": {
            "type": "integer",
            "description": "항목 주문 수량",
            "format": "int32"
          }
        },
        "description": "주문 항목"
      },
      "CoverPricedto": {
        "title": "가격 플랜 정보",
        "required": [
          "id",
          "isRecurring",
          "name",
          "partnerPriceId",
          "price",
          "product"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "플랜 ID - 다른 API 호출에 사용되므로 해당 플랜 정보와 함께 저장해놓고 사용하세요.",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "description": "플랜 이름"
          },
          "partnerPriceId": {
            "type": "string",
            "description": "가맹점에서 사용하는 플랜의 unique ID"
          },
          "product": {
            "$ref": "#/components/schemas/CoverProductdto"
          },
          "price": {
            "type": "number",
            "description": "판매 가격"
          },
          "isRecurring": {
            "type": "boolean",
            "description": "정기결제인지 여부"
          },
          "recurringInterval": {
            "type": "string",
            "description": "결제 주기에 대한 단위(isRecurring이 true일 때)",
            "enum": [
              "DAY",
              "WEEK",
              "MONTH",
              "YEAR"
            ]
          },
          "recurringIntervalCount": {
            "type": "integer",
            "description": "결제 주기에 대한 수(isRecurring이 true일 때)",
            "format": "int32"
          }
        },
        "description": "가격 플랜 정보"
      },
      "CoverProductdto": {
        "title": "상품 정보",
        "required": [
          "id",
          "name",
          "partnerProductId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "상품 ID - 다른 API 호출에 사용되므로 해당 상품 정보와 함께 저장해놓고 사용하세요.",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "description": "상품 이름"
          },
          "featuredImageUrl": {
            "type": "string",
            "description": "상품 대표 이미지 URL"
          },
          "partnerProductId": {
            "type": "string",
            "description": "가맹점에서 사용하는 상품의 unique ID"
          }
        },
        "description": "플랜과 연관된 상품 정보"
      },
      "CoverOrderitemcreatedto": {
        "title": "주문 항목 생성",
        "required": [
          "quantity"
        ],
        "type": "object",
        "properties": {
          "priceId": {
            "type": "integer",
            "description": "가격 플랜 ID",
            "format": "int64"
          },
          "quantity": {
            "type": "integer",
            "description": "수량",
            "format": "int32"
          }
        },
        "description": "주문 항목"
      }
    },
    "securitySchemes": {
      "Secret-Token": {
        "type": "apiKey",
        "in": "header",
        "name": "Secret-Token"
      }
    }
  },
  "security": [
    {
      "Secret-Token": []
    }
  ]
}