liber. Manuais

Importação de XML de NF-e

Traga para dentro do sistema os XMLs das notas fiscais que a editora emitiu e recebeu — para consultar, conferir e transformar em faturas, sem digitar nada de novo.

Visão geral

Cada XML de NF-e importado vira um registro no painel NFe XML. O sistema lê o arquivo e extrai o que interessa: quem emitiu e quem recebeu, o número e o valor da DANFE, a data de emissão, o CFOP, o frete, o vencimento e a lista de itens — livro a livro, com quantidade, preço e desconto.

A identidade de cada nota é a sua chave de acesso, aquele número de 44 dígitos impresso na DANFE. É por ela que o sistema:

  • reconhece uma nota já importada e não a importa duas vezes, venha ela de onde vier;
  • liga o XML à fatura criada a partir dele — o vínculo sobrevive a exportações e restaurações de banco, porque não depende de números internos;
  • reconhece o evento de cancelamento e marca a nota certa como cancelada.

Os XMLs importados são também a matéria-prima de outros módulos: a auditoria de consignação reconstrói a prateleira de cada livraria a partir dessas notas, e o Painel analítico (XML) resume tudo em uma página só.

Nota

Este módulo cuida da nota que chega: ele importa XMLs de notas já autorizadas e não fala com a SEFAZ para emitir. Quem emite é a emissão de NF-e — e as notas emitidas por lá caem neste mesmo painel, pela mesma chave de acesso, ao lado das que a editora recebeu.

Lista do painel NFe XML com colunas de direção, chave de acesso, cliente, número e valor da DANFE e situação
O painel NFe XML: cada linha é uma nota, com direção (entrada ou saída), chave de acesso, cliente e situação.

Entrada, saída e a empresa dona da nota

Na importação, o sistema compara o CNPJ do emitente e o do destinatário com os CNPJs das empresas cadastradas no banco e classifica cada nota:

DireçãoSignificado
SaídaEmitida por uma das nossas empresas — vendemos ou remetemos.
EntradaEndereçada a uma das nossas empresas — recebemos.
InternaEntre duas empresas nossas.
ExternaNenhum dos lados é nosso.

O outro lado da nota (a livraria, o fornecedor) vira o Cliente do registro. Se esse CNPJ ainda não existe no cadastro de contatos, o contato é criado automaticamente com o nome e o CNPJ que constam no XML — e se já existe com um nome diferente, o nome é atualizado, porque a razão social da nota fiscal é a fonte oficial.

Cada usuário só enxerga as notas das empresas às quais tem acesso: a lista respeita o seletor de empresas no topo da tela.

O CPF/CNPJ no cadastro de contatos

Casar nota com contato é casar documento com documento, e por isso o módulo também cuida de como o documento é escrito e do que ele diz sobre o contato. Vale para todo contato, digitado ou importado — não só para os que nascem de um XML.

RegraO que acontece
A pontuação se escreve sozinhaDigite 43791310000199 e o campo grava 43.791.310/0001-99; onze dígitos viram 171.037.078-55. Vale ao digitar e ao gravar, inclusive por importação de planilha.
Quem tem CNPJ é empresaUm contato com CNPJ é marcado como Empresa — um CNPJ é emitido a pessoa jurídica, e um cadastro que diga o contrário está errado.
Quem tem CPF é pessoa — só ao nascerUm contato novo com CPF é marcado como Indivíduo. Num contato já salvo, o sistema não mexe: ver o aviso abaixo.
Dígito verificador confere, mas não barraDocumento cujos dígitos não fecham gera um aviso na tela; o contato pode ser salvo assim mesmo.
A regra vale num sentido só, de propósito

O CNPJ promove a empresa; o CPF não rebaixa uma empresa já cadastrada. É comum uma editora ter um CPF digitado no campo do documento — nesses casos o documento é que está errado, não o cadastro, e rebaixar a empresa a pessoa física corromperia a ficha, os contatos pendurados nela e os pedidos. Contato-filho cujo documento é o da matriz também fica de fora: o Odoo replica o CNPJ da empresa nos contatos dela, e promover a pessoa inventaria uma empresa que não existe.

Por que não a validação do Odoo

O Odoo tem o módulo base_vat, que também valida CPF e CNPJ. Ele não é usado aqui por duas razões: ele desfaz a pontuação a cada gravação, e valida como impedimento — um cadastro migrado com documentos irregulares deixaria de poder ser salvo. Aqui a conferência avisa e deixa passar.

Configuração

Para importar por ZIP não é preciso configurar nada: instale o módulo e importe. Duas configurações são opcionais:

Sincronização com a SEFAZ (opcional)

O sistema pode baixar sozinho, todos os dias, as notas emitidas contra as suas empresas (o serviço de distribuição de documentos fiscais da SEFAZ). Para cada empresa que deve participar:

  1. Abra DefiniçõesUsuários e empresasEmpresas e escolha a empresa.
  2. Na aba SEFAZ (DFe), marque SEFAZ DFe Sync.
  3. Carregue o Certificado A1 (.pfx) da empresa e informe a Senha do certificado.
  4. Deixe o Último NSU como está. Ele é o marcador de "até onde já baixamos"; zerá-lo faz o sistema baixar de novo toda a janela que a SEFAZ guarda (cerca de 90 dias).
Nota

A senha do certificado fica gravada no banco de dados. Restrinja o acesso às configurações de empresa a quem realmente precisa.

Tabela de CFOP

O módulo instala uma tabela de CFOPs e classifica os códigos mais comuns do dia a dia da editora (consignação, acerto, devolução, bonificação, feira, venda). Quando um XML chega com um CFOP que a tabela não conhece, o código é criado automaticamente, sem classificação, e fica aguardando que alguém diga o que ele significa — assim a nota nunca desaparece das análises por causa de um código novo.

Importar um ZIP de XMLs

É o caminho para carga em lote: os XMLs exportados do emissor, ou o histórico de anos, tudo de uma vez.

  1. Abra FaturamentoNFe XMLImportar arquivo XML.
  2. Em Arquivos ZIP, anexe um ou mais arquivos .zip contendo os XMLs.
  3. Confira a Empresa — as notas do ZIP serão arquivadas sob ela.
  4. Clique em Importar.

O que acontece com cada arquivo dentro do ZIP:

  • NF-e válida e inédita: vira um registro novo, com situação Importada.
  • Chave de acesso já conhecida: é ignorada em silêncio — reimportar o mesmo ZIP não cria duplicatas.
  • Evento de cancelamento: é guardado e aplicado depois de todas as notas do ZIP, para funcionar mesmo quando o cancelamento vem no mesmo pacote da nota que ele cancela.
  • Carta de correção e arquivos que não são NF-e: são pulados.
Dica

Pode reimportar sem medo. A trava pela chave de acesso torna qualquer importação repetível: nada é duplicado, só o que ainda não existia entra.

Processar os XMLs importados

Um registro recém-importado guarda o arquivo, mas ainda não foi lido em detalhe — a situação Importada indica isso. O processamento extrai os campos e a lista de itens e leva a nota para Válida.

  1. Na lista FaturamentoNFe XMLNFe XML, selecione as notas com situação Importada (ou abra uma delas).
  2. Use o botão Processar arquivo XML — no topo do formulário, ou no menu de ações da lista.

Não é obrigatório fazer isso à mão: um agendamento processa as notas pendentes a cada 10 minutos. O botão serve para quem não quer esperar.

Durante o processamento, os itens da nota são casados com os produtos do catálogo pelo código interno ou código de barras (na prática, o ISBN). Item sem produto correspondente gera um produto novo com o nome, o código e o preço que constam no XML. O texto "SEM GTIN", que a NF-e usa para item sem código de barras, é ignorado — ele nunca vira código de produto.

Se algo der errado com uma nota, só ela fica com situação Erro, com a explicação registrada no histórico de mensagens do próprio registro; as demais do lote seguem normalmente. Corrigida a causa, basta processá-la de novo.

Formulário de uma nota no painel NFe XML, com dados fiscais do emitente e destinatário, chave de acesso e a lista de itens extraída do XML
A nota processada: identificação, dados fiscais de emitente e destinatário e os itens lidos do XML.

Baixar notas direto da SEFAZ

Com a sincronização configurada (acima), um agendamento diário consulta a SEFAZ para cada empresa habilitada e importa o que houver de novo. Para acompanhar ou disparar na hora:

  1. Abra FaturamentoNFe XMLSEFAZ.
  2. Cada linha é uma varredura: quando rodou, para qual empresa, quantos documentos vieram, quantas NF-e novas entraram, quantos cancelamentos foram registrados e quantas eram repetidas.
  3. Para não esperar o horário do agendamento, clique em Sincronizar agora no topo da lista.

As notas baixadas entram no mesmo painel NFe XML das demais, com a mesma trava de duplicidade; a lista SEFAZ é só o diário de bordo da sincronização. A empresa dona de cada nota é deduzida do próprio XML, pelo CNPJ.

Nota

A SEFAZ limita a frequência de consultas. Se uma varredura terminar com a situação Rate Limited, é normal: o serviço pediu uma pausa, e a próxima varredura continua de onde parou — o marcador Último NSU da empresa guarda o ponto.

Lista de varreduras SEFAZ com data, empresa, situação e contadores de documentos, NF-e importadas e cancelamentos
O diário das varreduras SEFAZ: cada linha diz o que a sincronização daquele dia trouxe.

Criar faturas a partir do XML

Uma nota processada pode virar fatura com os itens já preenchidos:

  1. Na lista FaturamentoNFe XMLNFe XML, selecione uma ou mais notas.
  2. No menu de ações, escolha Criar fatura de cliente (nota de saída, alguém nos deve) ou Criar fatura de fornecedor (nota de entrada, devemos a alguém).
  3. O sistema abre as faturas criadas, em rascunho, para conferência.

A fatura nasce com:

  • o parceiro da nota (que precisa ser de fato uma das partes do XML — o sistema confere o CNPJ);
  • a data de emissão do XML como data da fatura e o número da DANFE como referência;
  • uma linha por item cujo produto exista no catálogo, com quantidade, preço e desconto do XML;
  • a chave de acesso preenchida — é ela que mantém fatura e XML ligados.

Guardas do lote: nota cancelada ou já ligada a uma fatura é pulada; se já existe uma fatura ativa com a mesma chave e o mesmo tipo, o sistema apenas aponta para ela em vez de criar outra; um problema em uma nota não derruba as demais — a explicação fica no histórico do registro.

Exemplo

Na fatura, aba Outras informações, o campo Chave da NFe mostra os 44 dígitos e, ao lado, o vínculo com o registro do XML e o número da DANFE. Na lista de faturas, o filtro From NFe XML separa o que nasceu de XML do que foi digitado.

Cancelamentos

O cancelamento de uma NF-e é um documento próprio (um evento), separado da nota. Quando ele chega — por ZIP ou pela SEFAZ — o sistema localiza a nota pela chave de acesso e:

  • muda a situação dela para Cancelada e aplica a faixa vermelha no formulário;
  • preenche Data do cancelamento, Protocolo e Motivo, visíveis também como colunas e filtros na lista;
  • guarda o próprio XML do evento, anexado na seção Cancelamento da nota.

Nota cancelada não entra nos lotes de criação de fatura. A carta de correção não cancela nada e é ignorada.

Painel analítico

O menu FaturamentoNFe XMLPainel analítico (XML) abre, em outra aba, uma página que resume todas as notas não canceladas das empresas ativas. Além dele, a lista do painel oferece as visões de gráfico e de tabela dinâmica do próprio Odoo, com valor da DANFE e frete como medidas.

Regras e guardas

RegraO que ela garante
Chave de acesso única no painelUm XML por chave. Reimportar (ZIP, SEFAZ, anexo) nunca duplica.
Chave com exatamente 44 dígitos na faturaO campo Chave da NFe recusa qualquer outro formato.
Uma fatura ativa por chave e tipoA mesma NF-e não gera duas faturas de cliente (nem duas de fornecedor). Faturas canceladas liberam a chave.
Parceiro conferido contra o XMLA fatura só é criada se o CNPJ do parceiro for o do emitente ou o do destinatário da nota.
XML que não é NF-e é recusadoArquivos sem a chave de acesso ou fora do padrão da NF-e não entram.
CFOP desconhecido é criado sem efeitoA nota aparece nas listas normalmente e o código fica aguardando classificação — nada some em silêncio.
MultiempresaCada usuário vê apenas as notas das empresas às quais tem acesso.

Solução de problemas

A nota ficou com situação Erro. Abra o registro e leia a última mensagem do histórico — ela diz o que travou (um XML truncado, um campo fora do padrão). Corrigida a causa, clique em Processar arquivo XML de novo; a situação Erro é reprocessável.

Importei o ZIP e "faltam" notas. Quase sempre são repetidas: a chave de acesso já existia e a importação as pulou. Procure pela chave no campo de busca da lista. Verifique também o seletor de empresas — nota de outra empresa não aparece.

A fatura veio sem algum item. Itens cujo produto não existe no catálogo (e cujo código não permitiu criar um) são pulados na criação da fatura, e a nota recebe no histórico a lista dos produtos com problema. Cadastre ou corrija o produto e crie a fatura outra vez.

O cancelamento chegou antes da nota. Dentro de um mesmo ZIP isso é resolvido automaticamente (as notas entram primeiro, os cancelamentos depois). Se o evento veio sozinho, ele fica guardado e a nota é marcada assim que for importada pela mesma chave.

Veja também

  • Auditoria pelo XML — usa as notas importadas aqui para conferir o saldo consignado de cada livraria.
  • Notas de remessa — o outro lado fiscal: os documentos que a casa gera e que nunca cobram ninguém.