Documentation
¶
Overview ¶
Package gonfe é a raiz de uma biblioteca para emissão de documentos fiscais eletrônicos brasileiros, seguindo os padrões da Receita Federal e das Secretarias de Fazenda estaduais.
Este pacote não contém funcionalidade: serve de porta de entrada para a documentação. O código está nos subpacotes, cada um com uma responsabilidade:
- github.com/mschunke/gonfe/nfe — modelo de dados da NF-e e da NFC-e no leiaute 4.00, cálculo de totais, validação e montagem de lote.
- github.com/mschunke/gonfe/nfce — QR Code e URLs de consulta da NFC-e.
- github.com/mschunke/gonfe/cte — Conhecimento de Transporte modelo 57.
- github.com/mschunke/gonfe/cteos — CT-e Outros Serviços, modelo 67.
- github.com/mschunke/gonfe/mdfe — Manifesto de Documentos Fiscais 58.
- github.com/mschunke/gonfe/danfe — DANFE, cupom da NFC-e, DACTE e DAMDFE em PDF.
- github.com/mschunke/gonfe/dfe — distribuição de DF-e.
- github.com/mschunke/gonfe/evento — cancelamento, carta de correção, manifestação do destinatário e inutilização de numeração.
- github.com/mschunke/gonfe/sefaz — endereços dos serviços por unidade da federação e cliente SOAP com autenticação mútua TLS.
- github.com/mschunke/gonfe/xmldsig — assinatura e verificação no perfil de XML Signature da SEFAZ.
- github.com/mschunke/gonfe/certificado — certificados A1 em PKCS#12.
- github.com/mschunke/gonfe/chave — chave de acesso de 44 dígitos.
- github.com/mschunke/gonfe/tipos — decimal de precisão fixa, data e data/hora nos formatos do leiaute.
- github.com/mschunke/gonfe/validacao — CPF, CNPJ e inscrição estadual.
- github.com/mschunke/gonfe/uf — códigos do IBGE, nomes e fusos horários.
Emissão em cinco passos ¶
cert, _ := certificado.CarregarArquivo("certificado.pfx", senha)
n := nfe.Nova(nfe.ModeloNFe)
// ... preencher identificação, emitente, destinatário, itens e pagamento
n.Preparar() // normaliza, calcula totais e monta a chave
n.Validar() // confere antes de gastar uma ida à SEFAZ
assinada, _ := n.AssinarCom(cert)
cliente, _ := sefaz.NovoCliente(sefaz.Config{
UF: uf.RS, Ambiente: nfe.Homologacao,
Modelo: nfe.ModeloNFe, Certificado: cert,
})
lote, _ := nfe.MontarLote("1", false, assinada)
envio, _ := cliente.Autorizar(ctx, lote)
resultado, _ := cliente.EsperarProcessamento(ctx, envio.Recibo(), 3*time.Second, 20)
proc, _ := nfe.MontarNFeProc(assinada, resultado.ProtocoloDa(n.Chave()))
O guia completo está em https://mschunke.github.io/gonfe/ e os exemplos executáveis, no diretório exemplos do repositório.
Aviso legal ¶
Este projeto não tem vínculo com a Receita Federal do Brasil nem com nenhuma Secretaria de Fazenda estadual. A responsabilidade pelos documentos emitidos é de quem os emite.
Index ¶
Constants ¶
const Versao = "0.5.0"
Versao é a versão desta biblioteca.
const VersaoLeiaute = "4.00"
VersaoLeiaute é a versão do leiaute dos documentos fiscais implementada.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
This section is empty.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package certificado carrega e inspeciona certificados digitais ICP-Brasil do tipo A1, distribuídos em arquivos PKCS#12 (.pfx ou .p12).
|
Package certificado carrega e inspeciona certificados digitais ICP-Brasil do tipo A1, distribuídos em arquivos PKCS#12 (.pfx ou .p12). |
|
Package chave monta, valida e decompõe a chave de acesso de 44 dígitos dos documentos fiscais eletrônicos.
|
Package chave monta, valida e decompõe a chave de acesso de 44 dígitos dos documentos fiscais eletrônicos. |
|
Package cte implementa o Conhecimento de Transporte Eletrônico, modelo 57, no leiaute 4.00.
|
Package cte implementa o Conhecimento de Transporte Eletrônico, modelo 57, no leiaute 4.00. |
|
Package cteos implementa o CT-e Outros Serviços, modelo 67, no leiaute 4.00.
|
Package cteos implementa o CT-e Outros Serviços, modelo 67, no leiaute 4.00. |
|
Package danfe gera os documentos auxiliares em PDF: o DANFE da NF-e, em A4 retrato, e o cupom da NFC-e, em bobina.
|
Package danfe gera os documentos auxiliares em PDF: o DANFE da NF-e, em A4 retrato, e o cupom da NFC-e, em bobina. |
|
Package dfe consome o serviço de Distribuição de DF-e, pelo qual a Receita Federal entrega os documentos fiscais eletrônicos de interesse de um CNPJ — inclusive os que terceiros emitiram contra ele.
|
Package dfe consome o serviço de Distribuição de DF-e, pelo qual a Receita Federal entrega os documentos fiscais eletrônicos de interesse de um CNPJ — inclusive os que terceiros emitiram contra ele. |
|
Package evento implementa os eventos da NF-e e da NFC-e — cancelamento, carta de correção e manifestação do destinatário — e, pela semelhança de mecânica, também a inutilização de faixas de numeração.
|
Package evento implementa os eventos da NF-e e da NFC-e — cancelamento, carta de correção e manifestação do destinatário — e, pela semelhança de mecânica, também a inutilização de faixas de numeração. |
|
exemplos
|
|
|
danfe
command
O comando danfe gera o documento auxiliar em PDF a partir de um XML de distribuição — o nfeProc, cteProc ou mdfeProc que a SEFAZ devolve autorizado.
|
O comando danfe gera o documento auxiliar em PDF a partir de um XML de distribuição — o nfeProc, cteProc ou mdfeProc que a SEFAZ devolve autorizado. |
|
emitir-nfce
command
O comando emitir-nfce monta uma NFC-e de balcão em homologação, gera o QR Code, assina e grava o XML.
|
O comando emitir-nfce monta uma NFC-e de balcão em homologação, gera o QR Code, assina e grava o XML. |
|
emitir-nfe
command
O comando emitir-nfe percorre o ciclo completo de emissão de uma NF-e em ambiente de homologação: monta a nota, valida, assina, envia em lote assíncrono, espera o processamento e grava o arquivo de distribuição.
|
O comando emitir-nfe percorre o ciclo completo de emissão de uma NF-e em ambiente de homologação: monta a nota, valida, assina, envia em lote assíncrono, espera o processamento e grava o arquivo de distribuição. |
|
eventos
command
O comando eventos registra eventos de uma NF-e em ambiente de homologação: cancelamento, carta de correção, manifestação do destinatário e inutilização de faixa de numeração.
|
O comando eventos registra eventos de uma NF-e em ambiente de homologação: cancelamento, carta de correção, manifestação do destinatário e inutilização de faixa de numeração. |
|
status-servico
command
O comando status-servico confere se a configuração de comunicação com a SEFAZ está correta: carrega o certificado A1, monta o cliente e consulta a disponibilidade do ambiente autorizador.
|
O comando status-servico confere se a configuração de comunicação com a SEFAZ está correta: carrega o certificado A1, monta o cliente e consulta a disponibilidade do ambiente autorizador. |
|
internal
|
|
|
certtest
Package certtest gera certificados digitais sintéticos para os testes da biblioteca, imitando a estrutura de um certificado ICP-Brasil A1.
|
Package certtest gera certificados digitais sintéticos para os testes da biblioteca, imitando a estrutura de um certificado ICP-Brasil A1. |
|
norm
Package norm normaliza estruturas de documentos fiscais antes da serialização, aplicando as regras declaradas em tags de campo.
|
Package norm normaliza estruturas de documentos fiscais antes da serialização, aplicando as regras declaradas em tags de campo. |
|
pdf
Package pdf escreve arquivos PDF simples, o suficiente para os documentos auxiliares dos documentos fiscais: texto, linhas, retângulos e código de barras.
|
Package pdf escreve arquivos PDF simples, o suficiente para os documentos auxiliares dos documentos fiscais: texto, linhas, retângulos e código de barras. |
|
xmldom
Package xmldom oferece uma árvore XML mínima, com prefixos de namespace preservados, e a canonicalização C14N 1.0 exigida pela assinatura digital dos documentos fiscais eletrônicos.
|
Package xmldom oferece uma árvore XML mínima, com prefixos de namespace preservados, e a canonicalização C14N 1.0 exigida pela assinatura digital dos documentos fiscais eletrônicos. |
|
Package mdfe implementa o Manifesto Eletrônico de Documentos Fiscais, modelo 58, no leiaute 3.00.
|
Package mdfe implementa o Manifesto Eletrônico de Documentos Fiscais, modelo 58, no leiaute 3.00. |
|
Package nfce cuida do que é específico da Nota Fiscal de Consumidor Eletrônica: o QR Code impresso no DANFE NFC-e e a URL de consulta pela chave de acesso, que juntos compõem o grupo infNFeSupl.
|
Package nfce cuida do que é específico da Nota Fiscal de Consumidor Eletrônica: o QR Code impresso no DANFE NFC-e e a URL de consulta pela chave de acesso, que juntos compõem o grupo infNFeSupl. |
|
Package nfe implementa a Nota Fiscal Eletrônica (modelo 55) e a Nota Fiscal de Consumidor Eletrônica (modelo 65) no leiaute 4.00 da Receita Federal.
|
Package nfe implementa a Nota Fiscal Eletrônica (modelo 55) e a Nota Fiscal de Consumidor Eletrônica (modelo 65) no leiaute 4.00 da Receita Federal. |
|
Package sefaz conversa com os serviços web de autorização da NF-e e da NFC-e: consulta de status, envio de lote, consulta de recibo, consulta de nota pela chave e consulta de cadastro de contribuinte.
|
Package sefaz conversa com os serviços web de autorização da NF-e e da NFC-e: consulta de status, envio de lote, consulta de recibo, consulta de nota pela chave e consulta de cadastro de contribuinte. |
|
Package tipos reúne os tipos primitivos usados pelos documentos fiscais eletrônicos: valores decimais de precisão fixa, datas e data/hora no formato exigido pelos leiautes da SEFAZ.
|
Package tipos reúne os tipos primitivos usados pelos documentos fiscais eletrônicos: valores decimais de precisão fixa, datas e data/hora no formato exigido pelos leiautes da SEFAZ. |
|
Package uf identifica as unidades da federação pelos códigos do IBGE usados nos documentos fiscais eletrônicos, e expõe o fuso horário legal de cada uma.
|
Package uf identifica as unidades da federação pelos códigos do IBGE usados nos documentos fiscais eletrônicos, e expõe o fuso horário legal de cada uma. |
|
Package validacao confere os números de documentos usados nos arquivos fiscais: CPF, CNPJ e o formato das inscrições estaduais.
|
Package validacao confere os números de documentos usados nos arquivos fiscais: CPF, CNPJ e o formato das inscrições estaduais. |
|
Package xmldsig assina e verifica documentos fiscais eletrônicos conforme o perfil de XML Signature adotado pela Receita Federal.
|
Package xmldsig assina e verifica documentos fiscais eletrônicos conforme o perfil de XML Signature adotado pela Receita Federal. |