Reportes Financieros VEN-NIIF
Cómo generar Estados Financieros conforme a VEN-NIIF para PYMES desde el plan de cuentas ACE.
Marco normativo aplicable
ACE prepara EEFF según VEN-NIIF para PYMES (Federación de Colegios de Contadores Públicos de Venezuela). Los pronunciamientos clave:
- Sección 4 — Estado de Situación Financiera
- Sección 5 — Estado de Resultados Integrales (Resultado del periodo + ORI)
- Sección 6 — Estado de Cambios en el Patrimonio
- Sección 7 — Estado de Flujos de Efectivo
- Sección 29 — Impuesto a las ganancias (impuestos diferidos)
- Sección 31 — Hiperinflación (BA VEN-NIF 2 v4 vigente desde 01-ene-2025)
Cómo se mapean cuentas → buckets de EEFF
Cada cuenta tiene un accountSubtype que la asigna a un bucket específico. Los reportes agrupan por subtype, no por code.
Estado de Situación Financiera (Sec 4)
ACTIVO
├── Activo Corriente .......................... subtype = CURRENT_ASSET
├── Propiedad, Planta y Equipo ................ subtype = FIXED_ASSET
├── Activo Intangible ......................... subtype = INTANGIBLE_ASSET
├── Activo No Corriente ....................... subtype = NON_CURRENT_ASSET
└── Impuesto Diferido Activo (Sec 29) ......... subtype = DEFERRED_TAX_ASSET
PASIVO
├── Pasivo Corriente .......................... subtype = CURRENT_LIABILITY
├── Pasivo a Largo Plazo ...................... subtype = LONG_TERM_LIABILITY
└── Impuesto Diferido Pasivo (Sec 29) ......... subtype = DEFERRED_TAX_LIABILITY
PATRIMONIO
├── Capital Social ............................ subtype = CAPITAL
├── Utilidades Retenidas ...................... subtype = RETAINED_EARNINGS
├── Reservas .................................. subtype = RESERVES
├── ORI (Sec 5) ............................... subtype = OCI
├── REI (Sec 31) .............................. subtype = REI
├── Otro Patrimonio ........................... subtype = OTHER_EQUITY
└── Dividendos ................................ subtype = DIVIDENDS
Estado de Resultados Integrales (Sec 5)
INGRESOS
├── Ingresos Operativos ....................... subtype = OPERATING_REVENUE
├── Otros Ingresos ............................ subtype = OTHER_REVENUE
└── Ingresos Financieros ...................... subtype = FINANCIAL_REVENUE
(menos)
COSTO DE VENTAS .............................. subtype = COST_OF_SALES
= UTILIDAD BRUTA
(menos)
GASTOS OPERATIVOS ............................. subtype = OPERATING_EXPENSE
GASTOS ADMINISTRATIVOS ........................ subtype = ADMINISTRATIVE_EXPENSE
= UTILIDAD OPERATIVA
(menos)
GASTOS FINANCIEROS ............................ subtype = FINANCIAL_EXPENSE
GASTOS NO OPERATIVOS (incluye REI Sec 31) ..... subtype = NON_OPERATING_EXPENSE
= UTILIDAD ANTES DE IMPUESTOS
(menos)
IMPUESTO A LAS GANANCIAS ...................... (cuentas específicas)
= RESULTADO NETO
OTROS RESULTADOS INTEGRALES (ORI) ............. subtype = OCI
= RESULTADO INTEGRAL TOTAL
Hiperinflación — REI granular (Sec 31 + BA VEN-NIF 2 v4)
Venezuela es economía hiperinflacionaria desde 2018. El Boletín de Aplicación VEN-NIF 2 (versión 4 vigente desde 01-ene-2025) obliga la reexpresión de EEFF mediante INPC publicado por el BCV.
ACE registra el Resultado por Exposición a la Inflación (REI) en 3 sub-cuentas granulares bajo 5.11:
| Cuenta | Concepto |
|---|---|
5.11.01 | REI sobre activos no monetarios (PPE, inventarios, intangibles) |
5.11.02 | REI sobre patrimonio (capital, reservas, utilidades) |
5.11.03 | REI sobre partidas monetarias (efectivo, CxC, CxP, préstamos) |
El servicio inflationAdjustmentService calcula y registra estas líneas mensualmente cuando se cierra periodo.
Query típico para generar EEFF
Activo Corriente (Sec 4 — Balance General)
SELECT a.code, a.name, a.balance
FROM accounting_accounts a
WHERE a.account_subtype = 'CURRENT_ASSET'
AND a.is_active = true
AND a.accepts_transactions = true
ORDER BY a.code_sort_key;
Importante: ORDER BY code_sort_key (no code) para evitar bug 5.1 < 5.10 < 5.11 < 5.2.
Resultado Integral del periodo
SELECT
a.account_subtype,
SUM(jel.debit_amount - jel.credit_amount) AS movimiento_neto
FROM accounting_accounts a
JOIN journal_entry_lines jel ON jel.accounting_account_id = a.id
JOIN journal_entries je ON jel.journal_entry_id = je.id
WHERE je.fiscal_period_id = :periodId
AND a.account_type IN ('REVENUE', 'EXPENSE')
GROUP BY a.account_subtype
ORDER BY a.account_subtype;
Servicios disponibles
| Servicio | Propósito |
|---|---|
inflationAdjustmentService | Calcula y registra REI mensual con INPC del BCV |
accountingDashboardService | KPIs por subtype para el dashboard ejecutivo |
seniatXmlService | Genera XML para SENIAT |
ivaBookService | Libros de IVA Compras/Ventas según Providencia 071 |
dualCurrencyAccountingService | EEFF en USD y VES dual |
Tests de cumplimiento
backend_erp/src/modules/accounting/tests/venniifReports.sub2.test.js verifica que el catálogo permita generar todos los buckets requeridos por VEN-NIIF Sec 4-5-29-31. 12 tests, todos pasando al cierre de sub2.
Referencias
- VEN-NIIF para PYMES: https://www.fccpv.org/cont/data/files/Pronunciamientos.pdf (FCCPV)
- Boletín BA VEN-NIF 2 v4: vigente desde 01-ene-2025
- INPC BCV: https://www.bcv.org.ve/estadisticas/precios
- Código de Comercio Art. 32-34: Libros obligatorios