Inventario Pro API

REST API para integrar tu inventario con sistemas externos  Solo Plan Pro

Autenticación Paginación Productos Categorías Proveedores Movimientos Unidades Resumen

Autenticación

Todas las rutas (excepto esta página) requieren una API key en el header:

Authorization: Bearer <tu-api-key>

Generá tu key desde Configuración → API en inventario.exegestion.com.

Base URL

https://inventario-api.exegestion.com

Respuestas

Éxito: { "data": ... } — Éxito con paginación: { "data": [...], "meta": { "total", "page", "limit", "pages" } } — Error: { "error": "mensaje" }

Paginación

Los endpoints de lista aceptan:

ParamDefaultMáximoDescripción
limit50200Resultados por página
page1Número de página

Productos

GET /products

Lista productos activos. Filtros opcionales:

ParamTipoDescripción
searchstringBúsqueda parcial por nombre
category_iduuidFiltrar por categoría
skustringBúsqueda exacta por SKU
low_stockbooleantrue → solo productos con stock ≤ mínimo
activebooleanDefault true. Pasar false para ver inactivos

GET /products/:id

Detalle de un producto.

POST /products

{
  "name":        "Laptop Dell XPS",   // requerido
  "category_id": "uuid",              // requerido
  "unit_id":     "uuid",              // requerido
  "sku":         "LAP-001",           // opcional
  "description": "...",              // opcional
  "min_stock":   5,                   // opcional (default: 0)
  "cost_price":  800.00,              // opcional
  "sale_price":  1200.00              // opcional
}

PATCH /products/:id

Actualiza cualquier campo. Solo enviá los que querés cambiar.

Para reactivar un producto: { "is_active": true }

DELETE /products/:id

Baja lógica (marca is_active: false). Los movimientos históricos se conservan.

⚠️ Para modificar el stock usá POST /movements. El stock es calculado automáticamente desde los movimientos de ingreso/egreso.

Categorías

GET /categories

GET /categories/:id

POST /categories

{
  "name":  "Electrónica",    // requerido
  "color": "#06b6d4",        // opcional (hex, default: cyan)
  "icon":  "monitor"         // opcional (nombre de ícono Lucide)
}

PATCH /categories/:id

DELETE /categories/:id

Falla con 409 si hay productos asociados.

Proveedores

GET /suppliers

Acepta search y active como filtros.

GET /suppliers/:id

POST /suppliers

{
  "name":    "TechDistrib S.A.",   // requerido
  "contact": "Juan Pérez",         // opcional
  "email":   "ventas@tech.com",    // opcional
  "phone":   "+54 11 1234-5678",   // opcional
  "address": "Av. Corrientes 1234",// opcional
  "notes":   "..."                 // opcional
}

PATCH /suppliers/:id

DELETE /suppliers/:id

Baja lógica (is_active: false).

Movimientos de inventario

Los movimientos son inmutables (registro de auditoría). No se pueden editar ni eliminar.

GET /movements

ParamTipoDescripción
typestringingreso o egreso
product_iduuidFiltrar por producto
supplier_iduuidFiltrar por proveedor
fromdateDesde fecha YYYY-MM-DD
todateHasta fecha YYYY-MM-DD

GET /movements/:id

POST /movements

{
  "type":        "ingreso",     // requerido: "ingreso" | "egreso"
  "product_id":  "uuid",        // requerido
  "quantity":    10,             // requerido (> 0)
  "unit_price":  850.00,         // opcional (default: 0)
  "supplier_id": "uuid",         // opcional
  "reference":   "OC-2026-001", // opcional
  "notes":       "..."          // opcional
}
Un egreso con cantidad mayor al stock disponible devuelve 422 Stock insuficiente. El stock se actualiza automáticamente vía trigger de base de datos.

Unidades de medida

GET /units

Lista todas las unidades de medida de la organización. Solo lectura.

Resumen

GET /summary

{
  "data": {
    "products":   { "total": 120, "low_stock": 5 },
    "suppliers":  { "total": 18 },
    "categories": { "total": 7 },
    "recent_movements": [...]
  }
}

GET /summary/low-stock

Lista paginada de productos con stock igual o menor al mínimo configurado. Útil para alertas de reposición.


Ejemplo rápido

curl https://inventario-api.exegestion.com/summary \
  -H "Authorization: Bearer ivk_..."
curl -X POST https://inventario-api.exegestion.com/movements \
  -H "Authorization: Bearer ivk_..." \
  -H "Content-Type: application/json" \
  -d '{"type":"ingreso","product_id":"...","quantity":50,"unit_price":12.5}'
curl "https://inventario-api.exegestion.com/products?low_stock=true&limit=10" \
  -H "Authorization: Bearer ivk_..."