API sencilla para interactuar con el servicio de descarga masiva mediante CIEC de CSFacturación en C#.
Install descarga_ciec_csharp using Package Manager
NuGet\Install-Package descarga-ciec-csharp
Install descarga_ciec_csharp using .NET CLI
dotnet add package descarga-ciec-csharp
DescargaCIEC descargaCIEC = new DescargaCIEC();
ConsultaParametrosBuilder parametrosBuilder = new ConsultaParametrosBuilder();
// credenciales empresa ante el SAT
Credenciales credenciales = new Credenciales("rfcEmpresa", "credencial_SAT");
// credenciales de contratacion CSFacturacion
User user = new User("rfcContratacion", "password");
// construir parametros de consulta con ParametrosBuilder
parametrosBuilder.setCredecialesContratacion(user);
parametrosBuilder.setCredecialesSAT(credenciales);
parametrosBuilder.setFechaInicio(new DateTime(2024, 2, 1));
parametrosBuilder.setFechaFin(new DateTime(2024, 3, 3));
parametrosBuilder.setMovimiento(descarga_ciec_sdk.src.Enums.Movimiento.TODAS);
parametrosBuilder.setFiltroEstatusCFDI(descarga_ciec_sdk.src.Enums.EstatusCFDI.TODOS);
parametrosBuilder.setTipoDocumento(descarga_ciec_sdk.src.Enums.TipoDocumento.CFDI);
//Parametros
ConsultaParametros parametrosConsulta = new ConsultaParametros(parametrosBuilder);
//Solicitar la consulta de descarga
var folioConsulta = descargaCIEC.SolicitarConsulta(parametrosConsulta);
Despues de solicitar la descarga se puede obtener el estatus y el total encontrado usando el folio de la consulta
var progreso = descargaCIEC.GetProgreso(folioConsulta);
while (!progreso.IsCompletado())
{
// Espera hasta que se termine osea completado
Console.WriteLine($"Estatus : {progreso.GetStatus()} ");
Console.WriteLine($"Total XMLs : {progreso.GetEncontrado()}");
}
Se puede obtener el resumen de la consulta siempre y cuando este completado (con error o sin error) usando el folio de la consulta
//Resumen
var resumen = descargaCIEC.GetSummary(folioConsulta);
Console.WriteLine($"Total XMLs: {resumen.total}");
Console.WriteLine($"Total Paginas: {resumen.paginas}");
Console.WriteLine($"Hay XMLs Faltantes: {resumen.xmlFaltantes}");
Console.WriteLine($"Hay XMLs con fechasMismoHorario: {resumen.fechasMismoHorario.Count}");
Console.WriteLine($"Total XMLs Cancelados: {resumen.cancelados}");
Para la obtención de los resultados usa los siguientes metodos usando el folio de la consulta. 1-Mediante paginas (Metadata) 2-Zip 3-Lista metadata
//Para obtener resultado mediante paginas
// El uno (1) es el numero de pagina
var metadata = descargaCIEC.GetResultado(folioConsulta, 1);
// Usando el resumen
for (int i = 1; i < descargaCIEC.GetSummary(folioConsulta).paginas; i++)
{
var resultadosCFDI = descargaCIEC.GetResultado(folioConsulta, i);
foreach (var meta in resultadosCFDI)
{
// Metadata XML
Console.WriteLine($"Metadata UUID: { meta.folio}");
}
}
//Para obtener el de los XMLs mediante paginas
//Hay que tener en cuenta que se debe pasar la runta de la carpeta donde se guardara el ZIP
var path = descargaCIEC.DescargaZIP(folioConsulta, "RutaZip");
//Para obtener la lista de metadata
var listaMetada = descargaCIEC.GetListMetadata(folioConsulta);
//Descargar ZIP y descomprimirlo usando el folio de la consulta
var path = descargaCIEC.DescargarAndDescomprimirZIP(folioConsulta, "RutaZip");
- 500 Mismo Segundo:
- XMLs Faltantes
- Limite de descargas