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 🙂

Author: El Pop

Fernando "El Pop" Romo Nació y creció en la Ciudad de México, estudió y pasó de noche la carrera de Física en la Facultad de Ciencias de la UNAM, en su crisis existencial cursó algo de Ingeniería Electrónica en la UAM. En el pasado trabajó (o eso decía) en el Área de Ingeniería de Sistemas de Banamex, del cual harto del método laboral del banco, renuncia y pone su primera empresa de indias conocida como "Físicos Ingenieros y Matemáticos en Concertación, S.A. de C.V." (FIMAT), por razones de sanidad fiscal la cierra y abre la empresa "Origen de Sistemas, S.A. de C.V.", la cual vende y se va a trabajar a Acer Computec Latino América, toma cargo de la dirección de sistemas y lleva a cabo proyectos en la región. En una nueva crisis existencial, decide dejar Acer y abrir un portal dedicado al Software Libre llamado "La Cofradia Digital". Actualmente es presidente del Grupo de usuarios de Linux de México, A.C. (cargo para el cual ya se considera viejo), Director General de la empresa "Incuvox, S.A. de C.V.", Director de Voipcamp, S.C. y cuando le queda tiempo libre trabaja en algo que le permita mantener a sus hijos.

8 thoughts on “Castrosidades del SAT para la factura electrónica: Ahora necesitas BOM”

  1. 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.

  2. 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

  3. 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.

  4. 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.

Leave a Reply