Skip to content

📤 Cómo Enviar una Factura a VeriFactu

🎯 Objetivo

Aprender a enviar facturas al sistema VeriFactu de la AEAT desde HolaGest, tanto de forma manual como automática, y comprender el proceso de firma, encadenamiento y envío.


📋 Requisitos Previos

Antes de enviar facturas a VeriFactu, asegúrate de tener:

  • VeriFactu configurado correctamente
  • Empresa configurada con certificado digital y contraseña
  • Ejercicio configurado con modo VeriFactu o NO-VeriFactu
  • Factura creada en HolaGest

Guías relacionadas:


🚀 Método 1: Envío Manual de Facturas

Acceso

Ruta: Menú VentasFacturas → Abrir factura → Pestaña VeriFactu

Procedimiento Paso a Paso

Paso 1: Abrir la Factura

  1. Haz clic en el menú Ventas
  2. Selecciona Facturas
  3. Busca la factura que deseas enviar
  4. Haz clic en la factura para abrirla

Paso 2: Acceder a la Pestaña VeriFactu

  1. En la parte superior de la factura, verás varias pestañas
  2. Haz clic en la pestaña "VeriFactu" (icono 🔲)
  3. Se mostrará la interfaz de VeriFactu

Si NO aparece la pestaña VeriFactu:

  • Verifica que la empresa cumple todas las validaciones
  • Verifica que el ejercicio está configurado
  • Recarga la página

Paso 3: Enviar Alta de la Factura

En la pestaña VeriFactu verás dos opciones principales:

Opción A: Enviar Alta

Botón: "Enviar alta"

Descripción: Envía la factura a VeriFactu por primera vez.

Procedimiento:

  1. Haz clic en el botón "Enviar alta"
  2. El sistema procesará la factura:
    • Genera el hash de la factura
    • Firma digitalmente con el certificado
    • Encadena con la factura anterior
    • Crea el código QR
    • Envía a la AEAT (si modo VeriFactu) o almacena localmente (si modo NO-VeriFactu)
  3. Espera a que el proceso termine (puede tardar unos segundos)
  4. Verás un mensaje de confirmación

Resultado:

✅ Factura enviada correctamente a VeriFactu
Opción B: Marcar como Enviada desde un Tercero

Botón: "Marcar como enviada desde un tercero"

Descripción: Marca la factura como que ya fue enviada a VeriFactu desde otro programa.

Cuándo usar esta opción:

  • ✅ Cuando la factura fue importada desde otro programa
  • ✅ Cuando la factura ya fue enviada a VeriFactu desde otro sistema
  • ✅ Cuando estás migrando desde otro software

Procedimiento:

  1. Haz clic en el botón "Marcar como enviada desde un tercero"
  2. El sistema marcará la factura como enviada
  3. NO se enviará a la AEAT
  4. NO se generará código QR
  5. Solo se registra que ya fue enviada

⚠️ IMPORTANTE: Esta opción solo tiene sentido para facturas importadas. No la uses para facturas creadas en HolaGest.


📊 Visualización de Factura Enviada

Una vez enviada la factura, la pestaña VeriFactu mostrará:

Información Visible

1. Código QR

Ubicación: Parte superior de la pestaña VeriFactu

Descripción: Código QR que permite al cliente verificar la factura en la web de la AEAT.

Cómo usar el QR:

  1. El cliente escanea el QR con su móvil
  2. Se abre la web de la AEAT
  3. Se muestra la información de la factura
  4. El cliente puede verificar que la factura es legítima

Ejemplo de QR:

┌─────────────────┐
│ ▄▄▄▄▄ ▄ ▄▄▄▄▄ │
│ █   █ █ █   █ │
│ █▄▄▄█ █ █▄▄▄█ │
│ ▄▄▄▄▄▄▄▄▄▄▄▄▄ │
│ ▄ ▄▄▄ ▄ ▄▄▄ ▄ │
└─────────────────┘
Código QR de VeriFactu

2. Opciones Adicionales

Una vez enviada, aparecen nuevas opciones:

  • "Enviar subsanación": Para corregir datos del cliente
  • "Enviar anulación": Para anular la factura
  • "Marcar como subsanada desde un tercero": Para facturas importadas
  • "Marcar como anulada desde un tercero": Para facturas importadas

Guías relacionadas:

3. Registros de la Factura

Ubicación: Parte inferior de la pestaña VeriFactu

Descripción: Lista de todos los registros asociados a la factura.

Tipos de registros:

  • Alta: Registro inicial de la factura
  • Subsanación: Correcciones de datos del cliente
  • Anulación: Anulación de la factura

Información mostrada:

CampoDescripción
TipoAlta, Subsanación o Anulación
FechaFecha y hora del registro
EstadoPendiente, Aceptado, AceptadoConErrores, Rechazado
HashHash criptográfico del registro
FirmaFirma digital del registro

Ejemplo:

Registros de la Factura:

1. Alta - 15/03/2025 10:30 - Estado: Aceptado
   Hash: 3a5f8b2c...
   Firma: MIIGfQYJKoZI...

2. Subsanación - 16/03/2025 14:20 - Estado: Aceptado
   Hash: 7d9e1a4f...
   Firma: MIIGfQYJKoZI...

🔄 Método 2: Envío Automático de Facturas

HolaGest permite configurar el envío automático de facturas cuando alcanzan un determinado estado.

Configuración del Envío Automático

Acceso

Ruta: Menú AdministradorPanel de Control → Pestaña Estados

Procedimiento

  1. Haz clic en el menú Administrador
  2. Selecciona Panel de Control
  3. Haz clic en la pestaña "Estados"
  4. Filtra por tipo "Factura de Cliente"
  5. Abre el estado que deseas configurar (por ejemplo, "Aprobada")
  6. Busca la opción "Enviar a VeriFactu"
  7. Marca el checkbox "Enviar a VeriFactu"
  8. Haz clic en "Guardar"

Comportamiento del Envío Automático

Una vez configurado:

En Modo VeriFactu (Envío Online)

  1. Cuando la factura se pone en el estado configurado (por ejemplo, "Aprobada")
  2. El sistema automáticamente:
    • Genera el hash
    • Firma digitalmente
    • Encadena con la factura anterior
    • Crea el código QR
    • Envía a la AEAT

En Modo NO-VeriFactu (Firma Local)

  1. Cuando la factura se pone en el estado configurado
  2. El sistema automáticamente:
    • Genera el hash
    • Firma digitalmente
    • Encadena con la factura anterior
    • Crea el código QR
    • Almacena localmente (NO envía a la AEAT)

Ejemplo de Configuración

Escenario: Enviar automáticamente cuando la factura está "Aprobada"

Estado: Aprobada
☑ Enviar a VeriFactu

Resultado:
- Factura creada → Estado: Borrador → NO se envía
- Factura aprobada → Estado: Aprobada → SE ENVÍA automáticamente

📋 Filtrado de Facturas Enviadas

Desde el listado de facturas puedes filtrar por estado de envío a VeriFactu.

Acceso

Ruta: Menú VentasFacturas

Uso del Filtro

  1. En el listado de facturas, busca el filtro "Enviada a VeriFactu"
  2. Selecciona una opción:
    • "Sí": Muestra solo facturas enviadas
    • "No": Muestra solo facturas NO enviadas
    • "Todas": Muestra todas las facturas

Ejemplo:

Filtro: Enviada a VeriFactu = Sí

Resultado:
✅ Factura 2025-001 - Enviada - Estado: Aceptado
✅ Factura 2025-002 - Enviada - Estado: Aceptado
✅ Factura 2025-003 - Enviada - Estado: AceptadoConErrores

🔍 Estados de los Registros

Los registros de facturas pueden tener diferentes estados:

Estado: (vacío) - Pendiente de Envío

Significado: El registro está en la cola de envío, esperando a ser procesado por el sistema.

Qué hacer: Esperar a que el sistema procese el registro automáticamente (normalmente unos minutos).

Cómo verificar el procesamiento:

  • Menú AdministradorLogs → Pestaña Historial
  • Filtrar por canal "verifactu-invoice-send"

Estado: Aceptado

Significado: La AEAT ha aceptado el registro correctamente.

Qué hacer: Nada, todo está correcto. ✅

Estado: AceptadoConErrores

Significado: La AEAT ha aceptado el registro, pero hay advertencias.

Qué hacer:

  1. Revisar los logs del sistema para ver las advertencias
  2. Corregir los problemas si es posible
  3. Enviar una subsanación si es necesario

Ejemplo de advertencia:

Advertencia: El código postal del cliente no coincide con la provincia

Estado: Rechazado

Significado: La AEAT ha rechazado el registro.

Qué hacer:

  1. Revisar los logs del sistema para ver el motivo del rechazo
  2. Corregir el problema en la factura
  3. Volver a enviar el registro

Ejemplo de rechazo:

Error: El NIF del cliente no es válido

🔄 Proceso Técnico de Envío

Paso 1: Generación del Hash

El sistema genera un hash criptográfico de la factura:

Hash = SHA-256(Datos de la factura)

Datos incluidos en el hash:

  • Número de factura
  • Fecha de factura
  • NIF del cliente
  • Importe total
  • Líneas de la factura
  • Impuestos

Paso 2: Encadenamiento

El hash de la factura actual se encadena con el hash de la factura anterior:

Factura 1: Hash1 = SHA-256(Factura 1)
Factura 2: Hash2 = SHA-256(Factura 2 + Hash1)
Factura 3: Hash3 = SHA-256(Factura 3 + Hash2)

Ventaja: Imposible modificar facturas anteriores sin romper la cadena.

Paso 3: Firma Digital

El hash se firma con el certificado digital de la empresa:

Firma = RSA(Hash, Certificado Digital)

Ventaja: Garantiza la autenticidad y no repudio.

Paso 4: Generación del Código QR

Se genera un código QR que contiene:

  • URL de verificación de la AEAT
  • Identificador único de la factura
  • Hash de la factura

Ejemplo de URL:

https://www2.agenciatributaria.gob.es/verifactu/verificar?id=ABC123...

Paso 5: Envío a la AEAT (Modo VeriFactu)

Si el ejercicio está en modo VeriFactu:

  1. El sistema envía el registro a la AEAT mediante API REST
  2. La AEAT valida el registro
  3. La AEAT devuelve un estado (Aceptado, AceptadoConErrores, Rechazado)
  4. HolaGest almacena el estado en la base de datos

Paso 5 Alternativo: Almacenamiento Local (Modo NO-VeriFactu)

Si el ejercicio está en modo NO-VeriFactu:

  1. El sistema NO envía el registro a la AEAT
  2. El registro se almacena localmente en HolaGest
  3. Se mantiene disponible para requerimientos de la AEAT

🤖 Envío Automático

El sistema de HolaGest se encarga de enviar automáticamente los registros pendientes.

Funcionamiento del Procesamiento Automático

  1. El sistema se ejecuta periódicamente de forma automática
  2. Busca registros con estado "Pendiente" (vacío)
  3. Procesa los registros en orden:
    • Genera hash
    • Firma digitalmente
    • Encadena con el anterior
    • Envía a la AEAT (si modo VeriFactu)
  4. Actualiza el estado del registro

Verificar el Procesamiento

Ruta: Menú AdministradorLogs → Pestaña Historial

Filtros:

  • Canal: "verifactu-invoice-send"
  • Canal: "verifactu-invoice-hash-signature"

Información en los logs:

[2025-03-15 10:30:15] verifactu-invoice-hash-signature
Procesando registro de factura 2025-001...
Hash generado: 3a5f8b2c...
Firma generada: MIIGfQYJKoZI...
Registro procesado correctamente.

[2025-03-15 10:30:20] verifactu-invoice-send
Enviando registro de factura 2025-001 a la AEAT...
Respuesta de la AEAT: Aceptado
Registro enviado correctamente.

Guía relacionada: Procesamiento Automático de VeriFactu


❓ Solución de Problemas

Problema 1: No aparece la pestaña VeriFactu

Causa: La empresa o el ejercicio no cumplen las validaciones

Solución:

  1. Verificar las validaciones del sistema
  2. Corregir los problemas detectados
  3. Recargar la página de la factura

Problema 2: Error al enviar la factura

Causa: Datos de la factura incorrectos o certificado no válido

Solución:

  1. Revisar los logs en Menú AdministradorLogs
  2. Verificar el mensaje de error
  3. Corregir el problema (por ejemplo, NIF del cliente incorrecto)
  4. Volver a enviar la factura

Problema 3: La factura queda en estado "Pendiente"

Causa: El procesamiento automático no está funcionando

Solución:

  1. Verificar que el procesamiento automático está funcionando
  2. Revisar los logs del sistema en Menú AdministradorLogs
  3. Verificar que el procesamiento automático funciona correctamente
  4. Consultar la guía Procesamiento Automático de VeriFactu

Problema 4: Estado "AceptadoConErrores"

Causa: La AEAT ha detectado advertencias en la factura

Solución:

  1. Revisar los logs del sistema para ver las advertencias
  2. Corregir los datos del cliente si es necesario
  3. Enviar una subsanación si es necesario
  4. Consultar la guía Cómo Subsanar una Factura

Problema 5: Estado "Rechazado"

Causa: La AEAT ha rechazado la factura por errores graves

Solución:

  1. Revisar los logs del sistema para ver el motivo del rechazo
  2. Corregir el problema en la factura (por ejemplo, NIF inválido)
  3. Anular la factura rechazada
  4. Crear una nueva factura con los datos correctos
  5. Enviar la nueva factura

📊 Mejores Prácticas

✅ Recomendaciones

  1. Usar modo depuración inicialmente para hacer pruebas
  2. Configurar envío automático para agilizar el proceso
  3. Revisar logs regularmente para detectar problemas
  4. Verificar el procesamiento del sistema regularmente
  5. Mantener el certificado actualizado (renovar antes de caducar)
  6. Informar a los clientes sobre el código QR en las facturas

❌ Errores a Evitar

  1. ❌ Enviar facturas sin verificar los datos del cliente
  2. ❌ No verificar que el sistema automático funciona correctamente
  3. ❌ Ignorar los estados "AceptadoConErrores" o "Rechazado"
  4. ❌ Modificar facturas después de enviarlas (usar subsanación o anulación)
  5. ❌ No revisar los logs del sistema

📚 Guías Relacionadas


🎯 Próximos Pasos

Una vez que hayas enviado tus primeras facturas:

  1. Verificar el estado de los registros en la pestaña VeriFactu
  2. Revisar los logs del sistema para asegurarte de que todo funciona
  3. Aprender a subsanar facturas si es necesario
  4. Verificar el procesamiento automático regularmente

¡Ya sabes cómo enviar facturas a VeriFactu! Ahora puedes cumplir con las obligaciones normativas de forma automática. 🎉

Documentación liberada bajo Licencia MIT