---
updatedAt: 2026-04-22T09:48:12.000Z
agentTools:
  projectIndex: https://developers.modusign.co.kr/llms.txt
---

# 템플릿 생성

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "paths": {
    "/templates": {
      "post": {
        "operationId": "TemplateController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTemplateRequestDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateTemplateResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "요청 검증 실패 (조건부 표시 규칙의 형식 오류 포함)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationFailedResponseDto"
                },
                "examples": {
                  "groupMemberDataLabelTakesIndex": {
                    "summary": "그룹 멤버의 dataLabel 이 라벨 없는 멤버가 받을 번호와 같음",
                    "value": {
                      "type": "ValidationFailedException",
                      "title": "Validation failed",
                      "instance": "/templates",
                      "detail": "Validation failed with 1 properties: participants[0].fields",
                      "data": {
                        "constraints": [
                          {
                            "property": "participants[0].fields",
                            "message": "Checkbox dataLabel must not equal the number given to an unlabeled member of the same group."
                          }
                        ]
                      }
                    }
                  },
                  "validationFailed": {
                    "summary": "규칙의 조건이 비어 있음",
                    "value": {
                      "type": "ValidationFailedException",
                      "title": "Validation failed",
                      "instance": "/templates",
                      "detail": "Validation failed with 1 properties: participants[0].fields[1].conditionalRule.triggers",
                      "data": {
                        "constraints": [
                          {
                            "property": "participants[0].fields[1].conditionalRule.triggers",
                            "message": "triggers must contain at least 1 elements"
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "요금제 검증에 실패했습니다. 사용량을 모두 사용했으면 `UsageLimitExceededException`으로 `data` 없이 응답합니다. 그 밖의 원인은 `ForbiddenException`의 `data.reason`(THROTTLE_EXCEEDED, FEATURE_NOT_INCLUDED, SUBSCRIPTION_INACTIVE, SUBSCRIPTION_NOT_FOUND)으로 구분합니다. `data.throttleName`은 수량 상한 목록, `data.features`는 권한 목록의 값이며 두 목록은 서로 다릅니다.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlanAuthorityErrorResponseDto"
                }
              }
            }
          },
          "422": {
            "description": "규칙 그래프 위반 또는 같은 요청 안의 중복 대상",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ConditionalRuleReferenceNotFoundException"
                    },
                    {
                      "$ref": "#/components/schemas/ConditionalRuleCycleDetectedException"
                    },
                    {
                      "$ref": "#/components/schemas/ConditionalRuleParticipantScopeViolationException"
                    },
                    {
                      "$ref": "#/components/schemas/ConditionalRuleTargetLimitExceededException"
                    },
                    {
                      "$ref": "#/components/schemas/ConditionalRuleTriggerValueNotAllowedException"
                    },
                    {
                      "$ref": "#/components/schemas/ConditionalRuleCarrierNotAllowedException"
                    },
                    {
                      "$ref": "#/components/schemas/ConditionalRuleRequesterCarrierNotAllowedException"
                    },
                    {
                      "$ref": "#/components/schemas/DataLabelNotUniqueException"
                    },
                    {
                      "$ref": "#/components/schemas/ConditionalRuleOneClickTargetNotAllowedException"
                    },
                    {
                      "$ref": "#/components/schemas/ConditionalRuleGraphSizeExceededException"
                    }
                  ]
                },
                "examples": {
                  "referenceNotFound": {
                    "summary": "규칙이 가리키는 조건 입력란이 없음",
                    "value": {
                      "instance": "/documents",
                      "type": "ConditionalRuleReferenceNotFoundException",
                      "title": "Conditional rule refers to a field that does not exist",
                      "detail": "Conditional rule refers to '결제수단', which is not in the requested document. Check that the field is not excluded.",
                      "data": {
                        "dataLabel": "결제수단",
                        "groupDataLabel": null
                      }
                    }
                  },
                  "cycleDetected": {
                    "summary": "순환 참조",
                    "value": {
                      "instance": "/documents",
                      "type": "ConditionalRuleCycleDetectedException",
                      "title": "Conditional rule graph must be acyclic",
                      "detail": "Conditional rule cycle detected: 결제수단 -> 카드종류 -> 결제수단.",
                      "data": {
                        "cycle": [
                          "결제수단",
                          "카드종류",
                          "결제수단"
                        ]
                      }
                    }
                  },
                  "participantScopeViolation": {
                    "summary": "서로 다른 참여자의 입력란을 조건·대상으로 연결",
                    "value": {
                      "instance": "/documents",
                      "type": "ConditionalRuleParticipantScopeViolationException",
                      "title": "Conditional rule must stay within a single participant",
                      "detail": "Target field '카드번호' belongs to participant '보증인' but its trigger field '결제수단' belongs to participant '신청자'.",
                      "data": {
                        "targetDataLabel": "카드번호",
                        "targetParticipantDataLabel": "보증인",
                        "triggerDataLabel": "결제수단",
                        "triggerParticipantDataLabel": "신청자"
                      }
                    }
                  },
                  "targetLimitExceeded": {
                    "summary": "한 규칙의 대상 수 상한 초과",
                    "value": {
                      "instance": "/documents",
                      "type": "ConditionalRuleTargetLimitExceededException",
                      "title": "Conditional rule target count exceeded",
                      "detail": "A conditional rule triggered by '결제수단' must target at most 100 carriers. (currentCount: 101)",
                      "data": {
                        "triggerDataLabel": "결제수단",
                        "maxCount": 100,
                        "currentCount": 101
                      }
                    }
                  },
                  "triggerValueNotAllowed": {
                    "summary": "조건 입력란이 가질 수 없는 기대값",
                    "value": {
                      "instance": "/documents",
                      "type": "ConditionalRuleTriggerValueNotAllowedException",
                      "title": "Conditional rule trigger value is not allowed",
                      "detail": "Conditional rule expects '결제수단' to be '신용가드', which is not one of its allowed values ('신용카드', '현금').",
                      "data": {
                        "dataLabel": "결제수단",
                        "groupDataLabel": null,
                        "value": "신용가드",
                        "allowedValues": [
                          "신용카드",
                          "현금"
                        ]
                      }
                    }
                  },
                  "carrierNotAllowed": {
                    "summary": "조건 입력란으로 쓸 수 없는 종류",
                    "value": {
                      "instance": "/documents",
                      "type": "ConditionalRuleCarrierNotAllowedException",
                      "title": "Conditional rule carrier is not allowed",
                      "detail": "'이름' of type 'TEXT' cannot be used as the trigger of a conditional rule.",
                      "data": {
                        "dataLabel": "이름",
                        "fieldType": "TEXT",
                        "role": "TRIGGER"
                      }
                    }
                  },
                  "requesterCarrierNotAllowed": {
                    "summary": "요청자 입력란을 규칙에 사용",
                    "value": {
                      "instance": "/documents",
                      "type": "ConditionalRuleRequesterCarrierNotAllowedException",
                      "title": "Requester field cannot take part in a conditional rule",
                      "detail": "Field '계약금액' belongs to requester '요청자' and cannot be used as the trigger of a conditional rule.",
                      "data": {
                        "dataLabel": "계약금액",
                        "participantDataLabel": "요청자",
                        "role": "TRIGGER"
                      }
                    }
                  },
                  "dataLabelNotUnique": {
                    "summary": "같은 요청에 같은 체크박스 그룹을 두 번 지정",
                    "value": {
                      "instance": "/documents",
                      "type": "DataLabelNotUniqueException",
                      "title": "Data label must be unique",
                      "detail": "Data label '수신채널' is duplicated",
                      "data": {
                        "dataLabel": "수신채널"
                      }
                    }
                  },
                  "oneClickTargetNotAllowed": {
                    "summary": "한 번에 선택 체크박스를 규칙으로 숨김",
                    "value": {
                      "instance": "/documents",
                      "type": "ConditionalRuleOneClickTargetNotAllowedException",
                      "title": "One-click checkbox cannot be hidden by a conditional rule",
                      "detail": "'약관동의' contains checkbox '전체동의' with one-click selection enabled and cannot be used as the target of a conditional rule.",
                      "data": {
                        "targetDataLabel": "약관동의",
                        "oneClickFieldDataLabel": "전체동의",
                        "groupDataLabel": "약관동의"
                      }
                    }
                  },
                  "graphSizeExceeded": {
                    "summary": "검증 가능한 규칙 그래프 크기 초과",
                    "value": {
                      "instance": "/documents",
                      "type": "ConditionalRuleGraphSizeExceededException",
                      "title": "Conditional rule graph is too large to validate",
                      "detail": "Conditional rule graph carries 4001 nodes but only 4000 can be traversed.",
                      "data": {
                        "currentCount": 4001,
                        "maxCount": 4000
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "Basic": []
          },
          {
            "Bearer": []
          }
        ],
        "summary": "템플릿 생성",
        "tags": [
          "USER API"
        ]
      }
    }
  },
  "info": {
    "title": "MODUSIGN API",
    "description": "",
    "version": "1.0.0",
    "contact": {}
  },
  "servers": [
    {
      "url": "https://api.modusign.co.kr",
      "description": "production"
    }
  ],
  "components": {
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "Basic": {
        "type": "http",
        "scheme": "basic"
      }
    },
    "schemas": {
      "ConditionalRuleReferenceNotFoundExceptionData": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "조건부 표시 규칙이 조건으로 가리켰으나 문서에 없는 데이터 라벨"
          },
          "groupDataLabel": {
            "type": "string",
            "description": "가리킨 조건이 체크박스 그룹의 멤버일 때 그 그룹의 데이터 라벨. 그렇지 않으면 null",
            "nullable": true
          }
        },
        "required": [
          "dataLabel",
          "groupDataLabel"
        ]
      },
      "ConditionalRuleReferenceNotFoundException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "ConditionalRuleReferenceNotFoundException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleReferenceNotFoundExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "ConditionalRuleCycleDetectedExceptionData": {
        "type": "object",
        "properties": {
          "cycle": {
            "description": "순환을 이루는 데이터 라벨 경로. 시작 지점이 마지막에 다시 나타납니다.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "cycle"
        ]
      },
      "ConditionalRuleCycleDetectedException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "ConditionalRuleCycleDetectedException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleCycleDetectedExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "ConditionalRuleParticipantScopeViolationExceptionData": {
        "type": "object",
        "properties": {
          "targetDataLabel": {
            "type": "string",
            "description": "규칙을 보유한 대상 입력란의 데이터 라벨"
          },
          "targetParticipantDataLabel": {
            "type": "string",
            "description": "대상 입력란에 할당된 참여자의 데이터 라벨"
          },
          "triggerDataLabel": {
            "type": "string",
            "description": "조건 입력란의 데이터 라벨"
          },
          "triggerParticipantDataLabel": {
            "type": "string",
            "description": "조건 입력란에 할당된 참여자의 데이터 라벨"
          }
        },
        "required": [
          "targetDataLabel",
          "targetParticipantDataLabel",
          "triggerDataLabel",
          "triggerParticipantDataLabel"
        ]
      },
      "ConditionalRuleParticipantScopeViolationException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "ConditionalRuleParticipantScopeViolationException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleParticipantScopeViolationExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "ConditionalRuleTargetLimitExceededExceptionData": {
        "type": "object",
        "properties": {
          "triggerDataLabel": {
            "type": "string",
            "description": "상한을 넘긴 규칙의 조건 입력란 데이터 라벨"
          },
          "maxCount": {
            "type": "number",
            "description": "규칙 하나가 가질 수 있는 최대 대상 수"
          },
          "currentCount": {
            "type": "number",
            "description": "현재 대상 수. 체크박스 그룹은 멤버 수와 무관하게 1개로 계수합니다."
          }
        },
        "required": [
          "triggerDataLabel",
          "maxCount",
          "currentCount"
        ]
      },
      "ConditionalRuleTargetLimitExceededException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "ConditionalRuleTargetLimitExceededException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleTargetLimitExceededExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "ConditionalRuleTriggerValueNotAllowedExceptionData": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "조건 입력란의 데이터 라벨"
          },
          "groupDataLabel": {
            "type": "string",
            "description": "조건 입력란이 체크박스 그룹 멤버일 때 그 그룹의 데이터 라벨. 그렇지 않으면 null",
            "nullable": true
          },
          "value": {
            "type": "string",
            "description": "규칙이 기대값으로 지정했으나 조건 입력란이 가질 수 없는 값"
          },
          "allowedValues": {
            "description": "조건 입력란이 가질 수 있는 값 목록. 드롭다운은 옵션 값, 체크박스는 TRUE 입니다.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "dataLabel",
          "groupDataLabel",
          "value",
          "allowedValues"
        ]
      },
      "ConditionalRuleTriggerValueNotAllowedException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "ConditionalRuleTriggerValueNotAllowedException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleTriggerValueNotAllowedExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "ConditionalRuleCarrierNotAllowedExceptionData": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "자격을 갖추지 못한 입력란·체크박스 그룹의 데이터 라벨"
          },
          "fieldType": {
            "type": "string",
            "description": "해당 입력란의 유형"
          },
          "role": {
            "type": "string",
            "description": "규칙에서 맡으려던 역할",
            "enum": [
              "TRIGGER",
              "TARGET"
            ]
          }
        },
        "required": [
          "dataLabel",
          "fieldType",
          "role"
        ]
      },
      "ConditionalRuleCarrierNotAllowedException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "ConditionalRuleCarrierNotAllowedException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleCarrierNotAllowedExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "ConditionalRuleRequesterCarrierNotAllowedExceptionData": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "규칙에 참여할 수 없는 입력란의 데이터 라벨"
          },
          "participantDataLabel": {
            "type": "string",
            "description": "해당 입력란에 할당된 요청자의 데이터 라벨"
          },
          "role": {
            "type": "string",
            "description": "규칙에서 맡으려던 역할",
            "enum": [
              "TRIGGER",
              "TARGET"
            ]
          }
        },
        "required": [
          "dataLabel",
          "participantDataLabel",
          "role"
        ]
      },
      "ConditionalRuleRequesterCarrierNotAllowedException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "ConditionalRuleRequesterCarrierNotAllowedException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleRequesterCarrierNotAllowedExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "DataLabelNotUniqueExceptionData": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "중복된 데이터 라벨"
          }
        },
        "required": [
          "dataLabel"
        ]
      },
      "DataLabelNotUniqueException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "DataLabelNotUniqueException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/DataLabelNotUniqueExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "ConditionalRuleOneClickTargetNotAllowedExceptionData": {
        "type": "object",
        "properties": {
          "targetDataLabel": {
            "type": "string",
            "description": "규칙의 대상으로 지정하려 한 입력란·체크박스 그룹의 데이터 라벨"
          },
          "oneClickFieldDataLabel": {
            "type": "string",
            "description": "한 번에 선택이 켜져 있어 충돌을 만든 체크박스의 데이터 라벨"
          },
          "groupDataLabel": {
            "type": "string",
            "description": "충돌 체크박스가 속한 그룹의 데이터 라벨. 그룹에 속하지 않으면 null",
            "nullable": true
          }
        },
        "required": [
          "targetDataLabel",
          "oneClickFieldDataLabel",
          "groupDataLabel"
        ]
      },
      "ConditionalRuleOneClickTargetNotAllowedException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "ConditionalRuleOneClickTargetNotAllowedException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleOneClickTargetNotAllowedExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "ConditionalRuleGraphSizeExceededExceptionData": {
        "type": "object",
        "properties": {
          "currentCount": {
            "type": "number",
            "description": "규칙 그래프가 순회해야 하는 노드 수. 입력란과 체크박스 그룹의 합"
          },
          "maxCount": {
            "type": "number",
            "description": "한 번에 순회할 수 있는 최대 노드 수"
          }
        },
        "required": [
          "currentCount",
          "maxCount"
        ]
      },
      "ConditionalRuleGraphSizeExceededException": {
        "type": "object",
        "properties": {
          "instance": {
            "type": "string",
            "description": "에러 대상 URL"
          },
          "type": {
            "type": "string",
            "enum": [
              "ConditionalRuleGraphSizeExceededException"
            ],
            "description": "Error 식별자"
          },
          "title": {
            "type": "string",
            "description": "Error 명칭"
          },
          "detail": {
            "type": "string",
            "description": "Error 상세 설명"
          },
          "data": {
            "description": "에러 맥락 추가 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleGraphSizeExceededExceptionData"
              }
            ]
          }
        },
        "required": [
          "instance",
          "type",
          "title"
        ]
      },
      "PlanAuthorityThrottleExceededDataDto": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "enum": [
              "THROTTLE_EXCEEDED"
            ]
          },
          "throttleName": {
            "type": "string",
            "enum": [
              "TEMPLATE_COUNT",
              "SIGNER_COUNT",
              "ATTACHMENT_REQUEST_COUNT"
            ],
            "description": "상한을 넘은 항목. 보유·요청 수량 상한 목록의 값이며, 권한 목록(`FEATURE_NOT_INCLUDED.features`)과는 다른 목록입니다.",
            "example": "TEMPLATE_COUNT"
          },
          "limit": {
            "type": "integer",
            "minimum": 0,
            "description": "상한"
          },
          "requested": {
            "type": "integer",
            "minimum": 1,
            "description": "검증에 쓴 값. 템플릿은 \"기존 수 + 1\", 첨부·서명자는 이 요청의 개수"
          }
        },
        "required": [
          "reason",
          "throttleName",
          "limit",
          "requested"
        ]
      },
      "PlanAuthorityFeatureNotIncludedDataDto": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "enum": [
              "FEATURE_NOT_INCLUDED"
            ]
          },
          "features": {
            "type": "array",
            "uniqueItems": true,
            "minItems": 1,
            "description": "요금제에 없는 기능 가운데 공개하는 것. 값은 권한 목록이며, 수량 상한 목록(`THROTTLE_EXCEEDED`의 `throttleName`)과는 다른 목록입니다. 공개하지 않는 기능만 빠졌으면 `data` 없이 403 `Forbidden`으로 응답합니다",
            "example": [
              "ADVANCED_FIELDS"
            ],
            "items": {
              "type": "string",
              "enum": [
                "DOCUMENT",
                "TEMPLATE",
                "ADVANCED_FIELDS",
                "SIGNATURE_FIELD_ONECLICK",
                "TEMPLATE_MERGING",
                "PREFILLED_VALUE"
              ]
            }
          }
        },
        "required": [
          "reason",
          "features"
        ]
      },
      "PlanAuthoritySubscriptionInactiveDataDto": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "enum": [
              "SUBSCRIPTION_INACTIVE"
            ]
          }
        },
        "required": [
          "reason"
        ]
      },
      "PlanAuthoritySubscriptionNotFoundDataDto": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "enum": [
              "SUBSCRIPTION_NOT_FOUND"
            ]
          }
        },
        "required": [
          "reason"
        ]
      },
      "PlanAuthorityErrorResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ForbiddenException",
              "UsageLimitExceededException"
            ],
            "description": "`UsageLimitExceededException`은 기간 누적 사용량 초과에만 쓰이며 `data`가 없습니다."
          },
          "title": {
            "type": "string",
            "enum": [
              "Forbidden",
              "Usage limit exceeded"
            ]
          },
          "instance": {
            "type": "string",
            "description": "오류가 발생한 API 경로",
            "example": "/documents/request-with-template"
          },
          "data": {
            "description": "거절 원인. `reason`으로 구분하며, 사용량 초과(`UsageLimitExceededException`)와 원인을 알 수 없는 403에는 없습니다.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PlanAuthorityThrottleExceededDataDto"
              },
              {
                "$ref": "#/components/schemas/PlanAuthorityFeatureNotIncludedDataDto"
              },
              {
                "$ref": "#/components/schemas/PlanAuthoritySubscriptionInactiveDataDto"
              },
              {
                "$ref": "#/components/schemas/PlanAuthoritySubscriptionNotFoundDataDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "title",
          "instance"
        ]
      },
      "IntegritySealPosition": {
        "type": "string",
        "enum": [
          "TOP_LEFT",
          "TOP_RIGHT",
          "BOTTOM_LEFT",
          "BOTTOM_RIGHT"
        ],
        "description": "진본 증명 도장 위치"
      },
      "ValidationConstraintDto": {
        "type": "object",
        "properties": {
          "property": {
            "type": "string",
            "description": "검증에 실패한 속성"
          },
          "message": {
            "type": "string",
            "description": "검증 실패 사유"
          }
        },
        "required": [
          "property",
          "message"
        ]
      },
      "ValidationFailedDataDto": {
        "type": "object",
        "properties": {
          "constraints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValidationConstraintDto"
            }
          }
        },
        "required": [
          "constraints"
        ]
      },
      "ValidationFailedResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ValidationFailedException"
            ]
          },
          "title": {
            "type": "string",
            "enum": [
              "Validation failed",
              "ValidationFailedException"
            ]
          },
          "instance": {
            "type": "string",
            "description": "오류가 발생한 API 경로",
            "example": "/templates/merge"
          },
          "detail": {
            "type": "string",
            "description": "검증에 실패한 속성 요약"
          },
          "data": {
            "$ref": "#/components/schemas/ValidationFailedDataDto"
          }
        },
        "required": [
          "type",
          "title",
          "instance",
          "data"
        ]
      },
      "Base64DocumentFileInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "base64": {
            "type": "string",
            "description": "base64 형식의 문서 파일"
          },
          "extension": {
            "type": "string",
            "description": "문서 파일의 확장자",
            "enum": [
              "pdf",
              "hwp",
              "hwpx",
              "doc",
              "docx",
              "xls",
              "xlsx",
              "ppt",
              "pptx",
              "bmp",
              "gif",
              "jpg",
              "jpeg",
              "png",
              "tiff"
            ],
            "default": "pdf"
          }
        },
        "required": [
          "base64",
          "extension"
        ]
      },
      "CheckboxFieldSizeInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "width": {
            "type": "number",
            "description": "입력란의 너비",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "width"
        ]
      },
      "PositionInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "x": {
            "type": "number",
            "description": "입력란의 가로 좌표",
            "minimum": 0,
            "maximum": 1
          },
          "y": {
            "type": "number",
            "description": "입력란의 세로 좌표",
            "minimum": 0,
            "maximum": 1
          },
          "page": {
            "type": "integer",
            "description": "입력란이 위치할 페이지",
            "minimum": 1
          }
        },
        "required": [
          "x",
          "y",
          "page"
        ]
      },
      "ConditionalRuleTriggerInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "조건 입력란의 데이터 라벨 (드롭다운 또는 개별 체크박스). 그룹에 속한 체크박스는 그 멤버의 dataLabel(생략했다면 그룹 안 위치순 번호)을 지정하고 groupLabel 에 그룹 라벨을 함께 지정합니다.",
            "minLength": 1,
            "maxLength": 100
          },
          "groupLabel": {
            "type": "string",
            "description": "조건 입력란이 체크박스 그룹에 속할 때 그 그룹의 라벨. 드롭다운이 조건이면 null 입니다.",
            "nullable": true
          },
          "value": {
            "type": "string",
            "description": "조건이 성립하는 값. 드롭다운은 옵션 값, 체크박스는 TRUE(선택됨)만 허용합니다.",
            "example": "TRUE",
            "minLength": 1
          }
        },
        "required": [
          "dataLabel",
          "value"
        ]
      },
      "ConditionalRuleInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "triggers": {
            "description": "규칙을 성립시키는 조건 목록. 현재는 1개만 지원합니다.",
            "minItems": 1,
            "maxItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConditionalRuleTriggerInTemplateRequestDto"
            }
          }
        },
        "required": [
          "triggers"
        ]
      },
      "CheckboxFieldInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "데이터 라벨. 같은 그룹 안에서는 중복될 수 없습니다."
          },
          "type": {
            "type": "string",
            "description": "필드 타입 (CHECKBOX로 요청해야 합니다)",
            "default": "CHECKBOX",
            "example": "CHECKBOX"
          },
          "required": {
            "type": "boolean",
            "default": false,
            "description": "필수 여부 (체크박스가 그룹에 속하는 경우 무시됩니다.)"
          },
          "size": {
            "description": "입력란 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckboxFieldSizeInTemplateRequestDto"
              }
            ]
          },
          "position": {
            "description": "입력란 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateRequestDto"
              }
            ]
          },
          "groupLabel": {
            "type": "string",
            "description": "그룹 라벨",
            "nullable": true,
            "minLength": 1,
            "maxLength": 100
          },
          "valueDescription": {
            "type": "string",
            "description": "체크박스 내용, 체크박스를 호버하거나 한번에 선택할때 서명자에게 노출됩니다.",
            "minLength": 1,
            "maxLength": 40
          },
          "enableOneClick": {
            "type": "boolean",
            "description": "체크박스를 한번에 선택(체크) 할 수 있는 여부, 문서 서명시 활성화된 체크박스는 서명자가 확인 후 한번에 체크할 수 있습니다.",
            "default": false
          },
          "prefilledValue": {
            "type": "boolean",
            "nullable": true,
            "description": "사전 입력값",
            "default": null
          },
          "conditionalRule": {
            "description": "조건부 표시 규칙. 조건이 성립할 때만 이 입력란을 서명자에게 보여줍니다.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateRequestDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "size",
          "position"
        ]
      },
      "SignatureFieldSizeInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "width": {
            "type": "number",
            "description": "입력란의 너비",
            "minimum": 0.01,
            "maximum": 1
          },
          "height": {
            "type": "number",
            "description": "입력란의 높이",
            "minimum": 0.01,
            "maximum": 1
          }
        },
        "required": [
          "width",
          "height"
        ]
      },
      "SignatureFieldInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "데이터 라벨"
          },
          "type": {
            "type": "string",
            "description": "필드 타입 (SIGNATURE로 요청해야 합니다)",
            "default": "SIGNATURE",
            "example": "SIGNATURE"
          },
          "required": {
            "type": "boolean",
            "description": "필수 여부 (type이 `SIGNATURE`일 경우는 무조건 true가 됩니다)",
            "default": true
          },
          "signatureTypes": {
            "type": "array",
            "description": "서명 타입",
            "maxItems": 2,
            "default": [
              "SIGN",
              "STAMP"
            ],
            "items": {
              "type": "string",
              "enum": [
                "SIGN",
                "STAMP"
              ]
            }
          },
          "allowedGenerationMethods": {
            "type": "array",
            "description": "서명 생성 방식",
            "maxItems": 2,
            "items": {
              "type": "string",
              "enum": [
                "STAMP_IMAGE",
                "SIGN_DRAWING"
              ]
            }
          },
          "position": {
            "description": "입력란 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateRequestDto"
              }
            ]
          },
          "size": {
            "description": "입력란 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SignatureFieldSizeInTemplateRequestDto"
              }
            ]
          },
          "enableOneClick": {
            "type": "boolean",
            "description": "한번에 서명 활성화 여부",
            "default": false
          },
          "conditionalRule": {
            "description": "조건부 표시 규칙. 조건이 성립할 때만 이 입력란을 서명자에게 보여줍니다.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateRequestDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "position"
        ]
      },
      "PhoneNumberFormatInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "휴대폰 번호 입력 형식 타입",
            "enum": [
              "PHONE_NUMBER"
            ]
          }
        },
        "required": [
          "type"
        ]
      },
      "BankAccountNumberFormatInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "계좌 번호 입력 형식 타입",
            "enum": [
              "BANK_ACCOUNT_NUMBER"
            ]
          }
        },
        "required": [
          "type"
        ]
      },
      "BizNumberFormatInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "사업자 등록 번호 입력 형식 타입",
            "enum": [
              "BIZ_NUMBER"
            ]
          }
        },
        "required": [
          "type"
        ]
      },
      "RegexFormatInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "정규 표현식 입력 형식 타입",
            "enum": [
              "REGEX"
            ]
          },
          "name": {
            "type": "string",
            "description": "정규식 형식 이름 (예: 휴대폰)",
            "minLength": 1,
            "maxLength": 50
          },
          "pattern": {
            "type": "string",
            "description": "정규식 패턴",
            "minLength": 1,
            "maxLength": 50
          }
        },
        "required": [
          "type",
          "name",
          "pattern"
        ]
      },
      "TextFieldSizeInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "width": {
            "type": "number",
            "description": "입력란의 너비",
            "minimum": 0,
            "maximum": 1
          },
          "height": {
            "type": "number",
            "description": "입력란의 높이",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "width",
          "height"
        ]
      },
      "TextStyleInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "size": {
            "type": "number",
            "description": "텍스트 크기",
            "enum": [
              4,
              5,
              6,
              7,
              8,
              9,
              10,
              11,
              12,
              13,
              14,
              15,
              16,
              17,
              18,
              24,
              30,
              36,
              48,
              60
            ]
          },
          "font": {
            "type": "string",
            "description": "텍스트 글자체",
            "enum": [
              "NOTO_SANS",
              "NOTO_SERIF"
            ]
          },
          "align": {
            "type": "string",
            "description": "텍스트 정렬",
            "enum": [
              "LEFT",
              "CENTER",
              "RIGHT"
            ]
          }
        },
        "required": [
          "size",
          "font",
          "align"
        ]
      },
      "TextFieldInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "데이터 라벨"
          },
          "type": {
            "type": "string",
            "description": "필드 타입 (TEXT로 요청해야 합니다)",
            "default": "TEXT",
            "example": "TEXT"
          },
          "required": {
            "type": "boolean",
            "description": "필수 여부",
            "default": true
          },
          "size": {
            "description": "입력란 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextFieldSizeInTemplateRequestDto"
              }
            ]
          },
          "position": {
            "description": "입력란 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateRequestDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateRequestDto"
              }
            ]
          },
          "format": {
            "description": "입력 형식 (정규 표현식 등)",
            "oneOf": [
              {
                "title": "PHONE_NUMBER",
                "$ref": "#/components/schemas/PhoneNumberFormatInTemplateRequestDto"
              },
              {
                "title": "BANK_ACCOUNT_NUMBER",
                "$ref": "#/components/schemas/BankAccountNumberFormatInTemplateRequestDto"
              },
              {
                "title": "BIZ_NUMBER",
                "$ref": "#/components/schemas/BizNumberFormatInTemplateRequestDto"
              },
              {
                "title": "REGEX",
                "$ref": "#/components/schemas/RegexFormatInTemplateRequestDto"
              }
            ],
            "nullable": true
          },
          "prefilledValue": {
            "type": "string",
            "nullable": true,
            "description": "사전 입력값",
            "default": null
          },
          "conditionalRule": {
            "description": "조건부 표시 규칙. 조건이 성립할 때만 이 입력란을 서명자에게 보여줍니다.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateRequestDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "size",
          "position",
          "textStyle"
        ]
      },
      "SigningDateFieldSizeInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "width": {
            "type": "number",
            "description": "입력란의 너비",
            "minimum": 0,
            "maximum": 1
          },
          "height": {
            "type": "number",
            "description": "입력란의 높이",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "width",
          "height"
        ]
      },
      "SigningDateInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "데이터 라벨"
          },
          "type": {
            "type": "string",
            "description": "필드 타입 (SIGNING_DATE로 요청해야 합니다)",
            "default": "SIGNING_DATE",
            "example": "SIGNING_DATE"
          },
          "size": {
            "description": "입력란의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SigningDateFieldSizeInTemplateRequestDto"
              }
            ]
          },
          "position": {
            "description": "입력란의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateRequestDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateRequestDto"
              }
            ]
          },
          "displayFormat": {
            "type": "string",
            "description": "날짜 표기 형식",
            "enum": [
              "YYYY-MM-DD",
              "YYYY/DD/MM",
              "YYYY.MM.DD",
              "YYYYMMDD",
              "YYYY년 MM월 DD일",
              "DD-MM-YYYY",
              "DD/MM/YYYY",
              "DD.MM.YYYY",
              "DDMMYYYY",
              "DD일 MM월 YYYY년",
              "MM-DD-YYYY",
              "MM/DD/YYYY",
              "MM.DD.YYYY",
              "MMDDYYYY",
              "MM월 DD일 YYYY년",
              "YYYY/MM/DD",
              "YYYY-DD-MM",
              "YYYY.DD.MM",
              "YYYYDDMM",
              "YYYY년 DD일 MM월",
              "YY-MM-DD",
              "YY/MM/DD",
              "YY.MM.DD",
              "YYMMDD",
              "YY년 MM월 DD일",
              "DD-MM-YY",
              "DD/MM/YY",
              "DD.MM.YY",
              "DDMMYY",
              "DD일 MM월 YY년",
              "MM-DD-YY",
              "MM/DD/YY",
              "MM.DD.YY",
              "MMDDYY",
              "MM월 DD일 YY년",
              "YY-DD-MM",
              "YY/DD/MM",
              "YY.DD.MM",
              "YYDDMM",
              "YY년 DD일 MM월"
            ],
            "example": "YYYY-MM-DD"
          },
          "conditionalRule": {
            "description": "조건부 표시 규칙. 조건이 성립할 때만 이 입력란을 서명자에게 보여줍니다.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateRequestDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "size",
          "position",
          "textStyle",
          "displayFormat"
        ]
      },
      "TextRequesterInputInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "example": "기타사항",
            "minLength": 1,
            "maxLength": 100,
            "description": "데이터 라벨"
          },
          "type": {
            "type": "string",
            "example": "TEXT",
            "description": "요청자 입력 타입 (예시 값으로 고정되어 있습니다)"
          },
          "position": {
            "description": "입력란의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateRequestDto"
              }
            ]
          },
          "size": {
            "description": "입력란의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextFieldSizeInTemplateRequestDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateRequestDto"
              }
            ]
          },
          "value": {
            "type": "string",
            "maxLength": 1000,
            "example": "기타사항입니다",
            "description": "텍스트 박스에 입력될 값"
          }
        },
        "required": [
          "type",
          "position",
          "size",
          "textStyle",
          "value"
        ]
      },
      "CheckboxRequesterInputInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "example": "기타사항",
            "minLength": 1,
            "maxLength": 100,
            "description": "데이터 라벨"
          },
          "type": {
            "type": "string",
            "example": "CHECKBOX",
            "description": "요청자 입력 타입 (예시 값으로 고정되어 있습니다)"
          },
          "position": {
            "description": "입력란의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateRequestDto"
              }
            ]
          },
          "size": {
            "description": "입력란의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckboxFieldSizeInTemplateRequestDto"
              }
            ]
          },
          "value": {
            "type": "boolean",
            "example": true,
            "description": "체크박스의 체크 여부"
          }
        },
        "required": [
          "type",
          "position",
          "size",
          "value"
        ]
      },
      "ImageFieldSizeInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "width": {
            "type": "number",
            "description": "입력란의 너비",
            "minimum": 0,
            "maximum": 1
          },
          "height": {
            "type": "number",
            "description": "입력란의 높이",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "width",
          "height"
        ]
      },
      "ImageInfoInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "base64": {
            "type": "string",
            "description": "이미지 데이터를 base64로 인코딩한 문자열"
          }
        },
        "required": [
          "base64"
        ]
      },
      "ImageRequesterInputInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "example": "기타사항",
            "minLength": 1,
            "maxLength": 100,
            "description": "데이터 라벨"
          },
          "type": {
            "type": "string",
            "example": "IMAGE",
            "description": "요청자 입력 타입 (예시 값으로 고정되어 있습니다)"
          },
          "position": {
            "description": "입력란의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateRequestDto"
              }
            ]
          },
          "size": {
            "description": "입력란의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/ImageFieldSizeInTemplateRequestDto"
              }
            ]
          },
          "value": {
            "description": "3MB 이하의 jpg 또는 png 이미지 정보",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ImageInfoInTemplateRequestDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "position",
          "size"
        ]
      },
      "DropdownFieldSizeInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "width": {
            "type": "number",
            "description": "입력란의 너비",
            "minimum": 0,
            "maximum": 1
          },
          "height": {
            "type": "number",
            "description": "입력란의 높이",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "width",
          "height"
        ]
      },
      "DropdownRequesterInputInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "example": "기타사항",
            "minLength": 1,
            "maxLength": 100,
            "description": "데이터 라벨"
          },
          "type": {
            "type": "string",
            "example": "DROPDOWN",
            "description": "요청자 입력 타입 (예시 값으로 고정되어 있습니다)"
          },
          "position": {
            "description": "입력란의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateRequestDto"
              }
            ]
          },
          "size": {
            "description": "입력란 크기, 입력란 크기가 텍스트 크기보다 작은 경우, 예상치 못한 동작이 발생될 수 있습니다. 충분한 width를 지정해주세요.",
            "allOf": [
              {
                "$ref": "#/components/schemas/DropdownFieldSizeInTemplateRequestDto"
              }
            ]
          },
          "options": {
            "type": "array",
            "description": "드롭다운 옵션 목록",
            "items": {
              "$ref": "#/components/schemas/DropdownOption"
            },
            "minItems": 1,
            "maxItems": 100
          },
          "defaultInputValue": {
            "type": "string",
            "description": "드롭다운 옵션의 기본 입력 값"
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateRequestDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "position",
          "size",
          "options",
          "defaultInputValue",
          "textStyle"
        ]
      },
      "NameFieldSizeInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "width": {
            "type": "number",
            "description": "입력란의 너비",
            "minimum": 0,
            "maximum": 1
          },
          "height": {
            "type": "number",
            "description": "입력란의 높이",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "width",
          "height"
        ]
      },
      "NameRequesterInputInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "example": "기타사항",
            "minLength": 1,
            "maxLength": 100,
            "description": "데이터 라벨"
          },
          "type": {
            "type": "string",
            "example": "NAME",
            "description": "요청자 입력 타입 (예시 값으로 고정되어 있습니다)"
          },
          "position": {
            "description": "입력란의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateRequestDto"
              }
            ]
          },
          "size": {
            "description": "입력란의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameFieldSizeInTemplateRequestDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateRequestDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "position",
          "size",
          "textStyle"
        ]
      },
      "DateFieldSizeInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "width": {
            "type": "number",
            "description": "입력란의 너비",
            "minimum": 0,
            "maximum": 1
          },
          "height": {
            "type": "number",
            "description": "입력란의 높이",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "width",
          "height"
        ]
      },
      "DateFieldInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "데이터 라벨"
          },
          "type": {
            "type": "string",
            "description": "필드 타입 (DATE로 요청해야 합니다)",
            "default": "DATE",
            "example": "DATE"
          },
          "required": {
            "type": "boolean",
            "description": "필수 여부",
            "default": true
          },
          "size": {
            "description": "입력란 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/DateFieldSizeInTemplateRequestDto"
              }
            ]
          },
          "position": {
            "description": "입력란 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateRequestDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateRequestDto"
              }
            ]
          },
          "displayFormat": {
            "type": "string",
            "description": "날짜 표기 형식",
            "enum": [
              "YYYY-MM-DD",
              "YYYY/DD/MM",
              "YYYY.MM.DD",
              "YYYYMMDD",
              "YYYY년 MM월 DD일",
              "DD-MM-YYYY",
              "DD/MM/YYYY",
              "DD.MM.YYYY",
              "DDMMYYYY",
              "DD일 MM월 YYYY년",
              "MM-DD-YYYY",
              "MM/DD/YYYY",
              "MM.DD.YYYY",
              "MMDDYYYY",
              "MM월 DD일 YYYY년",
              "YYYY/MM/DD",
              "YYYY-DD-MM",
              "YYYY.DD.MM",
              "YYYYDDMM",
              "YYYY년 DD일 MM월",
              "YY-MM-DD",
              "YY/MM/DD",
              "YY.MM.DD",
              "YYMMDD",
              "YY년 MM월 DD일",
              "DD-MM-YY",
              "DD/MM/YY",
              "DD.MM.YY",
              "DDMMYY",
              "DD일 MM월 YY년",
              "MM-DD-YY",
              "MM/DD/YY",
              "MM.DD.YY",
              "MMDDYY",
              "MM월 DD일 YY년",
              "YY-DD-MM",
              "YY/DD/MM",
              "YY.DD.MM",
              "YYDDMM",
              "YY년 DD일 MM월"
            ],
            "example": "YYYY-MM-DD"
          },
          "prefilledValue": {
            "type": "string",
            "nullable": true,
            "description": "사전 입력값",
            "default": null
          },
          "conditionalRule": {
            "description": "조건부 표시 규칙. 조건이 성립할 때만 이 입력란을 서명자에게 보여줍니다.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateRequestDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "size",
          "position",
          "textStyle",
          "displayFormat"
        ]
      },
      "DropdownFieldInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "데이터 라벨"
          },
          "type": {
            "type": "string",
            "description": "필드 타입 (DROPDOWN으로 요청해야 합니다)",
            "default": "DROPDOWN",
            "example": "DROPDOWN"
          },
          "required": {
            "type": "boolean",
            "description": "필수 여부",
            "default": true
          },
          "size": {
            "description": "입력란 크기, 입력란 크기가 텍스트 크기보다 작은 경우, 예상치 못한 동작이 발생될 수 있습니다. 충분한 width를 지정해주세요.",
            "allOf": [
              {
                "$ref": "#/components/schemas/DropdownFieldSizeInTemplateRequestDto"
              }
            ]
          },
          "position": {
            "description": "입력란 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateRequestDto"
              }
            ]
          },
          "options": {
            "type": "array",
            "description": "드롭다운 옵션 목록",
            "items": {
              "$ref": "#/components/schemas/DropdownOption"
            },
            "minItems": 1,
            "maxItems": 100
          },
          "defaultInputValue": {
            "type": "string",
            "description": "기본값",
            "nullable": true,
            "deprecated": true,
            "default": null
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateRequestDto"
              }
            ]
          },
          "prefilledValue": {
            "type": "string",
            "nullable": true,
            "description": "사전 입력값",
            "default": null
          },
          "conditionalRule": {
            "description": "조건부 표시 규칙. 조건이 성립할 때만 이 입력란을 서명자에게 보여줍니다.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateRequestDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "size",
          "position",
          "options",
          "textStyle"
        ]
      },
      "NameFieldInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "데이터 라벨. 그룹 라벨과 함께 사용할 수 없습니다."
          },
          "type": {
            "type": "string",
            "description": "필드 타입 (NAME으로 요청해야 합니다)",
            "default": "NAME",
            "example": "NAME"
          },
          "required": {
            "type": "boolean",
            "description": "필수 여부",
            "default": true
          },
          "size": {
            "description": "입력란 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameFieldSizeInTemplateRequestDto"
              }
            ]
          },
          "position": {
            "description": "입력란 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateRequestDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateRequestDto"
              }
            ]
          },
          "conditionalRule": {
            "description": "조건부 표시 규칙. 조건이 성립할 때만 이 입력란을 서명자에게 보여줍니다.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateRequestDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "size",
          "position",
          "textStyle"
        ]
      },
      "CompanyNameFieldInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "데이터 라벨. 그룹 라벨과 함께 사용할 수 없습니다."
          },
          "type": {
            "type": "string",
            "description": "필드 타입 (COMPANY_NAME으로 요청해야 합니다)",
            "default": "COMPANY_NAME",
            "example": "COMPANY_NAME"
          },
          "required": {
            "type": "boolean",
            "description": "필수 여부",
            "default": true
          },
          "size": {
            "description": "입력란 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameFieldSizeInTemplateRequestDto"
              }
            ]
          },
          "position": {
            "description": "입력란 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateRequestDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateRequestDto"
              }
            ]
          },
          "prefilledValue": {
            "type": "string",
            "nullable": true,
            "description": "사전 입력값",
            "default": null
          },
          "conditionalRule": {
            "description": "조건부 표시 규칙. 조건이 성립할 때만 이 입력란을 서명자에게 보여줍니다.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateRequestDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "size",
          "position",
          "textStyle"
        ]
      },
      "AddressPrefilledValueInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "address1": {
            "type": "string",
            "description": "기본 주소"
          },
          "address2": {
            "type": "string",
            "description": "상세 주소",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "시군구",
            "nullable": true
          },
          "province": {
            "type": "string",
            "description": "도시"
          },
          "zip": {
            "type": "string",
            "description": "우편번호"
          },
          "country": {
            "type": "string",
            "description": "나라",
            "enum": [
              "KR"
            ]
          }
        },
        "required": [
          "address1",
          "province",
          "zip",
          "country"
        ]
      },
      "AddressFieldInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "데이터 라벨. 그룹 라벨과 함께 사용할 수 없습니다."
          },
          "type": {
            "type": "string",
            "description": "필드 타입 (ADDRESS로 요청해야 합니다)",
            "default": "ADDRESS",
            "example": "ADDRESS"
          },
          "required": {
            "type": "boolean",
            "description": "필수 여부",
            "default": true
          },
          "size": {
            "description": "입력란 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextFieldSizeInTemplateRequestDto"
              }
            ]
          },
          "position": {
            "description": "입력란 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateRequestDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateRequestDto"
              }
            ]
          },
          "prefilledValue": {
            "nullable": true,
            "description": "사전 입력값",
            "default": null,
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressPrefilledValueInTemplateRequestDto"
              }
            ]
          },
          "conditionalRule": {
            "description": "조건부 표시 규칙. 조건이 성립할 때만 이 입력란을 서명자에게 보여줍니다.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateRequestDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "size",
          "position",
          "textStyle"
        ]
      },
      "ImageFieldInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "데이터 라벨"
          },
          "type": {
            "type": "string",
            "description": "필드 타입 (IMAGE로 요청해야 합니다)",
            "default": "IMAGE",
            "example": "IMAGE"
          },
          "required": {
            "type": "boolean",
            "description": "필수 여부",
            "default": true
          },
          "size": {
            "description": "입력란 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/ImageFieldSizeInTemplateRequestDto"
              }
            ]
          },
          "position": {
            "description": "입력란 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateRequestDto"
              }
            ]
          },
          "conditionalRule": {
            "description": "조건부 표시 규칙. 조건이 성립할 때만 이 입력란을 서명자에게 보여줍니다.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateRequestDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "size",
          "position"
        ]
      },
      "IntegritySealInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "진본 증명 도장 활성화 여부",
            "default": false
          },
          "position": {
            "description": "진본 증명 도장 위치",
            "nullable": true,
            "example": "TOP_RIGHT",
            "allOf": [
              {
                "$ref": "#/components/schemas/IntegritySealPosition"
              }
            ]
          }
        },
        "required": [
          "enabled",
          "position"
        ]
      },
      "DocumentSealInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "integritySeal": {
            "description": "진본 증명 도장 설정",
            "allOf": [
              {
                "$ref": "#/components/schemas/IntegritySealInTemplateRequestDto"
              }
            ]
          }
        },
        "required": [
          "integritySeal"
        ]
      },
      "FileInfoInCreateTemplateRequestDto": {
        "type": "object",
        "properties": {
          "fileId": {
            "type": "string",
            "description": "파일 업로드 API 를 통해 얻은 파일 ID"
          },
          "token": {
            "type": "string",
            "description": "파일 업로드 API 를 통해 얻은 파일 토큰"
          },
          "name": {
            "type": "string",
            "example": "첨부파일_1",
            "description": "첨부파일명 (확장자 제외, 특수문자 /?<>\\\":*|₩ 이 포함된 이름은 사용할 수 없습니다)",
            "minLength": 1,
            "maxLength": 100
          }
        },
        "required": [
          "fileId",
          "token",
          "name"
        ]
      },
      "RequesterAttachmentInCreateTemplateRequestDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "첨부파일 1",
            "description": "첨부파일 이름 (특수문자 /?<>\\\":*|₩ 이 포함된 이름은 사용할 수 없습니다)",
            "minLength": 1,
            "maxLength": 100
          },
          "file": {
            "description": "파일 정보",
            "example": {
              "fileId": "2752f600-c6fc-11ed-b2e3-b5476bd20f82",
              "token": "01GVZ3BGGT2D9BSEVXJJ2V00SP",
              "name": "첨부파일_1"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/FileInfoInCreateTemplateRequestDto"
              }
            ]
          }
        },
        "required": [
          "name",
          "file"
        ]
      },
      "SigningMethodInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "",
              "KAKAO",
              "EMAIL",
              "SECURE_LINK"
            ],
            "description": "참여 수단 종류"
          },
          "value": {
            "type": "string",
            "example": "modu.kim@modusign.co.kr / 01012345678",
            "description": "참여자의 참여 수단 (이메일 또는 휴대전화번호)"
          }
        },
        "required": [
          "type",
          "value"
        ]
      },
      "AttachmentRequestInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "데이터 라벨",
            "minLength": 1,
            "maxLength": 100
          },
          "name": {
            "type": "string",
            "description": "첨부파일 이름 (특수문자 /?<>\\\":*|₩ 이 포함된 이름은 사용할 수 없습니다)",
            "example": "첨부파일 1",
            "minLength": 1,
            "maxLength": 100
          },
          "message": {
            "type": "string",
            "example": "2개월 내에 발급받은 회사 직인이 찍힌 원천징수영수증",
            "description": "첨부파일에 대한 설명",
            "nullable": true,
            "minLength": 1,
            "maxLength": 100
          },
          "required": {
            "type": "boolean",
            "description": "필수 여부"
          }
        },
        "required": [
          "name",
          "required"
        ]
      },
      "CheckboxGroupInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "groupLabel": {
            "type": "string",
            "description": "그룹 라벨",
            "minLength": 1,
            "maxLength": 100
          },
          "minCheckRequired": {
            "type": "number",
            "description": "최소 선택 개수. 현재는 0 또는 1만 지원합니다.",
            "enum": [
              0,
              1
            ]
          },
          "maxCheckLimit": {
            "type": "integer",
            "nullable": true,
            "default": null,
            "example": 1,
            "description": "최대 선택 개수. 현재는 1또는 null만 지원합니다. null은 최대 개수까지 선택가능함을 뜻합니다."
          },
          "conditionalRule": {
            "description": "조건부 표시 규칙. 조건이 성립할 때만 이 체크박스 그룹을 서명자에게 보여줍니다.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateRequestDto"
              }
            ]
          }
        },
        "required": [
          "groupLabel",
          "minCheckRequired"
        ]
      },
      "PasswordInCreateTemplateRequestDto": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "추가 인증 사용 여부"
          }
        },
        "required": [
          "enabled"
        ]
      },
      "MobileIdentificationInCreateTemplateRequestDto": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "추가 인증 사용 여부"
          },
          "allowOptions": {
            "type": "array",
            "description": "휴대폰 본인 인증 옵션",
            "items": {
              "type": "string",
              "enum": [
                "SMS_OR_PASS",
                "SIMPLE_AUTH"
              ]
            }
          }
        },
        "required": [
          "enabled"
        ]
      },
      "DCertInCreateTemplateRequestDto": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "추가 인증 사용 여부"
          }
        },
        "required": [
          "enabled"
        ]
      },
      "VerificationInCreateTemplateRequestDto": {
        "type": "object",
        "properties": {
          "password": {
            "description": "접근 암호",
            "allOf": [
              {
                "$ref": "#/components/schemas/PasswordInCreateTemplateRequestDto"
              }
            ]
          },
          "mobileIdentification": {
            "description": "휴대폰 본인 인증",
            "allOf": [
              {
                "$ref": "#/components/schemas/MobileIdentificationInCreateTemplateRequestDto"
              }
            ]
          },
          "dCert": {
            "description": "법인 공동인증서 인증",
            "allOf": [
              {
                "$ref": "#/components/schemas/DCertInCreateTemplateRequestDto"
              }
            ]
          }
        },
        "required": [
          "password",
          "mobileIdentification",
          "dCert"
        ]
      },
      "ParticipantInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "SIGNER",
              "VIEWER"
            ],
            "description": "참여자 타입",
            "default": "SIGNER"
          },
          "role": {
            "type": "string",
            "example": "근로자",
            "description": "참여자의 역할",
            "minLength": 1,
            "maxLength": 10
          },
          "name": {
            "type": "string",
            "example": "김모두",
            "description": "참여자 이름 (특수문자 /?<>\\\":*|₩ 이 포함된 이름은 사용할 수 없습니다)",
            "minLength": 2,
            "maxLength": 30
          },
          "signingOrder": {
            "type": "integer",
            "description": "참여 순서. 순서 없이 참여하려면 모두 1로 설정하세요.",
            "example": 1,
            "minimum": 1,
            "maximum": 30
          },
          "signingMethod": {
            "description": "참여자의 참여 수단",
            "title": "SigningMethod",
            "allOf": [
              {
                "$ref": "#/components/schemas/SigningMethodInTemplateRequestDto"
              }
            ]
          },
          "attachmentRequests": {
            "description": "첨부파일 요청 정보",
            "default": [],
            "maxItems": 30,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentRequestInTemplateRequestDto"
            }
          },
          "fields": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "title": "CHECKBOX",
                  "$ref": "#/components/schemas/CheckboxFieldInTemplateRequestDto"
                },
                {
                  "title": "SIGNATURE",
                  "$ref": "#/components/schemas/SignatureFieldInTemplateRequestDto"
                },
                {
                  "title": "TEXT",
                  "$ref": "#/components/schemas/TextFieldInTemplateRequestDto"
                },
                {
                  "title": "SIGNING_DATE",
                  "$ref": "#/components/schemas/SigningDateInTemplateRequestDto"
                },
                {
                  "title": "DATE",
                  "$ref": "#/components/schemas/DateFieldInTemplateRequestDto"
                },
                {
                  "title": "DROPDOWN",
                  "$ref": "#/components/schemas/DropdownFieldInTemplateRequestDto"
                },
                {
                  "title": "NAME",
                  "$ref": "#/components/schemas/NameFieldInTemplateRequestDto"
                },
                {
                  "title": "COMPANY_NAME",
                  "$ref": "#/components/schemas/CompanyNameFieldInTemplateRequestDto"
                },
                {
                  "title": "ADDRESS",
                  "$ref": "#/components/schemas/AddressFieldInTemplateRequestDto"
                },
                {
                  "title": "IMAGE",
                  "$ref": "#/components/schemas/ImageFieldInTemplateRequestDto"
                }
              ]
            },
            "default": [],
            "description": "문서 필드 정보 \n\n- VIEWER 타입 참여자는 필드를 가질 수 없습니다\n- 참여자의 필드 개수 총합은 최대 2000개까지 지원합니다"
          },
          "checkboxFieldGroups": {
            "default": [],
            "description": "체크박스 그룹",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CheckboxGroupInTemplateRequestDto"
            }
          },
          "verification": {
            "description": "참여자의 추가 인증 (휴대폰 본인 인증과 법인 공동인증서 인증서는 함께 설정할 수 없습니다)",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/VerificationInCreateTemplateRequestDto"
              }
            ]
          }
        },
        "required": [
          "role",
          "signingOrder"
        ]
      },
      "MetadataInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40,
            "description": "메타데이터 키"
          },
          "value": {
            "type": "string",
            "maxLength": 80,
            "description": "메타데이터 값"
          }
        },
        "required": [
          "key"
        ]
      },
      "CarbonCopyInTemplateRequestDto": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "string",
            "description": "참조자 연락처 (이메일 주소 또는 휴대전화번호)",
            "minLength": 1,
            "maxLength": 100,
            "example": "01000000000 or example@modusign.co.kr"
          },
          "locale": {
            "type": "string",
            "description": "참조자 언어",
            "enum": [
              "ko",
              "en",
              "zh-CN",
              "ja",
              "vi",
              "fr"
            ],
            "example": "ko"
          }
        },
        "required": [
          "contact",
          "locale"
        ]
      },
      "CreateTemplateRequestDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 2,
            "maxLength": 100,
            "example": "계약서 템플릿",
            "description": "템플릿 제목"
          },
          "file": {
            "description": "문서의 파일 데이터",
            "oneOf": [
              {
                "title": "BASE64",
                "$ref": "#/components/schemas/Base64DocumentFileInTemplateRequestDto"
              }
            ]
          },
          "requesterInputs": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "title": "TEXT",
                  "$ref": "#/components/schemas/TextRequesterInputInTemplateRequestDto"
                },
                {
                  "title": "CHECKBOX",
                  "$ref": "#/components/schemas/CheckboxRequesterInputInTemplateRequestDto"
                },
                {
                  "title": "IMAGE",
                  "$ref": "#/components/schemas/ImageRequesterInputInTemplateRequestDto"
                },
                {
                  "title": "DROPDOWN",
                  "$ref": "#/components/schemas/DropdownRequesterInputInTemplateRequestDto"
                },
                {
                  "title": "NAME",
                  "$ref": "#/components/schemas/NameRequesterInputInTemplateRequestDto"
                }
              ]
            },
            "description": "요청자의 입력 (이미지의 개수는 최대 7개)",
            "default": []
          },
          "requesterAttachments": {
            "description": "요청자 첨부파일 정보. 서명자 첨부파일과 합산하여 최대 30개까지 첨부 가능",
            "default": [],
            "maxItems": 30,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RequesterAttachmentInCreateTemplateRequestDto"
            }
          },
          "participants": {
            "minItems": 1,
            "maxItems": 30,
            "description": "문서의 참여자 정보",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ParticipantInTemplateRequestDto"
            }
          },
          "documentLabelIds": {
            "description": "문서 생성시 기본 설정될 라벨 ID 목록",
            "maxItems": 5,
            "nullable": true,
            "default": [],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "metadatas": {
            "nullable": true,
            "minItems": 1,
            "maxItems": 10,
            "description": "메타데이터 리스트. 최대 10개까지 등록 가능 \n(응답의 메타데이터는 순서가 보장되지 않습니다)",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MetadataInTemplateRequestDto"
            }
          },
          "requesterEditable": {
            "type": "boolean",
            "description": "템플릿으로 서명 요청 시 문서의 내용이 변경 가능한 여부 (false 인 경우 기본적인 발송 설정을 제외한, 서명자 필드와 같은 데이터를 수정하여 발송할 수 없습니다)",
            "default": true,
            "nullable": true
          },
          "carbonCopies": {
            "description": "참조자 정보",
            "maxItems": 30,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarbonCopyInTemplateRequestDto"
            }
          },
          "seal": {
            "description": "문서 봉인 설정 정보",
            "default": null,
            "allOf": [
              {
                "$ref": "#/components/schemas/DocumentSealInTemplateRequestDto"
              }
            ]
          }
        },
        "required": [
          "title",
          "file",
          "participants",
          "requesterEditable"
        ]
      },
      "MetadataInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "메타데이터 키"
          },
          "value": {
            "type": "string",
            "description": "메타데이터 값"
          }
        },
        "required": [
          "key",
          "value"
        ]
      },
      "PositionInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "x": {
            "type": "number",
            "description": "입력란의 가로 좌표"
          },
          "y": {
            "type": "number",
            "description": "입력란의 세로 좌표"
          },
          "page": {
            "type": "integer",
            "description": "입력란이 위치할 페이지"
          }
        },
        "required": [
          "x",
          "y",
          "page"
        ]
      },
      "SizeInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "width": {
            "type": "number",
            "description": "입력란의 너비"
          },
          "height": {
            "type": "number",
            "description": "입력란의 높이"
          }
        },
        "required": [
          "width",
          "height"
        ]
      },
      "TextStyleInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "size": {
            "type": "integer",
            "description": "텍스트 크기"
          },
          "font": {
            "type": "string",
            "description": "텍스트 글자체"
          },
          "align": {
            "type": "string",
            "description": "텍스트 정렬"
          }
        },
        "required": [
          "size",
          "font",
          "align"
        ]
      },
      "TextRequesterInputInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "데이터 라벨"
          },
          "type": {
            "type": "string",
            "description": "요청자 입력 타입 (예시 값으로 고정되어 있습니다)",
            "example": "TEXT"
          },
          "position": {
            "description": "입력란 위치 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "size": {
            "description": "입력란 크기 정보",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateResponseDto"
              }
            ]
          },
          "value": {
            "type": "string",
            "description": "텍스트 박스에 들어갈 내용"
          }
        },
        "required": [
          "dataLabel",
          "type",
          "position",
          "size",
          "textStyle",
          "value"
        ]
      },
      "CheckboxRequesterInputInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "추가내용 입력의 데이터 라벨"
          },
          "type": {
            "type": "string",
            "description": "요청자 입력 타입 (예시 값으로 고정되어 있습니다)",
            "example": "CHECKBOX"
          },
          "position": {
            "description": "추가내용 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "size": {
            "description": "입력란 크기 정보",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "value": {
            "type": "boolean",
            "description": "체크 박스의 체크 여부"
          }
        },
        "required": [
          "dataLabel",
          "type",
          "position",
          "size",
          "value"
        ]
      },
      "ImageInfoInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "downloadUrl": {
            "type": "string",
            "description": "이미지 다운로드 링크 (10분간 유효)"
          }
        },
        "required": [
          "downloadUrl"
        ]
      },
      "ImageRequesterInputInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "데이터 라벨"
          },
          "type": {
            "type": "string",
            "description": "추가내용 입력 타입 (예시 값으로 고정되어 있습니다)",
            "example": "IMAGE"
          },
          "position": {
            "description": "추가내용 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "size": {
            "description": "입력란 크기 정보",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "value": {
            "description": "이미지 필드에 삽입될 이미지 정보",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ImageInfoInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "dataLabel",
          "type",
          "position"
        ]
      },
      "DropdownOption": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "description": "드롭다운 옵션 값"
          }
        },
        "required": [
          "value"
        ]
      },
      "DropdownRequesterInputInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "데이터 라벨"
          },
          "type": {
            "type": "string",
            "description": "추가내용 입력 타입 (예시 값으로 고정되어 있습니다)",
            "example": "DROPDOWN"
          },
          "position": {
            "description": "추가내용 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "size": {
            "description": "입력란 크기 정보",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateResponseDto"
              }
            ]
          },
          "options": {
            "type": "array",
            "description": "드롭다운 옵션",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/DropdownOption"
                }
              ]
            }
          },
          "value": {
            "type": "string",
            "description": "드롭다운 필드에 들어갈 내용"
          }
        },
        "required": [
          "dataLabel",
          "type",
          "position",
          "textStyle",
          "options",
          "value"
        ]
      },
      "NameRequesterInputInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "데이터 라벨"
          },
          "type": {
            "type": "string",
            "description": "추가내용 입력 타입 (예시 값으로 고정되어 있습니다)",
            "example": "NAME"
          },
          "position": {
            "description": "추가내용 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "size": {
            "description": "입력란 크기 정보",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateResponseDto"
              }
            ]
          },
          "value": {
            "type": "string",
            "description": "이름 필드에 들어갈 내용"
          }
        },
        "required": [
          "dataLabel",
          "type",
          "position",
          "textStyle",
          "value"
        ]
      },
      "ConditionalRuleTriggerInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "조건 입력란의 데이터 라벨 (드롭다운 또는 개별 체크박스)"
          },
          "groupLabel": {
            "type": "string",
            "description": "조건 입력란이 체크박스 그룹에 속할 때 그 그룹의 라벨. 드롭다운이 조건이면 null 입니다.",
            "nullable": true
          },
          "value": {
            "type": "string",
            "description": "조건이 성립하는 값. 드롭다운은 옵션 값, 체크박스는 TRUE(선택됨)만 허용합니다.",
            "example": "TRUE"
          }
        },
        "required": [
          "dataLabel",
          "groupLabel",
          "value"
        ]
      },
      "ConditionalRuleInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "triggers": {
            "description": "규칙을 성립시키는 조건 목록",
            "minItems": 1,
            "maxItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConditionalRuleTriggerInTemplateResponseDto"
            }
          }
        },
        "required": [
          "triggers"
        ]
      },
      "SignatureFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)",
            "example": "SIGNATURE"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부(true 고정)",
            "example": true
          },
          "signatureTypes": {
            "type": "array",
            "description": "가능한 참여 종류",
            "items": {
              "type": "string",
              "enum": [
                "SIGN",
                "STAMP"
              ]
            }
          },
          "allowedGenerationMethods": {
            "type": "array",
            "description": "참여 생성 방식",
            "items": {
              "type": "string",
              "enum": [
                "STAMP_IMAGE",
                "SIGN_DRAWING"
              ]
            }
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "enableOneClick": {
            "type": "boolean",
            "description": "한번에 서명 활성화 여부",
            "default": false
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙. 조건이 성립할 때만 서명자에게 보입니다. 규칙이 없으면 응답에서 빠집니다.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "signatureTypes",
          "allowedGenerationMethods",
          "position",
          "dataLabel"
        ]
      },
      "PhoneNumberFormatInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "휴대폰 번호 입력 형식 타입",
            "enum": [
              "PHONE_NUMBER"
            ]
          }
        },
        "required": [
          "type"
        ]
      },
      "BankAccountNumberFormatInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "계좌 번호 입력 형식 타입",
            "enum": [
              "BANK_ACCOUNT_NUMBER"
            ]
          }
        },
        "required": [
          "type"
        ]
      },
      "BizNumberFormatInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "사업자 등록 번호 입력 형식 타입",
            "enum": [
              "BIZ_NUMBER"
            ]
          }
        },
        "required": [
          "type"
        ]
      },
      "RegexFormatInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "정규 표현식 입력 형식 타입",
            "enum": [
              "REGEX"
            ]
          },
          "name": {
            "type": "string",
            "description": "정규식 형식 이름 (예: 휴대폰)",
            "minLength": 1,
            "maxLength": 50
          },
          "pattern": {
            "type": "string",
            "description": "정규식 패턴 (최대 50자)",
            "minLength": 1,
            "maxLength": 50
          }
        },
        "required": [
          "type",
          "name",
          "pattern"
        ]
      },
      "TextFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "TEXT",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateResponseDto"
              }
            ]
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "groupLabel": {
            "type": "string",
            "description": "입력란의 그룹 라벨",
            "nullable": true
          },
          "format": {
            "description": "입력 형식 (정규 표현식 등)",
            "oneOf": [
              {
                "title": "PHONE_NUMBER",
                "$ref": "#/components/schemas/PhoneNumberFormatInTemplateResponseDto"
              },
              {
                "title": "BANK_ACCOUNT_NUMBER",
                "$ref": "#/components/schemas/BankAccountNumberFormatInTemplateResponseDto"
              },
              {
                "title": "BIZ_NUMBER",
                "$ref": "#/components/schemas/BizNumberFormatInTemplateResponseDto"
              },
              {
                "title": "REGEX",
                "$ref": "#/components/schemas/RegexFormatInTemplateResponseDto"
              }
            ],
            "nullable": true
          },
          "prefilledValue": {
            "type": "string",
            "description": "사전 입력값",
            "nullable": true
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "textStyle",
          "dataLabel",
          "groupLabel"
        ]
      },
      "CheckboxFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "CHECKBOX",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "groupLabel": {
            "type": "string",
            "description": "입력란 그룹 라벨(체크박스 그룹에 속할 경우)"
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "valueDescription": {
            "type": "string",
            "description": "체크박스 내용, 체크박스를 호버하거나 한번에 선택할때 서명자에게 노출됩니다.",
            "minLength": 1,
            "maxLength": 40
          },
          "enableOneClick": {
            "type": "boolean",
            "description": "체크박스를 한번에 선택(체크) 할 수 있는 여부, 문서 서명시 활성화된 체크박스는 서명자가 확인 후 한번에 체크할 수 있습니다.",
            "default": false
          },
          "prefilledValue": {
            "type": "string",
            "description": "사전 입력값",
            "nullable": true
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "groupLabel",
          "dataLabel",
          "enableOneClick"
        ]
      },
      "DropdownTextStyleInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "size": {
            "type": "integer",
            "description": "텍스트 크기"
          },
          "font": {
            "type": "string",
            "description": "텍스트 글자체"
          },
          "align": {
            "type": "string",
            "description": "텍스트 정렬"
          }
        },
        "required": [
          "size",
          "font",
          "align"
        ]
      },
      "DropdownFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "DROPDOWN",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/DropdownTextStyleInTemplateResponseDto"
              }
            ]
          },
          "options": {
            "type": "array",
            "description": "드롭다운 옵션",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/DropdownOption"
                }
              ]
            }
          },
          "defaultInputValue": {
            "type": "string",
            "description": "기본 입력 값",
            "nullable": true
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "prefilledValue": {
            "type": "string",
            "description": "사전 입력값",
            "nullable": true
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "textStyle",
          "options",
          "defaultInputValue",
          "dataLabel"
        ]
      },
      "NameFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "NAME",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateResponseDto"
              }
            ]
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "groupLabel": {
            "type": "string",
            "description": "입력란의 그룹 라벨"
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "textStyle",
          "dataLabel",
          "groupLabel"
        ]
      },
      "CompanyNameFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "COMPANY_NAME",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateResponseDto"
              }
            ]
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "groupLabel": {
            "type": "string",
            "description": "입력란의 그룹 라벨"
          },
          "prefilledValue": {
            "type": "string",
            "description": "사전 입력값",
            "nullable": true
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "textStyle",
          "dataLabel",
          "groupLabel"
        ]
      },
      "DateFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "DATE",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateResponseDto"
              }
            ]
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "displayFormat": {
            "type": "string",
            "description": "날짜 표기 형식"
          },
          "groupLabel": {
            "type": "string",
            "description": "입력란의 그룹 라벨"
          },
          "prefilledValue": {
            "type": "string",
            "description": "사전 입력값",
            "nullable": true
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "textStyle",
          "dataLabel",
          "displayFormat",
          "groupLabel"
        ]
      },
      "SigningDateFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "SIGNING_DATE",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateResponseDto"
              }
            ]
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "displayFormat": {
            "type": "string",
            "description": "날짜 표기 형식"
          },
          "groupLabel": {
            "type": "string",
            "description": "입력란의 그룹 라벨"
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "textStyle",
          "dataLabel",
          "displayFormat",
          "groupLabel"
        ]
      },
      "AddressPrefilledValueInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "address1": {
            "type": "string",
            "description": "기본 주소"
          },
          "address2": {
            "type": "string",
            "description": "상세 주소",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "시군구",
            "nullable": true
          },
          "province": {
            "type": "string",
            "description": "도시"
          },
          "zip": {
            "type": "string",
            "description": "우편번호"
          },
          "country": {
            "type": "string",
            "description": "나라",
            "enum": [
              "KR"
            ]
          }
        },
        "required": [
          "address1",
          "province",
          "zip",
          "country"
        ]
      },
      "AddressFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "ADDRESS",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "textStyle": {
            "description": "텍스트 스타일",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextStyleInTemplateResponseDto"
              }
            ]
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "groupLabel": {
            "type": "string",
            "description": "입력란의 그룹 라벨"
          },
          "prefilledValue": {
            "description": "사전 입력값",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressPrefilledValueInTemplateResponseDto"
              }
            ]
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "textStyle",
          "dataLabel",
          "groupLabel"
        ]
      },
      "DeprecatedCheckboxFieldGroupInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "groupLabel": {
            "type": "string",
            "description": "체크박스 그룹 라벨",
            "deprecated": true
          },
          "minCheckRequired": {
            "type": "number",
            "description": "최소 선택 개수. 현재는 0 또는 1만 지원합니다."
          },
          "maxCheckLimit": {
            "type": "number",
            "description": "최대 선택 개수. 현재는 1또는 null만 지원합니다. null은 최대 개수까지 선택가능함을 뜻합니다.",
            "nullable": true
          }
        },
        "required": [
          "groupLabel",
          "minCheckRequired",
          "maxCheckLimit"
        ]
      },
      "CheckboxFieldGroupInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "CHECKBOX_GROUP",
            "description": "입력란 그룹 종류 (예시 값으로 고정되어 있습니다)"
          },
          "groupLabel": {
            "type": "string",
            "description": "체크박스 그룹 라벨"
          },
          "minCheckRequired": {
            "type": "number",
            "description": "최소 선택 개수. 현재는 0 또는 1만 지원합니다."
          },
          "maxCheckLimit": {
            "type": "number",
            "description": "최대 선택 개수. 현재는 1또는 null만 지원합니다. null은 최대 개수까지 선택가능함을 뜻합니다.",
            "nullable": true
          },
          "conditionalRule": {
            "description": "이 입력란 그룹을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "groupLabel",
          "minCheckRequired",
          "maxCheckLimit"
        ]
      },
      "AutofillFieldGroupInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "AUTOFILL_GROUP",
            "description": "입력란 그룹 종류 (예시 값으로 고정되어 있습니다)"
          },
          "groupLabel": {
            "type": "string",
            "description": "동기화 그룹 라벨"
          }
        },
        "required": [
          "type",
          "groupLabel"
        ]
      },
      "ImageFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "IMAGE",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "dataLabel"
        ]
      },
      "HandwritingFieldInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "HANDWRITING",
            "description": "입력란의 종류 (예시 값으로 고정되어 있습니다)"
          },
          "required": {
            "type": "boolean",
            "description": "필수 입력 여부"
          },
          "size": {
            "description": "참여자 입력의 크기",
            "allOf": [
              {
                "$ref": "#/components/schemas/SizeInTemplateResponseDto"
              }
            ]
          },
          "position": {
            "description": "참여자 입력의 위치",
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionInTemplateResponseDto"
              }
            ]
          },
          "dataLabel": {
            "type": "string",
            "description": "입력란의 데이터 라벨"
          },
          "groupLabel": {
            "type": "string",
            "description": "입력란의 그룹 라벨",
            "nullable": true
          },
          "traceText": {
            "type": "string",
            "description": "따라 쓸 문구"
          },
          "conditionalRule": {
            "description": "이 입력란을 대상으로 삼는 조건부 표시 규칙",
            "allOf": [
              {
                "$ref": "#/components/schemas/ConditionalRuleInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "required",
          "size",
          "position",
          "dataLabel",
          "traceText"
        ]
      },
      "SigningMethodInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "EMAIL",
              "KAKAO",
              "SECURE_LINK",
              "IN_PERSON"
            ],
            "description": "참여 수단 종류"
          },
          "value": {
            "type": "string",
            "description": "참여자의 참여 수단 (이메일 또는 휴대전화번호)"
          }
        },
        "required": [
          "type",
          "value"
        ]
      },
      "AttachmentRequestInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "첨부파일 종류"
          },
          "message": {
            "type": "string",
            "description": "추가 안내 사항",
            "nullable": true
          },
          "required": {
            "type": "boolean",
            "description": "필수 여부"
          },
          "dataLabel": {
            "type": "string",
            "description": "첨부파일의 데이터 라벨"
          }
        },
        "required": [
          "name",
          "required",
          "dataLabel"
        ]
      },
      "ParticipantPasswordInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "추가 인증 사용 여부"
          }
        },
        "required": [
          "enabled"
        ]
      },
      "ParticipantMobileIdentificationInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "추가 인증 사용 여부"
          }
        },
        "required": [
          "enabled"
        ]
      },
      "ParticipantDCertInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "추가 인증 사용 여부"
          }
        },
        "required": [
          "enabled"
        ]
      },
      "VerificationInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "password": {
            "description": "추가인증 - 패스워드",
            "allOf": [
              {
                "$ref": "#/components/schemas/ParticipantPasswordInTemplateResponseDto"
              }
            ]
          },
          "mobileIdentification": {
            "description": "추가인증 - 휴대폰 본인 인증",
            "allOf": [
              {
                "$ref": "#/components/schemas/ParticipantMobileIdentificationInTemplateResponseDto"
              }
            ]
          },
          "dCert": {
            "description": "추가인증 - 법인 공동인증서 인증",
            "allOf": [
              {
                "$ref": "#/components/schemas/ParticipantDCertInTemplateResponseDto"
              }
            ]
          }
        }
      },
      "SignerInParticipantTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "참여자 타입",
            "enum": [
              "SIGNER"
            ]
          },
          "role": {
            "type": "string",
            "description": "참여자의 역할"
          },
          "signingOrder": {
            "type": "integer",
            "description": "참여자의 서명/열람 순서"
          },
          "name": {
            "type": "string",
            "description": "참여자의 이름 (공란일 수 있음)"
          },
          "signingMethod": {
            "description": "참여자의 참여 수단 정보 (공란일 수 있음)",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SigningMethodInTemplateResponseDto"
              }
            ]
          },
          "attachmentRequests": {
            "description": "첨부파일 요청 정보",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentRequestInTemplateResponseDto"
            }
          },
          "fields": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "title": "SIGNATURE",
                  "$ref": "#/components/schemas/SignatureFieldInTemplateResponseDto"
                },
                {
                  "title": "TEXT",
                  "$ref": "#/components/schemas/TextFieldInTemplateResponseDto"
                },
                {
                  "title": "CHECKBOX",
                  "$ref": "#/components/schemas/CheckboxFieldInTemplateResponseDto"
                },
                {
                  "title": "DROPDOWN",
                  "$ref": "#/components/schemas/DropdownFieldInTemplateResponseDto"
                },
                {
                  "title": "NAME",
                  "$ref": "#/components/schemas/NameFieldInTemplateResponseDto"
                },
                {
                  "title": "COMPANY_NAME",
                  "$ref": "#/components/schemas/CompanyNameFieldInTemplateResponseDto"
                },
                {
                  "title": "ADDRESS",
                  "$ref": "#/components/schemas/AddressFieldInTemplateResponseDto"
                },
                {
                  "title": "DATE",
                  "$ref": "#/components/schemas/DateFieldInTemplateResponseDto"
                },
                {
                  "title": "SIGNING_DATE",
                  "$ref": "#/components/schemas/SigningDateFieldInTemplateResponseDto"
                },
                {
                  "title": "IMAGE",
                  "$ref": "#/components/schemas/ImageFieldInTemplateResponseDto"
                },
                {
                  "title": "HANDWRITING",
                  "$ref": "#/components/schemas/HandwritingFieldInTemplateResponseDto"
                }
              ]
            },
            "description": "참여자 입력란"
          },
          "fieldGroups": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "title": "CHECKBOX_GROUP",
                  "$ref": "#/components/schemas/CheckboxFieldGroupInTemplateResponseDto"
                },
                {
                  "title": "AUTOFILL_GROUP",
                  "$ref": "#/components/schemas/AutofillFieldGroupInTemplateResponseDto"
                }
              ]
            },
            "description": "참여자 입력란 그룹"
          },
          "checkboxFieldGroups": {
            "description": "체크박스 그룹 (deprecated 되었으며 fieldGroups를 대신 활용해주세요)",
            "deprecated": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeprecatedCheckboxFieldGroupInTemplateResponseDto"
            }
          },
          "verification": {
            "description": "참여자 추가 인증",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/VerificationInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "type",
          "role",
          "signingOrder",
          "attachmentRequests",
          "fields",
          "fieldGroups",
          "checkboxFieldGroups",
          "verification"
        ]
      },
      "ViewerInParticipantTemplateResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "참여자 타입",
            "enum": [
              "VIEWER"
            ]
          },
          "role": {
            "type": "string",
            "description": "참여자의 역할"
          },
          "signingOrder": {
            "type": "integer",
            "description": "참여자의 서명/열람 순서"
          },
          "name": {
            "type": "string",
            "description": "참여자의 이름 (공란일 수 있음)"
          },
          "signingMethod": {
            "description": "참여자의 참여 수단 정보 (공란일 수 있음)",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SigningMethodInTemplateResponseDto"
              }
            ]
          },
          "attachmentRequests": {
            "description": "첨부파일 요청 정보",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentRequestInTemplateResponseDto"
            }
          },
          "fields": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "title": "SIGNATURE",
                  "$ref": "#/components/schemas/SignatureFieldInTemplateResponseDto"
                },
                {
                  "title": "TEXT",
                  "$ref": "#/components/schemas/TextFieldInTemplateResponseDto"
                },
                {
                  "title": "CHECKBOX",
                  "$ref": "#/components/schemas/CheckboxFieldInTemplateResponseDto"
                },
                {
                  "title": "DROPDOWN",
                  "$ref": "#/components/schemas/DropdownFieldInTemplateResponseDto"
                },
                {
                  "title": "NAME",
                  "$ref": "#/components/schemas/NameFieldInTemplateResponseDto"
                },
                {
                  "title": "COMPANY_NAME",
                  "$ref": "#/components/schemas/CompanyNameFieldInTemplateResponseDto"
                },
                {
                  "title": "ADDRESS",
                  "$ref": "#/components/schemas/AddressFieldInTemplateResponseDto"
                },
                {
                  "title": "DATE",
                  "$ref": "#/components/schemas/DateFieldInTemplateResponseDto"
                },
                {
                  "title": "SIGNING_DATE",
                  "$ref": "#/components/schemas/SigningDateFieldInTemplateResponseDto"
                },
                {
                  "title": "IMAGE",
                  "$ref": "#/components/schemas/ImageFieldInTemplateResponseDto"
                },
                {
                  "title": "HANDWRITING",
                  "$ref": "#/components/schemas/HandwritingFieldInTemplateResponseDto"
                }
              ]
            },
            "description": "참여자 입력란"
          },
          "fieldGroups": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "title": "CHECKBOX_GROUP",
                  "$ref": "#/components/schemas/CheckboxFieldGroupInTemplateResponseDto"
                },
                {
                  "title": "AUTOFILL_GROUP",
                  "$ref": "#/components/schemas/AutofillFieldGroupInTemplateResponseDto"
                }
              ]
            },
            "description": "참여자 입력란 그룹"
          },
          "checkboxFieldGroups": {
            "description": "체크박스 그룹 (deprecated 되었으며 fieldGroups를 대신 활용해주세요)",
            "deprecated": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeprecatedCheckboxFieldGroupInTemplateResponseDto"
            }
          },
          "verification": {
            "description": "참여자 추가 인증",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/VerificationInTemplateResponseDto"
              }
            ]
          },
          "manuallyViewing": {
            "type": "boolean",
            "description": "상세 열람 여부"
          }
        },
        "required": [
          "type",
          "role",
          "signingOrder",
          "attachmentRequests",
          "fields",
          "fieldGroups",
          "checkboxFieldGroups",
          "verification",
          "manuallyViewing"
        ]
      },
      "TemplateFileInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "downloadUrl": {
            "type": "string",
            "description": "다운로드 링크(유효시간: 10분)"
          }
        },
        "required": [
          "downloadUrl"
        ]
      },
      "RequesterAttachmentFileInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "파일명"
          },
          "extension": {
            "type": "string",
            "description": "파일 확장자"
          },
          "size": {
            "type": "number",
            "description": "파일 크기 (Byte)"
          },
          "downloadUrl": {
            "type": "string",
            "description": "다운로드 링크(유효시간: 10분)"
          }
        },
        "required": [
          "name",
          "extension",
          "size",
          "downloadUrl"
        ]
      },
      "RequesterAttachmentInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "dataLabel": {
            "type": "string",
            "description": "요청자 첨부파일의 데이터 라벨"
          },
          "name": {
            "type": "string",
            "description": "첨부파일 종류"
          },
          "file": {
            "description": "첨부된 파일",
            "example": {
              "name": "첨부파일_1",
              "extension": ".pdf",
              "size": 10240,
              "downloadUrl": "https://app.modusign.co.kr"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/RequesterAttachmentFileInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "dataLabel",
          "name",
          "file"
        ]
      },
      "DocumentLabelInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "라벨 ID"
          },
          "name": {
            "type": "string",
            "description": "라벨 이름"
          },
          "description": {
            "type": "string",
            "description": "라벨의 설명",
            "nullable": true
          }
        },
        "required": [
          "id",
          "name",
          "description"
        ]
      },
      "CarbonCopyInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "string",
            "description": "참조자 연락처"
          },
          "locale": {
            "type": "string",
            "description": "참조자 언어",
            "enum": [
              "ko",
              "en",
              "zh-CN",
              "ja",
              "vi",
              "fr"
            ]
          }
        },
        "required": [
          "contact",
          "locale"
        ]
      },
      "IntegritySealInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "진본 증명 도장 활성화 여부",
            "default": false
          },
          "position": {
            "description": "진본 증명 도장 위치",
            "nullable": true,
            "example": "TOP_RIGHT",
            "allOf": [
              {
                "$ref": "#/components/schemas/IntegritySealPosition"
              }
            ]
          }
        },
        "required": [
          "enabled",
          "position"
        ]
      },
      "DocumentSealInTemplateResponseDto": {
        "type": "object",
        "properties": {
          "integritySeal": {
            "description": "진본 증명 도장 설정",
            "allOf": [
              {
                "$ref": "#/components/schemas/IntegritySealInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "integritySeal"
        ]
      },
      "CreateTemplateResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "템플릿의 ID"
          },
          "metadatas": {
            "description": "메타데이터 리스트",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MetadataInTemplateResponseDto"
            }
          },
          "title": {
            "type": "string",
            "description": "템플릿 제목"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string",
            "description": "템플릿 생성 시간"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string",
            "description": "템플릿 마지막 업데이트 시간"
          },
          "file": {
            "description": "템플릿 PDF 파일 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/TemplateFileInTemplateResponseDto"
              }
            ]
          },
          "requesterInputs": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "title": "TEXT",
                  "$ref": "#/components/schemas/TextRequesterInputInTemplateResponseDto"
                },
                {
                  "title": "CHECKBOX",
                  "$ref": "#/components/schemas/CheckboxRequesterInputInTemplateResponseDto"
                },
                {
                  "title": "IMAGE",
                  "$ref": "#/components/schemas/ImageRequesterInputInTemplateResponseDto"
                },
                {
                  "title": "DROPDOWN",
                  "$ref": "#/components/schemas/DropdownRequesterInputInTemplateResponseDto"
                },
                {
                  "title": "NAME",
                  "$ref": "#/components/schemas/NameRequesterInputInTemplateResponseDto"
                }
              ]
            },
            "description": "템플릿에 적용된 추가내용 입력"
          },
          "requesterAttachments": {
            "description": "설정된 요청자 첨부파일 정보",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RequesterAttachmentInTemplateResponseDto"
            }
          },
          "participants": {
            "type": "array",
            "description": "설정된 참여자 정보",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/SignerInParticipantTemplateResponseDto",
                  "title": "서명자 (SIGNER)",
                  "description": "서명자"
                },
                {
                  "$ref": "#/components/schemas/ViewerInParticipantTemplateResponseDto",
                  "title": "열람자 (VIEWER)",
                  "description": "열람자"
                }
              ]
            }
          },
          "documentLabels": {
            "description": "해당 템플릿으로 참여 요청 시 자동으로 적용될 라벨 목록",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentLabelInTemplateResponseDto"
            }
          },
          "requesterEditable": {
            "type": "boolean",
            "description": "템플릿으로 서명 요청 시 문서의 내용이 변경 가능한 여부 (false 인 경우 기본적인 발송 설정을 제외한, 서명자 필드와 같은 데이터를 수정하여 발송할 수 없습니다)",
            "example": true
          },
          "carbonCopies": {
            "description": "참조자 정보",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarbonCopyInTemplateResponseDto"
            }
          },
          "seal": {
            "description": "문서 봉인 설정 정보",
            "allOf": [
              {
                "$ref": "#/components/schemas/DocumentSealInTemplateResponseDto"
              }
            ]
          }
        },
        "required": [
          "id",
          "metadatas",
          "title",
          "createdAt",
          "updatedAt",
          "requesterInputs",
          "requesterAttachments",
          "participants",
          "documentLabels",
          "requesterEditable",
          "carbonCopies",
          "seal"
        ]
      }
    }
  }
}
```