
# E-posta şablonunu geri al

`POST /v1/email-templates/{family}/{locale}:rollback` · izin `email-templates:write` · Startup planı ve üstü

Daha önce yayımlanmış (şimdi arşivlenmiş) bir sürümün içeriğini yeniden doğrular ve `source_version` olarak geri dönülen sürüm numarasını ayarlayarak yeni bir sürüm olarak yayımlar. Geçmiş yeniden yazılmaz. `email_template.rolled_back` denetim kaydı aynı işlemde yazılır.

Hiç yayımlanmamış bir sürüm ya da şu anda yayımlanmış olan sürüm `409` döndürür.

## Yol parametreleri

| Parametre | Açıklama |
|---|---|
| `family` | E-posta ailesi, örneğin `verify_email` veya `email_otp` ([E-posta şablonlarını listele](list.md) bölümüne bakın). |
| `locale` | Dil etiketi, örneğin `en` veya `de`. |

## İstek

| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
| `version` | integer | evet | Yeniden yayımlanacak arşivlenmiş sürüm (1 veya daha büyük). |

## Yanıt

`200 OK`, yeni yayımlanmış sürümle.

```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
}
```

## Hatalar

| HTTP | code | Ne zaman |
|---|---|---|
| 400 | `unknown_field` | Gövdede bilinmeyen bir alan var ya da gövde bir JSON nesnesi değil. |
| 404 | `not_found` | Aile ya da dil bilinmiyor veya sürüm mevcut değil. |
| 403 | `plan_feature_unavailable` | Ortamın planı özel e-posta şablonlarını içermiyor (Startup ve üstü; hangisinin gerektiği `required_plan` alanında yazar). |
| 409 | `conflict` | Sürüm hiç yayımlanmamış ya da şu an yayımlanmış olan sürüm. |
| 422 | `validation_failed` | `version` eksik ya da 1'den küçük, ya da içerik artık doğrulamayı geçmiyor. |
| 401 | `unauthenticated` | Kimlik bilgisi eksik, geçersiz ya da iptal edilmiş. |
| 403 | `insufficient_permissions` | Kimlik bilgisinin gerekli izni yok. |
| 429 | `rate_limited` | Hız sınırı aşıldı; `Retry-After` süresinden sonra yeniden deneyin. |
| 503 | `service_unavailable` | Bir bağımlılık geçici olarak kullanılamıyor; `Retry-After` süresinden sonra yeniden deneyin. |

## Örnek

```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`
