Suite de Herramientas de Testing Fiscal | Generación masiva, instantánea y 100% local en navegador de XMLs CFDI 4.0 con apego estricto a los esquemas del SAT de México.
Esta aplicación web independiente y premium ha sido diseñada para que desarrolladores de ERPs, consultores de TI y personal de QA puedan generar lotes de archivos XML de prueba de forma aleatoria pero con estructuras y cálculos matemáticos 100% válidos.
Es el complemento ideal para pipelines de desarrollo y herramientas de visualización masiva (como procesadores de XML a PDF construidos en .NET MAUI).
- Ingreso (I): Facturas estándar de venta con desglose de IVA (16%).
- Egreso (E): Notas de crédito con relación lógica automática a facturas previas usando
<cfdi:CfdiRelacionados TipoRelacion="01">. - Traslado (T): Comprobantes de traslado para tránsito de mercancías con importes en cero y sin desglose de impuestos.
- Pago (P): Recibos Electrónicos de Pago (REP 2.0) con distribución de montos amortizados (
DoctoRelacionado) y desglose proporcional de IVA. - Nómina (N): Recibos de nómina (Nómina 1.2) con sumas bi-weekly cuadradas (SubTotal = Percepciones, Descuento = Deducciones, Total = Neto a pagar).
- Carta Porte 3.1: Mapeo completo de ubicaciones (origen/destino), operador, autotransporte y mercancías. Incluye la autogeneración del identificador obligatorio
IdCCPreglamentado por el SAT (CCCxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). - Comercio Exterior 2.0 (CCE): Facturas de exportación definitiva (A1) con moneda
USD, tipo de cambio simulado, receptor extranjero (XEXX010101000) y desglose de fracciones arancelarias.
- Cada archivo XML incluye de forma automática el complemento
<tfd:TimbreFiscalDigital>(Versión 1.1). - Utiliza el RFC del PAC de pruebas oficial autorizado por el SAT (
SAD110722MQA), un número de certificado SAT válido en listas LCO de test y firmas simuladas (SelloCFDySelloSAT), garantizando que tus sistemas de QA los cataloguen como transacciones finalizadas.
- Formulario Inteligente: Sincroniza dinámicamente los complementos válidos según el tipo de comprobante seleccionado, previniendo errores de configuración.
- Consola en Tiempo Real: Muestra el progreso del lote y el estado de compresión ZIP.
- Modal Code Viewer: Previsualizador con resaltado de sintaxis XML responsivo (con salto de línea automático
pre-wrappara evitar scrolls horizontales molestos).
El proyecto sigue un diseño orientado a objetos y desacoplado en componentes independientes para facilitar su mantenimiento y escalabilidad:
xml-cfdi-mock-generator/
├── index.html # HTML responsivo a dos columnas
├── package.json # Scripts de Vite y dependencias estáticas
├── src/
│ ├── main.ts # Orquestador y controlador de eventos
│ ├── css/
│ │ └── style.css # Estilos Glassmorphism Premium
│ ├── components/
│ │ ├── ConfigPanel.ts # Manejo de inputs del formulario y locks lógicos
│ │ ├── ConsolePanel.ts # Log de eventos de consola con callbacks del DOM
│ │ ├── ProgressPanel.ts # Control visual de la barra de progreso
│ │ └── PreviewModal.ts # Visualizador de código con resaltador de sintaxis
│ ├── generators/
│ │ ├── cfdiGenerator.ts # Comprobante base y orquestación fiscal
│ │ ├── cartaPorte31.ts # Lógica Carta Porte 3.1
│ │ ├── pagos20.ts # Lógica Recepción de Pagos 2.0
│ │ ├── comercioExterior20.ts# Lógica Comercio Exterior 2.0
│ │ ├── nomina12.ts # Lógica Nómina 1.2
│ │ └── mockData.ts # Catálogos oficiales SAT de prueba (12 RFCs)
│ └── utils/
│ ├── satMath.ts # Redondeo aritmético a 2 decimales
│ └── xmlFormat.ts # Identador estético de XML
Para levantar el proyecto en tu entorno local, asegúrate de tener instalado Node.js.
-
Clonar el repositorio:
git clone https://github.com/tu-usuario/xml-cfdi-mock-generator.git cd xml-cfdi-mock-generator -
Instalar dependencias:
npm install
-
Correr en modo desarrollo:
npm run dev
Abre tu navegador en
http://localhost:5173. -
Compilar para producción:
npm run build
Esto generará la carpeta
dist/con los archivos estáticos listos para subir a producción.
Este proyecto funciona al 100% en el lado del cliente (Client-Side). No tiene base de datos ni backend de pago, lo que permite alojarlo de forma gratuita de por vida.
- Sube tu código a un repositorio de GitHub.
- Inicia sesión en Vercel y haz clic en Add New > Project.
- Importa tu repositorio de GitHub.
- Vercel detectará automáticamente que es un proyecto Vite.
- Haz clic en Deploy. ¡Listo! Cada cambio que subas a tu rama principal se compilará y actualizará en Vercel de forma automática e inmediata.
- Fase 2: Integrar un formulario dinámico para cargar CSDs (Certificados de Sello Digital) de prueba y firmar criptográficamente los XMLs en el navegador.
- Fase 3: Liberar un paquete CLI en
npmpara automatizar la generación de XMLs desde scripts de terminal e integración continua (CI/CD). - Fase 4: Añadir renderizado PDF de la representación impresa localmente usando
pdfmake.