Convertir XML de la DIAN a Excel
El archivo que descarga del portal de la DIAN casi nunca es la factura: es un AttachedDocument que la lleva adentro. Por eso otros conversores le devuelven columnas vacías. Aquí se abre el sobre, se lee la factura y sale un Excel completo — sin que el archivo salga de su computador.
Suelte aquí sus XML de la DIAN
Arrastre los archivos o el ZIP tal como lo bajó del portal de la DIAN. Se procesan dentro de su navegador: no se suben a ningún servidor.
Reconoce AttachedDocument, Invoice, CreditNote y DebitNote de UBL 2.1.
| Archivo | Origen | Tipo | Número | Fecha | NIT / RUC / RFC emisor | Emisor | Identificación receptor | Receptor | Mon. | Subtotal | Descuento | Impuestos | Retenciones | Total | CUFE / UUID / Clave |
|---|
En corto
El XML que entrega la DIAN casi nunca es la factura: es un
AttachedDocument que la lleva adentro, metida dentro de un bloque
CDATA. Por eso tantos conversores devuelven una hoja con columnas
vacías. AbreXML abre esa envoltura, saca la factura real y la lee completa, con su CUFE.
Arrastre el ZIP tal como lo bajó del portal, revise la tabla y descargue el Excel. No se sube nada a ningún servidor: todo ocurre dentro de su navegador.
Por qué el XML de la DIAN sale vacío en otros conversores
La factura electrónica en Colombia se emite bajo el estándar UBL 2.1 con
el perfil de la DIAN. Pero lo que le llega a usted, y lo que descarga del portal, no suele
ser la factura sola: es un AttachedDocument, un sobre que la DIAN usa para
entregar el documento junto con su representación gráfica y los metadatos del proceso.
Dentro de ese sobre, la factura real viaja como texto escapado dentro de un
CDATA, en el elemento cac:Attachment →
cac:ExternalReference → cbc:Description. Para un conversor
genérico eso no parece un documento: parece un campo de texto largo. Por eso lee el sobre,
no encuentra cbc:ID ni totales donde los espera, y devuelve una fila en
blanco.
<AttachedDocument>
<cbc:ID>13098</cbc:ID>
<cac:Attachment>
<cac:ExternalReference>
<cbc:Description><![CDATA[
<Invoice> <!-- la factura de verdad está aquí -->
<cbc:ID>SETP990000123</cbc:ID>
<cbc:UUID schemeName="CUFE-SHA384">a1b2c3…</cbc:UUID>
…
</Invoice>
]]></cbc:Description>
</cac:ExternalReference>
</cac:Attachment>
</AttachedDocument>AbreXML detecta la raíz AttachedDocument, busca el CDATA que
contenga una Invoice, una CreditNote o una DebitNote,
y vuelve a leer ese contenido como si fuera el archivo original. El resultado es la factura
completa. Hay una guía aparte sobre el
AttachedDocument si quiere el detalle.
Qué extrae de cada factura colombiana
De un documento de la DIAN se sacan estos datos:
| Dato | Elemento del XML |
|---|---|
| Consecutivo | cbc:ID |
| CUFE | cbc:UUID con schemeName="CUFE-SHA384" |
| Fecha de emisión | cbc:IssueDate |
| NIT y razón social del emisor | cac:AccountingSupplierParty |
| NIT y razón social del adquiriente | cac:AccountingCustomerParty |
| Moneda | cbc:DocumentCurrencyCode |
| Base gravable | cbc:LineExtensionAmount |
| Descuentos | cbc:AllowanceTotalAmount |
| IVA e impuestos | cac:TaxTotal / cbc:TaxAmount |
| Retenciones | cac:WithholdingTaxTotal |
| Total a pagar | cbc:PayableAmount |
| Detalle por renglón | cac:InvoiceLine |
El tipo de documento sale de la raíz: Invoice es factura de venta,
CreditNote es nota crédito y DebitNote es nota débito. El perfil
(cbc:ProfileID, que en Colombia dice «DIAN 2.1: Factura Electronica de Venta»)
es lo que permite distinguir un UBL colombiano de uno peruano, porque el estándar es el
mismo.
El CUFE y para qué sirve en la hoja
El CUFE —Código Único de Factura Electrónica— es la huella digital del documento: una cadena hexadecimal larga que resulta de combinar NIT, fecha, hora, valores, impuestos y la clave técnica del emisor. Dos facturas no pueden tener el mismo CUFE.
En la práctica contable esa columna vale oro por una razón sencilla: es el único campo que garantiza que no está contando dos veces la misma factura. Cuando junta las descargas de varios meses, o mezcla lo que bajó del portal con lo que le mandaron los proveedores por correo, el consecutivo se repite entre emisores distintos y el nombre del archivo cambia según quién lo guardó. El CUFE no. Quite duplicados por esa columna y la cuenta queda limpia. Hay una guía sobre el CUFE con más detalle.
Qué documentos de la DIAN se pueden convertir
- Factura electrónica de venta — la raíz
Invoice, sola o dentro de unAttachedDocument. - Notas crédito y notas débito —
CreditNoteyDebitNote, con el mismo tratamiento. - Documento soporte en adquisiciones a no obligados a facturar — usa la misma estructura UBL, así que se lee igual.
- Facturas de contingencia y de exportación — cambian el perfil, no la estructura.
La nómina electrónica y los eventos (acuse de recibo, aceptación, rechazo) usan estructuras distintas y hoy no se extraen. Si los necesita, escríbanos.
Problemas frecuentes y qué significan
«AttachedDocument sin factura embebida»
El sobre llegó, pero adentro no venía una factura. Suele pasar con los XML de eventos —el acuse de recibo o la aceptación expresa—, que usan el mismo sobre para transportar otra cosa. No es un error del archivo: simplemente no es una factura.
Las columnas de retención salen vacías
Muchos emisores no declaran las retenciones dentro del XML, porque la obligación de practicarlas es del comprador, no del vendedor. Si el documento no las trae, no hay de dónde sacarlas.
El ZIP trae PDF además de XML
No importa. Se leen los XML que haya adentro y se ignora todo lo demás, incluidas las subcarpetas.
El archivo pesa varios megabytes
Es normal: la firma digital y la representación gráfica embebida inflan el
AttachedDocument. En la prueba de capacidad, 2.000 documentos firmados que
sumaban 52 MB se leyeron en poco más de medio segundo.
¿Trabaja con facturas de otros países?
Puede mezclarlas en la misma tanda: cada documento se identifica solo y la columna «Origen» dice de dónde salió.
- México · SAT CFDI 3.3 y 4.0 del SAT, con el UUID del timbre fiscal digital. Ver cómo →
- Ecuador · SRI Comprobantes del SRI, incluso los que vienen envueltos en la autorización. Ver cómo →
- Perú · SUNAT UBL 2.1 de la SUNAT: facturas, boletas y notas, con su serie y correlativo. Ver cómo →
- Bolivia · SIAT Facturas del SIAT, electrónicas y computarizadas, con su CUF. Ver cómo →
- Chile · SII Documentos tributarios electrónicos del SII: factura, boleta, nota y guía. Ver cómo →
¿Le toca hacer esto todos los meses?
AbreXML salió de ERP Gorilla, el sistema que hacemos para talleres de manufactura. Ahí las facturas de los proveedores entran solas y se concilian contra la contabilidad: nadie descarga, nadie arrastra, nadie revisa si falta alguna.
Si usted maneja un taller de metalmecánica, carpintería, vidriería o publicidad —o le lleva la contabilidad a uno— puede que le sirva.
Ver ERP GorillaPreguntas frecuentes
¿Por qué el XML de la DIAN me sale vacío al pasarlo a Excel?
Porque el archivo de la DIAN casi siempre es un AttachedDocument: un sobre que lleva la factura real embebida dentro de un bloque CDATA. Los conversores genéricos leen el sobre, no encuentran los campos donde los esperan y devuelven columnas en blanco. AbreXML abre el sobre, extrae la factura y la lee completa.
¿Puedo convertir todas las facturas del mes de una vez?
Sí. Arrastre el ZIP completo tal como lo descargó del portal de la DIAN, o seleccione la carpeta donde las guarda con todas sus subcarpetas. En pruebas se leyeron 2.000 AttachedDocument firmados, 52 MB en total, en poco más de medio segundo.
¿Extrae el CUFE?
Sí, en la última columna. Es el campo más útil para quitar duplicados cuando junta descargas de varios meses, porque el consecutivo se repite entre emisores distintos y el CUFE no.
¿Sirve para notas crédito y notas débito?
Sí. CreditNote y DebitNote usan la misma estructura UBL 2.1 y se leen igual que las facturas. La columna «Tipo» indica cuál es cada documento.
¿Mis facturas se suben a algún lado?
No. Todo ocurre dentro de su navegador. El sitio declara connect-src 'none' en su política de seguridad, lo que significa que el propio navegador bloquearía cualquier intento de enviar datos a un servidor. Puede desconectar el internet después de abrir la página y seguirá funcionando.
¿Lee también la nómina electrónica?
Todavía no. La nómina electrónica usa una estructura distinta a la de la factura. Si la necesita, escríbanos a hola@abrexml.com y cuéntenos.
¿Dónde descargo los XML en el portal de la DIAN?
En la plataforma de factura electrónica de la DIAN, en la sección de documentos recibidos o emitidos. Filtre por rango de fechas y pida la descarga; el portal entrega un ZIP que puede soltar aquí sin desempacar.
¿Le falló un archivo? ¿Falta un formato?
Si un XML suyo no se leyó bien, si necesita una columna que no está o si usa un formato que todavía no reconocemos, escríbanos. Un archivo de ejemplo —aunque venga con los datos cambiados— es lo que más ayuda a corregirlo rápido.
hola@abrexml.com