LogFrota
Novo

SFTP: emissão automática de CT-e, MDF-e, CIOT e DC-e por arquivo

Deposite o XML da NF-e (ou a planilha da DC-e) numa pasta segura e o LogFrota emite sozinho o CT-e, e se você ligar também o CIOT e o MDF-e, devolvendo XML e resultado. Se preferir, ele só cria o rascunho para a sua equipe emitir.

  • SFTP
  • emissão automática
  • EDI

O que é

A caixa SFTP é uma pasta segura, só da sua base, onde o seu sistema (ERP, WMS ou o sistema do embarcador) deposita arquivos para o LogFrota emitir os documentos sozinho, sem ninguém digitar. Os documentos emitidos automaticamente:

  • CT-e, a partir do XML da NF-e: um arquivo .xml por nota, ou um .zip com todas as notas de uma carga.
  • MDF-e e CIOT, logo depois dos CT-e da mesma carga, quando você libera esses documentos (veja as seções Documentos automáticos e MDF-e e CIOT automáticos).
  • CT-e de subcontratação, a partir do XML do CT-e do contratante, quando a sua transportadora é subcontratada (veja CT-e de subcontratação pelo SFTP).
  • DC-e (Declaração de Conteúdo Eletrônica), a partir de uma planilha .csv no layout LogFrota.

Quem configura o envio do lado do seu cliente ou do seu sistema encontra o passo a passo em SFTP para o integrador: mande esse link junto com o usuário e a senha.

Os documentos são emitidos na SEFAZ com a mesma conferência da tela de emissão. A sua base precisa ter o módulo do documento contratado (CT-e ou DC-e). Se chegar um arquivo de um documento que a base não contratou (por exemplo, um .xml numa base que só emite DC-e), nada é emitido: o arquivo vai para a pasta erro e a saída traz um .erro.txt dizendo o que a sua caixa aceita.

Como ativar

Em Integrações > SFTP, clique em Ativar caixa SFTP. O sistema cria a caixa da sua base e mostra a senha de acesso. Copie e guarde a senha na hora: ela aparece uma vez só. Quem ativa precisa poder configurar as integrações da base (perfil de administrador ou com permissão de configuração fiscal).

Perdeu a senha? No mesmo lugar, clique em Gerar nova senha. A senha anterior para de funcionar na hora, então atualize o seu sistema ou o programa de SFTP com a nova.

Dados de conexão

Em Integrações > SFTP aparecem o servidor, a porta, o usuário e as pastas.

  • Servidor: sftp.logfrota.com.br.
  • Protocolo: SFTP (não é FTP nem FTPS). No FileZilla, escolha SFTP - SSH File Transfer Protocol.
  • Porta: 8022.
  • Usuário: edi- seguido do endereço da sua base (ex.: edi-minhatransportadora).
  • Senha: a mostrada ao ativar a caixa (ou ao gerar uma nova).
  • Chave do servidor: do tipo ECDSA, com a impressão digital mostrada na tela.

Não é preciso liberar nenhum IP antes de conectar. Qualquer endereço entra com o usuário e a senha certos; a lista de IPs da tela só serve para identificar de onde veio cada conexão.

Conectando pelo FileZilla ou WinSCP

  1. Crie uma conexão nova do tipo SFTP, com o servidor, a porta 8022, o usuário e a senha.
  2. Na primeira conexão o programa mostra a impressão digital (fingerprint) do servidor. Confira com a que aparece em Integrações > SFTP e aceite.
  3. Entre direto na pasta de entrada mostrada na tela (por exemplo /logfrota-edi/minhatransportadora/entrada/). A pasta /logfrota-edi é compartilhada e não abre: o programa mostra Acesso negado (ou Access Denied / Failed to retrieve directory listing). Isso é normal e quer dizer que o login funcionou. O seu usuário só enxerga as pastas da sua base.
  4. Para não precisar digitar toda vez, salve a pasta como inicial: no FileZilla, Gerenciador de Sites → Avançado → Diretório remoto padrão; no WinSCP, Avançado → Diretórios → Diretório remoto.

Integrando pelo sistema da sua empresa

Configure o sistema para trabalhar sempre com os caminhos completos da sua base, sem listar a raiz: envie para /logfrota-edi/<sua-base>/entrada/ e busque o retorno em /logfrota-edi/<sua-base>/saida/. Os caminhos exatos aparecem em Integrações > SFTP.

Envio automático por script: o acesso é por usuário e senha. O comando sftp -b (modo batch do OpenSSH) não aceita senha e recusa a conexão; use o WinSCP em modo script, o lftp ou outro cliente que aceite senha.

As pastas

  • entrada: onde você coloca os arquivos (.xml, .zip ou .csv). Pode usar subpastas, uma por carga ou por transferência (por exemplo entrada/2864679/): os arquivos de dentro delas também são lidos. O sistema confere a pasta a cada minuto.
  • saida: onde o LogFrota devolve o resultado. Você só lê, não apaga.

Depois de processado, o arquivo sai da entrada e fica guardado pelo LogFrota (processados ou erro), para manter o histórico. Na tela Fiscal > Arquivos SFTP você acompanha cada arquivo e pode também enviar um arquivo direto pelo navegador, sem programa de SFTP.

CT-e pelo XML da NF-e

Antes do primeiro envio, cadastre em Fiscal > Tabela de Frete uma tabela vinculada a cada cliente (o destinatário da nota). Pelo arquivo não há onde digitar o frete: o valor do CT-e sai sempre da tabela vinculada àquele cliente. Tabela para "qualquer cliente" não entra sozinha: sem tabela vinculada, a carga fica pendente para a sua equipe (veja Quando algo dá errado).

  • Envie o XML original da NF-e, como baixado da SEFAZ ou do sistema emissor (com ou sem o protocolo de autorização).
  • Um .xml é uma nota. Um .zip é uma carga, com até 50 notas. Outros arquivos dentro do .zip (como o DANFE em PDF) são ignorados.
  • Notas do mesmo destinatário viram um CT-e; destinatários diferentes viram CT-e separados na mesma carga.
  • Tomador (pela modalidade do frete da nota), peso, valor da carga e produto predominante vêm da própria nota, como na emissão pelo portal.
  • CFOP, tributação e observação saem do Tipo de Operação padrão da base (menu Configuração Fiscal > Tipo de Operação, marcado com a estrela). Sem padrão, o CFOP é sugerido pela rota (por exemplo 5353 dentro do estado e 6353 fora).
  • A filial emissora é a que a nota declara como transportadora (CNPJ em transporta); sem isso, a matriz.
  • Os clientes são reconhecidos pelo CNPJ que está na nota e cadastrados automaticamente quando ainda não existem no LogFrota. A tabela de frete vinculada a cada um continua sendo com você.
  • Nota que já está num CT-e não cancelado, ou numa carga criada por um arquivo anterior que ainda espera a sua equipe, nunca entra em carga nova, para nunca emitir o mesmo transporte duas vezes. O resultado traz a situação nota_ja_usada com o número do CT-e (e o XML dele de novo na saída, quando autorizado) ou o número da carga. CT-e cancelado ou carga cancelada libera a nota.
  • Nota com frete por conta de terceiros precisa informar quem paga: a carga fica pendente para a sua equipe informar o tomador no portal.

Documentos automáticos: emitir, só rascunho ou não gerar

Em Integrações > SFTP, cartão Documentos automáticos, escolha documento por documento (DC-e, CT-e, MDF-e e CIOT, os que a sua base contratou) o que a integração faz. Vale para o arquivo do SFTP e para o envio pela tela ou pela API, que caem na mesma caixa. A troca vale para os próximos arquivos e fica registrada com o nome de quem mudou.

  • Emitir automaticamente: o LogFrota confere como a tela confere, emite e devolve o XML autorizado e o resultado.csv na pasta de saída. É o padrão da DC-e e do CT-e.
  • Só rascunho: o documento é montado e fica para a sua equipe conferir e emitir pela tela. Nada vai à SEFAZ. O XML da NF-e vira uma carga em Fiscal > Cargas, com as notas, sem CT-e, marcada com o selo Veio do SFTP · rascunho. Cada linha da planilha vira uma DC-e em rascunho em Fiscal > DC-e (Gerenciar DC-e). O MDF-e é montado e conferido, mas não é transmitido (o rascunho do MDF-e já reserva o número). O CIOT não é declarado, e o MDF-e de veículo de terceiro fica em rascunho para receber o CIOT pela Central de Emissão.
  • Não gerar: a integração não cria esse documento. Planilha da DC-e ou XML para CT-e com o documento em Não gerar é recusado, e o motivo volta na pasta de saída. MDF-e em Não gerar: os CT-e saem e nenhum MDF-e é criado. CIOT em Não gerar: o MDF-e sai sem CIOT e o resultado avisa. É o padrão do MDF-e e do CIOT.

O CIOT só pode ser liberado com o MDF-e liberado, porque é declarado no manifesto. A averbação do seguro não está nesta lista: ela já sai sozinha quando o CT-e de uma carga é autorizado, se a base tem seguro configurado.

Com a DC-e ou o CT-e em Só rascunho:

  • O recibo de chegada (.recebido.txt) continua saindo na hora.
  • O resultado.csv diz rascunho_criado em cada documento, com o número da carga (coluna carga_numero, no CT-e) ou o número do rascunho da DC-e (coluna rascunho_id). Não sai XML autorizado, porque nada foi à SEFAZ. No CT-e de subcontratação, a saída traz a prévia do rascunho para conferência, marcada SEM VALOR FISCAL (veja CT-e em rascunho e a prévia sem valor fiscal).
  • Com o CT-e em Só rascunho, o MDF-e e o CIOT do XML da NF-e ficam com a sua equipe, pela carga, depois dos CT-e. Na viagem consolidada do dia, eles saem quando a equipe usa Fechar viagem.
  • Se a nota tiver alguma pendência (por exemplo, cliente sem tabela de frete), a carga fica pendente com o motivo, como no modo de emissão.
  • Quando a sua equipe emite pela tela, o XML autorizado chega na pasta de saída, com um arquivo complemento que diz quem emitiu e quando. O e-mail de confirmação também avisa.

MDF-e e CIOT automáticos

Depois que os CT-e do arquivo são autorizados, o LogFrota também pode emitir o MDF-e da carga e, quando o veículo é de terceiro, declarar o CIOT. Vem em Não gerar: libere em Integrações > SFTP, no cartão Documentos automáticos (é preciso poder configurar as integrações da base), em Emitir automaticamente ou Só rascunho. O CIOT só pode ser liberado junto com o MDF-e e com o módulo CIOT contratado.

  • Veículo: o da placa informada na NF-e (grupo do veículo de transporte, campo placa). A placa precisa estar cadastrada em Cadastros > Veículos. Reboques informados na nota precisam estar em Cadastros > Implementos.
  • Motorista: o motorista padrão do veículo, definido no cadastro do veículo.
  • Sai um MDF-e por estado de descarga, como a SEFAZ exige.
  • O CIOT é declarado antes do MDF-e, só para veículo de terceiro, com o Frete do Terceiro da carga (o valor pago ao transportador, nunca o frete dos CT-e). O XML da NF-e não traz esse valor: sem ele, os CT-e saem e o CIOT e o MDF-e ficam pendentes, com o código ciot_valor_terceiro_ausente no resultado. Informe o Frete do Terceiro em Fiscal > Cargas e siga pela Central de Emissão. Frete abaixo do piso mínimo da ANTT também bloqueia. Com frota própria, o resultado diz "CIOT não se aplica".
  • Cavalo mecânico sem reboque: os CT-e saem e o MDF-e fica em rascunho com o motivo.

Quando o MDF-e não é emitido, os CT-e saem normalmente e o resultado diz o motivo: nota sem placa, placa não cadastrada, notas do mesmo arquivo com placas diferentes, veículo sem motorista padrão, algum CT-e do arquivo não autorizado, ou uma pendência que a SEFAZ recusaria (por exemplo, falta da apólice de seguro). Tudo isso é conferido antes de usar um número de MDF-e. Resolva e manifeste a carga pela Central de Emissão (Fiscal > Cargas); não envie o arquivo de novo, porque as notas já estão nos CT-e.

O encerramento do MDF-e continua com a transportadora, quando a carga for entregue (ou pelo encerramento automático da sua base, se estiver ligado). O arquivo nunca entra em contingência sozinho: se a SEFAZ estiver fora do ar, o resultado avisa e o MDF-e é transmitido quando ela voltar.

DC-e pela planilha

Baixe o modelo em Integrações > SFTP. As regras principais:

  • Arquivo .csv em UTF-8, com as colunas separadas por ponto e vírgula (;) e o cabeçalho na primeira linha, com os nomes exatamente como no modelo.
  • Uma linha por item. Linhas com o mesmo id_documento formam uma DC-e; um arquivo pode ter várias DC-e.
  • Use um id_documento único para cada declaração (o número do pedido, por exemplo). É por ele que o sistema reconhece uma DC-e que já foi recebida: se ela vier de novo num arquivo corrigido, nada é emitido outra vez e o resultado devolve a situação ja_emitida (com número, chave e o XML de novo na saída) ou ja_recebida (ainda em rascunho ou rejeitada em Fiscal > DC-e). DC-e rejeitada também segura o id_documento: corrija e emita por Gerenciar DC-e, ou exclua a rejeitada para que o próximo envio crie outra. Só a DC-e anterior cancelada (ou excluída) deixa emitir outra com o mesmo id_documento.
  • Remetente e destinatário com CPF ou CNPJ, nome e endereço completo (logradouro, bairro, município, UF e CEP; número em branco vira S/N). Os dados de remetente e destinatário se repetem iguais em todas as linhas da mesma DC-e.
  • Cada item com descrição, NCM (obrigatório no arquivo), quantidade inteira e valor unitário em reais, com vírgula ou ponto (ex.: 150,00).
  • filial_cnpj em branco emite pela matriz; preencha para emitir por outra filial cadastrada. A filial emissora precisa estar com o endereço completo em Cadastros > Filiais.
  • Coluna opcional contratante_cnpj (pode faltar no cabeçalho): o CNPJ de quem contratou o transporte. Com a viagem consolidada do dia ligada, a DC-e autorizada entra na viagem desse contratante (veja Viagem consolidada do dia).

A DC-e com erro não é emitida; as outras do mesmo arquivo seguem normalmente. Se a declaração chegou a ser criada (por exemplo, filial com endereço incompleto ou município fora da tabela do IBGE), ela fica em Fiscal > DC-e para a sua equipe corrigir e emitir, sem reenviar. Se a linha nem pôde ser lida (coluna faltando, CPF inválido, filial que não existe), corrija e envie um arquivo novo só com as DC-e da lista O que corrigir do .erro.txt: as que já foram emitidas ou ficaram no portal não devem ir de novo, senão serão emitidas outra vez.

O que volta na saída

  • nome-do-arquivo.recebido.txt: o recibo de recebimento, gravado assim que o arquivo é registrado, seja qual for o destino dele. Traz o protocolo do envio (por exemplo SFTP-minhatransportadora-120), o nome e o tamanho do arquivo, o SHA-256 do conteúdo (a impressão digital do arquivo: igual à do arquivo que você mandou significa o mesmo arquivo, byte a byte), a data e a hora da chegada no horário de Brasília e o que vai acontecer (em processamento, ignorado por ser cópia de outro arquivo ou recusado por módulo não contratado). Arquivo que nunca gerou recibo nunca chegou à caixa. Guarde o protocolo: é por ele que o suporte acha o envio.
  • nome-do-arquivo.resultado.csv: uma linha por documento, com o status (emitido, pendente, rascunho_criado, nota_ja_usada ou erro no CT-e; emitida, rascunho_criado, ja_emitida, ja_recebida ou erro na DC-e), número, chave de acesso e mensagem. No CT-e vêm também o arquivo da nota, o número da NF-e e o destinatário e as colunas do CIOT e do MDF-e daquele CT-e (ciot_numero, ciot_mensagem, mdfe_numero, mdfe_chave, mdfe_status e mdfe_mensagem), vazias quando o MDF-e automático está desligado. No fim da linha, nos dois documentos, vêm o protocolo_recebimento e o autorizado_em (data e hora da autorização na SEFAZ, horário de Brasília) e depois codigo, campo e etapa de cada erro, para o seu sistema decidir sozinho o que fazer. Colunas novas sempre entram no fim da linha (no CT-e: cte_contratante, transferencia e previa_rascunho), então leia as colunas pelo nome do cabeçalho.
  • RASCUNHO-SEM-VALOR-FISCAL-PROTOCOLO.pdf e .xml: a prévia do CT-e que ficou em rascunho, só para conferência. Não é documento oficial e não substitui o XML autorizado.
  • nome-do-arquivo-NUMERO.xml: o XML de cada documento autorizado. O do MDF-e vem como nome-do-arquivo-mdfe-NUMERO.xml.
  • nome-do-arquivo.erro.txt: só quando algo deu errado ou ficou pendente, explicando o motivo e o que fazer, seguido de um bloco por erro com código, campo e etapa. Na planilha da DC-e, a mensagem diz a coluna com problema.

Quando algo dá errado

Quem envia o arquivo não precisa resolver o erro: a sua equipe trata no portal até emitir. Quando uma nota tem pendência (cliente sem tabela de frete vinculada, frete pago por terceiro, nota já usada em outro CT-e, XML ilegível dentro do .zip), as notas legíveis ficam importadas e a carga aparece em Fiscal > Cargas com o selo Veio do SFTP · pendente e o motivo. Nenhum CT-e é criado e nenhum número é usado enquanto a pendência existir. A sua equipe corrige o que falta (por exemplo, cadastra a tabela de frete) e emite os CT-e por essa carga. O arquivo aparece como Pendente em Arquivos SFTP, com o botão para abrir a carga, e a pendência aparece no sino de alertas do portal até ser resolvida. O integrador cadastrado no quadro Integrador recebe o aviso da pendência por e-mail e WhatsApp (veja Avisos para o integrador e para a transportadora).

Não precisa reenviar o arquivo. Se o mesmo arquivo for enviado de novo, ele é ignorado como cópia; e o que já foi recebido antes (DC-e com o mesmo id_documento, nota que já está num CT-e ou numa carga) é reconhecido em qualquer arquivo: nada é emitido duas vezes. Quando a sua equipe emite pelo portal um CT-e ou MDF-e de uma carga que veio de arquivo pendente, o arquivo é atualizado em Arquivos SFTP, a pasta saida recebe o XML autorizado e um nome-do-arquivo.complemento-cte-NUMERO.csv (ou complemento-mdfe) com os dados do documento, e os e-mails de confirmação recebem o aviso (a menos que a conclusão esteja em nunca). O resultado.csv original não muda: ele registra o que o processamento automático fez. Só é preciso mandar um arquivo novo quando nada pôde ser aproveitado (arquivo corrompido, nenhum XML de NF-e legível, base sem filial matriz): nesse caso o .erro.txt diz o que corrigir e o original vai para a pasta erro.

Confirmação por e-mail

Em Integrações > SFTP, no quadro E-mails para confirmação, cadastre os e-mails da sua equipe e escolha quando avisar: quando o arquivo chegar e/ou ao terminar o processamento (sempre, só quando houver erro ou pendência, ou nunca). O aviso de recebimento traz o protocolo, o tamanho, o SHA-256 e a hora da chegada. O aviso de conclusão traz o resumo (quantos emitidos, com erro e pendentes), o número e a chave de cada documento, a hora da autorização e o link para a tela Arquivos SFTP. Sem e-mail cadastrado, nenhum aviso sai; o recibo na pasta de saída existe sempre.

Quem envia os arquivos tem um quadro próprio, Integrador, logo abaixo, com nome, WhatsApp e e-mails. O integrador recebe os mesmos avisos de recebimento e conclusão e, sempre, o aviso de pendência ou erro. Veja Avisos para o integrador e para a transportadora.

O resultado só diz emitido depois da autorização da SEFAZ. Um arquivo idêntico a outro já recebido é ignorado (nada é emitido em dobro) e o aviso aparece na saída.

Acompanhar pela tela

Em Integrações > SFTP, o quadro Histórico da caixa tem três abas, todas abrindo nos últimos 30 dias (mude o período no seletor de datas; Restaurar padrão mostra todo o período):

  • Arquivos recebidos: cada arquivo que chegou, com data e hora, nome, tamanho, protocolo do recibo e a situação (recebido, processando, emitido, parcial, pendente em Cargas, rascunho criado, já recebido antes, com erro, recusado por módulo ou duplicado). Clique na linha para ver a linha do tempo, a mensagem e o que fazer. Os documentos gerados abrem a tela do CT-e, do MDF-e ou da DC-e, e a carga pendente abre direto em Cargas. Dá para filtrar por situação e por período.
  • Acessos: o que o usuário da caixa fez depois de entrar (listou a pasta, enviou, baixou ou apagou um arquivo), com data, hora e o IP de onde veio. Operação recusada pelo servidor (por exemplo, enviar na pasta de saída, que é só para leitura) aparece marcada como recusada, com o motivo. Os acessos ficam guardados por 90 dias.
  • Tentativas sem login: as conexões que chegaram à caixa e caíram antes de entrar, com data, hora, IP e o que conferir. Por exemplo: A conexão chegou, mas o programa não iniciou o SFTP (o programa está em FTP ou FTPS, não em SFTP), Usuário ou senha incorretos ou A conexão foi encerrada pelo programa antes do login.

IPs do seu sistema

Antes do login o servidor ainda não sabe qual é o usuário, então a tentativa só pode ser ligada à sua base pelo IP de onde ela saiu. Não é preciso cadastrar nada: no primeiro login que der certo, o IP de onde o seu sistema conectou entra sozinho no quadro IPs do seu sistema (em Integrações > SFTP), com o selo Detectado automaticamente em e a data e a hora, e o último acesso. Na mesma hora, as tentativas sem login desse IP dos últimos 90 dias passam a aparecer, inclusive as de antes do login (por exemplo, as do programa ainda configurado em FTP).

Confira cada IP detectado:

  • Confirmar: o IP é do seu sistema ou do integrador. Ele passa a valer como cadastrado pela sua base.
  • Não reconheço: o IP sai da lista, fica bloqueado (não volta a ser cadastrado sozinho) e as tentativas dele deixam de aparecer. Um IP que ninguém reconhece entrando com a senha da caixa indica que a senha vazou: clique em Gerar nova senha logo depois e passe a nova só para quem envia os arquivos. O IP bloqueado aparece em Não reconhecidos, com o botão Tirar do bloqueio para desfazer.

Se a sua base cadastrou e-mails no quadro E-mails para confirmação, cada IP novo também gera um aviso: Um novo endereço acessou a caixa SFTP: IP X em dd/mm hh:mm. Se não reconhece, clique em Não reconheço na aba SFTP e gere uma nova senha. Sem e-mail cadastrado, o IP novo só aparece na tela.

Você também pode cadastrar um IP à mão, para ver as tentativas de um sistema que ainda não conseguiu entrar nenhuma vez: um IP (como 177.126.179.190) ou uma faixa (como 177.126.179.0/24, no máximo /24). IP de rede interna (192.168..., 10...) não serve: é o IP de saída para a internet, que o integrador ou a equipe de TI informam. Cabem 20 IPs; com a lista cheia, sai primeiro o detectado automaticamente sem acesso há mais tempo (os confirmados e os cadastrados à mão nunca saem sozinhos).

Só aparecem as tentativas dos IPs da sua base. Um IP que outra base também tem não aparece para nenhuma das duas, e o suporte LogFrota ajuda a resolver. A recusa de usuário ou senha quase nunca traz o IP, então raramente aparece: se o programa diz que a senha foi recusada, gere uma senha nova na tela.

Erros de conexão e de arquivo mais comuns, com o que fazer em cada um, estão em SFTP: erros comuns e o que fazer.

Se o seu sistema diz que enviou e nada aparece em nenhuma das abas, confira no programa: protocolo SFTP (não FTP nem FTPS), a porta 8022, o usuário escrito exatamente como na tela (edi- seguido do nome da base) e a senha. Um programa configurado em FTP conecta, fica parado e cai por tempo esgotado depois de uns dois minutos, sem erro claro. Se continuar, fale com o suporte LogFrota informando o horário da tentativa e o IP de onde ela saiu: o suporte enxerga essas conexões.

Ambiente de testes

Se a sua base ainda está em homologação, os documentos são autorizados no ambiente de homologação da SEFAZ, sem valor fiscal. É o jeito certo de validar a integração antes de ir para produção. A virada para produção é feita pelo administrador da base em Fiscal > Parâmetros Fiscais (veja Homologação e produção); a caixa SFTP, o usuário e as pastas continuam os mesmos.

Artigos relacionados