¿Qué es el módulo CFDIXML?
CFDIXML es el módulo de Dolibarr que permite emitir, recibir, cancelar y administrar Comprobantes Fiscales Digitales por Internet (CFDI) según las disposiciones del Servicio de Administración Tributaria (SAT) de México, en la versión vigente CFDI 4.0.
El módulo permite:
- Generar el archivo XML del CFDI con sello digital del contribuyente.
- Enviarlo a un Proveedor Autorizado de Certificación (PAC) para obtener el sello del SAT y el folio fiscal (UUID).
- Emitir todos los tipos de comprobante: ingreso, egreso, traslado, pago y nómina.
- Generar complementos: Comercio Exterior 2.0, Carta Porte 3.1 y Pagos 2.0.
- Cancelar comprobantes según los motivos del SAT.
- Importar comprobantes históricos (saldos iniciales) para mantener trazabilidad fiscal.
Requisitos previos
Antes de usar el módulo, debe contar con lo siguiente:
| Requisito | Descripción | Tipo |
|---|---|---|
| Certificado de Sello Digital (CSD) | Archivos .cer y .key emitidos por el SAT a su nombre, junto con la contraseña de la llave privada. |
Obligatorio |
| RFC válido y régimen fiscal vigente | Su empresa debe estar dada de alta en el SAT con un régimen fiscal compatible con la emisión de CFDI. | Obligatorio |
| Token autorizado por VivesCloud | Credencial de timbrado que VivesCloud entrega al contratar el módulo o un plan que lo incluya. Es la única conexión necesaria para emitir CFDI; la infraestructura PAC queda gestionada del lado de VivesCloud. | Obligatorio |
| Dolibarr 19 o superior | El módulo requiere Dolibarr 19+ y PHP 7.4+. | Obligatorio |
| Datos del emisor cargados en Dolibarr | Nombre o razón social, RFC, código postal del lugar de expedición y régimen fiscal en Configuración → Compañía/Organización. | Obligatorio |
| Catálogos del SAT cargados | El módulo carga automáticamente los catálogos vigentes (uso CFDI, métodos de pago, unidades, claves producto/servicio, etc.) durante la instalación. | Automático |
Tipos de CFDI soportados
| Tipo | Código | Para qué sirve |
|---|---|---|
| Ingreso (Factura) | I | Documenta una venta de bienes o servicios. Es el tipo más común. |
| Egreso (Nota de crédito) | E | Documenta una devolución, descuento o bonificación sobre una factura previamente emitida. |
| Pago (REP) | P | Complemento que documenta el cobro de una factura emitida con método de pago PPD (pago en parcialidades o diferido). |
| Traslado | T | Documenta el traslado físico de mercancías. Generalmente se acompaña del complemento Carta Porte 3.1. |
| Comercio Exterior | I + CCE 2.0 | Factura de exportación con el complemento de Comercio Exterior 2.0. |
| Factura Global | I (público en general) | Para puntos de venta donde se factura a "público en general" en operaciones consolidadas. |
Instalación del módulo
cfdixml dentro del directorio
custom/ de su instalación de Dolibarr (por ejemplo, htdocs/custom/cfdixml).
Si descargó el zip module_cfdixml.x.y.z.zip, descomprímalo en esa ruta.
Configurar los certificados digitales (CSD)
El Certificado de Sello Digital (CSD) es el equivalente electrónico de su firma. Sin él, no es posible sellar (firmar) los CFDI antes de enviarlos al PAC.
- El archivo .cer (certificado público).
- El archivo .key (llave privada).
- La contraseña de la llave privada (la que usted definió ante el SAT al solicitar el CSD).
.cer y guarde. El sistema valida la extensión
y almacena el archivo en una carpeta privada de Dolibarr.
.key.
Configurar la conexión con el PAC
El PAC (Proveedor Autorizado de Certificación) es el intermediario autorizado por el SAT para timbrar (sellar) sus CFDI. Cada PAC ofrece un servicio web con sus propias URLs y credenciales.
Parámetros a configurar
| Parámetro | Descripción |
|---|---|
Modo de operación |
TEST: Para pruebas, no genera CFDIs válidos fiscalmente. PRODUCTION: Para emisión real. Solo cambie cuando todo esté validado. |
URL de pruebas |
Endpoint del web service del PAC en ambiente de pruebas (ej: https://demo.pac.com.mx/...). |
URL de producción |
Endpoint del web service del PAC en producción. |
Token / Credenciales |
Credencial de autenticación que le proporcionó su PAC. Algunos PACs usan usuario+contraseña, otros un token. |
Proveedor de timbrado
El módulo se conecta vía FinkOk, distribuidor de PAC autorizado por el SAT que provee el servicio de timbrado y cancelación.
Configurar el régimen RESICO (si aplica)
Si su empresa o sus clientes operan bajo el Régimen Simplificado de Confianza (RESICO), el módulo permite parametrizar las retenciones automáticas.
| Campo | Significado |
|---|---|
| Tipo RESICO | Selecciona el tipo de tercero al que se aplica RESICO. El módulo lo evalúa al crear líneas de orden o factura. |
| Impuesto RESICO | Porcentaje de retención que aplica RESICO 125 (típicamente 1.25 % de ISR para personas físicas RESICO). |
| RESICO 125 activo | Bandera que activa la retención automática cuando el RFC del cliente tiene 13 caracteres (persona física) y está marcado como RESICO. |
Mapeo de formas de pago Dolibarr ↔ SAT
Dolibarr trae su propio catálogo de "Formas de pago" (Efectivo, Transferencia, Cheque, etc.). El SAT exige que cada CFDI use el código oficial de su catálogo c_FormaPago. El módulo permite mapear ambos catálogos en una pantalla.
admin/taxes.php).
01— Efectivo02— Cheque nominativo03— Transferencia electrónica de fondos04— Tarjeta de crédito28— Tarjeta de débito99— Por definir (úselo solo cuando el método aún no se conoce, p. ej. anticipos)
llx_cfdixml_forma_pago.
01 y registrar el complemento de pago obligatoriamente.
Configurar Carta Porte / Traslado
Si su empresa traslada mercancías por cuenta propia o presta servicios de transporte, debe configurar el complemento Carta Porte 3.1.
Parámetros generales
| Campo | Para qué sirve |
|---|---|
| Habilitar Carta Porte | Activa la funcionalidad en el módulo. |
| Habilitar CFDI de Traslado | Permite emitir comprobantes tipo "T" desde órdenes de envío. |
| Distancia por defecto (km) | Valor que se sugiere automáticamente al crear un traslado. Cámbielo en cada operación si difiere. |
Datos de origen (su empresa como remitente)
Capture el domicilio desde donde sale la mercancía con datos del catálogo INEGI (no texto libre):
- RFC y nombre del remitente.
- Calle, número exterior e interior.
- Clave INEGI de colonia, municipio, localidad y estado.
- Código postal.
Asistente Carta Porte
Para configurar el primer traslado paso a paso, use el asistente integrado:
CFDIXML → Asistente Carta Porte (archivo: admin/wizard_cartaporte.php).
El asistente le guía en 5 pasos:
- Verificación de requisitos (módulo activo, certificados cargados).
- Datos del vehículo (placa, año, configuración vehicular SAT, aseguradora, póliza).
- Datos del conductor (RFC, nombre, número de licencia).
- Datos del traslado (origen, destino, distancia, motivo).
- Generación y timbrado del CFDI Traslado con complemento Carta Porte.
Permisos de usuario
El módulo define seis permisos que se asignan a usuarios o grupos en Usuarios y Grupos → [Usuario o Grupo] → Permisos.
| Permiso | Qué permite |
|---|---|
| Leer objetos CFDIXML | Ver CFDI emitidos, XML, PDF y reportes. Mínimo necesario para usuarios que solo consultan. |
| Crear / Modificar CFDIXML | Generar y timbrar CFDI desde facturas y órdenes. |
| Eliminar CFDIXML | Borrar registros del módulo (NO cancela el CFDI ante el SAT). |
| Leer pagos CFDI | Ver complementos de pago (REP). |
| Crear / Modificar pagos CFDI | Emitir y timbrar complementos de pago. |
| Eliminar pagos CFDI | Borrar registros de complemento de pago. |
Emitir una factura
El proceso de emitir un CFDI tiene dos etapas: primero crea la factura en Dolibarr de forma normal, y después la convierte en CFDI mediante el botón de timbrado.
- Uso del CFDI (obligatorio): código del catálogo SAT que indica para qué usará la factura el cliente. Los más comunes:
G01Adquisición de mercancías.G03Gastos en general.I01–I08Inversiones (construcciones, equipo, etc.).S01Sin efectos fiscales.
- Método de pago (obligatorio):
PUEPago en una sola exhibición — el cliente pagó al momento o pagará dentro del mismo mes.PPDPago en parcialidades o diferido — pago a crédito; requiere posteriormente complemento de pago.
- Forma de pago: del catálogo SAT (efectivo, transferencia, etc.). Cuando el método es PPD, se pone automáticamente
99"Por definir". - Exportación:
01No aplica (la mayoría) o02Definitiva si es venta al extranjero.
Timbrar el CFDI
"Timbrar" significa enviar el XML al PAC, recibir el sello del SAT y obtener el folio fiscal (UUID) que hace al comprobante válido fiscalmente.
- Construye el XML del CFDI.
- Genera la cadena original aplicando el XSLT del SAT.
- Firma la cadena con su llave privada (sello digital).
- Envía el XML firmado al PAC.
- Recibe del PAC el UUID, el sello del SAT y el XML timbrado.
- Guarda el XML, registra el UUID en la factura y genera el PDF con código QR.
- Mensaje "CFDI timbrado correctamente".
- Campo UUID con el folio fiscal (formato:
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX). - Botones para descargar el XML y el PDF.
- "RFC inválido" — el RFC del cliente no cumple el formato o no existe ante el SAT.
- "Código postal del receptor inválido" — el CP del cliente no está cargado o no es válido.
- "Régimen fiscal del receptor inválido" — falta capturar el régimen fiscal en la ficha del cliente.
- "Sello digital inválido" — los archivos CSD no coinciden o están vencidos.
- "Token PAC inválido" — la credencial del PAC expiró.
Complemento de pago (REP)
Cuando una factura se emite con método de pago PPD (a crédito), cada cobro que realice debe documentarse con un Complemento de Recepción de Pagos (REP). Este complemento es un CFDI adicional tipo "P".
Cancelar un CFDI
Cancelar un CFDI es un trámite formal ante el SAT que requiere indicar un motivo del catálogo oficial.
Motivos de cancelación SAT
| Código | Significado | Cuándo usarlo |
|---|---|---|
01 | Comprobante emitido con errores con relación | Hubo error en datos y se emite uno nuevo que sustituye al cancelado. Debe indicar el UUID del nuevo CFDI. |
02 | Comprobante emitido con errores sin relación | Se emitió por error y no habrá uno nuevo que lo sustituya. |
03 | No se llevó a cabo la operación | La operación se canceló antes de concretarse. |
04 | Operación nominativa relacionada en factura global | Se cancela una factura "público en general" porque el cliente ahora pidió factura nominativa. |
Procedimiento
01, capture el UUID del CFDI
que sustituye al que se cancela.
- Cancelado inmediatamente — si el CFDI tiene menos de 24 horas, montos pequeños o motivos automáticos.
- En espera de aceptación — el cliente tiene 72 horas para aceptar o rechazar la cancelación. Si no responde, se cancela automáticamente.
Emitir una nota de crédito
Una nota de crédito es un CFDI tipo Egreso (E) que disminuye el efecto de una factura ya emitida (devolución, descuento, bonificación).
01 "Nota de
crédito de los documentos relacionados" y vincule el UUID de la factura original.
CFDI con Comercio Exterior (CCE 2.0)
Si su empresa exporta mercancías, las facturas correspondientes deben llevar el complemento Comercio Exterior 2.0.
Cuándo aplica
- El cliente está fuera de México.
- La operación es venta de mercancías (no servicios).
- El tipo de exportación es
02Definitiva.
Datos adicionales requeridos
| Campo | Descripción |
|---|---|
| País destino | Código ISO del país (USA, CAN, etc.). |
| Incoterm | Término de la operación: CFR, CIF, DDP, EXW, FOB, etc. |
| Subdivisión / Estado | Estado o provincia del destinatario. |
| Fracción arancelaria | Por línea, código de 8 dígitos del SAT. |
| Descripción en inglés | Descripción de la mercancía en idioma del país destino. |
| Unidad aduana | Unidad reconocida por aduana (kg, pieza, etc.). |
| Valor unitario aduana | Valor en USD u otra divisa de aduana. |
cce20:ComercioExterior al XML.
Carta Porte 3.1
Carta Porte es el complemento que documenta el traslado de mercancías. Lo deben emitir tanto transportistas (en CFDI tipo Ingreso por el flete) como propietarios de mercancía que las trasladan por cuenta propia (en CFDI tipo Traslado).
Camino recomendado: usar el asistente
La forma más sencilla de emitir su primer CFDI Carta Porte es a través del asistente: CFDIXML → Asistente Carta Porte. El asistente cubre los 5 pasos: requisitos, vehículo, conductor, traslado, generación.
Datos mínimos del vehículo
- Placa (formato AAA-000-A o AA-000-AA según el estado).
- Año modelo.
- Configuración vehicular (catálogo SAT: VL camioneta, C2 camión 2 ejes, T3S2 tractocamión + semirremolque, etc.).
- Aseguradora de responsabilidad civil y número de póliza.
- Permiso SCT (Tipo y número).
Datos del conductor
- RFC.
- Nombre completo.
- Número y vigencia de la licencia federal SCT.
Datos del traslado
- Origen y destino con domicilios completos (claves INEGI).
- Distancia recorrida en km.
- Fecha y hora estimadas de salida y llegada.
- Mercancías: clave producto SAT, descripción, peso, cantidad, valor (si aplica).
Factura global (POS)
Permite consolidar las ventas a "público en general" de un periodo (día, semana, mes) en un solo CFDI. Es ideal para tiendas, gasolineras, restaurantes y cualquier negocio con muchas operaciones pequeñas.
Cómo usarlo
01 No aplica.
Addendas (clientes que requieren información adicional)
Algunas cadenas comerciales (Walmart, Soriana, Liverpool, etc.) exigen que el CFDI incluya una "addenda" — un nodo XML adicional con información operativa propia del cliente (número de orden de compra, código de proveedor, ubicación de entrega, etc.).
El módulo incluye soporte para varias addendas en addenda/. Para activar una addenda:
Importar saldos iniciales (XMLs históricos)
Si está migrando desde otro sistema o quiere mantener el histórico de CFDIs en Dolibarr, puede importar los archivos XML que ya emitió o recibió.
Caso de uso típico
Su empresa lleva 3 años facturando con otro software. Migra a Dolibarr. Quiere que las facturas de los últimos meses queden registradas en Dolibarr (saldos pendientes de cobro, antigüedad, etc.) pero sin re-timbrarlas (ya están timbradas).
admin/saldos_iniciales.php).
- Serie clientes (ej:
SI) y folio inicial. - Serie proveedores (ej:
SIP) y folio inicial. - Si desea guardar el XML completo en la base de datos.
- Verifica que el UUID no exista ya (evita duplicados).
- Busca al cliente/proveedor por RFC; si no existe, lo crea.
- Crea la factura con sus líneas e impuestos.
- Registra el UUID original en el campo
cfdixml_UUID. - Anota el resultado en el log de importación.
Migración de versión
Cuando el módulo recibe una actualización mayor, puede ser necesario ejecutar una rutina de migración para crear nuevos campos y ajustar los existentes.
admin/migration.php).
- Crea los campos predeterminados en clientes (
cfdixml_usocfdi_default,cfdixml_metodopago_default). - Hace visibles en el listado de facturas los campos
cfdixml_UUID,cfdixml_usocfdi, etc. - Detecta su versión de Dolibarr y aplica la sintaxis correcta.
Cola de timbrado (reintentos automáticos)
Cuando un timbrado falla por motivos transitorios (PAC caído, internet inestable), el documento queda en una cola interna para reintentar después.
- Tabla:
llx_cfdixml_queue. - Campos relevantes:
fk_object: ID del documento (factura, pago u orden).type: tipo de objeto (factureopayment).active: 1 si sigue pendiente.note: motivo de la falla, mensaje del PAC.
Para procesar la cola programadamente, configure un trabajo CRON en
Inicio → Trabajos programados que invoque la función queue() del módulo cada
cierto tiempo (ej: cada hora).
Solución de problemas comunes
"Error: certificado vencido"
Los CSD del SAT vencen cada 4 años. Renueve los certificados en el portal del SAT, descargue los nuevos archivos .cer y .key, y cárguelos en
CFDIXML → Configuración reemplazando los anteriores.
"Error 401 / Token inválido al conectar al PAC"
El token expiró o cambió. Solicite uno nuevo a su PAC y actualícelo en el campo Token de la pantalla de configuración. Asegúrese de no copiar espacios accidentales.
"El XML no es válido contra el XSD del SAT"
Suele ser un dato del cliente o del producto:
- Cliente sin RFC, código postal o régimen fiscal.
- Producto sin clave SAT (catálogo c_ClaveProdServ).
- Producto sin unidad SAT (catálogo c_ClaveUnidad).
- Importes con más de 2 decimales sin justificación.
El sistema indica el campo específico que falla.
"El cliente no acepta la cancelación"
Cuando el cliente rechaza la cancelación, el CFDI sigue vigente. Comuníquese con el cliente para aclarar el motivo. Si la operación realmente se canceló, deberá emitir una nota de crédito por el monto total para neutralizar el efecto fiscal.
"Mensaje 'Forma de pago no mapeada'"
Falta configurar la equivalencia entre la forma de pago de Dolibarr y el código SAT. Vaya a CFDIXML → Configuración → Mapeo de formas de pago y agregue el mapeo faltante.
"Duplicado: el UUID ya existe"
Solo aparece al importar XMLs. Significa que ese CFDI ya fue importado previamente; es un mensaje informativo, no un error.
Glosario de términos SAT y CFDI
- CFDI
- Comprobante Fiscal Digital por Internet. Es la factura electrónica oficial en México.
- UUID
- Folio fiscal único asignado por el SAT a cada CFDI timbrado. Tiene 36 caracteres con guiones.
- CSD
- Certificado de Sello Digital. Archivo .cer + .key que permite firmar electrónicamente los CFDI.
- PAC
- Proveedor Autorizado de Certificación. Empresa autorizada por el SAT para timbrar CFDIs.
- Timbrar
- Acción de enviar un CFDI al PAC para que el SAT lo selle y le asigne un UUID.
- PUE
- Pago en Una sola Exhibición. Se usa cuando el cliente paga al momento o en el mismo mes.
- PPD
- Pago en Parcialidades o Diferido. Se usa cuando el pago será posterior y requiere complemento de pago.
- REP
- Recepción de Pagos. Es el complemento de pago que documenta el cobro de una factura PPD.
- Cadena original
- Texto generado a partir del XML aplicando un XSLT del SAT. Es lo que se firma con la llave privada.
- Sello digital
- Resultado de firmar la cadena original con la llave privada del CSD.
- Sello SAT
- Firma que el SAT añade al CFDI al timbrarlo, garantizando su autenticidad.
- Uso CFDI
- Catálogo c_UsoCFDI del SAT. Indica para qué efecto fiscal usará el cliente la factura.
- Régimen fiscal
- Catálogo c_RegimenFiscal del SAT. Define el régimen bajo el cual tributa el contribuyente.
- RESICO
- Régimen Simplificado de Confianza, código 626 (personas físicas) o 625 (morales). Tiene retenciones y reglas particulares.
- CCE
- Complemento de Comercio Exterior. Información adicional para CFDIs de exportación.
- Carta Porte
- Complemento que documenta el traslado de mercancías por carretera, mar, aire o vía férrea.
- Addenda
- Información adicional, no fiscal, que algunos clientes exigen incluir en el XML.
Estructura de datos (referencia)
Tablas principales del módulo
| Tabla | Contenido |
|---|---|
llx_cfdixml_queue | Cola de documentos pendientes de timbrar. |
llx_cfdixml_payment | Cabecera de complementos de pago (REP). |
llx_cfdixml_payment_lines | Líneas (facturas pagadas) de cada REP. |
llx_cfdixml_facture_cce | Datos del complemento Comercio Exterior. |
llx_cfdixml_facturedet_cce | Datos CCE por línea de factura. |
llx_cfdixml_invoiceglobal | Cabecera de facturas globales POS. |
llx_cfdixml_facture_global_det | Líneas de facturas globales. |
llx_cfdixml_forma_pago | Mapeo formas de pago Dolibarr ↔ SAT. |
llx_cfdixml_import_log | Bitácora de importación de XMLs históricos. |
llx_cfdixml_ccp_remolques | Catálogo de remolques para Carta Porte. |
Catálogos del SAT cargados
| Tabla | Catálogo SAT |
|---|---|
llx_c_cfdixml_umed | Unidades de medida (c_ClaveUnidad). |
llx_c_cfdixml_claveprodserv | Claves producto/servicio (c_ClaveProdServ). |
llx_c_cfdixml_usocfdi | Uso del CFDI (c_UsoCFDI). |
llx_c_cfdixml_metodopago | Método de pago (c_MetodoPago). |
llx_c_cfdixml_tiporelacion | Tipo de relación entre CFDIs (c_TipoRelacion). |
llx_c_cfdixml_objetoimp | Objeto de impuesto (c_ObjetoImp). |
llx_c_cfdixml_exportacion | Tipo de exportación (c_Exportacion). |
llx_c_cfdixml_cancelacion | Motivos de cancelación SAT. |
llx_c_cfdixml_ccp_subtiporemolque | Subtipos de remolque (Carta Porte). |
Campos extra (extrafields) que añade el módulo
En la tabla llx_facture_extrafields:
cfdixml_usocfdi— Uso del CFDI seleccionado para esta factura.cfdixml_metodopago— Método de pago (PUE/PPD).cfdixml_exportacion— Tipo de exportación.cfdixml_UUID— Folio fiscal asignado al timbrar.
En la tabla llx_societe_extrafields (clientes y proveedores):
cfdixml_usocfdi_default— Uso CFDI predeterminado por cliente.cfdixml_metodopago_default— Método de pago predeterminado.
Manual del módulo CFDIXML para Dolibarr · Versión 2.3.0 · Última actualización 2026
Para soporte técnico contacte al desarrollador del módulo.