On this page

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"
}
  • codigo is stable: program against it.
  • error is a message for people, in Spanish, and its wording may improve without notice.
  • detalle is 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.

CodeHTTPMessage (error)
CLAVE_AUSENTE401Falta la cabecera authorization: Bearer <clave>.
CLAVE_INVALIDA401La clave no existe o fue revocada.
CLAVE_NO_VERIFICABLE503No se pudo verificar la clave. Reintenta en unos segundos.
CANAL_NO_PERMITIDO403La clave no tiene habilitado este canal.
RUTA_NO_ENCONTRADA404La ruta no existe.
METODO_NO_PERMITIDO405Método no permitido en esta ruta.
PETICION_INVALIDA400El cuerpo de la petición no cumple el contrato.
CONTENIDO_LIBRE_NO_PERMITIDO403La clave no permite enviar contenido libre; usa una plantilla.
CANAL_NO_DISPONIBLE501Este canal todavía no está disponible para envío.
ADJUNTOS_DEMASIADO_GRANDES413Los adjuntos superan el tamaño máximo permitido (10 MB en total).
MENSAJE_NO_ENCONTRADO404No existe un mensaje con ese id para esta clave.
MARCA_NO_ENCONTRADA404La marca no existe o tu aplicación no está autorizada para usarla.
PLANTILLA_NO_ENCONTRADA404No existe esa plantilla o ese diseño.
VARIABLES_FALTANTES422Faltan datos que la plantilla necesita.
DESTINATARIO_SUPRIMIDO422El destinatario se dio de baja o rebotó en este canal.
LIMITE_EXCEDIDO429Se superó el límite de envíos de la clave.
SESION_INVALIDA401La sesión no es válida o expiró. Vuelve a ingresar.
SIN_ACCESO403Tu cuenta no tiene acceso a Deliver. Pídele a un administrador que te habilite.
PERMISO_INSUFICIENTE403Tu rol no permite esta acción.
CONFLICTO409La operación no se puede aplicar en el estado actual.
ERROR_INTERNO500Error inesperado. Ya quedó registrado.

What to retry

  • 503 CLAVE_NO_VERIFICABLE, 500 ERROR_INTERNO and 429 LIMITE_EXCEDIDO (part of the contract; send limits aren’t enforced yet) are temporary: retry with a wait and the same Idempotency-Key. See Idempotency and retries.
  • 4xx codes other than 429 won’t change on retry: fix the request, the key or the data.