API · Webhooks · Vorlagen

Unterschriften aus Ihrer eigenen Software.

Erstellen Sie Signaturanfragen aus Ihrer Anwendung, lassen Sie Ihre Unterzeichner auf Ihrer gebrandeten Seite unterschreiben und erhalten Sie das versiegelte PDF samt Audit-Trail per Webhook zurück. Eine REST-API mit Idempotency-Keys, signierten Events und stabilen Fehlercodes.

API-Keys und Webhooks sind im Enterprise-Plan enthalten. Öffentliche Dokumentation, OpenAPI-3.1-Spezifikation, kein SDK nötig.

curl https://api.wesign.now/v1/signing-requests \
  -H "Authorization: Bearer $WSK_KEY" \
  -H "Idempotency-Key: case-4711/poa" \
  -F "file=@power-of-attorney.pdf" \
  -F 'signers=[{"email":"anna@example.ch","role":"client","name":"Anna Muster"}]' \
  -F "placement=anchors" \
  -F 'metadata={"case_id":"4711"}'

# → 201 Created
# {
#   "documentId": "8a1e4f9a-…",
#   "status": "pending",
#   "signers": [{ "role": "client", "signingUrl": "https://yourco.wesign.now/en/sign/…", "emailed": true, … }], …
# }
So funktioniert es

Vier Schritte von Ihrem Code zum versiegelten PDF.

Nichts zu installieren: HTTPS, JSON und Multipart. Jeder Schritt verlinkt die Seite der Dokumentation, die sein Vertrag ist.

  1. Schritt 1

    Anfrage erstellen

    Ein POST /v1/signing-requests mit dem PDF, den Unterzeichnern und der Feldplatzierung: anchors findet [[ls:signature:client]]-Marker im PDF, explicit nimmt Koordinaten, auto_append hängt eine Unterschriftsseite an. Die Antwort enthält die documentId und pro Unterzeichner eine signingUrl.

    In der Dokumentation
    curl https://api.wesign.now/v1/templates/$TEMPLATE_ID/instantiate \
      -H "Authorization: Bearer $WSK_KEY" \
      -H "Idempotency-Key: case-4711/mandate" \
      -H "Content-Type: application/json" \
      -d '{
        "recipients": [{ "slot": 1, "email": "anna@example.ch", "name": "Anna Muster" }],
        "field_values": { "company.legal_name": "Muster AG", "company.tax_id": "CHE-123.456.789" },
        "metadata": { "case_id": "4711" }
      }'

    Derselbe Versand aus einer gesperrten Vorlage: POST /v1/templates/{id}/instantiate fügt Ihre field_values in die {{Platzhalter}} ein und lädt die Empfänger ein.

  2. Schritt 2

    Ihr Unterzeichner unterschreibt

    Wir senden die Einladung in der Sprache des Unterzeichners von Ihrer gebrandeten Subdomain — oder Sie liefern den Link selbst mit send_emails: false. Mit Mobilnummer und require_sms_verification gibt der Unterzeichner zuerst einen Einmalcode ein: eine fortgeschrittene elektronische Signatur (AES) statt der E-Mail-Link-Stufe (SES).

    In der Dokumentation
    "signers": [{
      "email": "anna@example.ch",
      "role": "client",
      "name": "Anna Muster",
      "locale": "de",
      "phone_e164": "+41791112233",
      "require_sms_verification": true
    }]
    
    # The invitation goes out in German from your branded subdomain.
    # Anna asks for the code on the signing page; the signature is AES once verified.
    # Deliver the link yourself instead: send_emails=false
  3. Schritt 3

    Sie erhalten das Event

    Registrieren Sie einmal einen Webhook für den Workspace oder übergeben Sie callback_url pro Anfrage. Jede Zustellung ist HMAC-SHA256-signiert, wird mit exponentiellem Backoff wiederholt und in einem Zustellprotokoll geführt, aus dem Sie erneut zustellen können. document.completed kommt einmal pro Dokument mit signed_pdf_url, audit_trail_url und dem sha256 der Datei.

    In der Dokumentation
    POST https://your-app.example/wesign/callback
    X-WeSign-Event: document.completed
    X-WeSign-Signature: t=1757404800,v1=9c3b…a2f1
    
    {
      "event": "document.completed",
      "document_id": "8a1e4f9a-…",
      "metadata": { "case_id": "4711" },
      "signed_pdf_url": "https://api.wesign.now/v1/documents/8a1e4f9a-…/signed",
      "audit_trail_url": "https://api.wesign.now/v1/documents/8a1e4f9a-…/audit-trail",
      "sha256": "4f9a…d21c", …
    }
  4. Schritt 4

    Dateien abholen

    GET /v1/documents/{id}/signed liefert das PAdES-versiegelte PDF, alle Unterschriften unter einem Siegel; /audit-trail rendert das Ereignisprotokoll — SHA-256, Zeitstempel, maskierte IPs — als PDF, immer auf Englisch. Beide brauchen Ihren Key. Vergleichen Sie den Hash und speichern Sie beide Dateien bei sich.

    In der Dokumentation
    curl -LOJ -H "Authorization: Bearer $WSK_KEY" \
      https://api.wesign.now/v1/documents/$DOC_ID/signed
    
    curl -OJ -H "Authorization: Bearer $WSK_KEY" \
      https://api.wesign.now/v1/documents/$DOC_ID/audit-trail
    
    # Compare the file's SHA-256 with the event's sha256, then store both files on your side.

Jede Antwort trägt eine X-Request-Id, und Einstellungen → API führt 30 Tage lang ein API-Protokoll jedes Aufrufs — Status, Fehlercode, betroffenes Dokument; Bodies werden nie gespeichert. Ein Idempotency-Key macht einen wiederholten Versand oder Instantiate sicher. Jeder Key darf 60 Anfragen pro Minute stellen.

Fähigkeiten

Alles, was die API heute kann.

Vorlagen und Feldregister

Einen Vertrag einmal mit {{Platzhaltern}} verfassen, sperren, und instantiate füllt ihn aus field_values. GET /v1/templates/{id} veröffentlicht das Eingabeschema; das Feldregister des Workspace hält Schlüssel und Beispielwerte stabil.

Anker

Setzen Sie [[ls:signature:client]]-Marker in Ihr generiertes PDF, und die Felder landen dort, wo der Text steht — ohne Koordinaten. Die Marker werden maskiert, bevor der Unterzeichner die Seite sieht.

SMS-Verifizierung (AES)

phone_e164 und require_sms_verification: ein Einmalcode, bevor das Dokument angezeigt wird oder beim Klick auf Unterschreiben. Bindet die Unterschrift an ein Telefon — eine fortgeschrittene elektronische Signatur.

Sequenzielles Unterschreiben

signing_mode: sequential lädt einen Unterzeichner nach dem anderen ein; parallel ist der Standard. Beobachter und Webhooks folgen jeder Freigabe.

Beobachter

observer_emails: CC-Empfänger, die nie unterschreiben. Benachrichtigt beim Versand und wenn alle unterschrieben haben, mit dem finalen PDF und dem Zertifikat.

Mehrere Unterzeichner und Umschläge

Mehrere Unterzeichner unterschreiben ein PDF unter einem Siegel. Ein Umschlag mit mehreren Dateien ist mehrere Dokumente: Jedes wird für sich abgeschlossen und feuert sein eigenes document.completed.

Eingebettetes Unterschreiben

Eine kurzlebige Sitzung für einen Unterzeichner ausstellen und die Signaturansicht in Ihrer eigenen Seite rendern — iframe oder mobile Webview, Ihr Branding, kein API-Key im Browser. Enterprise.

Webhooks

Signiert, mit exponentiellem Backoff wiederholt, vollständige oder minimale Payload (ohne personenbezogene Daten), ein Zustellprotokoll mit erneuter Zustellung und Secret-Rotation, die das alte Secret 24 Stunden gültig lässt.

PAdES-versiegelt und prüfbar

Jedes signierte PDF trägt ein PAdES-Siegel; der RFC-3161-Zeitstempel bleibt in unseren Aufzeichnungen. Jeder kann die Datei auf /verify ablegen und erhält ein Urteil: authentisch, manipuliert oder unbekannt.

Datenregion EU, CH oder US

Jeder Workspace bindet seine Dokumente an eine Region: EU (Standard), Schweiz oder USA. Dokumente bleiben, wo sie erstellt wurden.

Swiss-made

Signaturen nach eIDAS und Schweizer ZertES als SES und AES (keine QES). Öffentliche Dokumentation, OpenAPI-3.1-Spezifikation und 90 Tage Vorlauf vor jeder brechenden Änderung.

Wer darauf baut

Software, die einem Kunden einen Vertrag vorlegt.

Steuer- und Treuhandsoftware

Mandatsvereinbarungen, Vollmachten und Einreichungsermächtigungen direkt aus der Akte: Die Vorlage trägt den Text der Kanzlei, Ihre Plattform füllt Kunden- und Firmendaten, der Kunde unterschreibt auf der gebrandeten Seite der Kanzlei. Der Audit-Trail beantwortet die Rückfrage der Steuerbehörde.

HR- und Recruiting-Plattformen

Angebote, Verträge und Personalverleih-Vereinbarungen pro Kandidat erzeugt und sequenziell versandt — zuerst der Kandidat, dann der Arbeitgeber — mit dem signierten PDF zurück in der Kandidatenakte.

Fintech-Onboarding

Onboarding-Vereinbarungen und Investorenunterlagen in Ihrem Ablauf ausgeführt, eingebettet oder per Link, mit SMS als zweitem Faktor, wo das Risiko es verlangt, und einem versiegelten, per Hash prüfbaren PDF für die Compliance.

Agenturen und Dokumentgeneratoren

Ihr Tool erzeugt das PDF, Anker platzieren die Felder, der Kunde unterschreibt ohne Konto. `metadata` trägt Ihre Projekt-ID durch jedes Event zurück in Ihr System.

Veröffentlichte Kundengeschichten:Zepf TaxesCurio Capital

API-Keys und Webhooks gibt es mit Enterprise.

Bestehende Teams-Workspaces behalten ihre API-Keys und Webhooks. Vorlagenversand über die API (instantiate, generate, confirm) und eingebettetes Unterschreiben sind nur mit Enterprise möglich. Jeder Key darf 60 Anfragen pro Minute stellen.

Pläne und Preise ansehen

Fragen

Gibt es eine Sandbox oder einen Test-Key?

Noch nicht: Jeder Key ist live. send_emails: false erstellt das Dokument und die Links, ohne jemandem eine E-Mail zu senden; validate_only: true prüft ein Instantiate, ohne etwas zu erstellen; review: true legt ein Dokument zur Bestätigung oder Verwerfung durch eine Person bereit.

Welche Signaturstufe erzeugt die API?

Eine einfache elektronische Signatur (SES) per E-Mail-Link oder eine fortgeschrittene elektronische Signatur (AES), wenn der Unterzeichner einen SMS-Einmalcode bestätigt. Keine qualifizierte Signatur (QES).

Woher weiss ich, dass ein Webhook von Ihnen kommt?

Jede Zustellung trägt X-WeSign-Signature: t=<time>,v1=<hmac> — HMAC-SHA256 über Zeitstempel und rohen Body mit dem Secret des Hooks. Prüfen Sie sie, bevor Sie dem Body vertrauen; die Dokumentation enthält Prüfer in Node und PHP.

Was passiert, wenn mein Endpunkt nicht erreichbar ist?

Wir wiederholen mit exponentiellem Backoff und führen pro Hook ein Zustellprotokoll; eine Zustellung lässt sich daraus erneut senden. Sie können ausserdem jederzeit GET /v1/signing-requests/{id} abfragen.

Kann ich einen Versand wiederholen, ohne doppelt zu senden?

Ja. Senden Sie einen Idempotency-Key mit POST /v1/signing-requests oder instantiate: Derselbe Key mit demselben Body liefert innerhalb von 24 Stunden die erste Antwort; derselbe Key mit anderem Body wird abgelehnt.

Wo werden die Dokumente gespeichert?

In der Region, die der Workspace festlegt: EU (Standard), Schweiz oder USA. Verschlüsselt bei Übertragung und Speicherung. Ein signiertes PDF kann nach einer von Ihnen gesetzten Aufbewahrungsfrist gelöscht werden — speichern Sie Ihre Kopie bei document.completed.

Unterschriften aus Ihrer eigenen Software.

Sagen Sie uns, was Sie anbinden. Die Dokumentation ist öffentlich — lesen Sie sie gern zuerst.