{"openapi":"3.0.1","info":{"title":"토스플레이스 Open API","description":"토스플레이스 Open API는 서버 간 안정적인 데이터 연동을 위한 API예요. POS 시스템의 주문, 결제, 상품 정보에 안전하게 접근할 수 있어요.\n\n자세한 정보는 [Open API 연동 가이드](https://docs.tossplace.com/reference/open-api/intro.html)를 참고해주세요.\n\n기술 문의: [developer-support@tossplace.com](mailto:developer-support@tossplace.com)","version":"2026-06-15"},"servers":[{"url":"https://open-api.tossplace.com"}],"security":[{"x-access-key":[]},{"x-secret-key":[]}],"paths":{"/api-public/openapi/v1/merchants/{merchantId}/payment/payments/{paymentId}/cancel":{"post":{"tags":["결제"],"summary":"취소된 결제 기록","description":"취소된 결제를 기록합니다. 주문 생성 API를 통해 생성한 주문의 결제 내역에 대해서만 취소 처리할 수 있습니다.","operationId":"cancelPayment","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"paymentId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/PaymentCancel"}}},"required":true},"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponsePayment"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/order/orders":{"get":{"tags":["주문"],"summary":"주문 목록 조회","description":"매장의 주문 목록을 주문 생성 시각 순으로 조회합니다.","operationId":"listOrders","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"orderStates","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","description":"주문 상태","enum":["REQUESTED","OPENED","COMPLETED","CANCELLED","UNDEFINED"]}}},{"name":"sources","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"page","in":"query","required":false,"schema":{"minimum":1,"type":"integer","format":"int32","default":1}},{"name":"size","in":"query","required":false,"schema":{"maximum":500,"minimum":1,"type":"integer","format":"int32","default":100}},{"name":"sortOrder","in":"query","required":false,"schema":{"type":"string","description":"정렬 순서","default":"DESC","enum":["ASC","DESC"]}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseListOrder"}}}}}},"post":{"tags":["주문"],"summary":"주문 생성","description":"주문을 생성합니다.","operationId":"createOrder","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/OrderCreateRequest"}}},"required":true},"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseOrder"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/order/orders/{orderId}/cancel":{"post":{"tags":["주문"],"summary":"주문 취소","description":"주문을 취소하고 주문 상태를 CANCELLED로 변경합니다. 주문에 포함된 결제 내역은 이 API로 취소되지 않습니다.","operationId":"cancelOrder","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"orderId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseOrder"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/discount/discount-policies/batch-auto-apply":{"post":{"tags":["할인"],"summary":"할인 정책 자동 적용 (묶음 요청)","description":"주어진 요청에 자동 적용될 수 있는 할인 정책을 확인합니다. 묶음 요청은 최대 25건까지 가능하며, 응답은 묶음 요청의 순서 그대로 반환됩니다.","operationId":"batchAutoApply","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/DiscountPolicyBatchAutoApplyRequest"}}},"required":true},"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseListListDiscountPolicy"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/discount/discount-policies/auto-apply":{"post":{"tags":["할인"],"summary":"할인 정책 자동 적용","description":"주어진 요청에 자동 적용될 수 있는 할인 정책을 확인합니다.","operationId":"autoApply","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/DiscountPolicyAutoApplyRequest"}}},"required":true},"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseListDiscountPolicy"}}}}}}},"/api-public/openapi/v1/version":{"get":{"tags":["일반"],"summary":"Open API 버전 정보 조회","description":"Open API 버전 정보를 조회합니다.","operationId":"version","responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseVersion"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}":{"get":{"tags":["매장"],"summary":"매장 정보 조회","description":"ID에 해당하는 매장 정보를 조회합니다.","operationId":"getMerchant","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseMerchant"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/payment/payments/{paymentId}":{"get":{"tags":["결제"],"summary":"결제 단건 조회","description":"매장의 결제 하나를 조회합니다.","operationId":"getPayment","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"paymentId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponsePayment"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/payment/payments/by-order-id":{"get":{"tags":["결제"],"summary":"주문의 결제건 모두 조회","description":"주문 하나의 결제 건을 모두 조회합니다.","operationId":"getPaymentsByOrderId","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"orderId","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseListPayment"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/order/orders/{orderId}":{"get":{"tags":["주문"],"summary":"주문 단건 조회","description":"매장의 주문 하나를 조회합니다.","operationId":"getOrder","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"orderId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseOrder"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/order/orders/by-ids":{"get":{"tags":["주문"],"summary":"주문 복수건 조회","description":"ID를 통해 매장의 주문 여러 건을 조회합니다. 최대 25건까지 조회 가능합니다.","operationId":"getOrdersByIds","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"ids","in":"query","required":true,"schema":{"maxItems":25,"minItems":1,"type":"array","items":{"type":"string"}}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseListOrder"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/catalog/rules":{"get":{"tags":["카탈로그"],"summary":"전시 규칙 목록 조회","description":"매장의 전시 규칙 목록을 조회합니다.","operationId":"listCatalogRules","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","required":false,"schema":{"minimum":1,"type":"integer","format":"int32","default":1}},{"name":"size","in":"query","required":false,"schema":{"maximum":500,"minimum":1,"type":"integer","format":"int32","default":100}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseListCatalogRule"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/catalog/rules/{ruleId}":{"get":{"tags":["카탈로그"],"summary":"전시 규칙 단건 조회","description":"매장의 전시 규칙 하나를 조회합니다.","operationId":"getCatalogRule","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"ruleId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseCatalogRule"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/catalog/rules/by-ids":{"get":{"tags":["카탈로그"],"summary":"전시 규칙 복수건 조회","description":"ID를 통해 매장의 전시 규칙 여러 건을 조회합니다. 최대 25건까지 조회 가능합니다.","operationId":"getCatalogRulesByIds","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"ids","in":"query","required":true,"schema":{"maxItems":25,"minItems":1,"type":"array","items":{"type":"string"}}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseListCatalogRule"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/catalog/options":{"get":{"tags":["카탈로그"],"summary":"옵션 목록 조회","description":"매장의 옵션 목록을 조회합니다.","operationId":"listCatalogOptions","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","required":false,"schema":{"minimum":1,"type":"integer","format":"int32","default":1}},{"name":"size","in":"query","required":false,"schema":{"maximum":500,"minimum":1,"type":"integer","format":"int32","default":100}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseListCatalogOption"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/catalog/options/{optionId}":{"get":{"tags":["카탈로그"],"summary":"옵션 단건 조회","description":"매장의 옵션 하나를 조회합니다.","operationId":"getCatalogOption","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"optionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseCatalogOption"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/catalog/options/by-ids":{"get":{"tags":["카탈로그"],"summary":"옵션 복수건 조회","description":"ID를 통해 매장의 옵션 여러 건을 조회합니다. 최대 25건까지 조회 가능합니다.","operationId":"getCatalogOptionsByIds","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"ids","in":"query","required":true,"schema":{"maxItems":25,"minItems":1,"type":"array","items":{"type":"string"}}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseListCatalogOption"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/catalog/items":{"get":{"tags":["카탈로그"],"summary":"상품 목록 조회","description":"매장의 상품 목록을 상품 ID 순으로 조회합니다.","operationId":"listCatalogItems","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","required":false,"schema":{"minimum":1,"type":"integer","format":"int32","default":1}},{"name":"size","in":"query","required":false,"schema":{"maximum":500,"minimum":1,"type":"integer","format":"int32","default":100}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseListCatalogItem"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/catalog/items/{itemId}":{"get":{"tags":["카탈로그"],"summary":"상품 단건 조회","description":"매장의 상품 하나를 조회합니다.","operationId":"getCatalogItem","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"itemId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseCatalogItem"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/catalog/items/search":{"get":{"tags":["카탈로그"],"summary":"상품 검색","description":"조건에 맞는 상품을 검색합니다.","operationId":"searchCatalogItems","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"categoryIds","in":"query","required":false,"schema":{"maxItems":25,"minItems":0,"type":"array","items":{"type":"string"}}},{"name":"page","in":"query","required":false,"schema":{"minimum":1,"type":"integer","format":"int32","default":1}},{"name":"size","in":"query","required":false,"schema":{"maximum":500,"minimum":1,"type":"integer","format":"int32","default":100}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseListCatalogItem"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/catalog/items/by-ids":{"get":{"tags":["카탈로그"],"summary":"상품 복수건 조회","description":"ID를 통해 매장의 상품 여러 건을 조회합니다. 최대 25건까지 조회 가능합니다.","operationId":"getCatalogItemsByIds","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"ids","in":"query","required":true,"schema":{"maxItems":25,"minItems":1,"type":"array","items":{"type":"string"}}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseListCatalogItem"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/catalog/combos":{"get":{"tags":["카탈로그"],"summary":"콤보 목록 조회","description":"매장의 콤보 목록을 조회합니다.","operationId":"listCatalogCombos","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","required":false,"schema":{"minimum":1,"type":"integer","format":"int32","default":1}},{"name":"size","in":"query","required":false,"schema":{"maximum":500,"minimum":1,"type":"integer","format":"int32","default":100}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseListCatalogCombo"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/catalog/combos/{comboId}":{"get":{"tags":["카탈로그"],"summary":"콤보 단건 조회","description":"매장의 콤보 하나를 조회합니다.","operationId":"getCatalogCombo","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"comboId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseCatalogCombo"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/catalog/combos/by-ids":{"get":{"tags":["카탈로그"],"summary":"콤보 복수건 조회","description":"ID를 통해 매장의 콤보 여러 건을 조회합니다. 최대 25건까지 조회 가능합니다.","operationId":"getCatalogCombosByIds","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"ids","in":"query","required":true,"schema":{"maxItems":25,"minItems":1,"type":"array","items":{"type":"string"}}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseListCatalogCombo"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/catalog/categories":{"get":{"tags":["카탈로그"],"summary":"카테고리 목록 조회","description":"매장의 카테고리 목록을 조회합니다.","operationId":"listCatalogCategories","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","required":false,"schema":{"minimum":1,"type":"integer","format":"int32","default":1}},{"name":"size","in":"query","required":false,"schema":{"maximum":500,"minimum":1,"type":"integer","format":"int32","default":100}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseListCatalogCategory"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/catalog/categories/{categoryId}":{"get":{"tags":["카탈로그"],"summary":"카테고리 단건 조회","description":"매장의 카테고리 하나를 조회합니다.","operationId":"getCatalogCategory","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"categoryId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseCatalogCategory"}}}}}}},"/api-public/openapi/v1/merchants/{merchantId}/catalog/categories/by-ids":{"get":{"tags":["카탈로그"],"summary":"카테고리 복수건 조회","description":"ID를 통해 매장의 카테고리 여러 건을 조회합니다. 최대 25건까지 조회 가능합니다.","operationId":"getCatalogCategoriesByIds","parameters":[{"name":"merchantId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"ids","in":"query","required":true,"schema":{"maxItems":25,"minItems":1,"type":"array","items":{"type":"string"}}}],"responses":{"400":{"description":"Bad Request","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"500":{"description":"Internal Server Error","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseObject"}}}},"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/ApiResponseListCatalogCategory"}}}}}}}},"components":{"schemas":{"ApiResponseObject":{"type":"object","properties":{"resultType":{"type":"string","enum":["SUCCESS","FAIL","HTTP_TIMEOUT","NETWORK_ERROR","EXECUTION_FAIL","INTERRUPTED","INTERNAL_ERROR"]},"metadata":{"type":"object"},"error":{"$ref":"#/components/schemas/ErrorMessage"},"success":{"type":"object"}}},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string"},"reason":{"type":"string"},"data":{"type":"object","additionalProperties":{"type":"object"}}}},"PaymentCancel":{"required":["cancelledAt"],"type":"object","properties":{"cancelledAt":{"type":"string","description":"취소 시각","format":"date-time","example":"2025-09-01T00:00:00Z"}},"description":"취소된 결제 기록"},"ApiResponsePayment":{"type":"object","properties":{"resultType":{"type":"string","enum":["SUCCESS","FAIL","HTTP_TIMEOUT","NETWORK_ERROR","EXECUTION_FAIL","INTERRUPTED","INTERNAL_ERROR"]},"metadata":{"type":"object"},"error":{"$ref":"#/components/schemas/ErrorMessage"},"success":{"$ref":"#/components/schemas/Payment"}}},"Payment":{"required":["amount","approvedNo","createdAt","id","merchantId","orderId","paymentMethod","sourceType","state","supplyAmount","taxAmount","taxExemptAmount","tipAmount","updatedAt"],"type":"object","properties":{"id":{"type":"string","description":"결제 ID","example":"640000000000000000"},"merchantId":{"type":"integer","description":"매장 ID","format":"int64","example":42},"orderId":{"type":"string","description":"주문 ID","example":"620000000000000000"},"state":{"type":"string","description":"결제 상태","example":"APPROVED","enum":["APPROVED","CANCELLED","UNDEFINED"]},"sourceType":{"type":"string","description":"결제 수단 분류","example":"CARD","enum":["CASH","CARD","PREPAID_VALUE","ACCOUNT_TRANSFER","BARCODE","EXTERNAL","UNDEFINED"]},"paymentMethod":{"type":"string","description":"결제수단 세부 분류","example":"CARD_NFC"},"van":{"type":"string","description":"VAN","example":"NICE"},"amount":{"type":"integer","description":"결제금액","format":"int64","example":3200},"taxAmount":{"type":"integer","description":"세액","format":"int64","example":291},"supplyAmount":{"type":"integer","description":"공급가액","format":"int64","example":2909},"taxExemptAmount":{"type":"integer","description":"면세금액","format":"int64","example":0},"tipAmount":{"type":"integer","description":"봉사료","format":"int64","example":0},"approvedNo":{"type":"string","description":"승인번호","example":"00000000"},"approvedAt":{"type":"string","description":"승인 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"cancelledAt":{"type":"string","description":"취소 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"cashDetails":{"$ref":"#/components/schemas/PaymentCashDetails"},"cardDetails":{"$ref":"#/components/schemas/PaymentCardDetails"},"prepaidValueDetails":{"$ref":"#/components/schemas/PaymentPrepaidValueDetails"},"accountTransferDetails":{"$ref":"#/components/schemas/PaymentAccountTransferDetails"},"easyPayDetails":{"$ref":"#/components/schemas/PaymentEasyPayDetails"},"externalDetails":{"$ref":"#/components/schemas/PaymentExternalDetails"},"pgDetails":{"$ref":"#/components/schemas/PaymentPgDetails"},"cashReceipt":{"$ref":"#/components/schemas/PaymentCashReceipt"},"settlement":{"$ref":"#/components/schemas/PaymentSettlement"},"createdAt":{"type":"string","description":"생성 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"updatedAt":{"type":"string","description":"변경 시각","format":"date-time","example":"2025-09-01T00:00:00Z"}},"description":"결제"},"PaymentAccountTransferDetails":{"type":"object","properties":{"bankCode":{"type":"integer","description":"은행 코드","format":"int32","example":20},"accountNumber":{"maxLength":128,"minLength":1,"type":"string","description":"계좌번호 (마스킹 적용)","example":"110-***-******"}},"description":"계좌이체 상세"},"PaymentCardDetails":{"type":"object","properties":{"cardType":{"type":"string","description":"카드 종류","example":"CREDIT","enum":["CREDIT","DEBIT","PREPAID","FOREIGN","UNDEFINED"]},"cardBrand":{"maxLength":128,"minLength":1,"type":"string","description":"발급사명"},"cardNo":{"maxLength":128,"minLength":1,"type":"string","description":"카드번호 (마스킹 적용)","example":"00000000********"},"cardBrandId":{"maxLength":128,"minLength":1,"type":"string","description":"발급사 코드"},"acquirer":{"maxLength":128,"minLength":1,"type":"string","description":"매입사명"},"acquirerId":{"maxLength":128,"minLength":1,"type":"string","description":"매입사 코드"},"balance":{"minimum":0,"type":"integer","description":"잔액","format":"int64"},"van":{"maxLength":128,"minLength":1,"type":"string","description":"VAN","example":"NICE"},"approvalNo":{"maxLength":128,"minLength":1,"type":"string","description":"승인번호","example":"12345678"},"amount":{"minimum":0,"type":"integer","description":"결제 금액","format":"int64","example":3200},"installmentMonth":{"maxLength":128,"minLength":1,"type":"string","description":"할부개월 수","example":"00"}},"description":"카드결제 상세"},"PaymentCashDetails":{"type":"object","properties":{"buyerSuppliedAmount":{"minimum":0,"type":"integer","description":"고객이 지불한 금액","format":"int64","example":5000},"changeBackAmount":{"minimum":0,"type":"integer","description":"거스름돈","format":"int64","example":1000}},"description":"현금결제 상세"},"PaymentCashReceipt":{"required":["identityNumber","issuanceType","issueNumber","issuerType","selfIssuance"],"type":"object","properties":{"issuerType":{"type":"string","description":"현금영수증 발급 종류","example":"CONSUMER","enum":["CONSUMER","BUSINESSES","UNDEFINED"]},"issuanceType":{"type":"string","description":"현금영수증 발급 방법","example":"PHONE","enum":["PHONE","BUSINESS_NUMBER","CARD","UNDEFINED"]},"identityNumber":{"maxLength":128,"minLength":0,"type":"string","description":"발급 방법에 해당하는 식별번호 (휴대전화 번호 / 사업자번호 / 카드 번호)","example":"**********"},"selfIssuance":{"type":"boolean","description":"자진 발급 여부","example":true},"issueNumber":{"maxLength":128,"minLength":0,"type":"string","description":"발급 번호","example":"0000000000"},"issuedAt":{"type":"string","description":"발급 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"amount":{"minimum":0,"type":"integer","description":"발급 금액","format":"int64","example":3200}},"description":"현금영수증 상세"},"PaymentEasyPayDetails":{"type":"object","properties":{"provider":{"maxLength":128,"minLength":1,"type":"string","description":"간편결제 제공사","example":"토스페이"},"acquirer":{"maxLength":128,"minLength":1,"type":"string","description":"매입사","example":"토스머니"},"acquirerId":{"maxLength":128,"minLength":1,"type":"string","description":"매입사 코드","example":"TS"},"payType":{"type":"string","description":"간편결제 결제수단 종류","example":"ACCOUNT","enum":["ACCOUNT","CARD","UNDEFINED"]},"amount":{"minimum":0,"type":"integer","description":"결제 금액","format":"int64","example":3200}},"description":"간편결제 상세"},"PaymentExternalDetails":{"type":"object","properties":{"source":{"type":"string","description":"결제수단명","example":"모바일 상품권"}},"description":"외부 결제수단 상세"},"PaymentPgDetails":{"type":"object","properties":{"provider":{"maxLength":128,"minLength":1,"type":"string","description":"PG 벤더명","example":"토스페이먼츠"},"transactionId":{"maxLength":128,"minLength":1,"type":"string","description":"PG 거래 ID","example":"12345"}},"description":"PG사 결제 상세"},"PaymentPrepaidValueDetails":{"type":"object","properties":{"provider":{"maxLength":128,"minLength":1,"type":"string","description":"선불지급수단 제공사"},"code":{"maxLength":128,"minLength":1,"type":"string","description":"선불지급수단 코드 (상품권번호 등)"},"amount":{"minimum":0,"type":"integer","description":"사용 금액","format":"int64","example":3200}},"description":"선불지급수단 결제 상세"},"PaymentSettlement":{"required":["settlementSubject","settlementType"],"type":"object","properties":{"settlementType":{"maxLength":128,"minLength":1,"type":"string","description":"정산 주체 종류","example":"ACQUIRER","enum":["ACQUIRER","PG","UNDEFINED"]},"settlementSubject":{"maxLength":128,"minLength":1,"type":"string","description":"정산 주체"}},"description":"결제 정산 정보"},"Discount":{"required":["amount","fixedAmount","percentage","title"],"type":"object","properties":{"title":{"maxLength":1000,"minLength":0,"type":"string","description":"할인명","example":"PROMOTION"},"type":{"maxLength":128,"minLength":1,"type":"string","description":"할인 종류 (예: \"FIXED_AMOUNT\", \"FIXED_PERCENTAGE\")","example":"FIXED_AMOUNT"},"code":{"maxLength":1000,"minLength":1,"type":"string","description":"할인 코드","example":"PROMOTION_00"},"amount":{"type":"integer","description":"할인 금액","format":"int64","example":1000},"percentage":{"maximum":100,"minimum":0,"type":"number","description":"정률할인 비율 (정률할인이 아닌 경우 0.0)","format":"double","example":0.0},"fixedAmount":{"minimum":0,"type":"integer","description":"정액할인 금액 (정액할인이 아닌 경우 0)","format":"int64","example":1000},"precedence":{"type":"integer","description":"할인 적용 우선순위 (값이 작을수록 높은 우선순위)","format":"int32","example":1},"couponDetails":{"$ref":"#/components/schemas/DiscountCouponDetails"}},"description":"주문에 적용된 할인"},"DiscountCouponDetails":{"required":["provider"],"type":"object","properties":{"provider":{"maxLength":128,"minLength":1,"type":"string","description":"쿠폰 제공자","example":"토스플레이스"},"couponNumber":{"maxLength":128,"minLength":1,"type":"string","description":"쿠폰 번호","example":"123456"},"balance":{"minimum":0,"type":"integer","description":"쿠폰 잔액","format":"int64","example":1000}},"description":"할인 쿠폰 상세 정보"},"Order.Create":{"required":["chargePrice","lineItems","orderKey","orderNumber"],"type":"object","properties":{"orderKey":{"maxLength":128,"minLength":0,"type":"string","description":"주문 키","example":"EXT-20260512-0001"},"orderNumber":{"maxLength":64,"minLength":0,"type":"string","description":"주문 번호","example":"A-001"},"lineItems":{"maxItems":100,"minItems":0,"type":"array","description":"주문 내역","items":{"$ref":"#/components/schemas/OrderLineItem.Create"}},"discounts":{"maxItems":25,"minItems":0,"type":"array","description":"할인 내역","items":{"$ref":"#/components/schemas/Discount"}},"chargePrice":{"$ref":"#/components/schemas/OrderChargePrice"},"requestedInfo":{"$ref":"#/components/schemas/OrderRequestedInfo.Create"},"orderer":{"$ref":"#/components/schemas/OrderOrderer.Create"},"memo":{"maxLength":1000,"minLength":1,"type":"string","description":"주문 메모","example":"얼음 적게"},"openedAt":{"type":"string","description":"주문 시작 시각","format":"date-time","example":"2025-09-01T00:00:00Z"}},"description":"주문 생성 요청"},"OrderChargePrice":{"required":["discountAmount","listPrice","serviceChargeAmount","supplyAmount","taxAmount","taxExemptAmount","tipAmount","totalAmount"],"type":"object","properties":{"listPrice":{"type":"integer","description":"원금액","format":"int64","example":3500},"discountAmount":{"type":"integer","description":"할인금액","format":"int64","example":-300},"tipAmount":{"type":"integer","description":"팁","format":"int64","example":0},"serviceChargeAmount":{"type":"integer","description":"봉사료","format":"int64","example":0},"taxAmount":{"type":"integer","description":"세액","format":"int64","example":291},"supplyAmount":{"type":"integer","description":"공급가액","format":"int64","example":2909},"taxExemptAmount":{"type":"integer","description":"면세금액","format":"int64","example":0},"totalAmount":{"type":"integer","description":"최종금액","format":"int64","example":3200}},"description":"주문 청구 금액"},"OrderCreateRequest":{"required":["order","payments"],"type":"object","properties":{"order":{"$ref":"#/components/schemas/Order.Create"},"payments":{"maxItems":25,"minItems":0,"type":"array","description":"결제 내역 생성 요청","items":{"$ref":"#/components/schemas/Payment.Create"}}},"description":"주문 생성 API 요청"},"OrderItemComponent.Create":{"required":["addOnPriceAmount","comboTargetId","quantity"],"type":"object","properties":{"comboTargetId":{"pattern":"\\d{1,19}","type":"string","description":"콤보 구성 ID","example":"42"},"addOnPriceAmount":{"type":"integer","description":"구성 상품 선택 추가금","format":"int64","example":0},"quantity":{"maximum":999,"minimum":1,"type":"integer","description":"구성 상품 수량","format":"int64","example":1},"optionChoices":{"maxItems":25,"minItems":0,"type":"array","description":"구성 상품에 선택한 옵션","items":{"$ref":"#/components/schemas/OrderItemOptionChoice.Create"}}},"description":"ALPHA 주문 생성 - 콤보(세트상품) 구성"},"OrderItemOptionChoice.Create":{"required":["optionChoiceId","optionId","price","quantity"],"type":"object","properties":{"optionId":{"pattern":"\\d{1,19}","type":"string","description":"옵션 ID","example":"42"},"optionChoiceId":{"pattern":"\\d{1,19}","type":"string","description":"선택지 ID","example":"42"},"price":{"type":"integer","description":"선택지 가격","format":"int64","example":0},"quantity":{"maximum":999,"minimum":1,"type":"integer","description":"선택지 수량","format":"int64","example":1}},"description":"주문 생성 - 주문 내역 옵션 선택지"},"OrderItemPrice":{"required":["isTaxFree","priceType","priceUnit","priceValue","taxInclusive","title"],"type":"object","properties":{"title":{"maxLength":1000,"minLength":0,"type":"string","description":"가격명","example":"기본"},"priceType":{"type":"string","description":"상품 가격 종류","example":"FIXED","enum":["FIXED","VARIABLE","UNIT","UNDEFINED"]},"priceUnit":{"minimum":1,"type":"integer","description":"가격 단위","format":"int64","example":1},"priceValue":{"minimum":0,"type":"integer","description":"가격","format":"int64","example":3000},"isTaxFree":{"type":"boolean","description":"면세 여부","example":false},"taxPercentage":{"maximum":100,"minimum":0,"type":"integer","description":"세율","format":"int32","example":10},"taxInclusive":{"type":"boolean","description":"부가세 포함 여부","example":true}},"description":"카탈로그 - 상품 가격과 동일합니다. 주문 당시 시점의 정보를 제공합니다."},"OrderLineItem.Create":{"required":["diningOption","itemPrice","quantity","targetId"],"type":"object","properties":{"diningOption":{"type":"string","description":"주문 식사 옵션","example":"HERE","enum":["HERE","TOGO","DELIVERY","PICKUP","UNDEFINED"]},"targetType":{"type":"string","description":"주문 내역 대상 종류","example":"ITEM","enum":["ITEM","COMBO","UNDEFINED"]},"targetId":{"pattern":"\\d{1,19}","type":"string","description":"상품/콤보 ID","example":"42"},"itemComponents":{"maxItems":25,"minItems":0,"type":"array","description":"콤보(세트상품) 구성","items":{"$ref":"#/components/schemas/OrderItemComponent.Create"}},"itemPrice":{"$ref":"#/components/schemas/OrderItemPrice"},"quantity":{"maximum":999,"minimum":1,"type":"integer","description":"수량","format":"int64","example":1},"optionChoices":{"maxItems":25,"minItems":0,"type":"array","description":"선택한 옵션","items":{"$ref":"#/components/schemas/OrderItemOptionChoice.Create"}},"appliedDiscounts":{"maxItems":25,"minItems":0,"type":"array","description":"항목별 적용 할인 내역","items":{"$ref":"#/components/schemas/Discount"}},"memo":{"maxLength":1000,"minLength":1,"type":"string","description":"주문 내역 메모","example":"얼음 적게"}},"description":"주문 생성 - 주문 내역"},"OrderOrderer.Create":{"type":"object","properties":{"name":{"maxLength":128,"minLength":1,"type":"string","description":"주문자명","example":"김토스"},"phoneNumber":{"maxLength":128,"minLength":1,"type":"string","description":"주문자 전화번호","example":"01000000000"},"nickname":{"maxLength":128,"minLength":1,"type":"string","description":"주문자 별명","example":"김토스"}},"description":"주문자 정보"},"OrderRequestedInfo.Create":{"required":["expiredAt","requestedAt"],"type":"object","properties":{"requestedAt":{"type":"string","description":"주문 요청 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"expiredAt":{"type":"string","description":"주문 요청 만료 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"expectedReadyAt":{"type":"string","description":"주문의 예상 완료 시각. 손님 기준에서의 예상 완료 시각을 의미합니다. (예: 손님이 15분 뒤 픽업 예정)","format":"date-time","example":"2025-09-01T00:00:00Z"},"estimatedReadyAt":{"type":"string","description":"주문의 예상 준비 완료 시각. 매장 기준에서의 예상 완료 시각을 의미합니다. (예: 20분 뒤 픽업 가능)","format":"date-time","example":"2025-09-01T00:00:00Z"}},"description":"주문 생성 - 주문 요청 정보"},"Payment.Create":{"required":["amount","approvedAt","approvedNo","supplyAmount","taxAmount","taxExemptAmount","tipAmount"],"type":"object","properties":{"approvedNo":{"maxLength":128,"minLength":0,"type":"string","description":"승인 번호","example":"00000000"},"approvedAt":{"type":"string","description":"승인 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"amount":{"minimum":0,"type":"integer","description":"결제 금액","format":"int64","example":5000},"taxAmount":{"minimum":0,"type":"integer","description":"세액","format":"int64","example":454},"supplyAmount":{"minimum":0,"type":"integer","description":"공급가액","format":"int64","example":4546},"taxExemptAmount":{"minimum":0,"type":"integer","description":"면세금액","format":"int64","example":0},"tipAmount":{"minimum":0,"type":"integer","description":"봉사료","format":"int64","example":0},"cashDetails":{"$ref":"#/components/schemas/PaymentCashDetails"},"cardDetails":{"$ref":"#/components/schemas/PaymentCardDetails"},"prepaidValueDetails":{"$ref":"#/components/schemas/PaymentPrepaidValueDetails"},"accountTransferDetails":{"$ref":"#/components/schemas/PaymentAccountTransferDetails"},"easyPayDetails":{"$ref":"#/components/schemas/PaymentEasyPayDetails"},"pgDetails":{"$ref":"#/components/schemas/PaymentPgDetails"},"cashReceipt":{"$ref":"#/components/schemas/PaymentCashReceipt"},"settlement":{"$ref":"#/components/schemas/PaymentSettlement"}},"description":"결제 내역 생성"},"ApiResponseOrder":{"type":"object","properties":{"resultType":{"type":"string","enum":["SUCCESS","FAIL","HTTP_TIMEOUT","NETWORK_ERROR","EXECUTION_FAIL","INTERRUPTED","INTERNAL_ERROR"]},"metadata":{"type":"object"},"error":{"$ref":"#/components/schemas/ErrorMessage"},"success":{"$ref":"#/components/schemas/Order"}}},"Order":{"required":["chargePrice","createdAt","discounts","id","lineItems","merchantId","orderKey","orderState","payments","source","updatedAt"],"type":"object","properties":{"id":{"type":"string","description":"주문 ID","example":"620000000000000000"},"merchantId":{"type":"integer","description":"매장 ID","format":"int64","example":42},"source":{"type":"string","description":"주문채널 (주문이 인입된 경로)","example":"POS"},"orderState":{"type":"string","description":"주문 상태","example":"OPENED","enum":["REQUESTED","OPENED","COMPLETED","CANCELLED","UNDEFINED"]},"orderKey":{"type":"string","description":"주문 키","example":"EXT-20260512-0001"},"orderNumber":{"type":"string","description":"주문 번호","example":"A-001"},"createdAt":{"type":"string","description":"생성 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"updatedAt":{"type":"string","description":"변경 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"openedAt":{"type":"string","description":"주문 수락 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"completedAt":{"type":"string","description":"주문 완료 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"cancelledAt":{"type":"string","description":"주문 취소 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"lineItems":{"type":"array","description":"주문 항목","items":{"$ref":"#/components/schemas/OrderLineItem"}},"requestedInfo":{"$ref":"#/components/schemas/OrderRequestedInfo"},"memo":{"type":"string","description":"주문 메모","example":"얼음 적게"},"payments":{"type":"array","description":"결제 내역","items":{"$ref":"#/components/schemas/Payment"}},"discounts":{"type":"array","description":"할인 내역","items":{"$ref":"#/components/schemas/Discount"}},"chargePrice":{"$ref":"#/components/schemas/OrderChargePrice"}},"description":"\n        주문은 매장에서 소비자가 상품을 구매하고 결제하는 것을 표현하는 개념입니다. 주문은 구매한 상품 목록, 결제 내역, 결제 금액 등 이 과정에서 기록되는 정보를 모두 포함하고 있습니다.\n        주문의 상태(orderState)와 결제 상태(paymentState)는 이 과정에서 주문에 일어날 수 있는 여러 사건을 함축하는 상태 정보입니다. 매장 현장에서 이루어지는 후불 주문은 다음과 같은 과정을 거칩니다: 손님이 테이블에 앉아 메뉴를 주문하면, 주문이 시작되어 (OPENED) 상품이 추가됩니다. 식사를 끝내고 결제를 마치면 결제 완료 상태(COMPLETED)가 됩니다.  결제가 취소되거나, 분할 결제가 일어나거나, 주문 자체가 취소되는 등 이 과정에서 다른 상태에 도달할 수 있습니다.\n    "},"OrderItem":{"required":["category","title"],"type":"object","properties":{"title":{"type":"string","description":"상품명","example":"아메리카노"},"code":{"type":"string","description":"상품 코드"},"category":{"$ref":"#/components/schemas/OrderItemCategory"}},"description":"상품"},"OrderItemCategory":{"required":["title"],"type":"object","properties":{"title":{"type":"string","description":"카테고리명","example":"커피"},"code":{"type":"string","description":"카테고리 코드"}},"description":"상품 카테고리"},"OrderItemOption":{"required":["title"],"type":"object","properties":{"title":{"type":"string","description":"옵션명","example":"온도"}},"description":"상품 옵션"},"OrderItemOptionChoice":{"required":["priceValue","quantity","title"],"type":"object","properties":{"title":{"type":"string","description":"선택지명","example":"ICE"},"code":{"type":"string","description":"선택지 코드","example":"ICE"},"priceValue":{"type":"integer","description":"가격","format":"int64","example":500},"quantity":{"type":"integer","description":"수량","format":"int32","example":1},"option":{"$ref":"#/components/schemas/OrderItemOption"}},"description":"옵션 선택지"},"OrderLineItem":{"required":["appliedDiscounts","diningOption","item","itemPrice","optionChoices","quantity"],"type":"object","properties":{"diningOption":{"type":"string","description":"주문 식사 옵션","example":"HERE","enum":["HERE","TOGO","DELIVERY","PICKUP","UNDEFINED"]},"item":{"$ref":"#/components/schemas/OrderItem"},"itemPrice":{"$ref":"#/components/schemas/OrderItemPrice"},"optionChoices":{"type":"array","description":"선택한 옵션","items":{"$ref":"#/components/schemas/OrderItemOptionChoice"}},"appliedDiscounts":{"type":"array","description":"항목별 적용 할인 내역","items":{"$ref":"#/components/schemas/Discount"}},"quantity":{"type":"integer","description":"수량","format":"int64","example":1},"memo":{"type":"string","description":"주문 내역 메모","example":"얼음 적게"}},"description":"주문에 포함된 개별 상품 주문 건"},"OrderRequestedInfo":{"type":"object","properties":{"requestedAt":{"type":"string","description":"주문 요청 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"expiredAt":{"type":"string","description":"주문 요청 만료 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"expectedReadyAt":{"type":"string","description":"주문의 예상 완료 시각. 손님 기준에서의 예상 완료 시각을 의미합니다. (예: 손님이 15분 뒤 픽업 예정)","format":"date-time","example":"2025-09-01T00:00:00Z"},"estimatedReadyAt":{"type":"string","description":"주문의 예상 준비 완료 시각. 매장 기준에서의 예상 완료 시각을 의미합니다. (예: 20분 뒤 픽업 가능)","format":"date-time","example":"2025-09-01T00:00:00Z"},"acceptedAt":{"type":"string","description":"주문 수락 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"declinedAt":{"type":"string","description":"주문 거절 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"declinedReason":{"type":"string","description":"주문 거절 사유","example":"메뉴 품절"},"declinedCode":{"type":"string","description":"주문 거절 사유 코드"}},"description":"배달 또는 픽업 주문과 같이, 매장에서 수락 또는 거절할 수 있는 주문의 요청 정보"},"DiscountPolicyAutoApplyRequest":{"type":"object","properties":{"itemId":{"type":"string","description":"상품 ID\n\n상품은 할인 정책의 자동 적용 대상 (DiscountAutoApplyTarget) 에 따라 할인이 적용됩니다. 상품 또는 상품이 속한 카테고리를 대상으로 하는 할인 정책이 자동 적용됩니다.","example":"42"}},"description":"할인 정책 자동 적용 요청"},"DiscountPolicyBatchAutoApplyRequest":{"required":["batch"],"type":"object","properties":{"batch":{"type":"array","description":"묶음 요청 (최대 25건)","items":{"$ref":"#/components/schemas/DiscountPolicyAutoApplyRequest"}}},"description":"할인 정책 자동 적용 묶음 요청"},"ApiResponseListListDiscountPolicy":{"type":"object","properties":{"resultType":{"type":"string","enum":["SUCCESS","FAIL","HTTP_TIMEOUT","NETWORK_ERROR","EXECUTION_FAIL","INTERRUPTED","INTERNAL_ERROR"]},"metadata":{"type":"object"},"error":{"$ref":"#/components/schemas/ErrorMessage"},"success":{"type":"array","items":{"type":"array","items":{"$ref":"#/components/schemas/DiscountPolicy"}}}}},"DiscountAutoApply":{"required":["condition"],"type":"object","properties":{"condition":{"$ref":"#/components/schemas/DiscountAutoApplyCondition"},"targets":{"type":"array","description":"할인 자동 적용 대상","items":{"$ref":"#/components/schemas/DiscountAutoApplyTarget"}}},"description":"할인 자동 적용 규칙"},"DiscountAutoApplyCondition":{"required":["appliedToAll"],"type":"object","properties":{"appliedToAll":{"type":"boolean","description":"모든 주문에 할인 적용 여부","example":true},"diningOptions":{"type":"array","description":"할인을 적용할 식사 옵션 (매장 식사, 포장 등)","example":["HERE","TOGO"],"items":{"type":"string","description":"주문 식사 옵션","example":"[\"HERE\",\"TOGO\"]","enum":["HERE","TOGO","DELIVERY","PICKUP","UNDEFINED"]}},"schedule":{"$ref":"#/components/schemas/DiscountAutoApplySchedule"}},"description":"할인 자동 적용 조건"},"DiscountAutoApplyDateRange":{"required":["end","start"],"type":"object","properties":{"start":{"type":"string","description":"시작일","format":"date","example":"2025-09-01"},"end":{"type":"string","description":"종료일","format":"date","example":"2025-09-30"}},"description":"할인 자동 적용 기간 (inclusive)"},"DiscountAutoApplySchedule":{"type":"object","properties":{"dayOfWeeks":{"type":"array","description":"할인 자동 적용 요일","example":["SATURDAY","SUNDAY"],"items":{"type":"string","description":"할인 자동 적용 요일","example":"[\"SATURDAY\",\"SUNDAY\"]"}},"dateRange":{"$ref":"#/components/schemas/DiscountAutoApplyDateRange"},"timeRange":{"$ref":"#/components/schemas/DiscountAutoApplyTimeRange"}},"description":"할인 자동 적용 스케줄"},"DiscountAutoApplyTarget":{"required":["targetId","targetType"],"type":"object","properties":{"targetType":{"type":"string","description":"할인 적용 대상 종류","example":"ITEM","enum":["ITEM","CATEGORY","UNDEFINED"]},"targetId":{"type":"string","description":"할인 적용 대상 ID","example":"42"}},"description":"할인 적용 대상"},"DiscountAutoApplyTimeRange":{"required":["end","start"],"type":"object","properties":{"start":{"$ref":"#/components/schemas/java.time.LocalTime"},"end":{"$ref":"#/components/schemas/java.time.LocalTime"}},"description":"할인 자동 적용 시간대 (inclusive)"},"DiscountPolicy":{"required":["amount","id","percentage","title","type"],"type":"object","properties":{"id":{"type":"string","description":"할인 정책 ID","example":"42"},"title":{"type":"string","description":"할인명","example":"PROMOTION"},"type":{"type":"string","description":"할인 종류 (예: \"FIXED_AMOUNT\", \"FIXED_PERCENTAGE\")","example":"FIXED_AMOUNT"},"code":{"type":"string","description":"할인 코드","example":"PROMOTION_00"},"amount":{"type":"integer","description":"정액할인 금액 (정액할인이 아닌 경우 0)","format":"int64","example":1000},"percentage":{"type":"number","description":"정률할인 비율 (정률할인이 아닌 경우 0.0)","format":"double","example":0.0},"maxAmount":{"type":"integer","description":"최대 할인 금액","format":"int64","example":3000},"autoApply":{"$ref":"#/components/schemas/DiscountAutoApply"}},"description":"할인 정책"},"java.time.LocalTime":{"type":"object","properties":{"hour":{"type":"integer","format":"int32"},"minute":{"type":"integer","format":"int32"},"second":{"type":"integer","format":"int32"},"nano":{"type":"integer","format":"int32"}},"description":"종료 시간","example":"17:59:59"},"ApiResponseListDiscountPolicy":{"type":"object","properties":{"resultType":{"type":"string","enum":["SUCCESS","FAIL","HTTP_TIMEOUT","NETWORK_ERROR","EXECUTION_FAIL","INTERRUPTED","INTERNAL_ERROR"]},"metadata":{"type":"object"},"error":{"$ref":"#/components/schemas/ErrorMessage"},"success":{"type":"array","items":{"$ref":"#/components/schemas/DiscountPolicy"}}}},"ApiResponseVersion":{"type":"object","properties":{"resultType":{"type":"string","enum":["SUCCESS","FAIL","HTTP_TIMEOUT","NETWORK_ERROR","EXECUTION_FAIL","INTERRUPTED","INTERNAL_ERROR"]},"metadata":{"type":"object"},"error":{"$ref":"#/components/schemas/ErrorMessage"},"success":{"$ref":"#/components/schemas/Version"}}},"Version":{"required":["version"],"type":"object","properties":{"version":{"type":"string","description":"Open API 버전"}},"description":"버전 정보"},"ApiResponseMerchant":{"type":"object","properties":{"resultType":{"type":"string","enum":["SUCCESS","FAIL","HTTP_TIMEOUT","NETWORK_ERROR","EXECUTION_FAIL","INTERRUPTED","INTERNAL_ERROR"]},"metadata":{"type":"object"},"error":{"$ref":"#/components/schemas/ErrorMessage"},"success":{"$ref":"#/components/schemas/Merchant"}}},"Merchant":{"required":["businessNumber","displayName","id","name"],"type":"object","properties":{"id":{"type":"integer","description":"매장 ID","format":"int64","example":42},"name":{"type":"string","description":"매장명","example":"플레이스 베이커리"},"businessNumber":{"type":"string","description":"사업자등록번호","example":"0000000000"},"ownerName":{"type":"string","description":"사업주명","example":"김토스"},"displayName":{"type":"string","description":"매장 표시명","example":"플레이스 베이커리"},"phoneNumber":{"type":"string","description":"매장 전화번호","example":"01012345678"},"address":{"type":"string","description":"주소","example":"서울특별시 서초구 강남대로 459 (서초동)"},"latitude":{"type":"number","description":"위도","format":"double","example":37.5031925},"longitude":{"type":"number","description":"경도","format":"double","example":127.0247527},"operatingHours":{"type":"array","description":"영업 시간","items":{"$ref":"#/components/schemas/OperatingHour"}},"attributes":{"type":"object","additionalProperties":{"type":"object","description":"기타 속성","example":{"key":"value"}},"description":"기타 속성","example":{"key":"value"}}},"description":"\n        매장은 주문, 결제, 상품, 고객 관리 등 토스플레이스가 제공하는 서비스가 이루어지는 환경입니다. 매장은 보통 오프라인에서 하나의 사업장을 나타내며, 토스플레이스 Open API를 활용하여 매장이 보유한 데이터에 접근할 수 있습니다.\n        매장에서 앱을 설치하면, 앱에 등록된 key pair (access key와 secret key) 를 이용하여 매장의 데이터에 접근하는 Open API를 호출할 수 있습니다. 앱을 설치하지 않은 매장에 대해서는 API를 호출할 수 없습니다.\n    "},"OperatingHour":{"required":["closeAt","dayOfWeek","openAt"],"type":"object","properties":{"dayOfWeek":{"type":"string","description":"요일","example":"MONDAY"},"openAt":{"$ref":"#/components/schemas/java.time.LocalTime"},"closeAt":{"$ref":"#/components/schemas/java.time.LocalTime"}},"description":"매장 영업 시간"},"ApiResponseListPayment":{"type":"object","properties":{"resultType":{"type":"string","enum":["SUCCESS","FAIL","HTTP_TIMEOUT","NETWORK_ERROR","EXECUTION_FAIL","INTERRUPTED","INTERNAL_ERROR"]},"metadata":{"type":"object"},"error":{"$ref":"#/components/schemas/ErrorMessage"},"success":{"type":"array","items":{"$ref":"#/components/schemas/Payment"}}}},"ApiResponseListOrder":{"type":"object","properties":{"resultType":{"type":"string","enum":["SUCCESS","FAIL","HTTP_TIMEOUT","NETWORK_ERROR","EXECUTION_FAIL","INTERRUPTED","INTERNAL_ERROR"]},"metadata":{"type":"object"},"error":{"$ref":"#/components/schemas/ErrorMessage"},"success":{"type":"array","items":{"$ref":"#/components/schemas/Order"}}}},"ApiResponseListCatalogRule":{"type":"object","properties":{"resultType":{"type":"string","enum":["SUCCESS","FAIL","HTTP_TIMEOUT","NETWORK_ERROR","EXECUTION_FAIL","INTERRUPTED","INTERNAL_ERROR"]},"metadata":{"type":"object"},"error":{"$ref":"#/components/schemas/ErrorMessage"},"success":{"type":"array","items":{"$ref":"#/components/schemas/CatalogRule"}}}},"CatalogRule":{"required":["conditions","conditionsOperator","createdAt","effect","id","targets","updatedAt"],"type":"object","properties":{"id":{"type":"string","description":"전시 규칙 ID","example":"42"},"conditions":{"type":"array","description":"전시 규칙 조건 목록","items":{"$ref":"#/components/schemas/CatalogRuleCondition"}},"conditionsOperator":{"type":"string","description":"전시 규칙 조건 연산자","example":"AND","enum":["AND","OR","UNDEFINED"]},"targets":{"type":"array","description":"전시 규칙 적용 대상 목록","items":{"$ref":"#/components/schemas/CatalogRuleResourceTarget"}},"effect":{"type":"string","description":"전시 규칙 효과","example":"DISPLAY","enum":["DISPLAY","UNDEFINED"]},"createdAt":{"type":"string","description":"생성 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"updatedAt":{"type":"string","description":"수정 시각","format":"date-time","example":"2025-09-01T00:00:00Z"}},"description":"전시 규칙"},"CatalogRuleCondition":{"required":["operator","targets","type"],"type":"object","properties":{"type":{"type":"string","description":"조건 종류","example":"RESOURCE_SELECTED"},"operator":{"type":"string","description":"조건 대상 간 연산자","example":"ANY"},"targets":{"type":"array","description":"조건 대상 목록","items":{"$ref":"#/components/schemas/CatalogRuleResourceTarget"}}},"description":"전시 규칙 조건"},"CatalogRuleResourceTarget":{"required":["id","type"],"type":"object","properties":{"type":{"type":"string","description":"전시 규칙 대상 종류","example":"OPTION_SET","enum":["OPTION_SET","OPTION_CHOICE","UNDEFINED"]},"id":{"type":"string","description":"대상 ID","example":"42"}},"description":"전시 규칙 대상"},"ApiResponseCatalogRule":{"type":"object","properties":{"resultType":{"type":"string","enum":["SUCCESS","FAIL","HTTP_TIMEOUT","NETWORK_ERROR","EXECUTION_FAIL","INTERRUPTED","INTERNAL_ERROR"]},"metadata":{"type":"object"},"error":{"$ref":"#/components/schemas/ErrorMessage"},"success":{"$ref":"#/components/schemas/CatalogRule"}}},"ApiResponseListCatalogOption":{"type":"object","properties":{"resultType":{"type":"string","enum":["SUCCESS","FAIL","HTTP_TIMEOUT","NETWORK_ERROR","EXECUTION_FAIL","INTERRUPTED","INTERNAL_ERROR"]},"metadata":{"type":"object"},"error":{"$ref":"#/components/schemas/ErrorMessage"},"success":{"type":"array","items":{"$ref":"#/components/schemas/CatalogOption"}}}},"CatalogOption":{"required":["choices","createdAt","enabled","id","maxChoices","merchantId","minChoices","order","required","title","updatedAt"],"type":"object","properties":{"id":{"type":"string","description":"옵션 ID","example":"42"},"merchantId":{"type":"integer","description":"매장 ID","format":"int64","example":42},"title":{"type":"string","description":"옵션명","example":"온도"},"code":{"type":"string","description":"옵션 코드"},"enabled":{"type":"boolean","description":"옵션 활성화 및 노출 여부","example":true},"order":{"type":"integer","description":"매장 내 정렬 순서","format":"int32","example":1},"choices":{"type":"array","description":"선택지 목록","items":{"$ref":"#/components/schemas/CatalogOptionChoice"}},"required":{"type":"boolean","description":"필수 선택 여부","example":true},"minChoices":{"type":"integer","description":"고를 수 있는 최소 선택지 개수","format":"int32","example":1},"maxChoices":{"type":"integer","description":"고를 수 있는 최대 선택지 개수","format":"int32","example":3},"createdAt":{"type":"string","description":"생성 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"updatedAt":{"type":"string","description":"수정 시각","format":"date-time","example":"2025-09-01T00:00:00Z"}},"description":"매장에 등록된 옵션"},"CatalogOptionChoice":{"required":["createdAt","enabled","id","maxQuantity","merchantId","minQuantity","optionId","order","priceValue","quantityEnabled","state","title","updatedAt"],"type":"object","properties":{"id":{"type":"string","description":"선택지 ID","example":"42"},"merchantId":{"type":"integer","description":"매장 ID","format":"int64","example":42},"optionId":{"type":"string","description":"선택지가 속한 옵션 ID","example":"7"},"title":{"type":"string","description":"선택지명","example":"ICE"},"code":{"type":"string","description":"선택지 코드"},"state":{"type":"string","description":"옵션 선택지 판매 상태","example":"ON_SALE","enum":["ON_SALE","SOLD_OUT","UNDEFINED"]},"enabled":{"type":"boolean","description":"선택지 활성화 및 노출 여부","example":true},"order":{"type":"integer","description":"옵션 내 정렬 순서","format":"int32","example":1},"priceValue":{"type":"integer","description":"추가 가격","format":"int64","example":500},"imageUrl":{"type":"string","description":"선택지 이미지 URL"},"quantityEnabled":{"type":"boolean","description":"수량 선택 가능 여부","example":true},"minQuantity":{"type":"integer","description":"선택 가능 최소 수량","format":"int32","example":1},"maxQuantity":{"type":"integer","description":"선택 가능 최대 수량","format":"int32","example":999},"createdAt":{"type":"string","description":"생성 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"updatedAt":{"type":"string","description":"수정 시각","format":"date-time","example":"2025-09-01T00:00:00Z"}},"description":"옵션의 선택지"},"ApiResponseCatalogOption":{"type":"object","properties":{"resultType":{"type":"string","enum":["SUCCESS","FAIL","HTTP_TIMEOUT","NETWORK_ERROR","EXECUTION_FAIL","INTERRUPTED","INTERNAL_ERROR"]},"metadata":{"type":"object"},"error":{"$ref":"#/components/schemas/ErrorMessage"},"success":{"$ref":"#/components/schemas/CatalogOption"}}},"ApiResponseListCatalogItem":{"type":"object","properties":{"resultType":{"type":"string","enum":["SUCCESS","FAIL","HTTP_TIMEOUT","NETWORK_ERROR","EXECUTION_FAIL","INTERRUPTED","INTERNAL_ERROR"]},"metadata":{"type":"object"},"error":{"$ref":"#/components/schemas/ErrorMessage"},"success":{"type":"array","items":{"$ref":"#/components/schemas/CatalogItem"}}}},"CatalogCategory":{"required":["createdAt","enabled","id","merchantId","order","title","updatedAt"],"type":"object","properties":{"id":{"type":"string","description":"카테고리 ID","example":"42"},"merchantId":{"type":"integer","description":"매장 ID","format":"int64","example":42},"title":{"type":"string","description":"카테고리명","example":"커피"},"code":{"type":"string","description":"카테고리 코드"},"enabled":{"type":"boolean","description":"카테고리 활성화 및 노출 여부","example":true},"order":{"type":"integer","description":"매장 내 정렬 순서","format":"int32","example":1},"createdAt":{"type":"string","description":"생성 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"updatedAt":{"type":"string","description":"수정 시각","format":"date-time","example":"2025-09-01T00:00:00Z"}},"description":"매장에 등록된 카테고리"},"CatalogItem":{"required":["category","createdAt","description","diningOptions","enabled","id","labels","merchantId","options","order","price","state","title","updatedAt"],"type":"object","properties":{"id":{"type":"string","description":"상품 ID","example":"42"},"merchantId":{"type":"integer","description":"매장 ID","format":"int64","example":42},"category":{"$ref":"#/components/schemas/CatalogCategory"},"title":{"type":"string","description":"상품명","example":"아메리카노"},"code":{"type":"string","description":"상품코드"},"state":{"type":"string","description":"상품 판매 상태","example":"ON_SALE","enum":["ON_SALE","SOLD_OUT","UNDEFINED"]},"enabled":{"type":"boolean","description":"상품 활성화 및 노출 여부","example":true},"order":{"type":"integer","description":"카테고리 내 정렬 순서","format":"int32","example":1},"description":{"type":"string","description":"상품 설명"},"imageUrl":{"type":"string","description":"상품 이미지 URL"},"labels":{"type":"array","description":"상품 라벨 목록","example":["신규"],"items":{"type":"string","description":"상품 라벨 목록","example":"[\"신규\"]"}},"price":{"$ref":"#/components/schemas/CatalogItemPrice"},"priceVariations":{"type":"array","description":"동적으로 변경되는 가격 정보","items":{"$ref":"#/components/schemas/CatalogItemPriceVariation"}},"enableSchedule":{"$ref":"#/components/schemas/CatalogSchedule"},"diningOptions":{"type":"array","description":"상품을 제공하는 식사 옵션 목록","example":["HERE","TOGO"],"items":{"type":"string","description":"제공 식사 옵션","example":"[\"HERE\",\"TOGO\"]","enum":["HERE","TOGO","UNDEFINED"]}},"options":{"type":"array","description":"옵션 목록","items":{"$ref":"#/components/schemas/CatalogOption"}},"attributes":{"type":"object","additionalProperties":{"type":"object","description":"기타 속성","example":{"key":"value"}},"description":"기타 속성","example":{"key":"value"}},"createdAt":{"type":"string","description":"생성 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"updatedAt":{"type":"string","description":"수정 시각","format":"date-time","example":"2025-09-01T00:00:00Z"}},"description":"매장에 등록된 상품"},"CatalogItemPrice":{"required":["priceType","priceUnit","priceValue","title"],"type":"object","properties":{"title":{"type":"string","description":"가격명","example":"기본"},"priceType":{"type":"string","description":"상품 가격 종류","example":"FIXED","enum":["FIXED","VARIABLE","UNIT","UNDEFINED"]},"priceUnit":{"type":"integer","description":"가격 단위","format":"int64","example":1},"priceValue":{"type":"integer","description":"가격","format":"int64","example":3000},"barcode":{"type":"string","description":"바코드"}},"description":"상품 가격"},"CatalogItemPriceVariation":{"required":["priceValue","type","value"],"type":"object","properties":{"type":{"type":"string","description":"가격 변동 유형","example":"DINING_OPTION"},"value":{"type":"string","description":"가격 변동 적용 조건 값","example":"HERE"},"priceValue":{"type":"integer","description":"변동 가격","format":"int64","example":3000}},"description":"주문 맥락에 따라 동적으로 변경되는 가격 정보"},"CatalogSchedule":{"type":"object","properties":{"daysOfWeek":{"type":"array","description":"노출 요일","example":["FRIDAY","SATURDAY"],"items":{"type":"string","description":"노출 요일","example":"[\"FRIDAY\",\"SATURDAY\"]"}},"dateRange":{"$ref":"#/components/schemas/CatalogScheduleDateRange"},"timeRange":{"$ref":"#/components/schemas/CatalogScheduleTimeRange"}},"description":"활성화 및 노출 시간·일자 설정"},"CatalogScheduleDateRange":{"required":["start"],"type":"object","properties":{"start":{"type":"string","description":"시작일","format":"date","example":"2025-09-01"},"end":{"type":"string","description":"종료일","format":"date","example":"2025-09-30"}},"description":"노출 기간 (inclusive)"},"CatalogScheduleTimeRange":{"required":["end","start"],"type":"object","properties":{"start":{"$ref":"#/components/schemas/java.time.LocalTime"},"end":{"$ref":"#/components/schemas/java.time.LocalTime"}},"description":"노출 시간 (inclusive)"},"ApiResponseCatalogItem":{"type":"object","properties":{"resultType":{"type":"string","enum":["SUCCESS","FAIL","HTTP_TIMEOUT","NETWORK_ERROR","EXECUTION_FAIL","INTERRUPTED","INTERNAL_ERROR"]},"metadata":{"type":"object"},"error":{"$ref":"#/components/schemas/ErrorMessage"},"success":{"$ref":"#/components/schemas/CatalogItem"}}},"ApiResponseListCatalogCombo":{"type":"object","properties":{"resultType":{"type":"string","enum":["SUCCESS","FAIL","HTTP_TIMEOUT","NETWORK_ERROR","EXECUTION_FAIL","INTERRUPTED","INTERNAL_ERROR"]},"metadata":{"type":"object"},"error":{"$ref":"#/components/schemas/ErrorMessage"},"success":{"type":"array","items":{"$ref":"#/components/schemas/CatalogCombo"}}}},"CatalogCombo":{"required":["basePriceValue","createdAt","description","enabled","id","labels","merchantId","order","targetGroups","title","updatedAt"],"type":"object","properties":{"id":{"type":"string","description":"콤보 ID","example":"42"},"merchantId":{"type":"integer","description":"매장 ID","format":"int64","example":42},"title":{"type":"string","description":"콤보명","example":"음료+디저트 세트"},"code":{"type":"string","description":"콤보 코드"},"enabled":{"type":"boolean","description":"콤보 활성화 및 노출 여부","example":true},"order":{"type":"integer","description":"정렬 순서","format":"int32","example":1},"description":{"type":"string","description":"콤보 설명"},"imageUrl":{"type":"string","description":"콤보 이미지 URL"},"labels":{"type":"array","description":"콤보 라벨 목록","example":["신규"],"items":{"type":"string","description":"콤보 라벨 목록","example":"[\"신규\"]"}},"basePriceValue":{"type":"integer","description":"콤보 판매 가격","format":"int64","example":9000},"originalPriceValue":{"type":"integer","description":"콤보 원래 가격\n콤보를 구성하는 상품의 원래 가격 합계 (할인 전 가격)","format":"int64","example":10000},"targetGroups":{"type":"array","description":"콤보 구성 상품군 목록","items":{"$ref":"#/components/schemas/CatalogComboTargetGroup"}},"createdAt":{"type":"string","description":"생성 시각","format":"date-time","example":"2025-09-01T00:00:00Z"},"updatedAt":{"type":"string","description":"수정 시각","format":"date-time","example":"2025-09-01T00:00:00Z"}},"description":"매장에 등록된 콤보(세트상품)"},"CatalogComboTarget":{"required":["additionalPriceValue","default","groupId","id","item","merchantId","order"],"type":"object","properties":{"id":{"type":"string","description":"구성 ID","example":"42"},"merchantId":{"type":"integer","description":"매장 ID","format":"int64","example":42},"groupId":{"type":"string","description":"구성 상품군 ID","example":"42"},"item":{"$ref":"#/components/schemas/CatalogItem"},"order":{"type":"integer","description":"구성 배치 순서","format":"int32","example":1},"default":{"type":"boolean","description":"기본 선택 여부","example":false},"additionalPriceValue":{"type":"integer","description":"선택 시 발생하는 추가 가격","format":"int64","example":500}},"description":"콤보 구성"},"CatalogComboTargetGroup":{"required":["description","id","maxQuantity","merchantId","minQuantity","order","targets","title"],"type":"object","properties":{"id":{"type":"string","description":"상품군 ID","example":"42"},"merchantId":{"type":"integer","description":"매장 ID","format":"int64","example":42},"title":{"type":"string","description":"상품군명","example":"음료"},"description":{"type":"string","description":"상품군 설명"},"order":{"type":"integer","description":"상품군 배치 순서","format":"int32","example":1},"minQuantity":{"type":"integer","description":"선택 가능한 최소 상품 개수","format":"int32","example":1},"maxQuantity":{"type":"integer","description":"선택 가능한 최대 상품 개수","format":"int32","example":3},"targets":{"type":"array","description":"상품군에 포함된 상품 목록","items":{"$ref":"#/components/schemas/CatalogComboTarget"}}},"description":"콤보 구성 상품군"},"ApiResponseCatalogCombo":{"type":"object","properties":{"resultType":{"type":"string","enum":["SUCCESS","FAIL","HTTP_TIMEOUT","NETWORK_ERROR","EXECUTION_FAIL","INTERRUPTED","INTERNAL_ERROR"]},"metadata":{"type":"object"},"error":{"$ref":"#/components/schemas/ErrorMessage"},"success":{"$ref":"#/components/schemas/CatalogCombo"}}},"ApiResponseListCatalogCategory":{"type":"object","properties":{"resultType":{"type":"string","enum":["SUCCESS","FAIL","HTTP_TIMEOUT","NETWORK_ERROR","EXECUTION_FAIL","INTERRUPTED","INTERNAL_ERROR"]},"metadata":{"type":"object"},"error":{"$ref":"#/components/schemas/ErrorMessage"},"success":{"type":"array","items":{"$ref":"#/components/schemas/CatalogCategory"}}}},"ApiResponseCatalogCategory":{"type":"object","properties":{"resultType":{"type":"string","enum":["SUCCESS","FAIL","HTTP_TIMEOUT","NETWORK_ERROR","EXECUTION_FAIL","INTERRUPTED","INTERNAL_ERROR"]},"metadata":{"type":"object"},"error":{"$ref":"#/components/schemas/ErrorMessage"},"success":{"$ref":"#/components/schemas/CatalogCategory"}}}},"securitySchemes":{"x-access-key":{"type":"apiKey","name":"x-access-key","in":"header"},"x-secret-key":{"type":"apiKey","name":"x-secret-key","in":"header"}}}}