Chuyển đến nội dung chính
Certyneo
API công khai v1

Tích hợp chữ ký điện tử vào stack của bạn

Gửi phong bì, theo dõi chữ ký, nhận webhooks. API REST đơn giản, OpenAPI 3.0, ví dụ curl/Node/Python — mọi thứ để kết nối Certyneo với HRIS, CRM hoặc phần mềm kinh doanh của bạn trong vài giờ.

Bắt đầu nhanh

Ba bước : tạo khóa API từ cài đặt, mã hóa PDF của bạn bằng base64, gửi. Phản hồi chứa `signUrl` mà bạn có thể chia sẻ trực tiếp với người nhận.

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"])

Phong bì

Tạo, gửi, theo dõi trạng thái, hủy. Một phong bì có thể chứa nhiều tài liệu và nhiều người ký (song song hoặc tuần tự).

Webhooks

Nhận `envelope.created`, `envelope.completed`, `envelope.declined` trên URL của bạn. HMAC SHA-256 trên mỗi payload để xác minh nguồn gốc.

Xác thực đơn giản

Bearer token. Một khóa cho mỗi môi trường (test / prod). Có thể thu hồi tức thì. Giới hạn 100 yêu cầu/phút/khóa, burst 200, 429 sạch sẽ với tiêu đề Retry-After.

Các endpoints có sẵn

12 route bao quát toàn bộ vòng đời: envelopes, documents, webhooks, khóa API. Tất cả các route chấp nhận Bearer token và trả về 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

Giới hạn tốc độ

Các giới hạn đảm bảo chất lượng dịch vụ ổn định cho tất cả khách hàng. Nếu bạn cần nhiều hơn, vui lòng liên hệ với chúng tôi.

  • 100 yêu cầu mỗi phút trên mỗi khóa API
  • Burst được phép lên tới 200 yêu cầu trong dưới 10 giây
  • Phản hồi 429 với tiêu đề Retry-After chỉ ra độ trễ tính bằng giây