MailLandDocs
Referencia

Códigos de Error

Referencia completa de los códigos de error de la API de Mail.Land y sus significados

Cada respuesta de error de la API de MailLand incluye un campo code con un código de error legible por máquina y un campo message con una descripción legible por humanos.

Formato de Respuesta de Error

Respuesta de error
{
  "code": "DOMAIN_NOT_VERIFIED",
  "message": "Domain is not verified",
  "timestamp": "2026-02-18T12:35:00Z",
  "traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01"
}

Algunos errores incluyen details adicionales:

Respuesta de error con detalles
{
  "code": "IP_RATE_LIMIT_EXCEEDED",
  "message": "Too many requests from this IP. Retry after 45 seconds.",
  "details": {
    "limit": 300,
    "current": 301,
    "retryAfter": 45,
    "resetAt": "2026-02-18T12:35:00Z"
  }
}

Validación de Solicitud (400)

Se devuelve cuando el cuerpo de la solicitud, los parámetros de consulta o los encabezados están malformados o faltan campos obligatorios.

CódigoDescripción
INVALID_REQUESTSolicitud inválida general
VALIDATION_FAILEDUno o más campos fallaron la validación
INVALID_EMAIL_FORMATEl formato de la dirección de correo electrónico es inválido
WEBHOOK_DESTINATION_NOT_ALLOWEDUna URL de webhook es rechazada por la política de destino: los webhooks se entregan solo por HTTPS en el puerto 443 y no pueden apuntar a los servidores, direcciones o nombres de host de MailLand
MISSING_CONTENTObsoleto desde 2026-04. Use VALIDATION_FAILED: los endpoints send/scheduled ahora devuelven errores de validación estructurados.
CONTENT_TOO_LARGE"The message is too large to send: it would exceed the platform's message-size limit. Reduce the HTML, text, attachments or recipients.": El mensaje supera el límite de tamaño de la plataforma. POST /v1/transactional/send y send-batch lo devuelven como 413; no se pone nada en cola. Reduzca el mensaje. En la importación CSV es 400
transactional_recipient_limit_exceededMás de 5 destinatarios en una credencial transaccional (código en minúsculas)
marketing_recipient_limit_exceededMás de 1.000 destinatarios en una credencial de marketing (código en minúsculas)
VALIDATION_FAILEDEnvío por lotes con más de 10.000 destinatarios
SEND_FAILEDLa operación de envío de correo electrónico falló, incluido "todos los destinatarios están suprimidos"
BATCH_SEND_FAILEDLa operación de envío por lotes falló
IDEMPOTENCY_KEY_INVALIDLa clave de idempotencia está vacía, mal formada, supera 255 caracteres, o la cabecera se envió más de una vez (solo send/send-batch)
IDEMPOTENCY_KEY_CONFLICTLa cabecera X-Idempotency-Key y el campo idempotencyKey se enviaron a la vez y difieren
INVALID_CURSOREl parámetro de paginación por cursor está mal formado
PASSWORD_REQUIREDSe requiere confirmación de contraseña
RECIPIENT_SUPPRESSEDEl destinatario está en la lista de supresión

Autenticación (401)

Se devuelve cuando la solicitud no tiene credenciales o las credenciales son inválidas.

CódigoDescripción
UNAUTHORIZEDX-API-Key ausente, inválida, vencida o revocada: el middleware de la clave API devuelve este único código en todos los casos, con un message descriptivo. No distingue ausente/inválida/vencida/revocada por código. Una contraseña de inicio de sesión incorrecta también devuelve 401 UNAUTHORIZED.
LOGIN_REQUIREDSe requiere inicio de sesión para esta operación

Autenticación de Dos Factores

Los fallos de 2FA devuelven 400 INVALID_REQUEST con un message descriptivo (por ejemplo, "Invalid code", "2FA is already enabled"). No existen códigos de error 2FA dedicados, lea el campo message.

Autorización (403)

Se devuelve cuando el usuario autenticado no tiene permiso para realizar la acción solicitada.

CódigoDescripción
FORBIDDENAcceso denegado general
INSUFFICIENT_PERMISSIONSEl usuario carece del rol o permiso requerido
ACCOUNT_SUSPENDEDLa cuenta de usuario ha sido suspendida
ACCOUNT_DISABLEDLa cuenta de usuario ha sido deshabilitada
ACCOUNT_NOT_ACTIVELa cuenta de usuario no está activa
IP_NOT_ALLOWEDLa IP del cliente no está en la lista de permitidos de la credencial
VALIDATION_CREDENTIAL_REQUIREDLos endpoints de validación de correo requieren una clave de API de Validación. Se rechaza una clave de Envío o de Entrada; se acepta una sesión iniciada o una clave del producto Validación
PLAN_LIMIT_REACHEDSe alcanzó el límite de recursos del plan, se requiere actualización
SENDING_BLOCKEDEl nivel de verificación de la cuenta no permite este envío. Nota: el propio rechazo SendingBlocked del motor de políticas es 403; el mismo código proveniente de la ruta de política de tasa/calentamiento es 429, vea la sección Motor de Políticas abajo.
SUBSCRIPTION_EXPIREDLa suscripción ha expirado
NO_ACTIVE_SUBSCRIPTIONNo se encontró suscripción activa
TENANT_APPROVAL_REQUIREDLa cuenta está pendiente de revisión antes de poder enviar. Reintentar no ayuda; contacte con soporte
MARKETING_NOT_YET_ALLOWEDEl envío de marketing aún no está abierto. Se abre automáticamente con un historial transaccional limpio (al menos 500 correos transaccionales entregados en al menos 7 días, rebotes duros por debajo del 2 % y quejas por debajo del 0,1 %)
MARKETING_SUSPENDEDEl correo de marketing no está disponible temporalmente en toda la plataforma. El correo transaccional no se ve afectado; las campañas y automatizaciones se conservan y se reanudan cuando se habilite el marketing
ACTION_REQUIREDSe requiere acción del usuario antes de que el envío pueda reanudarse. También se devuelve en cada envío mientras el espacio de trabajo tenga una retención de entregabilidad activa (incumplimiento de tasa de rebotes/quejas): el relay SMTP devuelve 550 para la misma retención. Vea Retenciones de entregabilidad

No Encontrado (404)

Se devuelve cuando el recurso solicitado no existe o pertenece a un espacio de trabajo diferente.

CódigoDescripción
RESOURCE_NOT_FOUNDRecurso genérico no encontrado
USER_NOT_FOUNDEl usuario no existe
WEBHOOK_NOT_FOUNDEl webhook no existe
DELIVERY_NOT_FOUNDLa entrega del webhook no existe

La mayoría de las respuestas 404 usan el código RESOURCE_NOT_FOUND. El campo message proporciona contexto sobre qué recurso no se encontró (por ejemplo, "Domain not found", "Template not found", "Campaign not found"). Los endpoints de webhooks son la excepción: reintentar una entrega de webhook usa WEBHOOK_NOT_FOUND / DELIVERY_NOT_FOUND.

Conflicto (409)

Se devuelve cuando la operación entra en conflicto con el estado actual del recurso.

CódigoDescripción
CONFLICTConflicto de recurso general
IDEMPOTENCY_KEY_REUSEDLa clave de idempotencia ya está en uso para otro endpoint de esta cuenta (solo send/send-batch)

Dominio y Envío (422)

Se devuelve cuando la solicitud está bien formada pero no puede procesarse debido a restricciones de lógica de negocio.

CódigoDescripción
DOMAIN_NOT_FOUNDEl dominio no existe en el espacio de trabajo
DOMAIN_NOT_VERIFIEDEl dominio no ha sido verificado, complete la configuración DNS primero
DOMAIN_NOT_ALLOWED_FOR_CREDENTIALLa credencial no está autorizada para este dominio de remitente
CAMPAIGN_LINK_BLOCKEDUn enlace de una campaña apunta a un destino marcado como inseguro; la campaña no se programa ni se envía
DOMAIN_SUSPENDEDEl dominio ha sido suspendido
DOMAIN_VERIFICATION_EXPIREDLa verificación del dominio ha expirado, verifique nuevamente

Pago Requerido (402)

Se devuelve cuando el saldo de crédito del espacio de trabajo no puede cubrir la operación solicitada.

CódigoDescripción
INSUFFICIENT_CREDITSNo hay suficientes créditos para completar la operación

Limitación de Velocidad (429)

Se devuelve cuando la solicitud excede los límites de velocidad. Normalmente incluye el encabezado Retry-After; si falta, use retroceso exponencial en lugar de asumir que no hay espera.

Límites de Velocidad de la API

CódigoDescripción
RATE_LIMIT_EXCEEDEDLímite de velocidad general de la API excedido
IP_RATE_LIMIT_EXCEEDEDLímite de velocidad basado en IP excedido
SUPPORT_RATE_LIMITEDLímite de velocidad de la API de soporte excedido
TOO_MANY_LOGIN_ATTEMPTSDemasiados intentos de inicio de sesión fallidos, bloqueo temporal

Límites de Velocidad de Envío de Correo Electrónico

CódigoDescripción
DAILY_LIMIT_EXCEEDEDLímite diario de envío de correo electrónico excedido
WARMUP_LIMIT_EXCEEDEDSe alcanzó el límite diario de arranque de envíos de la cuenta; se restablece a las 00:00 UTC (véase Calentamiento de IP)
PAYMENT_DAILY_LIMIT_EXCEEDEDLímite diario alcanzado en una cuenta con pago vencido

Capacidad de la plataforma (429)

Estos rechazos significan que en este momento es la plataforma, y no la cuota de su cuenta, la que limita los envíos nuevos. Cada uno es un 429 con cabecera Retry-After, no se puso nada en cola y es seguro reintentar la misma solicitud. Por SMTP son un 421 Try again later: <message> transitorio. El message es el texto en inglés que devuelve la API.

Códigomessage (tal como se devuelve)Cuándo reintentar
WARMUP_POOL_BUDGET_EXCEEDED"Sending is temporarily paused for today. It resumes automatically at 00:00 UTC; no action is needed."Tras Retry-After (próximas 00:00 UTC)
WARMUP_POOL_BUDGET_EXCEEDED"Sending is briefly delayed. Please retry in a few minutes." (mismo código, cuando la capacidad de la plataforma no puede verificarse un momento)Tras el Retry-After corto
WARMUP_POOL_EMPTY"Sending is temporarily paused. It resumes automatically; no action is needed."Tras Retry-After; no requiere acción
PLATFORM_DAILY_CAPACITY_REACHED"Platform sending capacity for today is fully booked. This is a temporary platform-wide limit, not your account quota, and it resets at midnight UTC."Tras Retry-After (próximas 00:00 UTC)
PLATFORM_CAPACITY_PROTECTION"New sending is briefly paused to protect platform capacity. Mail already accepted is not affected. This is transient and clears on its own; retry shortly."Tras el Retry-After corto
PROBATION_CAP_REACHED"New accounts can send to N recipients per rolling 24 hours until our team has reviewed the account. Capacity returns as earlier sends age out of the 24-hour window; contact support to request a review." (o «…cannot be verified right now, so sending is briefly paused…» ante una interrupción breve)Tras Retry-After, o solicite una revisión al soporte

Los correos ya aceptados nunca se ven afectados. Trátelos como cualquier otro 429: espere, respete Retry-After y reintente. No hay nada que configurar ni ampliar.

Límites de Stream

transactional_recipient_limit_exceeded y marketing_recipient_limit_exceeded son 400, no 429: vea la sección Validación de Solicitud arriba. BATCH_NOT_ALLOWED_FOR_TRANSACTIONAL también es 400: un envío por lotes no está permitido en una credencial transaccional independientemente de los límites de velocidad.

Cuota y Facturación

CódigoDescripción
QUOTA_EXCEEDEDCuota de uso excedida para el período de facturación actual

Motor de Políticas

CódigoDescripción
SENDING_BLOCKEDEl motor de políticas de tasa/calentamiento bloqueó este envío: nivel de verificación, la lista de permitidos de sandbox, una restricción de cuenta, o un pico de volumen inusual
MARKETING_PAUSEDLos correos electrónicos de marketing están pausados para este espacio de trabajo

Errores del Servidor (5xx)

CódigoEstado HTTPDescripción
INTERNAL_ERROR500Error interno inesperado del servidor
AUTHENTICATION_FAILED500La validación de la clave API falló internamente (no es un inicio de sesión incorrecto, reintente)
TIMEOUT504La operación agotó el tiempo de espera
SERVICE_UNAVAILABLE503El servicio no está disponible temporalmente
DATABASE_ERROR503Ocurrió un error de base de datos

Los errores del servidor (5xx) son transitorios. Reintente la solicitud con retroceso exponencial. Si el error persiste, consulte la página de estado de MailLand o contacte a soporte.

Manejo de Errores

Estrategia de Reintentos

Estado HTTP¿Reintentar?Estrategia
400NoCorrija la solicitud e inténtelo de nuevo
401NoVerifique las credenciales o renueve su token
403NoVerifique los permisos o actualice su plan
404NoVerifique el ID del recurso
409NoResuelva el conflicto
422NoCorrija el problema de lógica de negocio (por ejemplo, verifique el dominio)
429SíEspere la duración de Retry-After, luego reintente
500SíReintente con retroceso exponencial (máx. 3 reintentos)
503SíReintente con retroceso exponencial (máx. 5 reintentos)

Lectura de Encabezados de Límite de Velocidad

La mayoría de las respuestas incluyen X-RateLimit-Limit y X-RateLimit-Remaining:

EncabezadoDescripción
X-RateLimit-LimitMáximo de solicitudes permitidas en la ventana actual
X-RateLimit-RemainingSolicitudes restantes en la ventana actual

Un 429 basado en IP añade además:

EncabezadoDescripción
X-RateLimit-ResetMarca de tiempo UTC en ISO-8601 cuando se restablece la ventana actual (solo respuestas de límite de IP)
Retry-AfterSegundos a esperar antes de reintentar

Próximos Pasos

En esta página