Saltar al contenido
Servicio · Vertical principal

Software para sectores regulados: cuando no basta con trabajar bien, hay que poder demostrarlo

Hay empresas cuya obligación no termina en hacer las cosas bien: tienen que poder probarlo ante la Administración. Bahiages construye el software de esa parte. Cálculo exacto con la regla de redondeo que toca, registros que no se editan por detrás, envío con certificado digital sin duplicar nada y datos que se pueden reconstruir años después. Lo hago yo, de principio a fin.

En corto

  • Un sector regulado no pide software más bonito: pide software que deje prueba de lo que hizo y de cuándo lo hizo.
  • El cálculo va con enteros en la unidad mínima o decimales exactos, nunca con coma flotante, y con una única regla de redondeo escrita y probada.
  • El registro se escribe una vez y no se edita: un error se corrige con un apunte nuevo que referencia al anterior.
  • La conexión con la Administración va con certificado digital, entorno de pruebas primero y envíos idempotentes para no duplicar.
  • Cada cifra guarda con qué reglas y con qué datos se calculó, para poder rehacerla igual años después.
  • Dos productos propios en este terreno: SILICIE VapeTax, para impuestos especiales, y Tictacdicta, para registro de jornada.

¿Qué cambia cuando el software tiene una obligación legal detrás?

En un software normal, un fallo es una molestia: se ve, se corrige y se sigue. Con una obligación detrás, ese mismo fallo es un dato que ya consta ante la Administración. No se borra. Se rectifica, y la rectificación también deja rastro.

Eso cambia el orden de prioridades. Deja de mandar la pantalla y mandan otras cuatro cosas, y ninguna tapa el hueco de la siguiente.

  • Exactitud: la cifra sale igual siempre, con la regla de redondeo que toca
  • Inmutabilidad: lo registrado no se edita, se corrige con otro apunte
  • Interlocución: hay que hablarle a la Administración, casi siempre con certificado digital
  • Reconstrucción: años después hay que poder explicar de dónde salió cada número

El redondeo no es un detalle de estilo: decide cuánto pagas

Muchos descuadres que acaban en un requerimiento no vienen de entender mal la norma. Vienen de aritmética.

El primer error es usar coma flotante para dinero o para cantidades declarables. Los tipos float y double no representan de forma exacta la mayoría de valores decimales, y al sumar miles de líneas aparecen restos que nadie ha metido.

El segundo es redondear demasiadas veces. Redondear línea a línea y sumar después no da lo mismo que sumar y redondear al final. Ninguno es el correcto por sí mismo: el correcto es el que marque la norma aplicable. Lo que nunca vale es que cada pantalla haga la suya.

El tercero es la conversión de unidades. Si el almacén trabaja en mililitros y la declaración va en litros, se convierte una sola vez, al declarar.

  • Enteros en la unidad mínima (céntimos, mililitros, gramos) o decimal exacto, también en la base de datos
  • Una sola regla de redondeo, en un único punto del código, con test de casos frontera
  • El factor de conversión, en la ficha del artículo, no en un Excel

¿Cómo se hace un registro que sirva como prueba y no como opinión?

Un registro sirve como prueba cuando se puede demostrar que no se ha tocado después. Eso no se consigue con una promesa comercial: se consigue con el diseño de la tabla.

La regla es escribir una vez y no actualizar nunca. Nada de UPDATE sobre la fila de un apunte, ni siquiera para arreglarlo rápido. Si un dato estaba mal, se anota un apunte de corrección que referencia al original. Así el histórico cuenta la verdad completa, incluida la parte fea: que hubo un error y cuándo se corrigió.

Para que la cadena sea comprobable, cada registro puede llevar un resumen criptográfico que lo encadene con el anterior. Si alguien modifica un apunte antiguo por detrás, deja de cuadrar. No es blockchain: es un hash y una columna.

  • Tabla de apuntes solo de inserción: sin UPDATE ni DELETE
  • Correcciones y anulaciones como apunte nuevo que referencia al original
  • Autor, origen, versión del programa y sello de tiempo del servidor, no del móvil

Conectar tu programa con la Administración usando certificado digital

Cuando la obligación implica enviar datos, casi siempre hay un servicio web al que hablarle con certificado digital. Firmar y enviar es la parte fácil. Lo que rompe está alrededor.

El certificado caduca. Es el corte de servicio más previsible que existe y aun así pilla a mucha gente el mismo día.

La red se corta a mitad de un envío. Si el sistema reintenta a ciegas, duplica. Y un duplicado ante la Administración no es una fila de más en tu base de datos: es un dato que consta y hay que anularlo con otro trámite. Por eso cada envío lleva su clave de operación y, antes de reenviar, se pregunta al otro lado qué llegó.

La respuesta es el resguardo: se guarda entera, con fecha y código, pegada al apunte que la generó.

¿Podrás explicar dentro de cinco años por qué el programa declaró esa cifra?

La comprobación no suele llegar al mes siguiente. Llega mucho después, cuando el software ha cambiado tres veces y quien lo montó ya no trabaja allí.

Guardar el resultado no basta: hay que guardar con qué se calculó. Los parámetros que cambian con el tiempo (tipos, epígrafes, tablas, criterios) no se sobrescriben nunca. Se versionan con fecha de vigencia y cada cálculo apunta a la versión que usó. La prueba de fuego: recalcular un periodo cerrado tiene que devolver el mismo número que salió entonces.

Un dato que solo existe dentro de una aplicación que ya no arranca no es un dato conservado.

Impuestos especiales y registro de jornada: normas distintas, el mismo esqueleto

Hay dos productos propios en producción en este terreno, desarrollados y mantenidos por Bahiages. Sirven para ver que el dominio cambia pero el esqueleto no.

SILICIE VapeTax lleva la contabilidad de existencias de impuestos especiales y calcula la autoliquidación con esos mismos datos. El nudo está en el cálculo: stock por capas, separar lo que ya tiene el impuesto devengado de lo que sigue en régimen suspensivo y presentar los asientos a la AEAT sin duplicar nada.

Tictacdicta hace registro de jornada laboral. El cálculo es trivial al lado del anterior; el nudo está en la prueba. El fichaje tiene que quedar inmutable, con hora fiable, accesible para quien la norma diga y conservado el tiempo que corresponda.

Uno se presenta ante Hacienda y el otro se enseña en una inspección de trabajo. Comparten todo lo demás.

Cómo comprobar hoy si tu software aguantaría una comprobación

Esta revisión la puedes hacer tú, con tu proveedor actual delante y sin contratar nada. Son preguntas incómodas a propósito. Si alguna se responde con un eso habría que mirarlo, ahí tienes el trabajo pendiente.

  • Enséñame una corrección de un dato ya registrado: ¿sigue guardado el valor anterior?
  • Enséñame el resguardo de un envío concreto de hace meses
  • Recalcula un periodo cerrado: ¿sale el mismo número?
  • Expórtame todos los registros en un formato abierto que pueda abrir sin ti
  • ¿Qué día caduca el certificado y a quién le llega el aviso?
  • ¿Cuándo se restauró por última vez una copia, que no es cuándo se hizo?

Qué hago yo y qué sigue siendo cosa de tu asesoría

Bahiages es el desarrollador que implementa la obligación, no quien la interpreta. Construimos el cálculo, el registro, el envío y la trazabilidad. La calificación de una operación dudosa no la decide el proveedor de software.

Cuando aparece una duda de criterio, el software la marca y la deja delante para que la resuelvas con tu asesor. No se la inventa y no la esconde: un programa que rellena huecos por su cuenta es lo más peligroso que puedes tener aquí.

El código y los datos quedan a tu nombre.

Preguntas frecuentes

¿Qué es un software para un sector regulado?+

Es un software que, además de hacer su trabajo, tiene que dejar prueba de lo que hizo ante un tercero: la Agencia Tributaria, la Inspección de Trabajo o el organismo que corresponda. Eso obliga a cuatro cosas que un programa de gestión normal no necesita: cálculo exacto, registros que no se editan, envío con certificado digital y capacidad de reconstruir cualquier cifra años después.

¿Por qué no se deben usar números en coma flotante para calcular impuestos?+

Porque float y double no representan de forma exacta la mayoría de valores decimales. Al sumar miles de líneas aparecen restos de céntimo que nadie ha introducido y el total deja de cuadrar. Se usan enteros en la unidad mínima o un tipo decimal exacto, en el código y en la base de datos, y se redondea una sola vez.

¿Cómo se consigue que un registro sea inmutable?+

Con una tabla en la que solo se inserta: nunca se actualiza ni se borra un apunte. Si hay un error, se anota un apunte de corrección que referencia al original, y el original se conserva. Cada apunte guarda autor, origen, versión del programa y una marca de tiempo del servidor. Encadenar cada registro con un hash del anterior permite detectar manipulaciones.

¿Qué pasa si se corta la conexión mientras el programa envía datos a la Administración?+

El riesgo es duplicar, porque un envío repetido queda constando y hay que anularlo con otro trámite. Se resuelve dando a cada envío una clave de operación propia y consultando al otro lado qué llegó antes de reintentar, en vez de reenviar a ciegas. La respuesta aceptada se archiva junto al apunte que la generó.

¿Tengo que cambiar de ERP para cumplir con una obligación de este tipo?+

Normalmente no. El software de la obligación no sustituye a tu ERP ni a tu programa de facturación: lee de ellos por base de datos, por exportación automática o por API, y se encarga solo de la parte que la norma exige. Cambiar el sistema de gestión entero por una obligación concreta es más caro y más arriesgado.

¿Qué pasa cuando cambia la normativa o el formato de envío?+

Hay que tocar el software, y por eso conviene que los parámetros y las reglas que cambian estén versionados con fecha de vigencia en vez de escritos a fuego en el código. Así se añade la versión nueva sin borrar la anterior y un periodo antiguo se sigue calculando con las reglas vigentes entonces.

¿Cuánto tiempo hay que conservar estos registros?+

El plazo depende de la obligación concreta y de la normativa aplicable, así que hay que confirmarlo con tu asesor y con la fuente oficial. Lo que sí es decisión técnica es cómo se conservan: exportación en formato abierto, copias que se prueban restaurando y capacidad de reconstruir el dato aunque la aplicación original ya no exista.

Cuéntanos qué tienes que demostrar y ante quién

Escríbenos tres cosas: qué obligación te afecta, cómo la estás llevando ahora mismo y qué es lo que se te atasca. Con eso te decimos si se resuelve tocando lo que ya tienes o hace falta montar la parte regulada aparte, y qué haría falta para leerlo desde tu ERP. Si lo que necesitas es criterio fiscal o laboral, también te lo decimos: eso es de tu asesoría, no mía.

Contar mi caso