주요 콘텐츠로 이동
Certyneo
공개 API v1

전자서명을 스택에 통합

봉투를 발송하고, 서명을 추적하며, 웹훅을 수신합니다. 간단한 REST API, OpenAPI 3.0, curl/Node/Python 예제 — 몇 시간 내에 Certyneo를 HRIS, CRM 또는 업무 소프트웨어에 연결할 수 있는 모든 것.

빠른 시작

3단계: 설정에서 API 키를 생성하고, PDF를 base64로 인코딩하며, 발송합니다. 응답에 포함된 `signUrl`을 수신자와 직접 공유할 수 있습니다.

cURLbash
curl -X POST https://certyneo.com/api/v1/envelopes \
  -H "Authorization: Bearer ck_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "Contrat de prestation",
    "signers": [
      { "email": "[email protected]", "name": "Marie Dubois" }
    ],
    "documents": [
      { "name": "contrat.pdf", "base64Pdf": "<base64>" }
    ]
  }'
JavaScript / Nodets
// npm install @certyneo/sdk  (or call fetch directly)
const r = await fetch("https://certyneo.com/api/v1/envelopes", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.CERTYNEO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    subject: "Contrat de prestation",
    signers: [{ email: "[email protected]", name: "Marie Dubois" }],
    documents: [{ name: "contrat.pdf", base64Pdf }],
  }),
});
const envelope = await r.json();
console.log(envelope.id, envelope.signers[0].signUrl);
Pythonpython
import requests, base64, os

with open("contrat.pdf", "rb") as f:
    base64_pdf = base64.b64encode(f.read()).decode()

r = requests.post(
    "https://certyneo.com/api/v1/envelopes",
    headers={"Authorization": f"Bearer {os.environ['CERTYNEO_API_KEY']}"},
    json={
        "subject": "Contrat de prestation",
        "signers": [{"email": "[email protected]", "name": "Marie Dubois"}],
        "documents": [{"name": "contrat.pdf", "base64Pdf": base64_pdf}],
    },
)
envelope = r.json()
print(envelope["id"], envelope["signers"][0]["signUrl"])

봉투

생성, 발송, 상태 추적, 취소. 하나의 봉투는 여러 문서와 여러 서명자(병렬 또는 순차)를 포함할 수 있습니다.

웹훅

`envelope.created`, `envelope.completed`, `envelope.declined`을 선택한 URL로 수신합니다. 출처 확인을 위해 각 페이로드에 HMAC SHA-256을 적용합니다.

간단한 인증

Bearer 토큰. 환경별 1개 키(테스트/프로덕션). 즉시 취소 가능. 초당 100 요청/분/키 제한, 최대 200의 버스트, Retry-After 헤더가 포함된 깔끔한 429 응답.

사용 가능한 엔드포인트

12개의 경로로 완전한 사이클 커버: envelopes, documents, webhooks, API 키. 모든 경로는 Bearer 토큰을 허용하고 JSON을 반환합니다.

MethodPathDescription
GET/api/v1/envelopesList envelopes
POST/api/v1/envelopesCreate + send
GET/api/v1/envelopes/{id}Fetch state
DELETE/api/v1/envelopes/{id}Void
POST/api/v1/envelopes/{id}/sendRe-trigger send
GET/api/v1/documentsList documents
GET/api/v1/webhooksList webhooks
POST/api/v1/webhooksRegister webhook
DELETE/api/v1/webhooks/{id}Unregister
GET/api/v1/keysList API keys
POST/api/v1/keysCreate API key
DELETE/api/v1/keys/{id}Revoke key

요청 제한

제한은 모든 클라이언트를 위한 안정적인 서비스 품질을 보장합니다. 더 높은 한도가 필요하시면 저희에게 문의하세요.

  • API 키당 분당 100개 요청
  • 10초 이내에 최대 200개 요청까지 버스트 허용
  • 재시도 지연(초)을 나타내는 Retry-After 헤더가 포함된 429 응답