Electronic invoicing in Colombia: what it is and how DIAN validates it

Electronic invoicing in Colombia: what it is and how DIAN validates it
Electronic invoicing in Colombia is not the PDF that lands in the customer's inbox. It is an XML file, digitally signed, that DIAN validates before the transaction is properly supported, and that PDF is only its graphical representation. Confusing the two explains a good share of rejections, inventory that does not reconcile and input VAT that gets lost every month. What follows is the full cycle: what the rules require, what DIAN checks, what to do when it rejects a document and how the invoice connects to inventory and to accounting.
What an electronic invoice is exactly, and what it is not
An electronic sales invoice is generated as an XML file under the UBL 2.1 standard, signed electronically and sent to DIAN, Colombia's tax authority, for prior validation. Only when DIAN validates it does the document become final and receive a CUFE, the Unique Electronic Invoice Code that identifies it unambiguously.
What it is not: it is not the PDF, not an email attachment and not electronic payroll. The PDF gets printed, forwarded and filed, but it does not replace the XML. Electronic payroll is another document in the same ecosystem, with different logic and a different purpose: it reports payroll payments, it does not collect on a sale.
The practical consequence is significant. The electronic invoice is a negotiable instrument and, when it meets the requirements, it supports costs, deductions and input VAT. If the document was rejected, is misidentified, or the buyer rejected it and nobody fixed it, that support collapses and the expense is exposed in an audit.
XML, CUFE and PDF: the three pieces people confuse
Each piece fails differently, which is why they should be separated by function. The XML is the document; the CUFE is its identification; the PDF is the copy for reading, printing and filing. An error in the XML contaminates everything else. A badly generated PDF does not invalidate the invoice, but it complicates delivery and archiving.
| Piece | What it is | What it is for | What happens if it is missing or wrong |
|---|---|---|---|
| UBL 2.1 XML | The tax document, electronically signed | Supports the transaction before DIAN, the customer and accounting | No XML, no invoice: there is no document to collect on and no support to record |
| CUFE | The Unique Electronic Invoice Code DIAN returns on validation | Identifies the document and makes it traceable | Without a CUFE the invoice was not validated and should not be used as support |
| Graphical representation | The PDF the buyer receives, carrying the data of the validated XML | Reading, printing, delivery and archiving | It does not invalidate the invoice, but without it the customer has no way to review it |
That yields a simple working rule: the file you keep and back up is the XML with its CUFE. The PDF is a reading convenience, not the legal record.
Who is required to invoice electronically in Colombia, and who is not
A taxpayer required to invoice must be enabled before DIAN, hold a valid electronic signature certificate and, where applicable, work with an authorized technology provider. Enablement is not a one-time formality you forget about: the tax calendar sets the dates by type of taxpayer and by the last digit of the NIT, the Colombian tax ID, and that calendar changes every year. Before assuming your company is up to date, check the current calendar and your enablement status.
There are also taxpayers not required to invoice: certain providers of personal services and small merchants, as long as they stay below the thresholds in force. Those thresholds are expressed in UVT, tax value units, so they move every year with the value of the unit; do not take them from an old article, check the value for the current year.
| Situation | Electronic invoice? | Document that applies |
|---|---|---|
| Enabled company selling goods or services | Yes, with prior validation | Electronic sales invoice |
| Business not yet enabled | It cannot issue one | It must be enabled before invoicing further |
| Personal services provider within the non-mandatory cases | No, as long as the case holds | Supporting document issued by the buyer |
| Small merchant below the current UVT threshold | No, as long as the threshold is not exceeded | Supporting document issued by the buyer |
| Company paying salaries | It is not an invoice | Electronic payroll |
The cycle step by step: from the sale to validation
The full journey has seven stops and each one leaves a different trace. Skip one and the problem shows up later, almost always in accounting and almost always at month end.
- The sale is recorded in the system with the real data of the transaction: customer, goods or services, quantities, prices, taxes and payment terms.
- The system generates the XML under the UBL 2.1 standard with the corresponding numbering.
- The XML is signed electronically with a valid certificate.
- The document is transmitted to DIAN for prior validation, either directly or through the technology provider.
- DIAN responds: it accepts and returns the CUFE, or it rejects and points out the errors.
- Once accepted, the graphical representation is generated and delivered to the buyer.
- The buyer acknowledges receipt or files a claim; in parallel, the transaction is recorded in accounting and moves inventory.
Acknowledgment of receipt and claims are not polite gestures: they are the mechanism by which the buyer states that the invoice was received or that they disagree with it. An invoice without acknowledgment still exists, but it sits in a convenient limbo for later arguments. If your company buys, acknowledge; if your company sells, review the status of acknowledgments before treating a receivable as lost or as collected.
What an invoice must contain to avoid rejection
The Colombian Tax Statute, article 617 and following, sets the content of a sales invoice. The list is short, and almost every rejection comes from not checking it before transmitting.
- Identification of seller and buyer: name or legal name and NIT, with the correct check digit.
- Description of the goods or services: what was sold, in what quantity and in what unit; "miscellaneous services" describes nothing.
- Amount: unit price, subtotal, taxes and total, consistent between lines and totals.
- VAT where applicable: at the rate that corresponds to the good or service, not at a general rate applied to the whole catalog.
- Payment terms: cash or credit, with the agreed conditions.
- Numbering and resolution where applicable: the consecutive number must fall within the authorized range.
Two warnings about VAT. The general rate in Colombia is 19%, but some goods and services are excluded, exempt or subject to differential rates. Applying 19% across the whole catalog is a common mistake in businesses that sell a mix of products, and it is expensive: either you overcharge the customer or you generate VAT you cannot later support.
The most common rejections and how to fix them
A rejection is not a voided invoice: it means the document was not validated and therefore does not exist for tax purposes. The sale happened, the customer has the goods, but the support is missing. You fix the cause, generate the document again and transmit; in the meantime, collection and the accounting entry are on hold.
| What the system shows | Why it happens | How to fix it |
|---|---|---|
| NIT or check digit does not match | Customer data mistyped or out of date | Correct the customer master record and generate the document again |
| Total does not match the lines | Discounts, freight or taxes calculated outside the XML | Include every concept in the lines before transmitting |
| Numbering out of range | Consecutive number that does not belong to the authorized resolution | Check the current range and renumber from the system |
| Invalid or expired electronic signature | Certificate expired or badly installed | Renew the certificate and sign again |
| Insufficient description of the good or service | Generic lines without unit or detail | Detail the concept, the quantity and the unit |
| Incomplete buyer data | Required fields empty or badly formatted | Complete the master record before invoicing, not after |
There is a silent rejection that never shows on screen: the buyer's. The customer receives the invoice and rejects it because they do not recognize the order, because the amount does not match the purchase order, or because the goods arrived incomplete. That rejection also has to be handled, and the fix is almost never resending the same document: it is issuing the corresponding note.
Credit note, debit note and supporting document: when each one applies
These documents get confused because all of them "correct" something, but each has a different trigger. Using the wrong one leaves the books balanced in appearance and unbalanced underneath.
- Electronic credit note: returns, later discounts and corrections that reduce the amount of an already validated invoice. It must reference the original document.
- Electronic debit note: increases, late-payment interest and adjustments that raise the amount of the transaction.
- Supporting document: used for purchases from suppliers who do not invoice electronically; it is the buyer's support for the cost or the input VAT.
- Electronic payroll: reports payroll payments. It is not an invoice and does not replace the support for a purchase of goods or services.
A rule that avoids arguments: a credit note does not erase the invoice, it offsets it. The original invoice still exists with its CUFE and its amount; the note adds a new document that adjusts it. That is why the archive must keep the whole chain, not just the last document.
Contingency: what to do when there is no connection or the provider fails
If transmission fails or the technology provider does not respond, the taxpayer required to invoice may invoice under contingency and transmit later. Contingency is an operational escape hatch, not a permanent authorization: it cannot become the normal way of invoicing because "the system goes down often".
Using it well demands three things. First, keep a record of the reason and the date the failure occurred. Second, preserve the numbering and the document requirements, because a contingency invoice is still an invoice. Third, transmit within the deadlines DIAN sets to regularize the situation, and do not wait for an audit to do it.
The classic mistake is invoicing under contingency for weeks and discovering the problem when the accountant asks for the month's support. If your operation depends on a single transmission channel, contingency is a latent risk, not a plan.
Electronic invoicing and inventory: where everything stops reconciling
This is where most operations break, and not because of DIAN but because of what happens inside. The invoice and the inventory should move together: if an invoice for ten units is issued, stock drops by ten units and cost of sales is recorded at the same moment. When the invoicing system and the inventory system are two separate worlds, three familiar symptoms appear.
The first: a warehouse that is physically empty and a system that still shows stock, because the sale was invoiced but nobody deducted the units. The second: a return recorded with a credit note and goods that never came back into inventory. The third: sales with no associated cost, which inflate margin and hide a profitability problem nobody can explain afterwards.
The criterion for closing the gap is simple: every invoice line must point to an identifiable item, with quantity, unit and cost. Services have no stock, but they still need a clear concept that later allows you to analyze what was sold. If your invoicing happens at a point of sale that does not talk to inventory, that is the first cable to connect.
The full example in pesos: from the sale to the journal entry
A sale of 10 units at COP 120,000 each, with 19% VAT. The math, step by step:
| Concept | Calculation | Amount |
|---|---|---|
| Subtotal | 10 units × COP 120,000 | COP 1,200,000 |
| VAT | COP 1,200,000 × 19% | COP 228,000 |
| Total due | COP 1,200,000 + COP 228,000 | COP 1,428,000 |
In the XML those numbers do not float loose. The line carries the quantity, the unit price and the calculated tax; the totals block carries the sum of the lines, the total tax and the total due. If the total in the block does not match the sum of the lines plus taxes, prior validation catches it and returns the document.
The journal entry, with the invoice already validated and the CUFE in hand:
- Accounts receivable: debit COP 1,428,000.
- Sales revenue: credit COP 1,200,000.
- Output VAT: credit COP 228,000.
Now a return of 2 units comes in. The credit note is calculated on the same unit price: 2 × COP 120,000 = COP 240,000 base, and 19% VAT on that base = COP 45,600. Note total: COP 285,600. The entry reverses in the same proportion: debit revenue for COP 240,000, debit output VAT for COP 45,600 and credit receivables for COP 285,600. If the goods go back to the warehouse, they re-enter inventory at cost, not at the selling price.
How to choose a technology provider without marrying the first one
The technology provider is the party that transmits and, in practice, the one that defines how much your team suffers when something fails. Before signing, ask to see the full flow with a real case, not a rehearsed demo.
- Handling of rejections: it should show the error, allow a correction and resend without retyping the sale.
- Integration with inventory and accounting: a single data entry, no double typing.
- Ecosystem documents: credit note, debit note and supporting document included, not sold as a separate module.
- Operational contingency: a clear procedure to invoice now and transmit later.
- Traceability: status history, CUFE and the ability to export the XML files.
- Exit: the right to take your documents with you if you ever change tools.
That last point gets forgotten and it is the most expensive one. If the XML files live only on the provider's platform, changing systems becomes a negotiation. Ask from day one how they are exported and in what format.
What it really costs to implement
There is no single price, and be wary of anyone who gives you one without knowing your operation. What you can do is list the cost fronts so the conversation with the provider is concrete.
- Electronic signature certificate: a recurring cost, with a validity period you must renew before it expires.
- Technology provider: usually charged per document, per volume tier or per plan; real volume decides.
- Master data setup: products, taxes, third parties and payment terms properly configured. It is the item that consumes the most time and prevents the most rejections.
- Integration: connecting invoicing, inventory and accounting; if it has to be done by hand, the cost returns every month.
- Training and parallel operation: during the transition the old process and the new one coexist.
- Accounting support: review of notes, reconciliations and cleanup of balances.
Cost per document is the metric worth comparing, but the hidden expense sits in master data and integration. A cheap provider with badly built master data ends up costing more in rejections and accountant hours.
An honest close before you decide
None of this replaces your accountant. Electronic invoicing touches taxes, negotiable instruments and deduction support, and every case has edges an article cannot resolve: export transactions, special tax regimes, sales to taxpayers not required to invoice, partial returns with discounts. If your company falls into any of those, confirm the treatment before changing the process.
What you can do without waiting: review your enablement status, check the expiry of your signature certificate, look at how many invoices from last month were rejected or never acknowledged, and verify whether inventory moves on its own when an invoice is validated. With those four data points you already know where the real problem is. At Kardex Tauro, inventory and invoicing feed from the same record, so every validated document moves stock and accounting at once, with no later reconciliation.