Introduccion

API Ferreconst

API REST multi-empresa para operar un sistema de ferreteria: empresas, sucursales, cajas, usuarios, productos, inventario, proformas, clientes, proveedores, metodos de pago y configuracion general. El backend expone 71 endpoints organizados en 17 modulos con autenticacion JWT y control de acceso por empresa.

REST multi-empresa

Arquitectura jerarquica: empresa padre gestiona empresas hijas, cada una con sucursales, cajas y usuarios independientes.

Autenticacion JWT

Login con RUC, apodo y contrasena. Bloqueo temporal tras 3 intentos fallidos. Access token para endpoints protegidos y refresh token para renovar sesion.

71 endpoints documentados

17 modulos con operaciones CRUD, ejemplos cURL con URL base configurable, reglas de negocio y respuestas JSON reales en cada pagina.

Base URL

Usa esta URL como referencia para probar los endpoints del backend. Los ejemplos cURL en cada pagina se adaptan automaticamente a esta URL.

https://api.ferreconst.space

Como esta organizada

Modulos por dominio

Cada modulo agrupa endpoints de un area funcional: Autenticacion, Alertas, Sucursales, Marcas, Categorias, Cajas, Clientes, Empresas, Configuracion, Medidas, Metodos de Pago, Productos, Proformas, Proveedores, Stock, Usuarios y Health Check.

Operaciones CRUD

Cada modulo expone POST para crear, GET para listar, GET /:id para obtener detalle y PATCH para actualizar. Algunos incluyen operaciones adicionales como DELETE, PUT o acciones de negocio especificas (pagar, anular, enviar).

Reglas de negocio

Cada endpoint documenta validaciones, restricciones de estado y efectos secundarios: descuento de stock al pagar, bloqueo por intentos fallidos, estados permitidos para cada operacion, y mas.

Ejemplos y respuestas

Cada pagina incluye un ejemplo cURL y la respuesta JSON esperada en el panel derecho. Los ejemplos usan la URL base configurada automaticamente.

Formato de autenticacion

El login devuelve accessToken, refreshToken y los datos de la empresa y el usuario autenticado. Los endpoints protegidos requieren el accessToken en el header Authorization: Bearer <token>.

{
  "accessToken": "<jwt_access_token>",
  "refreshToken": "<opaque_refresh_token>",
  "company": {
    "emid": "uuid",
    "emruc": "1709639106001",
    "emrznsocial": "Ferreconst ElectroLuz K y B",
    "emlogo": "http://.../uploads/empresas/company.png",
    "emestado": "activo",
    "empadre": false
  },
  "user": {
    "usid": "uuid",
    "usnombre": "Juan Perez",
    "usapodo": "jperez",
    "uscorreo": "juan.perez@empresa.com",
    "usimagen": "http://.../uploads/usuarios/user.png",
    "usrol": "jefe",
    "usestado": "activo"
  }
}

Lectura recomendada

  1. Revisa la pagina de autenticacion para entender el flujo: login con RUC + apodo, tokens JWT, rate limiting y renovacion de sesion.
  2. Identifica el RUC de tu empresa y las credenciales de un usuario activo para comenzar a probar.
  3. Explora los modulos desde el sidebar: cada uno agrupa endpoints de un dominio especifico con sus reglas de negocio.
  4. Antes de integrar un endpoint, valida campos requeridos, tipos de datos, reglas de negocio y codigos de error documentados.