Catálogos Maestros
Vehículos y Tipos

Sincronización de Vehículos y Tipos

En esta sección se documentan los endpoints para sincronizar el catálogo de vehículos de la flota y sus clasificaciones por tipo, las cuales dictan las reglas base de capacidad para las rutas.


1. Tipos de Vehículo

POST/transportes/sync/vehicles/vehicle-types

Crea o actualiza tipos de vehículo y su capacidad base de carga.

Caso de uso

  • Crear tipos de vehículos desde el sistema externo.
  • Actualizar capacidad base de un tipo de vehículo.

Campos del Payload

Requeridos

CampoTipoDescripción
source_idstringID único en el sistema de origen
source_systemstringSistema externo (ej. external_erp)
vehicle_type_descriptionstringNombre del tipo (ej. Camion 3.5T)

Opcionales

CampoTipoDescripción
is_activebooleanEstado activo
vehicle_type_idintID interno del tipo
min_weightnumberPeso mínimo en kg
max_weightnumberPeso máximo en kg
max_volumenumberVolumen máximo en m³
max_lengthnumberLargo máximo en metros

Ejemplos

Request

{
  "source_id": "fleet.vehicle.model.category:3",
  "source_system": "external_erp",
  "vehicle_type_description": "Camion 3.5T",
  "min_weight": 0,
  "max_weight": 3500,
  "max_volume": 18,
  "max_length": 6
}

Response

{
  "ok": true,
  "code": "SYNC_OK",
  "message": "Sync processed successfully.",
  "data": 3,
  "meta": {
    "route": "/transportes/sync/vehicles/vehicle-types",
    "method": "PostVehicleTypeSync",
    "operation": "upsert",
    "upsert_action": "created",
    "timestamp": "2026-04-07T12:00:00.000Z"
  }
}

2. Vehículos

POST/transportes/sync/vehicles

Crea o actualiza vehículos. Permite configurar excepciones de capacidad sobre el tipo base.

Caso de uso

  • Crear vehículos desde flota u el sistema externo.
  • Definir capacidad adicional por vehículo.
  • Definir categorías o zonas que el vehículo puede cubrir.

Dependencias

  • vehicle_type_source_id requiere que el tipo de vehículo exista.
  • hub_source_id, driver_source_id y license_type_source_id requieren sus recursos correspondientes previamente sincronizados.

Campos del Payload

Requeridos

CampoTipoDescripción
source_idstringID único en el sistema de origen
source_systemstringSistema externo
vehicle_type_id / vehicle_type_source_idint/stringTipo de vehículo
platestringPlaca del vehículo

Opcionales

CampoTipoDescripción
is_activebooleanEstado activo
vehicle_idintID interno
vehicle_type_modelstringModelo del tipo
driver_id / driver_source_idint/stringChofer asignado
driver_modelstringModelo del chofer
vehicle_descriptionstringDescripción del vehículo
is_enabledbooleanHabilitado para operar
extra_weightnumberPeso adicional permitido (kg)
extra_volumenumberVolumen adicional (m³)
extra_lengthnumberLargo adicional (metros)
categoriesstring[] / stringCategorías o zonas habilitadas
hub_id / hub_source_idint/stringSede asignada
hub_modelstringModelo del hub
license_type_id / license_type_source_idint/stringTipo de licencia requerida
license_type_modelstringModelo del tipo de licencia

Ejemplos

Request

{
  "source_id": "fleet.vehicle:12",
  "source_system": "external_erp",
  "vehicle_type_source_id": "fleet.vehicle.model.category:3",
  "vehicle_type_model": "fleet.vehicle.model.category",
  "plate": "ABC123",
  "vehicle_description": "Camion especial",
  "hub_source_id": "stock.warehouse:1",
  "driver_source_id": "hr.employee:401",
  "extra_weight": 250,
  "extra_volume": 2,
  "extra_length": 0,
  "categories": ["PVC", "GAM"],
  "is_enabled": true
}

Response

{
  "ok": true,
  "code": "SYNC_OK",
  "message": "Sync processed successfully.",
  "data": [
    {
      "vehicle_id": 12
    }
  ],
  "meta": {
    "route": "/transportes/sync/vehicles",
    "method": "PostVehicleSync",
    "operation": "upsert",
    "upsert_action": "updated",
    "timestamp": "2026-04-07T12:00:00.000Z"
  }
}

Reglas de compatibilidad vehículo ↔ producto

Definen qué puede o no puede cargar un vehículo (o un tipo de vehículo). Se usan al armar la guía: un producto con una regla deny no sube a ese camión.

POST /transportes/sync/vehicle-compatibility-rules
Authorization: Bearer YOUR_SYNC_TOKEN_HERE
Content-Type: application/json
{
  "source_system": "exactus",
  "scope_type": "vehicle_type",
  "vehicle_type_source_id": "TIPO-FURGON",
  "rule_mode": "deny",
  "target_type": "category",
  "category": "INFLAMABLES",
  "is_active": true
}
CampoTipoRequeridoDescripción
source_systemstring (≤30)síSistema de origen de las referencias.
scope_typevehicle | vehicle_typesíA qué aplica la regla.
vehicle_source_idstring (≤128)si scope_type = vehicleVehículo, por su source_id.
vehicle_type_source_idstring (≤128)si scope_type = vehicle_typeTipo de vehículo, por su source_id.
rule_modeallow | denysídeny bloquea; allow habilita.
target_typeproduct | categorysíSobre qué aplica.
product_source_idstring (≤128)si target_type = productProducto, por su source_id.
categorystring (≤100)si target_type = categoryCategoría de producto.
is_activebooleannoPor defecto true. Mandarlo en false desactiva la regla sin borrarla.

El vehículo, el tipo de vehículo o el producto referenciados tienen que estar sincronizados antes: si no existen, la respuesta es SYNC_MISSING_DEPENDENCIES.