Nota fiscal eletronica em java

Boa noite, galera.
Acabei de me cadastrar no forum e me perdoem se eu cometer alguma gafe.
O fato é que, terminei um curso tecnico em informatica com habilitação em desenvolvimento de sistemas e consegui o meu primeiro cliente.
O problema é que o meu cliente precisa se adequar a nota fiscal eletronica. Pesquisei sobre o funcionamento desta nota, mas a sua concepção ainda me é muito vaga.
Gostaria de saber o que preciso fazer passo a passo, pois estou meio perdido. Tenho que fazer um modulo de vendas no software que vou criar e pensei que, após gerar a venda quando necessitasse gerar a nf-e apenas recuperaria os dados desta venda no banco de dados e geraria o xml destes dados.
Será que alguém pode me ajudar.
Preciso desenvolver isto em java.

Abraços!!!

Cara … vc tem que entrar no site da secretaria da fazenda, e procurar pelos pdfs com as regras para desenvolvimento deste módulo… vai te dar um trabalhinho…he he he
lá vc acha também um programa em java que faz o trabalho de validação e geração do xml…

Bem basicamente, é isso. Pode-se gerar a DANFE (Documento Auxiliar da NFe) também.

Você tem que atender a diversas restrições que a Secretaria da Fazenda impõe. Essas restrições você encontra no site da SEFAZ. Lá tem uns manuais (os chamados Manuais de Integração) que dizem quais campos devem ir no XML, o tamanho de cada campo, o tipo e se é obrigatório ou não. Apesar de ser bem formal, é fácil de entender grande parte do que tá escrito lá.

E, de uma forma ou de outra, não vai ter como escapar da leitura do manual. Para dar manutenção, por exemplo, alguns campos se tornam obrigatórios. Assim, você frequentemente vai consultar a lista de tags e o conteúdo do Manual.

Pra dar um auxílio, pode usar o validador do RS com os xmls gerados pelo seu programa.

A primeira coisa é ler o Manual de Integração do Contribuinte, LEITURA OBRIGATÓRIA.

Depois disso quando tu começar a implementação e estiver sofrenndo com os xml’s, certificados e assinatura dos arquivos voce pode ver alguns topicos aqui do GUJ, onde isto foi amplamente discutido, com exemplos e tudo, achei estes aqui numa busca rapida no google, deve ter mais:

http://www.guj.com.br/posts/list/83758.java
http://www.guj.com.br/posts/list/52035.java
http://www.guj.com.br/posts/list/110442.java

Estes tres acho que são os maiores, e ainda tem as API’s prontas como a da caelum que nem sei se terminaram, veja aqui: http://www.guj.com.br/posts/list/135161.java, tem um outro cara que fez uma tambem

1 curtida

valeu Fred,
Estou lendo o manual de integração e assim que eu terminar vou dar uma olhada nos links que vc me passou.

t+

Só por curiosidade, essa NF-e é de produtos ou serviços?

Produtos.

Não perca tempo reinventando a roda, ainda mais sendo o seu primeiro projeto. Use o Uninfe ou o ACBrNFe. Depois que já estiver rodando, caso se interesse, implemente você mesmo o que estas ferramentas fazem. Apesar da linguagem principal dos dois, C# e Delphi, você pode integrar o seu sistema usando Java sem problemas.

Bom dia pessoal, preciso desenvolver uma solução para gerar e transmitir notas fiscais eletrônicas,estou com algumas dúvidas, ainda não sei o que realmente fazer pois como a receita já possui um sistema para transmitir nfe (http://www.nfe.fazenda.gov.br/portal/emissor.aspx), então estava querendo somente criar um sistema para gerar o xml das notas e utilizar este da receita para transmitir, mas não sei se esta seria uma boa solução, então aí estão as dúvidas, este sistema da receita consegue validar e transmitir as notas perfeitamente? Devo utilizá-lo ou criar um outro para fazer isto?
O que devo fazer?

Se puderem me ajudar ficaria grato.

atenciosamente,

Samuel

Senhores, boa tarde.

Estou desenvolvendo, também, um aplicativo de NFe, e durante minhas pesquisas encontrei um blog muito legal que nos dá informações e tutoriais sobre o mesmo.

Então gostaria de compartilhar no fórum.

Abaixo segue o link.

http://www.caiooliveira.com.br

E abaixo um cronograma legal para seguir.
http://www.caiooliveira.com.br/?p=230

Att,

[quote=SamuelJava]Bom dia pessoal, preciso desenvolver uma solução para gerar e transmitir notas fiscais eletrônicas,estou com algumas dúvidas, ainda não sei o que realmente fazer pois como a receita já possui um sistema para transmitir nfe (http://www.nfe.fazenda.gov.br/portal/emissor.aspx), então estava querendo somente criar um sistema para gerar o xml das notas e utilizar este da receita para transmitir, mas não sei se esta seria uma boa solução, então aí estão as dúvidas, este sistema da receita consegue validar e transmitir as notas perfeitamente? Devo utilizá-lo ou criar um outro para fazer isto?
O que devo fazer?

Se puderem me ajudar ficaria grato.

atenciosamente,

Samuel[/quote]

Cara… Trabalho pra um rapaz que tem um sistema em xHarbour e ele faz simplmesmenteo seguinte, gera um arquivo .txt mesmo e importa no emissor gratuito da sefaz, lá ele assina, valida e transmite normalmente todas as notas sem problema algum a ñ ser que falte alguma informação obrigatória no próprio arquivo de texto… e quando falta, vc consegue ver o que falta pelo próprio emissor…
qualquer coisa da uns toqs aee…

[quote=fael.programer][quote=SamuelJava]Bom dia pessoal, preciso desenvolver uma solução para gerar e transmitir notas fiscais eletrônicas,estou com algumas dúvidas, ainda não sei o que realmente fazer pois como a receita já possui um sistema para transmitir nfe (http://www.nfe.fazenda.gov.br/portal/emissor.aspx), então estava querendo somente criar um sistema para gerar o xml das notas e utilizar este da receita para transmitir, mas não sei se esta seria uma boa solução, então aí estão as dúvidas, este sistema da receita consegue validar e transmitir as notas perfeitamente? Devo utilizá-lo ou criar um outro para fazer isto?
O que devo fazer?

Se puderem me ajudar ficaria grato.

atenciosamente,

Samuel[/quote]

Cara… Trabalho pra um rapaz que tem um sistema em xHarbour e ele faz simplmesmenteo seguinte, gera um arquivo .txt mesmo e importa no emissor gratuito da sefaz, lá ele assina, valida e transmite normalmente todas as notas sem problema algum a ñ ser que falte alguma informação obrigatória no próprio arquivo de texto… e quando falta, vc consegue ver o que falta pelo próprio emissor…
qualquer coisa da uns toqs aee…[/quote]

Data da pergunta: 27/04/2010
Data da resposta: 06/02/2013

Alguém com o coração bondoso que possa ensinar o processo de negocio da NFE? Preciso implementar isso em um sistema financeiro.

Ja leu o manual de integração do contribuinte(agora na versao 5 chamado de: Manual de Orientacao do Contribuinte)?? A primeira coisa a se fazer quando vai implementar a NFe é ler este cara.

Feito isto tu ja vai ter idéia de quais dados e webservices devem ser usados para transmitir a NFe.

Agora vem o teu sistema, ele ja emite nota fiscal normal? Se sim entao ele ja tem todo o processo de emissão de notas, bastando agora mudar para o modelo da NFe, agora se o teu sistema não tem nada disso pronto, AI COMPLICOU, porque isto envolve varias legislações especificas de cada estado, sobre tributação, impostos, etc, etc. A melhor pessoal pra saber disto é um contator, que trabalha com isto e sabe como cada empresa se encaixa e o que e como deve ser enviado na NFe, ou então tem que ler muito a legislação pra pegar tudo.

O resto, se for dúvida técnica, volte aqui no GUJ e procure por NFe, tem uns 2 ou 3 tópicos BEM GRANDES, com tudo que vc precisa saber sobre certificação digital e como fazer a coisa toda.

[quote=fredferrao][quote=fael.programer][quote=SamuelJava]Bom dia pessoal, preciso desenvolver uma solução para gerar e transmitir notas fiscais eletrônicas,estou com algumas dúvidas, ainda não sei o que realmente fazer pois como a receita já possui um sistema para transmitir nfe (http://www.nfe.fazenda.gov.br/portal/emissor.aspx), então estava querendo somente criar um sistema para gerar o xml das notas e utilizar este da receita para transmitir, mas não sei se esta seria uma boa solução, então aí estão as dúvidas, este sistema da receita consegue validar e transmitir as notas perfeitamente? Devo utilizá-lo ou criar um outro para fazer isto?
O que devo fazer?

Se puderem me ajudar ficaria grato.

atenciosamente,

Samuel[/quote]

Cara… Trabalho pra um rapaz que tem um sistema em xHarbour e ele faz simplmesmenteo seguinte, gera um arquivo .txt mesmo e importa no emissor gratuito da sefaz, lá ele assina, valida e transmite normalmente todas as notas sem problema algum a ñ ser que falte alguma informação obrigatória no próprio arquivo de texto… e quando falta, vc consegue ver o que falta pelo próprio emissor…
qualquer coisa da uns toqs aee…[/quote]

Data da pergunta: 27/04/2010
Data da resposta: 06/02/2013
[/quote]

kkkkkkk… Vindo das profundezas…ele ressuscitou…kkkkkk

galera alguém pode me ajudar???

Estou tentando rodar essas duas classes.

e da esse erro

Exception in thread "main" javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException: Failed to create service.
	at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:149)
	at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:98)
	at javax.xml.ws.Service.<init>(Service.java:77)
	at br.inf.portalfiscal.nfe.wsdl.nfedownloadnf.NfeDownloadNF.<init>(NfeDownloadNF.java:44)
	at br.inf.portalfiscal.nfe.wsdl.nfedownloadnf.NfeDownloadNFSoap_NfeDownloadNFSoap_Client.main(NfeDownloadNFSoap_NfeDownloadNFSoap_Client.java:48)
Caused by: org.apache.cxf.service.factory.ServiceConstructionException: Failed to create service.
	at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:100)
	at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:199)
	at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:147)
	... 4 more
Caused by: javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: Problem parsing 'https://hom.sefazvirtual.fazenda.gov.br/NfeDownloadNF/NfeDownloadNF.asmx?wsdl'.: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(Unknown Source)
	at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
	at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
	at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:262)
	at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:205)
	at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:98)
	... 6 more
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
	at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1902)
	at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:276)
	at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:270)
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1338)
	at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:154)
	at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)
	at sun.security.ssl.Handshaker.process_record(Handshaker.java:804)
	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1032)
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1328)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)
	at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:515)
	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1299)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
	at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:632)
	at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:189)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:799)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
	at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:237)
	at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:300)
	... 12 more
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:385)
	at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
	at sun.security.validator.Validator.validate(Validator.java:260)
	at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326)
	at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)
	at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126)
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1320)
	... 30 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:196)
	at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268)
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:380)
	... 36 more

[quote=rafaelshock]galera alguém pode me ajudar???

Estou tentando rodar essas duas classes.
[/quote]

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Teu problema esta ai, voce baixou os certificados do site? Importou eles no teu teu keystore? Configurou teu programa para ler e setar o keystore?

não sabia sobre esse certificados… já baixei e refiz o keysotore, mas continua o erro, mas agora não sei se estou fazendo o correto…

na parte do Keystore eu utilizei o o tutotial do pedruhenrik, que me ajudou muito, está disponivel em http://www.guj.com.br/java/237281-tutorial-tutorial-consumir-webservice-nfe-20

segui certinho tiver problemas mas o proprio pedruhenrik me ajudou muito e fiz tudo certinho…

mas após instalar o 3 certificados indicado pelo fredferrao continua acontecendo erros segue ai…

Exception in thread "main" javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException: Failed to create service.
	at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:149)
	at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:98)
	at javax.xml.ws.Service.<init>(Service.java:77)
	at br.inf.portalfiscal.nfe.wsdl.nfeconsultadest.NFeConsultaDest.<init>(NFeConsultaDest.java:44)
	at br.inf.portalfiscal.nfe.wsdl.nfeconsultadest.NFeConsultaDestSoap_NFeConsultaDestSoap_Client.main(NFeConsultaDestSoap_NFeConsultaDestSoap_Client.java:48)
Caused by: org.apache.cxf.service.factory.ServiceConstructionException: Failed to create service.
	at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:100)
	at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:199)
	at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:147)
	... 4 more
Caused by: javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: Problem parsing 'https://www.nfe.fazenda.gov.br/NFeConsultaDest/NFeConsultaDest.asmx?wsdl'.: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(Unknown Source)
	at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
	at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
	at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:262)
	at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:205)
	at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:98)
	... 6 more
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
	at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1902)
	at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:276)
	at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:270)
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1338)
	at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:154)
	at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)
	at sun.security.ssl.Handshaker.process_record(Handshaker.java:804)
	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1032)
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1328)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)
	at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:515)
	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1299)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
	at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:632)
	at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:189)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:799)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
	at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:237)
	at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:300)
	... 12 more
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:385)
	at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
	at sun.security.validator.Validator.validate(Validator.java:260)
	at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326)
	at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)
	at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126)
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1320)
	... 30 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:196)
	at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268)
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:380)
	... 36 more

alguém tem uma ideia?

creio que o Keystore está tudo certo!!!

agora isso não tenho ideia de como fazer!!

[quote=rafaelshock][quote]
Teu Problema ESTA AI, Certificados Voce baixou Sistemas Operacionais site? Importou ELES não TEU TEU keystore?
[/quote]

creio que o Keystore está tudo certo!!!

agora isso não tenho ideia de como fazer!![/quote]

To vendo se acho um código meu aqui no HD externo, ja posto, outra coisa, vc tem um certificado nao tem? Alem de importar os certificados da receita no caminho do webservice, vc precisa setar o teu certificado tambem.