Cómo emitir facturación electrónica (FEL) desde Odoo en Guatemala
Si vendes en Guatemala y llevas tu contabilidad en Odoo, tarde o temprano llegas a la misma pared: Odoo no sabe nada del régimen FEL. Ni Community ni Enterprise. La localización guatemalteca que trae Odoo cubre el catálogo de cuentas y los impuestos, pero no el documento tributario electrónico.
Esta guía explica qué es lo que hace falta exactamente, para que puedas decidir si lo resuelves tú o con un módulo.
Qué exige el régimen FEL
El SAT no te pide «una factura en PDF». Te pide un circuito, y cada paso tiene consecuencias si falta:
- Armar el DTE. El documento tributario electrónico es un XML con una estructura definida: emisor, receptor, ítems, impuestos, frases tributarias y complementos según el tipo de documento.
- Firmarlo. Con el certificado del emisor.
- Certificarlo. El DTE va a un certificador autorizado, que lo valida, lo registra ante el SAT y devuelve el número de autorización (el UUID) y la fecha de certificación.
- Entregarlo. El documento que recibe el cliente debe llevar impreso ese número de autorización y los datos del certificador.
- Poder anularlo. La anulación es un documento aparte, con su propio plazo. No es borrar la factura.
El paso 3 es el que rompe todo lo demás: hasta que el certificador no responde, no tienes una factura válida, solo un borrador. Y el certificador puede tardar, rechazar o estar caído.
Dónde se queda Odoo
Odoo te da la factura (account.move), los impuestos y el reporte. No tiene:
| Lo que falta | Por qué importa |
|---|---|
| El modelo del DTE | El número de autorización y la fecha de certificación no tienen dónde vivir |
| El estado del documento | Una factura «publicada» en Odoo puede no estar certificada. Son dos cosas distintas |
| La conexión con el certificador | Cada uno tiene su propio protocolo |
| La anulación como documento | Odoo cancela la factura; el SAT quiere un documento de anulación |
| El reintento | Si el certificador no respondió, alguien tiene que volver a intentarlo |
El error más común que vemos es tratar el estado FEL como un campo de texto en la factura. Funciona el primer mes. Deja de funcionar el día que el certificador rechaza un documento y nadie se entera, porque no hay nada que distinga «certificada» de «nunca se intentó».
Cómo queda el circuito bien armado
La separación que sostiene esto es el documento por un lado y el certificador por el otro:
- El DTE es un modelo propio, con su estado, su número de autorización, su fecha de certificación y su relación con la factura de Odoo. No depende de qué proveedor uses.
- El certificador es una implementación intercambiable. Infile, Digifact, Guatefacturas y los demás hacen lo mismo con protocolos distintos.
Que estén separados es lo que te permite cambiar de certificador sin tocar tus facturas anteriores, que es la decisión cara si no la tomas al principio.
Y el estado tiene que ser visible en la factura, no en un registro escondido. Si el SAT rechazó un documento, eso se lee donde el contador ya está mirando.
Qué hicimos nosotros
Partimos el problema en dos módulos, y el de abajo es gratis:
- Guatemala FEL —
puntofy_fel, gratis y de código abierto. Trae el modelo del DTE completo, la anulación, la nota de débito y la clase base del certificador. Con este módulo solo, puedes conectar el certificador que quieras escribiendo esa clase. No certifica nada por sí mismo: es la base. - Certificadores FEL de Guatemala —
puntofy_fel_certificadores, de pago. Trae nueve certificadores autorizados implementados: Infile, Digifact, Guatefacturas, G4S, Megaprint, Ecofacturas, GOM, Cámara de Comercio y Totaldoc.
Si vendes en mostrador o en línea, hay dos piezas más: FEL para el punto de venta y FEL en el checkout.
Antes de empezar, verifica con el SAT
El régimen cambia. Antes de configurar nada, confirma con el SAT y con tu certificador cuál es tu situación: el tipo de documentos que estás autorizado a emitir, las frases tributarias que te corresponden y los plazos de anulación vigentes. Ningún módulo te exime de eso, y esta guía tampoco.