502-Erro na Chave de Acesso - Campo Id não corresponde à concatenação dos campos correspondentes

965 views
Skip to first unread message

Alexandre Souza

unread,
Apr 16, 2015, 12:06:38 PM4/16/15
to nfe...@googlegroups.com
Boa tarde,
Já olhei em outros tópicos e mesmo assim não encontrei o erro.
Comparei o ID com a Chave e está tudo certo(aparentemente), o XML é válido, O cDV também está validando.

-<protNFe versao="3.10">
-<infProt>
<tpAmb>1</tpAmb>
<verAplic>SP_NFE_PL_008f</verAplic>
<chNFe>35150410008036000263550020000004241305610343</chNFe>
<dhRecbto>2015-04-16T12:36:59-03:00</dhRecbto>
<cStat>502</cStat>
<xMotivo>Rejeição: Erro na Chave de Acesso - Campo Id não corresponde à concatenação dos campos correspondentes</xMotivo>
</infProt>
</protNFe>


Alguém pode me ajudar ?
Obrigado.

Roberto Machado

unread,
Apr 16, 2015, 12:16:57 PM4/16/15
to nfe...@googlegroups.com
A SEFAZ remonta a chave com os dados passados na tag IDE, para saber o que você fez de errado é necessário olhar o xml 

Roberto

Alexandre Souza

unread,
Apr 16, 2015, 1:22:53 PM4/16/15
to nfe...@googlegroups.com
Segue em anexo.
Obrigado.
35150410458436000263550020000004251812312758-nfe.xml

Edilson Belluomini

unread,
Apr 16, 2015, 1:43:06 PM4/16/15
to nfe...@googlegroups.com
Alexandre.

O ID da NFE : 35150410458436000263550020000004251812312758

A tag cNF é 00000009

O valor da tag cNF deveria ser o mesmo das posições de 35 a 43 do ID

Edilson Belluomini

unread,
Apr 16, 2015, 1:47:39 PM4/16/15
to nfe...@googlegroups.com
Retificando, deveria ser o mesmo das posições 36 a 43 (8 caracteres)

Alexandre Souza

unread,
Apr 16, 2015, 2:05:41 PM4/16/15
to nfe...@googlegroups.com
Ahh era isso mesmo. funcionou !

Obrigado.

Em quinta-feira, 16 de abril de 2015 13:06:38 UTC-3, Alexandre Souza escreveu:

Marceones Souza Silva

unread,
Apr 17, 2015, 2:47:22 PM4/17/15
to nfe...@googlegroups.com

boa tarde edilson você poderia dar uma olhada no meu xml pois está apresentando o mesmo problema do alexandre mas ja olhei e verifiquei e não consegui encontrar o erro da chave:

segue abaixo função para gerar a chave e anexo o xml

function chave($cNF2,$nNF2, $serie2,$cUF,$CNPJ,$modd,$TpEmis,$dEmi){

            $cNF2   = str_pad($cNF2, 8, '0',STR_PAD_LEFT);
            $nNF2   = str_pad($nNF2, 9, '0',STR_PAD_LEFT);
            $serie2 = str_pad($serie2, 3, '0',STR_PAD_LEFT);
            $aamm = substr($dEmi,2,2) . substr($dEmi,5,2);

            //monta chave sem digito
           $idd = $cUF . $aamm . $CNPJ . $modd . $serie2 . $nNF2 . $TpEmis . $cNF2;

            //cancula o digito verificador
            $multiplicadores = array(2,3,4,5,6,7,8,9);
            $i = 43;
            while ($i >= 0) {
                for ($m=0; $m<count($multiplicadores) && $i>=0; $m++) {
                    $soma_ponderada+= $idd[$i] * $multiplicadores[$m];
                    $i--;
                }
            }
            $resto = $soma_ponderada % 11;
           
   if ($resto == '0' || $resto == '1') {
                $cDV = 0;
                $idd = $idd . 0;
            } else {
                $cDV = (11 - $resto);
                $idd = $idd . (11 - $resto);
            }
return $idd;
        }
21150407909208000177550010000002501000061819-nfe.xml

Guilherme Calabria Filho

unread,
Apr 17, 2015, 2:50:35 PM4/17/15
to NFePHP
Eu recomendo o uso da função do nfephp (develop) assim seu sistema não terá que se preocupar com isso:

$MakeNFe = new NFe\MakeNFe();
$MakeNFe->montaChave($cUF, $ano, $mes, $cnpj, $mod, $serie, $nNF, $tpEmis,$codigo);

que fazem
    public static function buildKey($cUF, $ano, $mes, $cnpj, $mod, $serie, $numero, $tpEmis, $codigo = '')
    {
        if ($codigo == '') {
            $codigo = $numero;
        }
        $forma = "%02d%02d%02d%s%02d%03d%09d%01d%08d";
        $chave = sprintf(
            $forma,
            $cUF,
            $ano,
            $mes,
            $cnpj,
            $mod,
            $serie,
            $numero,
            $tpEmis,
            $codigo
        );
        return $chave.self::calculaDV($chave);
    }

        $multiplicadores = array(2, 3, 4, 5, 6, 7, 8, 9);
        $iCount = 42;
        $somaPonderada = 0;
        while ($iCount >= 0) {
            for ($mCount = 0; $mCount < count($multiplicadores) && $iCount >= 0; $mCount++) {
                $num = (int) substr($chave43, $iCount, 1);
                $peso = (int) $multiplicadores[$mCount];
                $somaPonderada += $num * $peso;
                $iCount--;
            }
        }
        $resto = $somaPonderada % 11;
        if ($resto == '0' || $resto == '1') {
            $cDV = 0;
        } else {
            $cDV = 11 - $resto;
        }
        return (string) $cDV;

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com
Para Sair do Grupo: nfephp+un...@googlegroups.com
Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositório: https://github.com/nfephp-org/nfephp
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+un...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Marceones Souza Silva

unread,
Apr 17, 2015, 2:59:35 PM4/17/15
to nfe...@googlegroups.com
EU BAIXEI O PACOTE DEVOLOP MAS NÃO ENCONTREI ESTA FUNÇÃO! VOCÊ PODERIA ME PASSAR A CLASE MAKENFE

Guilherme Calabria Filho

unread,
Apr 17, 2015, 3:10:07 PM4/17/15
to NFePHP

Guilherme Calabria Filho

unread,
Apr 17, 2015, 3:11:02 PM4/17/15
to NFePHP

Marceones Souza Silva

unread,
Apr 17, 2015, 3:35:29 PM4/17/15
to nfe...@googlegroups.com
opa guilherme fiz as modificações conforme me passou o link da classe que gera a chave certo, agora apresentou este problema:

The 'Id' attribute is invalid - The value 'NFe2120150407909208000177550010000029631000002506' is invalid according to its datatype 'Id' - The Pattern constraint failed.
Caminho: Id
Reply all
Reply to author
Forward
0 new messages