Si tu empresa emite más de 50 facturas al mes en México, no hay razón válida en 2026 para seguir haciéndolo a mano. La API del SAT (a través de un PAC autorizado) permite emitir, cancelar y consultar CFDI 4.0 desde cualquier sistema. Bien implementada, automatizar CFDI ahorra entre 10 y 40 horas/mes y elimina los errores más caros (RFC mal escrito, uso de CFDI incorrecto, conceptos sin clave SAT).
Esta guía te explica cómo se hace de verdad: qué PAC elegir, cómo se autentica, cómo se construye el XML, cómo se valida el RFC del receptor con IA antes de emitir, y los gotchas del SAT que solo descubres en producción.
Cómo funciona la facturación electrónica en México (versión 2026)
En México el SAT no expone una API directa para emitir CFDI. Tienes que pasar por un PAC (Proveedor Autorizado de Certificación). El PAC es el intermediario que valida tu CFDI contra las reglas del SAT, le pone su firma y se lo manda al SAT en tu nombre.
El flujo simplificado:
- Tu sistema (ERP, e-commerce, app) construye el XML del CFDI según el estándar 4.0.
- Lo firma con tu Certificado de Sello Digital (CSD).
- Lo manda al PAC vía su API REST/SOAP.
- El PAC valida, sella, manda al SAT y devuelve el XML timbrado + PDF.
- Tu sistema guarda los archivos y notifica al receptor (típicamente por email).
Todo este flujo tarda entre 1 y 4 segundos por CFDI con un PAC decente.
Qué PAC elegir según tu volumen
Hemos integrado los 8 PACs más usados por PYMEs en México. Estos son los criterios reales para elegir:
- SW Sapien (api.sw.com.mx): la API más limpia del mercado, REST + documentación impecable, sandbox real, soporte técnico que responde rápido. Precio: ~1-3 MXN por timbre según volumen.
- Facturama: API moderna, dashboard sencillo, planes para developers. Bueno para SaaS multi-cliente.
- FEL Comercio Digital: muy presente en empresas medianas. API algo más burocrática pero estable.
- Edicom / FacturaXion: enterprise. Buena para volúmenes >10k/mes.
- Diverza / Mysuite: legacy pero presentes en muchas empresas tradicionales.
Para PYMEs nuevas, recomendamos SW Sapien o Facturama. La diferencia de precio con un PAC enterprise es 30-50% y la calidad de la API es muy superior.
Paso 1: tu Certificado de Sello Digital (CSD)
El CSD es la firma criptográfica que el SAT te emite. Lo descargas como dos archivos: .cer (el certificado público) y .key (la llave privada). Más una contraseña que pusiste al solicitarlo.
En el ambiente de pruebas del PAC, normalmente puedes usar un CSD de demo. En producción, tienes que cargar el tuyo real en el panel del PAC y mantenerlo seguro.
Nunca guardes el .key sin cifrar en un repositorio git. Usa un secret manager (Doppler, AWS Secrets, Vault) o variables de entorno cifradas.
Paso 2: construir el XML del CFDI 4.0
El XML tiene una estructura definida por el SAT. Los nodos principales:
cfdi:Comprobante— el nodo raíz con atributos generales (folio, fecha, total, etc).cfdi:Emisor— tus datos.cfdi:Receptor— datos del cliente (RFC, nombre, código postal, uso CFDI, régimen fiscal).cfdi:Conceptos— uno por cada producto o servicio.cfdi:Impuestos— IVA, IEPS según aplique.cfdi:Complemento— opcional, para pago, nómina, comercio exterior, etc.
La trampa: el SAT cambia atributos cada año. En 2026 hay 3 cambios respecto a 2025: nuevo catálogo de uso CFDI, validación más estricta de código postal del receptor, y nuevo régimen "Plataformas Tecnológicas" para apps marketplace.
La mayoría de PACs ofrecen SDK en Node, Python y .NET que construyen el XML por ti. Recomendado: usa el SDK del PAC, no construyas el XML a mano salvo que tengas mucha tolerancia al sufrimiento.
Paso 3: validar el RFC del receptor con IA antes de emitir
El error #1 que vemos en empresas mexicanas: facturar a un RFC mal escrito. El SAT rechaza la factura y hay que volver a emitir. Esto cuesta tiempo, timbres y dinero.
Solución: antes de emitir, valida el RFC contra el padrón del SAT. La forma fácil: usa la API de validación que ya tienen Facturama o SW Sapien. La forma robusta:
- Cuando se da de alta un cliente nuevo, pásale el nombre fiscal + RFC a un modelo IA que valide el formato (regex) y la consistencia (RFC empieza con las iniciales del nombre).
- Llama al endpoint de validación del PAC:
GET /v1/rfc/validate?rfc=ABCD123456XYZ. - Si el PAC reporta que existe y está activo, OK. Si no, escalas al equipo comercial antes de seguir.
Este paso ahorra entre 5 y 20% de facturas rechazadas, según el sector. En B2B con clientes grandes ahorra menos; en e-commerce B2C ahorra muchísimo.
Paso 4: emitir desde tu ERP
Patrón limpio que usamos en proyectos reales:
- Tu ERP (Aspel, Bind, Odoo) tiene los datos del pedido.
- Un workflow en n8n se dispara cuando el pedido cambia a estado "facturable".
- n8n llama al ERP, extrae los datos del pedido y los datos del cliente.
- n8n manda esos datos al PAC (SW Sapien, Facturama) con la estructura que espera.
- El PAC devuelve el CFDI timbrado (XML + PDF).
- n8n guarda XML y PDF en S3 (o el storage que uses), notifica al cliente por email/WhatsApp con los archivos adjuntos.
- n8n actualiza el ERP marcando el pedido como facturado, con el UUID del CFDI.
Tiempo total: 2-5 segundos por factura. En lote (cierre de mes): puedes facturar 200 CFDIs en menos de 5 minutos.
Paso 5: cancelar CFDI automáticamente
Desde 2022 cancelar un CFDI requiere motivo y, en algunos casos, aceptación del receptor. La API del PAC soporta los 4 motivos válidos: 01 (con relación), 02 (sin relación), 03 (no se llevó a cabo la operación), 04 (operación nominativa relacionada en una global).
Patrón limpio:
- Cuando el ERP marca un pedido como cancelado, el workflow llama al PAC:
POST /v1/cfdi/cancelcon UUID + motivo + RFC receptor. - Si el motivo requiere aceptación del receptor, el PAC reporta "en proceso de aceptación".
- El workflow consulta cada 12 horas el estatus hasta que se confirma cancelación o se vence el plazo (72 horas).
- Si se confirma, actualiza ERP. Si no, escala al equipo comercial.
Errores comunes del SAT que rompen integraciones
De nuestros proyectos en México, estos son los 5 errores que más vemos:
- CRP202 (UUID duplicado): intentas timbrar un comprobante con un UUID que ya existe. Solución: idempotencia con external_id.
- CRP143 (RFC del receptor no válido): el SAT no encuentra ese RFC. Solución: validación previa.
- CRP146 (régimen fiscal del receptor incorrecto): el régimen que pasas no coincide con el que tiene registrado el receptor en el SAT. Solución: consulta el régimen real con un endpoint de tu PAC antes de timbrar.
- CRP186 (código postal del receptor no coincide): el CP que mandas no es el que el SAT tiene. Solución: pedir el CP fiscal explícitamente al cliente, no asumir el de envío.
- CRP020 (clave de producto/servicio no existe): usaste una clave que el catálogo del SAT no reconoce. Solución: mantener un mapeo actualizado de tus productos a claves SAT, y validar el catálogo al menos 1 vez al mes.
Costos reales en México 2026
- Timbres SW Sapien / Facturama: 1-3 MXN por CFDI según volumen.
- Setup de integración con tu ERP: 60.000-180.000 MXN según complejidad.
- Mantenimiento anual: ~15% del setup. Lo más caro es seguir el cambio anual del SAT.
ROI esperado: si emites 200 facturas/mes a mano (15-20 min cada una), automatizar te ahorra 50-65 horas/mes. A 200 MXN/hora del costo de tu equipo administrativo, son 10-13 mil pesos/mes recuperados. Plazo de payback: 6-15 meses.
Cómo empezar
Si quieres automatizar la facturación CFDI desde tu ERP en 2026, este es el camino recomendado:
- Elige tu PAC (recomendamos SW Sapien o Facturama para PYMEs).
- Pide CSD demo y haz una prueba de emisión + cancelación.
- Identifica el flujo en tu ERP que dispara la facturación (pedido confirmado, contrato firmado, etc).
- Conecta n8n entre tu ERP y el PAC, con manejo de errores robusto.
- Lanza primero en modo sombra (no envía al cliente todavía) por 2-4 semanas, valida y luego activa producción.
Si quieres ayuda con cualquiera de estos pasos, en Uniamos hacemos diagnósticos gratis de 30 minutos donde te mostramos exactamente cómo lo haríamos en tu caso, qué PAC encaja mejor con tu ERP, y cuánto costaría. Sin compromiso.