Nfe - Nota Fiscal Eletronica

Seu xml ta apresentando o seguinte problema :

XML INCONSISTENTE!

Início da validação…

Arquivo XML: C:\Users\Byter02\AppData\Local\Temp\35120503203556000254550010000002731000002739-nfe
Arquivo SCHEMA: C:\Unimake\UniNFe\schemas\NFe\procNFe_v2.00.xsd

Linha: 33 Coluna: 92 Erro: O elemento ‘nfeProc’ no espaço para nome ‘http://www.portalfiscal.inf.br/nfe’ apresenta conteúdo incompleto. Lista de possíveis elementos esperados: ‘protNFe’ no espaço para nome ‘http://www.portalfiscal.inf.br/nfe’.

…Final da validação

Cara valeu estava faltando a tag enviNFe agora esta ok

Obrigado.

Alencar…
sabe me dizer se tem problema se o certificado da receita tiver a assinatura SHA1withRSA e o meu certificado estar com sha256RSA?

[quote=alves.Felipe]Alencar…
sabe me dizer se tem problema se o certificado da receita tiver a assinatura SHA1withRSA e o meu certificado estar com sha256RSA?[/quote]

Não vejo problemas nisso, pois são independentes os usos.

Alencar

Boa tarde,
alguém conseguiu implementar a Carta Correcao Eletronica em SP, eu estou enviar o XML que vem de exemplo junto com o Download dos Schemas, mas só recebo a seguinte rejeição:
238-Rejeição: Versão dos Dados informada é superior à versão vigente

Olhei em todos os manuais e não vi nada descrevendo a versão correta, no arquivo de exemplo a versão é 1.00 e é essa que eu estou utilizando.

No schema a versão é essa mesmo 1.00:

<xs:simpleType name="TVerEvento">
		<xs:annotation>
			<xs:documentation>Tipo Versão do Evento</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:whiteSpace value="preserve"/>
			<xs:pattern value="1\.00"/>
		</xs:restriction>
	</xs:simpleType>

Alguem conseguiu fazer isso funcionar?

Valeu.

[quote=rafaelbtz]Boa tarde,
alguém conseguiu implementar a Carta Correcao Eletronica em SP, eu estou enviar o XML que vem de exemplo junto com o Download dos Schemas, mas só recebo a seguinte rejeição:
238-Rejeição: Versão dos Dados informada é superior à versão vigente
[/quote]

Esqueçam minha pergunta acima, eu fiquei tão bitolado no XML que não percebi que a versão que estava errada era a versão dos Dados do cabeçalho da mensagem SOAP.

Bom dia,

Gostaria de saber se alguémtem maiores informações com relação a mensagem abaixo.

Alertamos que, conforme já descrito no Manual de Orientação do Contribuinte versão 5.00, página 61, o Web Service nfeConsultaNF2 versão 2.0.0 será desativado a partir de 1o de Julho de 2012. Apenas a versão 2.0.1 (que permite a consulta de NF-e com eventos) ficará habilitada.

pois estou tentando implementar com 2.01 mas o sistema de homologação de SP está apenas funcionando com o 2.00.

se alguem tiver maiores informações peço que me responda.

att.

Leonardo.

Olá galera…

Bom me desculpem em estar movimentando um tópico já antigo, mas hj ele me resolveu o problema da tradução das mensagens de validação da NF-e…

então como minha colaboração envio o arquivo XMLSchemaMessages_pt_BR.properties que contém a tradução das mensagens.

realizando os passos que nosso amigo evandromib relatou e usando esse arquivo ai suas mensagens estarão em português.

Grato pela ajuda,

Alan

O consumo do WebService hoje o pessoal esta trabalhando muito Axis2 eu quero saber se tem como fazer a conexao com WebService usando HttpClient e envelopando tudo por este plugin o que voces me falam sobre isto ?

Bom dia Galera blz ?

Seguinte hj tenho um programa que desenvolvi que atualmente faz a assinatura e transmissão de nota usando certificado A3 , sem maiores problemas

a questão é que essa solução é distribuída em diversos cliente que utiliza variados (modelos,tipo) de dispositivos A3 entre (smartcard e toke) estou encontrando uma certa dificuldade em poder reconhecer esses variados tipos de dispositos

alguem ja fez ou tem alguma ideia de como resolver isso ?

tenho atualmente uma rotina que vare o system32 atraz de “dll” q seja compativel com os metodos PKCS11 , para smartcard até que resolveu , para token ja nao consegui ter mto sucesso

como uma opção tb tenho uma rotina que vare o repositorio do windows e monto uma lista com certificados disponiveis , até da certo consigo fazer a assinatura do xml , mais nao consigo autorizar conexao com web-service usando o repositorio do windows

enfim estou em um dilema rsrs

Consegui fazer comunicar via HttpClient se alguem tiver alguma sugestao favor postar.

public class HttpClientTest {
	private static StringBuffer xml = new StringBuffer();
	private static String url = "https://homologacao.nfe.fazenda.sp.gov.br/nfeweb/services/NfeStatusServico2.asmx";
	private static Integer tpAmb = 2;

	/**
	 * @param args
	 * @throws IOException 
	 * @throws FileNotFoundException 
	 */
	public static void main(String[] args) throws FileNotFoundException, IOException {
		// TODO Auto-generated method stub
		HttpClient httpClient = new DefaultHttpClient();
		tpAmb = 1;
		
		
		//gerarXmlStatus();
		gerarXmlContulta();
		
		//Certificado .JKS
		TrustManagerFactory tmf = null;
		try {
			KeyStore ts = KeyStore.getInstance("JKS", "SUN");
			ts.load(new FileInputStream("cacertsSP.jks"), "senhaCacerts".toCharArray());
			tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
			tmf.init(ts);
		} catch (NoSuchProviderException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (KeyStoreException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (NoSuchAlgorithmException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (CertificateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
		//
		
 		
		//Certificado .CER .PFX
		KeyManagerFactory kmf = null;
		try {
			KeyStore ks = KeyStore.getInstance("PKCS12", "SunJSSE");
			ks.load(new FileInputStream("CERTIFICADO.pfx"), "senhaCertificado".toCharArray());
			kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
			kmf.init(ks, "senhaCertificado".toCharArray());			
		} catch (NoSuchProviderException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();		
		} catch (KeyStoreException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (NoSuchAlgorithmException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (CertificateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (UnrecoverableKeyException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
		//
		
		// SSL
		SSLContext ctx = null;
		try {
			ctx = SSLContext.getInstance("TLS");
			ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
		} catch (NoSuchAlgorithmException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (KeyManagementException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}		
		//
		
		// socket
		SSLSocketFactory socketFactory = new SSLSocketFactory(ctx, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
		Scheme sch = new Scheme("https", 443, socketFactory);
		httpClient.getConnectionManager().getSchemeRegistry().register(sch);		
		//

		//File fileXml = new File("/Users/jvds/Desktop/jvds.xml");
		
		ByteArrayOutputStream out = new ByteArrayOutputStream();
		out.write(xml.toString().getBytes("UTF-8"));
		System.out.println(xml.toString());
		
		
		
		HttpPost httpPost = new HttpPost(url);
		//httpPost.setEntity(new InputStreamEntity(new FileInputStream(fileXml),fileXml.length()));
		httpPost.setEntity(new ByteArrayEntity(out.toByteArray()));
		httpPost.setHeader("Content-Type","application/soap+xml;charset=UTF-8");
		
		HttpResponse response = httpClient.execute(httpPost);
		BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent(),"UTF-8"));
		String linha = br.readLine();
		while (linha != null) {
			System.out.println(linha);
			linha = br.readLine();
		}

	}


	private static StringBuffer gerarXmlStatus() {
		// TODO Auto-generated method stub		
		url = "https://homologacao.nfe.fazenda.sp.gov.br/nfeweb/services/NfeStatusServico2.asmx";
		url = "https://nfe.fazenda.sp.gov.br/nfeweb/services/nfestatusservico2.asmx";
		//url = "https://homologacao.nfe.fazenda.sp.gov.br/cteWEB/services/cteStatusServico.asmx";
		
		
		xml.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
		xml.append("<soapenv:Envelope xmlns:soapenv=\"http://www.w3.org/2003/05/soap-envelope\">");
		xml.append("<soapenv:Header>");
		xml.append("<nfeCabecMsg xmlns=\"http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2\">");
		xml.append("<versaoDados>2.00</versaoDados><cUF>35</cUF>");
		xml.append("</nfeCabecMsg>");
		xml.append("</soapenv:Header>");
		xml.append("<soapenv:Body>");
		xml.append("<nfeDadosMsg xmlns=\"http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2\">");
		xml.append("<consStatServ xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"2.00\">");
		xml.append(String.format("<tpAmb>%d</tpAmb><cUF>35</cUF><xServ>STATUS</xServ>",tpAmb));
		xml.append("</consStatServ>");
		xml.append("</nfeDadosMsg>");
		xml.append("</soapenv:Body>");
		xml.append("</soapenv:Envelope>");
		return xml;
	}
	
	private static StringBuffer gerarXmlContulta() {
		// TODO Auto-generated method stub
		//url = "https://homologacao.nfe.fazenda.sp.gov.br/nfeweb/services/NfeRetRecepcao2.asmx";
		url = "https://nfe.fazenda.sp.gov.br/nfeweb/services/nferetrecepcao2.asmx";
		xml.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
		xml.append("<soapenv:Envelope xmlns:soapenv=\"http://www.w3.org/2003/05/soap-envelope\">");
		xml.append("<soapenv:Header>");
		xml.append("<nfeCabecMsg xmlns=\"http://www.portalfiscal.inf.br/nfe/wsdl/NfeRetRecepcao2\">");
		xml.append("<versaoDados>2.00</versaoDados><cUF>35</cUF>");
		xml.append("</nfeCabecMsg>");
		xml.append("</soapenv:Header>");
		xml.append("<soapenv:Body>");
		xml.append("<nfeDadosMsg xmlns=\"http://www.portalfiscal.inf.br/nfe/wsdl/NfeRetRecepcao2\">");
		xml.append("<consReciNFe xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"2.00\">");
		xml.append(String.format("<tpAmb>%d</tpAmb><nRec>351001262045477</nRec>",tpAmb));
		xml.append("</consReciNFe>");
		xml.append("</nfeDadosMsg>");
		xml.append("</soapenv:Body>");
		xml.append("</soapenv:Envelope>");
		return xml;
	}
}

Estou com uma duvida simples, no XML existe uma TAG chamada “cNF”, porém estou na duvidaem relação ao valor que tem que ter nela, sei que ela precisa ter no maximo 8 digitos (Ex: “00000365”), porém andei lendo e parece que este valor é gerado aleatoriamente, não entendi bem.

Tem a TAG “nNF”, nela fica o numero da nota, o cNF seria o valor do Id(PK) da tabela?
obs.: Li em um outro site que seria um trech da CHAVE (pega 8 dos 43 digitos da chave), não entendi bem isso.

Agradeço qualquer esclarecimento a respeito disso.

Minha pergunta foi respondida aqui:
http://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&ved=0CDUQFjAC&url=http%3A%2F%2Fnf-eletronica.com%2Fblog%2F%3Fdl_id%3D25&ei=yySAUJjzJYnA0QGz0IDABg&usg=AFQjCNG8uai6ZxgMxKDAyu1qNzLRfqUVnA

Coloquei um certificado A1 de SP novo esta semana e agora minha aplicacao parou de funcionar so estou tomando 403-Forbidden alguem saberia me dizer o sefaz modificou alguma coisa.

Obrigado !!!

[quote=Michel.Montenegro]Estou com uma duvida simples, no XML existe uma TAG chamada “cNF”, porém estou na duvidaem relação ao valor que tem que ter nela, sei que ela precisa ter no maximo 8 digitos (Ex: “00000365”), porém andei lendo e parece que este valor é gerado aleatoriamente, não entendi bem.

Tem a TAG “nNF”, nela fica o numero da nota, o cNF seria o valor do Id(PK) da tabela?
obs.: Li em um outro site que seria um trech da CHAVE (pega 8 dos 43 digitos da chave), não entendi bem isso.


[/quote]

O conteúdo da tag cNF deve ser um valor aleatório de 8 dígitos que será parte determinante da segurança no acesso aos dados da NFe.
Veja o caso do Carrefour, o qual foi publicado aqui por mim. Eles usam (ou usavam) sempre o número “00000000” neste campo.
Com isso, consegui consultar todas as notas de um mês inteiro a partir de uma chave qualquer (NFe de uma compra minha).
Nesta consulta, consigo ler os dados do comprados (nome, enddereco, cpf, telefone, etc…) e os produtos comprados por estes!

Se precisar mais esclarecimentos, pode solicitar.

Alencar

[quote=jvds@bol.com.br]Coloquei um certificado A1 de SP novo esta semana e agora minha aplicacao parou de funcionar so estou tomando 403-Forbidden alguem saberia me dizer o sefaz modificou alguma coisa.

Obrigado !!![/quote]

Verifique que tamanho tem o arquivo .pfx ou .p2
Se tiver menos que 7KB, não está contido nele a cadeia validadora do certificado.

Se é este o caso, importe o A1 no IE e reexporte com toda a cadeia junto.

Alencar

Realmente so esta com 4K a cadeia inteira o que seria ?

Obrigado !!!

[quote=jvds@bol.com.br]Realmente so esta com 4K a cadeia inteira o que seria ?

Obrigado !!![/quote]

Algumas AC’s, ao emitirem o certificado, não incluem a cadeia na emissão.
Com isso, o seu certificado não tem validade, pois não pode ser "validado"
como sendo emitido por uma AC válida ICP-Brasil.

É só importar no IE e reexportar com a flag de “Incluir toda a cadeia…” marcada.
O arquivo gerado terá entre 7 e 10KB, dependendo de quem o emitiu.

Alencar

Fiz isto ele me gerou um arquivo com 7K certificado.p7b so que hora que fui rodar deu a seguinte exception

Exception in thread "main" java.io.IOException: DER input, Integer tag error
	at sun.security.util.DerInputStream.getInteger(DerInputStream.java:151)
	at com.sun.net.ssl.internal.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1202)
	at java.security.KeyStore.load(KeyStore.java:1185)
	at br.com.jvds.ws.tdd.HttpClientTest.main(HttpClientTest.java:78)

[quote=jvds@bol.com.br]Fiz isto ele me gerou um arquivo com 7K certificado.p7b so que hora que fui rodar deu a seguinte exception

Exception in thread "main" java.io.IOException: DER input, Integer tag error at sun.security.util.DerInputStream.getInteger(DerInputStream.java:151) at com.sun.net.ssl.internal.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1202) at java.security.KeyStore.load(KeyStore.java:1185) at br.com.jvds.ws.tdd.HttpClientTest.main(HttpClientTest.java:78) [/quote]

Algo falhou na exportação.
Tem que marcar a exportação da PK junto e gerar um .pfx ou .p12
Não exporte no padrão .p7b

Alencar

Cara valeu mesmo pela dica resolveu o problema.
Mais uma que aprendi hoje.

Obrigado !!!