APIs de Materia
Materia expone un conjunto de endpoints REST (OData v4) a través del sistema de APIs de Business Central. Estas APIs permiten integrar aplicaciones externas con los datos de proyectos, tareas, planificación, BOM, ofertas de venta y pedidos de compra gestionados por la extensión.
Descripción y objetivos
Las APIs de Materia están pensadas para:
- Integración con sistemas externos (ERP, BI, portales de cliente/proveedor).
- Exportación de datos para análisis o reporting fuera de Business Central.
- Automatización de procesos mediante flujos de Power Automate u otras herramientas de integración.
Todas las APIs siguen el estándar OData v4 y se consumen con los mismos mecanismos de autenticación y acceso que las APIs estándar de Business Central (OAuth 2.0 con permisos de aplicación o credenciales de usuario).
Configuración de acceso
Todos los endpoints de Materia comparten los siguientes parámetros de conexión:
- Publisher: NubitConsultingSL.
- API Group: MATERIA.
- Versiones disponibles: v1.0, v2.0.
URL base (v2.0):
https://api.businesscentral.dynamics.com/v2.0/{tenantId}/{environment}/api/NubitConsultingSL/MATERIA/v2.0/
Sustituye {tenantId} por el identificador del tenant de Microsoft Entra ID y {environment} por el nombre del entorno de Business Central (p. ej. production).
NOTA
Para usar la versión `v1.0`, sustituye `v2.0` por `v1.0` en la URL base. Ambas versiones exponen los mismos endpoints y campos.
APIs disponibles
| Endpoint | EntitySetName | Nº página AL | Tabla origen | Descripción |
|---|---|---|---|---|
/projects |
projects |
50044 | Job | Proyectos |
/jobTasks |
jobTasks |
50045 | Job Task | Tareas de proyecto |
/jobPlanningLines |
jobPlanningLines |
50047 | Job Planning Line | Líneas de planificación |
/jobLedgerEntrys |
jobLedgerEntrys |
50046 | Job Ledger Entry | Movimientos de proyecto |
/bomProjects |
bomProjects |
50048 | NUB BOM Project Original | BOM Project |
/purchaseOrders |
purchaseOrders |
50049 | Purchase Header (Pedido) | Pedidos de compra |
/purchaseOrderLines |
purchaseOrderLines |
50050 | Purchase Line (Pedido) | Líneas de pedido de compra |
/salesQuotes |
salesQuotes |
50051 | Sales Header (Oferta) | Ofertas de venta |
/salesQuoteLines |
salesQuoteLines |
50052 | Sales Line (Oferta) | Líneas de oferta de venta |
Detalle de campos por endpoint
Proyectos (/projects)
Expone la tabla estándar Job de Business Central con los datos principales del proyecto.
no: Nº proyecto.searchDescription: Descripción de búsqueda.description: Descripción del proyecto.description2: Segunda descripción.billToCustomerNo: Nº cliente facturación.creationDate: Fecha de creación.startingDate: Fecha de inicio.endingDate: Fecha de fin.status: Estado del proyecto (Open, Quote, Planning, Completed).personResponsible: Responsable del proyecto.globalDimension1Code: Dimensión 1.globalDimension2Code: Dimensión 2.jobPostingGroup: Grupo contable del proyecto.blocked: Bloqueado.lastDateModified: Última fecha de modificación.
Tareas de proyecto (/jobTasks)
Expone la tabla estándar Job Task con los indicadores económicos por tarea.
jobNo: Nº proyecto.jobTaskNo: Nº tarea.description: Descripción de la tarea.jobTaskType: Tipo de tarea (Posting, Heading, Total, Begin-Total, End-Total).scheduleTotalCost: Presupuesto (coste total).scheduleTotalPrice: Presupuesto (precio total).usageTotalCost: Costes reales totales.usageTotalPrice: Precio real total.contractTotalCost: Facturable (coste total).contractTotalPrice: Facturable (precio total).contractInvoicedPrice: Precio facturado.contractInvoicedCost: Coste facturado.indentation: Nivel de indentación.
Líneas de planificación (/jobPlanningLines)
Expone la tabla estándar Job Planning Line con el presupuesto y planificación del proyecto.
jobNo: Nº proyecto.jobTaskNo: Nº tarea.lineNo: Nº línea.lineType: Tipo de línea (Budget, Billable, Both Budget and Billable).type: Tipo de concepto (Resource, Item, G/L Account).no: Nº del recurso/producto/cuenta.description: Descripción.quantity: Cantidad.unitCost: Coste unitario.totalCost: Coste total.unitPrice: Precio unitario.totalPrice: Precio total.planningDate: Fecha de planificación.
Movimientos de proyecto (/jobLedgerEntrys)
Expone la tabla estándar Job Ledger Entry con los costes e ingresos reales registrados.
entryNo: Nº movimiento.jobNo: Nº proyecto.jobTaskNo: Nº tarea.postingDate: Fecha registro.type: Tipo (Resource, Item, G/L Account).no: Nº del concepto.description: Descripción.quantity: Cantidad.unitCost: Coste unitario.totalCost: Coste total.unitPrice: Precio unitario.totalPrice: Precio total.
BOM Project (/bomProjects)
Expone la tabla de Materia NUB BOM Project Original con las líneas del listado de materiales de cada proyecto.
lineNo: Nº línea del BOM.projectNo: Nº proyecto.taskNo: Nº tarea.machineNo: Nº máquina.set: Conjunto.subset: Subconjunto.typeMovement: Tipo de movimiento.checkValidateByPM: Validado por jefe de proyecto.quantity: Cantidad.quantityReceibedDelivered: Cantidad recibida/entregada.quantityReturned: Cantidad devuelta.quantityRejected: Cantidad rechazada.quantityOutstanding: Cantidad pendiente.usable: Aprovechable.importDate: Fecha de importación.orderDate: Fecha de pedido.requestedDateReceipt: Fecha recepción solicitada.promisedDateReceipt: Fecha recepción prometida.expectedDateReceipt: Fecha recepción esperada.requestDateProjManag: Fecha requerida jefe proyecto.dateConsumed: Fecha de consumo.
Pedidos de compra (/purchaseOrders)
Expone la tabla estándar Purchase Header filtrada por tipo Pedido (Order).
no: Nº pedido de compra.buyFromVendorNo: Nº proveedor.buyFromVendorName: Nombre proveedor.postingDate: Fecha registro.documentDate: Fecha documento.status: Estado del pedido.paymentTermsCode: Cód. términos de pago.currencyCode: Cód. divisa.amount: Importe.amountIncludingVAT: Importe con IVA.
Líneas de pedido de compra (/purchaseOrderLines)
Expone la tabla estándar Purchase Line filtrada por tipo Pedido.
documentNo: Nº pedido.lineNo: Nº línea.buyFromVendorNo: Nº proveedor.type: Tipo de línea.no: Nº del artículo/recurso/cuenta.description: Descripción.locationCode: Cód. almacén.quantity: Cantidad.outstandingQuantity: Cantidad pendiente.qtyToReceive: Cantidad a recibir.directUnitCost: Coste unitario directo.lineDiscount: % descuento línea.amount: Importe.amountIncludingVAT: Importe con IVA.expectedReceiptDate: Fecha recepción esperada.jobNo: Nº proyecto vinculado.
Ofertas de venta (/salesQuotes)
Expone la tabla estándar Sales Header filtrada por tipo Oferta (Quote).
no: Nº oferta de venta.sellToCustomerNo: Nº cliente.sellToCustomerName: Nombre cliente.postingDate: Fecha registro.documentDate: Fecha documento.currencyCode: Cód. divisa.amount: Importe.amountIncludingVAT: Importe con IVA.jobHNo: Nº proyecto vinculado (campo MATERIANUB JobH No.).
Líneas de oferta de venta (/salesQuoteLines)
Expone la tabla estándar Sales Line filtrada por tipo Oferta.
documentNo: Nº oferta.lineNo: Nº línea.sellToCustomerNo: Nº cliente.type: Tipo de línea.no: Nº del artículo/recurso/cuenta.description: Descripción.locationCode: Cód. almacén.quantity: Cantidad.outstandingQuantity: Cantidad pendiente.qtyToShip: Cantidad a enviar.unitPrice: Precio unitario.lineDiscount: % descuento línea.amount: Importe.amountIncludingVAT: Importe con IVA.shipmentDate: Fecha de envío.jobNo: Nº proyecto vinculado.