Démarrage rapide API
L’API crée des contrats depuis votre propre application et vous renvoie leur avancement. Voici le chemin le plus court ; la référence complète est en anglais.
Créer une clé
Créez une clé d’API dans vos paramètres. Elle commence par canu_ et va dans l’en-tête de chaque requête. La limite est de 60 requêtes par minute.
Authorization: Bearer canu_votre_cleCréer un contrat
Envoyez votre PDF en base64 (jusqu’à 3 Mo) et placez les champs en pourcentage de la page, mesuré depuis le coin supérieur gauche. Une personne avec une adresse e-mail dans signers reçoit son lien personnel.
PDF_B64=$(base64 < commande.pdf | tr -d '\n')
curl -X POST https://canusign.com/api/v1/contracts \
-H "Authorization: Bearer canu_votre_cle" \
-H "Content-Type: application/json" \
-d "{
\"title\": \"Commande 4711\",
\"language\": \"fr\",
\"document\": { \"name\": \"commande.pdf\", \"pdf\": \"$PDF_B64\" },
\"signatureFields\": [
{ \"label\": \"Client\", \"page\": 1, \"x\": 10, \"y\": 80 },
{ \"label\": \"Prestataire\", \"page\": 1, \"x\": 60, \"y\": 80 }
],
\"signers\": [{ \"label\": \"Client\", \"email\": \"client@example.com\" }],
\"finalize\": true
}"Lire la réponse
La réponse contient id, signUrl pour le lien partagé, publicId et verifyUrl pour la page de vérification. Sans crédit et sans Pro, le contrat attend le paiement : requiresPayment vaut alors true et signUrl reste vide.
Attendre les signatures
Abonnez un webhook à contract.completed, ou interrogez GET /api/v1/contracts/{id}.
curl -X POST https://canusign.com/api/v1/webhooks \
-H "Authorization: Bearer canu_votre_cle" \
-H "Content-Type: application/json" \
-d '{ "url": "https://votre-application.example/hooks/canusign", "events": ["contract.completed"] }'Télécharger le PDF
Tant que tout le monde n’a pas signé, l’endpoint répond 409.
curl -o signe.pdf https://canusign.com/api/v1/contracts/{id}/pdf \
-H "Authorization: Bearer canu_votre_cle"