Dokumentation

API-Schnellstart

Die API legt Verträge aus Ihrer eigenen Anwendung an und meldet den Stand zurück. Hier der kürzeste Weg, die vollständige Referenz steht auf Englisch.

Schlüssel anlegen

Legen Sie in den Einstellungen einen API-Schlüssel an. Er beginnt mit canu_ und gehört in den Header jeder Anfrage. Erlaubt sind 60 Anfragen je Minute.

Authorization: Bearer canu_ihr_schluessel

Vertrag anlegen

Schicken Sie Ihr PDF als Base64 (bis 3 MB) und setzen Sie die Felder in Prozent der Seite, gemessen von oben links. Eine Person mit E-Mail-Adresse in signers bekommt ihren persönlichen Link.

PDF_B64=$(base64 < auftrag.pdf | tr -d '\n')
curl -X POST https://canusign.com/api/v1/contracts \
  -H "Authorization: Bearer canu_ihr_schluessel" \
  -H "Content-Type: application/json" \
  -d "{
    \"title\": \"Auftrag 4711\",
    \"language\": \"de\",
    \"document\": { \"name\": \"auftrag.pdf\", \"pdf\": \"$PDF_B64\" },
    \"signatureFields\": [
      { \"label\": \"Kunde\", \"page\": 1, \"x\": 10, \"y\": 80 },
      { \"label\": \"Auftragnehmer\", \"page\": 1, \"x\": 60, \"y\": 80 }
    ],
    \"signers\": [{ \"label\": \"Kunde\", \"email\": \"kunde@example.com\" }],
    \"finalize\": true
  }"

Antwort lesen

Die Antwort enthält id, signUrl für den geteilten Link, publicId und verifyUrl für die Prüfseite. Ohne Guthaben und ohne Pro wartet der Vertrag auf die Zahlung: requiresPayment ist dann true und signUrl leer.

Auf die Unterschriften warten

Legen Sie einen Webhook für contract.completed an, oder fragen Sie GET /api/v1/contracts/{id} ab.

curl -X POST https://canusign.com/api/v1/webhooks \
  -H "Authorization: Bearer canu_ihr_schluessel" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://ihre-anwendung.example/hooks/canusign", "events": ["contract.completed"] }'

PDF laden

Solange nicht alle unterschrieben haben, antwortet der Endpunkt mit 409.

curl -o signiert.pdf https://canusign.com/api/v1/contracts/{id}/pdf \
  -H "Authorization: Bearer canu_ihr_schluessel"