Referencia API WHMS

Referencia completa de la API del Sistema de Gestión de Almacén — 37 endpoints cubriendo almacenes, zonas, slots, activos, eventos, dashboard y planos de planta.

Última actualización: 2025-02-18

Referencia API WHMS

El Sistema de Gestión de Almacén expone 37 endpoints REST para gestionar almacenes, zonas, slots, activos, eventos de colocación y analíticas de dashboard.

certexi.com/app/dashboard/kpi
Loading interactive demo...

KPIs del dashboard impulsados por la API WHMS — utilización, rendimiento, incidentes y unidades activas.

Autenticación

Todos los endpoints WHMS requieren autenticación. Consulta la Referencia de API REST para detalles de autenticación.

Almacenes

GET/api/whms/warehouses

Listar todos los almacenes accesibles al usuario autenticado

Retorna almacenes con conteo de zonas, slots totales y utilización general.

{
  "warehouses": [
    {
      "id": 1,
      "name": "Monterrey Hub",
      "location": { "lat": 25.6866, "lng": -100.3161 },
      "timezone": "America/Mexico_City",
      "zones": 5,
      "totalSlots": 120,
      "utilization": 72
    }
  ]
}
POST/api/whms/warehouses

Crear un nuevo almacén

{
  "name": "Monterrey Hub",
  "location": { "lat": 25.6866, "lng": -100.3161 },
  "timezone": "America/Mexico_City",
  "floor_plan_image": "base64_or_url"
}
GET/api/whms/warehouses/:id

Obtener detalles del almacén con resumen de zonas

Retorna metadatos completos del almacén incluyendo todas las zonas, conteo de slots y desglose de utilización.

PUT/api/whms/warehouses/:id

Actualizar metadatos del almacén

Actualizar nombre, ubicación, zona horaria o imagen del plano de planta.

Zonas

GET/api/whms/zones

Listar todas las zonas con datos de ocupación

Retorna zonas con conteo de slots, slots ocupados y utilización a nivel de zona.

{
  "zones": [
    {
      "id": 1,
      "name": "Zone A",
      "zone_type": "storage",
      "color": "#3b82f6",
      "warehouseId": 1,
      "totalSlots": 40,
      "occupiedSlots": 29,
      "utilization": 72.5
    }
  ]
}
POST/api/whms/zones

Crear una zona

{
  "name": "Zone A",
  "zone_type": "storage",
  "color": "#3b82f6",
  "warehouseId": 1
}
GET/api/whms/zones/:id

Obtener detalles de la zona

Retorna metadatos de la zona, todos los slots y analíticas a nivel de zona.

PUT/api/whms/zones/:id

Actualizar metadatos de la zona

Actualizar nombre de la zona, tipo, color o asignación de almacén.

GET/api/whms/zones/:id/slots

Listar todos los slots en una zona

Retorna slots con estado de ocupación calculado desde el registro de eventos.

GET/api/whms/zones/:id/analytics

Obtener analíticas de la zona

Retorna datos de series temporales para utilización de zona, eventos por hora y conteo de incidentes.

Slots

GET/api/whms/slots

Listar todos los slots

Soporta filtrado por zone, status (empty, occupied, verified) y paginación.

POST/api/whms/slots

Crear un slot

{
  "slot_id": "A-01-01",
  "zone": "A",
  "floor_plan_polygon": [
    { "x": 10, "y": 20 },
    { "x": 50, "y": 20 },
    { "x": 50, "y": 60 },
    { "x": 10, "y": 60 }
  ],
  "constraints": {
    "max_weight_kg": 5000,
    "max_height_m": 4.0,
    "allowed_types": ["pallet", "box"]
  }
}
GET/api/whms/slots/:id

Obtener slot con ocupación calculada

Retorna metadatos del slot y estado derivado: isOccupied, assetBarcode, isVerified, lastEvent.

PUT/api/whms/slots/:id

Actualizar metadatos del slot

Actualizar polígono, restricciones o asignación de zona. No afecta el registro de eventos.

GET/api/whms/slots/:id/events

Obtener historial de eventos de un slot

Retorna eventos cronológicos para un slot específico. Soporta paginación y filtrado por fecha.

Activos

GET/api/whms/assets

Listar todos los activos registrados

Retorna activos con tipo, metadatos y ubicación actual (derivada de eventos).

POST/api/whms/assets

Registrar un nuevo activo

{
  "asset_id": "PLT-2024-00042",
  "type": "pallet",
  "weight_kg": 1250,
  "dimensions": { "length": 120, "width": 100, "height": 15 }
}
GET/api/whms/assets/:barcode

Obtener detalles del activo

Retorna metadatos del activo, ubicación actual e historial de colocación.

GET/api/whms/assets/:barcode/location

Obtener ubicación actual del activo

Retorna el slot actual donde el activo está colocado, derivado del registro de eventos.

GET/api/whms/assets/:barcode/history

Obtener historial de movimientos del activo

Lista cronológica de todos los eventos de colocación y retiro para este activo.

Eventos de Colocación

🚨

Registro Inmutable

El endpoint de eventos es solo-adición. Los eventos no pueden ser actualizados ni eliminados. Todas las correcciones deben registrarse como nuevos eventos.

POST/api/whms/events

Crear un evento de colocación

{
  "event_type": "PLACED",
  "slot_id": 5,
  "asset_barcode": "PLT-2024-00042",
  "operator": "op-123",
  "photo_url": "https://cloud.example.com/evidence/photo.jpg",
  "scale_weight_kg": 1250,
  "cctv_clip_url": "https://cloud.example.com/clips/cam3-14h32.mp4",
  "work_order_ref": "WO-2025-001"
}

La respuesta incluye el evidence_hash SHA-256 del paquete de evidencias.

GET/api/whms/events

Consultar historial de eventos

Soporta filtrado por slot_id, asset_barcode, event_type, operator, rango de fechas y paginación vía limit/offset.

GET/api/whms/events/:id

Obtener detalles del evento

Retorna el registro completo del evento incluyendo URLs de evidencia, hash y clips CCTV vinculados.

GET/api/whms/events/stream

Transmitir eventos para visualización en mapa

Retorna eventos dentro de una ventana temporal y límites de viewport. Selecciona automáticamente el modo de respuesta (crudo, agrupado o agregado) basándose en la densidad de datos.

Dashboard

GET/api/whms/dashboard/utilization

Estadísticas de utilización por zona

{
  "totalSlots": 200,
  "occupiedSlots": 142,
  "utilizationPercent": 71,
  "pendingVerifications": 8,
  "byZone": [
    { "zone": "A", "occupied": 45, "total": 60, "utilization": 75 }
  ]
}
GET/api/whms/dashboard/throughput

Métricas de rendimiento

Retorna unidades procesadas por hora/día/semana con datos de tendencia.

GET/api/whms/dashboard/incidents

Resumen de incidentes activos

Retorna incidentes abiertos agrupados por severidad y categoría.

GET/api/whms/dashboard/kpis

Datos de KPI agregados

Endpoint combinado que retorna utilización, rendimiento, incidentes y unidades de transporte activas.

Planos de Planta

GET/api/whms/floor-plans

Listar planos de planta

Retorna todas las imágenes de planos de planta con conteo de slots por plano.

POST/api/whms/floor-plans

Subir una imagen de plano de planta

Acepta multipart/form-data con la imagen del plano y metadatos.

GET/api/whms/floor-plans/:id

Obtener plano de planta con polígonos de slots

Retorna la URL de la imagen del plano y todas las definiciones de polígonos de slots asociados.

Unidades de Transporte

GET/api/whms/transport-units

Listar unidades de transporte

Soporta filtrado por status, stage, operator y priority.

GET/api/whms/transport-units/:id

Obtener detalles de unidad de transporte

Retorna el registro completo incluyendo historial de flujo de trabajo, elementos de evidencia y datos de peso.

POST/api/whms/transport-units

Crear una unidad de transporte

{
  "type": "container",
  "operation": "import",
  "priority": "normal",
  "seal_number": "SEAL-2025-00042"
}
POST/api/whms/transport-units/:id/advance

Avanzar a la siguiente etapa del flujo de trabajo

Valida que todos los requisitos de la etapa se cumplan antes de avanzar. Retorna errores de validación si está incompleto.

Relacionado