API 레퍼런스
오른쪽 위 Authorize 에 API 키를 넣으면 이 화면에서 바로 호출해 볼 수 있습니다.
문서 업로드부터 서명 요청 발송, 상태 조회, 감사추적 인증서가 붙은 체결본 다운로드까지. 대시보드에서 하는 일을 모두 REST API 로 할 수 있어요.
대시보드 → 설정 → API 키에서 키를 만듭니다. 키는 처음 한 번만 보여 주니 안전한 곳에 보관하세요. 모든 요청에 Authorization: Bearer sp_live_… 헤더를 붙입니다.
export SIGNPEN_KEY="sp_live_여기에_발급받은_키" curl https://signpen.app/api/v1/me -H "Authorization: Bearer $SIGNPEN_KEY"
PDF(또는 JPG·PNG)를 올려 id 를 받고, 받는 사람과 서명란 위치를 넣어 "send": true 로 바로 발송합니다. 좌표는 페이지 대비 비율(0~1), 원점은 왼쪽 위입니다.
# ① 파일 업로드 → {"id": "f_..."} curl -X POST https://signpen.app/api/v1/files \ -H "Authorization: Bearer $SIGNPEN_KEY" \ -F "file=@근로계약서.pdf" # ② 서명 요청 발송 (1건 차감 · 취소/만료 시 자동 환급) curl -X POST https://signpen.app/api/v1/envelopes \ -H "Authorization: Bearer $SIGNPEN_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: contract-E0012" \ -d '{ "title": "근로계약서 — 이하늘", "documents": [{ "file_id": "f_..." }], "recipients": [{ "key": "worker", "name": "이하늘", "email": "sky@example.com" }], "fields": [ { "page": 1, "type": "signature", "recipient": "worker", "x": 0.62, "y": 0.86, "w": 0.25, "h": 0.06 }, { "page": 1, "type": "date", "recipient": "worker", "x": 0.62, "y": 0.82, "w": 0.2, "h": 0.025 } ], "expires_in_days": 7, "send": true }'
엔드포인트를 등록하면 envelope.completed 같은 이벤트를 POST 로 보내 드립니다. 응답의 secret 으로 SignPen-Signature 헤더를 검증하세요. 체결되면 GET /envelopes/{id}/completed 로 체결본 PDF 를 받습니다.
curl -X POST https://signpen.app/api/v1/webhooks \ -H "Authorization: Bearer $SIGNPEN_KEY" \ -H "Content-Type: application/json" \ -d '{ "url": "https://example.com/hooks/signpen", "events": ["envelope.completed", "envelope.declined"] }' # 검증: v1 == hex(HMAC-SHA256(secret, t + "." + 원문 본문)), t 는 5분 이내 # SignPen-Signature: t=1760000000,v1=5f2b...
{"error":{"code","message"}} 메시지는 한국어로 옵니다.오른쪽 위 Authorize 에 API 키를 넣으면 이 화면에서 바로 호출해 볼 수 있습니다.