Ir para conteúdo
  • Cadastre-se

dev botao

Validação NFe


  • Este tópico foi criado há 2772 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Caros, tudo bem?

Como fazer toda validação da NFe antes de enviar para a Sefaz? Eu gostaria de saber os erros que retornam do comando ".Enviar" antes de processar essa nota na Sefaz, tem como fazer isso? Pelo que eu entendi do comando ".Enviar", ele me retorna as rejeições, mas se deu tudo certo ele já processa essa nota na Sefaz, eu gostaria de fazer essa validação antes de enviar, tem como?

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde,

Primeiramente vamos esclarecer o que vem a ser erro de validação e rejeição.

Rejeição é uma mensagem de erro gerada pela SEFAZ ao processar o lote de NF-e recebido por ela.

Exemplo de rejeição: o total da nota difere da somatória dos itens.

Erro de validação é uma mensagem de erro gerada pelo componente.

Exemplo de erro de validação: CNPJ do destinatário contem apenas 13 dígitos sendo que o correto é 14.

Por outro lado se você informar um CNPJ com 14 dígitos iguais a "6" não vai resultar em erro de validação uma vez que a informação tem 14 dígitos, mas com certeza a nota será rejeitada pela SEFAZ, pelo simples fato do CNPJ informado ser inválido.

Acredito que quanto a isso ficou claro.

Agora vamos ao que interessa.

A sua aplicação terá que possui basicamente 3 procedures, a primeira vai configurar o componente, a segunda vai alimentar o componente com os dados pertinentes a venda e a terceira vai Emitir a nota e atualizar o banco de dados.

No que diz respeito a Emitir você pode usar o método Enviar.

Entenda como Emitir os seguintes passos: Gerar o XML, Assinar, Validar, Enviar para SEFAZ, Atualizar o XML assinado com o protocolo de autorização e imprimir o DANFE.

Todos os passos acima são executados automaticamente pelo método Enviar.

Você notou que ele realiza a validação do XML gerado antes do envio?

Espero ter ajudado.

 

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Oi Italo, ajudou sim.

Aqui na empresa temos a seguinte situação:

Podemos ter pedidos com mais de 3000 items e isso me faz gerar mais de uma nota, o meu problema é que eu gera todos XML's na pasta e depois começo a enviar para a SEFAZ, mas se no ultimo XML por exemplo, me retorna uma rejeição da SEFAZ, eu já vou ter os outros dois transmitidos e terei que fazer o cancelamento deles por causa desse ultimo. O que posso fazer nesse caso? Por isso te mandei a pergunta se eu conseguiria validar todas rejeições desses XML's antes de enviar, é para evitar esses problemas.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Se ocorrer erro de validação todo o processo é abortado e nada é enviado.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Não entendi... Eu tenho uma nota com muitos pedidos e foi preciso dividir em mais de uma nota, 3 por exemplo, dai eu faço o seguinte:

-Gero os 3 xml's na pasta;

-Depois envio o primeiro usando o comando de Validar e depois Enviar, e a NF foi Autorizada;

-Depois envio o segundo usando o comando de Validar e depois Enviar, e a NF foi Autorizada;

-Depois envio o terceiro e ela sofreu uma rejeição do comando Enviar; com isso eu preciso cancelar as outras duas notas que já foram enviadas;

Hoje estou trabalhando assim, tem algo que eu posso fazer para verificar as rejeições das 3 notas antes de enviar e não ter esse problema?

Link para o comentário
Compartilhar em outros sites

  • Consultores

Por favor, rejeição é uma mensagem de erro da SEFAZ e não do componente, como já explicado anteriormente.

Vamos usar os termos corretos, antes do envio é erro de validação e não rejeição.

Suponha que você realizou uma venda com 300 itens, mas resolveu dividir em 3 notas.

Muito bem, você vai ADD as 3 notas com os seus 100 itens cada.

Lembre-se que o componente ACBrNFe possui uma propriedade chamada NotasFicais que nada mais é que uma lista e você pode ADD até 50 notas, limite este definido pela SEFAZ, uma vez que o lote de notas pode conter no máximo 50 notas e o lote tem que ter um tamanho total de 500 Kbytes.

Sendo assim essas notas podem ser de clientes diversos, não necessariamente todas para o mesmo cliente.

Voltando ao exemplo, o componente carregado com 3 notas.

Ao executar o método Enviar este vai gerar um XML para cada nota, vai assinar cada um deles e submete-los ao validador.

Suponha que na terceira nota esta faltando o endereço do destinatário, o componente vai levantar uma exceção para apresentar o erro de validação e o método Enviar é abortado, ou seja, nenhuma nota é enviada para SEFAZ.

Nessa situação o usuário deverá corrigir o cadastro do destinatário informando o endereço do mesmo.

Na minha aplicação, o usuário após feita a correção, deve executar a opção Emitir NF-e novamente, onde será apresentado a lista de notas não emitidas, seleciona-las e clicar no botão [Emitir].

Ao fazer isso novamente será gerado, assinado e validado todas as notas novamente antes do envio e se novamente detectar outro erro, novamente a exceção será levantada e será apresentado o erro de validação.

Espero que tenha ficado mais claro.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Italo, na minha duvida eu usei o termo "Depois do Envio" e perguntei sobre "Rejeição", então não entendi onde usei o termo errado. Ah não ser no final que eu perguntei sobre como obter a Rejeição antes do envio, acho que foi isso que ficou confuso, eu me expressei mal, me desculpe. Vamos continuar com a dúvida.

Vamos supor que o Lote com as 3 notas passaram pela etapa de Validação e foi para a etapa de Envio. Se na ultima nota der a Rejeição de NCM inexistente, por exemplo, ele vai abortar o envio de todas ou apenas dessa?

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite,

Como dito antes a Rejeição é uma mensagem da SEFAZ, sendo assim a nota já foi enviada.

Se das 3 notas uma foi rejeitada, o que você deve fazer é corrigir o dado acusado pela SEFAZ como incorreto e enviar novamente somente a nota rejeita uma vez que as outras duas foram autorizadas, não faz nenhum sentido você cancelar as outras duas e enviar tudo novamente.

Isso é possível de ser controlado, você pode ter uma Tabela de Pedidos que contem os 300 itens e uma outra Tabela de Notas com os itens já separados em 3 notas.

Caso você opte por apenas uma Tabela de Itens, tenha um campo para identificar o numero do pedido e outro para o numero da nota.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...