Revertir una plantilla de correo
POST /v1/email-templates/{family}/{locale}:rollback · permiso email-templates:write · plan Startup y superiores
Vuelve a validar el contenido de una versión publicada anteriormente (ahora archivada) y la publica como nueva versión, con source_version definido como la versión a la que se revierte. El historial no se reescribe. El registro de auditoría email_template.rolled_back se escribe en la misma transacción.
Una versión que nunca se publicó, o la que está publicada en este momento, devuelve 409.
Parámetros de ruta
| Parámetro | Descripción |
|---|---|
family |
Familia de correo, por ejemplo verify_email o email_otp (consulte Listar plantillas de correo). |
locale |
Etiqueta de idioma, por ejemplo en o de. |
Solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
version |
integer | sí | La versión archivada que se va a volver a publicar (1 o mayor). |
Respuesta
200 OK con la nueva versión publicada.
{
"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
}
Errores
| HTTP | code | Cuándo |
|---|---|---|
| 400 | unknown_field |
El cuerpo tiene un campo desconocido o no es un objeto JSON. |
| 404 | not_found |
La familia o el idioma no existe, o la versión no existe. |
| 403 | plan_feature_unavailable |
El plan del entorno no incluye plantillas de correo personalizadas (Startup y superiores; required_plan indica cuál). |
| 409 | conflict |
La versión nunca se publicó, o es la que está publicada. |
| 422 | validation_failed |
Falta version o es menor que 1, o el contenido ya no supera la validación. |
| 401 | unauthenticated |
La credencial falta, no es válida o ha sido revocada. |
| 403 | insufficient_permissions |
La credencial no tiene el permiso requerido. |
| 429 | rate_limited |
Se superó el límite de frecuencia; reintente después del periodo indicado en Retry-After. |
| 503 | service_unavailable |
Una dependencia no está disponible temporalmente; reintente después del periodo indicado en Retry-After. |
Ejemplo
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