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

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


0 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 5 (0 votes, average: 0.00 out of 5)
You need to be a registered member to rate this post.
Loading...
internet, Paranoia Fan Club, Política, Programacion, Tips técnicos | RSS 2.0 |     4,337 views

RSS feed

2 Comments »

Comment by marcos.mx
2011-01-04 11:14:55

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

 
Comment by El Pop
2011-01-04 21:52:50

Al parecer ya repusieron el archivo que faltaba, pero se recomienda tener copias de los archivos que invoca para poder facturar fuera de linea.

 
Name (required)
E-mail (required - never shown publicly)
URI
Your Comment (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> in your comment.

Trackback responses to this post