Cómo configurar certificado FNMT en Odoo paso a paso
Tutorial completo para instalar el certificado FNMT en Odoo y emitir facturas conformes a Verifactu desde el primer arranque, sin tocar línea de código.
Cómo configurar certificado FNMT en Odoo paso a paso
Si has instalado Odoo 17 con el módulo l10n_es_edi_verifactu y quieres empezar a emitir facturas conformes con el RD 1007/2023, el último paso técnico es configurar tu certificado FNMT. Este tutorial te lleva del archivo .p12 al primer envío exitoso a la sede de pruebas AEAT en menos de 10 minutos.
Para contexto, ten a mano la pillar cómo funciona MicroFactu y nuestro artículo sobre cómo obtener el certificado FNMT paso a paso.
Resumen del proceso
- Tener el certificado FNMT en formato
.p12con su contraseña. - Subirlo a Odoo desde Settings > Companies.
- Configurar modo Verifactu (preproducción o producción).
- Hacer una factura de prueba contra la sede AEAT.
- Cuando la prueba devuelve
accepted, pasar a producción.
Tiempo total: 10-15 minutos si tienes el .p12 listo.
Paso 0 — Requisitos previos
Antes de empezar, asegúrate de tener:
- Odoo 17 Community o Enterprise instalado y funcionando.
- Módulo
l10n_es_edi_verifactuactivo (lo verifica desde Apps > buscar “verifactu”). - Datos de empresa completos (NIF, razón social, dirección, código postal). Sin estos, Verifactu no funciona.
- Certificado FNMT en formato
.p12(PKCS#12) con su contraseña.
Si te falta el certificado, tramítalo siguiendo nuestra guía del certificado FNMT.
Paso 1 — Acceder a la configuración Verifactu
- Inicia sesión en Odoo como administrador.
- Activa el modo desarrollador: Settings > en la barra de búsqueda escribe “developer mode” y haz click en “Activate Developer Mode”.
- Ve a Settings > Companies > Companies.
- Selecciona tu empresa.
- Verás varias pestañas. Busca Verifactu o Spanish Localization > Verifactu.
Si no ves la pestaña, el módulo no está activo. Vuelve a Apps, busca l10n_es_edi_verifactu y ejecuta “Install”.
Paso 2 — Cargar el archivo del certificado
En la pestaña Verifactu encontrarás varios campos:
- Certificado (campo tipo Binary): aquí subes tu archivo
.p12. - Contraseña del certificado: la contraseña que pusiste al exportar el certificado de la FNMT.
- Modo Verifactu: “Preproducción” (test AEAT) o “Producción” (envío real).
Subir el archivo
Click en el icono de subida del campo Certificado. Selecciona tu archivo .p12 desde el sistema de ficheros. Odoo lo carga y lo guarda en la base de datos de forma cifrada.
Introducir la contraseña
Escribe la contraseña que protege el .p12. Odoo la cifra antes de guardarla; no aparecerá en logs ni se podrá leer en texto plano después.
Importante: si te equivocas con la contraseña, los envíos a la AEAT fallarán con error de firma. No hay forma de “recuperar” la contraseña: si la has perdido, hay que reexportar el certificado desde tu navegador con una nueva contraseña.
Guardar
Pulsa Save (icono de nube en la parte superior). Odoo valida el certificado: verifica que el archivo es válido, que la contraseña es correcta y que el certificado no está caducado.
Si todo va bien, verás un mensaje “Certificado activo” con la fecha de caducidad.
Paso 3 — Elegir modo de operación
En el campo Modo Verifactu elige:
Preproducción (recomendado al principio)
Los envíos van a https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP (sede de pruebas de la AEAT). Aceptan certificados de prueba o reales. Las facturas no tienen valor fiscal: son simulación.
Úsalo para validar que tu configuración funciona sin que ningún envío vaya a la AEAT real.
Producción
Los envíos van a https://www1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP. Las facturas son reales fiscalmente. Solo activa esto cuando tu preproducción funcione correctamente.
Paso 4 — Probar con una factura de prueba
Crear factura
- Ve a Accounting > Customers > Invoices.
- Click en New.
- Rellena:
- Customer: cualquier cliente con NIF (puedes crear uno de prueba con NIF ficticio válido).
- Invoice Date: hoy.
- Lines: añade una línea con un producto cualquiera, importe pequeño (10 €).
- Click en Confirm.
Verificar el envío
Tras confirmar, Odoo:
- Calcula el hash del registro y lo encadena al hash anterior.
- Genera el QR de la factura.
- Envía el registro a la sede de la AEAT (preproducción).
- Recibe la respuesta y la guarda en la factura.
En la factura, busca:
- Verifactu Status: debería poner
Accepted(preproducción) o un código de error si algo va mal. - Verifactu Hash: 64 caracteres hexadecimales.
- Verifactu Submission Date: fecha y hora del envío.
Inspeccionar el PDF
Genera el PDF de la factura (botón Print > Invoice). Verifica:
- El QR aparece visible en el PDF (típicamente esquina inferior).
- Escanea el QR con tu móvil: te lleva a una URL de la sede AEAT que verifica la factura.
Si todo esto funciona, tu certificado está bien configurado.
Paso 5 — Errores comunes y soluciones
Error: “Invalid certificate password”
La contraseña del campo no coincide con la del .p12. Reintenta. Si no la recuerdas, exporta el certificado desde tu navegador con una contraseña nueva y reimpórtalo.
Error: “Certificate expired”
El certificado FNMT ha caducado. Renuévalo con la FNMT y reimporta el .p12 nuevo.
Error: “Connection refused” o timeout
La sede AEAT no responde. Causas posibles:
- Sede AEAT está caída temporalmente (revisar estado de servicios AEAT).
- Firewall corporativo bloqueando salida HTTPS al dominio
aeat.es. - Contenedor Odoo sin acceso a internet.
Error: “Invalid signature”
El XML que Odoo envía no está firmado correctamente. Suele ser problema de versión del módulo o de configuración del NIF de la empresa. Verifica que el NIF en Settings > Companies coincide exactamente con el del titular del certificado.
Error: “Empresa no autorizada”
El NIF que aparece en el certificado no coincide con el NIF de la empresa configurada en Odoo. Verifica ambos.
Paso 6 — Pasar a producción
Cuando preproducción funciona consistentemente (10 facturas seguidas con accepted), cambia el modo a Producción:
- Settings > Companies > tu empresa > Verifactu.
- Cambia Modo Verifactu a “Producción”.
- Save.
A partir de aquí, cada factura confirmada se envía a la AEAT real con valor fiscal pleno.
Nota: hay un punto sutil en el cambio de modo. La cadena de hashes se reinicia desde cero al cambiar de modo (preproducción y producción son cadenas separadas). Por tanto, las pruebas que hiciste en preproducción no contaminan tu libro de producción.
Cómo lo hacemos en MicroFactu (paquete básico llave en mano)
Si has llegado a este artículo y no quieres pasarte 1-2 horas configurando Odoo desde cero, te lo dejamos hecho. Nuestro paquete básico trae:
- Odoo 17 + módulo
l10n_es_edi_verifactupreinstalados. - Slot configurado para que cargues tu
.p12con un click. - Modo preproducción por defecto, con una factura de prueba ya validada en la sede AEAT.
- Cambio a producción con un toggle.
Tiempo de instalación: 48 horas. Tú no tocas Settings ni configuración técnica: solo subes tu certificado.
Conclusión
Configurar el certificado FNMT en Odoo es un trámite de 10-15 minutos cuando tienes claro qué pestaña tocar y qué validar. Los puntos críticos: que el .p12 y su contraseña sean correctos, que el NIF de la empresa coincida con el del certificado, y que pruebes en preproducción antes de pasar a producción.
Si después de seguir esta guía te sigue fallando, abre los logs de Odoo (docker-compose logs -f odoo si usas Docker) y busca mensajes con “verifactu” o “edi” para ver el error técnico exacto.
¿Tienes problemas con un paso concreto? Cuéntanoslo, te ayudamos aunque no seas cliente.