Configurar impuestos (TaxType y TaxRate)

Modelo SAP-style de impuestos en contable.io: TaxType como categoría y TaxRate como tarifa específica con cuentas contables.

Actualizado: 5 de abril de 2026

contable.io maneja los impuestos con un modelo de dos niveles inspirado en SAP: la categoría (TaxType) y la tarifa específica (TaxRate). Esto permite agrupar tarifas relacionadas, heredar cuentas contables, y modelar realidades complejas como IVA por origen, retenciones por concepto o ICA por municipio sin duplicar configuración.

¿Vienes del modelo viejo? Antes había un único registro “Tipo de impuesto” que mezclaba categoría y tarifa. Ahora cada categoría puede tener varias tarifas. Las migraciones automáticas convirtieron tus impuestos existentes a este modelo sin pérdida de datos.

Tipos de impuestos con modelo TaxType + TaxRate

El modelo en una imagen

TaxType (categoría)              TaxRate (tarifa específica)
─────────────────                ───────────────────────────
IVA                              ├── 19% General
                                 ├── 5% Diferencial
                                 ├── 0% Exento
                                 └── Excluido

ReteFuente                       ├── Honorarios 11%
                                 ├── Servicios 4%
                                 ├── Compras generales 2.5%
                                 └── Compras autorretenedor 0%

ReteICA Bogotá                   ├── Comerciales 11.04 ‰
                                 ├── Industriales 4.14 ‰
                                 └── Servicios 9.66 ‰

Cada TaxType define las cuentas contables predeterminadas (ventas, compras, devoluciones). Cada TaxRate hereda esas cuentas pero puede sobrescribir cualquiera si lo necesita.

TaxType: la categoría

Un TaxType agrupa tarifas que comparten naturaleza fiscal y, generalmente, cuentas contables. Sus campos:

CampoDescripción
NombreEtiqueta visible (ej: “IVA Nacional”)
CódigoIdentificador corto (ej: IVA, RTF, ICA)
Tipo fiscalIVA, RETENTION, OTHER
AplicaciónVentas, compras, ambas
Cuenta de ventasCuenta contable para impuesto en ventas (ej: 240801)
Cuenta de comprasCuenta contable para impuesto en compras (ej: 240802)
Cuenta dev. ventasCuenta para notas crédito en ventas
Cuenta dev. comprasCuenta para notas crédito en compras

TaxRate: la tarifa

Una TaxRate es lo que efectivamente se aplica a una línea de factura. Sus campos:

CampoDescripción
TaxType padreA qué categoría pertenece
NombreEtiqueta de la tarifa (ej: “IVA 19% General”)
PorcentajeEl número que se aplica (ej: 19, 5, 0)
Vigencia desde / hastaPara tarifas con vigencia limitada
Cuentas (override)Si necesita cuentas distintas a las del padre

Herencia: si la TaxRate no especifica cuentas, usa las del TaxType. Esto evita duplicar la configuración cuando todas las tarifas comparten cuentas (que es el caso típico).

Casos donde necesitas dos TaxTypes distintos

El sistema NO decide por lógica hardcodeada qué cuenta usar. Si tu contabilidad necesita separar movimientos de impuesto en cuentas distintas, crea dos TaxTypes, no dos TaxRates.

NecesidadSolución
IVA de compras nacionales en cuenta 240801 vs IVA importaciones en 240803Dos TaxTypes: “IVA Nacional” y “IVA Importaciones”, cada uno con su cuenta. Asigna el correcto a cada producto.
ReteFuente honorarios en 236505 vs ReteFuente compras en 236540Dos TaxTypes (o un TaxType con dos TaxRates con override de cuenta). Lo más limpio: dos TaxTypes.
ICA por ciudad (cuentas distintas en 236805 por municipio)Un TaxType “ICA” por ciudad, cada uno con su cuenta y sus TaxRates por actividad.

Casos donde basta con varias TaxRates

Si las tarifas comparten cuentas y solo cambia el porcentaje, usa un solo TaxType con varias TaxRates:

  • IVA con tarifas 19%, 5%, 0% → un TaxType “IVA” con tres TaxRates.
  • ReteFuente por concepto que va todo a la misma cuenta 236540 → un TaxType “ReteFuente” con tarifas por concepto.

Asignación a productos

En Inventario → Productos, cada producto tiene dos campos opcionales:

  • Tipo de impuesto venta (TaxRate por defecto en facturas de venta).
  • Tipo de impuesto compra (TaxRate por defecto en facturas de compra).

Al agregar el producto a una factura, el sistema toma estas tarifas como sugerencia y aplica las cuentas contables correspondientes (TaxRate override > TaxType padre).

Resolución de cuenta en una línea de factura

1. Producto tiene tax_rate_id asignada (venta o compra según el documento).
2. TaxRate tiene su override de cuenta o hereda del TaxType padre.
3. El auto-posting usa esa cuenta directamente.
4. Si TaxRate y TaxType están vacíos → fallback a resolve_iva_subcuenta()
   con la lógica fiscal nativa de Colombia.

Crear un TaxType

  1. Ve a Configuración → Impuestos → Tipos de impuesto.
  2. Toca + Nuevo tipo.
  3. Elige tipo fiscal (IVA, RETENTION, OTHER).
  4. Asigna las cuentas contables (las puedes buscar por código del PUC).
  5. Guarda.

Crear una TaxRate

  1. Abre el TaxType padre.
  2. En la pestaña Tarifas, toca + Nueva tarifa.
  3. Define nombre, porcentaje y, si aplica, vigencia.
  4. Si necesitas que esta tarifa use cuentas distintas a las del padre, marca “Sobrescribir cuentas” y selecciónalas.
  5. Guarda.

Migración mental desde el modelo viejo

Si llevas tiempo usando contable.io, antes había un único registro por impuesto. Ahora cada uno se convirtió en:

  • Un TaxType con la misma configuración de cuentas.
  • Una TaxRate hija con el mismo porcentaje.

Tus productos siguen funcionando porque ahora apuntan a la TaxRate (no al TaxType directamente). El reporte de impuestos y los asientos automáticos se mantienen idénticos. Lo único que cambió es que ahora puedes crear más tarifas dentro del mismo TaxType sin duplicar la cabecera.

Errores comunes

  • “El IVA está cayendo en una cuenta equivocada”: revisa la TaxRate del producto. La cuenta efectiva es TaxRate.account_override ?? TaxType.account. Si está mal, corrige la TaxRate o el TaxType, no el código del producto.
  • “No puedo eliminar un TaxType”: tiene TaxRates asociadas o productos asignados. Primero migra los productos a otra TaxRate y elimina las hijas.
  • “Se duplicaron mis tarifas después de la migración”: la migración convirtió cada impuesto viejo en TaxType + TaxRate. Si ves duplicados visuales, son la cabecera y la tarifa — no son el mismo registro.