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).
Note
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.