Login Registre-se
cDV na chave de acesso  XML
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Autor Mensagem
tantam

JavaC Membro
[Avatar]

Membro desde: 05/05/2018 20:38:49
Mensagens: 16
Offline

Boa noite pessoal, estou criando um xml para a nota fiscal e estou tendo um problema para montar a chave de acesso, o problema esta no dígito verificador, sempre que tento validar o xml pelo site http://validadornfe.tecnospeed.com.br/ ele me retorna o seguinte erro:

Rejeição[502]: Erro na Chave de Acesso - Campo Id não corresponde à concatenação dos campos correspondentes.
Rejeição[253]: Digito Verificador da chave de acesso composta inválida.
Rejeição[236]: Chave de Acesso com dígito verificador inválido.

todos referentes ao cDV, já fiz os cálculos do dígito no braço para ver se esta correto, e pelo que eu entendi esta, segue o meu xml:

Alguém pode me dar alguma dica?

<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
<infNFe Id="NFe11180565508515000142550010000000011649955536" versao="3.10">
<ide>
<cUF>11</cUF>
<cNF>64995553</cNF>
<natOp>venda</natOp>
<indPag>0</indPag>
<mod>55</mod>
<serie>1</serie>
<nNF>1</nNF>
<dhEmi>2018-05-03T08:10:00-04:00</dhEmi>
<dhSaiEnt>2018-05-03T08:10:00-04:00</dhSaiEnt>
<tpNF>1</tpNF>
<idDest>1</idDest>
<cMunFG>1101500</cMunFG>
<tpImp>1</tpImp>
<tpEmis>1</tpEmis>
<cDV>6</cDV>
<tpAmb>2</tpAmb>
<finNFe>1</finNFe>
<indFinal>0</indFinal>
<indPres>1</indPres>
<procEmi>0</procEmi>
<verProc>0.0.1</verProc>
</ide>
<emit>
<CNPJ>65508515000142</CNPJ>
<xNome>O Sorvetão</xNome>
<xFant>O Sorvetão</xFant>
<enderEmit>
<xLgr>Av: Integração Nacional</xLgr>
<nro>725</nro>
<xCpl>Sorveteria O Sorvetão</xCpl>
<xBairro>Centro</xBairro>
<cMun>1101500</cMun>
<xMun>Seringueiras</xMun>
<UF>RO</UF>
<CEP>78958600</CEP>
<cPais>1058</cPais>
<xPais>Brasil</xPais>
</enderEmit>
<IE>ISENTO</IE>
<CRT>1</CRT>
</emit>
<dest>
<CPF>01550582232</CPF>
<xNome>João Rafael Mendes Nogueira</xNome>
<enderDest>
<xLgr>av: integração nacional</xLgr>
<nro>725</nro>
<xCpl>O Sorvetão</xCpl>
<xBairro>Centro</xBairro>
<cMun>1101500</cMun>
<xMun>Seringueiras</xMun>
<UF>RO</UF>
<CEP>75934000</CEP>
<cPais>1058</cPais>
<xPais>Brasil</xPais>
<fone>684442467</fone>
</enderDest>
<indIEDest>2</indIEDest>
</dest>
<det nItem="1">
<prod>
<cProd>9</cProd>
<cEAN></cEAN>
<xProd>teste 1</xProd>
<NCM>12345678</NCM>
<CFOP>5102</CFOP>
<uCom>uni</uCom>
<qCom>20</qCom>
<vUnCom>6.5</vUnCom>
<vProd>130.00</vProd>
<cEANTrib></cEANTrib>
<uTrib>uni</uTrib>
<qTrib>20</qTrib>
<vUnTrib>6.5</vUnTrib>
<indTot>1</indTot>
</prod>
<imposto>
<ICMS>
<ICMS00>
<orig>0</orig>
<CST>00</CST>
<modBC>3</modBC>
<vBC>130.00</vBC>
<pICMS>5.00</pICMS>
<vICMS>6.50</vICMS>
</ICMS00>
</ICMS>
<PIS>
<PISAliq>
<CST>01</CST>
<vBC>130.00</vBC>
<pPIS>3.00</pPIS>
<vPIS>3.90</vPIS>
</PISAliq>
</PIS>
<COFINS>
<COFINSAliq>
<CST>01</CST>
<vBC>130.00</vBC>
<pCOFINS>12.00</pCOFINS>
<vCOFINS>15.60</vCOFINS>
</COFINSAliq>
</COFINS>
</imposto>
</det>
<total>
<ICMSTot>
<vBC>130.00</vBC>
<vICMS>6.50</vICMS>
<vICMSDeson>0.00</vICMSDeson>
<vBCST>0.00</vBCST>
<vST>0.00</vST>
<vProd>130.00</vProd>
<vFrete>0.00</vFrete>
<vSeg>0.00</vSeg>
<vDesc>0.00</vDesc>
<vII>0.00</vII>
<vIPI>0.00</vIPI>
<vPIS>3.90</vPIS>
<vCOFINS>15.60</vCOFINS>
<vOutro>0.00</vOutro>
<vNF>130.00</vNF>
</ICMSTot>
</total>
<transp>
<modFrete>9</modFrete>
</transp>
</infNFe>
</NFe>
robertop

JavaC Membro

Membro desde: 10/07/2013 20:08:36
Mensagens: 300
Offline

Boa noite!
Em um teste que fiz com os 43 digitos da tua chave ele deu 0 no digito.
Tenta gerar o digito com este código abaixo.

tantam

JavaC Membro
[Avatar]

Membro desde: 05/05/2018 20:38:49
Mensagens: 16
Offline

Uauuu Robertop vlw, era isso msmo, vou procurar o problema na minha função que esta retornando o dígito verificador errado, muito obrigado mesmo!
tantam

JavaC Membro
[Avatar]

Membro desde: 05/05/2018 20:38:49
Mensagens: 16
Offline

Gostaria de tirar uma duvida referente ao seu código, nesta linha vc verifica se o resto é igual a zero ou um e retorna zero caso uma das condições sejá verdadeira, no caso o dígito verificador não pode ser 1?

return (resto == 0 || resto == 1) ? 0 : (11 - resto);
robertop

JavaC Membro

Membro desde: 10/07/2013 20:08:36
Mensagens: 300
Offline

Bom dia!

Veja a página 132 do manual da NF-e. Ali ele diz "Quando o resto da divisão for 0 (zero) ou 1 (um), o DV deverá ser igual a 0 (zero)."

http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=URCYvjVMIzI=

Abraço!
tantam

JavaC Membro
[Avatar]

Membro desde: 05/05/2018 20:38:49
Mensagens: 16
Offline

Você tem toda razão, muito obrigado por tudo!
 
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Ir para:   
Powered by JForum 2.1.9 © JForum Team