Catálogos Maestros
Sedes y Almacenes

Sincronización de Sedes y Almacenes

En esta sección se documentan los endpoints para sincronizar sedes (hubs) y opcionalmente sus almacenes internos.


1. Sedes (Hubs)

POST/transportes/sync/hubs

Crea o actualiza sedes y opcionalmente sus almacenes internos.

Caso de uso

  • Crear sede origen/destino para guías.
  • Sincronizar almacenes de una sede.
  • Configurar políticas de preparación WMS por sede.

Campos del Payload

Requeridos

CampoTipoDescripción
source_idstringID único en el sistema de origen
source_systemstringSistema externo (ej. external_erp)
namestringNombre de la sede

Opcionales

CampoTipoDescripción
is_activebooleanEstado activo
hub_idintID interno de la sede
phonestringTeléfono de contacto
addressstringDirección
address_extrastringInformación adicional de dirección
formatted_addressstringDirección formateada
is_uber_availablebooleanDisponible para despacho por Uber
pickup_notesstringNotas de recolección
return_notesstringNotas de devolución
latitudenumberLatitud
longitudenumberLongitud
printer_namestringImpresora asignada
is_orders_visiblebooleanÓrdenes visibles en la app
requires_wms_ready_for_dispatchbooleanRequiere confirmación WMS para despachar
print_folder_namestringCarpeta de impresión
warehousesobject / arrayAlmacenes de la sede (ver campos abajo)

Campos de warehouses[]

Requeridos

CampoTipoDescripción
warehouse_codestringCódigo único del almacén dentro de la sede

Opcionales

CampoTipoDescripción
source_idstringID externo del almacén en el sistema de origen
source_systemstringSistema externo del almacén
descriptionstringDescripción del almacén

Los campos source_id/source_system permiten rastrear el almacén individualmente con sync posterior desde /transportes/sync/hubs/warehouses.

Ejemplos

Request

{
  "source_id": "stock.warehouse:1",
  "source_system": "external_erp",
  "name": "Cedi",
  "phone": "555-0101",
  "address": "San Rafael, Escazu",
  "latitude": 9.9797944160071,
  "longitude": -84.1408946228684,
  "requires_wms_ready_for_dispatch": true,
  "warehouses": [
    {
      "source_id": "stock.location:WH/Stock",
      "warehouse_code": "WH/Stock",
      "description": "Almacen principal"
    }
  ]
}

Response

{
  "ok": true,
  "code": "SYNC_OK",
  "message": "Sync processed successfully.",
  "data": 3,
  "meta": {
    "route": "/transportes/sync/hubs",
    "method": "PostHubSync",
    "operation": "upsert",
    "upsert_action": "updated",
    "warehouse_summary": {
      "processed": 1,
      "created": 0,
      "updated": 1
    },
    "timestamp": "2026-04-07T12:00:00.000Z"
  }
}

2. Almacenes de Sede

POST/transportes/sync/hubs/warehouses

Sincroniza almacenes para una sede existente sin necesidad de reenviar todos sus datos.

Caso de uso

  • Actualizar almacenes sin reenviar toda la sede.
  • Cargar almacenes hijos de una sede desde el sistema externo.

Dependencias

Si origin_hub_id no existe, el endpoint responde con un error SYNC_MISSING_DEPENDENCIES con endpoint_code: hubs.

Campos del Payload

Requeridos

CampoTipoDescripción
origin_hub_idstringsource_id o identificador externo de la sede
source_systemstringSistema externo
warehousesobject / arrayAlmacenes a sincronizar

Opcionales

CampoTipoDescripción
origin_hub_modelstringModelo del hub en el sistema origen

Campos de warehouses[]

Requeridos

CampoTipoDescripción
warehouse_codestringCódigo único del almacén

Opcionales

CampoTipoDescripción
source_idstringID externo del almacén
source_systemstringSistema externo del almacén
descriptionstringDescripción del almacén

Ejemplos

Request

{
  "origin_hub_id": "stock.warehouse:1",
  "origin_hub_model": "stock.warehouse",
  "source_system": "external_erp",
  "warehouses": [
    {
      "source_id": "stock.location:WH/Stock",
      "warehouse_code": "WH/Stock",
      "description": "Almacen principal"
    },
    {
      "source_id": "stock.location:WH/Input",
      "warehouse_code": "WH/Input",
      "description": "Entrada"
    }
  ]
}

Response

{
  "ok": true,
  "code": "SYNC_OK",
  "message": "Sync processed successfully.",
  "data": {
    "hub_id": 3
  },
  "meta": {
    "route": "/transportes/sync/hubs/warehouses",
    "method": "PostHubWarehousesSync",
    "operation": "warehouse_upsert",
    "upsert_action": "processed",
    "warehouse_summary": {
      "processed": 2,
      "created": 1,
      "updated": 1
    },
    "timestamp": "2026-04-07T12:00:00.000Z"
  }
}