Blog

Comprobar registros enviados al SII para la confección del modelo 303 de IVA

En esta entrada veremos cómo abordar una problemática a la hora de presentar el modelo 303 de IVA para las empresas que están acogidas al sistema de Suministro Inmediato de Información del IVA (SII) .

Cada vez que vamos a presentar el modelo nos aparece una ventana en la que se sugiere que comprobemos los datos comunicados para que sean coherentes con la declaración que vamos a presentar.

Esto puede ser sencillo en el caso de utilizar un programa de contabilidad como A3ECO de Wolters Kluwer que lleva un control del estado de comunicación al SII del registro de facturas según la contabilidad.  Sin embargo hay otros casos en los que resulta interesante hacer la comprobación por nuestros propios medios como por ejemplo si la contabilidad y la comunicación de datos se ha hecho con otras aplicaciones o directamente que se trate de una contabilidad externa de la que sólo tengamos la opción de realizar el chequeo a posteriori.

El siguiente problema es que la utilidad web para la consulta de los libros registro de IVA a través de la Sede electrónica de la AEAT proporciona unos archivos CSV que no facilitan su tratamiento de forma sencilla mediante una hoja de cálculos por sus características:

  • nombres con espacios y caracteres especiales (algunos muy largos)
  • la cantidad de campos de los datos (más de 220)
  • juego de caracteres ISO-8859-15/EURO
  • separados por punto y coma (;)
  • con números en formato inglés (punto como separador decimal en lugar de coma)
  • y lo peor, por fechas en formato inglés AAAA-MM-DD sólo en algunos de los archivos de registro

Como la finalidad era poder tratar los datos de la manera más inmediata posible finalmente se ha descartado abrirlo con hoja de cálculo para transformarlo mediante fórmulas así como tampoco usar el editor de Power Query que acierta con las fechas pero yerra con los números e igualmente nos encontramos que habría que realizar una configuración complicada, campo por campo (más de 200) y finalmente no tendríamos un sistema para hacer comprobaciones sucesivas.

TransformColumnTypes

Por todo ello optamos por importar los datos a una base de datos y desde allí hacer las consultas que sea necesario en SQL y seguir teniendo la opción de usar Access o Excel con configuración de orígen de datos. La base de datos que uso es PostgreSQL

Para la estructura de los datos encontramos la propia información técnica de la Agencia Tributaria. En concreto en el archivo de Bloques funcionales que nos indicará los campos y su longitud (alfanuméricos AN, fecha, NIF, importe y numéricos N). De este archivo hemos obtenido también las tablas con las claves de tipos de factura, tipo de identificación, etc..

Y finalmente para crear las tablas resolviendo la problemática del tipo de datos para cada campo encontramos la utilidad CSV to SQL converter que nos generará la consulta SQL con la que crear e insertar los datos del archivo y sobre la cual podemos editar el tipo de datos si difiere de los detectados en el archivo con un simple buscar y reemplazar en el editor de texto. En caso de necesitar usar comillas para comentar los campos podemos usar un traductor online de SQL a otros «dialectos» como PostgreSQL

Create table and Insert data

Por último podremos importar los datos a partir de ahora, en las tablas creadas, para realizar las consultas del SII que nos permitan comprobar los datos comunicados respecto al modelo 303 que estamos confeccionando.

Para importar deberemos usar las opciones:

  • Formato CSV
  • Codificado LATIN9
  • No importar la última columna sin datos si aparece
  • Con encabezados
  • Con separador ;

importar csv SII AEAT

Aquí dejo el enlace para la sentencia SQL para crear la estructura y las tablas con los tipos

Descarga consulta SQL