Saltar al contenido

VeriFactu — Facturación electrónica

Pool-Control genera registros de facturación compatibles con VeriFactu: huella SHA-256 encadenada, XML SOAP y código QR en el PDF.

Qué está implementado

FunciónEstado
Huella y encadenamiento al emitir facturaDisponible
XML VeriFactu (borrador SOAP)Disponible
QR de validación en PDFDisponible
Descarga XML desde detalle de facturaDisponible
Rectificativas (abono R1) con referencia a factura originalDisponible
Inmutabilidad: no editar facturas emitidasDisponible
Certificado por empresa (.pfx)Ajustes → Empresa → Certificado VeriFactu
Envío a AEAT preproducciónCertificado tenant + ALLOW_AEAT_SEND=confirm en servidor
Firma XAdESPendiente (producción homologada)
Producción AEAT realBloqueada (ALLOW_PROD + XAdES)

Flujo habitual

  1. Cree o genere un borrador de factura.
  2. Revise datos y pulse Emitir — se asigna número, huella y XML.
  3. La factura no se puede editar (solo rectificar con abono).
  4. Descargue PDF (con QR) o XML.
  5. Opcional: Enviar AEAT (PRE) desde el detalle (solo si el servidor tiene certificado del obligado emisor).

Requisitos para envío AEAT

  • Subir el certificado .pfx/.p12 del obligado emisor en Ajustes de empresa (el NIF del certificado debe coincidir con el NIF de la empresa).
  • Razón social = nombre en censo AEAT (debe coincidir con el certificado).
  • NIF productor software configurado en SuperAdmin → VeriFactu (distinto del NIF del tenant).
  • Entorno preproducción por defecto (verifactuProduction = false).
  • En desarrollo local puede usarse VERIFACTU_CERT_PATH (no en producción Render).
  • Al subir el certificado en Ajustes: se informa del cifrado AES-256-GCM, finalidad AEAT y posibilidad de borrado; detalle en política de privacidad y Ajustes de empresa.

Matriz de tests automáticos

SuiteQué valida
verifactu-hash.test.tsHuella F1/F2/R1
verifactu-xml.test.tsXML destinatario, encadenamiento
verifactu-aeat-response.test.tsParser Correcto/Incorrecto
verifactu-compliance.test.tsReglas legales API (inmutabilidad, compras sin VF)
pnpm test:verifactu-xsdMuestras XML (estructura / XSD si xmllint)
RUN_AEAT_INTEGRATION=1Envío PRE real (opcional, no CI)

Cuentas de prueba internas

CuentaSubdominioUso
Demo públicaAquaDemoTesters — datos ficticios (CIF demo)
Laboratorio VFvf-labPruebas VeriFactu con datos reales del desarrollador — no es la demo pública

Acceso laboratorio (seed): admin@vf-lab.test / password123

Comando para recrear datos dinámicos del lab:

bash
cd packages/server && pnpm seed:vf-lab -- --reset

Compras y VeriFactu

Las facturas de proveedor, recepciones, pagos a proveedor y anulaciones/abonos de compra en el ERP no se envían a AEAT como alta VeriFactu.

Documento¿VeriFactu desde Pool-Control?Motivo
Factura de venta (cliente)Sí — hash, XML, QR, envío PREUsted es el obligado emisor
Abono / rectificativa venta (R1)Rectifica una factura que usted emitió
Factura de proveedor (compra)NoLa registra su proveedor; usted solo contabiliza la recepción
Abono o anulación de compraNoNo es un registro de alta de su facturación emitida

Si su proveedor está obligado a VeriFactu, él remite el XML a Hacienda; Pool-Control no sustituye ese envío.

CapaQué guardaDónde verlo
Registro VeriFactu (obligatorio emisor)Huella SHA-256, encadenamiento, XML SOAP, estado AEATFactura emitida: campos técnicos + descarga XML
Auditoría de negocioQuién emitió, intentos de editar bloqueados, envíos AEAT PREConfiguración → Auditoría (SETTINGS_VIEW_LOGS)

Acciones relevantes en auditoría: INVOICE_ISSUED, VERIFACTU_EDIT_BLOCKED, VERIFACTU_AEAT_SEND.

El libro de registro exportable (CSV/XML masivo para inspección) está pendiente; hoy el registro técnico está en cada factura emitida.

Entorno PRE hasta alta oficial en censo

Hasta que la empresa esté dada de alta y el censo AEAT coincida con certificado y razón social:

  • Usar solo preproducción (verifactuProduction = false, host prewww1).
  • Envíos solo con ALLOW_AEAT_SEND=confirm y supervisión.
  • Validar en tenant vf-lab (no demo pública AquaDemo).
  • No activar producción AEAT ni ALLOW_PROD en Render.

Cuando el alta oficial esté lista: certificado del tenant en Ajustes, prueba PRE Correcta desde la app, luego homologación (XAdES) antes de producción.

Rectificar ≠ borrar

No se pueden eliminar facturas emitidas. Para corregir: use Rectificar → abono (R1) y, si aplica, nueva factura.

Más información

¿Necesitas ayuda? soporte@poolcontrolpro.com