Un despacho de consultoría timbra una factura por "Auditoría interna" a un cliente. El CFDI sale correcto en apariencia -RFC, total, IVA, todo cuadra-, pero el atributo que le dice al SAT qué se vendió no dice "auditoría": dice "servicios de facturación". Verificamos en el código que eso no es un caso aislado -pasa con cualquier concepto que factures, siempre.
La ley exige la clave del catálogo que corresponde al servicio real
El artículo 29-A, fracción V del Código Fiscal de la Federación (CFF) es explícito sobre qué debe describir un comprobante:
"La cantidad, unidad de medida y clase de los bienes o mercancías o descripción del servicio o del uso o goce que amparen, estos datos se asentarán en los comprobantes fiscales digitales por Internet usando los catálogos incluidos en las especificaciones tecnológicas a que se refiere la fracción VI del artículo 29 de este Código."
Ese catálogo es el c_ClaveProdServ del Anexo 20 del SAT: miles de claves de 8 dígitos, una por cada tipo de bien o servicio. No es un campo decorativo -es el dato con el que el SAT clasifica, a nivel de cada factura, qué actividad estás facturando.
El riesgo que añade la propia ley: reclasificación de oficio
El mismo artículo 29-A fracción V, en un párrafo añadido por la reforma DOF 12-11-2021, no se queda en el requisito de forma -describe una consecuencia automática cuando lo que factura el contribuyente no coincide con su actividad económica registrada:
"Cuando exista discrepancia entre la descripción de los bienes, mercancías, servicio o del uso o goce señalados en el comprobante fiscal digital por Internet y la actividad económica registrada por el contribuyente [...], la autoridad fiscal actualizará las actividades económicas y obligaciones de dicho contribuyente al régimen fiscal que le corresponda."
Dicho llanamente: si un despacho de consultoría timbra sistemáticamente con la clave de "servicios de facturación", el SAT tiene base legal para actualizar de oficio su actividad económica registrada -con las obligaciones fiscales que eso trae- sin que el contribuyente lo haya pedido.
La sanción por no cumplir los requisitos del art. 29-A
El artículo 83, fracción VII del CFF tipifica como infracción expedir comprobantes "sin que cumplan los requisitos señalados en este Código", y el artículo 84, fracción IV, inciso a) fija la multa:
"De $22,300.00 a $127,530.00. En caso de reincidencia, las autoridades fiscales podrán, adicionalmente, clausurar preventivamente el establecimiento del contribuyente por un plazo de tres a quince días."
Cifras vigentes (Código Fiscal de la Federación, texto de la Cámara de Diputados, última reforma DOF 09-04-2026, montos de multas actualizados por resolución miscelánea fiscal).
| Elemento | Qué dice la norma |
|---|---|
| Requisito del comprobante | Art. 29-A fr. V CFF: clase/descripción del servicio con la clave del catálogo del SAT |
| Riesgo adicional | Art. 29-A fr. V, párrafo 2°: el SAT puede reclasificar de oficio la actividad económica si hay discrepancia sistemática |
| Infracción | Art. 83 fr. VII CFF: expedir comprobantes sin cumplir los requisitos del Código |
| Multa | Art. 84 fr. IV inciso a) CFF: $22,300.00 a $127,530.00 MXN, más clausura preventiva de 3 a 15 días en reincidencia |
Verificado en el código: la clave está fija, y no hay dónde elegir otra
Confirmamos el hallazgo directamente en el código de ServiWare (repo medware-servicios, rama main, commit 493d06a2). El esquema del concepto de una factura, invoiceItemInput (packages/shared/src/facturacion.ts:73-78), sólo admite description, quantity, unit y unitPriceCents -ningún campo para la clave del producto o servicio.
Al timbrar, FacturamaCfdiProvider.stamp() (apps/services/facturacion/src/pac/facturama-cfdi-provider.ts:103) arma cada partida del CFDI así, dentro del recorrido de input.items:
ProductCode: '84111506', Description: it.description, ...
Ese literal '84111506' -clave del catálogo del SAT para "servicios de facturación"- no depende de it.description ni de ningún otro dato del concepto: es el mismo para cada línea de cada factura que se timbre. Confirmamos por búsqueda en todo el repositorio (grep -r "ProductCode") que ésta es la única asignación de esa clave en el sistema.
El flujo que llega hasta ahí: POST /facturacion/invoices/:id/stamp (invoices.controller.ts:78) llama a InvoicesService.stamp() (invoices.service.ts:286), que arma el objeto y lo pasa tal cual al proveedor del PAC -sin que en ningún punto del camino se calcule ni se pida una clave distinta.
Qué significa en la práctica, y qué falta en el producto
No importa si el despacho vende auditorías, consultoría legal, diseño o capacitación: cada CFDI que emite queda catalogado ante el SAT como "servicios de facturación". Lo que falta es que invoiceItemInput admita una clave de producto/servicio por concepto (o, como mínimo, una configurable a nivel de despacho según su giro real), y que FacturamaCfdiProvider.stamp() la use en vez del literal fijo. Puedes ver ese recorrido completo en de la descripción libre a la clave fija: el flujo completo en ServiWare, o estimar la exposición con tus propios números en la calculadora de exposición por clave SAT fija.
Preguntas frecuentes
¿El CFDI de ServiWare es inválido por esto?
No: el SAT lo acepta y lo timbra, porque 84111506 es una clave válida del catálogo -sólo no es la clave del servicio que realmente se vendió. El comprobante existe, pero no cumple el requisito de descripción correcta del art. 29-A fr. V.
¿Aplica sólo a un tipo de despacho?
Aplica a cualquier tenant de ServiWare: el literal está en el proveedor de timbrado, no en una configuración por giro. Un despacho de auditoría, uno de diseño y uno de capacitación timbran, los tres, con la misma clave.
¿Cuál es la multa exacta?
El CFF no fija un monto único: de $22,300.00 a $127,530.00 MXN, según determine la autoridad fiscal caso por caso, más posible clausura preventiva de 3 a 15 días en caso de reincidencia.
¿Significa que mi despacho ya fue reclasificado?
No necesariamente: el hallazgo es que el sistema factura con una clave que no corresponde a tu actividad real, lo que crea la condición para una discrepancia -no que el SAT ya haya actuado sobre tu RFC en particular.
Fuentes consultadas: Código Fiscal de la Federación, texto vigente publicado por la Cámara de Diputados del H. Congreso de la Unión, artículos 29-A, 83 y 84 (última reforma DOF 09-04-2026). Este artículo es orientativo y no sustituye una revisión de tu caso por tu contador o asesor fiscal.
Ve cómo ServiWare arma hoy la clave del comprobante, y por qué siempre sale igual
Te mostramos en vivo una factura de cualquier servicio y la clave con la que se timbra.
Agenda una demo gratis