Castrosidades del SAT para la factura electrónica: Ahora necesitas BOM

Pues ahora el programa validador del SAT (un applet de Java) para factura electrónica, invalida los archivos que emites y los que has emitido ya que busca que los archivos de XML tengan un BOM (Byte order mark) que especifica que el archivo está en UTF-8 y así pueda procesarlo.

Pero no entren en pánico, la solución es sencilla (BOM.pl):

#!/usr/bin/perl
#===================================================================#
# Program => BOM.pl (In Perl 5.0)                     version 0.0.1 #
#===================================================================#
# Autor         => Fernando "El Pop" Romo        (pop@cofradia.org) #
# Creation date => 11/jul/2011                                      #
#-------------------------------------------------------------------#
# Info => This program take a XML file and put a Byte order mark to #
#         indicate UTF-8 is the encode of the data                  #
#-------------------------------------------------------------------#
#                    (c) 2011 - Fernando Romo                       #
#-------------------------------------------------------------------#
#              Release under the GNU/GPL License v3.0               #
#===================================================================#
 
use UTF8BOM;
 
UTF8BOM->insert_into_file($ARGV[0]);
 
print "BOM en UTF8 $ARGV[0]\n";

Con este script en Perl usando el módulo de CPAN UTF8BOM solucionamos el problema. No necesitan re-hacer la factura solo hacer lo siguiente:

$ ./BOM.pl Fac_INC101109Q36_A0054_MCM960926B49_20110711.xml
BOM en UTF8 Fac_INC101109Q36_A0054_MCM960926B49_20110711.xml

Adicionalmente podemos usar un script en bash para corregir todas las facturas electrónicas en XML que esten en un directorio:

#!/bin/bash
for a in *.xml
do
  ./BOM.pl `echo $a` 
done

y ya esta 🙂


2 votes, average: 5.00 out of 52 votes, average: 5.00 out of 52 votes, average: 5.00 out of 52 votes, average: 5.00 out of 52 votes, average: 5.00 out of 5 (2 votes, average: 5.00 out of 5)
You need to be a registered member to rate this post.
Loading...
internet, Perl, Programacion | RSS 2.0 |     2,250 views

RSS feed

8 Comments »

Comment by Alfredo Ramírez
2011-07-12 13:37:05

disculpa mi ignorancia pop…
solo por curiosidad…
existe algún comunicado que haga referencia a “éste cambio”?

 
Comment by El Pop
2011-07-12 13:42:55

Para variar, no hay comunicado, solo lo implementaron, a la SAT, o sea por sus pistolas, checa tus facturas e el nuevo validador y veras a que nos referimos. de pilón se llevarón los namespaces de las addendas entre las patas.

 
Comment by Alfredo Ramírez
2011-07-12 13:51:41

muy amable, gracias por el dato.

 
Comment by Jaszaire
2011-07-12 18:55:05

Oye no podria ser un error de validador que se les halla olvidado quitarlo?.

Mis faturas pasadas les tengo que agregar el BOM?.

Gracias.

 
Comment by el_pjuan
2011-07-13 01:51:57

Ha habido algún cambio en el anexo 20? El validador del sat me marca estos mensajes con respecto a los atributos de impuestos retenidos y trasladados.

Estructura : Error en la línea: 2: El atributo ‘TotalImpuestosRetenidos’ no esta permitido que aparezca en el elemento ‘Impuestos’ de la estructura del CFD definida por el SAT.
Error en la línea: 2: El atributo ‘TotalImpuestosTrasladados’ no esta permitido que aparezca en el elemento ‘Impuestos’ de la estructura del CFD definida por el SAT.

Con el sw de http://www.validacfd.com validan sin problemas.

Saludos

 
Comment by Jaszaire
2011-07-13 10:47:17

Acabo de llamar hacienda y me comentaron que es un error de su validador que lo modificaran asi que si tiene ese error debe tener algunos mas.

Saludos.

 
Comment by mvela
2011-07-15 09:17:24

Lo que no entiendo de la factura electrónica, es como subir las notas de caja, ya que la mayor parte de la población no quiere tener registro ante el SAT y pues en las facturas electrónicas van ligadas al RFC.
¿Cómo se puede solucionar este problema?
¿Cómo se puede solucionar los charge back de las tarjetas de crédito?
Otro de los poblemas es que a lo mejor fue autorizado un pago, pero que el cliente intente desconcer después y te retiran los fondos, de tal manera que la facutra eléctronica en donde procederia hacer el abono ya que no se pago.

 
Comment by joelbecerram
2011-07-19 17:45:55

El SAT ya cambio la versión del validador, ya no necesitan BOM para validar que los CFD estén en UTF-8.
Saludos.

 
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