Documente Academic
Documente Profesional
Documente Cultură
2009
UniCTe – Versão 1.0 2009
Conteúdo
Introdução ..................................................................................................................................... 4
Instalando o UniCTe ...................................................................................................................... 5
Utilizando o UniCTe ....................................................................................................................... 6
Configurando o UniCTe manualmente.......................................................................................... 7
Configurando o UniCTe automaticamente a partir do sistema ERP ........................................... 12
Verificando a situação dos serviços e consultando cadastro de contribuinte ............................ 14
Validando os arquivos XML ......................................................................................................... 16
Integrando softwares ERP com o UniCTe.................................................................................... 17
Arquivos de envio aos serviços do conhecimento de transporte eletrônico ...................... 17
Arquivos de retorno dos serviços do conhecimento de transporte eletrônico .................. 17
Consultando a situação do serviço do conhecimento de transporte eletrônico no formato
XML...................................................................................................................................... 19
Consultando a situação do serviço do conhecimento de transporte eletrônico no formato
TXT ....................................................................................................................................... 20
Enviando conhecimento de transporte individualmente no formato XML ........................ 21
Enviando conhecimentos de transportes individualmente no formato TXT ...................... 24
Enviando conhecimento de transporte em lote no formato XML ...................................... 25
Consultando a situação do lote de conhecimentos de transportes enviados .................... 26
Consultando a situação do conhecimento de transporte enviado ..................................... 27
Cancelando conhecimento de transporte no formato XML ............................................... 28
Cancelando conhecimento de transporte no formato TXT................................................. 29
Inutilizando números de conhecimentos de transportes no formato XML ........................ 30
Inutilizando números de conhecimentos de transportes no formato TXT ......................... 32
Consultando o cadastro dos contribuintes no formato XML .............................................. 33
Consultando o cadastro dos contribuintes no formato TXT ............................................... 34
Validação automática dos conhecimentos de transportes eletrônicos .............................. 35
Obtendo os retornos dos serviços no formato texto (TXT)................................................. 36
Obtendo informações gerais do UniCTe ............................................................................. 37
Solicitar ao UniCTe a geração da chave do CT-e ................................................................. 39
Arquivos genéricos de erros ........................................................................................................ 40
LAYOUTS DOS XML ...................................................................................................................... 41
Contingência em Formulário de segurança (FS e FS-DA) ............................................................ 42
Contingência utilizando o SCAN do Ambiente Nacional ............................................................. 43
FAQ – Perguntas freqüentes ....................................................................................................... 44
Introdução
O UniCTe – Unimake Monitor de Conhecimentos de Transportes Eletrônicos, foi desenvolvido
com o intuito de facilitar a integração dos Softwares ERP (da Unimake ou de terceiros) com o
sistema de Conhecimento de Transporte Eletrônico. A Unimake Softwares novamente
buscando colaborar com o projeto de documentos fiscais eletrônicos, libera o projeto UniCTe
no modo Open Source de forma que outras empresas de desenvolvimento de softwares
(próprio ou comercial) possam utilizá-lo para o envio dos arquivos do conhecimento de
transporte eletrônico ao SEFAZ (Secretaria da Fazenda) dos diversos Estados do Brasil, e tratar
os arquivos retornados.
Para facilitar esta integração redigimos este manual que, além de ensinar como trabalhar com
o aplicativo UniCTe, ensina também, passo a passo, como se dá a integração com o sistema de
ERP.
O UniCTe se restringe a ler os arquivos XML gerados pelo sistema de ERP, assiná-los
digitalmente, valida-los, enviá-los aos serviços do conhecimento de transporte eletrônico
(WebServices) e gravar os arquivos XML de retorno para que o sistema de ERP possa utilizá-los.
O trabalho de gerar os arquivos XML dos conhecimentos de transportes, cancelamentos,
inutilização e consultas ficam a cargo do sistema de ERP.
O UniCTe nesta primeira versão ainda não possui um aplicativo específico para a impressão do
DACTe – Documento Auxiliar do Conhecimento de Transporte Eletrônico. Este aplicativo será
lançado mais adiante pela Unimake no mesmo formato do UniDANFe.
Novas implementações serão agregadas ao UniCTe em futuras versões e todos aqueles que
desejarem colaborar com o crescimento deste projeto com idéias ou até mesmo mão de obra,
devem entrar em contato com a Unimake através do e-mail nfe@unimake.com.br .
Instalando o UniCTe
Para utilizar o UniCTe é necessário a execução de alguns passos, os quais seguem abaixo:
1. O UniCTe deve ser instalado no computador que possui o certificado digital para que o
aplicativo funcione corretamente.
4. Instalar o UniCTe.
O instalador do UniCTe pode ser encontrado no site do projeto:
http://www.uninfe.com.br
Para instalar o aplicativo, basta executar o iUniCte.Exe e seguir as orientações do
assistente de instalação.
6. Para abrir a tela do aplicativo, basta dar um clique duplo sobre o ícone do UniCTe
alocado na área de notificação do aplicativo.
Ícone do UniCTe
7. Será criado um atalho para o UniCTe no menu iniciar, caso precise executar ele
manualmente.
Utilizando o UniCTe
Para abrir a tela do aplicativo, basta dar um clique duplo sobre o ícone do UniCTe alocado na
área de notificação do aplicativo ou clicar com o botão direito do mouse para executar o menu
suspenso com as opções do aplicativo.
Tela do aplicativo
Nesta tela, na parte superior, está a barra de tarefas, na qual se encontram diversos ícones,
que explicaremos suas funcionalidades:
Empresa:
Ambos os serviços acima são executados de acordo com as configurações do XML, ou seja, é
enviado para o Estado configurado no XML.
Ambiente:
Ambos os serviços acima são executados de acordo com as configurações do XML, ou seja, é
enviado para o Ambiente configurado no XML.
Tipo de Emissão:
Informe neste campo o tipo de emissão do CT-e ou modalidade a ser utilizada, podendo ser:
Contingência com formulário de segurança - Nesta modalidade o DACTe deve ser impresso em
formulário de segurança e o UniCTe só enviará o XML quando o serviço do CT-e estiver em
funcionamento; Saiba mais...
Pasta onde será gravado os arquivos XML´s a serem enviados individualmente para os
WebServices:
Informe neste campo o local onde o UniCTe deve pegar os arquivos XML e enviar para os
WebServices do SEFAZ.
Os sistemas de ERP deverão gerar os arquivos XML nesta pasta para que o UniCTe identifique
que algo deve ser enviado aos WebServices. Explicaremos melhor o funcionamento dos
arquivos XML na parte de integração do UniCTe com os sistemas ERP.
Pasta onde será gravado os arquivos XML´s de CT-e a serem enviadas em lote para os
WebServices:
Informe neste campo o local onde UniCTe deve gravar os arquivos XML de retorno dos
WebServices do SEFAZ.
Os sistemas de ERP deverão pegar os arquivos XML de retorno dos WebServices nesta pasta
para obter as informações acerca do envio. Explicaremos melhor o funcionamento dos
arquivos XML na parte de integração do UniCTe com os sistemas ERP.
Informe neste campo o local onde UniCTe deve gravar os arquivos XML assinados e enviados
para os WebServices do SEFAZ.
Serão gravados somente os XML que são assinados digitalmente, que são:
Conhecimentos de transportes
Cancelamentos de conhecimentos de transportes
Inutilização de numeração dos conhecimentos de transportes
Os arquivos serão gravados na pasta informada separando-se em subpastas por ano/mês para
evitar um grande volume de arquivos em uma única pasta.
É necessário efetuar periodicamente um backup destes arquivos, pois se solicitado pelo fisco,
estes devem estar à disposição.
Pasta para arquivamento temporário dos XML que apresentaram erro na tentativa do envio:
Informe a pasta onde o aplicativo deve copiar os arquivos XML que apresentaram erro na
tentativa de serem enviados. Esta cópia é efetuada para que o arquivo possa ser analisado por
um profissional, a fim de ser detectada a falha. Se o mesmo arquivo for enviado
posteriormente com sucesso e ainda existir na pasta temporária de arquivamento, será
excluído para não acumular muitos arquivos.
Informe uma pasta de backup para que o UniCTe copie os XML enviados para guardar uma
copia extra. É aconselhável informar uma pasta em HD ou computador diferente da informada
para os XML enviados, garantindo uma maior segurança.
Informe a pasta onde serão gravados os arquivos XML´s a serem somente validados pelo
UniCTe, ou seja, o UniCTe assina, valida mas não envia.
Informe o formato da pasta de arquivamento dos XML´s enviados e autorizados pela receita
que será criado. Os formatos separados por barra (/) identificam que será criado uma subpasta
para cada separação, exemplo: C:\unicte\enviados\autorizados\2009\09\01. Se for
selecionado o formato AMD será criado uma única subpasta, exemplo:
c:\unicte\enviados\autorizados\20090901.
Por padrão o sistema adota o formato “AM”, ou seja, ano e mês, mas para os usuários que
imprimem uma grande quantidade de conhecimentos de transportes por dia, o sistema
operacional pode não gerenciar muito bem pastas com grande quantidade de arquivos, assim
sendo aconselha-se utilizar outro formato que separe mais os arquivos enviados.
O UniCTe possui uma rotina que efetua uma limpeza nas pastas onde são gravados os retornos
do SEFAZ e na pasta de XML´s com erro. Para utilizar esta opção basta informar o número de
dias que os arquivos devem permanecer nestas pastas. Se a informação deste campo for ZERO,
esta rotina não será executada. (Para funcionar: depois de alterado esta configuração o UniCTe
deve ser finalizado e executado novamente).
Certificado digital:
Deve ser selecionado o certificado digital do CNPJ da empresa que será utilizado na
autenticação dos serviços do conhecimento de transporte eletrônico (WebServices) e na
assinatura dos arquivos XML.
NomeEmpresa|EMPRESA LTDA
PastaBackup|C:\Usr\NFe\uninfe\backup
PastaValidar|C:\Usr\NFe\uninfe\validar
PastaXmlEmLote|
PastaXmlValidar|C:\Usr\NFe\uninfe\validados
PastaXmlEnviado|C:\Usr\NFe\uninfe\enviados
PastaXmlEnvio|C:\Usr\NFe\uninfe\envio
PastaXmlErro|C:\Usr\NFe\uninfe\tempErro
PastaXmlRetorno|C:\Usr\NFe\uninfe\retorno
DiasParaLimpeza|0
DiretorioSalvarComo|AM
GravarRetornoTXTNFe|False
AmbienteCodigo|1
tpEmis|1
UnidadeFederativaCodigo|35
GravarRetornoTXTNFe|False
DiretorioSalvarComo|AM
DiasLimpeza|0
Proxy|true
ProxyServidor|10.1.1.162
ProxyUsuario|teste
ProxySenha|1234
ProxyPorta|80
cStat|1
xMotivo|Configuracao do UniNFe alterada com sucesso
Importante: No mínimo uma vez o UniCTe deve ser configurado manualmente para informar o
certificado digital, pois o certificado não é enviado no XML ou TXT de configuração automática;
as demais poderão ser automaticamente.
O UniCTe também disponibiliza uma tela para ser efetuada a validação manual dos arquivos,
normalmente utilizada para testes em tempo de desenvolvimento dos XML. Veja abaixo:
Informe neste campo o arquivo XML a ser validado e pressione o botão que inicializa o
processo de validação.
Tipo do arquivo:
Demonstra o tipo do arquivo XML selecionado para validação, que pode ser:
Resultado da validação:
O conteúdo de resposta obtido dos serviços (WebServices) serão gravados na pasta de retorno
informados na tela de configuração do UniCTe.
Para todo arquivo XML enviado, o ERP deve aguardar no mínimo um retorno. (No caso do
conhecimento de transporte, o sistema ERP deve aguardar mais de um retorno, conforme
demonstrado no item “Enviando Conhecimentos de Transportes”).
Os nomes dos arquivos XML deverão seguir um padrão conforme determinado neste manual.
O software ERP deve gerar os arquivos XML na “pasta de envio” informada na tela de
configurações para que o UniCTe saiba que algo deve ser processado.
Os nomes dos arquivos de envio devem seguir um padrão e na continuação deste manual
temos para cada serviço a explicação de seu nome.
Sempre que o ERP gerar um arquivo de envio, deve ficar aguardando o arquivo de retorno
correspondente para conseguir pegar a resposta dada pelo WebService. Alguns serviços são
assíncronos, assim sendo o ERP vai ter que aguardar uma primeira resposta, enviar uma nova
solicitação e aguardar uma segunda resposta para encerrar a transação, que é o caso do envio
dos conhecimentos de transportes.
Os arquivos XML devem possuir o formato determinado no manual de integração criado pelos
Órgãos Responsáveis pelo CT-e.
XML = Se tudo ocorrer bem na conexão, o UniCTe vai gravar um arquivo XML com o
conteúdo retornado pelo WebService com a resposta do serviço.
ERR = Se por algum motivo o UniCTe não conseguir enviar o arquivo, seja por
problemas de validação, conexão ou assinatura do arquivo, será gerado um arquivo no
formato TXT com o erro ocorrido.
AAAAMMDDTHHMMSS-ped-sta.xml
Exemplo: 20080630T012812-ped-sta.xml
ou
O XML de consulta do status do serviço não é enviado para o Estado e Ambiente informados
na tela de configurações do UniCTe e sim para o Estado e Ambiente informados nas tag´s
correspondentes do XML.
Como o XML de consulta status do serviço não possui a tag <tpEmis>, não é possível do ERP
efetuar consultas de ambientes diferentes, tipo: SCAN e Normal. Para resolver este problema o
ERP pode incluir a tag <tpEmis> no XML obedecendo a seguinte estrutura:
Se a tag <tpEmis> existir o UniCTe vai efetuar a consulta de acordo com a informação nela
contida e vai remover a tag automaticamente antes de enviar ao SEFAZ para evitar erros de
validação na sua estrutura padrão.
IDNOTAFISCAL-cte.xml
Exemplo: 51080662675686000166550010000001041671821888-cte.xml
51080662675686000166550010000001041671821888-num-lot.xml
51080662675686000166550010000001041671821888-cte.err
Gravado o número do lote, o sistema ERP deve continuar aguardando o segundo arquivo de
retorno, que é a resposta do WebService com relação ao envio do CT-e. O arquivo retornado
será gravado no padrão abaixo:
NUMEROLOTE-rec.xml
NUMEROLOTE Número do lote seqüencial gerado pelo UniCTe com 15 dígitos. Este
número não se repete (Chave Única)
-rec.xml Conteúdo fixo.
Exemplo:
ou
Neste ponto o ERP ainda deve continuar aguardando mais um retorno do UniCTe para finalizar
todo o processo de envio do conhecimento de transporte, que é o XML de retorno da consulta
do lote, efetuada automaticamente pelo UniCTe. Obtido este último retorno o ERP terá a
informação se o(s) conhecimento(s) do lote foi(ram) autorizado(s), denegado(s) ou
rejeitado(s). Veja abaixo a estrutura do nome deste arquivo que será gerado na pasta de
retorno:
Exemplo:
ou
Dentro desse XML, no caso de nenhum erro ou rejeição pelo WebService, será
encontrado o número do protocolo do CT-e. Este número deve ser gravado na base de
dados do sistema de ERP, pois será utilizado caso necessite fazer o cancelamento do
conhecimento de transporte.
OBSERVAÇÃO:
RECIBO-ped-rec.xml
Exemplo: 510000000121311-ped-rec.xml
ou
Dentro desse arquivo XML, no caso de nenhum erro ou rejeição pelo WebService, será
encontrado o número do protocolo do CT-e. Este número deve ser gravado na base de
dados do sistema de ERP, pois será utilizado caso necessite fazer o cancelamento do
conhecimento de transporte.
IDNOTAFISCAL-ped-sit.xml
Exemplo: 51080662675686000166550010000001041671821888-ped-sit.xml
ou
IDNOTAFISCAL-ped-can.xml
Exemplo: 51080662675686000166550010000001041671821888-ped-can.xml
ou
<infCanc Id="ID35080699999090910270550000000000011234567890">
<tpAmb>2</tpAmb>
<xServ>CANCELAR</xServ>
<chCTe>35080699999090910270550000000000011234567890</chCTe>
<nProt>135080000000001</nProt>
<xJust>Teste do WS de Cancelamento</xJust>
<tpEmis>1</tpEmis> (OPCIONAL)
</infCanc>
Apesar da tag <tpEmis> não existir no padrão, o UniCTe depois de efetuar sua leitura, ele irá
eliminar esta TAG para daí sim enviar ao SEFAZ.
IDINUT-ped-inu.xml
Exemplo: 51080662675686000166550010000001041671821888-ped-inu.xml
ou
<infInut Id="ID359999909091027055000000000001000000001">
<tpAmb>2</tpAmb>
<tpEmis>1</tpEmis> (OPCIONAL)
<xServ>INUTILIZAR</xServ>
<cUF>35</cUF>
<ano>08</ano>
<CNPJ>99999090910270</CNPJ>
<mod>55</mod>
<serie>0</serie>
<nCTIni>1</nCTIni>
<nCTFin>1</nCTFin>
<xJust>Teste do WS de Inutilizacao</xJust>
</infInut>
Apesar da tag <tpEmis> não existir no padrão, o UniCTe depois de efetuar sua leitura, ele irá
eliminar esta TAG para daí sim enviar ao SEFAZ.
Exemplo: 02345678903-cons-cad.xml
ou
Observação: Este serviço é o único que não tem o nome do arquivo padronizado pelos
órgãos responsáveis pelo CT-e, assim sendo criamos um padrão para atender as
necessidades do aplicativo UniCTe.
Exemplo: 02345678903-cons-cad.txt
O UniCTe detectando o TXT ele também irá gerar XML na pasta de envio e o restante do
processo para finalização deve ser consultado no item “Consultando o cadastro dos
contribuintes no formato XML”.
UF|SP
CNPJ|55801377000131 (OU)
CPF|12345678901 (OU)
IE|1234567890
O retorno será um XML com o mesmo nome do validado, mas com o final –ret.xml. Exemplo:
41090576472349000198550010000193558913651216-cte.xml
41090576472349000198550010000193558913651216-cte-ret.xml
Ou
Importante: Pode-se gravar também o XML da CT-e no formato TXT que o mesmo gera o XML,
valida e dá o retorno para o ERP. OPÇÃO AINDA NÃO DISPONÍVEL NO UNICTE.
xServ|CONS-INF
O UniCTe ao detectar a existência do arquivo, gera um XML de retorno para o ERP com as
informações. Segue o nome e estrutura do XML:
cStat|1
xMotivo|Consulta efetuada com sucesso
sSubject| CN=EMPRESA TESTE LTD:12123123000129, OU=SRF e-CNPJ, OU=Secretaria da Receita Federal-SRF, O=ICP-Brasil,
L=PARANAVAI, S=PR, C=BR
dValIni|22/05/2009 12:00:00
dValFin|22/05/2010 12:00:00
versao|2.2.3543.10217
dUltModif|13/09/2009 07:40:36
PastaExecutavel|c:\testenfe\executavel
NomeComputador|UNIMAKE_UNINFE
PastaBackup|C:\Usr\NFe\uninfe\backup
PastaXmlEmLote|
PastaXmlAssinado|\Assinado
PastaXmlValidar|C:\Usr\NFe\uninfe\validados
PastaXmlEnviado|C:\Usr\NFe\uninfe\enviados
PastaXmlEnvio|C:\Usr\NFe\uninfe\envio
PastaXmlErro|C:\Usr\NFe\uninfe\tempErro
PastaXmlRetorno|C:\Usr\NFe\uninfe\retorno
DiasParaLimpeza|0
DiretorioSalvarComo|AM
GravarRetornoTXTNFe|False
tpAmb|2
tpEmis|1
UnidadeFederativaCodigo|35
No caso do retorno 2 na tag “cStat”, o XML ou TXT é gravado normalmente mas sem as
informações do certificado.
Se ocorrer algum erro na hora de gravar o XML ou TXT de retorno com as informações, o
UniCTe vai gerar um arquivo com a extensão .ERR com o mesmo nome para que o ERP tenha
condições interceptar o erro ocorrido.
UniNFeErro_{1}.err
A sintaxe {1} será modificada pela data e hora atual do sistema no seguinte formato:
“ddMMyyyyThhmmss”.
Para o ERP basta monitorar se existem arquivos que iniciem com o nome
“UniNFeErro_”, se detectar a existência, ele pode abrir o arquivo e pegar a mensagem
de erro para o devido tratamento.
Observação importante: Como o UniCTe executa vários serviços de uma única vez, tais como:
Cancelar CT-e, Inutilizar e Enviar Conhecimentos ao mesmo tempo, pode ser que algum erro
ocorra em um dos processos, e neste arquivo genérico não teremos como identificar em qual
processo ele ocorreu, visto que o ERP gerou 3 XML´s de serviços diferentes e o UniCTe está
processando eles ao mesmo tempo, assim sendo ao detectar o erro, a dica é não interromper
o processo do ERP, somente notifique o usuário do erro ocorrido e deixe ele definir se deve
interromper ou não.
2. Para o UniCTe rodar como serviço devo utilizar o mesmo usuário que foi utilizado na
instalação do certificado digital?
R. Sim, pois o certificado quando instalado, por motivos de segurança, ele o foi somente
para o usuário em questão.
4. Estou obtendo a consulta do recibo com a rejeição número 223 no lote (Rejeição: CNPJ do
transmissor do lote difere do CNPJ do transmissor da consulta. O que devo fazer para
resolver?
R. Desinstale o certificado digital, reinicie o computador, reinstale novamente. Desinstale
o UniCTe, remova tudo, reinstale e configure-o novamente. (Em alguns casos resolve o
problema, pois a falha pode estar na instalação do certificado).
5. Tenho uma aplicação que gera o XML de cancelamento em COBOL MB, mas o XML é
rejeitado com o código 999. O que devo fazer?
R. Verifique se está gerando uma linha de comentário do COBOL MB no cabeçalho do XML,
se tiver, remova este comentário para resolver o problema.
6. Gero o XML do CT-e e o UniCTe fica gerando a consulta do recibo sem parar, ou seja, o
conhecimento fica em processamento e não sai de lá. O que fazer para resolver?
R. Uma solução é a seguinte: A chave do CT-e gerado pelo ERP deve estar errada ou
alguma informação dela não está correta. Como o UniCTe se utiliza da chave para fazer o
seu controle, e estando ela incorreta, o SEFAZ retorna uma chave diferente da gerada pelo
ERP, sendo assim o UniCTe não consegue mais encontrar o conhecimento que foi enviada
para tirar ele do fluxo. Para resolver, confira a chave gerada para detectar onde está a
falha. Um caso ocorrido e resolvido era que a tag <serie> estava com o valor 1 e na chave
do CT-e a numeração correspondente a série estava diferente (neste caso ZERO). Feito o
acerto o problema não ocorreu mais.
Outra solução é desinstalar o UniCTe, excluir a pasta onde ele estava instalado e reinstalar
ele novamente do zero reconfigurando-o novamente.
7. Gravo o XML na pasta de envio mas obtenho o seguinte erro como retorno: “Index was
outside the bounds of the array”, como resolver?
R. Este problema tem ocorrido com os certificados da caixa econômica federal (CEF), tente
executar a seguinte seqüência de operações para tentar resolver:
8. Passei a utilizar um servidor novo para o UniCTe e agora não tenho mais o retorno dos
conhecimentos de transportes, ou seja, ficam todos presos no fluxo de conhecimentos em
processamento. O que fazer para resolver?
R. No Windows, em painel de controle tem as opções e configurações regionais, a
configuração do formato da data ou do horário está errada. Verifique e compare com um
micro que o UniCTe está funcionando.
Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os termos da
Licença Pública Geral GNU, conforme publicada pela Free Software Foundation; tanto a versão
2 da Licença como (a seu critério) qualquer versão mais nova.
Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER GARANTIA; sem
mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO A QUALQUER
PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para obter mais detalhes.
Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este programa; se
não, escreva para a Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307, USA ou consulte a licença oficial em http://www.gnu.org/licenses/.