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