Errores y Validación

Entiende las respuestas de error y las reglas de validación.


Qué significa la respuesta

La carga pasa por dos etapas, y solo la primera contesta en la misma llamada:

  1. Validación del archivo (inmediata). Fibek revisa el archivo fila por fila. Si algo no cumple, responde success: false con el detalle por fila y no se procesa nada.
  2. Procesamiento (asíncrono). Si el archivo pasa la validación, queda en cola y se procesa después. Lo que ocurra ahí —filas descartadas porque el cliente o la factura no existen, deduplicaciones, o un fallo del archivo completo— no aparece en la respuesta.

Es decir: success: true significa “el archivo fue aceptado y quedó en cola”, no “todos los datos quedaron cargados”. Cada página de entidad indica qué se descarta en la segunda etapa.

Formato de Respuesta

Todos los endpoints devuelven la misma estructura de respuesta.

Respuesta Exitosa

Código HTTP 201.

{
  "success": true,
  "warnings": {
    "customers": ["File does not have .csv extension"]
  }
}

warnings es opcional y no impide la carga: avisa de cosas como una extensión distinta de .csv, un archivo con encabezado y sin filas, un tipo de contenido distinto de text/csv, un document_type desconocido o una factura CASH abierta con saldo pendiente.

Respuesta de Error de Validación

También llega con código 201: el resultado se lee en success.

{
  "success": false,
  "errors": {
    "customers": [
      {
        "rowIndex": 2,
        "messages": [
          "Field \"nit\" is required.",
          "Field \"email\" must have a valid email format."
        ]
      }
    ]
  }
}

rowIndex cuenta las líneas del archivo incluyendo el encabezado, así que la primera fila de datos es la 2. Un rowIndex en 0 corresponde a un error del archivo completo y no de una fila.

Códigos de Estado HTTP

CódigoNombreDescripciónAcción
201CreadoSolicitud procesada — el resultado está en el campo successVerificar success y, si viene, errors
400Solicitud IncorrectaFalta el archivo en el formularioEnviar el archivo en el campo correcto (por ejemplo customersFile)
401No AutorizadoAPI Key inválida, revocada o ausenteVerificar la API Key o crear una nueva
403ProhibidoLa API Key no tiene permiso para cargar integracionesUsar una API Key creada en Integración por API
404No EncontradoLa URL del endpoint no existeVerificar la ruta y la URL base
500Error Interno del ServidorError inesperadoReintentar más tarde

Reglas de Validación Comunes

ReglaDescripción
Campos requeridosEl campo debe venir y no puede estar vacío
Nombres de columnaExactos y en minúsculas; los espacios alrededor del nombre se ignoran, pero no se aceptan otras variantes
Formato de emailEstructura de email válida
Formato de fechaYYYY-MM-DD; otros formatos se rechazan. Una celda vacía se acepta salvo donde se indique lo contrario
NúmerosPunto como separador decimal y sin separador de miles (1000000.00, no 1.000.000,00)
Valores booleanosSolo 1 o 0
CodificaciónUTF-8

IDs sin ceros a la izquierda. Al procesar el archivo, un id que sea solo números se interpreta como número: 00123 queda como 123. Si el mismo cliente o factura viene escrito distinto en dos archivos, las filas no se cruzan y se descartan sin aviso. Use ids sin ceros a la izquierda o con algún carácter no numérico.