API 전자서명 : 개발자용 REST 가이드 2026
비즈니스 애플리케이션에 전자서명 API를 통합하는 것은 이제 더 이상 선택이 아닌 필수입니다. 이 개발자 가이드는 인증, 웹훅 및 eIDAS 규정 준수를 A부터 Z까지 다룹니다.
업데이트일
Certyneo 팀
작성자 — Certyneo · Certyneo 소개

소개
REST 전자서명 API 통합은 2026년 개발팀에게 필수 요구사항이 되었습니다. 73% 이상의 유럽 기업이 최소 하나의 계약 프로세스를 디지털화한 상황(출처: IDC European Digital Transformation Report 2025)에서 강력한 기술 통합 수요가 폭발적으로 증가하고 있습니다. LegalTech SaaS, ERP 또는 HR 플랫폼을 구축 중이라면, 전자서명 API를 소비하는 방법을 이해하는 것(OAuth2 인증, 웹훅 관리, eIDAS 규정 준수)이 문서 워크플로우의 품질과 법적 가치를 직결합니다. 이 REST 개발자 가이드는 단계별로 여러분을 안내합니다: 아키텍처, 인증, 문서 생명주기, 실시간 웹훅 및 보안 모범 사례.
---
전자서명 REST API의 아키텍처
RESTful 원칙 및 엔드포인트 구조
잘 설계된 전자서명 REST API는 명확하게 식별된 리소스와 시맨틱한 HTTP 동사를 기반으로 합니다. 기본 리소스는 일반적으로:
- `/documents` — PDF/DOCX 문서 업로드, 관리 및 조회
- `/signature-requests` — 서명 요청 생성 및 관리
- `/signatories` — 서명자 및 신원 관리
- `/audit-trails` — 인증된 감사 로그 조회
- `/templates` — 재사용 가능한 문서 템플릿 관리
각 리소스는 표준 CRUD 엔드포인트(`GET`, `POST`, `PUT`, `PATCH`, `DELETE`)를 노출하며 정규화된 HTTP 코드를 포함한 JSON 응답을 반환합니다: `200 OK`, `201 Created`, `400 Bad Request`, `401 Unauthorized`, `422 Unprocessable Entity`, `429 Too Many Requests`.
종종 간과되는 중요한 측면: 페이지네이션 관리. 성숙한 API는 offset/limit보다는 cursor 기반 패턴을 사용하며, 이는 서명된 수천 개의 문서에서도 안정적인 성능을 보장합니다. 대상 API가 `X-Next-Cursor` 헤더 또는 본문의 `next_page_token` 필드를 노출하는지 확인하세요.
API 버전 관리 및 하위 호환성
버전 관리는 API 통합자에게 주의가 필요한 부분입니다. 2026년의 지배적인 두 가지 접근 방식은:
- URL을 통한 버전 관리: `https://api.certyneo.com/v2/signature-requests` — 읽기 쉽고, CDN으로 캐시 가능하며, B2B API에 권장됩니다.
- 헤더를 통한 버전 관리: `Accept: application/vnd.certyneo.v2+json` — 아키텍처적으로 더 깔끔하지만 가시성이 낮습니다.
최소 12개월의 감가상각 정책에 약속하고 공개 변경 로그를 발행하는 공급자를 선호하세요. 예고 없는 호환성 손상은 서명 워크플로우에 직접적인 법적 영향(서명되지 않은 계약, 놓친 기한)을 미칠 수 있습니다.
---
OAuth2 인증 및 API 호출 보안
OAuth2: client_credentials vs authorization_code 흐름
인증은 모든 전자서명 API 통합의 초석입니다. 개발자에게 가장 관련성 있는 두 가지 OAuth2 흐름은:
Client Credentials 흐름 (M2M — Machine to Machine): ``` POST /oauth/token Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials &client_id=YOUR_CLIENT_ID &client_secret=YOUR_CLIENT_SECRET &scope=documents:write signature_requests:write audit_trails:read ``` 이 흐름은 서버 간 통합에 이상적입니다. 인증에 최종 사용자가 관여하지 않는 경우(배치 처리, 계약 자동화).
Authorization Code 흐름 + PKCE: 애플리케이션이 식별된 최종 사용자를 대신하여 작동할 때 권장됩니다. PKCE(Proof Key for Code Exchange)는 RFC 7636 이후 필수이며 가로채기 공격으로부터 보호합니다.
필수 보안 팁:
- `client_secret`을 vault에 저장합니다(HashiCorp Vault, AWS Secrets Manager) — 암호화되지 않은 환경 변수에는 저장 금지
- 토큰 자동 회전을 구현합니다. 만료 전 60초 버퍼를 포함하세요
- 세분화된 스코프를 사용합니다: 엄격히 필요한 권한만 요청하세요
API 키 관리 및 속도 제한
경량 통합 또는 테스트 환경의 경우, 일부 API는 정적 API 키(Bearer Token)를 제공합니다. 프로덕션에서 사용할 경우, 다음을 체계적으로 적용하세요:
- 분기별 키 회전
- IP 제한(허용 목록)
- SIEM을 통한 비정상 호출 모니터링
속도 제한은 피할 수 없는 현실입니다: 전자서명 API는 일반적으로 계획에 따라 분당 100~1000 호출을 제한합니다. 지수 백오프를 통한 재시도 메커니즘을 구현하세요: ``` retry_delay = base_delay * (2^attempt) + random_jitter ``` `429 Too Many Requests`와 함께 반환된 `Retry-After` 헤더를 엄격히 준수하세요.
---
API를 통한 서명 요청의 생명주기
서명 요청 생성 및 설정
서명 요청의 생명주기는 상태 패턴(`draft` → `pending` → `in_progress` → `completed` | `declined` | `expired`)을 따릅니다. 다음은 기술적 세부사항입니다:
1단계 — 문서 업로드: ``` POST /v2/documents Content-Type: multipart/form-data
file=@contrat.pdf ``` 응답: `{ "document_id": "doc_a1b2c3", "checksum_sha256": "e3b0c442..." }`
2단계 — 요청 생성: ```json POST /v2/signature-requests { "document_id": "doc_a1b2c3", "name": "2026년 Q3 서비스 계약", "signatories": [ { "email": "signataire@client.fr", "first_name": "Marie", "last_name": "Dupont", "signature_level": "advanced", "fields": [{ "type": "signature", "page": 3, "x": 120, "y": 680 }] } ], "expiry_date": "2026-06-05T23:59:59Z", "reminder_settings": { "enabled": true, "frequency_days": 3 } } ```
3단계 — 활성화: `POST /v2/signature-requests/req_x9y8z7/activate`
활성화 후 서명자는 초대장을 받고 요청이 `in_progress` 상태로 이동합니다.
서명된 문서 및 감사 추적 조회
상태가 `completed`에 도달하면(다음 섹션의 웹훅을 통해 감지 가능), 다음을 조회하세요:
``` GET /v2/signature-requests/req_x9y8z7/document/signed → 임베드된 전자서명이 포함된 서명된 PDF (ETSI EN 319 132에 따른 PAdES-B-T)
GET /v2/signature-requests/req_x9y8z7/audit-trail → 인증된 감사 로그 PDF (RFC 3161 시간 기록) ```
항상 두 파일을 함께 저장하세요(GED 또는 DMS). 감사 로그는 법적 분쟁 시 증거 능력입니다.
---
웹훅: 실시간 이벤트 및 오류 관리
웹훅 구성 및 보안
웹훅은 비용이 많이 드는 폴링에서 반응형 이벤트 아키텍처로 전환합니다. 웹훅 엔드포인트를 구성하세요:
``` POST /v2/webhooks { "url": "https://votre-app.com/hooks/certyneo", "events": [ "signature_request.completed", "signature_request.declined", "signatory.signed", "signature_request.expired" ], "secret": "whsec_votre_secret_hmac" } ```
필수 HMAC 보안: 계산된 HMAC-SHA256 서명을 `X-Certyneo-Signature` 헤더와 비교하여 각 수신 페이로드를 검증합니다: ```python import hmac, hashlib
def verify_webhook(payload: bytes, secret: str, signature_header: str) -> bool: expected = hmac.new( secret.encode(), payload, hashlib.sha256 ).hexdigest() return hmac.compare_digest(f"sha256={expected}", signature_header) ``` 절대 일반 문자열 비교를 사용하지 마세요 — 타이밍 공격에 취약합니다.
멱등성 및 재전송 관리
웹훅은 타임아웃이나 5xx 오류 시 재전송될 수 있습니다. 멱등성을 필수로 구현하세요:
- 각 웹훅 페이로드에서 고유한 `event_id` 추출
- 이 `event_id`가 이미 처리되었는지 데이터베이스에서 확인
- 무한 재전송을 피하기 위해 즉시 `200 OK` 반환(중복의 경우에도)
- 비즈니스 로직을 비동기로 처리(큐: Redis, RabbitMQ, SQS)
핵심 규칙: 웹훅 엔드포인트는 5초 이내에 응답해야 합니다. 무거운 비즈니스 처리(이메일 전송, GED 아카이빙, ERP 알림)는 비동기 워커에 위임하세요.
API를 통해 사용 가능한 서명 수준에 대한 이해를 심화하려면, 전자서명 완전 가이드를 참조하세요. 이것은 간단, 고급 및 인증된 서명 간의 차이를 자세히 설명합니다.
---
통합 모범 사례 및 성능
샌드박스 환경 및 테스트 전략
모든 진지한 전자서명 API는 프로덕션과 격리된 샌드박스 환경을 제공합니다. 다음 테스트 전략을 채택하세요:
- 단위 테스트: API 응답 모의화(Wiremock, MSW)하여 네트워크 없이 비즈니스 로직 검증
- 통합 테스트: 실제 샌드박스에 대해 실행하여 전체 생명주기 검증(생성 → 서명 → 조회)
- 부하 테스트: 동시 요청 스파이크를 시뮬레이션하여 프로덕션 전에 병목 식별
- 카오스 테스트: 타임아웃 및 5xx 오류를 시뮬레이션하여 재시도 로직 검증
절대 실제 서명자 신원으로 프로덕션에서 테스트하지 마세요. 샌드박스에서 생성된 전자서명은 법적 가치가 없으며, 이것이 정확히 원하는 것입니다.
모니터링, 관찰성 및 경보
프로덕션에서는 다음으로 통합을 계측하세요:
- 메트릭: API 호출 성공률, 지연 시간 p95/p99, 엔드포인트별 오류율
- 분산 추적: `trace-id`를 헤더에 전파하여 로그와 공급자의 API 로그를 연관시키기
- 경보: 오류율이 1%를 초과하거나 p99 지연이 3초를 초과하면 경보 트리거
전자서명 솔루션 비교를 참조하여 다양한 공급자가 제공하는 가용성 SLA(가동 시간)를 평가하세요 — API 통합 시 종종 과소평가되는 기준입니다.
다른 플랫폼에서 마이그레이션하는 경우, DocuSign 또는 YouSign에서 Certyneo로 마이그레이션하기 가이드는 API 마이그레이션 기술 측면과 기존 웹훅 호환성을 다룹니다.
통합의 투자 수익률을 추정하려면, API 자동화로 인한 생산성 향상을 통합하는 전자서명 ROI 계산기를 사용하세요.
마지막으로, 서명할 문서의 자동화된 생성을 더 나아가고 싶다면, REST API와 기본적으로 인터페이스하는 AI 계약 생성기를 발견하세요.
전자서명 API에 적용되는 법적 프레임워크
전자서명 API의 통합은 기술 문제에 국한되지 않습니다: 여러 기본 텍스트에서 편집자와 클라이언트의 법적 책임을 직접 관여시킵니다.
규정 eIDAS n°910/2014 및 eIDAS 2.0
규정(EU) n°910/2014 (eIDAS)는 유럽연합의 전자서명 법적 프레임워크를 수립합니다. 세 가지 수준으로 구분합니다:
- 간단한 전자서명 (SES): 최소 법적 가치, 저위험 행위에 적합
- 고급 전자서명 (AES): 서명자에게 단일하게 연결되며, 서명자의 배타적 통제 하에 있는 데이터에서 생성됨 — eIDAS 제26조
- 인증된 전자서명 (QES): EU 전역에서 필기 서명과 동등 — eIDAS 제25조 §2
eIDAS 2.0 규정(규정 EU 2024/1183)의 점진적 적용으로, 개발자는 인증 흐름에 유럽 디지털 신원 지갑 (EUDIW)의 통합을 예상해야 합니다. 상세한 기술적 영향은 eIDAS 2.0 가이드를 참조하세요.
프랑스 민법 — 제1366조 및 제1367조
프랑스 민법에서 제1366조는 "전자 문서는 종이 지지체의 문서와 동일한 증명 가치를 가지며, 단 누구로부터 비롯되었는지 적절히 식별할 수 있어야 하고 그 무결성을 보장할 수 있는 조건에서 설정되고 보관되어야 한다"고 규정합니다.
제1367조는 신뢰할 수 있는 전자서명의 조건을 명시합니다: 서명자의 신원 파악 및 문서 무결성 보장. 이러한 요구사항은 인증된 감사 로그 및 서명 중 사용된 신원 증명을 보존할 기술적 의무로 해석됩니다 — API가 노출하고 저장해야 하는 요소입니다.
ETSI EN 319 132 표준 — PAdES
eIDAS 준수 PDF 서명에 필수적인 기술 형식은 PAdES (PDF Advanced Electronic Signatures)이며, ETSI EN 319 132 표준으로 정의됩니다. API는 최소한 PAdES-B-T(시간 기록 포함) 서명을 생성해야 하며, 장기 유효성(보관 10년 이상) 보장을 위해서는 PAdES-B-LT 또는 PAdES-B-LTA를 생성해야 합니다.
GDPR n°2016/679 — 서명자 데이터
서명 프로세스 중 수집된 개인 데이터(이름, 성, 이메일, IP 주소, AES/QES 신원 데이터)는 GDPR의 적용을 받는 개인 데이터입니다. 책임 처리자 또는 처리자로서의 의무에는 다음이 포함됩니다:
- 정당화된 보유 기간 정의(일반적으로 처방 기간 조정: 일반법상 5년)
- API(`DELETE /v2/signature-requests/{id}/personal-data`)를 통한 자동 삭제 메커니즘 제공
- 처리 활동 기록(GDPR 제30조)에 처리 문서화
- 공급자 API와 DPA (데이터 처리 계약) 체결
NIS2 지침 및 서비스 연속성
필수 또는 중요 엔터티로 NIS2 지침(2022/2555) 대상인 소프트웨어 편집자의 경우, 타사 API 통합은 디지털 공급망 위험 분석에서 문서화해야 하는 종속성을 생성합니다. API 공급자에게 SOC 2 Type II 인증 및 가용성 SLA ≥ 99.9%를 요구하세요.
사용 사례: 실제 전자서명 API
사례 1 — 중소 제조업의 공급업체 계약 자동화
약 200개의 공급업체 계약을 관리하는 중소 제조업체는 종이 왕복과 수동 상기 메시지를 제거하고 싶었습니다. 이는 월간 2일의 행정 보조원 시간을 소비했습니다. 개발팀은 다음 흐름을 통해 전자서명 API를 ERP 메타소프트웨어에 직접 통합했습니다:
- ERP에서 구매 주문을 검증하면 `POST /v2/signature-requests` 호출이 자동으로 트리거됩니다
- 생성된 PDF 계약이 업로드되고 서명 요청이 참조된 공급업체 연락처로 전송됩니다
- `signatory.signed` 웹훅이 구매 주문 상태를 실시간으로 업데이트합니다
- 서명된 문서와 감사 로그는 두 번째 API 호출을 통해 DMS에 자동으로 아카이브됩니다
관찰된 결과(KPMG/IDC 2024-2025 부문 보고서 범위): 평균 서명 지연 시간이 8일에서 24시간 미만으로 단축, 상기 메시지에 소비된 행정 시간의 60-70% 절감, 문서 손실 제로.
사례 2 — 변호사 사무소용 LegalTech 플랫폼
5명에서 30명의 협력자를 가진 변호사 사무소를 대상으로 SaaS 소프트웨어를 개발하는 편집자는 사용자가 인터페이스에서 직접 위임장, 비용 약관 및 절차 행위에 서명하도록 하기 위해 전자서명 API를 통합했습니다.
선택한 기술 아키텍처는 각 변호사가 자신의 이름으로 요청을 인증하도록 하기 위해 OAuth2 Authorization Code + PKCE 흐름을 사용합니다. `signature_request.completed` 웹훅은 서명된 문서를 법률 GED의 클라이언트 파일에 자동으로 저장합니다.
편집자는 특히 API를 통해 고급 전자서명(AES) 가용성을 평가했습니다 — 국가 변호사 위원회의 권고에 따라 비용 약관에 필요한 수준입니다. 초기 통합 개발 시간은 시니어 백엔드 개발자 1명당 약 3주로 설정되었으며, 테스트 커버리지는 85%였습니다.
사례 3 — 민간 클리닉 그룹의 디지털 온보딩
약 600개 침대의 민간 클리닉 그룹은 종이에 인쇄하고 수동으로 서명되었던 정보 동의 양식 및 입원 계약을 디지털화해야 했습니다 — 인쇄 비용이 연간 수천 유로에 달하고 수용처 대기 시간이 길었습니다.
API 통합은 병원 정보 시스템(HIS)을 전자서명 플랫폼에 연결했습니다. 환자를 등록할 때, HIS는 API를 호출하여 다중 당사자 서명 요청(환자 + 담당 의사)을 생성하며, 서명 필드 위치 지정은 템플릿 메타데이터에서 자동으로 계산됩니다.
GDPR 준수를 위해서는 API(`PATCH /v2/signature-requests` + 삭제 확인 웹훅)를 통한 자동 삭제 프로그래밍을 설정해야 했으며, 이는 의료 기록의 법적 보유 기간(민법 제R. 1112-7조에 따른 성인의 경우 20년)에 맞춰졌습니다. 측정된 이득은 입원 시 대기 시간 80% 감소 및 인쇄 및 스캔 비용 40% 절감에 도달했습니다.
결론
2026년에 REST 전자서명 API를 통합하려면 여러 차원에 대한 동시적 숙달이 필요합니다: 강력한 RESTful 아키텍처, 안전한 OAuth2 인증, 웹훅을 통한 이벤트 관리, 그리고 eIDAS 및 GDPR 요구사항 준수. 설계 초기에 이러한 문제를 예상하는 개발자는 비용이 많이 드는 리팩토링과 주요 법적 위험을 피합니다.
기억할 세 가지 핵심 요소: API 호출 보안(OAuth2 + 최소 스코프 + vault), 웹훅을 통한 비동기 및 멱등 이벤트 처리, 그리고 인증된 감사 로그와 함께 서명된 문서 체계적 아카이빙.
Certyneo는 문서화된 REST API, eIDAS 준수, 무료 샌드박스 및 전용 개발자 기술 지원을 제공합니다. Certyneo 계정을 생성하세요하여 샌드박스 API 키에 접근하고 오늘부터 통합을 시작하세요.
추천 게시물
관련 주제의 게시물로 지식을 심화하세요.
B2C 계약의 전자서명: 2026년 유효성
B2C 계약의 전자서명은 법적 유효성과 고객 동의 수집에 관한 구체적인 질문을 제기합니다. 2026년을 위해 알아야 할 모든 내용을 다음과 같습니다.
공공 부문의 전자 서명: 2026년 가이드
2020년부터 일정 규모 이상의 공공 조달에서 전자 서명이 의무화되었습니다. 규칙, 필수 수준 및 행정 기관의 규정 준수 방법을 알아보세요.
지방자치단체를 위한 전자서명: 계약 서명의 현대화
지방자치단체는 행정절차의 디지털화를 가속화하고 있습니다. 전자서명이 어떻게 계약을 보호하고, 처리 시간을 단축하며, 유럽 법적 프레임워크를 준수하는지 알아보세요.