Factura Electronica – Como generar los reportes mensuales
Continuando con mi serie de temas de como implementar factura electrónica en México, les comento a continuación la forma en la cual podremos generar los reportes mensuales que debemos enviar al SAT para indicarle cuantos folios hemos emitido.
El codigo fuente esta demás explicarlo porque pocas veces el SAT proporciona documentación muy completa para realizar este proceso.
1. El archivo del informe mensual deberá ser creado con formato de texto simple, con extensión TXT y contener un registro por reglón.
2. Ninguno de los atributos que conforman el informe mensual deberá contener el caracter | ('pipe') debido a que este será utilizado como carácter de control en la formación del informe mensual.
3. El inicio de cada registro dentro del informe mensual se marcará mediante un caracter | ('pipe' sencillo).
4. Cada campo individual se encontrará separado de su dato subsiguiente, mediante un caracter | ('pipe' sencillo).
5. Se expresará únicamente la información del dato sin expresar el atributo al que hace referencia. Esto es, si la serie del comprobante es 'A' solo se expresará |A| y nunca |Serie A|.
6. En el caso de datos con valor Nulo serán expresados en el informe mensual mediante una cadena de caracteres || ('pipe' doble).
7. El final de cada registro dentro del informe mensual se marcará mediante un caracter | ('pipe' sencillo).
8. Para aquellos contribuyentes que cumplan con lo dispuesto en la regla I.2.5.3. de la presente Resolución Miscelánea Fiscal, y emitan comprobantes para efectos fiscales en distintos esquemas al mismo tiempo, deberán generar un archivo de informe mensual por cada tipo de esquema de comprobación que utilicen.
9. El nombre del archivo del informe mensual se compone de:
a. número del esquema:
1 para Facturas Electrónicas.
2 para Comprobantes solicitados por medio de un establecimiento autorizado.
b. RFC del emisor.
XXXX010101000
c. Mes y Año a ser reportado.
mmyyyy
Si tuvieras alguna duda puedes realizarla en los comentarios de este tema y te respondere a la brevedad posible.
Como convertir XML a XSD y despues a HTML para la Factura Electronica
Continuando con mis consejos para generar la Factura Electrónica en México con PHP. Si quieres consultar otros temas te invito a visitar:
Como se obtiene el Sello digital
Tips Para implementar Factura Electrónica
Quiero explicarles el método más fácil y sencillo para convertir el XML En un formato válido para el SAT, usando el XSD que al final puedas generar tu HTML.
Lo unico que necesitas es obtener del SAT los archivos XSLT para verificar la secuencia de la cadena original con tu CFD.
Descarga cadenaoriginal_2_0.xslt (si te pide usuario y/o contraseña, intenta descargarlo con IE)
Con ese archivo obtienes tu Sello Digital ejecutando el comando:
xsltpoc template_cadena_original_2_sat.xsl tu_archivo_xml.xml openssl dgst md5 -sign llave_privada.key.pem | openssl enc base64 -A
Después con tu XML que generaste, solo ocupas procesar éste comando para realizar la conversión:
xsltproc cadena_original_SAT.xml TU_Archivo.xml > ARCHIVO_SALIDA.html
CONSEJO IMPORTANTE...
cuando generes tu template XLS para convertir a HTML válida que tus estilos y tu código HTML no contenga ningún error de programación, de lo contrario, el archivo que se te generará será vacío.
Cualquier duda en los comentarios, consultando todos mis temas que tengo de factura electrónica o si necesitas asesoria un poco más personalizada puedes usar el formulario de contacto, mandarme tus dudas y para ayudarte a implementar está solución.
Como se obtiene el sello digital – Factura electronica
Continuando con mi experiencia con la implementación de la facturación electrónica y basandome en los manuales que encontre y complementandolos quiero comentarles el método adecuado para generar el Sello digital para incrustarselo en el XML que se enviara al SAT.
En el tan afamado Anexo 20 de la Resolución Miscelánea Fiscal para 2009 en resumen dice que para obtener el sello digital solo necesitamos calcular el MD5 de la cadena Original y después con nuestra llave privada (terminación .key.pem) le pasamos una encriptacion con RSA y el resultado de esto lo encriptamos en Base64 y listo tenemos nuestro sello digital y el comando es:
openssl dgst sign [URL_DE_LLAVE_PRIVADA] [URL_ARCHIVO_CADENA_MD5_DE_CADENA_ORIGINAL] | openssl enc -base64 -A [URL_ARCHIVO_SALIDA_PARA_SELLO_DIGITAL]
Solamente necesitas reemplazar las variables que estan entre [] por tus datos y listo fácil y rápido obtendrás tu sello digital
No olvides visitar algunos tips para implementar factura electronica
ACTUALIZACION:
He encontrado otro metodo para generar el sello digital, cadena original y el MD5 de esta... Este método me funciono y es más rápido de implementar... cabe mencionar que esto funciona con PHP
xsltproc archivo_base_convertir_xsd.xsl archivo_xml.xml openssl dgst -md5 sign llave_privada.key.pem | openssl enc base64 -A
Cualquier duda en los comentarios, consultando todos mis temas que tengo de factura electrónica o si necesitas asesoria un poco más personalizada puedes usar el formulario de contacto, mandarme tus dudas y para ayudarte a implementar está solución.
Tips para implementar facturacion electronica
El Sistema de Administración Tributaria en México establecio que para el 2011 todos los contribuyentes deberan entregar certificados Firmados Digitalmente o lo que es lo mismo la facturación electrónica.
A continuación y durante varios días estare listando algunos tips que te podrán ayudar si deseas implementarlo pro tu propia cuenta, puedas hacerlo de forma correcta... cabe destacar que en Internet hay diversas fuentes y 2 de ellas son las siguientes:
Foros del Web - facturacion electronica en México
Comprobantes Fiscales Digitales
Para implementar los CFD necesitamos generar con un programa llamada SOLCEDI nuestras llaves con terminación .key y un .cer y para generar el sello debemos que encriptarlos con OpenSSL y los comandos correctos para obtenerlos son:
Para crear llave publica
C:\Program Files\GnuWin32\bin>openssl.exe pkcs8 -inform DER -in C:\aaa010101aaa_CSD_01.key -passin pass:a0123456789 -out C:\aaa010101aaa_CSD_01.key.pemPara crear llave privada
C:\Program Files\GnuWin32\bin>openssl.exe x509 -inform DER -outform PEM -in C:\aaa010101aaa_CSD_01.cer -pubkey -out C\aaa010101aaa_CSD_01.cer.pem
Es de destacar que estoy mostrando los ejemplos que el mismo sat provee y que cuando compiles con OpenSSL la dirección de tus archivos debe ser la absoluta.
Cualquier duda en los comentarios, consultando todos mis temas que tengo de factura electrónica o si necesitas asesoria un poco más personalizada puedes usar el formulario de contacto, mandarme tus dudas y para ayudarte a implementar está solución.
