BAIXAR XML SEFAZ POR DATAS

MORCELI 27/03/2024 01:55:04
#503230
Alterado em 27/03/2024 01:57:40 Olá pessoal,

Estou trabalhando em um projeto onde preciso baixar os XMLs das notas fiscais eletrônicas (NF-e) faturadas em um determinado dia, em vez de baixar individualmente por chave de acesso, como já faço atualmente.
Atualmente, estou utilizando um layout de requisição SOAP para baixar o XML por chave de acesso, e isso está funcionando corretamente usando um certificado A4 armazenado na máquina local do cliente. No entanto, percebi que a Receita Federal permite baixar em lote até 600 XMLs por hora.
Gostaria de saber como posso adaptar meu código para baixar todos os XMLs faturados pela empresa em um determinado dia, utilizando o CNPJ da empresa para identificar as notas fiscais relacionadas.
Aqui está o exemplo do layout de requisição SOAP que estou utilizando atualmente para baixar por chave de acesso:

Aqui funciona corretamente, consigo baixar o XML por chave da DANFE:

using (var handler = new HttpClientHandler())
using (var client = new HttpClient(handler))
{
handler.ClientCertificates.Add(certificate);
string url = "https://www1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx";
string xmlRequest = $@"<?xml version=""1.0"" encoding=""utf-8""?>
<soap:Envelope xmlns:soap=""http://www.w3.org/2003/05/soap-envelope"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">
<soap:Body>
<nfeDistDFeInteresse xmlns=""http://www.portalfiscal.inf.br/nfe/wsdl/NFeDistribuicaoDFe"">
<nfeDadosMsg>
<distDFeInt xmlns=""http://www.portalfiscal.inf.br/nfe"" versao=""1.01"">
<tpAmb>1</tpAmb>
<cUFAutor>35</cUFAutor>
<CNPJ>00000000000000</CNPJ>
<consChNFe>
<chNFe>{chave}</chNFe>
</consChNFe>
</distDFeInt>
</nfeDadosMsg>
</nfeDistDFeInteresse>
</soap:Body>
</soap:Envelope>";

Recentemente, tentei baixar os XMLs das notas fiscais eletrônicas (NF-e) seguindo o layout fornecido abaixo, porém sem sucesso. Recebi uma resposta da Fazenda indicando que houve uma falha no esquema XML.
Alguém poderia me ajudar a identificar o problema e encontrar uma solução? Estou tentando baixar os XMLs das NF-e e gostaria de entender o que pode estar causando essa falha no esquema XML, como sou novo nesse assunto preciso de ajudar de vocês.

215Rejeicao: Falha no esquema xml2024-03-27T01:42:51-03:00000000000000000000000000000000

Aqui está a lógica e o layout que estou utilizando:

DateTime dataConsulta = DateTime.Today.AddDays(-1);

string xmlRequest = "<?xml version=""1.0"" encoding=""utf-8""?>
<soap:Envelope xmlns:soap=""http://www.w3.org/2003/05/soap-envelope"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">
<soap:Body>
<nfeDistDFeInteresse xmlns=""http://www.portalfiscal.inf.br/nfe/wsdl/NFeDistribuicaoDFe"">
<nfeDadosMsg>
<distDFeInt xmlns=""http://www.portalfiscal.inf.br/nfe"" versao=""1.01"">
<tpAmb>1</tpAmb>
<cUFAutor>35</cUFAutor>
<CNPJ>0000000000000</CNPJ>
<consNFeDest>
<xServ>DISTRIBUIR</xServ>
<tpAmb>1</tpAmb>
<CNPJ>0000000000000</CNPJ>
<indNFe>1</indNFe>
<ultNSU>0</ultNSU>
<dhEmiInicial>{dataConsulta:yyyy-MM-dd}T00:00:00-03:00</dhEmiInicial>
<dhEmiFinal>{dataConsulta:yyyy-MM-dd}T23:59:59-03:00</dhEmiFinal>
</consNFeDest>
</distDFeInt>
</nfeDadosMsg>
</nfeDistDFeInteresse>
</soap:Body>
</soap:Envelope>";

var content = new StringContent(xmlRequest, Encoding.UTF8, "text/xml");
var response = await client.PostAsync(url, content);
var responseContent = await response.Content.ReadAsStringAsync();

if (response.IsSuccessStatusCode)
{
var result = ExtrairXml(responseContent);
notaFiscal = XmlHelper.Deserialize(result);
string filePath = Path.Combine(_Path.PathXmlDoc, $"{notaFiscal.protNFe.InfProt.chaveNFe}.xml");
SalvarArquivoXml(filePath, result);
return (notaFiscal, "XMLs retornados com sucesso!", "success");
}
else
{
return (notaFiscal, "Não foi possível baixar os XMLs das notas fiscais faturadas no dia.", "error");
}
Faça seu login para responder