Chave de Comunicação Inválida

 

Olá! Neste artigo vamos apresentar algumas das principais causas do retorno 173 – Chave de Comunicação inválida, muito comum no início da integração, e que pode causar bastante dúvida no início dos testes de desenvolvimento.

Vamos lá! Antes de mais nada, devemos entender como funciona o processo de validação da chave de comunicação no InvoiCy. A essa altura, você já deve saber que é necessário gerar uma chave de comunicação MD5, com base na chave de acesso da empresa com o XML que está sendo enviado. Essa informação é informada no parâmetro “EmpCK” do WebService. Caso tenha dúvidas quanto a geração do MD5, consulte o respectivo artigo clicando aqui.

Quando ocorrer alguma falha na geração desta chave MD5, você receberá o retorno 173 – Chave de Comunicação Inválida. Abaixo seguem alguns dos problemas rotineiros na geração da chave, que geram este retorno:

  • Usar chave errada para geração do MD5. Conforme visto no artigo “Gerando o Código Hash no formato MD5”, é necessário utilizar a chave de acesso da empresa cadastrada no InvoiCy. Ao término do cadastro de uma empresa, é gerada a chave que deve ser usada neste processo. Para se certificar de que está utilizando a chave correta, acesse no InvoiCy o Painel de Controle > Dados da empresa, e clique sobre o botão “Chave de Acesso”. Esta é a chave que deve ser utilizada para geração do MD5.
  • Enviar palavras com acentuação gráfica ou caracteres especiais no XML do documento. Não é permitido o envio de caracteres especiais no XML.
  • Dupla conversão do XML para texto. Sabemos que no momento do envio de um documento ao WebService, os caracteres < e > do XML devem ser substituídos por &lt; e &gt; respectivamente. A maioria das ferramentas de desenvolvimento já realiza essa conversão de forma automática, não sendo necessário fazer a conversão manualmente. Porém, quando é realizada a conversão manual e a ferramenta também realiza essa conversão, ocorre a dupla conversão, o que irá causar erro no momento do envio da nota, e poderá causar também erro de chave de comunicação inválida.
  • Modificar informações no XML após geração do MD5. Não é permitido alterações no XML após geração do MD5. Em caso de qualquer alteração, deverá ser gerado novamente o MD5.
  • Problemas no método gerador de MD5 da ferramenta de desenvolvimento. Principalmente na linguagem DELPHI, costuma ocorrer falha no processo de geração do MD5. Para comparar um MD5 gerado pela aplicação com o MD5 correto, pode-se usar o seguinte site: http://www.miraclesalad.com/webtools/md5.php

Basta inserir a chave de acesso mais o XML (tudo junto e linearizado), e então verificar o MD5 gerado.

Exemplo de decodificação de base 64 para arquivo – Antigo

Última atualização em: 31 de março, 2016

 

Base64 é um método de codificação para transferência de arquivos. O InvoiCy faz uso desse método para retornar os arquivos XML e PDF via Web Service, no momento do envio, cancelamento, consulta, e demais requisições.

Você emissor ainda tem a possibilidade de escolher qual forma de retorno deseja receber, sendo que tanto para o arquivo XML como para PDF as opções são as seguintes: Base64, Link para download, Base64 e Link ou não retornar.

Ao escolher a opção ‘Link para download’ será retornado um link para efetuar o download do arquivo (XML e PDF), onde ao clicar no link será possível baixar e salvar os arquivos fisicamente para a sua máquina. Destacando que será permitido o download dos arquivos apenas se o documento já tenha sido persistido para a base de dados do InvoiCy.

Já ao optar pelo retorno em Base64, não será necessário efetuar download de nenhum arquivo. O próprio retorno do Web Service já irá conter o arquivo XML e PDF codificado para Base64, onde você emissor poderá copiar o conteúdo desse texto e decodificá-lo para gerar os arquivos PDF e XML. O retorno em Base64 não depende do processo de persistência do InvoiCy, onde mesmo sem estar persistido o documento será possível decodificar e visualizar o conteúdo do Base64 retornado.

Este é um exemplo de implementação em linguagem C# de decodificação de base64 para arquivo.

exemplo_decodificacao_base_64Exemplo de decodificação de base64 para arquivo

Entity Number

Última atualização em: 07 de janeiro, 2015

Olá, como mencionado em outros artigos disponível no Portal, o XML de sua NFS-e precisa ser convertido para texto, sendo assim abaixo possuímos a forma como você pode fazer a conversão e poder utilizar determinados caracteres. Veja abaixo:

      Reserved Characters in HTML

tabela_1
      ISO 8859-1 Symbols


      ISO 8859-1 Characters


      Math Symbols Supported by HTML


      Greek Letters Supported by HTML

Fonte: http://www.w3schools.com/charsets/ref_html_entities_4.asp

Exemplo de decodificação de base 64 para arquivo

Última atualização em: 31 de março, 2016

Base64 é um método de codificação para transferência de arquivos. O InvoiCy faz uso desse método para retornar os arquivos XML e PDF via Web Service, no momento do envio, cancelamento, consulta, e demais requisições.

Você emissor ainda tem a possibilidade de escolher qual forma de retorno deseja receber, sendo que tanto para o arquivo XML como para PDF as opções são as seguintes: Base64, Link para download, Base64 e Link ou não retornar.

Ao escolher a opção ‘Link para download’ será retornado um link para efetuar o download do arquivo (XML e PDF), onde ao clicar no link será possível baixar e salvar os arquivos fisicamente para a sua máquina. Destacando que será permitido o download dos arquivos apenas se o documento já tenha sido persistido para a base de dados do InvoiCy.

Já ao optar pelo retorno em Base64, não será necessário efetuar download de nenhum arquivo. O próprio retorno do Web Service já irá conter o arquivo XML e PDF codificado para Base64, onde você emissor poderá copiar o conteúdo desse texto e decodificá-lo para gerar os arquivos PDF e XML. O retorno em Base64 não depende do processo de persistência do InvoiCy, onde mesmo sem estar persistido o documento será possível decodificar e visualizar o conteúdo do Base64 retornado.

Este é um exemplo de implementação em linguagem C# de decodificação de base64 para arquivo.

exemplo_decodificacao_base_64Exemplo de decodificação de base64 para arquivo