Skip to content

Códigos DGI

Cuando enviás un CFE, DGI responde con un código numérico y un mensaje. Estos son los códigos más comunes:

CódigoEstadoDescripción
00✅ AceptadoEl comprobante fue aceptado sin observaciones
01⚠️ Aceptado con obs.Aceptado pero con observaciones informativas — el CFE es válido
05❌ RechazadoEl comprobante fue rechazado — revisar el campo Mensaje
06❌ Sin habilitaciónRUT emisor no habilitado como emisor electrónico en DGI
09❌ CAE inválidoCAE inválido, vencido, o número de comprobante fuera del rango
11❌ Error de firmaLa firma digital es inválida o el certificado no está reconocido
12❌ XML inválidoEl XML del CFE no cumple el esquema DGI
99❌ Error servidorError interno del servidor DGI — reintentar después

var respuesta = await client.EnviarCfeAsync(cfe);
// Verificación simple
if (respuesta.Exitoso) // true si código es "00" (aceptado) o "01" (aceptado con observaciones)
{
Console.WriteLine("CFE aceptado ✅");
}
// Manejo detallado por código
switch (respuesta.Codigo)
{
case "00":
// Aceptado limpio — continuar normalmente
break;
case "01":
// Aceptado con observaciones — el CFE es válido pero loguear
logger.LogWarning("CFE aceptado con obs: {Mensaje}", respuesta.Mensaje);
break;
case "05":
// Rechazado — investigar el motivo en respuesta.Mensaje
throw new DgiRechazoException(respuesta.Mensaje);
case "09":
// CAE inválido — verificar CAE y numeración
throw new CaeInvalidoException($"CAE inválido: {respuesta.Mensaje}");
case "11":
// Error de firma — verificar certificado
throw new FirmaException($"Firma inválida: {respuesta.Mensaje}");
case "99":
// Error servidor DGI — reintentar con backoff
await Task.Delay(TimeSpan.FromSeconds(30));
respuesta = await client.EnviarCfeAsync(cfe);
break;
default:
logger.LogError("Código DGI desconocido [{Codigo}]: {Mensaje}",
respuesta.Codigo, respuesta.Mensaje);
break;
}

Al consultar el estado de un CFE previamente enviado:

CódigoSignificado
00CFE aceptado y registrado
01CFE aceptado con observaciones
05CFE rechazado
10CFE no encontrado en los sistemas DGI

Para la lista completa y actualizada de códigos de error, consultar: