Skip to content

Bad Request ​

Estado HTTP: 400 Bad Request

La solicitud es sintácticamente válida pero no puede procesarse en el contexto actual. Cada error 400 lleva un code específico — úsalo para manejar cada caso de forma programática sin analizar la cadena de detail.

Códigos ​

CERTIFICATE_INVALID ​

El archivo P12 subido no pudo ser analizado. El archivo puede estar corrupto, truncado, o no ser un archivo PKCS#12 válido.

Qué hacer: Exporta un P12 nuevo desde tu autoridad certificadora y vuelve a subirlo.

CERTIFICATE_PASSWORD_INVALID ​

La contraseña proporcionada para el archivo P12 es incorrecta.

Qué hacer: Verifica la contraseña y vuelve a intentarlo. Ten en cuenta que las contraseñas distinguen entre mayúsculas y minúsculas.

CERTIFICATE_KEY_NOT_FOUND ​

El archivo P12 fue analizado correctamente pero no contiene un bag de llave de firma reconocible. La API soporta los formatos de certificado de BANCO CENTRAL y SECURITY DATA.

Qué hacer: Asegúrate de que el P12 fue exportado desde una CA compatible con la llave privada incluida.

CERTIFICATE_EXPIRED ​

La fecha notAfter del certificado ya pasó. El campo detail incluye la fecha exacta de expiración.

Qué hacer: Renueva el certificado con tu CA, luego sube el nuevo P12 al emisor. Todos los comprobantes nuevos usarán el certificado actualizado de inmediato.

ISSUER_ID_REQUIRED ​

Falta el encabezado de solicitud X-Issuer-Id. Toda solicitud de creación y gestión de comprobantes debe especificar a qué emisor apunta.

Qué hacer: Agrega X-Issuer-Id: <issuer-id> a la solicitud. Obtén los IDs de los emisores de tu tenant con GET /v1/issuers.

ISSUER_ID_INVALID ​

El valor del encabezado X-Issuer-Id no es un UUID válido (p. ej. abc, 123).

Qué hacer: Proporciona el UUID del emisor devuelto por GET /v1/issuers.

INVALID_OR_EXPIRED_TOKEN ​

El token de verificación de correo en el parámetro de consulta de la URL (?token=…) es inválido o ha expirado. Los tokens expiran después de 24 horas (configurable vía VERIFICATION_TOKEN_TTL_HOURS).

Qué hacer: Solicita un token nuevo desde la aplicación web de Comprobify.

DOCUMENT_TYPE_NOT_ENABLED ​

El campo documentType en el cuerpo de la solicitud especifica un tipo de comprobante que actualmente no está activo para este emisor. El campo detail lista los tipos permitidos.

Qué hacer: Habilita el tipo de comprobante vía POST /v1/issuers/:id/document-types, o usa uno de los tipos permitidos listados en detail.

DOCUMENT_TYPE_NOT_SUPPORTED ​

El código de tipo de comprobante no está registrado en la API en absoluto (a diferencia de simplemente estar inactivo para este emisor).

Qué hacer: Revisa los tipos soportados con GET /v1/issuers/:id/document-types. Solo los tipos registrados pueden habilitarse.

INVALID_STATE_TRANSITION ​

La operación solicitada no es válida para el estado actual del comprobante. El campo detail nombra la transición intentada.

Qué hacer: Revisa el estado actual del comprobante con Get Document y realiza únicamente las operaciones permitidas para ese estado:

EstadoOperaciones permitidas
SIGNEDEnviar al SRI
RECEIVEDConsultar autorización
RETURNEDReconstruir
NOT_AUTHORIZEDReconstruir
AUTHORIZEDDescargar RIDE, descargar XML, reintentar correo

DOCUMENT_NOT_AUTHORIZED ​

La operación requiere que el comprobante tenga estado AUTHORIZED. Esto aplica a la generación del RIDE (GET /:key/ride) y a los reintentos manuales de correo.

Qué hacer: Completa primero el ciclo de vida completo del comprobante (enviar → autorizar).

SELF_REVOCATION_FORBIDDEN ​

No puedes revocar la API key que autenticó la solicitud actual.

Qué hacer: Usa una API key activa distinta para revocar esta. Lista tus llaves con GET /v1/keys.

INVALID_FILE_UPLOAD ​

Un archivo subido (p. ej. un certificado P12 o el logo del emisor) falta, es del tipo MIME incorrecto, o excede el límite de tamaño del campo. El campo detail nombra la restricción específica que falló — por ejemplo, un logo de más de 500 KB en PATCH /v1/issuers/:id/logo.

Qué hacer: Verifica el archivo contra los límites documentados en el endpoint (p. ej. Upload Issuer Logo) y vuelve a subirlo.

LAST_DOCUMENT_TYPE_CANNOT_BE_REMOVED ​

DELETE /v1/issuers/:id/document-types/:code fue llamado sobre el último tipo de comprobante activo del emisor. Un emisor siempre debe poder emitir al menos un tipo de comprobante.

Qué hacer: Habilita otro tipo de comprobante primero vía POST /v1/issuers/:id/document-types si necesitas remover este.

BAD_REQUEST (respaldo) ​

Una solicitud incorrecta genérica no cubierta por un código específico de los anteriores. Lee el campo detail para conocer la razón.

Ejemplo de respuesta ​

json
{
  "type":     "https://docs.comprobify.com/errors/bad-request",
  "title":    "Bad Request",
  "status":   400,
  "code":     "CERTIFICATE_EXPIRED",
  "detail":   "El certificado expiró el 2025-03-15. Reemplaza el archivo P12 de este emisor antes de crear comprobantes.",
  "instance": "/v1/documents"
}

Documentación de la API de Comprobify — API v1.3.1