Closed rodsnjr closed 9 years ago
Vem no protocolo a chave da nota
Sim, sim, e como eu tiro das minhas NFEs a chave para comparação?
Pelo que eu achei, deveria ser o Id="NFe60139162043615970298703453485784420676030695", com o
Mas ambos estão diferentes.
O que eu queria, era após enviar o lote, saber qual NFE do Lote pertence a qual, para ir verificando as correções necessárias para cada uma.
Bom, o SEFAZ me enviou um XML
<retConsReciNFe versao="3.10"
xmlns="http://www.portalfiscal.inf.br/nfe">
<tpAmb>2</tpAmb>
<verAplic>RS201506180959</verAplic>
<nRec>431002165762632</nRec>
<cStat>104</cStat>
<dhRecbto>2015-06-22T17:49:17-03:00</dhRecbto>
<xMotivo>Lote processado</xMotivo>
<cUF>43</cUF>
<protNFe versao="3.10">
<infProt>
<tpAmb>2</tpAmb>
<verAplic>RS201506180959</verAplic>
<chNFe>43150622388878000189559990000000011187198618</chNFe>
<dhRecbto>2015-06-22T17:49:17-03:00</dhRecbto>
<digVal>qeLauFsjpyXlWjZXYL3gOepQa2I=</digVal>
<cStat>502</cStat>
<xMotivo>Rejeicao: Erro na Chave de Acesso - Campo ID nao corresponde
a concatenacao dos campos correspondentes</xMotivo>
</infProt>
</protNFe>
</retConsReciNFe>
Parece que a chave ID não está sendo gerada corretamente na minha NFE, no que ela vai pra o lote. A API já está fazendo isso automaticamente, os campos obrigatórios estão todos ok pelo que parece. O que pode estar errado no XML para isso estar ocorrendo ?
<enviNFe versao="3.10" xmlns="http://www.portalfiscal.inf.br/nfe">
<idLote>333972757970401</idLote>
<indSinc>0</indSinc>
<NFe>
<infNFe Id="NFe36443608795449268167835016557883704602133619"
versao="3.10">
<ide>
<cUF>43</cUF>
<cNF>18719861</cNF>
<natOp>TRANSFERENCIAS P/INDUSTRIALIZACAO, COMERCIALIZACAO E/OU PRES
</natOp>
<indPag>0</indPag>
<mod>55</mod>
<serie>999</serie>
<nNF>1</nNF>
<dhEmi>2015-06-22T17:49:05-03:00</dhEmi>
<dhSaiEnt>2015-06-22T17:49:04-03:00</dhSaiEnt>
<tpNF>1</tpNF>
<idDest>1</idDest>
<cMunFG>4317509</cMunFG>
<tpImp>2</tpImp>
<tpEmis>1</tpEmis>
<cDV>8</cDV>
<tpAmb>2</tpAmb>
<finNFe>1</finNFe>
<indFinal>1</indFinal>
<indPres>0</indPres>
<procEmi>0</procEmi>
<verProc>1</verProc>
<dhCont>2014-10-10T10:10:10-03:00</dhCont>
<xJust>oMyrJeGBvOtH9b6BOera4qc5xBmTVl0qbik0KReFoH5v</xJust>
</ide>
<emit>
<CNPJ>22388878000189</CNPJ>
<xNome>BIG RIVER TECHNOLOGIES</xNome>
<xFant>BIG RIVER TECHNOLOGIES</xFant>
<enderEmit>
<xLgr>rrrrr</xLgr>
<nro>3333</nro>
<xCpl>rrrr</xCpl>
<xBairro>Centro</xBairro>
<cMun>4317509</cMun>
<xMun>Santo Angelo</xMun>
<UF>RS</UF>
<CEP>98801650</CEP>
<cPais>1058</cPais>
<xPais>BRASIL</xPais>
</enderEmit>
<IE>1234567</IE>
<IM>1234567</IM>
<CNAE>1234567</CNAE>
<CRT>1</CRT>
</emit>
<dest>
<CPF>02479027058</CPF>
<xNome>NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL
</xNome>
<indIEDest>9</indIEDest>
<email>rodsnjr@gmail.com</email>
</dest>
<det nItem="1">
<prod>
<cProd>2</cProd>
<cEAN>36811963532505</cEAN>
<xProd>AMORTECEDOR GOL</xProd>
<NCM>87088000</NCM>
<CFOP>5403</CFOP>
<uCom>UND</uCom>
<qCom>1</qCom>
<vUnCom>13</vUnCom>
<vProd>13.00</vProd>
<cEANTrib>36811963532505</cEANTrib>
<uTrib>UND</uTrib>
<qTrib>1</qTrib>
<vUnTrib>13</vUnTrib>
<indTot>1</indTot>
</prod>
<imposto>
<ICMS>
<ICMSSN102>
<orig>1</orig>
<CSOSN>300</CSOSN>
</ICMSSN102>
</ICMS>
<PIS>
<PISOutr>
<CST>99</CST>
<vBC>1.00</vBC>
<pPIS>1.00</pPIS>
<vPIS>1.00</vPIS>
</PISOutr>
</PIS>
<COFINS>
<COFINSOutr>
<CST>99</CST>
<qBCProd>1</qBCProd>
<vAliqProd>1.0000</vAliqProd>
<vCOFINS>1.00</vCOFINS>
</COFINSOutr>
</COFINS>
</imposto>
</det>
<total>
<ICMSTot>
<vBC>1.00</vBC>
<vICMS>1.00</vICMS>
<vICMSDeson>1.00</vICMSDeson>
<vBCST>1.00</vBCST>
<vST>1.00</vST>
<vProd>1259.68</vProd>
<vFrete>1245.68</vFrete>
<vSeg>1.00</vSeg>
<vDesc>1.00</vDesc>
<vII>1.00</vII>
<vIPI>1.00</vIPI>
<vPIS>2.00</vPIS>
<vCOFINS>2.00</vCOFINS>
<vOutro>1.00</vOutro>
<vNF>1259.68</vNF>
</ICMSTot>
<ISSQNtot>
<dCompet>2015-06-22</dCompet>
<vDeducao>1.00</vDeducao>
</ISSQNtot>
</total>
<transp>
<modFrete>1</modFrete>
<transporta>
<CNPJ>66976049000192</CNPJ>
<xNome>TRANSPORTES SA</xNome>
<IE>080233880</IE>
</transporta>
</transp>
</infNFe>
</NFe>
</enviNFe>
Segue o XML da NFE.
Pelo que parece deveria estar igual a chave do protocolo : 43150622388878000189559990000000011187198618
No meu código estou gerando a NFE e salvando o XML dela no BD, depois na hora de emitir faço o parse do XML com o NotaParser, e vou adicionando elas ao lote.
Geração do Lote
final NFLoteEnvio loteEnvio = new NFLoteEnvio();
//TODO pegar um lote correto ...
loteEnvio.setIdLote("333972757970401");
loteEnvio.setVersao("3.10");
ArrayList<NFNota> notasFiscais = new ArrayList<>();
for (Nfe nfNota : lote.getLotes()) {
//System.out.println(nfNota.getOrigin());
//
notasFiscais.add(getNota(nfNota));
}
loteEnvio.setIndicadorProcessamento(NFLoteIndicadorProcessamento.PROCESSAMENTO_ASSINCRONO);
loteEnvio.setNotas(notasFiscais);
Parse do XML
public static NFNota getNota(Nfe nfe){
NFNota notaFiscal = new NotaParser().notaParaObjeto(nfe.getOrigin());
return notaFiscal;
}
Eu não sei em qual momento é gerado o ID da NFE, e se eu devo gerar em algum momento.
Vlw pelas ajudas ae, e desculpa o encomodo!
Olhando o xml, perceberá que protNFe é uma lista referente as notas enviadas,
<protNFe versao="3.10">
<infProt>
<tpAmb>2</tpAmb>
<verAplic>RS201505250908</verAplic>
<chNFe>43150622388878000189559990000000011133809248</chNFe>
Você consegue pegar a chave acessando retConsReciNFe -> protNFe[indice]-> infProt -> chNFe, a tag chNFe possui a sua chave... Então basta comparar com a NFe que você armazenou no envio (no Readme.md tem um subtopico que mostra como gerar os objetos de uma NFe através de arquivo/string)
Tem certeza disso? creio que você pesquisou por um lote errado, a tag Id="" contem a chave (sem o prefixo NFe),
Você pode pesquisar em ambiente de homologação sobre o status da NFe no site da receita:
http://hom.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=
Na documentação da Fazenda sobre NFe (contém no diretório /docs) da NFe 2.00 pg.91 explica como é formada a chave, verifique se a forma que você está gerando bate com aquelas informações
Valeu a ajuda! Eu tava gerando o valor ID errado, o algoritmo estava bem errado! Achei como fazer e ficou certo! Pode fechar o issue se assim desejar!
Fiquei com uma duvida bem simples, eu fiz o envio do Lote, ele foi processado corretamente.
Porém eu quero saber como eu posso identificar qual NFE pertence a qual Protocolo, pra poder corrigir todas elas corretamente.
Os XML ...