Compras Recibidas
Gestión de e-CF que tus proveedores te emiten a ti. Cada e-CF recibido por DGII llega aquí, genera un asiento contable automático (Mayor + reporte 606) y queda disponible para que aceptes o rechaces comercialmente.
Cómo funciona
- DGII entrega el e-CF al endpoint público de tu empresa. El sistema valida firma + cadena de certificación + persiste el documento en Compras Recibidas.
- Un asiento contable compuesto se genera automáticamente (DR Gastos + DR ITBIS a Favor / CR Cuentas por Pagar). Para Notas de Crédito (tipo 34), la inversión es automática.
- El documento aparece en el reporte 606 desde el momento de la recepción. No necesitas hacer nada para que quede registrado.
- Cuando revises el documento puedes aceptarlo (Estado=1) o rechazarlo (Estado=2). Esto emite un ACECF firmado que DGII entrega al emisor.
Cómo usarla
- Ver detalle: clic sobre cualquier fila. Verás el desglose por línea, las retenciones declaradas y el asiento contable vinculado.
- Aceptar comercialmente: confirma que la compra es correcta. El status pasa a
Procesada. El emisor recibe un ACECF con Estado=1. - Rechazar comercialmente: dispara un modal donde indicas código DGII (1–4) y un detalle ≥5 caracteres. Al confirmar:
- El sistema construye y firma el ACECF con tu certificado.
- Lo envía a DGII para que llegue al emisor.
- Revierte automáticamente el asiento (queda la reversa en Mayor para auditoría).
- El status pasa a
Rechazada.
- Filtros: por estado, tipo e-CF, búsqueda por eNCF/RNC emisor, o la opción Solo sin asiento para encontrar documentos que no se pudieron postear.
Códigos de motivo de rechazo (DGII Norma 06-2018)
| Código | Motivo | Úsalo cuando… |
|---|---|---|
| 1 | Bienes o servicios no recibidos | La mercadería no llegó, o el servicio no se prestó. |
| 2 | Cantidades no coinciden | Recibiste menos (o más) unidades de las facturadas. |
| 3 | Precios no coinciden | El precio unitario o total difiere del acordado. |
| 4 | Otros motivos | Cualquier otro motivo. Especifica claramente en el detalle. |
El detalle libre queda embebido en el XML firmado que recibe el emisor. Tiene valor legal — sé específico.
Estados
- Pendiente (
received): recién llegó. Debe revisarse. - Procesada (
processed): aceptaste comercialmente o no requiere acción. Asiento activo en Mayor. - Rechazada (
rejected): enviaste ACECF Estado=2. El asiento contable fue revertido atómicamente. Si la reversa falló (ej. período cerrado), verás un banner con el error y deberás ajustar manualmente en Contabilidad.
Sin asiento (KPI)
Documentos que no tienen asiento vinculado. Suele ser por:
- Llegaron antes de activar el posteo automático (S8b, 17-abr-2026).
- Falta un mapping en tu plan de cuentas (ej.
ecf_receptionoitbis_purchase). - La cuenta destino es cuenta de control y el asiento fue rechazado.
Revisa cada caso en Contabilidad → Mapeo y re-dispara desde la cola de posteo (cuando exista — S8).
Importar e-CF por QR (F24)
Cuándo usarlo. Algunas cadenas grandes de RD (supermercados, retailers) emiten e-CFs y los aceptan en DGII, pero no los pushean al endpoint del comprador. El recibo impreso siempre lleva un QR debajo del total — esa URL contiene los datos suficientes para registrar la compra y validarla contra DGII.
Si tu Compras Recibidas no muestra una compra que sí está en tu recibo impreso, este es el camino para registrarla.
Cómo funciona.
- Pulsa el botón verde Importar e-CF (QR) en el header.
- Pega la URL que aparece bajo el QR del recibo (empieza con
https://ecf.dgii.gov.do/...ohttps://fc.dgii.gov.do/...), o usa la pestaña Escanear cámara para leerlo automáticamente. - Pulsa Validar URL. El sistema parsea los datos y muestra una vista previa: emisor, e-NCF, tipo, fecha, monto.
- Selecciona el desglose ITBIS (solo aparece para variant estándar):
- Todo gravado 18% — la mayoría de las compras (RD$1,180 → gravado 1,000 + ITBIS 180).
- Exento — para compras sin ITBIS (alimentos, medicinas, servicios exentos).
- Necesito desglose manual — el asiento queda en borrador para que el contador complete el desglose después.
- Pulsa Importar e-CF. El backend consulta DGII para confirmar autenticidad. Si DGII dice Aceptado, se persiste la compra y se genera el asiento contable.
Casos especiales.
| Situación | Qué pasa |
|---|---|
| El RNC del comprador en el QR es de otra empresa | Rechazado irrevocable. No es deducible para ti — sería evasión asentar gastos de otra empresa. |
| El e-CF ya estaba registrado (push DGII previo) | Mensaje informativo con link al registro. Nunca se duplica. |
| El e-CF ya se importó por QR antes | Mensaje + link al asiento existente. |
| Tipo 31 (Crédito Fiscal) sin RncComprador | Rechazado — el e-CF está mal emitido (Norma 06-2018 obliga RncComprador). |
| Tipo 32/33/34/43 sin RncComprador | El sistema te pide confirmación explícita de que la compra fue para tu empresa. Si confirmas, la compra se asienta con flag "receptor no verificado" (visible en el asiento + reportes 606). |
| DGII responde "No fue encontrado" | Rechazado. El e-CF que escaneaste no existe en DGII — probablemente impresión falsa o datos manipulados. |
| Período contable cerrado | El asiento se crea en borrador con razón "período cerrado". Tu contador debe decidir reabrir el período o ajustar como gasto del período actual. |
| DGII no responde (timeout) | Mensaje "DGII no responde, reintenta en unos minutos". El registro NO se crea hasta confirmar. |
Limitaciones del modo QR.
- Sin desglose por línea. El QR solo trae monto total; no trae la lista de productos. El asiento contable queda con encabezado (Gastos + ITBIS + CxP) pero sin detalle de items. Para detalle por línea sigue requiriéndose el push DGII (cuando llegue) o ingreso manual desde Gastos.
- ITBIS asumido. Como el QR no separa gravado/ITBIS, el sistema usa la opción que tú elegiste en el modal. Si la realidad es mixta (parte gravado, parte exento), elige Necesito desglose manual y completa después en el asiento borrador.
- Variant FC (Factura Consumo < 250K). Estos QRs solo traen 4 params y no incluyen RncComprador ni FechaEmision. Se asienta como exento por simplicidad — ajusta en borrador si tiene ITBIS.
Trazabilidad. Cada importación QR queda marcada con badge QR verde en la tabla. Los rechazos se loguean en una tabla auxiliar (fe_qr_imports_failed) que el equipo puede consultar para forensia.
Permisos
| Rol | Ver | Aceptar / Rechazar |
|---|---|---|
| Owner | ✅ | ✅ |
| Admin | ✅ | ✅ |
| Contador | ✅ | ✅ |
| Sales Rep | ❌ | ❌ |
| Viewer | ✅ | ❌ |
El permiso granular es ecf:approve_commercial. El rol Contador lo tiene por defecto porque en la práctica dominicana es quien valida gastos y rechaza comprobantes incorrectos.
Preguntas frecuentes
¿Qué pasa si acepto pero luego descubro un error?
No puedes revertir una aceptación vía ACECF. Debes coordinar con el emisor para que emita una Nota de Crédito (tipo 34), que llegará aquí también y compensará automáticamente el asiento original.
¿Los rechazos llegan al emisor instantáneamente?
DGII es el intermediario. Normalmente el emisor lo ve en su portal en minutos. El track-id del envío queda en el XML firmado (columna commercial_rejection_xml).
¿Puedo editar un rechazo enviado?
No. Los ACECF son inmutables por regulación. Si te equivocaste, contacta al emisor para coordinar una corrección.
¿Qué hago si el banner dice "ajuste contable manual requerido"?
Significa que el ACECF se envió correctamente a DGII pero la reversa del asiento falló (típicamente porque el período ya estaba cerrado). Ve a Contabilidad → Asientos, busca el asiento original por eNCF y usa Revertir. Si el período está cerrado, habrá que reabrirlo con razón formal (Admin u Owner).