Référence API REST Chaindoc
Référence complète pour intégrer l'API REST de Chaindoc dans tes applications. Gère les documents, les signatures, la vérification de la blockchain et les workflows de signature intégrés.
Aperçu
L'API REST Chaindoc permet d'accéder par programmation aux fonctionnalités de gestion de documents, de vérification de la blockchain et de signature numérique. L'API est conçue pour l'intégration de serveur à serveur et prend en charge les clés API publiques et secrètes.
Caractéristiques principales
- Gestion des documents - Crée, mets à jour et gère des documents avec vérification par blockchain.
- Signatures numériques - Demande et collecte les signatures numériques de plusieurs parties.
- Vérification de la blockchain - Vérifiez l'authenticité des documents sur les réseaux blockchain.
- Sessions intégrées - Créez des sessions sécurisées pour les workflows de signature frontale.
- Téléchargement de médias - Télécharge des fichiers (PDF, images, vidéos) pour créer des documents.
- Intégration KYC - Partage et vérification des données d'identité avec Sumsub
Authentification
L'API Chaindoc utilise des clés API pour l'authentification. Il y a deux types de clés avec des niveaux d'accès différents.
Types de clés API
- Clé publique (pk_) - Accès en lecture seule pour les applications frontales et la vérification
- Clé secrète (sk_) - Accès complet en lecture et en écriture pour les serveurs backend
Obtenir des clés API
1Abonnez-vous au plan d'affairesSeuls les utilisateurs du forfait Business peuvent créer des clés API.
2Va dans Accès API.Va dans Paramètres → Accès API dans ton tableau de bord.
3Créer une clé APIClique sur le bouton Créer une clé API.
4Stockez en toute sécuritéGarde bien la clé secrète en sécurité (affichée qu'une seule fois).
Utilisation des clés API
Mets ta clé API dans l'en-tête d'autorisation avec l'authentification Bearer :
curl -X GET https://api.chaindoc.io/api/v1/me \
-H "Authorization: Bearer sk_live_xxxxxxxxxxxxx"Limitation du débit
Les points de terminaison API sont limités en débit pour éviter les abus. Les limites de débit varient selon le type de point de terminaison.
- Limites générales : 3 requêtes toutes les 10 secondes
- Téléchargement de médias : 3 demandes toutes les 10 secondes
- Vérification OTP : 5 demandes toutes les 60 secondes
- Opérations de lecture : 10 requêtes toutes les 60 secondes
- Création de signature : 20 demandes toutes les 3 secondes
Quand la limite de débit est dépassée, tu reçois une réponse 429 Too Many Requests. Les en-têtes de limite de débit sont inclus dans les réponses :
X-RateLimit-Limit: 3
X-RateLimit-Remaining: 2
X-RateLimit-Reset: 1640000000Gestion des erreurs
Codes d'état HTTP
- 200 - Réussi
- 201 - Ressource créée avec succès
- 400 - Mauvaise requête (erreur de validation)
- 401 - Non autorisé (clé API invalide ou manquante)
- 403 - Interdit (autorisations insuffisantes)
- 404 - Ressource introuvable
- 429 - Trop de requêtes (limite de débit dépassée)
- 500 - Erreur interne du serveur
Format de réponse d'erreur
{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request",
"details": [
{
"field": "name",
"message": "name must be a string"
}
]
}API générale
Obtenir les infos sur la clé API
Récupère les infos sur la clé API actuelle.
GET /me
Authorization: Bearer sk_live_xxxxxVérification
Vérifie la connectivité de l'API et la validité des clés.
GET /health
Authorization: Bearer sk_live_xxxxxAPI Documents
Créer un document
Crée un nouveau document avec vérification par blockchain. Quand le statut est réglé sur « publié », le document est automatiquement vérifié sur la blockchain.
POST /documents
Headers:
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonMettre à jour le document
Mettez à jour un document en créant une nouvelle version. Les versions précédentes sont conservées pour la piste d'audit.
PUT /documents/:documentId
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonMettre à jour les droits d'accès aux documents
Mettez à jour les paramètres de contrôle d'accès au document.
PUT /documents/:documentId/rights
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonVérifiez le document
Vérifie l'authenticité du document grâce à la blockchain. Renvoie le statut de vérification avec le hachage de la transaction et l'ID de la chaîne.
POST /documents/verify
{
"versionHash": "0x123abc...",
"certificateHash": "0x456def..."
}Obtenir le statut de vérification
Obtenez le statut de vérification blockchain pour une version d'un document.
GET /documents/versions/:versionId/verification
Authorization: Bearer sk_live_xxxxxAPI Signatures
Créer une demande de signature
Crée une demande de signature pour un ou plusieurs destinataires. Active le flux intégré pour l'intégration frontale.
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
}'Obtenir le statut de la demande de signature
Vérifiez le statut d'une demande de signature et voyez quels signataires ont fini de signer.
GET /signatures/requests/:requestId/status
Authorization: Bearer sk_live_xxxxxSigner le document
Signez un document (si le propriétaire de la clé API est signataire).
POST /signatures/sign
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonObtenir les signatures des utilisateurs
Récupère toutes les signatures pour l'utilisateur authentifié.
GET /signatures
Authorization: Bearer sk_live_xxxxxObtenir des demandes de signature
Récupère toutes les demandes de signature pour l'utilisateur authentifié avec prise en charge de la pagination.
GET /signatures/requests?pageNumber=1&pageSize=10
Authorization: Bearer sk_live_xxxxxAPI de téléchargement de médias
Télécharge des fichiers à utiliser pour créer des documents. Ça marche avec les PDF, les images et les vidéos. Tu peux mettre jusqu'à 10 fichiers par demande.
curl -X POST https://api.chaindoc.io/api/v1/media/upload \
-H "Authorization: Bearer sk_live_xxxxx" \
-F "media=@contract.pdf"API KYC
Partager les données KYC
Partage les données KYC (Know Your Customer) avec les destinataires pour vérifier leur identité.
POST /kyc/share
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonAPI Sessions intégrées
Créez des sessions intégrées pour la signature de documents dans votre application frontale. Les sessions sont valables pendant 10 minutes.
POST /embedded/sessions
Authorization: Bearer sk_live_xxxxx
Content-Type: application/json