Errors
Every Deliver error has the same shape, with an HTTP status and a stable code your application can program against.
Every error response has this shape:
{
"error": "La clave no tiene habilitado este canal.",
"codigo": "CANAL_NO_PERMITIDO"
}
codigois stable: program against it.erroris a message for people, in Spanish, and its wording may improve without notice.detalleis optional and carries more context, for example which field of the body is invalid.
Codes
This table is generated from the same catalog the API uses. The message is the error text the API returns.
| Code | HTTP | Message (error) |
|---|---|---|
CLAVE_AUSENTE | 401 | Falta la cabecera authorization: Bearer <clave>. |
CLAVE_INVALIDA | 401 | La clave no existe o fue revocada. |
CLAVE_NO_VERIFICABLE | 503 | No se pudo verificar la clave. Reintenta en unos segundos. |
CANAL_NO_PERMITIDO | 403 | La clave no tiene habilitado este canal. |
RUTA_NO_ENCONTRADA | 404 | La ruta no existe. |
METODO_NO_PERMITIDO | 405 | Método no permitido en esta ruta. |
PETICION_INVALIDA | 400 | El cuerpo de la petición no cumple el contrato. |
CONTENIDO_LIBRE_NO_PERMITIDO | 403 | La clave no permite enviar contenido libre; usa una plantilla. |
CANAL_NO_DISPONIBLE | 501 | Este canal todavía no está disponible para envío. |
ADJUNTOS_DEMASIADO_GRANDES | 413 | Los adjuntos superan el tamaño máximo permitido (10 MB en total). |
MENSAJE_NO_ENCONTRADO | 404 | No existe un mensaje con ese id para esta clave. |
MARCA_NO_ENCONTRADA | 404 | La marca no existe o tu aplicación no está autorizada para usarla. |
PLANTILLA_NO_ENCONTRADA | 404 | No existe esa plantilla o ese diseño. |
VARIABLES_FALTANTES | 422 | Faltan datos que la plantilla necesita. |
DESTINATARIO_SUPRIMIDO | 422 | El destinatario se dio de baja o rebotó en este canal. |
LIMITE_EXCEDIDO | 429 | Se superó el límite de envíos de la clave. |
SESION_INVALIDA | 401 | La sesión no es válida o expiró. Vuelve a ingresar. |
SIN_ACCESO | 403 | Tu cuenta no tiene acceso a Deliver. Pídele a un administrador que te habilite. |
PERMISO_INSUFICIENTE | 403 | Tu rol no permite esta acción. |
CONFLICTO | 409 | La operación no se puede aplicar en el estado actual. |
ERROR_INTERNO | 500 | Error inesperado. Ya quedó registrado. |
What to retry
503CLAVE_NO_VERIFICABLE,500ERROR_INTERNOand429LIMITE_EXCEDIDO(part of the contract; send limits aren’t enforced yet) are temporary: retry with a wait and the sameIdempotency-Key. See Idempotency and retries.4xxcodes other than429won’t change on retry: fix the request, the key or the data.