Error CFDI40165 al timbrar: la ClaveUnidad no pertenece al catálogo c_ClaveUnidad
El error CFDI40165 aparece cuando la ClaveUnidad de un concepto no existe en el catálogo c_ClaveUnidad del SAT. A diferencia de la clave de producto, la clave de unidad indica en qué se mide lo que vendes: piezas, servicios, kilos, litros. Se captura con un código corto del catálogo y no con el nombre de la unidad. En esta guía verás cómo elegirla, qué la diferencia del atributo Unidad y cómo corregir el XML.
Resumen rápido del error
- Código: CFDI40165
- Campo: ClaveUnidad
- Nodo del XML:
cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto - Regla del SAT (Anexo 20): Este atributo, debe contener un valor del catálogo c_ClaveUnidad.
- Mensaje de rechazo: El campo ClaveUnidad no contiene un valor del catálogo c_ClaveUnidad.
- Cuándo aparece: al timbrar, antes de que se genere el UUID.
¿Qué significa el error CFDI40165?
Cada concepto del CFDI 4.0 lleva una ClaveUnidad que expresa la unidad de medida con la que se cuantifica la Cantidad. El catálogo c_ClaveUnidad contiene códigos cortos de dos o tres caracteres, por ejemplo H87 (pieza), E48 (unidad de servicio), KGM (kilogramo) o LTR (litro).
La validación CFDI40165 revisa solamente que la clave exista en el catálogo. Que la unidad sea la adecuada para el producto es responsabilidad de quien captura. Con una clave inexistente, el PAC rechaza el comprobante y no se genera UUID.
Dónde se valida: el nodo Concepto y ClaveUnidad
La regla se aplica al atributo ClaveUnidad de cada cfdi:Concepto. Un solo concepto con clave inválida basta para rechazar todo el comprobante, aunque los demás estén correctos.
ClaveUnidad(requerida): el código del catálogoc_ClaveUnidad; es lo que valida CFDI40165.Unidad(opcional): un texto libre, como “Pieza” o “Servicio”, que sirve solo para que el cliente lo lea; no la valida este catálogo.ClaveProdServ: es otro dato distinto con su propia regla (CFDI40162).CantidadyValorUnitario: se evalúan aparte; el valor unitario debe ser mayor que cero en ingreso, egreso y nómina (CFDI40166).
Causas más comunes del error CFDI40165
- Se escribió el nombre de la unidad. Valores como
Pieza,ServiciooKilogramoen lugar deH87,E48oKGM. - Se usó una abreviatura propia. Siglas de inventario como
PZA,SERVoKGno son claves del catálogo. - Se capturó con minúsculas o con guiones.
h87oH-87no coinciden con la clave. - Se llenó el campo con la clave de producto. Se puso el número de ocho dígitos de
ClaveProdServenClaveUnidad, o a la inversa. - El catálogo de productos del sistema trae unidades antiguas. Productos creados hace años conservan una unidad que ya no coincide con el catálogo del SAT.
Cómo corregir el error CFDI40165 paso a paso
- Identifica el concepto con error. Revisa cada
cfdi:Conceptodel XML y anota suClaveUnidad. - Decide en qué se mide el producto. Por pieza, por servicio, por peso, por volumen, por hora.
- Busca la clave en
c_ClaveUnidad. Consulta el catálogo del SAT y copia el código exacto, en mayúsculas y sin espacios. - Separa
ClaveUnidaddeUnidad. La clave va enClaveUnidad; el texto descriptivo, si lo quieres mostrar, va enUnidad. - Actualiza tu catálogo de productos. Guarda la clave en cada producto o servicio para que se herede en cada factura.
- Vuelve a timbrar. Con una clave válida el PAC continúa con el resto de las validaciones.
Ejemplo en el XML: incorrecto y correcto
Ejemplo de un concepto de venta por pieza; los importes son ilustrativos:
Incorrecto:
<cfdi:Concepto ClaveProdServ="..." Cantidad="3" ClaveUnidad="PZA" Unidad="Pieza" Descripcion="Producto de ejemplo" ValorUnitario="100.00" Importe="300.00" ObjetoImp="02"/>
Correcto:
<cfdi:Concepto ClaveProdServ="..." Cantidad="3" ClaveUnidad="H87" Unidad="Pieza" Descripcion="Producto de ejemplo" ValorUnitario="100.00" Importe="300.00" ObjetoImp="02"/>
En el ejemplo la clave de producto se omite con puntos suspensivos y solo se resalta la clave de unidad. H87 es un ejemplo de formato; la clave que corresponde a cada producto debe elegirla quien conoce la operación o tu contador.
Cómo mantener ordenadas las unidades de medida
Una buena práctica es asignar la unidad una sola vez, al crear el producto o servicio, y no capturarla a mano en cada factura. En un catálogo de productos bien ordenado cada artículo tiene su clave de producto, su clave de unidad y, si lo deseas, su texto descriptivo de la unidad. Si vendes servicios, revisa que no hayas usado una unidad física, y si vendes por peso o volumen, confirma que el valor de Cantidad corresponda a esa unidad. Cuando importes productos desde una hoja de cálculo, valida la columna de unidades contra el catálogo antes de cargar: es el origen más frecuente de este rechazo en lotes grandes. Y cuando el SAT actualice el catálogo, revisa que tus unidades sigan vigentes. Ante la duda sobre qué unidad usar para un caso particular, pregunta a tu contador.
Cómo evitar este error con Soicont
Soicont es una plataforma de facturación electrónica CFDI 4.0 con PAC autorizado. Antes de enviar el comprobante a timbrar, valida los datos del receptor, los catálogos del SAT y los cálculos de impuestos, y si algo no cuadra te muestra el error con una explicación clara para que lo corrijas y vuelvas a emitir. Además, tus folios no caducan y puedes facturar para varias empresas (multi-RFC) desde una sola cuenta.
Conoce la facturación electrónica CFDI 4.0, la plataforma y los paquetes de folios.
Errores relacionados
- Error CFDI40162 (ClaveProdServ): la clave de producto o servicio debe pertenecer a su catálogo.
- Error CFDI40166 (ValorUnitario): el valor unitario debe ser mayor que cero en ingreso, egreso y nómina.
- Error CFDI40167 (Importe): el importe del concepto debe estar dentro de los límites permitidos.
- Error CFDI40170 (ObjetoImp): el objeto de impuesto debe pertenecer al catálogo c_ObjetoImp.
- Error CFDI40113 (Moneda): la moneda debe pertenecer al catálogo c_Moneda.
Consulta también el Centro de Soluciones con todos los errores del SAT.
Preguntas frecuentes
¿Qué clave de unidad uso para un servicio?
Muchos servicios usan E48 (unidad de servicio), pero la clave depende de cómo midas el servicio. Confirma con tu contador cuál corresponde a tu operación.
¿Es lo mismo ClaveUnidad que Unidad?
No. ClaveUnidad es obligatoria y debe ser del catálogo; Unidad es un texto opcional de apoyo que no valida este catálogo.
¿Puedo escribir “Pieza” en ClaveUnidad?
No. El campo solo acepta el código del catálogo, por ejemplo H87.
¿Por qué falla si la clave se ve correcta?
Revisa mayúsculas, espacios al final o guiones. H87 con un espacio no coincide con el catálogo.
¿Se genera UUID con CFDI40165?
No. El comprobante se rechaza antes del timbrado y se corrige antes de volver a emitir.
¿Todavía no se resuelve?
Si después de revisar estos puntos el error continúa, escríbenos desde la página de contacto con el código del error y el XML que intentaste timbrar (nunca envíes contraseñas ni la llave privada del CSD). Si aún no tienes cuenta, crea la tuya y empieza a facturar con validaciones previas.