Set up the Fail Fast tax engine: taxes, directives, the tax tree, and exceptions by product and by third party.
The Fail Fast tax engine is a dynamic set of tax rules that learns from your company’s business rules. Taxes sit at the core of every ERP operation: once configured, each document calculates them on its own, without the person recording the transaction having to select anything.
Screenshots in this guide come from the Spanish interface. UI labels are given in English with the Spanish label in parentheses so you can match them on screen.
Start by creating each tax as a master record. A tax represents a fiscal obligation imposed by a government authority on transactions, products, services, or activities within the ERP.This configuration is what later lets you:
Define and manage the different taxes that apply to your business transactions.
Enable automatic tax calculation across sales, purchasing, and financial flows.
Stay compliant with local and national tax regulations.
Tax type (Tipo de impuesto) is a catalog preloaded by Fail Fast, aligned with the DIAN standard — VAT (IVA), ICA, withholding at source (retención en la fuente), and self-withholding (autorretención). You do not create it: when creating a new tax you simply select the matching type from this list and fill in the remaining fields.
Open the Company Taxes (Impuestos por Empresa) module, where you’ll find every tax already created with its code, name, type, class, settlement method, and status.
Company taxes list — each row is a tax: sales VAT, purchase VAT, sales ICA, withholding at source, self-withholding, and so on.
Click New (Nuevo) to open the creation form.
Tax form — required fields before clicking Create.
Fill in the following fields:
Code (Código) — short identifier for the tax, used as a quick reference in transactions and financial documents.
Name (Nombre) — full descriptive name, used in official documents, compliance reports, and selection lists.
Tax type (Tipo de impuesto) — selected from the preloaded DIAN catalog; not created manually.
Type (Tipo) — whether it applies to sales, purchases, or another operational flow.
Tax class (Clase de impuesto) — an additional classification category.
Settlement method (Método de liquidación) — how the tax is calculated: percentage, fixed value, quantity, or range, among others.
Is active? (¿Está activo?) — controls whether the tax is available for transaction processing.
Click Create (Crear) to save the tax.
Every tax created here becomes available for purchase orders, payables and receivables, POS, and transport, and can later be attached to the tax tree of your third parties.
2
Create the tax directives
Once the base taxes exist, configure the directives (directivas). A directive defines the application rules for a tax: the rate, the geographic location where it applies, and the associated accounting behavior. It is the table that tells the tax engine how to behave in each transaction.Directives let you model scenarios such as:
Rates by geographic location — for example, a 100 % purchase VAT applied in Colombia.
Temporary tax events — turning on Tax is an event (El impuesto es un acontecimiento) covers cases like the VAT-free day (Día sin IVA), with a specific validity period.
Free trade zones — depending on the geographic location selected, the directive reflects the differential treatment of a free trade zone (zona franca) versus the rest of the territory.
Open the Directive (Directiva) module, where each rule appears with its associated tax, class, geographic location, percentage, rounding, denominator, and minimum value.
Directives list — example: purchase VAT, 100 %, Colombia.
Click New and fill in General information and Calculation rules.
General information and calculation rules of the directive.
Directive name (Nombre directiva) — descriptive name of the rule.
Tax (Impuesto) — the base tax this directive belongs to. It acts as a grouper so the same economic event is not taxed twice by different directives.
Tax class (Clase de impuesto) and Sales tax (Impuesto para Ventas) — classify the operation, purchase or sale, the directive applies to.
Is active? (¿Está activo?) — enables or disables the directive without deleting it.
Geographic location (Ubicación geográfica) — the zone where this directive applies: country, department or free trade zone, and city.
Rounding (Redondeo) and Denominator (Denominador) — decimal precision and calculation base of the tax.
Minimum value (Valor mínimo) — the minimum transaction amount at which the tax kicks in.
Tax is an event (El impuesto es un acontecimiento) — set it to Yes for temporary event directives such as the VAT-free day.
Period (Periodo) — validity range, with start and end date and time.
Further down, under Accounting configuration (Configuración contable) and Stakeholder (Interesado), define the accounting posting and the associated third parties.
Accounting configuration and stakeholder of the directive.
Account (Cuenta) — the account where the tax is posted.
Counter account (Cuenta contraria) — the double-entry counterpart.
Return account (Cuenta de devolución) — account used for tax returns or refunds.
Fixed tax third party (Tercero de impuesto fijo) — the government entity or fixed beneficiary tied to the directive, where it applies.
Year-end third party (Tercero para cierre año) — third party used in the annual close and reconciliation of the tax.
Click Create to save the directive.
Key rule for ICA: create a single directive grouper for purchases and one for sales per economic activity. Do not create a directive for each loose rate — grouping by economic activity avoids duplication and ensures the engine applies the correct rate for the taxable event.
3
Configure the tax tree
The tax tree (árbol de impuestos) is a transactional control: it defines the tax rules between your company and a third party, and how that tax posts to accounting in each operation.Each record crosses three things — your company’s tax profile, the third party’s tax profile (customer or supplier), and whether the operation is a purchase or a sale — to determine which taxes apply and whether they generate accounting movement.Open the Tree (Árbol) module, which lists the combinations already configured: is sale?, company tree, third-party tree, tax type, handles accounting, and handles taxes.
Tree list — example: purchase, purchase VAT, withholding at source, purchase ICA.
Click New. The form is organized into three tabs:
Company tree
Third-party tree
Taxes
First set whether the record applies to Is sale? (¿Es venta?) — purchase or sale — and then the tax profile of your company as a party to the transaction.
Company tree — the company's tax profile for this scenario (purchase).
Origin (Origen) — domestic or foreign.
Company type (Tipo de sociedad) — legal entity or natural person.
VAT regime (Régimen en IVA) — VAT responsible or not responsible.
Income tax status (Calidad en renta) — self-withholder or not.
Income tax filer (Declarante de renta) — yes or no.
Withholding agent (Agente de retención) — yes or no.
With the same field structure, define the tax profile of the third party — customer or supplier — you transact with.
Third-party tree — tax profile of the counterparty: domestic, natural person, not VAT responsible.
The tax engine crosses the company tree profile with the third-party tree profile: the exact combination of both, plus whether it is a purchase or a sale, determines which taxes and accounting rules fire in the transaction.
For the profile combination you defined, select which taxes take part and whether each one handles taxes, accounting, or both.
Taxes tab — the "Obtener formulario de impuestos" table with the Handles taxes and Handles accounting checks per type.
Handles taxes (Maneja impuestos) — whether this profile combination calculates that tax in the transaction.
Handles accounting (Maneja contabilidad) — whether, beyond being calculated, that tax must generate the corresponding accounting entry.
Tax type (Tipo de impuesto) — the DIAN catalog tax, created in step 1, this rule applies to.
Select the combinations you need and click Update (Actualizar) to save the tree configuration.
You now have the minimum base configuration. With taxes, directives, and the tree configured, the engine knows which taxes exist, at what rates and rules they are calculated, and how they apply between your company and your third parties. Steps 4 and 5 are optional exceptions layered on this base: by product or service, and by third party.
4
Configure taxes by product or service
Taxes are not configured product by product — they are configured at the product type level. Every product belongs to a type, and that type carries the tax configuration that applies to all products under it.Open the Product/Service Type (Tipo de producto/Servicios) module, which lists every type already created with its name, whether it is a service, whether it prevents retroactive transactions, and its accounts for inventory, cost of sales, revenue, and returns.
Product types list — example: EPPS GRAVADOS, LLANTAS, DOTACIÓN.
Open a product type. At the bottom of Product information you’ll find three tabs: Accounts (Cuentas Contables), Taxes (Impuestos), and Financial Class (Clase Financiera). Inside Taxes, configuration is split into Purchases (Compras) and Sales (Ventas).
Product type EPPS GRAVADOS — Taxes → Purchases tab, with the "Impuesto de Compra" table ready to configure.
Configuration happens directly on the table: first select a Tax type and then a Tax that belongs to that same type. On selection, the system shows the associated directive so you can validate rates and rules before saving.
Purchase tax configured (purchase VAT) and its associated directive — "Purchase Registers" shows the directive validity and rounding.
Product type (Tipo de Producto) — inherited automatically from the record you are editing.
Tax type (Tipo de impuesto) — the DIAN catalog type, for example purchase VAT.
Tax (Impuesto) — must belong to the selected tax type.
Requires directive (Requiere de directiva) — whether the tax needs an active directive to be calculated.
Initials (Iniciales) — abbreviation of the tax for reports and documents, for example IVACOM.
Is addition (Es adición), Is sales (Es de ventas), and Is major (Es de mayor) — flags that control how the tax behaves inside the document and in accounting.
To save the row you must tick the check on the left and use the Action (Acción) button — not the Update button. If you only fill in the fields without ticking the check and confirming with Action, the configuration is not saved.
Row saved correctly: check ticked, tax type and tax filled in.
Repeat the same procedure in the Sales sub-tab to configure the taxes that apply when this product type is sold.
5
Configure taxes by third party
To add taxes to a third party, go to the Suppliers (Proveedores) or Customers (Clientes) modules. You can hold this configuration both at the general supplier or customer level and in each record’s detail.Open the Supplier (Proveedor) — or Customer — module and find the third party you want to configure the exception for.
Supplier list — document type, third party, document number, commercial terms, and purchasing manager.
Opening the third party’s detail shows its general information first: document type and number, name, location, contact details, CIIU code, and tax responsibility.
General information of the third party — the basis for its tax profile.
Further down the same record you’ll find the third party’s tax profile — company type, VAT regime, income tax status, income tax filer, and withholding agent, the same information that makes up the third-party tree from step 3 — and below it, the third party’s own tax section, with the Purchase Taxes and Sales Taxes tabs.
Customer Taxes → Purchase Taxes — the "Obtener Directiva Tributaria del Cliente" table.
The mechanics are the same as step 4: select a Tax type and a Tax belonging to that type, the system shows the associated accounting directive so you can validate rates and rules, and to save the row you tick the check and use the Action button — or Save for all (Guardar para todos) when configuring several rows at once. The Save button at the top only applies to the third party’s general information.
In the screenshot the table is empty (“No hay datos”) because in this example no tax has been created with a type enabled at third-party level. The table only lists taxes that can apply in this context; if the catalog from step 1 has no taxes of that type, there is nothing to select.
This configuration is additional and specific to the third party: it does not replace or override the rules already defined in the tax tree in step 3. Use it only for one-off exceptions for that customer or supplier.
Repeat the procedure in the Sales Taxes tab to configure the taxes that apply when this third party takes part in a sale.
Configuration complete. With taxes, directives, the tree, and the exceptions by product and by third party in place, the tax engine is ready to operate across all modules.
6
Verify the result on a payable
To confirm the configuration was applied correctly, create a payable and check that taxes are calculated automatically.When you create the Invoice (Factura), alongside the General information, Supplier data, and Invoice detail tabs there is a Taxes (Impuestos) tab. There the system shows everything you configured in steps 1 to 5, already calculated, without you selecting anything manually.
Invoice → Taxes tab: the engine automatically applied general purchase VAT (19 %) according to the configured tree and directive.
The tab is organized into three tables and a totals summary:
Invoice taxes (Impuestos de la factura) — summarizes the tax applied at document level: code, name (IVA General Compras), total tax, base value, the initial tax (Ivacom), and whether its operation adds (Incremental) or subtracts from the total.
Invoice detail taxes (Impuestos del detalle de la factura) — shows the line-by-line calculation: quantity, tax base, subtotal, calculated tax, unit price, and the tax percentage (19 %) inherited from the step 2 directive. The tax origin field confirms it came from the Product — the product type from step 4 — and not from a third-party exception.
Excluded invoice taxes (Impuestos excluidos de la factura) — lists taxes that exist in the catalog but do not apply to this tree, product, and third-party combination. It shows empty — Not Found — when there are no exclusions.
The bottom block consolidates other discount value, discount value, VAT included value, subtotal, and total. The last two are read-only and calculated automatically.
This is the expected result of a correct configuration: whoever records the invoice does not configure taxes manually, they only see the calculation already resolved by the engine from the taxes, directives, tree, and exceptions defined in the previous steps.