Clinily

Integración Técnica de VeriFactu: Guía para Desarrolladores y Responsables TI

Guía técnica completa: requisitos, API integration, certificados digitales, testing y troubleshooting de VeriFactu.

ET

Equipo Técnico de Clinily

23 de marzo de 2026 · 14 min de lectura

Integración Técnica de VeriFactu: Guía para Desarrolladores y Responsables TI

Introducción

VeriFactu es el sistema de verificación de facturas de la Agencia Tributaria que garantiza la integridad y autenticidad de la documentación fiscal electrónica. En el sector sanitario, especialmente en clínicas privadas, la integración correcta de este sistema es fundamental para cumplir con las obligaciones tributarias y mantener la trazabilidad de las transacciones. Este artículo ofrece una guía técnica completa para implementar VeriFactu en software de gestión clínica.

1. Requisitos Técnicos y Estándares

Formatos de Datos Soportados

VeriFactu opera sobre facturas electrónicas en formato UBL 2.1 (Universal Business Language) o FacturaE. Los requisitos técnicos principales incluyen:

  • Codificación: UTF-8 obligatoria en todos los archivos
  • Firma Digital: XAdES (XML Advanced Electronic Signatures) con nivel mínimo XAdES-EPES
  • Timestamp: Incluir sello de tiempo de autoridad de sellado de tiempo (TSA)
  • Estructura XML: Validación contra esquemas XSD de la Agencia Tributaria

Protocolos de Comunicación

La comunicación con la plataforma VeriFactu requiere:

  • Protocolo HTTPS/TLS 1.2 mínimo (se recomienda 1.3)
  • Certificados X.509 válidos con cadena de confianza completa
  • Timeouts: 30-60 segundos para operaciones de envío
  • Reintentos: Implementar exponential backoff (3-5 intentos máximo)

Volumen y Capacidad

Para clínicas medianas-grandes se recomienda:

  • Capacidad de procesamiento: mínimo 1000 registros por lote
  • Almacenamiento: 10 años de historial fiscal (según normativa)
  • Ancho de banda: 10 Mbps mínimo para transferencias simultáneas

2. Integración con API de VeriFactu

Endpoints Principales

Producción: https://www1.agenciatributaria.es/wlpl/BUCV3FRJS
Pre-producción: https://www1dev.agenciatributaria.es/wlpl/BUCV3FRJS

Flujo de Integración

1. Autenticación

  • Utilizar certificado digital de la persona física o entidad
  • Implementar certificado de cliente (mTLS)
  • Las credenciales deben rotarse cada 12 meses

2. Envío de Facturas

POST /registro/v1/envio-lote
Content-Type: application/xml
Authorization: Certificate-based

3. Consulta de Estado

GET /registro/v1/estado/{idLote}

4. Descarga de Confirmación

GET /registro/v1/descarga/{idLote}

Manejo de Respuestas

Implementar gestión robusta de códigos HTTP:

  • 200/201: Éxito - guardar identificador de lote
  • 400: Error de validación - registrar detalles XML
  • 401: Problema de certificado - verificar vigencia
  • 503: Servicio no disponible - reintentar después

3. Requisitos de Certificados Digitales

Tipo de Certificado

  • Certificado de Persona Física: DNI-e o Certificado de Firma Electrónica
  • Certificado de Entidad: CIF emitido por ACCV, Camerfirma o equivalente
  • Validez: Mínimo 2 años a partir de la instalación

Proceso de Instalación en el Sistema

  1. Exportar certificado en formato PKCS#12

    • Incluir clave privada y certificado público
    • Proteger con contraseña fuerte (mínimo 16 caracteres)
  2. Almacenamiento seguro

    • Guardar en almacén de certificados del SO o KeyStore Java
    • Implementar permisos de acceso restrictivos
    • Nunca almacenar en código fuente o configuración
  3. Validación automática

    • Verificar vigencia en cada 24h
    • Alertar con 30 días de anticipación antes de vencimiento
    • Implementar proceso automático de renovación

4. Auditoría y Preservación de Datos

Requisitos de Trazabilidad

Toda la documentación procesada debe incluir:

  • Metadatos: Timestamp preciso (UTC), ID de usuario, IP origen
  • Logs de Transacción: Almacenamiento inmutable de todas las operaciones
  • Respuestas de Servidor: Guardar XML de confirmación completo
  • Estados Intermedios: Registro de cambios de estado del lote

Implementación de Audit Trail

Estructura de registro mínima:
├── ID_TRANSACCION (UUID)
├── TIMESTAMP (ISO 8601 UTC)
├── USUARIO_SISTEMA
├── CERTIFICADO_USADO
├── TIPO_OPERACION (ENVIO, CONSULTA, DESCARGA)
├── ESTADO (PENDIENTE, PROCESANDO, COMPLETADO, ERROR)
├── RESPUESTA_SERVIDOR (full XML)
└── HASH_DOCUMENTO (SHA-256)

Preservación a Largo Plazo

  • Retención: Mantener registros 10 años mínimo
  • Integridad: Usar WORM storage (Write Once, Read Many) si es posible
  • Encriptación: Cifrar datos en reposo (AES-256)
  • Respaldos: Realizar copias redundantes en diferentes ubicaciones

5. Checklist de Compatibilidad de Software

  • Generación de XML UBL 2.1 validado contra XSD oficial
  • Firma XAdES-EPES con timestamp incluido
  • Soporte para HTTPS/TLS 1.2+ con validación de certificados
  • Gestión de certificados digitales (importación, validación, renovación)
  • Almacenamiento seguro de claves privadas
  • Compresión GZIP para envíos (recomendado)
  • Cola de intentos fallidos con reintentos automáticos
  • Logging detallado de todas las operaciones
  • Interfaz de consulta de estado de lotes
  • Notificaciones de error a responsables de TI
  • Cumplimiento de horarios de disponibilidad de la plataforma
  • Documentación de procesos de recuperación ante fallos

6. Testing y Validación Previa a Producción

Fase 1: Validación Local (Semana 1-2)

  • Validar XML contra esquemas XSD
  • Verificar estructura de firma XAdES
  • Probar almacenamiento de certificados

Fase 2: Entorno Pre-producción (Semana 2-4)

  • Conectar a servidor pre-producción de la Agencia Tributaria
  • Enviar lotes de prueba (mínimo 50 facturas)
  • Validar respuestas y confirmaciones
  • Probar reintentos y recuperación de errores

Fase 3: Validación de Carga (Semana 4-6)

  • Simular volumen mensual de facturas
  • Medir tiempos de procesamiento
  • Verificar uso de memoria y CPU
  • Comprobar almacenamiento de logs

Fase 4: Testing de Seguridad (Semana 6-8)

  • Realizar auditoría de permisos de certificados
  • Validar encriptación de datos en tránsito
  • Probar integridad de audit trail
  • Verificar acceso a datos sensibles

7. Desafíos Comunes de Integración

Problema: Certificado No Reconocido

Síntoma: Error 401 al conectar Solución:

  • Verificar cadena de confianza completa
  • Confirmar que la Autoridad Certificadora está en lista de confianza de Java/SO
  • Validar formato PKCS#12 y estructura de certificado

Problema: Timeout en Envío de Lotes

Síntoma: Conexión interrumpida durante upload Solución:

  • Implementar compresión GZIP
  • Dividir lotes en componentes más pequeños (máx. 500 facturas)
  • Aumentar timeout progresivamente (máximo 120 segundos)

Problema: Inconsistencia en Timestamps

Síntoma: Facturas rechazadas por validación de fecha Solución:

  • Sincronizar servidor con NTP (Network Time Protocol)
  • Incluir timestamp de TSA en firma
  • Registrar zona horaria en todos los logs

Problema: Pérdida de Confirmaciones

Síntoma: No se reciben ACKs de lotes enviados Solución:

  • Implementar polling automático cada 5 minutos
  • Guardar ID de lote en base de datos antes de enviar
  • Crear tabla de reconciliación diaria

Recomendaciones Finales

  1. Designar responsable técnico dedicado para la integración
  2. Documentar todos los cambios en repositorio versionado
  3. Realizar auditorías trimestrales de cumplimiento
  4. Capacitar al equipo en normativa tributaria y procedimientos
  5. Establecer SLA con proveedor de hosting o cloud
  6. Monitorear continuamente métricas de entrega y errores

La integración de VeriFactu es crítica para la continuidad operativa de cualquier clínica. Una implementación técnicamente sólida garantiza cumplimiento fiscal, evita sanciones y proporciona confiabilidad operativa a largo plazo.


Última actualización: Marzo 2026 Autor: Equipo Técnico de Clinily Categoría: Desarrollo y Integración Tiempo de lectura: 12-15 minutos

Menos papeleo, más tiempo con tus pacientes

Clinily junta agenda, recordatorios, historia clínica y facturación con Verifactu en una sola app.