General

Declarando impuestos en línea en Ecuador (1)

Desde hace varios años, el Servicio de Rentas Inteas en Ecuador permite la declaración electrónica, y habilita unas aplicaciones gratuitas (una de ellas ingeniosamente construida como un plugin de Eclipse) para los contribuyentes. A partir del año entrante sólo se recibirán declaraciones electrónicas lo cual ha generado una demanda importante de implementaciones alteativas. Voy a estar explicando algunas consideraciones al respecto en los próximos posts.

Lo primero que hay que entender es qué implica una declaración.

Cada contribuyente, ya sea una persona natural o jurídica, nacional o extranjera, tiene una serie de obligaciones tributarias que se definen al momento que se obtiene el Registro Único de Contribuyentes. En las personas jurídicas de tamaño pequeño y mediano, estas obligaciones suelen incluir las declaraciones del IVA y del Impuesto a la Renta y los anexos transaccionales que permiten el cruce de facturas. Esto se hace mensualmente, con la posibilidad de hacer declaraciones sustitutivas o fuera del plazo con las respectivas multas.

Los tres documentos (declaración del IVA, declaración del IR y anexos) son archivos XML que se suben posteriormente al sistema vía Web, previa autentificación del contador de la empresa. Hay algunos factores que contribuyen a la confusión de algunas personas referente a las implementaciones alteativas del sistema de declaraciones, por ejemplo:

  • Los archivos de validación y de cálculo, que contienen fórmulas (que son a su vez expresiones XPath) no son realmente esquemas XSD u hojas XSLT que permitan realizar transformaciones, sino que son, de hecho, otros archivos XML (cuyo schema no consigo) que contienen en sus nodos y atributos las fórmulas y condiciones para que se haga la validación y el cálculo.
  • Obviamente, no se requiere validar ni calcular para generar el archivo XML que se sube al sistema, pero obviamente de no hacerlo, el sistema Web generará errores con lo que, por la lectura de los archivos de validación y cálculo, podemos suponer son mensajes de error muy poco didácticos, así que vale la pena que hagamos lo más posible porque el archivo sea compliant antes de subirlo.
  • Los códigos de los campos a los que hacen referencia los archivos de validación y de cálculo no son temas crípticos, sino que son efectivamente el número del campo en el formulario, y se puede ver fácilmente su descripción en el sistema DIMM Formularios.
Es posible utilizar la utilidad xpath en Linux, parte del paquete XML::XPath (libxml-xpath-perl en Debian y derivados) para comprobar el resultado de estas fórmulas de validación y de cálculo, por ejemplo, y usando las fórmulas de los archivos VAL y CAL que corresponden al formulario 101:

xpath -e 'round (//campo[@numero='999'] * 100) = round ( (//campo[@numero='902'] + sum(//campo[@numero='903']) + sum(//campo[@numero='904']) ) * 100 )' 101ORI_2012.xml 

Query didn't retu a nodeset. Value: 1

La ejecución no retoa nodos (porque es de cálculo o validación) sino que retoa un valor, en este caso 1. Si vemos la condición para validación de esta fórmula en el archivo, veremos que la condición es 1=1 lo cual es cierto y coincide con el resultado. Ahora otro ejemplo:

xpath -e 'round ( (//campo[@numero='902'] + sum(//campo[@numero='903']) + sum(//campo[@numero='904']) ) * 100)>=0' 101ORI_2012.xml 
Query didn't retu a nodeset. Value: 1

En este caso la fórmula también devuelve verdadero pues el resultado de la parte izquierda es mayor o igual que 0, para el caso de la declaración 101 que estoy usando de ejemplo. Con estos antecedentes podemos ir preparando el terreno para nuestras implementaciones alteativas.
Standard

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s