Holograma de firma electrónica en software a medida: pluma de luz dorada trazando sobre una hoja de cristal
Software / APIs

Firma Electrónica en Software a Medida: Tipos y Validez

Codezone
Codezone Empresa de Desarrollo Web y Software a Medida

Integrar la firma electrónica en software a medida consiste en que tu aplicación envíe el documento por API a un prestador de servicios de confianza y guarde la versión firmada con sus evidencias. El Reglamento (UE) 910/2014, conocido como eIDAS y modificado por el Reglamento (UE) 2024/1183, distingue tres niveles de firma con efectos jurídicos distintos. Es parte de un proyecto de software a medida con Codezone.

Mientras un contrato se imprime y se escanea para firmarlo, la venta espera. El riesgo llega después: si el cliente niega haber firmado, una firma sin evidencias obliga a demostrar su autenticidad y un servicio cualificado parte de una presunción legal.

Al terminar sabrás qué tipo de firma pide cada documento y qué evidencias guardar, también cuando se firma desde un portal de clientes privado con acceso seguro.

Qué es la firma electrónica según el Reglamento eIDAS

La firma electrónica, según el artículo 3.10 del Reglamento (UE) 910/2014, son los datos en formato electrónico anejos a otros datos electrónicos, o asociados de manera lógica con ellos, que utiliza el firmante para firmar. El reglamento la gradúa así:

  • Firma electrónica simple: cualquier dato electrónico asociado al documento, como un trazo en pantalla o una casilla de aceptación. Encaja, por ejemplo, en la conformidad con un parte de un software SAT a medida para servicio técnico.
  • Firma electrónica avanzada: cumple los requisitos del artículo 26: está vinculada al firmante de manera única, permite identificarlo, se crea con datos que controla en exclusiva y detecta cualquier cambio posterior.
  • Firma electrónica cualificada: una firma avanzada creada con un dispositivo cualificado de creación de firmas y basada en un certificado cualificado de firma electrónica (artículo 3.12).
Tres anillos holográficos dorados concéntricos de brillo creciente alrededor de una hoja translúcida con líneas abstractas
Cada nivel de firma añade garantías sobre el anterior.

Qué validez tiene cada tipo de firma electrónica en un juicio

Ninguna firma electrónica pierde efectos jurídicos ni admisibilidad como prueba por no ser cualificada (artículo 25.1 del eIDAS), pero solo la cualificada equivale a la firma manuscrita (artículo 25.2), según el texto consolidado del Reglamento eIDAS en EUR-Lex.

En España, la Ley 6/2020 (artículo 3.2) remite al artículo 326 de la Ley de Enjuiciamiento Civil. Con un servicio no cualificado, si se impugna el documento, quien lo aporta prueba su autenticidad. Con uno cualificado cuyo prestador figuraba en la lista de confianza en el momento relevante, se presume correcto (artículo 326.4). Compruébalo en la lista de confianza de prestadores de la Comisión Europea antes de contratar.

Cómo se integra un proveedor de firma electrónica por API

Un proveedor de firma electrónica por API se integra en cinco pasos que controla tu backend:

  • Solicitud: el backend sube el PDF e indica los firmantes y el método de identificación.
  • Firma: el firmante recibe un enlace o firma dentro de tu propia web.
  • Webhook: el proveedor comunica cada cambio de estado y tu servidor verifica que la llamada es auténtica.
  • Descarga: el documento firmado y el informe de evidencias se guardan también en tu almacenamiento.
  • Registro: la huella SHA-256 del documento queda asociada al expediente y al usuario que lanzó la firma.

Antes de elegir entre proveedores como DocuSign o Signaturit, comprueba qué nivel de firma ofrece cada producto. El paso del presupuesto aceptado al contrato ya lo resuelve la automatización de presupuestos, contratos y facturas en web.

Haz de luz dorada que viaja entre dos torres holográficas de cristal y regresa como un pulso verde de confirmación
La firma sale de tu sistema y vuelve con sus evidencias.

Qué firma electrónica elegir para cada documento

El nivel de firma electrónica depende de lo que tengas que probar si el documento se discute:

  • Simple: aceptación de condiciones o conformidad con un trabajo, guardando el documento aceptado con su fecha y hora. También cierra un ticket de incidencia con SLA pactado.
  • Avanzada: contratos y presupuestos firmados a distancia, donde necesitas identificar al firmante y detectar cambios, como el mandato de adeudo SEPA firmado en la web.
  • Cualificada: cuando una norma exige un efecto equivalente a la firma manuscrita o el importe justifica la presunción legal; el firmante necesita un certificado cualificado.

En un software para despachos con control de expedientes en Madrid, cada firma queda ligada al expediente y a quien la pidió. Como el firmante deja datos personales, aplica el RGPD al módulo de firma desde el diseño.

El Reglamento (UE) 2024/1183 añade la cartera europea de identidad digital: cada Estado miembro ofrecerá al menos una en los 24 meses siguientes a la entrada en vigor de sus actos de ejecución, con firma cualificada gratuita por defecto para las personas físicas, que cada Estado puede limitar a fines no profesionales (artículo 5 bis). Deja el proveedor detrás de una interfaz propia para añadir ese canal sin rehacer el módulo.

Candado holográfico de cristal atravesado por un haz dorado que deja una estela de bloques verdes alineados
El webhook solo se acepta si su firma coincide.
CodeZone Pro Tip: verifica que el webhook del proveedor de firma es auténtico y guarda una sola vez la huella del documento firmado como evidencia.
const crypto = require("node:crypto");

// Cabecera, algoritmo y campos del evento los fija cada proveedor en su documentación;
// aquí se asume HMAC-SHA256 en base64
const SECRETO = process.env.FIRMA_WEBHOOK_SECRET || "solo-para-pruebas";
const procesados = new Set(); // en producción, una tabla con índice único por id de evento

function webhookAutentico(cuerpoCrudo, firmaRecibida) {
  // Se firma el cuerpo tal como llega: si lo parseas y lo serializas de nuevo, no coincide
  const esperada = crypto.createHmac("sha256", SECRETO).update(cuerpoCrudo).digest();
  const recibida = Buffer.from(firmaRecibida || "", "base64");
  // timingSafeEqual no revela por el tiempo de respuesta cuántos bytes acertó un atacante
  return recibida.length === esperada.length && crypto.timingSafeEqual(recibida, esperada);
}

const sha256 = (datos) => crypto.createHash("sha256").update(datos).digest("hex");

function registrarEvidencia(cuerpoCrudo, firmaRecibida, pdfFirmado) {
  if (!webhookAutentico(cuerpoCrudo, firmaRecibida)) throw new Error("Webhook no auténtico");
  const evento = JSON.parse(cuerpoCrudo.toString("utf8"));
  if (procesados.has(evento.id)) return null; // el proveedor reintenta: no dupliques evidencias
  procesados.add(evento.id);
  return {
    evento: evento.id,
    estado: evento.status,
    recibidoEn: new Date().toISOString(),
    huellaDocumento: sha256(pdfFirmado), // demuestra que el PDF guardado no cambió después
    huellaWebhook: sha256(cuerpoCrudo),
  };
}

// Prueba local con un evento de ejemplo firmado con el mismo secreto
const cuerpo = Buffer.from(JSON.stringify({ id: "evt_demo_1", status: "completed" }));
const firma = crypto.createHmac("sha256", SECRETO).update(cuerpo).digest("base64");
console.log(registrarEvidencia(cuerpo, firma, Buffer.from("%PDF-1.7 ejemplo")));

Con esta verificación nadie marca un contrato como firmado llamando a tu endpoint, y la huella demuestra en una disputa que el PDF archivado es el que devolvió el proveedor.

Lo Que Arriesgas con una Firma Sin Evidencias

Una firma electrónica vale lo que puedas demostrar de ella. Si el documento firmado y el informe de evidencias viven solo en la cuenta del proveedor, cambiar de proveedor o cerrar la cuenta te deja sin prueba.

Sello holográfico dorado agrietado flotando sobre un pedestal vacío, rodeado de fragmentos de cristal y destellos rojos
Sin evidencias propias, la firma depende de un tercero.

En Codezone integramos la firma electrónica por API y dejamos las evidencias en tu infraestructura. Dinos qué documentos firma hoy tu equipo en papel y te decimos qué nivel de firma necesita cada uno.