Ir al contenido
AbreXMLFacturación electrónica a Excel
Sus archivos no salen de este equipo

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.

Está viendo tres documentos de ejemplo para que vea el resultado. Cargue sus propios archivos y estos desaparecen.
Documentos leídos, con emisor, receptor, fechas, totales e identificador fiscal
ArchivoOrigenTipoNúmeroFecha NIT / RUC / RFC emisorEmisorIdentificación receptorReceptor Mon.SubtotalDescuentoImpuestosRetencionesTotal 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:

DatoElemento del XML
Consecutivocbc:ID
CUFEcbc:UUID con schemeName="CUFE-SHA384"
Fecha de emisióncbc:IssueDate
NIT y razón social del emisorcac:AccountingSupplierParty
NIT y razón social del adquirientecac:AccountingCustomerParty
Monedacbc:DocumentCurrencyCode
Base gravablecbc:LineExtensionAmount
Descuentoscbc:AllowanceTotalAmount
IVA e impuestoscac:TaxTotal / cbc:TaxAmount
Retencionescac:WithholdingTaxTotal
Total a pagarcbc:PayableAmount
Detalle por renglóncac: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

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ó.

Preguntas 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