Base URL

/api/v1
A

Autenticacion

Endpoints para registro, inicio y cierre de sesion. Usa Laravel Sanctum para tokens de autenticacion.

POST /auth/register

Registrar un nuevo usuario en el sistema.

Body Parameters

Parametro Tipo Descripcion
name requerido string Nombre del usuario (max: 255)
email requerido string Correo electronico unico
password requerido string Contrasena (min: 8 caracteres)
password_confirmation requerido string Confirmacion de contrasena
POST /auth/login

Iniciar sesion y obtener token de acceso.

Body Parameters

Parametro Tipo Descripcion
email requerido string Correo electronico registrado
password requerido string Contrasena (min: 8 caracteres)
{
  "success": true,
  "data": {
    "user": { ... },
    "token": "1|abc123..."
  }
}
POST /auth/logout Requiere Auth

Cerrar sesion actual (invalida el token).

POST /auth/logout-all Requiere Auth

Cerrar todas las sesiones del usuario.

GET /user Requiere Auth

Obtener informacion del usuario autenticado.

C

Compania

Gestion de la informacion de la compania. Solo puede existir una compania en el sistema.

GET /compania Requiere Auth

Obtener informacion de la compania.

GET /compania/logo Requiere Auth

Obtener el logo de la compania.

POST /compania/alta Requiere Auth

Registrar una nueva compania.

PUT /compania/actualizacion Requiere Auth

Actualizar informacion de la compania.

POST /compania/logo Requiere Auth

Subir logo de la compania (multipart/form-data).

DELETE /compania/logo Requiere Auth

Eliminar logo de la compania.

DELETE /compania/eliminar Requiere Auth

Eliminar compania (soft delete).

POST /compania/restaurar Requiere Auth

Restaurar compania eliminada.

C

Categorias

Gestion de categorias de productos.

GET /categoria Requiere Auth

Listar todas las categorias.

GET /categoria/{id} Requiere Auth

Obtener una categoria por ID.

POST /categoria/alta Requiere Auth

Crear una nueva categoria.

Body Parameters

Parametro Tipo Descripcion
name requerido string Nombre de la categoria (max: 255)
description opcional string Descripcion de la categoria (max: 255)
PUT /categoria/actualizacion/{id} Requiere Auth

Actualizar una categoria.

DELETE /categoria/eliminar/{id} Requiere Auth

Eliminar una categoria.

P

Productos

Gestion del catalogo de productos disponibles para renta.

GET /producto Requiere Auth

Listar todos los productos.

GET /producto/{id} Requiere Auth

Obtener un producto por ID.

POST /producto/alta Requiere Auth

Crear un nuevo producto.

Body Parameters

Parametro Tipo Descripcion
category_id requerido integer ID de la categoria
name requerido string Nombre del producto (max: 255)
description opcional string Descripcion del producto
rental_price requerido decimal Precio de renta por unidad
replacement_cost requerido decimal Costo de reposicion
stock_total requerido integer Cantidad total en inventario
PUT /producto/actualizacion/{id} Requiere Auth

Actualizar un producto.

DELETE /producto/eliminar/{id} Requiere Auth

Eliminar un producto (soft delete).

POST /producto/bulk-soft-delete Requiere Auth

Eliminar multiples productos.

POST /producto/bulk-restore Requiere Auth

Restaurar multiples productos eliminados.

C

Clientes

Gestion de clientes que rentan productos.

GET /cliente Requiere Auth

Listar todos los clientes.

GET /cliente/{id} Requiere Auth

Obtener un cliente por ID.

POST /cliente/alta Requiere Auth

Registrar un nuevo cliente.

Body Parameters

Parametro Tipo Descripcion
first_name requerido string Nombre del cliente (max: 100)
last_name opcional string Apellido del cliente (max: 100)
email requerido string Correo electronico unico
phone opcional string Telefono (max: 14)
address opcional string Direccion del cliente
PUT /cliente/actualizacion/{id} Requiere Auth

Actualizar un cliente.

DELETE /cliente/eliminar/{id} Requiere Auth

Eliminar un cliente (soft delete).

POST /cliente/bulk-soft-delete Requiere Auth

Eliminar multiples clientes.

POST /cliente/bulk-restore Requiere Auth

Restaurar multiples clientes eliminados.

R

Rentas

Gestion de rentas de productos. Incluye control de estatus y manejo automatico de inventario.

GET /renta Requiere Auth

Listar todas las rentas.

GET /renta/estatus Requiere Auth

Obtener lista de estatus disponibles.

GET /renta/{id} Requiere Auth

Obtener una renta por ID con sus items.

POST /renta/alta Requiere Auth

Crear una nueva renta. El stock se descuenta automaticamente.

Body Parameters

Parametro Tipo Descripcion
customer_id requerido integer ID del cliente
rental_date requerido date Fecha de renta (>= hoy)
return_date requerido date Fecha de devolucion (> rental_date)
delivery_address requerido string Direccion de entrega
notes opcional string Notas adicionales
items requerido array Lista de productos a rentar
items.*.product_id requerido integer ID del producto
items.*.quantity requerido integer Cantidad a rentar (min: 1)
{
  "customer_id": 1,
  "rental_date": "2026-02-01",
  "return_date": "2026-02-05",
  "delivery_address": "Calle Principal 123",
  "notes": "Entregar por la manana",
  "items": [
    { "product_id": 1, "quantity": 10 },
    { "product_id": 2, "quantity": 5 }
  ]
}
PUT /renta/actualizacion/{id} Requiere Auth

Actualizar una renta.

PATCH /renta/{id}/estatus Requiere Auth

Actualizar el estatus de una renta. Maneja automaticamente el stock.

Body Parameters

Parametro Tipo Descripcion
status requerido string pending, delivered, returned, cancelled, finished
// Flujo de estatus:
pending -> delivered | cancelled
delivered -> returned | cancelled | finished

// Estados finales (no se pueden modificar):
returned, cancelled, finished
DELETE /renta/eliminar/{id} Requiere Auth

Eliminar una renta (soft delete).

POST /renta/bulk-soft-delete Requiere Auth

Eliminar multiples rentas.

POST /renta/bulk-restore Requiere Auth

Restaurar multiples rentas eliminadas.