Validador del SAT - BOM

444 views
Skip to first unread message

Baltazar Moreno

unread,
Jul 11, 2011, 1:01:43 PM7/11/11
to vfp-factura-ele...@googlegroups.com
El Validador del SAT desde la semana pasada está validando que el XML esté codificado en UTF-8 (con BOM)
dicha validación no se realizaba desde el inicio de ésto por allá de 2004/2005 cosa que apenas se les 
ocurrió a estos cuates y como siempre, NUNCA AVISAN de los cambios que hacen a sus sistemas.

Ésto esta mal desde mi punto de vista ya que los comprobantes que se emitieron desde 2005 a la fecha
(que antes eran válidos) el validador del SAT ahora los marca con un error como el siguiente:

Resumen del análisis del XML

Se presentaron errores al leer el comprobante: C:\FACTURA.xml
Error: CFD no codificado en: UTF-8.
Codificado en: ANSI (No Unicode).

Lo más raro es que el validador de CFDI actualmente NO realiza dicha validación y aunque los XML estén
en UTF-8 sin BOM los valida correctamente. (NI SIQUIERA SE PONEN DE ACUERDO EN EL SAT)

Ahora, en VFP es muy sencillo agregar esta Marca de Orden de Bytes (BOM) a nuestros archivos XML, en mi caso particular
utilizo la siguiente funcion:

* -------------------------------------------
FUNCTION AddBOM(cArchivo)
* -------------------------------------------
* Esta funcion agrega la marca BOM
* (Byte Order Mark - Marca de órden de bytes)
* Al archivo (XML) indicado por parámetro.
* -------------------------------------------
IF !FILE(cArchivo) OR EMPTY(cArchivo)
RETURN 
ENDIF 
LOCAL oldSetSafety,cXMLsinBOM,_BOM,cXMLconBOM
oldSetSafety = SET("safety")
SET SAFETY OFF
cXMLsinBOM = FILETOSTR(cArchivo)
_BOM = chr(EVALUATE("0xef"))+chr(EVALUATE("0xbb"))+chr(EVALUATE("0xbf"))
IF LEFT(cXMLsinBOM,3) != _BOM
cXMLconBOM = _BOM + cXMLsinBOM
STRTOFILE(cXMLconBOM,cArchivo)
ENDIF 
SET SAFETY &oldSetSafety
RELEASE oldSetSafety,cXMLsinBOM,_BOM,cXMLconBOM
ENDFUNC 
* -------------------------------------------

¿Que opinan del tema?

Espero les Sirva.

Saludos!

--
Baltazar Moreno
VFP9SP2 - Win7

Cesar Esquivel

unread,
Jul 11, 2011, 1:05:40 PM7/11/11
to vfp-factura-ele...@googlegroups.com
Osea que hay que cambiar la forma de hacer el XML?

Este BOM donde se pone??





--
Has recibido este mensaje porque estás suscrito al grupo "vfp-factura-electronica-mexico" de Grupos de Google.
Para ver este debate en la Web, visita https://groups.google.com/d/msg/vfp-factura-electronica-mexico/-/FGRK7KYmyi4J.
Para publicar una entrada en este grupo, envía un correo electrónico a vfp-factura-ele...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a vfp-factura-electroni...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/vfp-factura-electronica-mexico?hl=es.

Arturo Ramos

unread,
Jul 11, 2011, 1:09:21 PM7/11/11
to vfp-factura-ele...@googlegroups.com
Gracias Hugo,

Si Cesar, si utilizas la clase CFD29 haz lo siguiente.

Para los que utilizan la clase CFD29:

1. Al inicio del código definan
    #DEFINE _BOM    CHR(239)+CHR(187)+CHR(191)

2. En el procedimiento CrearCFD(), busquen las siguientes líneas y añadan lo que falta, insetar el BOM
   *-- Se graba de nuevo el Xml ya en su forma final
   cBuff = CFDAsc2UTF8(cBuff)
   *-- 11/07/11 - Arturo Ramos - Agrega BOM (Byte-Order-Mark) correspondiente a UTF-8
   cBuff = _BOM + cBuff
   STRTOFILE(cBuff,pcArchivo)
   cBuff=""

Saludos.

Arturo Ramos
www.ircsasoftware.com.mx
Cancún, México.

Baltazar Moreno

unread,
Jul 11, 2011, 1:11:54 PM7/11/11
to vfp-factura-ele...@googlegroups.com
En mi caso, estoy liberando una versión de nuestra aplicación que toma desde un archivo INI, la configuración para Agregar o no el  BOM

Porque el SAT no sé si se valla a arrepentir o no.. entonces.. mejor lo dejo desde mi archivo de conf.

Donde va el BOM?, te sugiero que leas:

Básicamente son 3 caracteres hexadecimales que van al inicio del archivo.. revisa el código que anexé.

Arturo Ramos

unread,
Jul 11, 2011, 1:19:16 PM7/11/11
to vfp-factura-ele...@googlegroups.com
Baltazar, (perdón que te dije Hugo)...

Yo creo que no está de más dejarlo, aun que den marcha atras el dato no hace conflicto con nada.

Lo que si esta de la tostada es que ahora se les ocurra tal '"#$%', pero en fin.

Gracias por tu función, voy a ponerla en una opción de menú para mis sistemas y poner a los clientes a actualizar archivos !!!, será buena idea ???
Me refiere a ponerse a 'agregar' el BOM a los XML emitidos y ya validados correctamente ??

Cesar Esquivel

unread,
Jul 11, 2011, 1:26:52 PM7/11/11
to vfp-factura-ele...@googlegroups.com

Uy estos del SAT ya no hayan que inventar, ni modo a modificar programas

Saludos!


--
Has recibido este mensaje porque estás suscrito al grupo "vfp-factura-electronica-mexico" de Grupos de Google.

Cesar Esquivel

unread,
Jul 11, 2011, 1:27:26 PM7/11/11
to vfp-factura-ele...@googlegroups.com
gracias!!

Saludos!

El 11 de julio de 2011 12:01, Baltazar Moreno <bmor...@gmail.com> escribió:

--
Has recibido este mensaje porque estás suscrito al grupo "vfp-factura-electronica-mexico" de Grupos de Google.

Hugo C.

unread,
Jul 11, 2011, 1:27:50 PM7/11/11
to vfp-factura-electronica-mexico
Gracias por la información Baltazar.

Estos del SAT y sus #@!!?!!!.

Saludos.

Cesar Esquivel

unread,
Jul 11, 2011, 1:48:43 PM7/11/11
to vfp-factura-ele...@googlegroups.com
Hace un minuto entre al Validador del SAT y no funciona, solo sube el archivo pero despues aparece todo en blanco.

Ni pruebas dejan hacer.

:S

> VFP9SP2 - Win7

--
Has recibido este mensaje porque estás suscrito al grupo "vfp-factura-electronica-mexico" de Grupos de Google.

vanash...@hotmail.com

unread,
Jul 11, 2011, 1:55:49 PM7/11/11
to vfp-factura-electronica-mexico
Bueno para mi desforunia,
tengo ASPEL SAE...

Yo creo que en este caso tendre que hablarles a su SOPORTE VERDAD??
que podira hacer con los Cientos de XML que ya tengo==?????

Habra alguna forma que a esos XML les pueda agregar el EMTADO "BOM".


Muhcas Gracias.


On 11 jul, 12:48, Cesar Esquivel <ceski...@gmail.com> wrote:
> Hace un minuto entre al Validador del SAT y no funciona, solo sube el
> archivo pero despues aparece todo en blanco.
>
> Ni pruebas dejan hacer.
>
> :S
>
> >http://groups.google.com/group/vfp-factura-electronica-mexico?hl=es.- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

vanash...@hotmail.com

unread,
Jul 11, 2011, 1:57:40 PM7/11/11
to vfp-factura-electronica-mexico
Bueno...
a lo que me refiero de forma automatica y no ir abriendo y guardando
uno por uno mis archivos.


:(
DE LOCOS NO?????????


On 11 jul, 12:55, "vanasheck...@hotmail.com"
> > >http://groups.google.com/group/vfp-factura-electronica-mexico?hl=es.-Ocultar texto de la cita -
>
> > - Mostrar texto de la cita -- Ocultar texto de la cita -

Baltazar Moreno

unread,
Jul 11, 2011, 2:06:52 PM7/11/11
to vfp-factura-ele...@googlegroups.com
Pues para eso esta el Zorro, con un programita pequeño, e invocando la función antes expuesta puedes hacerlo de manera automática:

Algo así:

cRutaConXMLs = "c:\Aqui\Estan\tus\XML\"

lnNumFiles=ADIR(VECTOR,cRutaConXMLs+"*.XML")
IF lnNumFiles>0
    FOR I=1 TO ALEN(VECTOR) STEP 5 
        lcFileName = ALLTRIM(VECTOR(I))
        AddBOM(lcFileName)
    NEXT 
ENDIF 


Sencillo como todo lo hecho en FOX

Larga vida al Zorro!!

Cesar Esquivel

unread,
Jul 11, 2011, 2:07:30 PM7/11/11
to vfp-factura-ele...@googlegroups.com
Alguien sabe si el SAT tiene un escrito oficial con este cambio o algo asi?

Baltazar Moreno

unread,
Jul 11, 2011, 2:09:15 PM7/11/11
to vfp-factura-ele...@googlegroups.com
No te preocupes Arturo.. 

Estoy haciendo Ruido en Twitter con gente Fiscalista, y que están "bien parados" con gente de los altos mandos del SAT, a ver que nos dicen, por lo pronto, seguiré con mi configuración, porque en lo particular, mi aplicación genera ademas de CFD y CFDI otros tipos de documentos electrónicos, por ésto lo tengo que dejar configurable.

Arturo Ramos

unread,
Jul 11, 2011, 2:09:33 PM7/11/11
to vfp-factura-ele...@googlegroups.com
Compañero, dime una cosa, SAE no los hace con el BOM ?, los XML del SAE te marcan error en el validador, el error de UTF-8 ?

Saludos

Arturo Ramos
www.ircsasoftware.com.mx
Cancún, México

Cesar Esquivel

unread,
Jul 11, 2011, 2:18:55 PM7/11/11
to vfp-factura-ele...@googlegroups.com
Pasen sus Twitters pa seguirlos

--
Has recibido este mensaje porque estás suscrito al grupo "vfp-factura-electronica-mexico" de Grupos de Google.

vanash...@hotmail.com

unread,
Jul 11, 2011, 2:19:50 PM7/11/11
to vfp-factura-electronica-mexico
NOUP!!!

no lo esta haciendo!!!!
:(

Baltazar Moreno

unread,
Jul 11, 2011, 2:22:14 PM7/11/11
to vfp-factura-ele...@googlegroups.com
Que yo sepa no hay nada oficial, sólo se les ocurrió cambiar el validador, y sólo fué el de CFD, el de CFDI sí acepta XML sin BOM.

Hablé por tel el viernes con los del SAT, cosa que sirvió sólo para hacerme enojar, ya que la Srita que me atendió salió con que limpiara de coockies mi máquina y que borrara temporales para que "funcionara correctamente" y pudiera validar mis XML, y que si seguía igual, que reiniciara la pc, y que si tampoco, que era mi aplicación el problema. JA'

Bueno, ya que.. estoy actualizando a mis clientes, por lo que me perderé un rato.

Saludos y suerte a todos, si saben alguna novedad, nos la platican.

Arturo Ramos

unread,
Jul 11, 2011, 2:27:37 PM7/11/11
to vfp-factura-ele...@googlegroups.com
No se tomaría esto como una violación al principio de que los comprobantes digitales no deben ser modificados una vez emitidos ??

Estrictamente hablando se deberían cancelar y emitir de nuevo con su respectivo folio siguiente actual, no ??

Cesar Esquivel

unread,
Jul 11, 2011, 2:29:38 PM7/11/11
to vfp-factura-ele...@googlegroups.com
Ademas que pasa con todos los comprobantes que ya mandaste a todos tus clientes?

--
Has recibido este mensaje porque estás suscrito al grupo "vfp-factura-electronica-mexico" de Grupos de Google.

Hugo Carlos Aguilar Zapata

unread,
Jul 11, 2011, 2:38:34 PM7/11/11
to vfp-factura-ele...@googlegroups.com
Pues is pero es mas pex no Arturo, bueno depende del volumne de CFD emitidos,  apenas que el SAT haga un anuncio sobre esto, su sitio no menciona nada, o al menos no he encontrado un anuncio, nota, o comunicado sobre el cambio y su impacto y afectación de los CFDs emitidos.

ni pex a modificar codigo por lo pronto




El 11 de julio de 2011 13:27, Arturo Ramos <irc...@gmail.com> escribió:

--
Has recibido este mensaje porque estás suscrito al grupo "vfp-factura-electronica-mexico" de Grupos de Google.

Alejandro Castrejon

unread,
Jul 11, 2011, 4:49:44 PM7/11/11
to vfp-factura-ele...@googlegroups.com
Hace unos minutos valide algunos XML generados por mis clientes y no me marco ningún problema, cabe comentar que mi aplicación la desarrolle en C# no en VFP.

Saludos,

Alejandro Castrejón Torres
Teléfono: (662) 200-8957
Email: alejandro...@smartfactura.com
Sitio: http://www.smartfactura.com
 

This message was sent by Alejandro Castrejón. If you really want to know more about me, you can  visit my social services profiles
My profiles: Facebook LinkedIn Google Buzz Twitter
Contact me: Google Talk castrejon.alejandro Skype alejandro.castrejon MSN alejandro...@smartfactura.com

Enrique Martinez

unread,
Jul 11, 2011, 4:57:24 PM7/11/11
to vfp-factura-ele...@googlegroups.com
Hola estaba siguiendo todas sus respuestas, y yo hice pruebas con el
validador de la version 3 para cfdi, validé un CFD y pasó la
validación solo me dice que indique la ruta del certificado del
timbre, pero lo demás me lo marca como anteriormente en la version
2.0 me lo mostraba"El sello del Comprobante Fiscal Digital es válido",
y si como comentan, quise validarlo con el validador 2.0 y me marca
"error al generar la cadena" y "el sello del comprobante es invalido".

Para su información

Saludos

Enrique Martínez Regalado

El día 11 de julio de 2011 13:38, Hugo Carlos Aguilar Zapata
<hugocarl...@gmail.com> escribió:

manuel

unread,
Jul 11, 2011, 8:00:46 PM7/11/11
to vfp-factura-electronica-mexico
Baltazar una consulta que no he encontrado por ninguna parte haber si
me puedes ayudar?

en el xml, me piden que traiga en <Impuestos
totalImpuestosRetenidos=99.99>

en el moment que pongo esta etiqueta en la estructura del CFD me manda
que el sello es invalido.
no se si me puedas ayudar.
en el xml aperentemente esta todo bien pero el problema es al
validarlo.

Alguna Idea?
De antemano Grs.

Baltazar Moreno

unread,
Jul 11, 2011, 9:10:20 PM7/11/11
to vfp-factura-ele...@googlegroups.com
Esto seria otro tema.

Revisa tu cadena original, ya que de ésta se obtiene el sello,
seguramente te falta agregar ese dato a la c.o.

Saludos!

El 11/07/11, manuel <mrco...@gmail.com> escribió:

> --
> Has recibido este mensaje porque estás suscrito al grupo
> "vfp-factura-electronica-mexico" de Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo electrónico a
> vfp-factura-ele...@googlegroups.com.
> Para anular tu suscripción a este grupo, envía un correo electrónico a
> vfp-factura-electroni...@googlegroups.com
> Para tener acceso a más opciones, visita el grupo en
> http://groups.google.com/group/vfp-factura-electronica-mexico?hl=es.
>
>

--
Enviado desde mi dispositivo móvil

Baltazar Moreno

Baltazar Moreno

unread,
Jul 12, 2011, 3:14:41 PM7/12/11
to vfp-factura-ele...@googlegroups.com
Yo no lo veo así, ya que lo que estás modificando es sólo el encoding, no el contenido del archivo.

Saludos!

Baltazar Moreno

unread,
Jul 12, 2011, 3:56:15 PM7/12/11
to vfp-factura-ele...@googlegroups.com
Les  paso una pequeña aplicación que hace éste cambio, básicamente ejecuta el código expuesto, con sus correcciones y respectivas validaciones.


Busca una carpeta (donde estén los XML) y les agrega la marca BOM si es que no la tiene.

Arturo Ramos

unread,
Jul 12, 2011, 10:44:24 PM7/12/11
to vfp-factura-ele...@googlegroups.com
Gracias Baltazar,

Arturo Ramos

unread,
Jul 13, 2011, 9:53:40 PM7/13/11
to vfp-factura-ele...@googlegroups.com
Baltazar,

voy a crear un tema con esta solución para que se pueda ubicar más fácil en el foro, sale ?

Baltazar Moreno

unread,
Jul 14, 2011, 1:11:00 PM7/14/11
to vfp-factura-ele...@googlegroups.com
Gracias!

gil_gzz18

unread,
Jul 15, 2011, 9:51:51 AM7/15/11
to vfp-factura-ele...@googlegroups.com
Buen dia a todos,

Espero me puedan ayudar, de antemano muchas gracias por la aportacion del BOM funciona de maravilla, pero ahora me he dado cuenta que ya hecho el BOM, ahora no valida el sello, es decir entro al validador del SAT y me dice lo siguiente

Resumen del análisis del XML
Archivo XML :CFD_I_IPR910513CT1_A3.xml
Ruta :C:\BuzonCFD\Contribuyentes\ipr910513ct1\cfdxml\2011\CFD_I_IPR910513CT1_A3.xml
Estructura : Estructura del CFD correcta 
CFD codificado en: UTF-8.
El comprobante incluye un certificado codificado
El sello del comprobante es Inválido, el sello debe estar en SHA1 
 Detalle del análisis del XML
Resultado de la Digestión SHA1 :El algoritmo utilizado en el sello no es correcto
Tipo de Certificado:CSD
No. de Serie del CSD :00001000000102405046
Cadena Original :||2.0|A|3|2011-07-15T08:35:28|33626|2010|ingreso|Pago en una sola exhibicion|178.00|206.48|IPR910513CT1|INDUSTRIAS PRAS, S.A. DE C.V.|BUSTAMANTE|932|BELLA VISTA|MONTERREY|NUEVO LEON|MEXICO|64410|CMO560929522|CONDUCTORES MONTERREY S.A DE C.V.|AV. CONDUCTORES|505|CONSTITUYENTES DE QUERETARO|SAN NICOLAS DE LOS GARZA|NUEVO LEON|MEXICO|66490|1.00|REPARACION DE MINITAMBO DE FIBRA DE VIDRIO REPARACION TAMBOR|178.00|178.00|IVA|16|28.48||

Aqui es donde estoy confundido, tenia entendido que los que estaban bajo el esquema de facturacion del 2010 solo tenian que encriptar con MD5 y lo peor del caso es que cambie el programa para que encriptara con SHA1 

Alguien me puede orientar por favor

De antemano gracias por su atencion.


Alejandro Castrejon

unread,
Jul 15, 2011, 10:00:53 AM7/15/11
to vfp-factura-ele...@googlegroups.com
Creo que te confundiste, lo que dice es que lo comprobantes generados hasta el 2010 debe ser usar MDB5 y a partir del 2011 debes cambiar ti algoritmo a SHA-1.


Espero te sirva y temporalmente desde MTY,

Alejandro Castrejón Torres
Teléfono: (662) 200-8957
Email: alejandro...@smartfactura.com
Sitio: http://www.smartfactura.com
 

This message was sent by Alejandro Castrejón. If you really want to know more about me, you can  visit my social services profiles
My profiles: Facebook LinkedIn Google Buzz Twitter
Contact me: Google Talk castrejon.alejandro Skype alejandro.castrejon MSN alejandro...@smartfactura.com

--
Has recibido este mensaje porque estás suscrito al grupo "vfp-factura-electronica-mexico" de Grupos de Google.

Arturo Ramos

unread,
Jul 15, 2011, 10:17:04 AM7/15/11
to vfp-factura-ele...@googlegroups.com
Todos los comprobantes emitidos después del 31 de Diciembre del 2010 DEBEN usar SHA-1 para encriptar, MD5 ya no se usa más para nada.

Saludos

Baltazar Moreno

unread,
Jul 15, 2011, 11:45:51 AM7/15/11
to vfp-factura-ele...@googlegroups.com
Si se usa md5: Solo para validar los comprobantes del 31 de diciembre/2010 y anteriores ;D

Francisco A. Martínez R.

unread,
Jul 15, 2011, 11:58:15 AM7/15/11
to vfp-factura-ele...@googlegroups.com
A partir del 2011 debes cambiar ti algoritmo a SHA-1. Solo hay que cambiar eso. Si estás utilizando ChilKat es muy sencillo.

--
Has recibido este mensaje porque estás suscrito al grupo "vfp-factura-electronica-mexico" de Grupos de Google.

Arturo Ramos

unread,
Jul 15, 2011, 12:20:36 PM7/15/11
to vfp-factura-ele...@googlegroups.com
Si, si, es verdad... buen punto... Gracias por el ajuste =)...

Saludos.

Arturo Ramos
www.ircsasoftware.com.mx
Cancún, México.

gil_gzz18

unread,
Jul 15, 2011, 12:35:52 PM7/15/11
to vfp-factura-ele...@googlegroups.com
Gracias a todos por sus respuestas, hare los ajuste necesarios.

Francisco si uso Chilkat y creo que debe ser esta linea a modificar 

loRsa.SignStringENC(CadenaOriginal,"md5")

cambiar por 

loRsa.SignStringENC(CadenaOriginal,"sha1")

Si es correcto por favor indicame

Saludos y gracias a todos, es bueno saber que uno no esta solo en esto.


Francisco A. Martínez R.

unread,
Jul 15, 2011, 2:28:20 PM7/15/11
to vfp-factura-ele...@googlegroups.com
Si, es correcto

--
Has recibido este mensaje porque estás suscrito al grupo "vfp-factura-electronica-mexico" de Grupos de Google.

Halcón Divino

unread,
Jul 19, 2011, 8:58:00 AM7/19/11
to vfp-factura-electronica-mexico
El SAT ya corrigió el problema con el Validador
Saludos

Alejandro Castrejon

unread,
Jul 19, 2011, 9:07:06 AM7/19/11
to vfp-factura-ele...@googlegroups.com
La verdad yo no creo que sea un problema, quiza el error de ellos fue no incluir esta validacion desde el principio, yo sabia de una empresa que emplea el software MacroPior  perdon MacroPro y un de sus clientes desde Enero le rechazaba los CFD argumentando exactamente ese error, creo que era el grupo Alfa o Mexico al parecer ellos emplean un validador propio, y los idiotas programadores del MacroPro negaban su error y era por la ignorancia de no conocer los estandares de la tecnologia que trataban de emplear.

Saludos,
Alejandro Castrejon

El 19 de julio de 2011 05:58, Halcón Divino <halcon...@gmail.com> escribió:
El SAT ya corrigió el problema con el Validador
Saludos
--
Has recibido este mensaje porque estás suscrito al grupo "vfp-factura-electronica-mexico" de Grupos de Google.

Enrique Martinez

unread,
Jul 21, 2011, 2:14:28 PM7/21/11
to vfp-factura-ele...@googlegroups.com
Alguien me puede decir por que no me acepta el BOM, al ponerselo al
XML al abrirlo en algun navegador me marca el error que adjunto en un
archivo.

Muchas gracias por su ayuda, saludos

Enrique Martinez Regalado


El día 19 de julio de 2011 08:07, Alejandro Castrejon
<castrejon...@gmail.com> escribió:

error.JPG

Arturo Ramos

unread,
Jul 21, 2011, 4:27:12 PM7/21/11
to vfp-factura-ele...@googlegroups.com
Enrique,

Seguro que sólo eso estas cambiando, por que no abres tu XML con XMLNotepad, buscalo en google, ahi veras más claro lo que te eta marcando error.

Pablo

unread,
Jul 26, 2011, 3:28:21 PM7/26/11
to vfp-factura-ele...@googlegroups.com
Aparte de cambiar el  MD5 por el SHA-1 tienes que cambiar la fecha     fecha      = "2010-06-24T16:00:00" ,;
por una del 2011....

saludos
Reply all
Reply to author
Forward
0 new messages