Saltar al contenido principal

Validar el documento de una plantilla de email

POST/v1/mail-templates/validate

Para desarrolladores

Descripción​

Revisa un documento de plantilla contra el formato y devuelve sus errores, advertencias y sugerencias, cada uno con su puntero y cómo corregirlo. No hace falta una plantilla guardada y no se guarda nada.

Un documento en modo HTML crudo recibe las mismas tres advertencias de sintaxis que muestra el editor del panel: tag-pair, tagname-lowercase y attr-no-duplication.

Guía relacionada​

Autenticación​

Authorizationbearer tokenheaderobligatorio
API key con scope templates:read. Formato: Bearer <API_KEY>.
X-Instance-Slugstringheaderobligatorio
Identificador de su instancia. Ver Autenticación.

Request​

Body:

{
"config": {
"mode": "html",
"rawHtml": "<html><body><div><p>Hola</div></body></html>",
"page": { "rows": [] }
}
}
configobjectobligatorio
Documento completo, hasta 262144 bytes, como lo devuelve `GET /v1/mail-templates/{template_id}`, incluido el modo HTML crudo.

Response​

200 OKDevuelve un objeto con los campos que siguen.
validbooleansiempre presente
true si el documento no tiene errores y se puede guardar. Las advertencias y sugerencias no impiden guardar.
findingsobject[]siempre presente
Hallazgos, primero los errores.
levelstring, enum: `error | warning | suggestion`siempre presente
error impide guardar; warning y suggestion no.
codestringsiempre presente
Regla que se señala, por ejemplo unknown_module_type o placeholder_link.
messagestringsiempre presente
Descripción en inglés.
pathstringsiempre presente
Puntero JSON al valor señalado dentro del documento. En modo HTML crudo, /rawHtml.
fixstringsiempre presente
Cómo corregirlo, en inglés.
uuidstring | nullsiempre presente
uuid de la fila, columna o módulo afectado, cuando lo hay.
lineinteger | nullsiempre presente
Línea del HTML, solo en una advertencia del modo HTML crudo.
columninteger | nullsiempre presente
Columna del HTML, solo en una advertencia del modo HTML crudo.

Errores​

CódigoCuándo
413El body supera el tamaño máximo de una petición (request_too_large).
422No se envió ningún documento (document_required), el body trae el campo essential (essential_not_supported), o config supera los 262144 bytes (value_error).

Un documento con errores de formato no responde 422: responde 200 con valid: false. Detalle en Errores por campo (422).

Request
curl -X POST "https://$API_HOST/v1/mail-templates/validate" \
-H "Authorization: Bearer $API_KEY" \
-H "X-Instance-Slug: $SLUG" \
-H "Content-Type: application/json" \
-d '{
"config": {
"mode": "html",
"rawHtml": "<html><body><div><p>Hola</div></body></html>",
"page": {
"rows": []
}
}
}'
Response
{
"valid": true,
"findings": [
{
"level": "warning",
"code": "tag-pair",
"message": "The element <p> at line 1, column 18 is opened and never closed.",
"path": "/rawHtml",
"fix": "Close every element you open, in the order you opened it.",
"uuid": null,
"line": 1,
"column": 18
}
]
}