BuildNexion

Resumen económico

Las cifras de cada obra (presupuesto, coste real, certificado, facturado y margen) calculadas igual que en la app, en el Resumen financiero de la obra y en Analítica. Todo sin IVA.

Necesita el permiso read:financials, aparte de read:projects, para que puedas compartir tus obras con una integración sin enseñarle tus márgenes.

Resumen de una obra

GET/api/v1/projects/{id}/summaryread:financials
curl "https://app.buildnexion.com/api/v1/projects/6f1c2a9e-3b7d-4c1e-9a52-1d0e8b7c4a21/summary" \
  -H "Authorization: Bearer $BUILDNEXION_API_KEY"
Respuesta
{
  "data": {
    "currency": "EUR",
    "budget": {
      "cost": 61240.35,
      "planned_cost": 61240.35,
      "sale": 78012.9
    },
    "contract_amount": 84500,
    "cost": {
      "definitive": 18422.1,
      "provisional": 3150.75,
      "total": 21572.85,
      "labor": 2640,
      "labor_included": true
    },
    "margin": {
      "planned_pct": 27.39,
      "planned_frozen": false,
      "current_amount": 4127.15,
      "current_pct": 19.13
    },
    "certified": 25700,
    "invoiced": 25700,
    "computed_at": "2026-10-08T09:30:00.000Z"
  }
}

Campos

ParámetroDescripción
budget.cost
number
Coste del presupuesto de la obra: suma de sus partidas a precio de coste.
budget.planned_cost
number
Coste previsto: el presupuesto de coste tal como quedó al adjudicarlo y crear la obra. No cambia aunque luego se edite el presupuesto; las partidas añadidas después cuentan 0. Si la obra aún no lo tiene fijado, es igual a budget.cost.
budget.sale
number
Venta del presupuesto: suma de las partidas a precio de venta (antes de gastos generales y beneficio).
contract_amount
number | null
Precio de venta contratado, tal como figura en la ficha de la obra.
cost.definitive
number
Coste ya facturado: facturas de compra de la obra (su base imponible) y certificaciones de subcontrata facturadas o pagadas que no tengan su factura en la app; y la mano de obra fichada aprobada si la empresa la cuenta como coste (ver cost.labor_included).
cost.provisional
number
Coste aún sin factura: albaranes pendientes de facturar y certificaciones de subcontrata aprobadas. Al facturarse pasan a definitivo, sin contarse dos veces.
cost.total
number
Definitivo + provisional.
cost.labor
number
Mano de obra fichada y aprobada de la obra: horas × tarifa de cada operario.
cost.labor_included
boolean
true si la empresa cuenta la mano de obra fichada como coste (es lo normal): entonces cost.labor ya va dentro de cost.definitive. Si es false, solo se informa.
margin.planned_pct
number | null
Margen previsto sobre coste, en %: (venta − coste previsto) / coste previsto.
margin.planned_frozen
boolean
true si el presupuesto de la obra se ha cerrado en la app: planned_pct es el margen que tenía en ese momento y ya no cambia aunque se añadan partidas.
margin.current_amount
number | null
Margen real hasta hoy: certificado − coste total. null si aún no se ha certificado nada.
margin.current_pct
number | null
El margen real sobre el coste total, en %.
certified
number
Certificaciones emitidas al cliente a PEM de venta (sin GG, BI, baja ni IVA), igual que budget.sale.
invoiced
number
Facturas emitidas al cliente de la obra (base; las rectificativas restan; sin borradores ni anuladas).
computed_at
datetime
Cuándo se calculó (se calcula en cada petición).

No incluye los gastos generales de la empresa. Los documentos que la app aún está leyendo y los duplicados confirmados no cuentan.

Resumen de un presupuesto

GET/api/v1/estimates/{id}/summaryread:financials

Coste, venta y margen previsto (sobre coste), sin IVA:

curl "https://app.buildnexion.com/api/v1/estimates/2b8e4d10-7c3a-4f5e-8d21-0a9b6c3e1f47/summary" \
  -H "Authorization: Bearer $BUILDNEXION_API_KEY"
Respuesta
{
  "data": {
    "currency": "EUR",
    "cost": 61240.35,
    "sale": 78012.9,
    "margin_amount": 16772.55,
    "margin_pct": 27.39,
    "computed_at": "2026-10-08T09:30:00.000Z"
  }
}

En los presupuestos manuales (conceptos de venta sin coste), sale es la suma de sus conceptos y cost, margin_amount y margin_pct son null.