> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Datenverarbeitungsvereinbarung (DPA / DSGVO Art. 28)

> Selbst-Service-Datenverarbeitungsvereinbarungs-Lebenszyklus: Template-Vorschau, Annahme mit typisierter E-Signatur, Download der ausgeführten Abschrift und Verfolgung von Template-Versionen.

# Datenverarbeitungsvereinbarung (DPA)

Devotel verarbeitet personenbezogene Daten in Ihrem Namen als **Processor**
und Sie sind der **Controller**. DSGVO Art. 28 verlangt, dass diese
Beziehung durch einen schriftlichen Vertrag — eine
Datenverarbeitungsvereinbarung — fungiert. Devotel stellt diesen Vertrag
als Selbst-Service-Click-Wrap bereit, sodass Sie ihn ohne manuelle
Rechts-Hand-off prüfen, annehmen und archivieren können.

Dieser Leitfaden deckt den vollen Lebenszyklus ab: was die DPA governs,
wie `dpa_status` funktioniert, wie man das Template previewt, wie man
es annimmt, wie man die ausgeführte Abschrift herunterlädt und was
passiert, wenn eine neue Template-Version veröffentlicht wird.

> Die Annahme ist rein vertragliche Buchführung. Sie scrollt nie Send,
> Receive oder eine andere Produktfähigkeit.

***

## Was die DPA reguliert

Die DPA bindet Devotel an die Art. 28(3)-DSGVO-Processorpflichten.
In Klartext verpflichtet sie Devotel zu:

* Personenbezogene Daten **nur nach Ihren dokumentierten Anweisungen**
  zu verarbeiten
* Die Daten **konfidential** zu halten und durch angemessene
  Sicherheitsmaßnahmen zu schützen
* **Subprozessoren** nur unter den im Vertrag beschriebenen Bedingungen
  zu engagieren, und für sie haftbar zu bleiben
* Hilfe bei **Datenobjektanfragen** (das Gegenstück zum [DSAR-Workflow](/compliance/dsar)) und bei Breach-Benachrichtigung
* Personenbezogene Daten am Ende des Engagements **zu löschen oder zurückzugeben**

Die Annahme der DPA ändert nicht, was Devotel mit Ihren Daten tut — jene
Pflichten bestehen unabhängig. Annahme ist das schriftliche Protokoll, das
Art. 28 von Ihnen als Controller fordert. Devotel macht dieses Protokoll
zu einer typisierten E-Signatur, die Sie vom Dashboard in einer Minute
abschließen, statt eines Dokuments durch die Beschaffung zu routen.

Die typisierte E-Signatur ist eine Click-Wrap-Annahme: Sie typein Ihren
juristischen Namen zum Signieren. Jede Annahme zeichnet die
Template-Version, Name, E-Mail und Titel des Signierers, den
Annahmens-Timestamp und die Annahmenmethode (name-typein) auf. Dieses
Protokoll ist der juristische Beweis der Attestation; das beim Annähme
gespeicherte gerendete Dokument ist die kanonische ausgeführte Abschrift.

***

## Zustände von `dpa_status`

Ihre Organisation ist immer in einem von zwei Zuständen, die von
`GET /api/v1/compliance/dpa` gemeldet werden:

| Zustand        | Bedeutung                                                                                                            |
| -------------- | -------------------------------------------------------------------------------------------------------------------- |
| `not_accepted` | Keine DPA-Annahme auf File. Das ist der Default für jede neue Organisation.                                          |
| `accepted`     | Eine DPA-Annahme ist auf File. Die Antwort enthält die angenommene Version, den Timestamp und die Signierer-Details. |

Neben dem Zustand gibt `GET /api/v1/compliance/dpa` eine
**`needs_update`**-Flag zurück. Sie ist `true`, wenn die von Ihrer
Organisation angenommene Template-Version älter als die aktuelle
kanonische Template-Version ist — zum Beispiel angenommen `v1` und
Devotel hat seit `v2` veröffentlicht. Die Flag ist informational:
nichts ist blockiert, und Ihre bestehende Annahme bleibt auf File. Sie
steuert den Dashboard-Banner, der eine Re-Annahme anbietet, sodass Sie die
neue Version annehmen können.

Die Antwortform:

```json theme={null}
{
  "dpa_status": "accepted",
  "dpa_accepted_version": "v1",
  "dpa_accepted_at": "2026-08-10T14:22:31.410Z",
  "dpa_signer_name": "Jane Roe",
  "dpa_signer_email": "jane@example.com",
  "dpa_signer_title": "General Counsel",
  "current_version": "v1",
  "needs_update": false
}
```

Im Gegensatz zum HIPAA-BAA hat die DPA keine jährliche Laufzeit. Sie
bleibt angenommen, bis eine neuere Template-Version publiziert wird,
worauf `needs_update` dann `true` wird — sie läuft nie selbst aus.

***

## Das Template vorschauen

Prüfen Sie vor Annahme den exakten Vertragstext. `GET /api/v1/compliance/dpa/template`
gibt das Template gerendert zurück, mit dem Namen Ihrer Organisation
schon ausgefüllt, sodass Sie die Endabschrift statt eines
Placeholder-gefülten Dokuments lesen. Felder, die nur existieren, wenn Sie
annehmen — die Annahmens-Timestamps und die Dokument-Referenz —
erscheinen als lesbare „ausgefüllt bei Annahme"-Marker. Signierer-Felder
erscheinen als Leerzeilen, die das Dashboard live ausfüllt, während Sie
tippen.

```bash theme={null}
curl "https://api.orbit.devotel.io/api/v1/compliance/dpa/template?version=v1" \
  -H "Authorization: Bearer sk_live_..."
```

Antwort:

```json theme={null}
{
  "version": "v1",
  "controller_name": "Acme Health Ltd",
  "format": "markdown",
  "body": "# Datenverarbeitungsvereinbarung\n\nDiese Datenverarbeitungsvereinbarung..."
}
```

Jede Rolle von `admin` oder höher kann vorschauen. Die Vorschau ist für
jeden Aufrufer in der Organisation identisch und ändert sich nur, wenn
Devotel eine neue Template-Version publiziert.

***

## Die DPA annehmen

Die Annahme ist Owner-only — eine juristisch bindende Signatur ist keine
Developer-Tier-Aktion. `POST /api/v1/compliance/dpa/accept` nimmt die
Identität des Signierers und eine typisierte Attestation:

```bash theme={null}
curl -X POST "https://api.orbit.devotel.io/api/v1/compliance/dpa/accept" \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "signer_name": "Jane Roe",
    "signer_email": "jane@example.com",
    "signer_title": "General Counsel",
    "typed_attestation": "Jane Roe"
  }'
```

| Feld                | Regel                                                                                                                                                                                    |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `signer_name`       | Der juristische Name des Signierers (2–200 Zeichen).                                                                                                                                     |
| `signer_email`      | Eine gültige E-Mail-Adresse.                                                                                                                                                             |
| `signer_title`      | Rolle oder Titel des Signierers (2–200 Zeichen).                                                                                                                                         |
| `typed_attestation` | Muss **genau** mit `signer_name` übereinstimmen. Der Signierer re-typein seinen Namen als Signatur; ein Mismatch wird mit `400` abgelehnt (dies blockiert auch Blank-Form-Auto-Submits). |
| `template_version`  | Optional. Defaults auf die aktuelle kanonische Version.                                                                                                                                  |

Bei Erfolg serverseitig:

1. Das Template mit den Signierer-Details, Annahmens-Timestamps und
   einer generierten Dokument-Referenz rendert
2. Das gerendete Dokument als kanonische ausgeführte Abschrift speichert
3. Die Annahme auf der Organisation — Version, Timestamp, Signierer — und
   an eine unveränderliche Annahmens-Historie appended, sodass Re-Annahmen
   das vorige Protokoll nie löschen
4. Eine `compliance.dpa.accepted`-Eintragung in das Audit-Log schreibt —
   der Audit-Eintrag ist der juristische Beweis der Attestation

Die Antwort gibt den neuen Zustand plus die Dokument-Referenz zurück:

```json theme={null}
{
  "dpa_status": "accepted",
  "dpa_accepted_version": "v1",
  "dpa_accepted_at": "2026-08-24T09:41:12.008Z",
  "dpa_signer_name": "Jane Roe",
  "dpa_signer_email": "jane@example.com",
  "dpa_signer_title": "General Counsel",
  "current_version": "v1",
  "needs_update": false,
  "dpa_id": "dpa_9f2k…"
}
```

Die Annahme ist auf eine Handvoll Anfragen pro Minute rate-limitiert;
sie soll eine bewusste Aktion sein, kein gescripteter Loop.

***

## Die ausgeführte Abschrift herunterladen

Sobald eine DPA auf File ist, kann jeder `admin` oder höher sie für Ihre
Unterlagen, den Audit eines Kunden oder einen Regulator holen:

```bash theme={null}
curl "https://api.orbit.devotel.io/api/v1/compliance/dpa/download" \
  -H "Authorization: Bearer sk_live_..."
```

Die Antwort trägt eine Download-URL mit Gültigkeit von **24 Stunden**:

```json theme={null}
{
  "url": "https://storage.googleapis.com/…/dpa/org_…/dpa_….pdf?X-Goog-Signature=…",
  "expires_in_seconds": 86400
}
```

Teilen Sie die URL innerhalb dieses Fensters oder laden Sie die Datei
selbst herunter und archivieren Sie sie. Wenn noch keine DPA angenommen
wurde, gibt der Endpunkt `404` zurück.

***

## Dashboard-Flow

Dieselbe Lebenszyklus ist ohne API unter
**Einstellungen → Compliance → DPA** verfügbar:

1. **Statuskarte** — zeigt `not_accepted` / `accepted`, die angenommene
   Version und Datum, den Signierer und einen Banner, wenn `needs_update`
   `true` ist
2. **Template-Vorschau** — die gerendete Abschrift mit dem Namen Ihrer
   Organisation ausgefüllt
3. **Attestationsformular** — Name, E-Mail, Titel und das Name-typein-
   Signaturfeld (nur Owner)
4. **Download** — ein Link zur ausgeführten Abschrift nach Annahme

***

## FAQ

**Was passiert, wenn `needs_update` `true` wird?**
Devotel hat eine neuere Template-Version veröffentlicht als die angenommene.
Ihre bestehende Annahme bleibt voll auf File und nichts ist blockiert. Um
die neue Version anzunehmen, vorschauen Sie sie (der `version`-Query-
Parameter defaults auf die aktuelle Version), dann annehmen Sie mit
demselben Flow erneut.

**Braucht Re-Annahme das volle Formular?**
Ja. Jede Annahme ist eine unabhängige typisierte Signatur — die
typisierte Attestation muss jedes Mal mit dem Signiernamen übereinstimmen.

**Wer kann was?**

| Aktion                              | `owner` | `admin` | `developer` / `viewer` / `billing` |
| ----------------------------------- | :-----: | :-----: | :--------------------------------: |
| DPA-Status lesen                    |    Ja   |    Ja   |                Nein                |
| Template vorschauen                 |    Ja   |    Ja   |                Nein                |
| Ausgeführte Abschrift herunterladen |    Ja   |    Ja   |                Nein                |
| Annehmen / Re-annehalten            |    Ja   |   Nein  |                Nein                |

**Gates die DPA irgendetwas?**
Nein. Die Annahme ist vertragliche Buchführung. Im Gegensatz zum BAA,
der HIPAA-Modus und PHI-Sendungen Gate-t, Gate-t die DPA nie eine
Produktfähigkeit.

**Was ist meine Controller-Pflicht beyond Annahme?**
Die Annahme der DPA erfüllt Art. 28-Vertragspflicht auf Ihrer Seite.
Ihre Rechtsgrundlage zu bestimmen, Ihre eigenen
[Consent- und Unterdrückungs-Kontrollen](/compliance/consent-management)
zu konfigurieren und Datenobjektanfragen zu beantworten (siehe
[DSAR](/compliance/dsar)) bleiben Ihre. Für die Reihenfolge dieser
Stücke sehen Sie [Eine DSGVO-Posture-End zu Ende](/compliance/gdpr-posture-guide).

***

*Zuletzt aktualisiert: August 2026*
*Bei Fragen zur DPA: [compliance@devotel.io](mailto:compliance@devotel.io)*
