Error en XSLT del SAT provoca errores en la generación/validación de factura electrónica

5
(1)

Pues nuestros amigos del Sistema de Administración Tributaria (SAT), cambiaron o borraron una dependencia que se encuentra en los archivos de transformación de los XSLT’s que producen la cadena original que sirve para generar el “sello” de la factura electrónica.

Esta error produce que facturas previamente validadas y que aparecían como correctas ahora se vean como inválidas en su propio validador.

La dependencia que no se puede resolver es esta liga referenciada en el archivo cadenaorigina_2_0.xslt:

http://www.sat.gob.mx/sitio_internet/cfd/terceros/terceros.xslt

un work-around para que puedan seguir produciendo sus cadenas originales es este:

        <xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/ecc/ecc.xslt"/>
        <xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/psgecfd/psgecfd.xslt"/>
        <xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/donat/donat.xslt"/>
        <xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/divisas/divisas.xslt"/>
        <xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/ecb/ecb.xslt"/>
        <xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/detallista/detallista.xslt"/>
        <xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/implocal/implocal.xslt"/>
        <!-- xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/terceros/terceros.xslt"/ -->
        <!-- Aquí iniciamos el procesamiento de la cadena original con su | inicial y el terminador

Si se fijan, basta comentar esta linea y nosotros podemos generar la cadena original correcta.

Ahora bien, pueden bajar todas las dependencias en un directorio para poder facturar fuera de linea y evitar estos errores del SAT. Obtenemos las cadenas originales:

$ mkdir ~/SAT
$ mkdir ~/SAT/xslt
$ cd ~/SAT/xslt
$ wget http://www.sat.gob.mx/sitio_internet/cfd/2/cadenaoriginal_2_0/cadenaoriginal_2_0.xslt
$ wget ftp://ftp2.sat.gob.mx/asistencia_servicio_ftp/publicaciones/solcedi/cadenaoriginal_3_0.xslt

Despues bajamos las dependencias:

$ cd ~/SAT/xslt
$ mkdir include
$ cd include
$ wget http://www.sat.gob.mx/sitio_internet/cfd/2/cadenaoriginal_2_0/utilerias.xslt
$ wget http://www.sat.gob.mx/sitio_internet/cfd/ecc/ecc.xslt
$ wget http://www.sat.gob.mx/sitio_internet/cfd/psgecfd/psgecfd.xslt
$ wget http://www.sat.gob.mx/sitio_internet/cfd/donat/donat.xslt
$ wget http://www.sat.gob.mx/sitio_internet/cfd/divisas/divisas.xslt
$ wget http://www.sat.gob.mx/sitio_internet/cfd/ecb/ecb.xslt
$ wget http://www.sat.gob.mx/sitio_internet/cfd/detallista/detallista.xslt
$ wget http://www.sat.gob.mx/sitio_internet/cfd/implocal/implocal.xslt
$ wget http://www.sat.gob.mx/sitio_internet/cfd/terceros/terceros.xslt

Y finalmente editamos nuestros archivos de “cadenaoriginal_2_0.xslt” y “cadenaoriginal_3_0.xslt” para que queden de manera local así:

        <!-- Con el siguiente método se establece que la salida deberá ser en texto -->
        <!-- <xsl:output method="text" version="1.0" encoding="UTF-8" indent="no"/> -->
        <xsl:output method="text" version="1.0" encoding="UTF-8" indent="no"/>
        <!--
                En esta sección se define la inclusión de las plantillas de utilería
        -->
        <xsl:include href="/Users/pop/SAT/xslt/include/utilerias.xslt"/>
        <!--
                En esta sección se define la inclusión de las demás plantillas de transformación para
                la generación de las cadenas originales de los complementos fiscales
        -->
        <xsl:include href="/Users/pop/SAT/xslt/include/ecc.xslt"/>
        <xsl:include href="/Users/pop/SAT/xslt/include/psgecfd.xslt"/>
        <xsl:include href="/Users/pop/SAT/xslt/include/donat.xslt"/>
        <xsl:include href="/Users/pop/SAT/xslt/include/divisas.xslt"/>
        <xsl:include href="/Users/pop/SAT/xslt/include/ecb.xslt"/>
        <xsl:include href="/Users/pop/SAT/xslt/include/detallista.xslt"/>
        <xsl:include href="/Users/pop/SAT/xslt/include/implocal.xslt"/>
        <xsl:include href="/Users/pop/SAT/xslt/include/terceros.xslt"/>
        <!-- Aquí iniciamos el procesamiento de la cadena original con su | inicial y el terminador || -->

En mi caso use el path “/Users/pop/”, pero aquí lo cambian a lo que necesiten.

Otro cambio en el validador es que ya no recibe facturas que usaban MD5, ahora solo revisa SHA1, aunque las facturas anteriores al 1o de enero son válidas con este algoritmo.

Sin embargo el mismo validador del SAT esta afectado por este descuido y esperemos que resuelvan a la brevedad esta problema.

Intenté contactarlos vía el portal del SAT, pero este también esta de vacaciones:

Gracias al cofrade tmsanchez por hacernos notar este error en el sistema del SAT.

Autor: Fernando “El Pop” Romo (pop at cofradia.org), twitter @El_Pop

How useful was this post?

Click on a star to rate it!

Average rating 5 / 5. Vote count: 1

No votes so far! Be the first to rate this post.

2 thoughts on “Error en XSLT del SAT provoca errores en la generación/validación de factura electrónica

  1. Yo tambien note este error durante el dia de ayer.
    Ademas de corregirlo como se comenta en post, me esta generando saltos de linea en la generacion de la cadena original, apartir del archivo xml, esto solo me lo esta dando en le parte de la razon social, tanto en emisor como receptor.

    Es muy raro, porque hasta diciembre del año pasado, todas las facturas que se generaron en el sistema, en su version impresa, la cadena original salia perfectamente bien.

    Aun sigo haciendo pruebas, para descartar algun fallo en mi codigo ó como consecuencia del error proveniente del SAT.

    Les agradeceria mucho cualquier aviso sobre alguna situacion parecida a la mia.

    Gracias

Leave a Reply