Chaindoc REST API Reference
Vollständige Endpoint-Referenz für die Chaindoc REST API. Hier ist das Ding: Du bekommst alles von Authentifizierung bis Blockchain-Verifizierung. Ehrlich gesagt, damit baust du komplette Workflows.
Übersicht
Mit der API greifst du programmatisch auf alles in Chaindoc zu: Dokumente, Signaturen, Blockchain-Verifizierung und Team-Management. Sie ist für Server-zu-Server-Nutzung gebaut und unterstützt sowohl Public als auch Secret API Keys.
- Dokumente — Erstelle, aktualisiere und verifiziere Dokumente auf der Blockchain
- Signaturen — Sende Signaturanfragen und verfolge den Abschluss
- Media — Lade PDFs, Bilder und Videos hoch (max. 10 pro Request)
- Embedded Sessions — Erstelle Signing Sessions für dein Frontend (nutzt das Embed SDK)
- KYC — Teile und verifiziere Identitätsdaten über die Sumsub-Integration
Authentifizierung
Jeder Request braucht einen API Key im Authorization Header. Es gibt zwei Typen:
Key-Typen
- Public Key (`pk_`) — Read-only, sicher für Frontend-Code
- Secret Key (`sk_`) — Full read/write, nur fürs Backend. Niemals im Client-Code exposen.
Keys bekommen
1Business Plan abonnierenNur Business Plan Nutzer können API Keys erstellen
2Zu API Access navigierenGehe zu Einstellungen → API Access in deinem Dashboard
3API Key erstellenKlicke den Create API Key Button
4Sicher speichernSpeichere den Secret Key sicher (wird nur einmal angezeigt)
API Keys verwenden
Füge deinen API Key im Authorization Header mit Bearer-Authentifizierung hinzu:
curl -X GET https://api.chaindoc.io/api/v1/me \
-H "Authorization: Bearer sk_live_xxxxxxxxxxxxx"Rate Limiting
API Endpoints sind rate-limited, um Missbrauch zu verhindern. Die Limits variieren je nach Endpoint-Typ.
- General endpoints: 3 Requests pro 10 Sekunden
- Media Upload: 3 Requests pro 10 Sekunden
- OTP Verifizierung: 5 Requests pro 60 Sekunden
- Read-Operationen: 10 Requests pro 60 Sekunden
- Signatur-Erstellung: 20 Requests pro 3 Sekunden
Wenn das Limit überschritten wird, bekommst du eine 429 Too Many Requests Response. Rate Limit Headers sind in allen Responses enthalten:
X-RateLimit-Limit: 3
X-RateLimit-Remaining: 2
X-RateLimit-Reset: 1640000000Fehlerbehandlung
HTTP Status Codes
- 200 - Success
- 201 - Resource erfolgreich erstellt
- 400 - Bad request (Validierungsfehler)
- 401 - Unauthorized (ungültiger oder fehlender API Key)
- 403 - Forbidden (unzureichende Berechtigungen)
- 404 - Resource nicht gefunden
- 429 - Too many requests (Rate Limit überschritten)
- 500 - Internal server error
Error Response Format
{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request",
"details": [
{
"field": "name",
"message": "name must be a string"
}
]
}General API
API Key Info abrufen
Informationen zum aktuellen API Key abrufen.
GET /me
Authorization: Bearer sk_live_xxxxxHealth Check
API-Konnektivität und Key-Gültigkeit prüfen.
GET /health
Authorization: Bearer sk_live_xxxxxDocuments API
Dokument erstellen
Erstelle ein neues Dokument mit Blockchain-Verifizierung. Wenn der Status auf 'published' gesetzt wird, wird das Dokument automatisch auf der Blockchain verifiziert.
POST /documents
Headers:
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonDokument aktualisieren
Aktualisiere ein Dokument durch Erstellen einer neuen Version. Vorherige Versionen werden für den Audit Trail aufbewahrt.
PUT /documents/:documentId
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonDokument-Zugriffsrechte aktualisieren
Dokument-Zugriffskontrolleinstellungen aktualisieren.
PUT /documents/:documentId/rights
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonDokument verifizieren
Verifiziere die Dokumenten-Authentizität über Blockchain. Gibt den Verifizierungsstatus mit Transaction Hash und Chain ID zurück.
POST /documents/verify
{
"versionHash": "0x123abc...",
"certificateHash": "0x456def..."
}Verifizierungsstatus abrufen
Blockchain-Verifizierungsstatus für eine Dokumentenversion abrufen.
GET /documents/versions/:versionId/verification
Authorization: Bearer sk_live_xxxxxSignatures API
Signaturanfrage erstellen
Erstelle eine Signaturanfrage für einen oder mehrere Empfänger. Aktiviere Embedded Flow für Frontend-Integration.
curl -X POST https://api.chaindoc.io/api/v1/signatures/requests \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"versionId": "f0b7721f-0399-4035-9b69-7b95d3a367f0",
"recipients": [{"email": "signer@example.com"}],
"deadline": "2024-12-31T23:59:59Z",
"embeddedFlow": true
}'Signaturanfrage-Status abrufen
Prüfe den Status einer Signaturanfrage und sieh nach, welche Unterzeichner fertig sind.
GET /signatures/requests/:requestId/status
Authorization: Bearer sk_live_xxxxxDokument signieren
Ein Dokument signieren (wenn API Key Besitzer ein Unterzeichner ist).
POST /signatures/sign
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonNutzer-Signaturen abrufen
Alle Signaturen für den authentifizierten Nutzer abrufen.
GET /signatures
Authorization: Bearer sk_live_xxxxxSignaturanfragen abrufen
Alle Signaturanfragen für den authentifizierten Nutzer mit Pagination-Unterstützung.
GET /signatures/requests?pageNumber=1&pageSize=10
Authorization: Bearer sk_live_xxxxxMedia Upload API
Lade Dateien für die Nutzung bei der Dokumentenerstellung hoch. Unterstützt PDF, Bilder und Videos. Maximal 10 Dateien pro Request.
curl -X POST https://api.chaindoc.io/api/v1/media/upload \
-H "Authorization: Bearer sk_live_xxxxx" \
-F "media=@contract.pdf"KYC API
KYC-Daten teilen
Teile KYC (Know Your Customer) Daten mit Empfängern zur Identitätsverifizierung.
POST /kyc/share
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonEmbedded Sessions API
Erstelle Embedded Sessions für Dokumentensignatur in deiner Frontend-Anwendung. Sessions sind 10 Minuten gültig.
POST /embedded/sessions
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonDas Wichtigste als Nächstes
- API-Integration — bewährte Patterns, Best Practices und vollständige Workflow-Beispiele
- SDKs — Server SDK und Embed SDK mit framework-spezifischen Guides
- Webhooks — Echtzeit-Event-Benachrichtigungen einrichten
- Installation — npm Setup für alle unterstützten Frameworks
- Sicherheit — API-Key-Management und Compliance