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 :

terminal
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 :

terminal
X-RateLimit-Limit: 3
X-RateLimit-Remaining: 2
X-RateLimit-Reset: 1640000000

Gestion 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

terminal
{
  "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_xxxxx

Vérification

Vérifie la connectivité de l'API et la validité des clés.

GET /health

Authorization: Bearer sk_live_xxxxx

API 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/json

Mettre à 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/json

Mettre à 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/json

Vé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_xxxxx

API 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_xxxxx

Signer 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/json

Obtenir les signatures des utilisateurs

Récupère toutes les signatures pour l'utilisateur authentifié.

GET /signatures

Authorization: Bearer sk_live_xxxxx

Obtenir 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_xxxxx

API 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/json

API 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