acahoma services srl
Nota de Trazabilidad — ACAHOMA
Empresa: ACAHOMA Período: Febrero 2026 decl_id: 35 Archivo Excel: ACAHOMA_FEBRERO_2026-_MACRO_DELARACIÓN_ITBIS.xlsx Fecha de revisión: _____________ Revisado por: _____________
Problema detectado
CIFRA estaba clasificando 3 proveedores en casillas distintas a las que tenía el Excel en la Sección V del IT-1 (Agente de Retención):
| Proveedor | NCF | RNC | CIFRA (antes) | Excel | CIFRA (después del fix) |
|---|---|---|---|---|---|
| BERIT CONSULTING | B0100002048 | 131570429 | C42 (SOC_07_09) | C44 (RST) | C44 (RST) ✓ |
| SHARON HEERE REAL ESTATE EIRL | B0100000022 | 133151121 | C47 (COMPROB) | C44 (RST) | C44 (RST) ✓ |
| RUFO REAL ESTATE SRL | B0100000024 | 133259151 | C47 (COMPROB) | C44 (RST) | C44 (RST) ✓ |
Importante: El total a pagar siempre fue el mismo (39,447.51), solo cambiaba la distribución entre casillas.
Causa raíz
CIFRA clasifica retenciones por una heurística basada en 3 datos del 606:
- Ratio
itbis_retenido / itbis_facturado(0.30, 1.00, otro) - Tipo de proveedor (jurídica vs persona física)
- Código de tipo de gasto (02, 09, etc.)
El problema: los códigos 02 y 09 son demasiado amplios.
- Tipo 02 (Gastos por trabajos, servicios y suministros) cubre tanto seguridad/limpieza (Norma 07-09) como consultoría (Norma 02-05). La heurística los manda a SOC_07_09 por defecto → BERIT cayó ahí mal.
- Tipo 09 (Compras y gastos del costo de venta) cubre compras a RST jurídica y a personas físicas. La heurística manda a COMPROB_COMPRAS (C47) → SHARON y RUFO cayeron ahí mal.
Falta: un flag en_rst por proveedor que permita distinguir RST jurídica (C44) de los demás casos.
Solución aplicada
Override manual de los 3 gastos vía SQL al agente id=6 (100% RST JURIDICA):
UPDATE gastos
SET tipos_agente_retencion_id = 6
WHERE empresa_id = 124
AND ciclos_id = 14
AND ncf IN ('B0100002048', 'B0100000022', 'B0100000024');Recalculado decl_id=35. Resultado:
| Casilla | Valor | Estado |
|---|---|---|
| C42 (SOC_07_09) | 0.00 | ✓ |
| C43 (SOC_02_05) | 299,949.09 | ✓ |
| C44 (RST) | 129,168.11 | ✓ matchea Excel |
| C47 (COMPROB) | 0.00 | ✓ |
| C52 (ITBIS SOC_02_05) | 16,197.25 | ✓ |
| C53 (ITBIS RST) | 23,250.26 | ✓ |
| C60 TOTAL ITBIS retenido | 39,447.51 | ✓ |
| C67 a pagar | 39,447.51 | ✓ |
⚠️ Riesgo de la solución
El override asume que los 3 proveedores están acogidos al RST. Esto NO ha sido validado con el contador ni con la DGII al momento de aplicar el fix. Posibles escenarios:
| Si los proveedores… | El fix es | Acción |
|---|---|---|
| Sí están en RST | ✓ correcto | Mantener |
| No están en RST y son consultoría | ✗ incorrecto | Reclasificar BERIT a C43 (Norma 02-05, retención 30%) |
| No están en RST y la retención del 100% fue voluntaria/error | ⚠ revisar | Caso excepcional, validar con contador |
Validación pendiente con el contador
- Confirmar si BERIT CONSULTING (RNC 131570429) está en RST. Si no, ¿por qué se le retuvo el 100% en lugar del 30% (Norma 02-05)?
- Confirmar si SHARON HEERE REAL ESTATE EIRL (RNC 133151121) está en RST. Una EIRL normal no debería tener retención del 100% en compras.
- Confirmar si RUFO REAL ESTATE SRL (RNC 133259151) está en RST. Misma observación.
- Alternativa: verificar el régimen de cada RNC en
dgii.gov.do → Consulta de RNCpara confirmar de forma independiente.
Pendiente técnico (CIFRA)
Implementar flag en_rst por proveedor para que esta clasificación se haga automáticamente en períodos futuros. Estimación: ~2.5 horas.
Tareas:
- Migración: agregar
en_rst(boolean nullable),en_rst_fuente(enum: manual/dgii_api/inferido),en_rst_verificado_at(timestamp) aproveedor_comprador. - Modificar
ClasificadorRetencionGastos::clasificarpara consultarproveedor.en_rstantes de aplicar heurísticas de tipo 02/09. - Caso
jurídica + tipo 09 + ratio 100% + en_rst=null→ retornar warning “ambiguo” en lugar de adivinar a COMPROB_COMPRAS. - Auto-update del flag cuando el usuario hace override manual a id=5 o id=6 en el grid 606.
- UI en Filament para marcar/desmarcar el flag manualmente.
- Seed sugerido: pre-poblar el flag con proveedores que históricamente ya tienen overrides a id=5 o id=6 en períodos anteriores (captura el aprendizaje ya existente en la base).
-- Seed sugerido para nueva columna
UPDATE proveedor_comprador pc
SET en_rst = true,
en_rst_fuente = 'inferido_historico'
WHERE pc.id IN (
SELECT DISTINCT g.proveedor_comprador_id
FROM gastos g
WHERE g.tipos_agente_retencion_id IN (5, 6)
);Resumen
| Aspecto | Estado |
|---|---|
| Total a pagar (39,447.51) | ✅ Coincide Excel y CIFRA |
| Distribución por casilla del IT-1 | ✅ Alineada después del fix |
| Validación fiscal de los 3 proveedores en RST | ⚠ PENDIENTE con contador |
Implementación flag en_rst en CIFRA | 📋 Pendiente — postergado |
Nota generada para trazabilidad. Validar con el contador antes de presentar a DGII si hubiera cambios en próximos períodos.