GET /api/cotizaciones
Lista todas las cotizaciones de la empresa activa.Autenticación
Requiere autenticación con token Bearer y permisocotizaciones.view.
Respuesta
Indica si la operación fue exitosa
Lista de cotizaciones desde la vista
view_cotizacionesEjemplo de Uso
POST /api/cotizaciones
Crea una nueva cotización.Autenticación
Requiere autenticación con token Bearer y permisocotizaciones.create.
Parámetros del Body
Datos Generales
Fecha de la cotización (formato: YYYY-MM-DD)
Moneda: PEN o USD
Tipo de cambio (si moneda es USD)
Indica si se aplica IGV a los totales
Descuento global (mínimo 0)
Asunto de la cotización
Observaciones adicionales
Días de pago acordados
Dirección de entrega
Datos del Cliente
Puede elegir una de estas 3 opciones: Opción 1: Cliente existenteID del cliente existente
Documento del cliente (DNI o RUC)
Nombre o razón social
Dirección del cliente
Nombre del cliente (texto libre, no se guarda en la tabla clientes)
Productos
Lista de productos (mínimo 1)
Cuotas de Pago (opcional)
Lista de cuotas de pago
Cálculo de Totales
Los precios incluyen IGV. El sistema calcula:montoBruto = Σ(precio × cantidad)de todos los productostotal = montoBruto - descuento- Si
aplicar_igves true:subtotal = total / 1.18(base imponible)igv = total - subtotal
- Si
aplicar_igves false:subtotal = totaligv = 0
Respuesta
Indica si la cotización fue creada exitosamente
Mensaje descriptivo
Objeto completo de la cotización con cliente, detalles y cuotas
Ejemplo de Uso
GET /api/cotizaciones/
Obtiene el detalle completo de una cotización.Autenticación
Requiere autenticación con token Bearer y permisocotizaciones.view.
Parámetros de Ruta
ID de la cotización
Respuesta
Indica si la operación fue exitosa
Objeto completo de la cotización con cliente, usuario, detalles de productos y cuotas
Ejemplo de Uso
PUT /api/cotizaciones/
Actualiza una cotización existente.Autenticación
Requiere autenticación con token Bearer y permisocotizaciones.edit.
Parámetros de Ruta
ID de la cotización
Parámetros del Body
Los mismos que en POST, más:Estado: pendiente, aprobada, rechazada, vencida
Proceso
- Elimina todos los detalles y cuotas anteriores
- Crea nuevos detalles y cuotas con los datos enviados
- Recalcula totales
Respuesta
Indica si la actualización fue exitosa
Mensaje descriptivo
Cotización actualizada con sus relaciones
Ejemplo de Uso
DELETE /api/cotizaciones/
Elimina (marca como rechazada) una cotización.Autenticación
Requiere autenticación con token Bearer y permisocotizaciones.delete.
Parámetros de Ruta
ID de la cotización
Respuesta
Indica si la eliminación fue exitosa
Mensaje confirmando la eliminación
Ejemplo de Uso
POST /api/cotizaciones//estado
Cambia el estado de una cotización.Autenticación
Requiere autenticación con token Bearer y permisocotizaciones.edit.
Parámetros de Ruta
ID de la cotización
Parámetros del Body
Nuevo estado: pendiente, aprobada, rechazada, vencida
Respuesta
Indica si el cambio fue exitoso
Mensaje confirmando el cambio
Cotización actualizada
Ejemplo de Uso
GET /api/cotizaciones/proximo-numero
Obtiene el próximo número de cotización disponible.Autenticación
Requiere autenticación con token Bearer.Respuesta
Indica si la operación fue exitosa
Próximo número con formato (ej: COT-000042)
Ejemplo de Uso
Códigos de Error
- 404 Not Found: Cotización no encontrada.
- 422 Unprocessable Entity: Error de validación.
- 500 Internal Server Error: Error en el servidor.
Notas Importantes
- Las cotizaciones usan numeración correlativa automática por empresa.
- Los precios de productos incluyen IGV. El sistema calcula subtotal e IGV automáticamente.
- Si una cotización tiene
id_cliente, al crear una venta se puede referenciar concotizacion_idy su estado cambiará a “aprobada”. - El cliente puede ser: existente (id_cliente), nuevo por documento (se crea), o texto libre (cliente_nombre).
- Las cuotas son opcionales y permiten definir el plan de pagos.