Como resolver a Rejeição 1206 - Assinatura Digital do RPS incorreta?

De CIGAM WIKI

FAQ_CIGAM > FAQ_Fiscal > Gestão Fiscal Municipal > Como resolver a Rejeição 1206 - Assinatura Digital do RPS incorreta?


Quando a Prefeitura exigir a geração de um código HASH no XML de envio da Nota Fiscal de Serviços, e os dados da assinatura Hash estiverem divergentes das informações do XML, irá ocorrer a Rejeição 1206 - Assinatura Digital do RPS incorreta.

Para correção desta rejeição devemos verificar na documentação da Prefeitura quais são os campos que compõem a chave Hash. Neste exemplo vamos abordar a geração da chave Hash da prefeitura de São Paulo.

Layout Geração Código Hash
# Informação Conteudo
1 Inscrição Municipal do Prestador Inscrição Municipal do Prestador com 8 posições (dígitos). Completar com zeros à esquerda caso seja necessário.
2 Série do RPS Série do RPS com 5 posições (caracteres). Completar com espaços em branco à direita caso seja necessário.
Atenção: Não utilize espaços à esquerda. O conteúdo deverá estar alinhado a esquerda.
3 Número do RPS Número do RPS com 12 posições (dígitos). Completar com zeros à esquerda caso seja necessário.
4 Data de Emissão do RPS Data de emissão do RPS no formato AAAAMMDD (caracteres).
5 Tipo de Tributação do RPS Tipo de Tributação do RPS com 1 posição (caractere):
a) NFS-e emitidas até 22/02/2015
T – Tributação no municipio de São Paulo;
F – Tributação fora do municipio de São Paulo;
I – Isento;
J – ISS Suspenso por Decisão Judicial.
a) NFS-e emitidas a partir 23/02/2015
T – Tributado em São Paulo
F – Tributado Fora de São Paulo
A – Tributado em São Paulo, porém Isento
B – Tributado Fora de São Paulo, porém Isento
M – Tributado em São Paulo, porém Imune
N – Tributado Fora de São Paulo, porém Imune
X – Tributado em São Paulo, porém Exigibilidade Suspensa
V – Tributado Fora de São Paulo, porém Exigibilidade Suspensa
P – Exportação de Serviços
6 Status do RPS Status do RPS com 1 posição (caractere):
N – Normal;
C – Cancelado.
7 ISS Retido Valor ‘S’ (SIM) para ISS Retido (caractere).
Valor ‘N’ (NÃO) para Nota Fiscal sem ISS Retido.
8 Valor dos Serviços Valor dos Serviços do RPS, incluindo os centavos (sem ponto decimal e sem R$), com 15 posições (dígitos). Exemplo:
R$ 500,85 – 000000000050085
R$ 500,00 – 000000000050000
9 Valor das Deduções Valor das Deduções do RPS, incluindo os centavos (sem ponto decimal e sem R$), com 15 posições (dígitos). Exemplo:
R$ 500,85 – 000000000050085
R$ 500,00 – 000000000050000
10 Código do Serviço Prestado Código do Serviço do RPS com 5 posições (dígitos). Completar com zeros à esquerda caso seja necessário.
11 Indicador de CPF/CNPJ do Tomador Indicador de CPF/CNPJ com 1 posição (dígito).
Valor 1 para CPF.
Valor 2 para CNPJ.
Valor 3 para Não informado
12 CPF/CNPJ do Tomador CPF/CNPJ do tomador com 14 posições (dígitos). Sem formatação (ponto, traço, barra, ....). Completar com zeros à esquerda caso seja necessário. Se o Indicador do CPF/CNPJ for 3 (não informado), preencher com 14 zeros.
13 Indicador de CPF/CNPJ do Intermediário Indicador de CPF/CNPJ com 1 posição (dígito).
Valor 1 para CPF.
Valor 2 para CNPJ.
Valor 3 para Não informado o CPF/CNPJ do Intermediário
14 CPF/CNPJ do Intermediário CPF/CNPJ do intermediário com 14 posições (dígitos). Sem formatação (ponto, traço, barra,....). Completar com zeros à esquerda caso seja necessário. Se o Indicador do CPF/CNPJ for 3 (não informado), preencher com 14 zeros
15 ISS Retido Intermediário Valor ‘S’ (SIM) para ISS Retido pelo Intermediário
Valor ‘N’ (NÃO) para ISS não retido pelo Intermediário

O CIGAM disponibiliza as seguintes variáveis para impressão do HASH no arquivo XML:

<!$MG_ag_assinatura>
<!$MG_ag_assinatura2>
<!$MG_ag_assinatura3>
<!$MG_ag_assinatura4>
<!$MG_ag_assinatura6>
<!$MG_ag_assinatura7>
<!$MG_ag_assinatura8>
<!$MG_ag_assinatura9>

Para identificar quais são as informações geradas no código HASH, devemos verificar qual a variável está sendo utilizada no modelo de envio da Nota Fiscal. Neste exemplo estamos utilizando a variável <!$MG_ag_assinatura9>.

VariavelChaveHash.png

Devemos então gerar um LOG do processo de Envio da Nota Fiscal para a Prefeitura. E dentro do LOG pesquisamos pela expressão USER Message >>, seguida pela numeração final utilizada na variável (neste caso 9), ficando a pesquisa desta forma USER Message >> 9 na TASK @Gera Hash SHA-1.

PesquisaVariavelChaveHash.png

Temos então o código HASH legível para comparar com os dados gerados no XML, conforme Layout especificado pela prefeitura. Neste contexto podemos ler o código HASH da seguinte forma:

IdentificacaoChaveHash.png

Comparamos cada campo da chave HASH com a respectiva TAG no XML de Envio.

DadosXMLEnvio.png

Todas as informações devem ser correspondentes, caso alguma informação não seja, deverá ser revisada a respectiva variável utilizada no modelo.

Neste exemplo podemos observar que a TAG <CodigoServico> do XML está com a informação 1401, porém o código HASH está sendo gerado com a informação 1604, causando a rejeição. Devemos ajustar a variável informada no modelo de envio conforme informações presentes na FAQ Relacionada (link no final desta página).

Ou mesmo poderá ser utilizada outra variável HASH, caso as informações sejam correspondentes. Para isso poderá ser consultado no LOG a geração de cada variável seguindo a lógica aplicada acima (expressão USER Message >>, seguida pela numeração final utilizada na variável).

Exemplo:

  • Variável <!$MG_ag_assinatura>
Hash gerado no LOG:
Hash.png
  • Variável <!$MG_ag_assinatura2>
Hash gerado no LOG:
Hash2.png
  • Variável <!$MG_ag_assinatura3>
Hash gerado no LOG:
Hash3.png
  • Variável <!$MG_ag_assinatura4>
Hash gerado no LOG:
Hash4.png
  • Variável <!$MG_ag_assinatura6>
Hash gerado no LOG:
Hash6.png
  • Variável <!$MG_ag_assinatura7>
Hash gerado no LOG:
Hash7.png
  • Variável <!$MG_ag_assinatura8>
Hash gerado no LOG:
Hash8.png
  • Variável <!$MG_ag_assinatura9>
Hash gerado no LOG:
Hash9.png

Observação:'

Avaliar também o Cadastro do Material, pois o "Tipo" do Material deve estar parametrizado como "Serviço".

FAQs Relacionadas