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.
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:
| Campo | Descripción |
|---|---|
| Nombre | Etiqueta visible (ej: “IVA Nacional”) |
| Código | Identificador corto (ej: IVA, RTF, ICA) |
| Tipo fiscal | IVA, RETENTION, OTHER |
| Aplicación | Ventas, compras, ambas |
| Cuenta de ventas | Cuenta contable para impuesto en ventas (ej: 240801) |
| Cuenta de compras | Cuenta contable para impuesto en compras (ej: 240802) |
| Cuenta dev. ventas | Cuenta para notas crédito en ventas |
| Cuenta dev. compras | Cuenta 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:
| Campo | Descripción |
|---|---|
| TaxType padre | A qué categoría pertenece |
| Nombre | Etiqueta de la tarifa (ej: “IVA 19% General”) |
| Porcentaje | El número que se aplica (ej: 19, 5, 0) |
| Vigencia desde / hasta | Para 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.
| Necesidad | Solución |
|---|---|
| IVA de compras nacionales en cuenta 240801 vs IVA importaciones en 240803 | Dos 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 236540 | Dos 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
- Ve a Configuración → Impuestos → Tipos de impuesto.
- Toca + Nuevo tipo.
- Elige tipo fiscal (
IVA,RETENTION,OTHER). - Asigna las cuentas contables (las puedes buscar por código del PUC).
- Guarda.
Crear una TaxRate
- Abre el TaxType padre.
- En la pestaña Tarifas, toca + Nueva tarifa.
- Define nombre, porcentaje y, si aplica, vigencia.
- Si necesitas que esta tarifa use cuentas distintas a las del padre, marca “Sobrescribir cuentas” y selecciónalas.
- 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.