Signatur-API v1 · REST · eIDAS · DSGVO

Rechtsgültige Unterschriften — in dein Produkt eingebaut.

Ein POST-Request, eine sign_url, fertig: Dein Nutzer unterschreibt auf der gehosteten KiwiSign-Seite (mit deinem Branding) und kommt automatisch zu dir zurück — das Stripe-Checkout-Muster für Signaturen.

1 · Anfrage erstellen

POST mit PDF + redirect_url → sign_url zurück

2 · Nutzer weiterleiten

Dein Nutzer öffnet die sign_url

3 · Unterschreiben

Am Handy/Browser — ohne Konto, mit deinem Logo

4 · Zurück zu dir

Redirect auf deine URL + Status per GET

Quickstart

1. API-Key erzeugen: Einstellungen → Signatur-API · 2. Signatur-Anfrage erstellen:

curl -X POST https://kiwisign.app/api/v1/signature-requests \
  -H "Authorization: Bearer ks_live_DEIN_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Beratungsvertrag Mustermann",
    "recipient_name": "Max Mustermann",
    "recipient_email": "max@beispiel.de",
    "pdf_url": "https://deine-app.de/vertrag.pdf",
    "redirect_url": "https://deine-app.de/danke"
  }'

Antwort (201):

{
  "id": "3f6c1e2a-…",
  "status": "pending",
  "sign_url": "https://kiwisign.app/d/ab12cd34ef56",
  "redirect_url": "https://deine-app.de/danke",
  "quota": { "used": 12, "limit": 250 }
}

Status abfragen & PDF laden

curl https://kiwisign.app/api/v1/signature-requests/3f6c1e2a-… \
  -H "Authorization: Bearer ks_live_DEIN_KEY"

# → { "status": "signed", "signed_at": "…", "download_url": "https://…" }

Eigene Feld-Positionen (optional)

"fields": [
  { "type": "signature", "page": 2, "x": 205, "y": 700, "width": 270, "height": 70, "label": "Unterschrift" },
  { "type": "date",      "page": 2, "x": 81,  "y": 640, "width": 150, "height": 24, "label": "Datum" }
]
// Koordinatenraum: Seitenbreite = 680 Einheiten (Höhe proportional), Ursprung oben links.
// Ohne "fields" setzt KiwiSign automatisch ein Unterschriftsfeld unten auf die letzte Seite.

Endpoints

Methode & PfadZweck
POST /api/v1/signature-requestsSignatur-Anfrage erstellen → sign_url
GET /api/v1/signature-requests/:idStatus (pending/signed) + download_url

Preise — ein Bruchteil der US-Anbieter

KiwiSign Pro

59 €/Mon

250 Vorgänge · API inklusive

DocuSign API

~50 $/Mon

nur 40 Envelopes (Starter)

Dropbox Sign API

~100 $/Mon

nur 100 Requests

Vergleich öffentlicher Listenpreise, Stand August 2026, Änderungen vorbehalten. KiwiSign-API enthalten in Pro (59 €/250 Vorgänge) und Büro (109 €/600 Vorgänge); 1 Signatur-Anfrage = 1 Vorgang. Mit 30 Tage Geld-zurück-Garantie.

Häufige Fragen

Wie funktioniert der Ablauf genau?+

Dein Backend erstellt per POST eine Signatur-Anfrage und bekommt eine sign_url zurück. Du leitest deinen Nutzer dorthin weiter (Link, Button oder window.location). Er unterschreibt auf der gehosteten KiwiSign-Seite — mit deinem Logo und deiner Firmen-Bio im Kopf. Danach leiten wir ihn automatisch auf deine redirect_url zurück, mit ?kiwisign_status=signed&signature_request_id=… als Query-Parametern. Den Status kannst du jederzeit per GET abfragen.

Was kostet die API?+

Die API ist im Pro-Tarif (59 €/Monat, 250 Vorgänge) und Büro-Tarif (109 €/Monat, 600 Vorgänge) enthalten — jede Signatur-Anfrage zählt als ein Vorgang. Zum Vergleich: DocuSigns API-Einstieg kostet ~50 $/Monat für nur 40 Envelopes, Dropbox Sign 100 $/Monat für 100 Requests. Dank 30 Tage Geld-zurück-Garantie kannst du die API risikofrei testen.

Ist das rechtsgültig?+

Ja — einfache elektronische Signaturen nach eIDAS-Verordnung, EU-weit rechtswirksam für die große Mehrheit der Geschäftsdokumente. Jede Signatur wird mit Zeitstempel, IP-Adresse und Audit-Trail protokolliert; das signierte PDF enthält die Nachweis-Seite.

Brauchen meine Nutzer ein KiwiSign-Konto?+

Nein. Deine Nutzer unterschreiben ohne Registrierung, ohne App — im Browser, mit dem Finger am Handy. Die Abschlussquote bleibt hoch, weil keine Hürde existiert.

Wie authentifiziere ich mich?+

Per API-Key im Authorization-Header: 'Authorization: Bearer ks_live_…'. Keys erzeugst du unter Einstellungen → Signatur-API. Der Klartext-Key wird genau einmal angezeigt; gespeichert wird nur ein Hash. Bis zu 5 aktive Keys, jederzeit widerrufbar.

Wie übergebe ich das PDF?+

Entweder als öffentlich abrufbare https-URL (pdf_url) oder direkt Base64-kodiert im Body (pdf_base64). Maximal 10 MB. Verschlüsselte PDFs (z. B. Versicherer-Formulare) werden automatisch normalisiert.

Wo platziere ich die Unterschriftsfelder?+

Ohne fields-Parameter setzt KiwiSign automatisch ein Unterschriftsfeld unten auf die letzte Seite — für Verträge meist genau richtig. Alternativ übergibst du bis zu 20 Felder mit Koordinaten (Typen: signature, text, date, checkbox) im 680er-Koordinatenraum.

Wie erfahre ich, dass unterschrieben wurde?+

Zwei Wege: (1) Der Redirect zurück auf deine redirect_url enthält kiwisign_status=signed und die signature_request_id — prüfe den Status danach serverseitig per GET (verlasse dich nicht allein auf den Redirect). (2) Polling des GET-Endpoints. Signierte Webhooks sind in Arbeit.

Wie lade ich das signierte PDF herunter?+

Der GET-Status-Endpoint liefert nach der Signatur eine download_url (1 Stunde gültig, jederzeit neu abrufbar). Das PDF ist ein kompatibles Bild-Format-PDF, das auch strenge Firmen-Systeme und DMS akzeptieren.

Gibt es Rate-Limits?+

60 Requests pro Minute je API-Key. Signatur-Anfragen zählen zusätzlich auf dein Monats-Kontingent (Pro: 250, Büro: 600 Vorgänge; Zusatzvorgänge laut Preisseite).

Ist die redirect_url sicher?+

Ja — sie wird bei der Erstellung serverseitig validiert (nur https, keine eingebetteten Zugangsdaten) und fest am Dokument gespeichert. Ein Manipulieren des Redirects durch den Unterzeichner ist nicht möglich.

Wo liegen die Daten?+

Ausschließlich auf EU-Servern in Frankfurt, DSGVO-konform. KiwiSign ist Made in Germany; ein AVV nach Art. 28 DSGVO steht unter kiwisign.app/avv bereit.

Gibt es eine Sandbox?+

Du kannst die Integration mit dem kostenlosen Plan durchtesten, und dank 30 Tage Geld-zurück-Garantie auch die kostenpflichtigen API-Tarife risikofrei ausprobieren, bevor du dich festlegst.

In 10 Minuten integriert.

Konto erstellen, API-Key erzeugen, ersten Request senden — kostenloser Plan zum Start, bezahlte API-Tarife mit 30 Tage Geld-zurück-Garantie.