Saltar al contenido principal

Extraer los CUFE de un reporte de la DIAN

El método ParseDianReport recibe, codificado en Base64, el reporte Excel de documentos que se descarga del portal de la DIAN y devuelve la lista de CUFE encontrados, con información complementaria de cada documento (número, fecha, NIT y razón social del emisor) cuando el reporte la incluye.

Es el primer paso para descargar los XML de los documentos: con los CUFE obtenidos puedes llamar a GetXmlByCufe.

POST https://micro.conexusit.com/corp/demo/api/Service.svc/ParseDianReport

Endpoint​

DatoValor
Método HTTPPOST
OperaciónParseDianReport

Parámetros de entrada​

La autenticación se hace con el campo GuidSistemaIntegrado del cuerpo de la solicitud; no se requiere token ni API Key en los encabezados. El GUID lo entrega Conexus IT al registrar el sistema integrado.

ParámetroTipoObligatorioDescripción
ExcelBase64stringSíContenido del archivo Excel (.xlsx) codificado en Base64. Es el reporte de documentos descargado del portal de la DIAN.
GuidSistemaIntegradostringSíGUID del sistema integrado registrado en Colfact.

Encabezado requerido: Content-Type: application/json.

Cómo obtener el Excel en Base64​

  1. Descarga el reporte de documentos desde el portal de la DIAN (https://catalogo-vpfe.dian.gov.co) en formato .xlsx.
  2. Codifica el archivo en Base64:
// C#
var bytes = File.ReadAllBytes("reporte_dian.xlsx");
var base64 = Convert.ToBase64String(bytes);
// Node.js
const base64 = fs.readFileSync("reporte_dian.xlsx").toString("base64");

// Navegador (FileReader)
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => {
const base64 = reader.result.split(",")[1];
};

Ejemplo de solicitud​

{
"ExcelBase64": "UEsDBBQAAAAIAA...",
"GuidSistemaIntegrado": "3408859dc7cc426991edcb70220bbfb6"
}

Estructura de la respuesta​

Ejemplo de respuesta exitosa (200 OK)​

{
"ParseDianReportResult": {
"TotalEncontrados": 3,
"Errores": [],
"Cufes": [
{
"Cufe": "<CUFE de 96 caracteres>",
"TipoDocumento": "FAC",
"NumeroDocumento": "PREF-000123",
"NitEmisor": "900123456",
"RazonSocial": "Empresa Ejemplo SAS",
"FechaEmision": "2026-06-15T00:00:00",
"Grupo": "Emitido"
}
]
}
}

Campos de la respuesta​

CampoTipoDescripción
TotalEncontradosintNúmero total de CUFE extraídos del reporte.
Erroresstring[]Filas que no pudieron procesarse, con el motivo del error. Vacía si todo fue exitoso.
CufesarrayLista de documentos encontrados.
Cufes[].CufestringCUFE o CUNE del documento. Mínimo 32 caracteres.
Cufes[].TipoDocumentostringTipo de documento (FAC, NC, ND, NE, etc.). Puede ser null si el reporte no incluye esta columna.
Cufes[].NumeroDocumentostringNúmero o prefijo del documento. Puede ser null.
Cufes[].NitEmisorstringNIT del emisor del documento. Puede ser null.
Cufes[].RazonSocialstringRazón social del emisor. Puede ser null.
Cufes[].FechaEmisiondatetimeFecha de emisión del documento. Puede ser null.
Cufes[].GrupostringGrupo del documento según la clasificación de la DIAN (por ejemplo, Emitido o Recibido). Puede ser null.

Respuestas de error​

Código HTTPCausaEjemplo de respuesta
400 Bad RequestExcelBase64 falta o no es válido, o GuidSistemaIntegrado está vacío.{"ParseDianReportResult": {"Error": "ExcelBase64 es requerido."}}
401 UnauthorizedGuidSistemaIntegrado no está registrado en el sistema.{"ParseDianReportResult": {"Error": "Sistema integrado '<guid>' no encontrado."}}

Flujo de integración recomendado​

Para descargar los XML de los documentos de un reporte de la DIAN:

PasoAcciónMétodo
1El usuario descarga el reporte de documentos desde el portal de la DIAN (.xlsx).Portal DIAN (externo)
2El sistema convierte el archivo a Base64 y llama a ParseDianReport.POST /ParseDianReport
3El sistema recibe la lista de CUFE con la información de cada documento.—
4Para cada CUFE de interés, el sistema llama a GetXmlByCufe.GET /GetXmlByCufe/{cufe}
5El sistema recibe el XML firmado, lo decodifica y lo almacena o procesa.—

Consideraciones importantes​

  • Revisa la lista Errores: un reporte puede procesarse parcialmente y devolver CUFE junto con filas que no se pudieron leer.
  • Procesa los CUFE de forma secuencial, no en paralelo masivo: cada llamada a GetXmlByCufe consulta la DIAN en tiempo real y un volumen alto de consultas simultáneas puede generar tiempos de respuesta elevados o rechazos por límite de peticiones.
  • Las consultas a GetXmlByCufe pueden tardar entre 2 y 15 segundos; configura un timeout mínimo de 30 segundos en el cliente HTTP.