Last active
March 21, 2026 04:29
-
-
Save fbencosme/cca7bb5d4a1146e00f38e0be39e43e32 to your computer and use it in GitHub Desktop.
Guia de Simulacion e-CF - DGII Certificacion MKMVentas
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html lang="es"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Guia de Simulacion e-CF - DGII Certificacion</title> | |
| <style> | |
| * { margin: 0; padding: 0; box-sizing: border-box; } | |
| body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: #f5f5f5; color: #333; line-height: 1.6; } | |
| .container { max-width: 900px; margin: 0 auto; padding: 20px; } | |
| h1 { text-align: center; color: #1a5632; margin-bottom: 5px; font-size: 1.8rem; } | |
| .subtitle { text-align: center; color: #666; margin-bottom: 30px; font-size: 0.95rem; } | |
| h2 { color: #1a5632; border-bottom: 2px solid #1a5632; padding-bottom: 5px; margin: 30px 0 15px; font-size: 1.3rem; } | |
| h3 { color: #2d7a4f; margin: 20px 0 10px; font-size: 1.1rem; } | |
| .alert { background: #fff3cd; border-left: 4px solid #ffc107; padding: 12px 16px; margin: 15px 0; border-radius: 4px; } | |
| .alert-info { background: #d1ecf1; border-left-color: #17a2b8; } | |
| .alert-danger { background: #f8d7da; border-left-color: #dc3545; } | |
| .alert-success { background: #d4edda; border-left-color: #28a745; } | |
| .alert strong { display: block; margin-bottom: 4px; } | |
| table { width: 100%; border-collapse: collapse; margin: 15px 0; background: #fff; border-radius: 6px; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,0.1); } | |
| th { background: #1a5632; color: #fff; padding: 10px 12px; text-align: left; font-size: 0.85rem; } | |
| td { padding: 8px 12px; border-bottom: 1px solid #eee; font-size: 0.85rem; } | |
| tr:hover { background: #f0f8f0; } | |
| .mono { font-family: 'Consolas', monospace; font-size: 0.8rem; } | |
| .step { background: #fff; border-radius: 8px; padding: 20px; margin: 15px 0; box-shadow: 0 1px 3px rgba(0,0,0,0.1); } | |
| .step-number { display: inline-block; background: #1a5632; color: #fff; width: 28px; height: 28px; border-radius: 50%; text-align: center; line-height: 28px; font-weight: bold; margin-right: 8px; font-size: 0.9rem; } | |
| .step-title { font-weight: bold; font-size: 1.05rem; color: #1a5632; } | |
| .checklist { list-style: none; padding: 0; } | |
| .checklist li { padding: 6px 0 6px 32px; position: relative; cursor: pointer; user-select: none; } | |
| .checklist li::before { display: none; } | |
| .checklist input[type="checkbox"] { position: absolute; left: 0; top: 8px; width: 18px; height: 18px; accent-color: #1a5632; cursor: pointer; } | |
| .checklist li.checked { text-decoration: line-through; color: #999; } | |
| .badge { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 0.75rem; font-weight: bold; } | |
| .badge-31 { background: #cce5ff; color: #004085; } | |
| .badge-32 { background: #d4edda; color: #155724; } | |
| .badge-33 { background: #f8d7da; color: #721c24; } | |
| .badge-34 { background: #fff3cd; color: #856404; } | |
| .badge-41 { background: #e2e3e5; color: #383d41; } | |
| .badge-43 { background: #d1ecf1; color: #0c5460; } | |
| .badge-44 { background: #e8daef; color: #4a235a; } | |
| .badge-45 { background: #d5f5e3; color: #1e8449; } | |
| .badge-46 { background: #fdebd0; color: #784212; } | |
| .badge-47 { background: #fadbd8; color: #78281f; } | |
| .footer { text-align: center; color: #999; margin-top: 40px; font-size: 0.8rem; padding: 20px; border-top: 1px solid #ddd; } | |
| @media print { | |
| body { background: #fff; } | |
| .container { max-width: 100%; } | |
| .step { box-shadow: none; border: 1px solid #ddd; } | |
| table { box-shadow: none; } | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="container"> | |
| <h1>Guia de Pruebas de Simulacion e-CF</h1> | |
| <p class="subtitle">DGII - Paso 4: Certificacion de Facturacion Electronica -- MKMVentas</p> | |
| <div class="alert alert-info"> | |
| <strong>Objetivo</strong> | |
| Generar y enviar comprobantes fiscales electronicos (e-CF) con datos de operaciones reales simuladas, | |
| para demostrar que el sistema puede emitir correctamente cada tipo de comprobante. | |
| </div> | |
| <!-- ==================== CLIENTES DE PRUEBA ==================== --> | |
| <h2>1. Clientes de Prueba</h2> | |
| <p>Se han creado los siguientes clientes de prueba. Utilice el cliente correspondiente segun el tipo de comprobante que necesite generar:</p> | |
| <table> | |
| <thead> | |
| <tr> | |
| <th>Nombre del Cliente</th> | |
| <th>Tipo e-CF</th> | |
| <th>RNC</th> | |
| <th>Cedula</th> | |
| <th>Pertenece a</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td>CLIENTE PRUEBA CREDITO FISCAL (31)</td> | |
| <td><span class="badge badge-31">31</span> Credito Fiscal</td> | |
| <td class="mono">131880681</td> | |
| <td>--</td> | |
| <td><em>RNC prueba DGII</em></td> | |
| </tr> | |
| <tr> | |
| <td>CLIENTE PRUEBA CONSUMO (32)</td> | |
| <td><span class="badge badge-32">32</span> Consumo</td> | |
| <td>--</td> | |
| <td class="mono">00111382693</td> | |
| <td>--</td> | |
| </tr> | |
| <tr> | |
| <td>CLIENTE PRUEBA MENOR (41)</td> | |
| <td><span class="badge badge-41">41</span> Menor</td> | |
| <td>--</td> | |
| <td class="mono">00118505577</td> | |
| <td>--</td> | |
| </tr> | |
| <tr> | |
| <td>CLIENTE PRUEBA GASTOS MENORES (43)</td> | |
| <td><span class="badge badge-43">43</span> Gastos Menores</td> | |
| <td>--</td> | |
| <td>--</td> | |
| <td>--</td> | |
| </tr> | |
| <tr> | |
| <td>CLIENTE PRUEBA REGIMEN ESPECIAL (44)</td> | |
| <td><span class="badge badge-44">44</span> Regimen Especial</td> | |
| <td class="mono">130507945</td> | |
| <td>--</td> | |
| <td>AAAA INTERNATIONAL</td> | |
| </tr> | |
| <tr> | |
| <td>CLIENTE PRUEBA GUBERNAMENTAL (45)</td> | |
| <td><span class="badge badge-45">45</span> Gubernamental</td> | |
| <td class="mono">401007452</td> | |
| <td>--</td> | |
| <td>INAPA</td> | |
| </tr> | |
| <tr> | |
| <td>CLIENTE PRUEBA EXPORTACION (46)</td> | |
| <td><span class="badge badge-46">46</span> Exportaciones</td> | |
| <td>--</td> | |
| <td>--</td> | |
| <td><em>Cliente extranjero</em></td> | |
| </tr> | |
| <tr> | |
| <td>CLIENTE PRUEBA PAGOS EXTERIOR (47)</td> | |
| <td><span class="badge badge-47">47</span> Pagos al Exterior</td> | |
| <td>--</td> | |
| <td>--</td> | |
| <td><em>Cliente extranjero</em></td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| <!-- ==================== CONTADORES ==================== --> | |
| <h2>2. Comprobantes Requeridos por DGII</h2> | |
| <p>El portal de certificacion requiere la cantidad exacta de comprobantes aceptados para cada tipo:</p> | |
| <table> | |
| <thead> | |
| <tr> | |
| <th>Tipo e-CF</th> | |
| <th>Descripcion</th> | |
| <th>Cantidad</th> | |
| <th>Cliente a Usar</th> | |
| <th>Monto Sugerido</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td><span class="badge badge-31">31</span></td> | |
| <td>Credito Fiscal</td> | |
| <td><strong>4</strong></td> | |
| <td>CLIENTE PRUEBA CREDITO FISCAL (31)</td> | |
| <td>Cualquier monto</td> | |
| </tr> | |
| <tr> | |
| <td><span class="badge badge-32">32</span></td> | |
| <td>Consumo >= 250,000</td> | |
| <td><strong>2</strong></td> | |
| <td>CLIENTE PRUEBA CONSUMO (32)</td> | |
| <td>>= RD$250,000.00</td> | |
| </tr> | |
| <tr> | |
| <td><span class="badge badge-33">33</span></td> | |
| <td>Nota de Credito</td> | |
| <td><strong>1</strong></td> | |
| <td>(Contra una factura tipo 31 posteada)</td> | |
| <td>Parcial o total</td> | |
| </tr> | |
| <tr> | |
| <td><span class="badge badge-34">34</span></td> | |
| <td>Nota de Debito</td> | |
| <td><strong>2</strong></td> | |
| <td>(Contra una factura tipo 31 posteada)</td> | |
| <td>Cualquier monto</td> | |
| </tr> | |
| <tr> | |
| <td><span class="badge badge-41">41</span></td> | |
| <td>Menor (Compras)</td> | |
| <td><strong>2</strong></td> | |
| <td>CLIENTE PRUEBA MENOR (41)</td> | |
| <td>Cualquier monto</td> | |
| </tr> | |
| <tr> | |
| <td><span class="badge badge-43">43</span></td> | |
| <td>Gastos Menores</td> | |
| <td><strong>2</strong></td> | |
| <td>CLIENTE PRUEBA GASTOS MENORES (43)</td> | |
| <td>Cualquier monto</td> | |
| </tr> | |
| <tr> | |
| <td><span class="badge badge-44">44</span></td> | |
| <td>Regimen Especial</td> | |
| <td><strong>2</strong></td> | |
| <td>CLIENTE PRUEBA REGIMEN ESPECIAL (44)</td> | |
| <td>Cualquier monto</td> | |
| </tr> | |
| <tr> | |
| <td><span class="badge badge-45">45</span></td> | |
| <td>Gubernamental</td> | |
| <td><strong>2</strong></td> | |
| <td>CLIENTE PRUEBA GUBERNAMENTAL (45)</td> | |
| <td>Cualquier monto</td> | |
| </tr> | |
| <tr> | |
| <td><span class="badge badge-46">46</span></td> | |
| <td>Exportaciones</td> | |
| <td><strong>2</strong></td> | |
| <td>CLIENTE PRUEBA EXPORTACION (46)</td> | |
| <td>Cualquier monto</td> | |
| </tr> | |
| <tr> | |
| <td><span class="badge badge-47">47</span></td> | |
| <td>Pagos al Exterior</td> | |
| <td><strong>2</strong></td> | |
| <td>CLIENTE PRUEBA PAGOS EXTERIOR (47)</td> | |
| <td>Cualquier monto</td> | |
| </tr> | |
| <tr style="background: #f0f8f0;"> | |
| <td><span class="badge badge-32">32 RFCE</span></td> | |
| <td>Resumen Consumo < 250,000</td> | |
| <td><strong>4</strong></td> | |
| <td>CLIENTE PRUEBA CONSUMO (32)</td> | |
| <td>< RD$250,000.00</td> | |
| </tr> | |
| <tr style="background: #f0f8f0;"> | |
| <td><span class="badge badge-32">32</span></td> | |
| <td>Consumo < 250,000 (portal)</td> | |
| <td><strong>4</strong></td> | |
| <td>(Se suben al portal despues del RFCE)</td> | |
| <td>< RD$250,000.00</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| <div class="alert"> | |
| <strong>Total aproximado: 27 comprobantes</strong> | |
| 23 facturas + 1 NC + 2 ND + 4 RFCE (generados automaticamente) + 4 consumo subidos al portal. | |
| </div> | |
| <!-- ==================== PASOS ==================== --> | |
| <h2>3. Instrucciones Paso a Paso</h2> | |
| <div class="step"> | |
| <p><span class="step-number">1</span><span class="step-title">Crear Facturas Regulares (tipos 31, 41, 43, 44, 45, 46, 47)</span></p> | |
| <ul class="checklist"> | |
| <li><input type="checkbox">Ir a <strong>Cuentas por Cobrar -> Facturas -> Nueva Factura</strong></li> | |
| <li><input type="checkbox">Seleccionar el <strong>cliente de prueba</strong> correspondiente al tipo</li> | |
| <li><input type="checkbox">Agregar al menos 1 producto con cantidad y precio</li> | |
| <li><input type="checkbox">Guardar la factura</li> | |
| <li><input type="checkbox">Hacer clic en <strong>"Postear"</strong> -- esto genera el e-NCF y envia el e-CF a DGII automaticamente</li> | |
| <li><input type="checkbox">Verificar en el historial e-CF que el comprobante fue <strong>Aceptado</strong></li> | |
| <li><input type="checkbox">Repetir segun la cantidad requerida por tipo</li> | |
| </ul> | |
| <div class="alert alert-info"> | |
| <strong>Orden sugerido:</strong> Empiece con las 4 facturas tipo 31 (Credito Fiscal) ya que necesitara al menos 3 de ellas posteadas para crear la NC y las 2 ND. | |
| </div> | |
| </div> | |
| <div class="step"> | |
| <p><span class="step-number">2</span><span class="step-title">Crear Facturas de Consumo >= RD$250,000 (tipo 32)</span></p> | |
| <ul class="checklist"> | |
| <li><input type="checkbox">Usar el cliente <strong>CLIENTE PRUEBA CONSUMO (32)</strong></li> | |
| <li><input type="checkbox">Crear 2 facturas con monto total <strong>>= RD$250,000.00</strong> cada una</li> | |
| <li><input type="checkbox">Postear ambas -- se envian como e-CF tipo 32 directamente a DGII</li> | |
| </ul> | |
| </div> | |
| <div class="step"> | |
| <p><span class="step-number">3</span><span class="step-title">Crear Facturas de Consumo < RD$250,000 (tipo 32 RFCE)</span></p> | |
| <ul class="checklist"> | |
| <li><input type="checkbox">Usar el cliente <strong>CLIENTE PRUEBA CONSUMO (32)</strong></li> | |
| <li><input type="checkbox">Crear 4 facturas con monto total <strong>< RD$250,000.00</strong> cada una</li> | |
| <li><input type="checkbox">Postear las 4 facturas</li> | |
| <li><input type="checkbox">Ir a <strong>Parametros -> e-CF -> Reportes</strong> y generar el <strong>RFCE</strong> del mes</li> | |
| <li><input type="checkbox">Esperar que DGII acepte los 4 RFCE</li> | |
| <li><input type="checkbox">Descargar los XML firmados originales de cada factura</li> | |
| <li><input type="checkbox">Subir los 4 XML al portal DGII en la seccion <strong>"Facturas de consumo < 250Mil"</strong>, uno por uno</li> | |
| </ul> | |
| <div class="alert alert-danger"> | |
| <strong>Importante:</strong> Los XML que se suben al portal deben ser los MISMOS que generaron el RFCE. No se pueden regenerar porque la firma digital cambiaria y DGII rechazaria el comprobante, reiniciando TODAS las pruebas. | |
| </div> | |
| </div> | |
| <div class="step"> | |
| <p><span class="step-number">4</span><span class="step-title">Crear Nota de Credito (tipo 33)</span></p> | |
| <ul class="checklist"> | |
| <li><input type="checkbox">Ir a <strong>Cuentas por Cobrar -> Notas de Credito -> Nueva</strong></li> | |
| <li><input type="checkbox">Seleccionar una <strong>factura tipo 31 ya posteada</strong></li> | |
| <li><input type="checkbox">Seleccionar las lineas a devolver (parcial o total)</li> | |
| <li><input type="checkbox">Guardar y <strong>Postear</strong> la nota de credito</li> | |
| <li><input type="checkbox">El sistema envia el e-CF tipo 33 automaticamente</li> | |
| </ul> | |
| </div> | |
| <div class="step"> | |
| <p><span class="step-number">5</span><span class="step-title">Crear Notas de Debito (tipo 34)</span></p> | |
| <ul class="checklist"> | |
| <li><input type="checkbox">Crear 2 notas de debito contra facturas tipo 31 posteadas</li> | |
| <li><input type="checkbox">Postear cada una</li> | |
| <li><input type="checkbox">El sistema envia el e-CF tipo 34 automaticamente</li> | |
| </ul> | |
| </div> | |
| <div class="step"> | |
| <p><span class="step-number">6</span><span class="step-title">Generar Representacion Impresa</span></p> | |
| <ul class="checklist"> | |
| <li><input type="checkbox">Para <strong>cada factura posteada</strong>, generar el PDF (boton de impresora o descarga)</li> | |
| <li><input type="checkbox">El PDF debe incluir el <strong>codigo QR</strong> con los datos del e-CF</li> | |
| <li><input type="checkbox">Conservar todos los PDF -- DGII los revisara en el siguiente paso de certificacion</li> | |
| </ul> | |
| <div class="alert"> | |
| <strong>Requisito DGII:</strong> La representacion impresa debe contener los mismos datos que el e-CF enviado, incluyendo el QR con: RNC emisor, e-NCF, monto total, ITBIS, codigo de seguridad y URL de verificacion. | |
| </div> | |
| </div> | |
| <div class="step"> | |
| <p><span class="step-number">7</span><span class="step-title">Verificar en el Portal DGII</span></p> | |
| <ul class="checklist"> | |
| <li><input type="checkbox">Ir al portal de certificacion DGII</li> | |
| <li><input type="checkbox">Verificar que todos los contadores lleguen a la meta</li> | |
| <li><input type="checkbox"><strong>NO hacer clic en "DESCARGAR COMPROBANTES"</strong> -- esto reinicia todas las pruebas</li> | |
| </ul> | |
| </div> | |
| <!-- ==================== ORDEN ==================== --> | |
| <h2>4. Orden Recomendado de Envio</h2> | |
| <div class="alert alert-success"> | |
| <strong>Siga este orden estrictamente para evitar rechazos:</strong> | |
| </div> | |
| <table> | |
| <thead> | |
| <tr> | |
| <th>Orden</th> | |
| <th>Que enviar</th> | |
| <th>Cantidad</th> | |
| <th>Esperar antes de continuar</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td><strong>1ro</strong></td> | |
| <td>Facturas regulares: tipos 31, 41, 43, 44, 45, 46, 47 + Consumo >=250K (32)</td> | |
| <td>18</td> | |
| <td>Esperar que el portal muestre los aceptados</td> | |
| </tr> | |
| <tr> | |
| <td><strong>2do</strong></td> | |
| <td>NC (33) y ND (34) -- referencian facturas del paso 1</td> | |
| <td>3</td> | |
| <td>Esperar que el portal muestre los aceptados</td> | |
| </tr> | |
| <tr> | |
| <td><strong>3ro</strong></td> | |
| <td>RFCE (resumenes de consumo < 250K)</td> | |
| <td>4</td> | |
| <td>Esperar que el portal muestre 4/4 RFCE aceptados</td> | |
| </tr> | |
| <tr> | |
| <td><strong>4to</strong></td> | |
| <td>Subir XML de consumo < 250K al portal</td> | |
| <td>4</td> | |
| <td>Verificar 4/4 consumo aceptados</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| <!-- ==================== ERRORES ==================== --> | |
| <h2>5. Errores Comunes a Evitar</h2> | |
| <table> | |
| <thead> | |
| <tr> | |
| <th>Error</th> | |
| <th>Consecuencia</th> | |
| <th>Como evitarlo</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td>Hacer clic en "DESCARGAR COMPROBANTES"</td> | |
| <td style="color: #dc3545; font-weight: bold;">Reinicia TODAS las pruebas a 0</td> | |
| <td>Nunca tocar ese boton</td> | |
| </tr> | |
| <tr> | |
| <td>Enviar NC/ND antes de que las facturas referenciadas esten aceptadas</td> | |
| <td style="color: #dc3545;">Rechazo + posible reinicio</td> | |
| <td>Esperar confirmacion en el portal</td> | |
| </tr> | |
| <tr> | |
| <td>Subir consumo <250K al portal antes de que RFCE este aceptado</td> | |
| <td style="color: #dc3545;">Reinicio de todas las pruebas</td> | |
| <td>Esperar 4/4 RFCE aceptados</td> | |
| </tr> | |
| <tr> | |
| <td>Regenerar/refirmar XML de consumo para subir al portal</td> | |
| <td style="color: #dc3545;">Firma no coincide con RFCE -> reinicio total</td> | |
| <td>Usar el XML original guardado por el sistema</td> | |
| </tr> | |
| <tr> | |
| <td>Usar secuencias ya utilizadas</td> | |
| <td>Rechazo del comprobante</td> | |
| <td>Las secuencias se asignan automaticamente</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| <div class="footer"> | |
| <p>MKMVentas -- Guia de Simulacion e-CF para Certificacion DGII</p> | |
| <p>Generado el 21 de marzo de 2026</p> | |
| </div> | |
| </div> | |
| <script> | |
| // Persist checkbox state in localStorage | |
| const STORAGE_KEY = 'dgii-simulacion-checklist'; | |
| function loadState() { | |
| try { | |
| return JSON.parse(localStorage.getItem(STORAGE_KEY)) || {}; | |
| } catch { return {}; } | |
| } | |
| function saveState(state) { | |
| localStorage.setItem(STORAGE_KEY, JSON.stringify(state)); | |
| } | |
| const state = loadState(); | |
| const checkboxes = document.querySelectorAll('.checklist input[type="checkbox"]'); | |
| checkboxes.forEach((cb, i) => { | |
| const key = 'cb-' + i; | |
| // Restore state | |
| if (state[key]) { | |
| cb.checked = true; | |
| cb.parentElement.classList.add('checked'); | |
| } | |
| // Listen for changes | |
| cb.addEventListener('change', () => { | |
| state[key] = cb.checked; | |
| cb.parentElement.classList.toggle('checked', cb.checked); | |
| saveState(state); | |
| }); | |
| }); | |
| </script> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment