Saltar al contenido principal

Bulk create truckers from CSV

POST 

/company/truckers/bulk/

Crea múltiples transportistas de forma masiva mediante importación de archivo CSV.

Flujo de importación:

  1. Usuario sube archivo CSV con datos de transportistas
  2. Sistema valida headers obligatorios
  3. Procesa cada línea validando datos
  4. Verifica unicidad de email, taxid y teléfono
  5. Genera contraseñas automáticas si no se proporcionan
  6. Crea transportistas exitosos
  7. Devuelve reporte con éxitos y errores

Validaciones por línea:

  • Email: Único en sistema y formato válido
  • Taxid: Único y formato válido según país
  • Phone: Formato válido según regex
  • Default_vehicle: Existe en la compañía (por matrícula)
  • Role: Valor válido (se normaliza automáticamente)

Headers obligatorios CSV:

  • name, lastname, email, phone, taxid
  • Opcional: default_vehicle (matrícula del vehículo)

Generación de credenciales:

  • Si no se proporciona password: Se genera automáticamente
  • Se envía email de bienvenida con credenciales
  • Email personalizado con nombre de la compañía

Formato del CSV:

  • Separador: coma (,)
  • Codificación: UTF-8
  • Primera línea: headers
  • Ejemplo: name,lastname,email,phone,taxid,default_vehicle

Respuesta detallada:

  • ok: Array de transportistas creados exitosamente
  • ko: Array de errores con línea, razón y datos

Estructura de errores:

{
"line": 5,
"reason": "EMAIL_ALREADY_IN_USE",
"data": {...},
"details": "john@example.com"
}

Códigos de error comunes:

  • MIN_HEADERS: Faltan headers obligatorios
  • EMAIL_ALREADY_IN_USE: Email duplicado
  • TAXID_ALREADY_IN_USE: Taxid duplicado
  • EMAIL_NOT_VALID: Formato de email inválido
  • TAXID_NOT_VALID: Formato de taxid inválido
  • PHONE_NOT_VALID: Formato de teléfono inválido
  • CANNOT_SAVE_TRUCKER: Error al guardar en BD

Límites:

  • Verificación de plan de suscripción activo
  • Límite de transportistas según plan

Respuestas HTTP:

  • 200 OK: Proceso completado (revisa ok/ko en body)
  • 400 Bad Request: Headers inválidos o datos vacíos
  • 401 Unauthorized: Compañía no encontrada
  • 404 Not Found: Archivo CSV no encontrado

Request

Responses

Proceso de importación completado