Escolar Documentos
Profissional Documentos
Cultura Documentos
Java CI passing coverage 79%
maven-central v3.1.01 license apache 2.0
Atenção
Este é um projeto colaborativo, sinta-se à vontade em usar e colaborar com o mesmo.
Antes de submeter um pull request, verifique a estrutura seguida pelo projeto e procure
incluir no mesmo testes unitários que garantam que a funcionalidade funciona como o
esperado.
Antes de usar
Antes de começar a implementar, é altamente recomendável a leitura da documentação
oficial que o governo disponibiliza em http://www.nfe.fazenda.gov.br/portal
Caso não possua conhecimento técnico para criar notas fiscais, um profissional da área
(como um contador) pode lhe auxiliar.
Instalação
<dependency>
<groupId>com.github.wmixvideo</groupId>
<artifactId>nfe</artifactId>
<version>${latest.release}</version>
</dependency>
Como usar
https://github.com/wmixvideo/nfe 1/7
05/02/2022 19:56 GitHub - wmixvideo/nfe: Nota Fiscal Eletrônica em Java.
@Override
return NFUnidadeFederativa.SC;
@Override
return "senha_certificado";
@Override
return "senha_cadeia";
@Override
if (this.keyStoreCertificado == null) {
this.keyStoreCertificado = KeyStore.getInstance("PKCS12");
return this.keyStoreCertificado;
@Override
if (this.keyStoreCadeia == null) {
this.keyStoreCadeia = KeyStore.getInstance("JKS");
this.keyStoreCadeia.load(cadeia, this.getCadeiaCertificadosSenha().to
} catch (CertificateException | NoSuchAlgorithmException | IOException e)
this.keyStoreCadeia = null;
return this.keyStoreCadeia;
https://github.com/wmixvideo/nfe 2/7
05/02/2022 19:56 GitHub - wmixvideo/nfe: Nota Fiscal Eletrônica em Java.
keyStoreCert.load(null, null);
Após isso é necessário algum método para o usuário escolher entre um destes alias, talvez
por meio de um JOptionPane(<java7) ou de um ChoiceDialog(>=Java8), e então fazer o load
com a respectivo alias escolhido e sua senha.
Alguns exemplos
Considere para os exemplos abaixo que config seja uma instância da implementação da
interface NFeConfig.
System.out.println(retorno.getMotivo());
107
Servico em operacao
https://github.com/wmixvideo/nfe 3/7
05/02/2022 19:56 GitHub - wmixvideo/nfe: Nota Fiscal Eletrônica em Java.
Corrige nota
Cancela nota
...
https://github.com/wmixvideo/nfe 4/7
05/02/2022 19:56 GitHub - wmixvideo/nfe: Nota Fiscal Eletrônica em Java.
...
// Assine a nota
notaProcessada.setVersao(new BigDecimal(NFeConfig.VERSAO_NFE));
notaProcessada.setProtocolo(protocolo);
notaProcessada.setNota(notaRecuperadaAssinada);
Funcionalidades
Possui validação de campos a nível de código;
Valida o XML de envio de lote através dos xsd's disponibilizados pela Sefaz;
Gera o XML dos objetos de maneira simples, invocando o metodo toString() dá conta
do recado.
Suporta diferentes TimeZones, com a implementacao do devido metodo na classe de
configuração (DFConfig e suas subclasses).
Serviços disponíveis
Serviço Status
https://github.com/wmixvideo/nfe 5/7
05/02/2022 19:56 GitHub - wmixvideo/nfe: Nota Fiscal Eletrônica em Java.
Serviço Status
Requisitos
JDK >= 1.8
Maven >=
3.x
1. O certificado do cliente que será utilizado para assinar as notas e comunicar com o
fisco (fornecido por uma entidade certificadora);
2. A cadeia de certificados da SEFAZ que queremos acesso;
Os certificados são um ponto crítico já que estes tem validade de apenas um ano
(certificado cliente). Além disso as SEFAZ vem trocando suas cadeias de certificado a cada
atualização. Dessa forma se surgirem erros de SSL vale a pena verificar se existem novas
atualizações de certificados. Para gerar a cadeia de certificados, disponibilizamos um
pequeno helper que baixa os certificados das SEFAZ e gera o arquivo automaticamente:
try {
e.printStackTrace();
https://github.com/wmixvideo/nfe 6/7
05/02/2022 19:56 GitHub - wmixvideo/nfe: Nota Fiscal Eletrônica em Java.
Releases 46
+ 45 releases
Packages
No packages published
Contributors 64
+ 53 contributors
Languages
Java 100.0%
https://github.com/wmixvideo/nfe 7/7