Presupuestos
Router: backend/app/api/v1/budgets.py.
Prefijo: /api/v1/budgets.
CRUD básico
Sección titulada «CRUD básico»| Método | Endpoint | Descripción | Permiso |
|---|---|---|---|
| GET | /api/v1/budgets |
Listar presupuestos | budgets:leer |
| GET | /api/v1/budgets/{id} |
Detalle | budgets:leer |
| POST | /api/v1/budgets |
Crear | budgets:crear |
| POST | /api/v1/budgets/nested |
Crear con árbol de items | budgets:crear |
| PUT | /api/v1/budgets/{id} |
Actualizar cabecera | budgets:editar |
| DELETE | /api/v1/budgets/{id} |
Borrado lógico | budgets:eliminar |
Filtros de listado
Sección titulada «Filtros de listado»limit,offsetproject_idestadoopportunity_idclient_id
Workflow
Sección titulada «Workflow»| Método | Endpoint | Descripción | Permiso |
|---|---|---|---|
| PUT | /api/v1/budgets/{id}/estado |
Cambiar estado | budgets:editar |
| POST | /api/v1/budgets/{id}/finalizar |
Finalizar presupuesto | budgets:editar |
| POST | /api/v1/budgets/{id}/reabrir |
Reabrir presupuesto | admin:auditar |
El finalizado bloquea ediciones de partidas, mediciones, descompuestos, pricing, organización y ajustes (backend/app/services/budget_editable_guard.py y backend/app/services/budget_finalization_service.py).
Versiones
Sección titulada «Versiones»| Método | Endpoint | Descripción | Permiso |
|---|---|---|---|
| GET | /api/v1/budgets/{id}/versions |
Listar versiones | budgets:leer |
| POST | /api/v1/budgets/{id}/versions |
Crear nueva versión | budgets:crear |
| PUT | /api/v1/budgets/{id}/activar |
Activar versión | budgets:editar |
Conversión a proyecto
Sección titulada «Conversión a proyecto»| Método | Endpoint | Descripción | Permiso |
|---|---|---|---|
| POST | /api/v1/budgets/{id}/create-project |
Crea proyecto desde presupuesto aprobado | budgets:crear |
Requiere que el presupuesto esté en estado approved.
Exportación
Sección titulada «Exportación»| Método | Endpoint | Descripción | Permiso |
|---|---|---|---|
| GET | /api/v1/budgets/{id}/export?format=xlsx |
Exportar a Excel | budgets:leer |
| GET | /api/v1/budgets/{id}/export?format=csv |
Exportar a CSV | budgets:leer |
| GET | /api/v1/budgets/{id}/export?format=pdf |
Exportar a PDF | budgets:leer |
Informes Presto
Sección titulada «Informes Presto»Router: backend/app/api/v1/budget_reports.py.
| Método | Endpoint | Descripción | Permiso |
|---|---|---|---|
| GET | /api/v1/budgets/{id}/informes/{informe}?format=pdf |
Informe PDF | budgets:leer |
| GET | /api/v1/budgets/{id}/informes/{informe}?format=xlsx |
Informe Excel | budgets:leer |
Informes disponibles: resumen, presupuesto, mediciones, descompuesto.
Acciones adicionales
Sección titulada «Acciones adicionales»Router: backend/app/api/v1/budget_actions.py.
| Método | Endpoint | Descripción |
|---|---|---|
| POST | /api/v1/budgets/{id}/recalculate |
Recalcular importes y precios |
| GET | /api/v1/budgets/{id}/resumen |
Resumen de pricing (BI, GG, IVA, total) |
| PUT | /api/v1/budgets/{id}/condiciones-generales |
Actualizar condiciones generales |
| PUT | /api/v1/budgets/{id}/beneficio-industrial |
Aplicar BI global |
| PUT | /api/v1/budgets/{id}/gastos-generales |
Aplicar GG global |
| POST | /api/v1/budgets/{id}/items/{item_id}/move |
Mover item |
| POST | /api/v1/budgets/{id}/items/{item_id}/copy |
Copiar item al portapapeles |
| POST | /api/v1/budgets/{id}/items/paste |
Pegar item |
| PUT | /api/v1/budgets/{id}/items/{item_id}/precio-venta |
Editar precio de venta |
| PUT | /api/v1/budgets/{id}/items/{item_id}/beneficio-industrial |
Editar BI del item |
| PUT | /api/v1/budgets/{id}/items/{item_id}/gastos-generales |
Editar GG del item |
| PUT | /api/v1/budgets/{id}/items/{item_id}/iva |
Editar IVA del item |
Véase también Partidas, mediciones y descompuesto.
Configuración
Sección titulada «Configuración»Router: backend/app/api/v1/budget_config.py.
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /api/v1/budgets/{id}/configuracion |
Leer configuración |
| PUT | /api/v1/budgets/{id}/configuracion |
Actualizar configuración |
Campos: default_unit_id, default_iva_type_id, decimal_places, currency_id.
Variables
Sección titulada «Variables»Router: backend/app/api/v1/budget_variables.py.
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /api/v1/budgets/{id}/variables |
Listar variables |
| POST | /api/v1/budgets/{id}/variables |
Crear variable |
| PUT | /api/v1/budgets/{id}/variables/{var_id} |
Actualizar variable |
| DELETE | /api/v1/budgets/{id}/variables/{var_id} |
Borrar variable |
Importación BC3
Sección titulada «Importación BC3»Router: backend/app/api/v1/bc3.py.
| Método | Endpoint | Descripción |
|---|---|---|
| POST | /api/v1/carga-masiva/bc3/preview |
Previsualizar BC3 |
| DELETE | /api/v1/carga-masiva/bc3/preview/{preview_id} |
Cancelar preview |
| POST | /api/v1/carga-masiva/bc3/import |
Importar BC3 |
Ejemplo de creación
Sección titulada «Ejemplo de creación»curl -X POST https://serconsa.ovlicuo.com/api/v1/budgets \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "codigo": "PRE-2026-010", "titulo": "Nueva obra", "client_id": "..." }'