Menú principal

La famosa o no tan famosa LCO (Lista de Contribuyentes con Obligación) del SAT

11 Jan
Published by hermes.ojeda in

Hace unos días por desgracia tuve la necesidad de inmiscuirme con cuestiones de facturación electrónica, específicamente con la LCO (Lista de Contribuyentes con Obligación) que tiene el SAT.

La situación fue la siguiente: Necesitaba timbrar una factura por CFDI y según nuestro PAC todavía no aparecía el RFC del emisor en la lista de LCO del SAT. Por lo tanto no podría generar la factura.

Para mi desgracia no podía saber si era un detalle con mi PAC, ya que se suponía que el RFC tendría que estar en la lista por el tiempo que llevaba generado el CSD (Certificado de Sello Digital).

Y dado que no podía saber si era problema de nuestro PAC, del SAT o de nuestra empresa, tuvimos que googlear un poco para ver cómo obteníamos la famosa LCO.

Lo primero fue encontrar este enlace del blog de Tralix que es un PAC. Donde ponen la siguiente dirección: ftp://ftp2.sat.gob.mx/agti_servicio_ftp/verifica_comprobante_ftp/. En este momento esa liga ya funciona, pero cuando fue revisada, no funcionaba. Por lo cuál le removí el último directorio para dejarlo así: ftp://ftp2.sat.gob.mx/agti_servicio_ftp/. Y de la lista de directorios que aparecen, accedí a cfds_ftp/ y ¡voilà! ahí estaba la famosa LCO.

Descargué la última que estaba ahí, que era la del día correcto. Se supone que el SAT genera aproximadamente 3 al día. Descomprimí el archivo.

Ahí me encontré con el primer problema... dicha LCO está firmada por PCKS#7 y no puede ser leída directamente. Esto se soluciona con el siguiente comando:

openssl smime -decrypt -verify -inform DER -in "LCO_<<FECHA>>_<<NUMERO>>.XML" -noverify -out "lco_sin_sello.xml"

Una vez obtenida la LCO, como la lista es muy grande es difícil de procesar. Y abriéndolo en un archivo o procesado con un grep, me consumía mucha memoria y el programa tronaba. Pero como lo único que necesitaba saber era si el RFC aparecía o no. Lo solucioné de la siguiente forma:

grep -o "<<RFC>>" lco_sin_sello.xml

A lo cuál me dio un resultado positivo, por lo tanto ya estábamos en la LCO.

¿Cuál fue el problema? En la última actualización por parte del SAT se había subido el RFC, pero esa actualización acaba de realizarse (me tocó ver en el FTP como se borraban algunos archivos temporales que tenían la actualización). Y faltaba que fueran cargadas dichas actualizaciones por nuestro PAC.