Documentación API

Guía completa de endpoints disponibles

🔐 Autenticación

POST /api/login

Iniciar sesión y obtener token de autenticación. Las contraseñas se comparan directamente (sin hash) para compatibilidad con el sistema legacy.

POST /api/login

{
  "user": "{{ $adminUser->username_user ?? 'admin' }}",
  "pass": "tu_contraseña"
}

// Respuesta:
{
  "success": true,
  "token": "1|xxxxxxxxxxxxx",
  "user": { ... }
}
GET /api/me

Obtener información del usuario autenticado. Requiere token en header Authorization.

GET /api/me
Headers: Authorization: Bearer {token}
POST /api/logout

Cerrar sesión y revocar token actual.

📦 Productos

GET /api/productos

Listar productos con formato DataTables. Retorna productos activos con información de proveedor.

GET /api/productos/{id}

Obtener un producto específico por ID.

POST /api/productos

Crear un nuevo producto.

PUT /api/productos/{id}

Actualizar un producto existente.

DELETE /api/productos/{id}

Eliminar un producto (soft delete).

POST /api/productos/verificar-codigo

Verificar si un código de producto ya existe.

POST /api/productos/sumar-unidades

Sumar unidades al stock de un producto. Usa transacciones para garantizar consistencia.

👥 Clientes

GET /api/clientes

Listar clientes con formato DataTables.

POST /api/clientes/verificar-rut

Verificar si un RUT ya está registrado.

GET /api/clientes/{id}/ventas

Obtener historial de ventas de un cliente.

💰 Ventas

POST /api/ventas

Crear una nueva venta. Descuenta stock automáticamente según la sucursal del usuario. Usa transacciones y lockForUpdate para garantizar consistencia.

{
  "datos": {
    "productos": [
      { "id": 1, "cantidad": 2, "precio": 1000, "codigo": "001" }
    ],
    "total": 2000,
    "efectivo": 2000,
    "transferencia": 0,
    "posnet": 0
  }
}
GET /api/ventas

Listar ventas con paginación.

🏢 Proveedores

GET /api/proveedores/{id}/cuenta-corriente

Obtener movimientos de cuenta corriente de un proveedor.

POST /api/proveedores/{id}/movimiento-cc

Registrar un nuevo movimiento en cuenta corriente. Usa transacciones.

💵 Arqueos

POST /api/arqueos

Crear un Nuevo Cierre de Caja. Usa transacciones.

GET /api/arqueos/ultimo

Obtener el último arqueo de la sucursal del usuario.

POST /api/arqueos/totales-por-periodo

Obtener totales de arqueos por período de fechas.

⚠️ Notas Importantes