임베디드 내용 수정

임베디드 내용 수정은 이미 발송한 진행 중 문서를, 요청자가 임베디드 화면에서 다시 수정할 수 있는 기능입니다.
요청자는 고객사 사이트(연동 서비스) 화면 안에서 참여자, 입력란, 첨부파일 요청, 문서 파일 등을 수정한 뒤 다시 서명 요청을 이어갈 수 있습니다.


전체 흐름

전체 과정은 크게 아래 6단계로 진행됩니다. 파란색은 서버에서 API로 처리하는 단계, 초록색은 요청자가 임베디드 화면에서 직접 진행하는 단계입니다.

  1. 수정할 문서에 대해 POST /documents/{documentId}/start-modification 을 호출해 수정을 시작합니다.
  2. GET /documents/{documentId}/embedded-view API로 embeddedUrl 을 발급받습니다.
  3. 발급받은 embeddedUrl 을 iframe, 새 창, 또는 현재 창에서 엽니다.
  4. 요청자가 임베디드 화면에서 내용을 수정하고 완료합니다.
  5. 완료 후 설정한 redirectUrl 로 이동합니다.
  6. Webhook event 로 최종 상태를 동기화합니다.

1. 문서 수정 시작하기

먼저 문서를 수정 중 상태로 전환합니다.

curl --request POST \
  --url https://api.modusign.co.kr/documents/{DOCUMENT_ID}/start-modification \
  --header 'Authorization: Basic {YOUR_ENCODED_AUTH_STRING}'
🚧

기존 서명 링크는 일시 비활성화됩니다

수정이 시작되면 서명자에게 이미 발송된 서명 링크는 일시적으로 비활성화됩니다. 수정이 완료되어 서명 요청이 다시 진행되면 재활성화됩니다.


2. 임베디드 URL 발급하기

수정이 시작된 문서에 대해 임베디드 URL을 발급합니다.

curl --get \
  --url 'https://api.modusign.co.kr/documents/{DOCUMENT_ID}/embedded-view' \
  --header 'Authorization: Basic {YOUR_ENCODED_AUTH_STRING}' \
  --data-urlencode 'redirectUrl=https://www.modusign.co.kr'

응답으로 받은 embeddedUrliframe, 새 창, 또는 현재 창에서 열면 임베디드 수정 화면으로 진입합니다.

// 새 탭으로 열기
window.open("https://app.modusign.co.kr/embedded-view/XXX?at=XXXXXXX...");

// iframe에 열기
var targetIframe = document.getElementById('target-iframe');
targetIframe.src = 'https://app.modusign.co.kr/embedded-view/XXX?at=XXXXXXX...';
🌟

주의사항

embeddedUrl 은 발급 후 2시간 동안 사용할 수 있습니다. URL이 만료되면 다시 임베디드 문서보기 url 조회 를 호출해 새 URL을 발급해주세요.


3. 파일을 수정할 때 (파일 업로드 API 사용)

수정 과정에서 문서 파일이나 첨부파일을 API로 다뤄야 할 경우, 파일 데이터를 요청 본문에 base64로 직접 담는 방식도 지원되지만, 되도록 파일 업로드 API 를 사용하시길 강력히 권장합니다.

🚧

파일은 base64 대신 파일 업로드 API를 사용하세요

파일을 base64로 요청 본문에 직접 담으면 데이터 크기가 약 33% 커지고, 요청 용량 제한에 걸리거나 응답이 느려질 수 있습니다.

권장 방식은 다음과 같습니다.

파일 업로드 API (POST /files) 로 파일을 먼저 업로드합니다.
② 응답으로 받은 fileIdtoken 을 이후 요청에서 파일 참조값으로 사용합니다.

특히 용량이 큰 문서나 첨부파일일수록 파일 업로드 API 방식이 안정적입니다.

curl --request POST \
  --url 'https://api.modusign.co.kr/files?type=document' \
  --header 'Authorization: Basic {YOUR_ENCODED_AUTH_STRING}' \
  --header 'Content-Type: multipart/form-data' \
  --form 'file=@계약서.pdf'
{
  "fileId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "token": "XXXXXXX...",
  "url": "https://.../계약서.pdf"
}
📘

파일 업로드 API 참고사항

  • type 은 문서 파일이면 document, 요청자 첨부파일이면 attachment 로 지정합니다.
  • 파일 크기 제한 — type=document 는 PDF 최대 10MB / 그 외 확장자 최대 5MB, type=attachment 는 최대 10MB 입니다.
  • 업로드된 파일 정보(fileId, token)의 유효기간은 2시간 입니다.
  • 문서 파일은 PDF 사용을 권장합니다.

4. 수정 완료 후 처리하기

요청자가 임베디드 화면에서 수정을 완료하면 redirectUrl 로 이동합니다. 이때 다음 쿼리 파라미터가 함께 전달됩니다.

https://www.modusign.co.kr?documentId={DOCUMENT_ID}&eventType=document_modification_completed

내부결재가 필요한 문서는 다음 eventType 으로 전달됩니다.

https://www.modusign.co.kr?documentId={DOCUMENT_ID}&eventType=document_modification_approval_requested
📘

안내사항

redirectUrl이용자 화면 전환용으로 사용하고, 서버 상태 동기화는 아래 Webhook event 도 함께 확인하는 것을 권장합니다.


5. Webhook event

임베디드 내용 수정과 관련된 event는 다음과 같습니다.

event설명
document_modification_started문서가 수정 모드로 전환됨
document_modification_completed수정 내용이 적용되고 서명 요청이 다시 진행됨
document_modification_approval_requested내부결재로 요청된 문서의 수정 완료 후 결재가 다시 요청됨
document_modification_canceled수정이 취소됨

🚧

유의사항

  • 링크서명 문서는 내용 수정을 지원하지 않습니다.

  • 임베디드 수정 화면은 요청자 본인만 진입할 수 있습니다.

  • 수정 중인 문서의 검색 결과는 수정 전 원본 데이터를 기준으로 표시됩니다.

  • 임베디드 화면에서는 PATCH /documents/{documentId}/modification 을 직접 호출하지 않아도 됩니다. 화면에서 저장과 완료 처리가 진행됩니다.

  • URL이 만료되더라도 마지막 저장 시점까지의 수정 내용은 보존됩니다. 새 embeddedUrl 을 발급받아 이어서 수정할 수 있습니다.


6. API 호출 시 주의사항

임베디드 내용 수정 API를 연동하실 때 다음 사항을 미리 확인하시면 오류를 크게 줄일 수 있습니다.

  • 진행 중 문서만 수정할 수 있습니다. 수정을 시작하려면 문서가 진행 중(ON_GOING) 상태여야 합니다. 이미 완료·취소된 문서는 수정할 수 없습니다.
  • API KEY는 서버에서만 사용하세요. API KEY는 유저 권한을 획득하는 민감한 정보입니다. 클라이언트(브라우저)에 노출하지 말고, embeddedUrl 만 클라이언트로 전달해 여세요.
  • embeddedUrl 은 발급 후 2시간만 유효합니다. 만료되면 다시 발급받아야 하며, 마지막 저장 시점까지의 내용은 보존됩니다.
  • 요청자 본인만 임베디드 수정 화면에 진입할 수 있습니다.
  • 링크서명 문서는 지원되지 않습니다.
  • Rate Limit(요청 횟수 제한)을 고려하세요. 일반 API는 분당 300회·초당 10회, 연산량이 큰 High-cost API는 분당 150회·초당 5회로 제한됩니다. 파일 업로드 API 는 High-cost API 로 분류되니 대량 호출 시 간격 조절이 필요합니다.
  • 파일 크기·형식 제한을 확인하세요. 문서 파일은 PDF 최대 10MB·그 외 확장자 최대 5MB, 첨부파일은 개당 최대 10MB이며, 문서 파일은 PDF를 권장합니다.

자주 발생하는 오류

응답에러 메시지원인해결 방법
401UnauthorizedAPI KEY 또는 인증 헤더 오류API KEY와 Authorization 헤더(Basic 인코딩)를 확인
403Usage limit exceededAPI 사용량 소진사용량 한도 확인 또는 플랜 업그레이드
404Not found잘못된 요청 URL 또는 존재하지 않는 documentId요청 URL과 문서 ID를 확인
422Document status is invalid문서가 진행 중(ON_GOING) 상태가 아님수정 시작 전 문서 상태를 확인
429Too Many RequestsRate Limit 초과응답의 X-Retry-After (초)만큼 대기 후 재시도, 지수 백오프 권장
422This file is invalidbase64 인코딩 오류 또는 미지원 파일base64 대신 파일 업로드 API 사용 권장, 지원 확장자 확인
📌

기술지원 문의 시 전달 정보

오류가 지속되면 아래 정보를 함께 전달해주시면 더 빠르게 확인해드릴 수 있습니다.

① API 호출에 사용한 이메일

② 사용한 API

③ 오류 발생 시간(년-월-일 시:분)

④ 응답받은 전체 에러 메시지


FAQ

이미 서명이 진행 중인 문서도 수정할 수 있나요?

네, 진행 중(ON_GOING) 상태의 문서를 대상으로 합니다. 다만 링크서명 문서는 수정을 지원하지 않으며, 이미 완료·취소된 문서는 수정할 수 없습니다.

수정하는 동안 서명자가 서명할 수 있나요?

수정이 시작되면 기존에 발송된 서명 링크는 일시적으로 비활성화됩니다. 수정이 완료되어 서명 요청이 다시 진행되면 서명자는 이어서 서명할 수 있습니다.

embeddedUrl이 만료됐어요. 수정하던 내용은 사라지나요?

아니요. embeddedUrl 은 발급 후 2시간만 유효하지만, 마지막 저장 시점까지의 수정 내용은 보존됩니다. 새 URL을 발급받아 이어서 수정하시면 됩니다.

요청자가 아닌 다른 사람이 수정 화면에 들어갈 수 있나요?

아니요. 임베디드 수정 화면은 요청자 본인만 진입할 수 있습니다.

수정이 잘 완료됐는지 어떻게 확인하나요?

완료 시 redirectUrl 로 이동하며 eventType 파라미터가 함께 전달됩니다. 다만 이는 화면 전환용이므로, 서버 상태는 반드시 Webhook event로 확인하시길 권장합니다.

전달되는 eventType 은 다음과 같습니다.

  • 일반 문서 — document_modification_completed
  • 내부결재 문서 — document_modification_approval_requested
파일 업로드는 왜 base64 대신 파일 업로드 API를 권장하나요?

파일을 base64로 요청 본문에 직접 담는 방식은 오류가 발생할 확률이 높습니다. 인코딩 값이 조금이라도 어긋나면 아래와 같은 오류가 발생하기 쉽고, 데이터 크기도 약 33% 커져 요청 용량 제한이나 응답 지연 문제로 이어질 수 있습니다.

응답 예시:

{
  "statusCode": 422,
  "message": "This file is invalid"
}

반면 파일 업로드 API 는 파일을 먼저 안전하게 업로드한 뒤 fileIdtoken 으로 참조하기 때문에, 오류 가능성이 낮고 용량이 큰 파일에도 안정적입니다.

또한 향후 기능 개선도 파일 업로드 API를 중심으로 진행되고 있어, 앞으로의 호환성과 사용성 측면에서도 base64보다 파일 업로드 API 사용을 권장드립니다.

429 Too Many Requests 오류가 발생합니다.

요청 횟수 제한(Rate Limit)을 초과했을 때 발생합니다.

응답 예시:

{
  "statusCode": 429,
  "message": "Too Many Requests"
}
  • 응답의 X-Retry-After 헤더(초)만큼 기다린 후 재시도하세요.
  • 연속 호출 시에는 요청 사이에 간격을 두거나 지수 백오프(Exponential Backoff) 방식을 적용하세요.
  • 파일 업로드 API는 High-cost API로 제한이 더 엄격합니다.
👍

더 자세한 API 내용은 API References에서 확인하세요!

임베디드 문서보기 url 조회 · 파일 업로드 API의 자세한 내용을 확인하세요.



Did this page help you?