Expand description
§NFe Parser - Biblioteca Rust para Documentos Fiscais Eletrônicos
Biblioteca de alto desempenho para parsing, serialização e manipulação de documentos fiscais eletrônicos brasileiros: NF-e, NFC-e e NFS-e.
§Funcionalidades
- NF-e (Modelo 55): Nota Fiscal Eletrônica para operações B2B
- NFC-e (Modelo 65): Nota Fiscal de Consumidor Eletrônica para varejo
- NFS-e: Nota Fiscal de Serviços Eletrônica (padrão ABRASF)
- Impostos completos: ICMS (todos os CSTs), IPI, PIS, COFINS, ISS, II, DIFAL
- Municípios: Tabela IBGE com alíquotas de ISS (Matão, Araraquara e +)
- Alíquotas: ICMS por UF, ISS por município, DIFAL interestadual
§Exemplo de uso
ⓘ
use std::fs::File;
use std::convert::TryFrom;
use nfe_parser::{Nfe, NfeBuilder, ItemBuilder};
// Lendo uma NF-e existente
let file = File::open("nota.xml")?;
let nfe = Nfe::try_from(file)?;
println!("Chave: {}", nfe.chave_acesso);
println!("Total: R$ {:.2}", nfe.totais.valor_total);
// Criando uma nova NF-e
let nfe = NfeBuilder::new()
.emitente("12345678000195", "Empresa Ltda", "SP")
.destinatario("98765432000123", "Cliente SA")
.item(ItemBuilder::new("001", "Produto X", "12345678", "5102")
.quantidade(10.0)
.valor_unitario(99.90)
.build())
.build()?;§Módulos
Re-exports§
pub use base::dest::Destinatario;pub use base::dest::IndicadorContribuicaoIe;pub use base::emit::Emitente;pub use base::endereco::Endereco;pub use base::ide::ComposicaoChaveAcesso;pub use base::ide::DestinoOperacao;pub use base::ide::Emissao;pub use base::ide::FinalidadeEmissao;pub use base::ide::FormatoImpressaoDanfe;pub use base::ide::Identificacao;pub use base::ide::ModeloDocumentoFiscal;pub use base::ide::Operacao;pub use base::ide::TipoAmbiente;pub use base::ide::TipoConsumidor;pub use base::ide::TipoEmissao;pub use base::ide::TipoIntermediador;pub use base::ide::TipoOperacao;pub use base::ide::TipoPresencaComprador;pub use base::ide::TipoProcessoEmissao;pub use base::item::Imposto;pub use base::item::Item;pub use base::item::Produto;pub use base::municipios::Municipio;pub use base::municipios::ConfiguracaoUf;pub use base::municipios::AliquotaIss;pub use base::municipios::SistemaNfse;pub use base::municipios::matao;pub use base::municipios::araraquara;pub use base::municipios::sao_paulo_uf;pub use base::municipios::aliquotas_iss_matao;pub use base::municipios::aliquotas_iss_araraquara;pub use base::municipios::aliquotas_icms_por_uf;pub use base::municipios::buscar_municipio_por_codigo;pub use base::municipios::buscar_uf;pub use base::municipios::calcular_aliquota_interestadual;pub use base::nfce::QrCodeNfce;pub use base::nfce::ConfiguracaoCsc;pub use base::nfce::ValidadorNfce;pub use base::nfce::FormaPagamentoNfce;pub use base::nfce::ModoEmissaoNfce;pub use base::nfse::Nfse;pub use base::nfse::IdentificacaoNfse;pub use base::nfse::PrestadorServico;pub use base::nfse::TomadorServico;pub use base::nfse::ServicoNfse;pub use base::nfse::ValoresNfse;pub use base::nfse::NaturezaOperacaoNfse;pub use base::nfse::RegimeEspecialNfse;pub use base::nfse::StatusNfse;pub use base::nfse::Rps;pub use base::nfse::LoteRps;pub use base::nfse::calcular_valores_nfse;pub use base::totais::Totalizacao;pub use base::transporte::ModalidadeFrete;pub use base::transporte::Transporte;pub use base::Error;pub use base::Nfe;pub use base::VersaoLayout;pub use builder::NfeBuilder;pub use builder::ItemBuilder;pub use base::item::imposto::*;