Added

1.43.0

템플릿 병합 (Template Merge)

여러 개의 템플릿 또는 파일을 하나의 임시 템플릿으로 병합하며, 병합된 임시 템플릿으로 서명 요청을 발송할 수 있습니다.

💡

병합 API로 생성된 임시 템플릿은 2시간 동안 유효합니다.

만료 전에 서명 요청을 발송해 주세요. 만료된 템플릿으로 요청 시 404 Not Found가 반환됩니다.


사용 흐름

템플릿 병합 API는 소스 준비 → 병합 → 서명 요청 흐름의 병합 단계를 담당합니다.


적용 API

엔드포인트메서드설명
/templates/mergePOST임시 템플릿 생성
단계설명
소스 준비TEMPLATE 소스: 템플릿 생성 API로 생성한 템플릿 ID를 사용합니다.
FILE 소스: 파일 업로드 APIfileIdtoken을 발급받습니다.
병합POST /templates/merge에 준비한 소스들을 전달합니다. 응답의 id가 임시 템플릿 ID이며, 생성 후 2시간 동안 유효합니다.
서명 요청임시 템플릿 ID를 템플릿으로 서명 요청 APItemplateId에 전달합니다.

사용 방법

sources 배열에 병합할 소스를 순서대로 전달합니다. 최소 2개, 최대 12개까지 지정할 수 있습니다.

기존에 생성된 템플릿 ID를 소스로 사용합니다.

{
  "sources": [
    { "type": "TEMPLATE", "templateId": "templateId-1" },
    { "type": "TEMPLATE", "templateId": "templateId-2" }
  ]
}

요청 파라미터

공통

파라미터타입필수설명
sourcesarrayY병합할 소스 목록. 최소 2개, 최대 12개

TEMPLATE 소스

파라미터타입필수설명
type"TEMPLATE"Y소스 타입
templateIdstringY템플릿 ID

FILE 소스

파라미터타입필수설명
type"FILE"Y소스 타입
fileIdstringY파일 업로드 API로 얻은 파일 ID
tokenstringY파일 업로드 API로 얻은 토큰
participantsarrayNPOST /templates와 동일 구조. 기본값 []
requesterInputsarrayNPOST /templates와 동일 구조. 기본값 []
requesterAttachmentsarrayNPOST /templates와 동일 구조. 기본값 []

응답 (201 Created)

GET /templates/{id} 응답과 동일한 구조에 expiredAt 필드가 추가됩니다.

필드타입설명
idstring임시 템플릿 ID
expiredAtdatetime만료 시각 (생성 후 2시간)
titlestring가장 앞 템플릿의 제목 (파일만인 경우 자동 생성)
participantsarray병합된 참여자 목록
requesterInputsarray병합된 요청자 입력란
requesterAttachmentsarray병합된 요청자 첨부파일
fileobject병합된 PDF (downloadUrl 포함)
documentLabelsarray가장 앞 템플릿의 라벨
sealobject가장 앞 템플릿의 진본증명도장 설정
⚠️

병합 과정에서 roledataLabel이 원본과 달라질 수 있습니다. 서명 요청 시 반드시 병합 응답의 값을 사용하세요.

  • role — 역할이 동일하지만 병합되지 않은 서명자가 존재할 경우, 뒤 소스의 서명자부터 을 - 1, 을 - 2 형태로 접미사가 추가됩니다.
  • dataLabel — 소스 간 중복 시 {dataLabel}_{템플릿_제목}_{템플릿_ID_앞_8자리} 형식으로 자동 변환됩니다. (최대 100자)

병합 규칙

기준 소스 우선 적용

가장 앞에 위치한 템플릿의 설정값이 최종 템플릿에 적용됩니다.

항목소스에 템플릿이 있는 경우소스에 템플릿이 없는 경우 (파일만)
제목가장 앞 템플릿의 제목임시_템플릿_{날짜}
문서 라벨가장 앞 템플릿의 라벨빈 배열
진본증명도장(seal)가장 앞 템플릿의 설정비활성화
외부 참조자(carbonCopies)가장 앞 템플릿의 값빈 배열
결재선모든 소스가 동일해야 병합 가능빈 값

서명자 병합

서로 다른 소스의 서명자를 rolenamecontact 순으로 비교하여 3가지 속성이 모두 일치하면 병합, 하나라도 불일치하면 분리합니다. 분리 시 뒤 소스의 서명자부터 - 1, - 2 접미사가 추가됩니다.

DataLabel 자동 변환

소스 간 중복된 dataLabel이 존재하면 {dataLabel}_{템플릿_제목}_{템플릿_ID_앞_8자리} 형식으로 자동 변환됩니다.

자세한 병합 규칙은 템플릿 병합 규칙을 참조하세요.


주의사항

  • 임시 템플릿 TTL: 2시간. 만료된 템플릿으로 서명 요청 시 404 Not Found가 발생할 수 있습니다.
  • 동일 임시 템플릿 ID로 유효기간 내 복수 서명 요청 가능합니다. (각각 별개 문서 생성)
  • PDF 페이지 순서는 sources 배열 순서를 따릅니다.

병합 제한

⚠️

병합 실패 조건

설정 관련

  • 설정 고정 템플릿을 병합하는 경우
  • 서명용 템플릿과 열람용 템플릿을 병합하는 경우
  • 모든 소스의 결재선이 동일하지 않은 경우

파일 크기

  • 병합된 문서 파일의 크기가 10MB를 초과하는 경우

필드 및 참여자 수

  • 서명자 수가 30명을 초과하는 경우
  • 전체 입력란이 2,000개를 초과하는 경우
  • 서명 필드가 100개를 초과하는 경우
  • 이미지 필드가 7개를 초과하는 경우
  • 드롭다운 필드가 100개를 초과하는 경우
  • 첨부파일이 30개를 초과하는 경우