Descripcion XML agencia tributaria

Anuncio
UTILIZACION DE ESQUEMAS XML DE LA AGENCIA
TRIBUTARIA PARA CALCULO RETENCIONES
INTRODUCCION
El conjunto de herramientas de ayuda aportados por la Agencia Tributaria, para
facilitar las obligaciones fiscales de todos se están actualizando de forma sucesiva,
incorporando nuevas tecnologías encaminadas a mejorar esta tarea de apoyo al
cumplimiento de las obligaciones con Hacienda. Entre las novedades que se han dado
a conocer para el recién estrenado 2005, figura para el cálculo de la retenciones
correspondientes al IRPF el uso obligado (después de un período de ser una simple
opción) de la tecnología XML (Extensible Markup Language) para el tratamiento de la
información, en el formato especificado por medio de un esquema XML.
Como se sabe XML es un lenguaje de casi siete años de vida impulsado desde
el W3C, totalmente abierto y transparente y acerca del cual no es arriesgado afirmar,
que va a convertirse en una “lingua franca” de la Web. Debido a lo reciente de su
aparición y al hecho que nuestro Instituto fuera el primer miembro académico español
del W3C, hemos recibido un gran número de consultas de distintas empresas y
colegas sobre las particularidades de esta decisión de la AEAT(http://www.aeat.es);
ello nos ha decidido a preparar estas páginas para ayudar en la puesta en marcha de
esta posibilidad tecnológica ligada a la Web, y que esperamos sean de utilidad y
permitan sacar ventajas de la decisión de la Agencia Tributaria.
Recordemos que hasta ahora estas herramientas de ayuda informática para
esta tarea concreta daban como resultado un texto plano, y con este cambio, éste
pasa a tomar la forma de un dato semiestructurado, en forma de documento XML, que
va a ser mas eficiente y útil tanto para la Agencia, como para el sistema de cada
empresa que incorpore ya XML en su trabajo diario.
Adelantemos el convencimiento que este cambio no va a causar ningún futuro
problema, estando en la linea de modernización y racionalización propia de la Agencia.
Las páginas que siguen tratan de facilitar la incorporación de esta ayuda basada en
XML, con el ánimo de completar el programa de ayuda, facilitado por la Agencia
Tributaria, y de facilitar su posible aplicación por parte de cada profesional informático,
como una librería que facilite sus propios desarrollos.
Breve recordatorio de XML y Esquema XML
XML y sus tecnologías asociadas especifican como interaccionar y explotar el
contenido de un documento, y separar datos y presentación, de forma que XML no
incorpora ninguna semántica intrínseca de presentación dentro de la arquitectura de la
Web. A la hora de superar un texto plano, la representación de un documento XML se
puede resumir de la forma: Texto XML = datos + marcado. Esto significa que el texto
de un documento XML consta de dos conjuntos disjuntos: marcado y dato. El
marcado corresponde a las instrucciones que el analizador XML procesa (incluidos
entre los paréntesis angulares) mientras que los datos son el texto entre la marca o
etiqueta delimitada, en inicio y final por paréntesis angulares. En consecuencia el
procesador, una vez determinado que todos los caracteres de un documento son
aceptables, los diferencia entre texto de marcado y caracteres de datos.
En XML un espacio de nombres (xmlns) proporciona un mecanismo por el que
los nombres de elementos y atributos pueden asignarse para cada uso deseado,
1
utilizando prefijos adecuados a cada caso. Estos dominios nominales son objeto de
una Recomendación del W3C elaborada para cumplir tres objetivos:
a) Poder mezclar distintos vocabularios XML en un mismo documento.
b) Identificar unívocamente cada etiqueta XML.
c) Disponer de nombres universales cuya panorámica se extienda mas allá del
documento que los contiene.
Para proporcionar la estructura a un documento XML se utilizan cada vez más
los llamados Esquemas XML, que son documentos XML que a su vez definen
documentos XML que serán instancias o formularios de ellos. Aunque a un documento
XML no se le exige que incorpore ningún Esquema, su uso es más que recomendable
ya que por un lado ofrece un mecanismo para asegurar la conformidad del documento
cuando vaya a ser intercambiado, y por otro evita el riesgo de generar inconsistencias.
En consecuencia, si un Esquema especifica una clase de documentos que
interesa tener bien especificados, como es el caso fiscal que nos ocupa, dentro de una
determinada tarea, con el objetivo de poder obtener "documentos instancia" ajustados
a la aplicación; ello significa especificar tanto la estructura de los documentos instancia
como el tipo de dato de cada elemento/atributo, de forma que por una lado, se dicen
cosas del tipo "este elemento contiene tales subelementos, que a su vez contiene
estos otros, etc.", y otras del tipo "este elemento es un entero cuyo rango va de -90 a
+90”.
Los requisitos perseguidos por los Esquemas son:
a) Usar la sintaxis XML.
b) Disponer, a la hora de elaborar determinados documentos, de un documento
XML que evoque a un Esquema que interesa declarando al nuevo documento
como “válido” si está de acuerdo con el Esquema y en caso contrario el
analizador declararlo no válido.
c) Tener la máxima libertad para soportar tipos de datos a la hora de especificar
elementos y atributos. Los Esquema tienen predefinidos 44 tipos de datos, y
lo que es más importante, tienen capacidad para derivar todos los que se
puedan necesitar.
d) Recurrir y utilizar espacios de nombres.
e) Tener la posibilidad de crecimiento de los documentos Esquemas a medida
que se tengan que modificar distintos aspectos.
f) Máxima flexibilidad para poder acceder a ellos desde la Web.
Aunque la recomendación W3C de Esquemas XML es especialmente extensa
podemos citar los siguientes puntos claves:
Tipos de datos: Controla los tipos de datos que puede contener un elemento o un
atributo (boolean, float, integer, date, time, etc.).
Aspectos de restricción: Establece límites para el valor de los datos (longitud,
modelo, enumeración, intervalos con mínimo y máximo, precisión etc.).
Cardinalidad: Controla el número de apariciones permitidas (uno, cero o uno, cero o
más y uno o más).
Opción: Limita los valores a los de una lista de valores dada.
Secuencia: Define el orden en el que se pueden utilizar los elementos.
Valores predeterminados: Proporciona valores que se utilizan cuando no se
especifica ningún otro valor.
PROGRAMAS DE AYUDA 2005
Incluso en el caso que se tenga poca práctica con XML, todo técnico que acceda a
la página correspondiente de la agencia tributaria estará en condiciones de enfrentarse
2
sin dificultades a lo que allí se ofrece, esto es un conjunto de herramientas para el
cálculo de retenciones. Allí se proponen tres formas posibles para su cálculo:
Opción 1. Corresponde al titulado por la propia Agencia “Algoritmo de cálculo de
las retenciones”. Se trata de un documento que especifica los procedimientos a
realizar para el cálculo de las retenciones. Esta opción supone programar en no
importa que lenguaje para obtener los resultados deseados.
Opción 2 Programa de ayuda, facilitado por la Agencia, que puede usarse de tres
maneras:
a. En el navegador, con lo que se tiene un programa de ayuda en línea,
tipo formulario con tecnología Applet
b. Aplicación JAVA, Equivalente al anterior con un Interfaz grafico en
forma de formulario, para calcular las retenciones.
c. Aplicación JAVA, Añade, al interfaz gráfico de la posibilidad b), la
selección de un fichero de entrada XML y genera los ficheros de salida
o de error según corresponda.
Opción 3. Designado “Módulos de cálculo”; corresponde a la llamada en linea,
(por tanto sin interfaz gráfica) permitiendo la correspondiente ejecución en línea,
una vez especificado el fichero de entrada, salida y error. Obviamente esta opción
presenta la particularidad de poder utilizarse como una librería JAVA para la
incorporación del cálculo en aplicaciones propietarias de cada empresa.
ESQUEMAS AGENCIA TRIBUTARIA
Los esquemas de la agencia tributaria (Ver Anexo I) especifican el formato de los
ficheros de entrada, salida y error, utilizados para el cálculo de las retenciones de los
ficheros de ayuda (para los casos 2.c y 3). El esquema del fichero
aeatretenciones2005.xsd define 3 tipos de documentos necesarios en el proceso:
1. AEATRetencionesEntrada2005 Se trata de un fichero de entrada, que
especifica toda la información necesaria para el cálculo de las retenciones.
2. AEATRetencionesSalida2005 Es en fichero de salida, que proporciona y
especifica toda la información necesaria, así como el resultado del cálculo de
las retenciones corrspondientes.
3. AEATRetencionesError2005 Es un fichero de error, que especifica toda la
información necesaria para resolver los posibles errores que surjan.
Detallemos cada uno de ellos, con especial detalle del primero de ellos, que
determina los restantes:
AEATRetencionesEntrada2005
A partir de él se puede efectuar el cálculo de las retenciones, de forma que el
documento contiene información sobre:
•
•
•
Tipo Documento y Ejercicio
Información Retenedor
o NIF y Nombre Apellidos
Información Retenido
o NIF y Nombre Apellidos
o Retribuciones Anuales
o Etc.
3
Esto es, toda la información necesaria para el cálculo de las retenciones del ejercicio y
que el usuario conoce mucho mejor que nosotros mismos.
Como se ha dicho el procedimiento en años anteriores para el cálculo de
retenciones, utilizaba un fichero plano con etiquetas posicionales, es decir, según la
posición de un valor se asociaba a un campo determinado de los datos utilizados para
los cálculos. Con la utilización de XML, los valores de los campos se encuentran
dentro de las etiquetas (<etiqueta> valor </etiqueta>). Por tanto, existe una
correspondencia univoca entre posición del fichero plano antiguo y etiqueta del fichero
XML que facilita la transición al nuevo formato. Además, la definición de un esquema
permite realizar una comprobación sintáctica de todos los campos necesarios.
Veamos un ejemplo sencillo de un Documento XML generado en un simple
editor de texto:
<?xml version="1.0" encoding="ISO-8859-1"?>
<AEATRetencionesEntrada2005
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="retenciones.xsd">
<IdDoc>
<CodModelo>RET</CodModelo>
<Ejercicio>2005</Ejercicio>
</IdDoc>
<Retenedor>
<Nif>X12345678</Nif>
<ApellidosNombre>APELLIDOSNOMBRE</ApellidosNombre>
<Retenido xsi:type="tipo_RetenidoEntrada2005">
<Nif>12345678A</Nif>
<ApellidosNombre>APELLIDOS NOMBRE</ApellidosNombre>
<AñoNacimiento>1970</AñoNacimiento>
<SituacionFamiliar>
<Situacion2>
<NifConyuge>12345678B</NifConyuge>
</Situacion2>
</SituacionFamiliar>
<SituacionLaboral>
<TrabajadorActivo>
<Contrato>1</Contrato>
</TrabajadorActivo>
</SituacionLaboral>
<Descendiente>
<AñoNacimiento>2004</AñoNacimiento>
</Descendiente>
<Ascendiente>
<AñoNacimiento>1930</AñoNacimiento>
<Convivencia>3</Convivencia>
<Discapacidad>
<Grado1>
<NecesitaAyuda/>
</Grado1>
</Discapacidad>
</Ascendiente>
<RetribAnuales>100000.00</RetribAnuales>
<Reducciones>100.00</Reducciones>
<Regularizacion>
<Causa>1</Causa>
<Causa>2</Causa>
<RetribSatisfechas>60.00</RetribSatisfechas>
<TipoRetencion>21</TipoRetencion>
</Regularizacion>
</Retenido>
</Retenedor>
</AEATRetencionesEntrada2005>
Las líneas de la 1 a la 8 son fijas.
La etiqueta del <retenedor> de la linea 10 cierra con la etiqueta </retenedor>
de la linea 91, corresponde a la empresa, de forma que en las líneas 11 y 12 hay que
escribir respectivamente NIF y nombre de la empresa (en mayúsculas).
4
La etiqueta retenido de la linea 14, finaliza en la linea 90 y corresponde a un
trabajador por lo que este bloque tiene que repetirse por cada empleado.
La etiqueta de la linea 18 no contiene datos, ya que es un tipo de etiqueta
especial para el caso que el trabajador tenga residencia en Ceuta o Melilla.
El bloque 20 a 26 corresponde a la situación familiar: Solo tiene que aparecer
una situación, es decir, si ésta es 1 solo aparecerá la linea 21, si es 2 el bloque 22 a
24 (siendo obligatorio introducir el NIF del cónyuge) y si es situación 3 la linea 25.
El bloque 28 a 33 se refiere a la discapacidad del empleado, obviamente es
opcional y en caso de usarla es obligatorio indicar el grado: Con grado 1 tiene que
aparecer el bloque 29 a 31, de modo que si necesita ayuda tiene que aparecer la linea
30. Con grado 2 aparece la linea 32.
El bloque 35 a 44 es obligatorio ya que define la situación laboral. Solo puede
estar una situación a la vez. Si ésta es de trabajador activo (Bloque 39 a 43) el
contrato (Linea 40) es obligatorio y sus valores van de 1 a 4. El resto de líneas son
opcionales: Movilidad geográfica, prolongación laboral y Copa América.
El bloque 46 a 56 se refiere a los descendientes este bloque puede aparecer
de 0 a 15 veces (esto es, si no hay hijos no aparecen, y si el empleado tuviera 2 hijos
aparece el bloque 2 veces). Dentro de descendiente hay escribir bien el año de
nacimiento o el de adopción.
La linea 49 (Computado entero) es opcional. Dentro del bloque de
descendiente está el bloque discapacidad (Es opcional y similar al explicado antes).
El bloque 58 a 66 para ascendientes es opcional y puede repetirse, por tanto,
de 0 a 6 veces (tantos como ascendientes tenga el trabajador). Dentro de este bloque
la Convivencia pude tener valores de 1 a 9 inclusive. En este bloque también aparece
un bloque de discapacidad opcional.
La linea 69 es obligatoria y el formato del importe debe escribirse con un único
punto para los dos decimales: 1000000.00
Las líneas 70 - 73 son de tipo importe (Como la linea 69) y opcionales, así
como la linea 75.
El bloque 77 y 89 de regularizaciones es opcional. Si hay regularizaciones las
líneas obligatorias son: 78 (Como mínimo puede haber una linea y se puede repetir
hasta 12 veces). Los valores pueden ir de 1 a 15. Dentro de este bloque la linea 80 es
obligatoria siendo de tipo importe (Con dos decimales y un punto para el signo
decimal). Las líneas 81 a 84 de tipo importe son opcionales. La linea 85 Tipo retención
es obligatoria y puede tener los valores de 0 a 45 siendo la 87 opcional.
Las líneas restantes son obligatorias y cierran los elementos y el documento.
AEATRetencionesSalida2005
El programa de ayuda, a partir de la información del fichero de entrada, genera
el fichero de salida que contiene el cálculo de retenciones.
El formato del fichero es el mismo que el fichero de entrada más la información
de las retenciones según los valores de entrada.
<Reduccion>
<RdtosTrabajo>9999</RdtosTrabajo>
</Reduccion>
<TipoRetencion>45</TipoRetencion>
AEATRetencionesError2005
En el caso de producirse algún error en el cálculo de las retenciones se genera un
fichero XML indicando las causas del error.
5
ESCENARIOS
A continuación se definen un conjunto de escenarios de utilización de estos
Esquemas.
Escenario 1: Cálculo de las retenciones por parte una empresa
Como es conocido, una empresa a la hora de calcular las retenciones a aplicar a
sus trabajadores, tiene varias opciones dependiendo del número de trabajadores de la
empresa y la digitalización de la información que disponga. Veámoslas:
1. Utilizar las opciones (2.a y 2.b) lo que supone calcularlo individualmente para
cada uno de los trabajadores. Esta seria la más costosa ya que se debe teclear
toda la información por trabajador.
2. La empresa dispone un programa de gestión administrativa que se actualiza
anualmente. En este caso, la aplicación:
a. genera un fichero en formato XML según los esquemas de la agencia
tributaria. Para ello se puede utilizar la opción 2.c ó 2.a.
b. genera el cálculo internamente. No necesita ninguna tarea especial.
Escenario 2: Desarrollo de una aplicación de gestión administrativa
Si ya se trabaja con una aplicación de gestión, las opciones disponibles son,
1. Generación del cálculo por procedimientos propietarios, según lo especificado
en la documentación, correspondería a la opción 1.a.
2. Generar un fichero según el formato de entrada definido en los esquemas, para
la utilización de los programas de ayuda, corresponderá a las opciones 2.c y
3.a
3. Utilizar las librerías de JAVA, para su uso en la aplicación, generando los
cálculos internamente, correspondería a la opción 3.b
Escenario 3: Cálculo de las retenciones de un trabajador que quiera
comprobar su declaración individual.
Si un usuario deseara calcular las retenciones individualmente mediante los
procedimientos correspondientes a las opciones 2.a y 2.b (posiblemente las opciones
más sencillas) bastaría simplemente con rellenar el citado formulario gráfico,
obteniendo el cálculo de sus retenciones.
Anexo: ESQUEMA DE ENTRADA DE LA AGENCIA TRIBUTARIA
(El correspondiente de salida es muy semejante)
6
7
Descargar