Iniciar sesión Crear cuenta
Conceptos

Errores

Todas las respuestas de error tienen el mismo formato, con un nombre estable para que lo trates en tu código.

#Formato

Las respuestas con estado 2xx salieron bien. En caso de error, el cuerpo es siempre un JSON con tres campos:

422Respuesta de error
{
  "statusCode": 422,
  "name": "validation_error",
  "message": "Missing `subject` field."
}
CampoDescripción
statusCodeEl mismo estado HTTP de la respuesta.
nameCódigo estable del error, en inglés. Usa este campo en tu código.
messageExplicación para personas, en inglés (o en portugués, con Accept-Language: pt-BR). Puede cambiar de texto; no la compares. Consulta Idioma de los mensajes.

Algunos errores traen un campo extra: errors. En el envío público de formularios, es un objeto con los mensajes de cada campo; en las automatizaciones, una lista con cada problema de la definición (step_id y message).

#Códigos de error

EstadoNombreCuándo ocurreQué hacer
400invalid_idempotency_keyLa Idempotency-Key está vacía o supera los 256 caracteres.Corrige la clave.
401missing_api_keyFalta el encabezado Authorization.Envía Authorization: Bearer ps_….
401restricted_api_keyUna clave solo de envío llamó a un endpoint que exige acceso total (solo envía, lee GET /emails/{id} de los correos electrónicos que envió y lee GET /usage).Usa una clave de acceso total.
403invalid_api_keyLa clave no existe o fue eliminada.Revisa la clave o crea otra.
403restricted_api_keyLa clave está restringida a otro dominio.Usa el dominio de la clave u otra clave.
403validation_errorEl dominio del remitente no está verificado, no tiene envío activo o no es de tu equipo.Verifica el dominio.
403sending_pausedLos envíos del equipo se pausaron por una tasa alta de rebotes o quejas. Vale para POST /emails, el lote, el SMTP, las campañas y las direcciones de prueba.Pide la revisión en el panel o por el formulario de contacto.
403plan_limit_reachedEl plan no permite más elementos (dominios, buzones de entrada, plantillas, claves de API, webhooks, contactos, segmentos, temas, formularios, automatizaciones, campañas al mes…) o no incluye el recurso pedido (envío en lote, programación, SMTP, direcciones de prueba, exportaciones, adjuntos, MCP…). Consulta la lista de recursos.Cambia de plan o quita elementos.
403paused_by_planEl elemento (dominio, clave de API, webhook, plantilla, layout, buzón de entrada, automatización, segmento, tema o formulario) superó el límite del plan actual y se pausó: se puede leer y eliminar, pero no modificar ni usar. Una clave de API pausada responde esto en cada solicitud.Cambia de plan o elimina otros elementos: el elemento vuelve a funcionar solo.
403team_suspendedLa cuenta fue suspendida por la plataforma que la gestiona.Habla con esa plataforma.
403origin_not_allowedUn formulario recibió un envío desde un sitio que no está en allowed_domains.Incluye el dominio en el formulario.
404not_foundEl recurso no existe, es de otro equipo o la ruta no existe.Revisa el ID y la ruta.
405method_not_allowedLa ruta existe, pero no con ese método.Revisa el método.
409invalid_idempotent_requestLa misma Idempotency-Key se usó con otro cuerpo.Usa una clave nueva por envío.
409concurrent_idempotent_requestsUna solicitud con la misma clave sigue en curso.Espera y vuelve a intentarlo.
409segment_in_useEl segmento recibe los contactos de un formulario y no se puede eliminar.Cambia antes el segmento del formulario.
409tag_in_useLa etiqueta la usan automatizaciones y no se puede eliminar.Quita antes la etiqueta de las automatizaciones.
409merge_in_progressOtra fusión de segmentos sigue en marcha.Espera a que termine y vuelve a intentarlo.
409invalid_merge_statusSolo se puede repetir una fusión que falló.Revisa el status de la fusión.
409invalid_segment_typeEl segmento ya es estático y no se puede convertir.Nada que hacer.
409invalid_broadcast_statusLa campaña (/broadcasts) no está en un estado que permita la acción: editar o eliminar una que ya salió, enviar una cancelada, cancelar un borrador.Revisa el status de la campaña.
410form_closedUn envío JSON llegó a un formulario que ya no recibe respuestas: pasó la fecha de cierre (closes_at), alcanzó el límite de envíos (max_submissions) o se pausó con un mensaje de cierre. El message es el mensaje de cierre del formulario.Muestra el mensaje a la persona; no lo vuelvas a intentar.
422validation_errorAlgún campo no es válido. El mensaje indica cuál.Corrige el cuerpo; no lo repitas igual.
422email_suppressedLa dirección está en la lista de supresión y por eso no se convierte en contacto.Quita antes la dirección de la lista, si corresponde.
422ai_refusedLa IA rechazó la solicitud.Reescribe la solicitud.
429rate_limit_exceededSe superó el límite de solicitudes por segundo del plan. También vale cuando ya hay demasiadas exportaciones, importaciones de contactos o verificaciones de correos en curso (el mensaje dice cuáles), y en los envíos a un formulario público (5 por minuto por IP).Espera Retry-After segundos, o a que termine lo que está en curso.
429daily_quota_exceededLa cuota diaria de envíos se agotó (se renueva a las 00:00 UTC): el límite diario del plan o el tope de la reputación de la cuenta, el que sea menor. Cuando es la reputación la que limita, el message indica el nivel y el tope.Espera. El límite del plan cambia con el plan; el tope de la reputación crece con cada día de envíos sin rebotes ni quejas.
429monthly_quota_exceededLa cuota mensual de envíos se agotó (y la reserva del Adicional de envíos, si el equipo tiene una).Cambia de plan, activa el envío por encima de la cuota o, cuando el plan lo ofrece, compra el Adicional de envíos.
429verification_credits_exhaustedLos créditos de verificación de correos se agotaron (o no alcanzan para la lista).Espera al día 1, compra el Adicional de validación o cambia de plan.
429ai_credits_exhaustedLos créditos de IA del mes se agotaron.Espera al día 1.º o cambia de plan.
500internal_server_errorError inesperado en Postal.Vuelve a intentarlo con una espera creciente.
502crm_request_failedEl CRM conectado rechazó la llamada de Postal o no respondió (prueba de la conexión, campos, etapas o sincronización).Revisa el token y el CRM, y vuelve a intentarlo.
502ai_errorLa IA no devolvió una respuesta válida.Vuelve a intentarlo.
503ai_unavailableEl servicio de IA está ocupado.Vuelve a intentarlo en unos instantes.
503ai_not_configuredEl asistente de IA no está disponible.Inténtalo más tarde.
4xx/5xxapplication_errorOtro error HTTP que no tiene nombre propio. El statusCode y el message dicen qué ocurrió.Sigue el estado: 4xx, corrige la solicitud; 5xx, vuelve a intentarlo.

#Cuándo reintentar

  • Vuelve a intentarlo en 429 rate_limit_exceeded, 409 concurrent_idempotent_requests, 5xx y fallos de red (timeout, conexión rechazada). Espera un poco más en cada intento (1 s, 2 s, 4 s…) y respeta el Retry-After cuando llegue.
  • No repitas igual en 400, 401, 403, 404, 410 y 422: la respuesta será la misma hasta que corrijas la solicitud o la configuración.
  • En los envíos, manda siempre una Idempotency-Key: si el primer intento llegó a salir bien, la repetición devuelve la misma respuesta sin enviar de nuevo.