✅ "서명 내용 수정 요청" 기능 지원

API 신규기능 "서명 내용 수정 요청"을 지원합니다.

기능설명

📘

서명 내용 수정 요청을 통하여 서명자의 입력란 수정

"서명 내용 수정 요청" 기능을 통하여 서명자의 입력란을 수정할 수 있습니다. 서명자가 계약문서에 잘못 입력하거나 혹은 다시 입력하고 싶을 때 사용해보세요.

요청방법

  • POST /documents/:documentId/request-correction
  • path params: documentId, participantId
  • body params: message

관련 API 안내페이지

예외사항

🚧

서명 진행 중인 문서 상태만 사용 가능

모든 서명자가 서명을 완료하여 계약서가 완료되면 해당 기능을 사용할 수 없습니다.

예외메세지: Document status is not on going (status code: 422)

🚧

서명자가 서명을 하지 않은 경우

예외메시지: Signing is not found (status code: 422)

🚧

순서 없는 서명

예외메시지: The order of signer must not be duplicated (status code: 422)

🚧

서명 내용 수정 요청 기능이 지원되기 전에 생성된 문서

예외메시지: This document was created before the implementation of the correcting signing, thus, it is not available (status code: 422)

🚧

대면서명 서명방식

예외메시지: In person signing method is not supported (status code: 422)

🚧

보안링크 서명 서명방식

예외메시지: Secure link signing method is not supported (status code: 422)

🚧

문서의 참여자 정보를 잘못 입력

예외메시지: Participant is not found (status code: 422)

✅ 드롭다운 필드 "고급 입력란" 기능으로 요금제 편성

고급 입력란(드롭다운 필드) 기능이 추가되어 요금제 구성이 변경되었습니다. 고급 입력란 기능은 TeamPro, 맞춤형 및 연동형 요금제에 무상으로 제공하게 되었습니다.

기존에 API 를 사용하는 고객들은 TeamPro, 맞춤형 및 연동형 요금제 등급이기 때문에 고급 입력란(드롭다운) 필드를 계속적으로 이용하실 수 있습니다.

  • 단, 새롭게 Personal, Team 요금제를 통해서 가입하게 되는 고객님들은 고급 입력란(드롭다운) 기능 사용을 위해서는 TeamPro 이상의 요금제로 업그레이드를 해주시기 바랍니다.
🚧

Personal, Team 요금제의 경우 고급 입력란 사용 불가

Personal, Team 요금제의 경우 고급 입력란(드롭다운)을 사용할 수 없습니다. 고급 입력란 기능을 사용하기 위하여는 요금제를 Team Pro 이상 요금제로 업그레이드 하여 주시기 바랍니다.

해당 요금제 권한이 없을 경우 예외발생 (Http Status Code: 403)

✅ 요청자 입력 조회 "요청자 이름, 드롭다운" 추가

요청자 이름 및 드롭다운 입력란 DTO

// 요청자 이름 입력란
class NameRequesterInputResponseDto
{
  dataLabel: string;
  type: FieldType.NAME;
  value: string;
}

// 드롭다운 입력란
class DropdownRequesterInputResponseDto
{
  dataLabel: string;
  type: FieldType.DROPDOWN;
  value: string;
}

✅ 템플릿 정보 가져오기 "요청자 이름, 드롭다운" 추가

템플릿에서 요청자 이름 및 드롭다운 입력란 DTO

// 응답 요청자 이름 입력란
class NameRequesterInputInTemplateResponseDto
{
  dataLabel: string;
  type: FieldType.NAME;
  position: {
    x: number;
    y: number;
    page: number;
  };
  size: {
    width: number;
    height: number;
  } | null;
  textStyle: {
    size: number;
    font: string;
    align: string;
  };
  value: string;
}

// 드롭다운 입력란
class DropdownRequesterInputInTemplateResponseDto
{
  dataLabel: string;
  type: FieldType.DROPDOWN;
  required: boolean;
  size: {
    width: number;
    height: number;
  };
  position: {
    x: number;
    y: number;
    page: number;
  };
  textStyle: {
    size: number;
    font: string;
  };
  options: {
    value: string;
  }[];
}

📂 문서 리스트 조회 시 필터 조건 추가

문서 리스트 조회 API 필터에 라벨 ID(labelIds) 조건이 추가되었습니다.

📘

filter로 검색하기

filter로 검색하기가 어떤 기능인지 궁금하신 분은 filter로 검색하기를 확인해 보세요.


📂 템플릿 리스트 조회 API 응답 속성 추가

템플릿 리스트 조회 API 를 통해 라벨 리스트를 조회 할 수 있습니다.

📘

기존 폴더 기능이 라벨로 대체

기존에 사용하던 폴더 기능이 라벨로 대체 되며 폴더 관련 속성들은 일정 기간이 지난 후 제거 됩니다.
라벨 기능이 궁금하시면 "라벨을 만들어 분류하기" 를 참고해주세요

기존에는 템플릿에 설정한 라벨 리스트를 API 를 통해 확인할 수 있는 부분이 없었지만, 템플릿 리스트 조회에 해당 속성이 추가 되어 확인할 수 있도록 제공 됩니다. ( labels)

응답 유형은 아래와 같으며, id,name,description 항목이 제공 됩니다.

{
  "labels": [
    {
      "id": "01HSFWHB8T89Y4E92BJ3568VBR",
      "name": "라벨명"
      "description": null
    },
    {
      "id": "01HSFWJPNJ4ZMWY4ZX09EBBF68",
      "name": "라벨명2"
      "description": "설명을 적을 수 있습니다."
    }
  ]
}

🔖 요청 문서에 적용할 라벨 기능 지원

📘

요청 문서에 적용할 라벨 기능

템플릿에 요청 문서에 적용할 라벨 기능을 설정하고, 해당 템플릿을 이용하여 서명을 요청하면 자동으로 문서에 해당 라벨이 설정됩니다.

📌 기존에는 모두싸인 홈페이지에서 템플릿에 요청 문서에 적용할 라벨 을 설정하고, 템플릿으로 서명 요청 API를 통해 서명 요청을 진행해도, 해당 라벨이 적용되지 않았습니다. (홈페이지 전용 기능)

📌 앞으로는 모두싸인 홈페이지 또는 템플릿 생성 API에서 요청 문서에 적용할 라벨 설정하고, 템플릿으로 서명 요청 API를 통해 서명 요청을 진행하면, 자동으로 설정된 라벨들이 요청된 문서에도 적용됩니다.


🔖 템플릿 생성 시 요청 문서에 적용할 라벨 아이디 속성 추가

템플릿 생성 시 복수개(최대 5개)의 요청 문서에 적용할 라벨을 설정할 수 있습니다.

📌 🔖 요청 문서에 적용할 라벨 기능 지원 파트에서 설명된 것처럼 documentLabelIds를 설정하여 템플릿을 생성한 후, 템플릿으로 서명 요청 API를 통해 서명 요청을 진행하면, 자동으로 설정된 라벨들이 요청된 문서에도 적용됩니다.

📌 documentLabelIds는 복수개(최대 5개)의 라벨 설정이 가능 합니다.


🔖 템플릿 정보 가져오기 API 응답 속성 추가

템플릿 정보 가져오기 API 를 통해 요청 문서에 적용할 라벨 리스트를 조회 할 수 있습니다.

기존에는 템플릿에 설정된 요청 문서에 적용할 라벨리스트를 API 를 통해 확인할 수 있는 부분이 없었지만, 템플릿 정보 가져오기에 해당 속성이 추가 되어 확인할 수 있도록 제공 됩니다. ( documentLabels)

응답 유형은 아래와 같으며, id,name,description 항목이 제공 됩니다.

{
  "documentLabels": [
    {
      "id": "01HSFWHB8T89Y4E92BJ3568VBR",
      "name": "라벨명"
      "description": null
    },
    {
      "id": "01HSFWJPNJ4ZMWY4ZX09EBBF68",
      "name": "라벨명2"
      "description": "설명을 적을 수 있습니다."
    }
  ]
}

✅ [서명자] 서명한 날짜 필드 추가

서명한 날짜 필드(SIGNING_DATE) 추가

서명한 날짜 필드는 서명자가 서명한 날짜가 자동으로 기입되는 필드입니다.

다음의 API에서 서명한 날짜 필드가 추가되었습니다.

템플릿 정보 가져오기 API 응답 필드 타입 추가

템플릿 조회API 응답에 날짜, 서명한 날짜 필드 타입이 추가되었습니다.


type FieldType = {  
  TEXT = "TEXT",  
  CHECKBOX = "CHECKBOX",  
  SIGNATURE = "SIGNATURE",  
  IMAGE = "IMAGE",  
  DROPDOWN = "DROPDOWN",  
  NAME = "NAME",  
  COMPANY_NAME = "COMPANY_NAME",  
  ADDRESS = "ADDRESS",  
  DATE = "DATE", // 신규 추가  
  SIGNING_DATE = "SIGNING_DATE" // 신규 추가  
}

class DateFieldInTemplateResponseDto {  
  type: FieldType.DATE;  
  required: boolean;  
  size: {  
    width: number;  
    heigth: number;  
  };  
  position: {  
  	  x: number;  
	  y: number;  
	  page: number;  
	};  
  textStyle: {  
    size: number;  
    font: string;  
  };  
  dataLabel: string;  
  displayFormat: string;  
}

class SigningDateFieldInTemplateResponseDto {  
  type: FieldType.SIGNING_DATE;  
  required: boolean;  
  size: {  
    width: number;  
    heigth: number;  
  };  
  position: {  
  	  x: number;  
	  y: number;  
	  page: number;  
	};  
  textStyle: {  
    size: number;  
    font: string;  
  };  
  dataLabel: string;  
  displayFormat: string;  
}

✅ [서명자/서명 필드] 도장 이미지 업로드만 허용 속성

서명자 서명 필드에 도장 이미지 업로드만 허용하는 속성(allowedGenerationMethods)이 추가되었습니다.

해당 속성이 추가된 API는 아래와 같습니다.

템플릿 정보 가져오기 API를 통해 서명자 서명 필드 도장 이미지 업로드만 허용 속성을 조회할 수 있습니다.

템플릿 생성 시 설정한 서명자 서명 필드 도장 이미지 업로드만 허용 속성(allowedGenerationMethods)을 템플릿 정보 가져오기 API에서 확인할 수 있습니다.
응답 유형은 아래와 같습니다.

"fields": [  
  {  
    "type": "SIGNATURE",  
    "required": true,  
    "signatureTypes": [  
      "STAMP"  
    ],  
    // 신규 추가
    "allowedGenerationMethods": ["STAMP_IMAGE"],  
    "position": {  
      "x": 0.5,  
      "y": 0.5,  
      "page": 1  
    },  
    "dataLabel": "signature_dataLabel"  
  }  
]

✅ [서명자/텍스트 필드] 형식 추가

서명자 텍스트 필드에서 유효성을 검증할 수 있는 형식 속성(format)이 추가되었습니다.

해당 속성이 추가된 API는 아래와 같습니다.

템플릿 정보 가져오기 API를 통해 서명자 텍스트 필드 형식 속성을 조회할 수 있습니다.

템플릿 생성 시 설정한 서명자 텍스트 필드 형식 속성(format)을 템플릿 정보 가져오기 API에서 확인할 수 있습니다.
응답 유형은 아래와 같습니다.

"fields": [  
  { 
    "type": "TEXT",  
    "required": true,  
    "size": {
      "width": 0.3,
      "height": 0.3,
    }
    "position": {  
      "x": 0.5,  
      "y": 0.5,  
      "page": 1  
    },
  	"textStyle": {
  		"size": 12,
  		"font": "NOTO_SANS",
  		"align": "LEFT"
    },
    "dataLabel": "text_dataLabel",
    // 신규 추가
    "format": {
      "type": "PHONE_NUMBER" | "BANK_ACCOUNT_NUMBER" | "BIZ_NUMBER"
    }
  }  
]

✅ [날짜/ 서명한 날짜] 서명자 입력란 조회 API 필드 반환 설명 변경

날짜, 서명한 날짜 필드 반환값의 설명을 아래와 같이 추가하였습니다.

'서명자의 입력값\n ' +
  // 추가
'* 날짜, 서명한 날짜라면 ISO Date string (UTC Timezone)\n' +
'* 날짜, 서명한 날짜는 계약서 PDF에는 KST로 입력됨\n' +
  //
'* 입력항목이 텍스트, 드롭다운, 이름, 회사명 string\n' +
'* 입력항목이 사인/도장 또는 체크박스라면 true, false\n' +
'* 입력항목이 주소라면 AddressInputValue',

🧑‍💻 Webhook 재시도에 대한 정책 변경

기존 정책에서는 Webhook 응답 상태 코드가 200번대 아니거나, 응답에 10초 이상 소요되는 경우 실패로 판단하고 총 5회의 재시도 했습니다. 모니터링 결과 재시도 했을 때 성공 전환율 낮거나, 의도하지 않은 중복 작업을 발생시킬 가능성이 있으므로 일부 상황에 대해 재시도 하지 않도록 변경하고자 합니다. 자세한 내용은 Webhook event를 참고해 주세요.

🚧

Webhook 재시도 정책 변경

[AS-IS]

  • 응답이 2xx 가 아니거나 10초이상 소요되는 모든 요청에 대해 최대 5회 재시도

[TO-BE]

  • 401, 404, 10초 이상의 소요되는 요청(Timeout)을 제외한 응답에 대해 최대 5회 재시도

📂 사용자 입력란 조회 API 응답 필드 타입 추가

사용자 입력란 조회 API 응답에 드롭다운, 계약자 이름, 회사이름, 주소 필드 타입이 추가되었습니다.

participantFields: {
  ...
  type: FieldType
  value: AddressInputValueModel | string | null
}

type FieldType = {
    TEXT = "TEXT",
    CHECKBOX = "CHECKBOX",
    SIGNATURE = "SIGNATURE",
    IMAGE = "IMAGE",
    DROPDOWN = "DROPDOWN", // 신규 추가
    NAME = "NAME", // 신규 추가
    COMPANY_NAME = "COMPANY_NAME", // 신규 추가
    ADDRESS = "ADDRESS", // 신규 추가
}

// 신규 추가 (type 이 ADDRESS 일 경우 해당 value 를 반환)
type AddressInputValueModel = { 
    address1: string;
    address2: string;
    city: string;
    province: string;
    zip: string;
    country: AddressCountryCode;
}
🚧

추가 된 신규 필드유형은 API 서명 요청 시 아직 이용 할 수 없습니다.

추가 된 문서의 신규 필드(드롭다운 , 계약자 이름, 회사이름, 주소)는 모두싸인 플랫폼에서 요청한 문서에 대한 응답 호환성을 유지하기 위해 추가 된 것으로 API를 이용한 서명 요청시에는 아직 사용할 수 없습니다. API를 통한 서명 요청 시 해당 필드들에 대한 지원 여부는 내부 검토중에 있으니 해당 기능 필요 시 모두싸인 플랫폼을 활용 바랍니다.

📂 템플릿 조회 API 응답 필드 타입 추가

템플릿 정보 가져오기 API 응답의 fields에 드롭다운, 계약자 이름, 회사이름, 주소 필드 타입이 추가되었습니다

각 필드 타입은 아래 코드에서 자세히 확인하실 수 있습니다.

class DropdownFieldInTemplateResponseDto {
  type: 'DROPDOWN';
  required: boolean
  size: {
    width: number;
    heigth: number;
  };
  position: {
  	x: number;
	  y: number;
	  page: number;
	};
  textStyle: {
    size: number;
    font: string;
  };
  dataLabel: string;
}
  
class NameFieldInTemplateResponseDto {
  type: 'NAME';
  required: boolean
  size: {
    width: number;
    heigth: number;
  };
  position: {
  	x: number;
	  y: number;
	  page: number;
	};
  textStyle: {
    size: number;
    font: string;
  };
  dataLabel: string;
}

class CompanyNameFieldInTemplateResponseDto {
  type: 'COMPANY_NAME';
  required: boolean
  size: {
    width: number;
    heigth: number;
  };
  position: {
  	x: number;
	  y: number;
	  page: number;
	};
  textStyle: {
    size: number;
    font: string;
  };
  dataLabel: string;
}

class AddressFieldInTemplateResponseDto {
  type: 'ADDRESS';
  required: boolean
  size: {
    width: number;
    heigth: number;
  };
  position: {
  	x: number;
	  y: number;
	  page: number;
	};
  textStyle: {
    size: number;
    font: string;
  };
  dataLabel: string;
}

✅ 문서 리스트 / 문서 상세 조회 API 응답 속성 추가

문서 리스트 / 문서 상세 조회 API를 통해 라벨 정보를 조회할 수 있습니다.

기존에는 서명 요청 시, 혹은 서명 요청 후 모두싸인 홈페이지에서 설정한 라벨 정보를 API를 통해 확인할 수 있는 방법이 없었습니다.

이번 업데이트로 문서 리스트 조회 및 문서 상세 조회 API에 해당 속성이 추가되어 라벨 정보를 확인할 수 있도록 제공됩니다.

앞으로는 API 서명요청에서도 라벨을 통해 문서를 더욱 쉽게 분류하실 수 있습니다!

⚠️ 라벨 정보는 순서를 보장하지 않으니, 필요하신 경우 별도로 정렬이 필요합니다.

📘

기존 폴더 기능이 라벨로 대체

기존에 사용하던 폴더 기능이 라벨로 대체 되며 폴더 관련 속성들은 일정 기간이 지난 후 제거 됩니다.
라벨 기능이 궁금하시면 "라벨을 만들어 분류하기" 를 참고해주세요

📂 문서 리스트 조회 시 필터 조건 추가

문서 리스트 조회 API 필터에 마지막 활동일(updatedAt) 조건이 추가되었습니다.

📘

필터로 검색하기가 어떤 기능인지 궁금하신 분은 filter로 검색하기를 확인해 보세요.

📂 문서 리스트 조회 시 정렬 기능 추가

문서 리스트를 API를 통해 조회 시 정렬 기능이 추가되었습니다.

📌 정렬 기능은 orderBy 속성을 통해 이용하실 수 있습니다.

📌 정렬 가능 필드는 문서 제목, 문서 생성일, 마지막 활동일이 제공됩니다.

📌 정렬 기준은 오름차순, 내림차순이 제공됩니다.

📘

정렬 기능이 궁금하신 분은 orderBy로 정렬하기를 확인해 보세요.

✅ 문서 상세 조회 API 응답 속성 추가

문서 상세 조회 API 를 통해 참조자 리스트를 조회 할 수 있습니다.

서명 요청 시 설정한 참조자 정보를 설정 한 후 해당 정보를 API 를 통해 확인할 수 있는 부분이 없었지만, 문서 상세 조회에 해당 속성이 추가 되어 확인할 수 있도록 제공 됩니다. ( carbonCopies)

응답 유형은 아래와 같으며, contact 항목이 제공 됩니다.

{
  "carbonCopies": [
    {
      "contact": "01000000000"
    },
    {
      "contact": "[email protected]"
    }
  ]
}

🗂️ 서명 요청 시 라벨 아이디 속성 추가

서명 요청, 템플릿으로 서명 요청 시 복수개(최대 5개)의 라벨을 설정할 수 있습니다.

📘

기존 폴더 기능이 라벨로 대체

기존에 사용하던 폴더 기능이 라벨로 대체 되며 폴더 관련 속성들은 일정 기간이 지난 후 제거 됩니다.
라벨 기능이 궁금하시면 "라벨을 만들어 분류하기" 를 참고해주세요

📌 서명요청, 템플릿으로 서명요청 시 사용하던 folderId는 이제 labelIds으로 대체 됩니다.

📌 folderId는 하나의 폴더를 지정했지만, labelIds는 복수개(최대 5개)의 라벨 설정이 가능 합니다.

📢 기존에 folderId를 사용하고 계셨다면 labelIds속성을 사용할 수 있도록 변경을 권장드리며, 신규로 라벨 기능을 사용하시려면 labelIds속성을 활용해주세요!


📋 "전송 예약 중" 문서 상태 추가

모두싸인 플랫폼에서 예약 전송 기능이 추가됨에 따라 플랫폼에서 설정한 예약문서에 대해 상태(Status) 속성으로 SCHEDULED가 추가 되었습니다.

📘

예약전송 이란?

원하는 시간에 서명 요청이 전송되도록 예약할 수 있는 기능이며 모두싸인 플랫폼에서 이용 가능합니다. 예약 전송 기능이 궁금하시면 "예약 전송 기능 소개"를 참고해주세요

📌 모두싸인 플랫폼 기능과 API 기능을 함께 사용할 경우, 플랫폼에서 예약 전송 등록 시 API 에서는 해당 문서가 SCHEDULED 상태로 조회 됩니다.