Facturación Electrónica en México

factura_electronica

El Sistema de Administración Tributaria (SAT) en México, ha dispuesto que en 2010 se inicie el proceso de adopción del uso de Comprobantes Fiscales Digitales (CFD), también conocidos como Facturas Electrónicas. Pues bien, personalmente es un asunto del que no me había ocupado hasta hace pocas semanas, dada la necesidad que tuve de emitir comprobantes fiscales. Pues bien, esta entrada será respecto de mis “aventuras” al tratar de emitir Facturas Electrónicas.

El Prinicipio.

Como toda historia habrá que comenzar por el principio, y en este caso se trata de contar con todos los requisitos para emitir Facturas Electrónicas, no haré una lista tal cual ya que para eso pueden ir al sitio del SAT y perderse, digo, orientarse en su laberintico y nada amigable contenido -sí, ya se que el contenido del SAT es solo reglas y políticas, pero vamos que incluso ese tipo de contenido bien presentado puede hacer más fácil el proceso- mas bien utilizaré el simple método de contarles tal como fué mi experiencia.

El primer paso fué conseguir la FIEL o como ellos (SAT) la llaman Firma Electrónica Avanzada, que en realidad no es más que una llave pública. Pero como sabemos, una llave pública sirve de muy poco sin una llave privada. Por lo que el primer paso es obtener ambas.

El SOLCEDI.

¿Como lo hice? El SAT provee una aplicación para windows (no me pregunten por qué en el SAT piensan que todo el mundo usa únicamente ese sistema operativo, ya hablaremos de eso en su momento) llamada SOLCEDI, aún desconozco el significado del nombre, aunque conociendo las nomenclaturas tan creativas del SAT, sospecho que tiene que ver con Solicitud de Certificados Digitales o algo así. Por cierto lo pueden descargar de aquí. Con el SOLCEDI, mi RFC, CURP y dirección de correo eletrónico, generé mi Llave Privada y del mismo modo la “Solicitud de la FIEL” que es un Certificado de Requerimiento firmado con mi nueva y flamante Llave Privada. Ese certificado debía se llevado físicamente al SAT, en mi caso utilicé una memoria USB para dicha tárea, por cierto el certificado de requerimiento es un archivo de extensión REQ. Para ir al SAT sugiero hacer cita, pueden solicitarla en este enlace.

La visita al SAT.

Una vez que tuve en mi USB mi llave privada y mi certificado de requrimiento de la FIEL, hice acto de presencia en las oficinas del SAT. Así, armado con mi USB, mi acta de nacimiento e identificación oficial (IFE), llegué y dije: “Vengo a sacar la FIEL”, vaya que en otro contexto se habría escuchado algo extraño, sin embargo la persona que atendía me pidió revisar mi acta de nacimiento, identificación oficial y me entrego una solicitud de FIEL o “Formato FE”. Completé el formulario, se lo mostré, lo revisó y finalmente me dió un papelito con un número mientras decía: “Sientese, cuando vea el número en la pantalla pase al módulo que se le indica”. Pues ahi estuve sentado esperando.

Después de varios minutos, finalmente apareció mi número en la pantalla, módulo doce. Pasé y me atendió un joven como de mi edad, y sí, me siento joven aún. Revisó los documentos, me pidió mi USB, descargó el archivo REQ y ya no supe que hizo con el pues no pude ver su pantalla. Me pidió que pasara a sentarme en otra sección que daba a un cuartito y esperara a que me llamaran.

El Cuartito.

Una vez que me llamaron, me pidieron que me sentara para tomarme una foto, por cierto tenían una cámara Canon EOS Rebel Xsi, me tomaron la foto, y luego me entregaron una especie de visor, la misión era acercarlo a mis ojos y no moverme cuando me lo indicaran, así que, estimados lectores, para aquellos que se lo sospechaban, se trata de un scanner retinal, ¡el futuro ha llegado!, en realidad lo que este dispositivo hace es “fotografiar” el iris y almacenar dicha imágen. Luego pasé las huellas dactilares, dedo por dedo en un scanner. Lo siguiente fué algo más común, con la ayuda de un lapiz óptico, firmar.

La FIEL.

Una vez realizada la digitalización de mi cara, manos, ojos y firma. Me enviaron de nuevo con el joven que me atendió originalmente, revisó algo en su pantalla, clickeo allá y acullá y finalmente me entregó mi USB. Me explicó que ahí estaba mi FIEL y que podía marchar felizmente talareando alguna cancioncilla alegre. La verdad es que solo me explicó que con la FIEL ya podría solicitar las Series y los Folios para mis Facturas Electronicas.

Las Series y Folios.

En el plano de las facturas impresas requeríamos de números de serie y folios, las series sirven, en escencia, para llevar control de los folios, por decir, si su negocio tiene dos sucursales entonces podrían utilizar una serie para la sucursal A y una para la B, y asi podrían tener folios para cada serie, ejemplo: A1 y B1, así sabrán que B1 es la primera factura emitida en la sucursal B. Ahora bien, en el plano digital, dichas series de folios requieren de una validación, de lo contrario cualquiera podría emitirlas y sería una gran fiesta saber si una factura es valida o falsa. En la factura impresa, una firma o el sello de la empresa podría servirnos, en el plano digital asociaremos dichas series de folios a un Certficado de Sello Digital, el cual estará firmado por nosotros con la Llave Privada y por el SAT para garantizar su validez.

El Certificado de Sello Digital.

¿Cómo obtuve el Certificado de Sello Digital? Ya en la comodidad de mi casa, generé un archivo de requerimiento con el SOLCEDI, similar al que usé para solicitar la FIEL. Pueden encontrar las confusiones, digo, instrucciones del SAT que se encuentran en este enlace. El procedimiento fué sencillo, con el SOLCEDI generé la llave privada del Sello (KEY) y también el Requerimiento(REQ). Una vez que tuve el archivo REQ lo ensobreté con el mismo SOLCEDI y me generó un archivo SDG. Ese archivo es el que le envié al SAT. ¿Donde? Al CertiSAT. Para entrar al CertiSAT solo tuve que proporcionar mi RFC y CIEC o contraseña del SAT como prefiero llamarla. Dentro hay un enlace que dice “Envío de solicitud de certificados de Sello Digital” y ahí viene un formulario para seleccionar el archivo SDG y enviarlo.

Una vez enviado se generó un Comprobante de Solicitud de Certificados de Sello Digital, con un número de Operación y firmado digitalmente por el SAT. Copié ese número de operación y dentro del mismo CertiSAT, en el enlace “Seguimiento a certificados” pegué el número de operación en el campo correspondiente e hice clic en “Seguimiento”, y me apareció una pantalla donde se muestra la situación actual de la operación de Certificados de Sello Digital. Dentro de esa pantalla, donde aparece el Número de Operación es en realidad un enlace que nos lleva al archivo que contiene el Certificado de Sello Digital, el archivo tiene por nombre el Número de Operación con extensión ZIP, lo descomprimí y obtuve el archivo con extensión CER, ese es el Certificado de Sello Digital.

Ya con mi Llave Privada, mi Llave Pública (FIEL), la Llave Privada del Certificado de Sello, y el Certificado de Sello, aún me hacían faltan, las Series de Folios. Aunque en mi caso no ocupo series, asi que solo solicité folios.

SICOFI.

Para solicitar las series hay que accesar al SICOFI, no me pregunten que significa la palabra, porque al igual que la Trinidad es también un “misterio”. Esta parte me resultó molesta, pues a pesar de que este sistema esta hecho en Java, solo funciona en un browser, a saber, Internet Explorer, en fin -después de hacer corajes e invocar a los “antiguos espiritus del mal”, como haría Mumm-Ra para que se encargaran de los individuos que programaron en Java algo que funciona en un solo navegador- logré accesar al SICOFI, y después de proporcionarle mi RFC, la Contraseña de mi Llave Privada, mi Llave Privada y mi Llave Pública (FIEL), hice clic en el enlace “Solicitud de Folios” y nuevamente proporcioné la Contraseña de mi Llave Privada, mi Llave Privada y mi Llave Pública (FIEL) y en el campo “Folios” escribí el número de folios que requería e hice clic en “Generar Archivo” y listo.

Ahora ya tenía mi Llave Privada, mi Llave Pública (FIEL), la Llave Privada del Certificado de Sello, el Certificado de Sello y los Folios (en mi caso no requerí Series), solo me hacía falta el Número y Año de Aprobación.

Número y Año de Aprobación.

En mi caso fué todo un problema, pues no encontré la documentación respecto de donde se encontraban tales datos, el año de aprobación me supuse era el año en curso, pero ¿y el número?. Y así un buen día ya “flaco, cansado, ojeroso y sin ilusiones“, mientras navegaba por el FTP del SAT encontré la respuesta, resulta que tienen un archivo de nombre FoliosCFD.txt, que pueden encontrar en este enlace, donde guardan los RFC, Números y Años de Aprobación, Series, así como Folios Inicial y Final. Así que ya fué solo cuestión de bajar el archivo, buscar mi RFC y listo, ahí estaba mi Número y Año de Aprobación.

Ahora ya tenía lo que necesitaba, mi Llave Privada, mi Llave Pública (FIEL), la Llave Privada del Certificado de Sello, el Certificado de Sello, los Folios (en mi caso no requerí series), así como el Número y el Año de Aprobación. ¿Que me faltaba? Pues la aplicación o sistema para facturar, de acuerdo al SAT pueden contratar alguno de los Proveedores Autorizados o bien utilizar lo que llaman Medios Propios.

Al inicio tenía la idea de contratar un Proveedor Autorizado y ahorrarme el trabajo de hacer un sistema. Sin embargo, mi paranoía me lo impidió, mi personal pregunta es ¿por qué un tercero tiene que tener almacenado en su servidor la información más delicada de mi empresa?, y pues bueno, me dí a la tárea de hacer un sistema de facturación electrónica, por lo pronto les comparto el enlace del repositorio en GitHub donde encontrarán el código fuente en PHP del sistema que estoy haciendo, ya que esté completamente terminado publicaré una entrada anunciandolo, así que estén pendientes.

Basilio Briceño

DevOps evangelist, SoftwareLibre activist, sometimes speaker & eclectic metalhead.

12 comments

  1. Josser Ramirez P.   •  

    Muchas gracias, por el articulo, servira de mucho, para aquellas personas, que estan confundidas, en como llevar este proceso asi como de controlar ellos mismos sus datos y su informacion.

    saludos

  2. Jesus Reyna   •  

    Muy buen articulo, adelante con el sistema.

    Saludos.

  3. Carlos   •  

    Gracias por escribir esa experiencia, creo que a mas de uno, no ha pasado estar en el limbo con lo de las facturas digitales.

  4. Jair   •  

    Yo digo que sería muy buena idea que contestaras tus correos, aunque sean los referentes al APPCast! :)

  5. Daniel Olivares   •  

    gracias por tu publicacion

    revisa el sistema de facturacion SESHAT esta en C# y es opensource quizas te pueda servir

    Saludos

  6. haLckoniCka   •  

    muchass graciaas a baciliooo,, suuu implementacion en php mee ayudo muchisimo,,, bacilio para presidente!

  7. marlon   •  

    Hola a todos

    Quiero comentarles de una librería que estoy usando para la generación y validación de un CFD o CFDI, esta librería puede ser usada en C#, Delphi o cualquier otro lenguaje de programación, les dejo la liga de donde puedes descargarla junto con sus ejemplos

    http://www.electronicdocument.com.mx

  8. thiza   •  

    vaya excelente, estoy iniciando con el proceso y muy buena la informacion, gracias por compartirla.

  9. oscar   •  

    Si te interesa, en esta página puedes encontrar factura electrónica GRATIS para tu ERP g, también encuentras adendas.
    http://www.facturando.com.mx

  10. ROGELIO SANCHEZ   •  

    Podrias facilitarme la libreria que desarrollaste para la facturacion electronica. como la puedo obtener?

  11. Paulina   •  

    Yo estabamuy confundida y molesta proque el sistema del SAT es una burla, la mejor opci’on con la que me tope por barato y sencillo es http://www.formatoselectronicos.mx y yo sola configure mi cuenta y todo el chsite me salio en $200 pesos al ano….. Ah’i se los dejo por quien ande atorado.

  12. Israyas   •  

    Si requieren conectarse a un PAC autorizado yo encontré guías de conexión para el timbrado todas super bien explicadas y en diferentes lenguajes, C#, C++, Perl, Python, Visual Basic. Pueden encontrar las guías de timbrado en esta página http://www.profact.com.mx/timbra-cfdi/

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>