Nfe - Nota Fiscal Eletronica

[quote]
Que eu saiba, é só você consultar a nota no SEFAZ do estado em que ela foi emitida.
O retorno da consulta traz uma assinatura digital.
Se você assinar a nota com um certificado diferente, a cadeia de Assinatura Digital com serteza será diferente.

Atenciosamente,
Fernando Hirata Alexandre[/quote]

Mas alguem sabe como validar a adulteracão de notas, por exemplo: o fornecedor emite uma nota de R$ 1.000,00, envia ao sefaz, recebe o retorno, empacota o retorno só que depois disso ele vai manualmente no XML e altera o valor pra R$ 500,00. Se eu consultar a nota no SEFAZ o protocolo vai estar igual MAS a assinatura está errada.

No visualizador da receita tem um botaozinho (o do meio do painel de validações) que valida a assintura, se você adulterar a nota como eu falei ai em cima e rodar esse botãozinho ele vai dizer que a assinatura diverge.

Como ele faz isso? Só imagino um jeito ele tem que ter assinado de novo para validar.

[quote]Boa noite,

Alguém está tendo problemas na consulta de NFe de homologação do Paraná… [/quote]

resolvi assim

http://www.javac.com.br/jc/posts/list/62-paranasolved.page

Meu sistema é WEB e está praticamente concluído, faltando apenas umas besteirinhas quanto aos itens comuns.
Porém, eu gostaria de assinar e enviar a NF-e com o certificado no lado do cliente.
Isso me possibilitará deixar o servidor em qualquer datacenter e utilizar certificados A3 sem dificuldades.
Estou pedindo uma forcinha para o grupo.

Eu estou tendo bastante problema de retorno “999 - Erro não catalogado” da receita do Paraná… vcs sabem como contornar esse erro ou me dizer qual o problema com o meu sistema no envio de notas?

Não sei se tentou, mas sugiro que copie e cole o xml neste enderecço: http://www.sefaz.rs.gov.br/NFE/NFE-VAL.aspx
Geralmente ajuda.

Alguem ja viu, ou implementou um validador de conteúdo da nf-e ?

Substitua “this.mensagens.add(bundle.getMens(…” por “System.out.println(…” para seus testes:
Acrescente algumas verificações baseado na pag.34 do Manual do Contribuinte e ficará muito bom.

package br.com.cts.sge.nfe.apoio;

import java.io.File;   
import java.io.IOException;   
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.DocumentBuilder;   
import javax.xml.parsers.DocumentBuilderFactory;   
import javax.xml.parsers.ParserConfigurationException;   
import javax.xml.transform.Source;   
import javax.xml.transform.dom.DOMSource;   
import javax.xml.transform.stream.StreamSource;   
import javax.xml.validation.Schema;   
import javax.xml.validation.SchemaFactory;   
import javax.xml.validation.Validator;   
  
import org.w3c.dom.Document;   
import org.xml.sax.ErrorHandler;   
import org.xml.sax.SAXException;   
import org.xml.sax.SAXParseException;   

import br.com.cts.sge.util.Bundle;
import br.com.cts.sge.util.Messages;

public class XMLXSDValidate implements ErrorHandler { 
	
	private List<Messages> mensagens = new ArrayList<Messages>();
	private Bundle bundle = new Bundle();

	private String xmlInput;   
	private String xsdInput;   

	public XMLXSDValidate(String xmlInput, String xsdInput) { 

		this.xmlInput = xmlInput;   
		this.xsdInput = xsdInput;   
	}   

	public String getXmlInput() {   
		return xmlInput;   
	}   

	public void setXmlInput(String xmlInput) {   
		this.xmlInput = xmlInput;   
	}   

	public String getXsdInput() {   
		return xsdInput;   
	}   

	public void setXsdInput(String xsdInput) {   
		this.xsdInput = xsdInput;   
	}   

	public void validate() throws Exception {   
		try {   

			//Setting Xerces-J parser because the standard parser not recognize <import ...>   
			System.setProperty("javax.xml.parsers.DocumentBuilderFactory",   
			"org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");   

			// Parse an XML document em um DOM tree.   
			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();   
			factory.setNamespaceAware(true);   
			factory.setValidating(false);   
			DocumentBuilder parser = factory.newDocumentBuilder();   
			Document document = parser.parse(new File(xmlInput));   

			// Cria um SchemaFactory capaz de compreender WXS schemas.   
			SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");     

			// carrega um WXS schema, representada por uma instacia Schema.   
			Source schemaFile = new StreamSource(new File(xsdInput));   
			Schema schema = schemaFactory.newSchema(schemaFile);   

			// Cria um objeto Validator que pode ser usado para validar   
			// uma instancia document.   
			Validator validator = schema.newValidator();   
			validator.setErrorHandler(this);   


			// Valida o Dom tree   
			validator.validate(new DOMSource(document));   
		} catch (ParserConfigurationException e) {   
			this.mensagens.add(bundle.getMens(e.getMessage(), ""));
		} catch (SAXException e) {   
			this.mensagens.add(bundle.getMens(e.getMessage(), ""));
		} catch (IOException e) {   
			this.mensagens.add(bundle.getMens(e.getMessage(), ""));
		}   
	}   

	@Override   
	public void error(SAXParseException exception) throws SAXException {   
		this.mensagens.add(bundle.getMens("ERROR: " + exception.getLocalizedMessage(), ""));
	}   

	@Override   
	public void fatalError(SAXParseException exception) throws SAXException {   
		this.mensagens.add(bundle.getMens("FATAL" + exception.getLocalizedMessage(), ""));
	}   

	@Override   
	public void warning(SAXParseException exception) throws SAXException {   
		this.mensagens.add(bundle.getMens("WARNING" + exception.getLocalizedMessage(), ""));
	}   

	public List<Messages> getMensagens(){
		return mensagens;
	}
}

Chamada:

			String schemas = this.workDir + "schemas/enviNFe_v2.00.xsd";
			XMLXSDValidate validate = new XMLXSDValidate(arquivoXml, schemas);

			this.mensagensNfe.add(bundle.getMens("Inicio dos testes de validação", "Ok!"));
			
			try {
				validate.validate();
				List<Messages> msgs = validate.getMensagens();
				for (Messages messages : msgs) {
					this.mensagens.add(messages);
				}
				this.mensagensNfe.add(bundle.getMens("Validação concluida...", ""));
			} catch (Exception ex) {   
				this.mensagens.add(bundle.getMens("Encontradas Falhas...", ""));
			}   

Este código peguei por aqui mesmo. Apenas adaptei para meu projeto.

Inicio dos testes de validação
ERROR: cvc-elt.1: Não pode localizar a declaração do elemento ‘NFe’.
Validação concluida…

Substitua “this.mensagens.add(bundle.getMens(…” por “System.out.println(…” para seus testes:
Acrescente algumas verificações baseado na pag.34 do Manual do Contribuinte e ficará muito bom.

Este código peguei por aqui mesmo. Apenas adaptei para meu projeto.[/quote]

Aqui da erro estranho… acontece com vc também? eu postei o xml em anexo

[quote=rafaelbtz][quote]
Que eu saiba, é só você consultar a nota no SEFAZ do estado em que ela foi emitida.
O retorno da consulta traz uma assinatura digital.
Se você assinar a nota com um certificado diferente, a cadeia de Assinatura Digital com serteza será diferente.

Atenciosamente,
Fernando Hirata Alexandre[/quote]

Mas alguem sabe como validar a adulteracão de notas, por exemplo: o fornecedor emite uma nota de R$ 1.000,00, envia ao sefaz, recebe o retorno, empacota o retorno só que depois disso ele vai manualmente no XML e altera o valor pra R$ 500,00. Se eu consultar a nota no SEFAZ o protocolo vai estar igual MAS a assinatura está errada.

No visualizador da receita tem um botaozinho (o do meio do painel de validações) que valida a assintura, se você adulterar a nota como eu falei ai em cima e rodar esse botãozinho ele vai dizer que a assinatura diverge.

Como ele faz isso? Só imagino um jeito ele tem que ter assinado de novo para validar.
[/quote]

conseguiu alguma coisa? eu tb estava tentando validar a assinatura, mas não sei como.
mas não entendi muito bem o seu modo de pensar. Pq assinar de volta?
Pegando o seu exemplo, do cara alterar o valor depois de enviar a nfe. A assinatura vai ficar inválida, certo? e como iria
comparar uma assinatura inválida com a sua “nova assinatura”?

Veja se está usando o arquivo xsd correto.
O enviNFe_v2.00.xsd, é do lote na forma em que é enviado à Receita.
Com o XML que você preparaou, tente com nfe_v2.00.xsd. Acho que dará certo.

Veja se está usando o arquivo xsd correto.
O enviNFe_v2.00.xsd, é do lote na forma em que é enviado à Receita.
Com o XML que você preparaou, tente com nfe_v2.00.xsd. Acho que dará certo.[/quote]

Correto, só tem um problema o nfe_v2.00.xsd só faz validação de estrutura do documento…
Não verifica o conteudo dos campos, exemplo: Total dos itens Difere do Total da Nota

[quote=TheKill]

Correto, só tem um problema o nfe_v2.00.xsd só faz validação de estrutura do documento…
Não verifica o conteudo dos campos, exemplo: Total dos itens Difere do Total da Nota[/quote]

Realmente, estas críticas têm que ser acrescentadas.
Mesmo assim, acho que ajuda bastante com caracteres incorretos, tamanho de campo incorreto, ausencia de campo obrigatório, entre outros.
Ainda estou concluindo estas críticas.

[quote=cinei][quote=TheKill]

Correto, só tem um problema o nfe_v2.00.xsd só faz validação de estrutura do documento…
Não verifica o conteudo dos campos, exemplo: Total dos itens Difere do Total da Nota[/quote]

Realmente, estas críticas têm que ser acrescentadas.
Mesmo assim, acho que ajuda bastante com caracteres incorretos, tamanho de campo incorreto, ausencia de campo obrigatório, entre outros.
Ainda estou concluindo estas críticas.[/quote]

Oque estaria faltando é a questao das paginas 33 a 44 do manual de integração

[quote=alves.Felipe]

conseguiu alguma coisa? eu tb estava tentando validar a assinatura, mas não sei como.
mas não entendi muito bem o seu modo de pensar. Pq assinar de volta?
Pegando o seu exemplo, do cara alterar o valor depois de enviar a nfe. A assinatura vai ficar inválida, certo? e como iria
comparar uma assinatura inválida com a sua “nova assinatura”?[/quote]

Tive que dar uma parada nesse projeto e ainda não consegui, mas aquela minha ideia esquece não funciona.

Alguém já fez alguma coisa sobre CC-e ??

A estrutura e o conteúdo do Documento Fiscal Eletrônico não são válidos.

Não consigo encontrar o motivo … alguém conseguiria me ajudar?

<?xml version="1.0" encoding="UTF-8" ?>
  • 31 79887717 VENDA PROD 2 55 1 4137 2011-05-09 1 3118601 1 1 4 1 1 0 1.00
  • 42900316000180 'NOW QUIMICA INDUSTRIA E COMERCIO LTDA-EPP' 'NOW QUIMICA'
  • 'RUA PETUNIA' '115' '' 'CHACARAS BOA VISTA' 3118601 'Contagem' MG 1868170620093 404430190 4684299 1
  • 33224254000142 'MGS -MINAS GERAIS ADM. SERVICOS S/A'
  • 'AV GETULIO VARGAS,1420 -5º ANDAR' '1420' '' 'SAVASSI' 3106200 'Belo Horizonte' MG 30112021 1058 'Brasil' 0620067990060 ''
  • 103/05 'W 80 SUPERCONCENTRADO LOTE151-152 VAL 06/05/ -09/05/2012 LOTE 34 - 35 VAL 09/05/2012' 38089429 5101 'GL' 1000.0000 16.6700000000 16670.00 'GL' 1000 16.6700000000 1 '' 1
  • 0 400
  • 99 0.0000 0.0000 0.00
  • 99 0.0000 0.0000 0.00
  • 0 0 0 0 16670.00 0 0 0 0 0 0 0 0 16670.00
  • 0
  • 42900316000180 'NOW QUIMICA INDUSTRIA E COMERCIO LTDA-EPP' 1868170620093 'RUA PETUNIA, 115 Bairro CHACARAS BOA VISTA MG Conta' 'Contagem' MG
  • +KvAcGxApeGOfZRGi+yxFVXF7YQ= o+e1ekxjRJJn5Z+wjHc317oSo6ulYgBjqxjYCLUjh4yG8WRCB1fyWO93MyVHsgiuM5gRFsLQ3PBPHE8Xu9OHwGMvNi+Quf/wu10vJGFzcEvixs2IPQdyN5MUdDi3rZsM5Jgz/xN7D90JMd5PKP+xHQOQtYyu7eSQE5koYsALcao=
  • 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
  • 1 1_0_15 31110542900316000180550010000041371798877174 2011-05-09T09:52:43 131110364950819 +KvAcGxApeGOfZRGi+yxFVXF7YQ= 100 Autorizado o uso da NF-e

[quote=Fredidh]A estrutura e o conteúdo do Documento Fiscal Eletrônico não são válidos.
Não consigo encontrar o motivo … alguém conseguiria me ajudar?[/quote]

Não entendi qual o problema.
A nota não está processada e autorizada?

Esta tudo correto ! Chave de acesso, a nota foi validada,assinada e transmitida corretamente. Ai foi gerado o arquivo XML.
No site da receita tem o programa Visualizador - Java Web Start, quando clico no programa para verificar a estrutura/conteúdo do documento aberto
ai da a mensagem (“A estrutura e o conteúdo do Documento Fiscal Eletrônico não são válidos.”). Ja verifiquei a estrutura do arquivo junto ao manual do contribuiente
disponibilizado pela receita e nada ! Não consigo achar a solução.

[quote=Fredidh]Esta tudo correto ! Chave de acesso, a nota foi validada,assinada e transmitida corretamente. Ai foi gerado o arquivo XML.
No site da receita tem o programa Visualizador - Java Web Start, quando clico no programa para verificar a estrutura/conteúdo do documento aberto
ai da a mensagem (“A estrutura e o conteúdo do Documento Fiscal Eletrônico não são válidos.”). Ja verifiquei a estrutura do arquivo junto ao manual do contribuiente
disponibilizado pela receita e nada ! Não consigo achar a solução.[/quote]
Cola o seu xml nesse site e manda validar… acho que o erro vai ser mais preciso
http://www.sefaz.rs.gov.br/NFE/NFE-VAL.aspx