
# E-Mail-Vorlage zurücksetzen

`POST /v1/email-templates/{family}/{locale}:rollback` · Berechtigung `email-templates:write` · Startup-Plan und höher

Validiert den Inhalt einer früher veröffentlichten (jetzt archivierten) Version erneut und veröffentlicht ihn als neue Version, wobei `source_version` auf die Version gesetzt wird, auf die Sie zurückgesetzt haben. Der Verlauf wird nicht umgeschrieben. Der Auditeintrag `email_template.rolled_back` wird in derselben Transaktion geschrieben.

Eine Version, die nie veröffentlicht wurde, oder die aktuell veröffentlichte Version liefert `409`.

## Pfadparameter

| Parameter | Beschreibung |
|---|---|
| `family` | E-Mail-Familie, zum Beispiel `verify_email` oder `email_otp` (siehe [E-Mail-Vorlagen auflisten](list.md)). |
| `locale` | Sprachkennung, zum Beispiel `en` oder `de`. |

## Anfrage

| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| `version` | integer | ja | Die archivierte Version, die erneut veröffentlicht wird (1 oder größer). |

## Antwort

`200 OK` mit der neuen veröffentlichten Version.

```json
{
  "family": "verify_email",
  "locale": "en",
  "version": 4,
  "status": "published",
  "subject": "Confirm your email for {{ application.name }}",
  "html": "<p><a href=\"{{ link }}\">Confirm your email</a></p>",
  "text_body": "Confirm your email: {{ link }}",
  "from_name": null,
  "source_version": 1,
  "created_at": "2026-10-19T10:00:00Z",
  "published_at": "2026-10-19T10:00:00Z",
  "latest_version": 4,
  "published_version": 4
}
```

## Fehler

| HTTP | code | Wann |
|---|---|---|
| 400 | `unknown_field` | Der Body enthält ein unbekanntes Feld oder ist kein JSON-Objekt. |
| 404 | `not_found` | Familie oder Sprache ist unbekannt, oder die Version existiert nicht. |
| 403 | `plan_feature_unavailable` | Der Plan der Umgebung enthält keine eigenen E-Mail-Vorlagen (Startup und höher; `required_plan` nennt den nötigen Plan). |
| 409 | `conflict` | Die Version wurde nie veröffentlicht oder ist die aktuell veröffentlichte Version. |
| 422 | `validation_failed` | `version` fehlt oder ist kleiner als 1, oder der Inhalt besteht die Validierung nicht mehr. |
| 401 | `unauthenticated` | Die Anmeldeinformation fehlt, ist ungültig oder widerrufen. |
| 403 | `insufficient_permissions` | Der Anmeldeinformation fehlt die erforderliche Berechtigung. |
| 429 | `rate_limited` | Das Ratenlimit wurde überschritten; wiederholen Sie nach der Zeit aus `Retry-After`. |
| 503 | `service_unavailable` | Eine Abhängigkeit ist vorübergehend nicht verfügbar; wiederholen Sie nach der Zeit aus `Retry-After`. |

## Beispiel

```bash
curl -X POST https://api.eu.keenauth.com/v1/email-templates/verify_email/en:rollback \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"version":1}'
```

CLI: `keenauth email-templates rollback verify_email en --version 1 --yes`
