Confusión en instructivo del SAT para generar el QR de la carta de porte
La Regla Miscelánea 2.7.1.7. establece los requisitos que deben contener las representaciones impresas de los comprobantes fiscales digitales por Internet (CFDI). Al respecto, establece los siguientes como requisitos generales:
-
- Código de barras generado conforme a la especificación técnica que se establece en el rubro I.D del Anexo 20 o el número de folio fiscal del comprobante. (Código QR)
- Número de serie del Certificado de Sello Digital del emisor y del SAT
- La leyenda: ‘Este documento es una representación impresa de un CFDI’
- Fecha y hora de emisión y de certificación del CFDI
- Cadena original del complemento de certificación digital del SAT
Además de lo anterior, prevé requisitos específicos para los comprobantes siguientes:
-
- CFDI que amparen retenciones e información de pagos
- CFDI a través de adquirentes de bienes y servicios
- CFDI por ventas de sector primario, arrendadores, compra de vehículos usados, etc.
- CFDI por recepción de pagos
Ahora bien, si bien esta regla no establece requisitos de impresión para los CFDI con Complemento Carta Porte (CCP), resulta que, a través del estándar técnico de la versión 3.0 se establecen requisitos de impresión para este complemento. Específicamente en lo relativo a la generación del código QR que debe plasmarse en la representación gráfica.
Código QR
Un código QR (del inglés «Quick Response») es un tipo de código de barras bidimensional que puede ser leído utilizando un smartphone o un lector especializado. A diferencia de un código de barras tradicional, que almacena información en una dimensión (horizontalmente), un código QR almacena datos tanto en lo horizontal como en lo vertical, permitiendo así que contenga una cantidad significativamente mayor de información.
El código QR se compone de cuadros negros dispuestos en un cuadro de forma cuadrada sobre un fondo blanco, y puede contener información como texto, URL, información de contacto, entre otros. Fue creado en 1994 por la compañía japonesa denso wave, subsidiaria de Toyota.
La estructura general de un código QR es una matriz bidimensional de módulos de dos colores contrastados, en principio blancos y negros. Hay varias versiones de códigos QR según la cantidad de módulos que forman la matriz: van desde la versión 1 (con una matriz de 21 x 21 módulos) hasta la versión 10 (con 177 x 177 módulos). Las versiones de más módulos admiten mayor cantidad de información en el código. Los códigos más extendidos para el uso del público en general suelen ser los de 25 x 25 y de 29 x 29, para captura desde el teléfono móvil o celular en cualquier situación (paquetes de productos, folletos de mano, tarjetas o carteles de pared).
Para leer un código QR, simplemente se necesita una aplicación de escaneo en un smartphone. Al escanearlo, la aplicación interpretará el código y proporcionará la información o el enlace almacenado en él.
Requisitos de impresión del CCP
Como se ha indicado, el nuevo estándar de la versión 3.0 del CCP, exige que las representaciones impresas que contengan CCP en el CFDI deben incluir un QR conforme a lo descrito en el estándar ISO/IEC18004, con base en los siguientes lineamientos.
-
- La URL de acceso al servicio que pueda mostrar los datos de la versión publicada del comprobante.
- Identificador del complemento Carta Porte (IdCCP).
- Fecha y hora Salida Llegada (FechaHoraSalidaLlegada) del nodo Ubicacion cuando el atributo TipoUbicacion sea igual a Origen, siendo el primer registro del nodo ubicacion.
- Fecha y hora de certificación del CFDI.
Discrepancia técnica
Es aquí donde se debe de resaltar una discrepancia técnica localizada en el mismo estándar del CCP. En ese documento la autoridad indica que el dato denominado IdCCP debe incluirse a 32 caracteres, tal como lo señala en el cuadro que se reproduce a continuación:
Prefijo | Datos | Caracteres |
La URL de acceso al servicio que pueda mostrar los datos del comprobante https://verificacfdi.facturaelectronica.sat.gob.mx/verificaccp/default.aspx | — | |
IdCCP | Folio complemento Carta Porte, precedido por el texto “&IdCCP=” | 32 |
FechaHoraSalidaLlegada | Fecha de hora Salida Llegada complemento Carta Porte, precedido por el texto “&FechaOrig=” | 19 |
FechaTimbrado | Fecha de hora de certificación del CFDI, precedido por el texto “&FechaTimb=” | 19 |
Total de caracteres | 70 |
El IdCCP es un UUID con longitud de 36 caracteres, no de 32. Lo curioso es que el IdCCP puede medir 32 caracteres si le sustraen los guiones que integran esta línea de códigos, pero entonces ya no funcionaría como debe hacerlo.
La contradicción se hace más evidente cuando la propia autoridad que elabora este instructivo plasma un ejemplo de cómo debe ser el URL que se utiliza para la generación del QR, en el que se puede apreciar que el IdCCP se coloca con sus 36 posiciones (incluyendo los guiones), y no en 32 como lo señala en la tabla citada anteriormente, tal como se aprecia en el ejemplo citado a continuación:
Ejemplo:
https://verificacfdi.facturaelectronica.sat.gob.mx/verificaccp/default.aspx?&IdCCP=CCC3EB8D-81CD-4557-8719-26632D2FA434&FechaOrig=2023-02-10T10:30:21&FechaTimb=2023-02-10T10:32:21
La práctica y las pruebas realizadas para validar el QR demuestra que lo correcto es utilizar la longitud de 36 caracteres, y no los 32 que se señalan en el instructivo.
¿Doble código QR?
Como se ha indicado anteriormente, todo CFDI debe llevar un código QR. Lo que no queda claro ahora, por el momento, es si los CFDI con CCP deberán llevar dos códigos QR, uno con los datos del CFDI, y otro con los datos del CCP. Esto parece ser lo lógico, pero resultaría un tanto impráctico, puesto que habrá que diferenciar, a la vista, cuál código corresponde al CFDI y cuál al CCP.