Introducción
La API de BuildNexion te deja leer los datos de tu empresa en JSON: obras, presupuestos, ofertas, facturas de compra, albaranes, proveedores, documentos, cumplimiento de subcontratas, usuarios y el resumen económico de cada obra. Y con los webhooks te avisamos al momento de lo que cambia.
La API es de lectura: los datos se crean y se cambian en la app. Lo único que se puede dar de alta por API son los propios webhooks.
Cómo se organizan los datos
- Presupuesto (
/estimates): el trabajo de estudio que se presenta al cliente. Recibe un código al crearse (p. ej.2026-014). - Obra (
/projects): nace al adjudicar un presupuesto y conserva su código. La obra llevaestimate_idy el presupuesto,project_id. - Oferta (
/budgets): el documento comercial que se envía al cliente, con capítulos y partidas a precio de coste y de venta. Sale de un presupuesto y, si se adjudica, queda en la obra. - Compras: facturas de compra (las que te envían tus proveedores) y albaranes, imputados a una obra. Las facturas que emites a tus clientes no están en la API.
- Proveedores y subcontratas (
/providers), con sus contactos y, en cada obra, su documentación CAE.
Antes de empezar
- Una cuenta de BuildNexion en periodo de prueba o con la suscripción al día (si no, la API responde
402). - Ser administrador de la organización: solo los administradores crean API keys.
- Una API key, que se crea en Configuración → Integraciones (ver Autenticación).
Tu primera llamada
Lista tus obras. Es la forma más rápida de comprobar que la key funciona:
curl "https://app.buildnexion.com/api/v1/projects?limit=5" \
-H "Authorization: Bearer $BUILDNEXION_API_KEY"La respuesta tiene este aspecto:
Respuesta
{
"data": [
{
"id": "6f1c2a9e-3b7d-4c1e-9a52-1d0e8b7c4a21",
"name": "Reforma integral vivienda C/ Mayor 12",
"code": "2026-014",
"status": "active",
"category": "residencial",
"client": {
"name": "Construcciones Ejemplo SL",
"nif": "B00000000",
"address": null,
"email": "obras@ejemplo.es",
"phone": null
},
"contract_amount": 84500,
"estimate_id": "2b8e4d10-7c3a-4f5e-8d21-0a9b6c3e1f47",
"is_demo": false,
"created_at": "2026-08-20T10:14:22.481+00:00",
"updated_at": "2026-10-02T08:01:10.112+00:00",
"app_url": "https://app.buildnexion.com/projects/6f1c2a9e-3b7d-4c1e-9a52-1d0e8b7c4a21",
"…": "(más campos: ver Obras)"
}
],
"pagination": {
"limit": 5,
"next_cursor": "eyJ2IjpbIjIwMjYtMDgtMjBUMTA6MTQ6MjIuNDgxKzAwOjAwIiwiNmYxYzJhOWUtLi4uIl19"
}
}Convenciones
- URL base:
https://app.buildnexion.com/api/v1. Solo HTTPS. - Formato: JSON en UTF-8. Las respuestas van en
data; los listados añadenpagination(ver Paginación). - Ids: UUID (
6f1c2a9e-3b7d-4c1e-9a52-1d0e8b7c4a21). - Fechas: los días van como
YYYY-MM-DDy los momentos en ISO 8601 con zona horaria, en UTC (2026-10-02T08:01:10.112+00:00). - Importes: en euros, como número con decimales (
1234.56), no en céntimos. Cada campo indica si lleva IVA; el resumen económico va siempre sin IVA. - Valores en español: muchos estados son los de la app (
en_estudio,conciliada,pendiente_factura…). Cada endpoint lista los suyos. - Obras de demostración: las que crea la app para enseñarla no salen en los listados salvo que pidas
include_demo=true. - Campos nuevos: podemos añadir campos a las respuestas y eventos nuevos a los webhooks sin avisar. Tu integración debe ignorar lo que no conozca. Un cambio incompatible iría en una versión nueva (
/api/v2).
Asistentes de IA. La misma API key sirve para conectar ChatGPT, Claude o Cursor al servidor MCP de BuildNexion en
https://app.buildnexion.com/api/mcp (también de solo lectura).Sigue con Autenticación, Paginación y sincronización y Errores.