Saltar al contenido

Cumplimiento al consumidor

En FieldOps, el CFDI de una reparación puede salir sin decir qué refacciones se usaron ni cuánto costó la mano de obra

Por Eduardo Gallegos · Publicado el 23 de septiembre de 2026

Panel de órdenes de trabajo y cotizaciones de un despacho de servicio técnico en campo.

El cliente aprueba una cotización con una sola línea -"Reparación completa", $2,400.00-, el técnico usa dos refacciones del catálogo y las registra en la orden, y al final el despacho timbra el CFDI. Verificamos en el código que ese comprobante nunca lee las refacciones que el técnico registró: sale con la misma partida única de la cotización, sin desglosar qué se cambió, a qué precio, ni cuánto costó la mano de obra por separado.

La ley exige desglosar el comprobante del servicio, no solo el total

El artículo 62 de la Ley Federal de Protección al Consumidor (LFPC) es explícito sobre qué debe contener el comprobante de un trabajo:

"Los prestadores de servicios tendrán obligación de expedir factura o comprobante de los trabajos efectuados, en los que deberán especificarse las partes, refacciones y materiales empleados; el precio de ellos y de la mano de obra; la garantía que en su caso se haya otorgado y los demás requisitos señalados en esta ley."

No es un desglose opcional ni un detalle de buena práctica: la ley pide que el comprobante separe refacciones y materiales -con su precio- de la mano de obra, para que el cliente vea exactamente qué pagó.

Agenda una demo gratis

La sanción: comprobante que no cumple el artículo 62

El artículo 127 de la LFPC nombra expresamente al artículo 62 dentro de la lista de obligaciones cuyo incumplimiento se sanciona:

"Las infracciones a lo dispuesto por los artículos 7 BIS, 13, 17, 18 BIS, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 47, 48, 49, 50, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 67, 68, 69, 70, 72, 75, 77, 78, 79, 81, 82, 85, 86 QUATER, 87 BIS, 90, 91, 93, 95 y 113 serán sancionadas con multa de $760.89 a $2,434,847.42."

Esta cifra está vigente para 2026 (Ley Federal de Protección al Consumidor, texto de la Cámara de Diputados, última reforma DOF 12-12-2025; montos de multas actualizados por Acuerdo DOF 23-12-2025).

ElementoQué dice la norma
Requisito del comprobante de servicioArt. 62 LFPC: especificar partes, refacciones y materiales empleados; precio de cada uno y de la mano de obra; garantía otorgada
Infracción por incumplir el art. 62Art. 127 LFPC (nombra expresamente al 62 en su lista)
MultaArt. 127 LFPC: $760.89 a $2,434,847.42 MXN (vigente 2026)

Verificado en el código: la refacción se registra, pero sin precio y sin llegar al CFDI

Confirmamos el hallazgo directamente en el código de FieldOps (repo medware-fieldops-mx, rama main, commit d7568b5c). Una cotización puede aprobarse con una sola línea de texto libre: createQuoteSchema (packages/shared-schemas/src/quoting.ts:4-18) sólo exige items.min(1), cada uno con description, qty y unitPriceMxn -nada obliga a separar refacciones de mano de obra.

Cuando el técnico usa una refacción en la reparación, sí puede registrarla: addPartSchema (packages/shared-schemas/src/dispatch.ts:179-186) define ese registro con description, qty, unit y un partId opcional del catálogo -pero sin ningún campo de precio. FieldService.addPart() (services/dispatch/src/field/field.service.ts:279-305) lo inserta tal cual en la tabla order_parts, cuya definición (packages/db/migrations/1700000020000_field.cjs:52-61) confirma que la tabla no tiene columna de precio.

CREATE TABLE IF NOT EXISTS order_parts (id, tenant_id, service_order_id, description, qty, unit, created_by, created_at); -sin columna de precio.

Y cuando llega el momento de facturar, OrderCfdiService.cotizacionAprobada() (services/billing/src/order-cfdi.service.ts:359-369) arma las partidas del CFDI leyendo únicamente la tabla quote_items de la cotización aprobada:

SELECT description, qty, unit_price_mxn FROM quote_items WHERE quote_id = $1 AND (option_id IS NULL OR option_id = $2)

order_parts no aparece en ningún punto de services/billing: confirmado por búsqueda en todo el servicio. Una orden puede cerrarse con una cotización de una sola línea ("Reparación completa", $2,400.00), dos refacciones registradas después en order_parts -sin precio, sin llegar jamás al comprobante-, y el CFDI que se timbra sale exactamente igual que si no se hubiera usado ninguna refacción: una partida, sin desglose de partes, materiales ni mano de obra.

Agenda una demo gratis

Qué significa en la práctica, y qué falta en el producto

El dato de qué refacciones se usaron ya existe en FieldOps -el técnico las registra en el momento-. Lo que falta son dos cosas: que order_parts capture el precio de cada refacción (hoy no tiene dónde guardarlo), y que cotizacionAprobada() use ese desglose -o al menos separe refacciones de mano de obra dentro de las partidas- en vez de facturar la única línea global de la cotización. Puedes ver ese recorrido completo en de la refacción registrada al CFDI sin desglose: el flujo completo en FieldOps, o estimar la exposición con tus propios números en la calculadora de exposición por comprobante sin desglose.

Preguntas frecuentes

¿FieldOps no registra las refacciones usadas?
Sí las registra: el técnico las añade a la orden y, si son del catálogo, se descuentan del inventario de su camioneta. Lo que no registra es el precio de cada refacción, y ese registro nunca se cruza con el CFDI.

¿Aplica sólo si la cotización trae una sola línea?
El gap es más visible ahí, pero el problema real es que el CFDI nunca desglosa refacciones/materiales de mano de obra por separado -ni siquiera cuando la cotización tiene varias líneas, si esas líneas no distinguen ese detalle.

¿Cuál es la multa exacta?
La LFPC no fija un monto único: de $760.89 a $2,434,847.42 MXN, según la gravedad y lo que determine la Procuraduría Federal del Consumidor (PROFECO) caso por caso.

¿Significa que mi despacho ya tiene comprobantes mal emitidos?
No necesariamente: el hallazgo es que el sistema lo permite y no lo impide, no que ya haya ocurrido con certeza en tu operación. Si tus cotizaciones ya desglosan cada refacción y su mano de obra como líneas separadas, hoy el problema no se manifiesta -pero cualquier cotización de partida única con refacciones reales usadas sí queda mal documentada.

Fuentes consultadas: Ley Federal de Protección al Consumidor, texto vigente publicado por la Cámara de Diputados del H. Congreso de la Unión, artículos 62 y 127 (última reforma DOF 12-12-2025, montos de multas actualizados por Acuerdo DOF 23-12-2025). Este artículo es orientativo y no sustituye una revisión de tu caso por tu abogado o asesor en protección al consumidor.

Ve cómo FieldOps arma hoy el CFDI de una reparación, y dónde se pierde el desglose

Te mostramos en vivo una refacción registrada en la orden y el comprobante que se timbra sin ella.

Agenda una demo gratis
Agendar 30 min
Contacta a un especialista
Ventas y Proyectos (abre en una ventana nueva) Soporte Técnico (abre en una ventana nueva)