Files
sam-docs/features/esign
권혁성 ae7e139d12 docs: [종합정비] Phase 3 신규 도메인 기능 문서 16개 작성
- features/esign/README.md: 전자서명 (4모델, 16 API)
- features/documents/README.md: 문서관리 (12모델, EAV 기반, 15 API)
- features/ai/README.md: AI 리포트 (Gemini 2.0, 4 API)
- features/equipment/README.md: 설비관리 (MNG 전용)
- features/finance/ 9개 하위문서: 입출금, 급여, 가지급금, 세금계산서,
  악성채권, 어음, 카드, 미지급비용, 채권현황, CEO 대시보드
- features/finance/README.md 재구조화 (14개 하위문서 목록)
- features/barobill-kakaotalk/README.md 확장 (API 설정 + 세금계산서)
- rules/numbering-rules.md: 채번규칙 (6세그먼트, 원자적 UPSERT)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 18:03:25 +09:00
..

전자서명 (E-Sign)

상태: API 완전 구현 최종 갱신: 2026-02-27


1. 개요

PDF 문서에 대한 전자서명 계약 관리 시스템. 계약 생성 → 서명 필드 설정 → 발송 → OTP 인증 → 서명 → 완료의 전체 라이프사이클을 관리한다.

핵심 기능:

  • PDF 계약서 업로드 및 서명 필드 배치
  • 서명 순서 관리 (작성자 우선 / 상대방 우선)
  • OTP 기반 본인인증 후 서명
  • 서명 완료 시 PDF 합성 + 감사 페이지 추가
  • 토큰 기반 외부 서명자 접근 (비인증)

2. 모델

모델 테이블 설명 Traits
EsignContract esign_contracts 계약서 (상태, 파일, 만료일) BelongsToTenant, Auditable, SoftDeletes
EsignSigner esign_signers 서명자 (순서, OTP, 서명 이미지) BelongsToTenant
EsignSignField esign_sign_fields 서명 필드 (위치, 유형, 페이지) BelongsToTenant
EsignAuditLog esign_audit_logs 감사 로그 (IP, UA, 행위) BelongsToTenant

계약 상태 흐름:

draft → pending → partially_signed → completed
                                   → expired
                → cancelled
                → rejected

서명 필드 유형: signature, stamp, text, date, checkbox


3. 서비스

서비스 주요 메서드
EsignContractService list, create, show, cancel, send, remind, configureFields, stats
EsignSignService getByToken, sendOtp, verifyOtp, submitSignature, reject
EsignAuditService log, logPublic, getContractLogs
EsignPdfService generateHash, verifyIntegrity, composeSigned, addAuditPage

4. API 엔드포인트

계약 관리 (인증 필요)

HTTP URI 설명
GET /v1/esign/contracts 계약 목록
POST /v1/esign/contracts 계약 생성 (PDF 업로드)
GET /v1/esign/contracts/stats 통계
GET /v1/esign/contracts/{id} 계약 상세
POST /v1/esign/contracts/{id}/cancel 계약 취소
POST /v1/esign/contracts/{id}/fields 서명 필드 설정
POST /v1/esign/contracts/{id}/send 계약 발송
POST /v1/esign/contracts/{id}/remind 리마인드
GET /v1/esign/contracts/{id}/download PDF 다운로드
GET /v1/esign/contracts/{id}/verify 무결성 검증

서명 처리 (토큰 기반, 외부 접근)

HTTP URI 설명
GET /v1/esign/sign/{token} 계약 정보 조회
POST /v1/esign/sign/{token}/otp/send OTP 발송
POST /v1/esign/sign/{token}/otp/verify OTP 검증
GET /v1/esign/sign/{token}/document 문서 조회
POST /v1/esign/sign/{token}/submit 서명 제출
POST /v1/esign/sign/{token}/reject 서명 거절

5. FormRequest

Request 주요 검증
ContractStoreRequest title (필수, max:200), file (필수, pdf, max:20MB), sign_order_type, 서명자 정보
FieldConfigureRequest fields 배열 (page, position, size, type)
SignSubmitRequest signature_image (파일), field_values (배열)
SignRejectRequest reason (필수)

관련 문서


최종 업데이트: 2026-02-27