fiscalidade 0.2.3

Biblioteca Rust para geração, validação, assinatura de XMLs de Documentos Fiscais e transmissão com webservices da SEFAZ.
Documentation

fiscalidade

[WIP] Biblioteca Rust para geração, validação, assinatura de XMLs de Documentos Fiscais e transmissão com webservices da SEFAZ.

Exemplo

O exemplo abaixo mostra como obter o status do serviço de homologação para o Mato Grosso:

extern crate anyhow;
extern crate fiscalidade;

use fiscalidade::{Ambiente, Dfe, Pkcs12Certificate, Tipo, Uf, WebServices};

fn main() -> anyhow::Result<()> {
    let webservices = WebServices::from_file("resources/webservices.ini")?;
    let pkcs12 = Pkcs12Certificate::from_file("resources/certificado.pfx", "minha-senha-secreta")?;
    let dfe = Dfe::new(Tipo::Nfe)
        .set_webservices(webservices)
        .set_pkcs12(pkcs12);
    let xml = dfe.status_servico(Uf::Mt, Ambiente::Homologacao)?;
    println!("XML retornado: {}", String::from_utf8_lossy(&xml));
    Ok(())
}

Uso

Adicione isto em seu Cargo.toml:

[dependencies]
fiscalidade = "0.2.3"

e isto em seu crate root:

extern crate fiscalidade;

Wishlist

  • status do serviço
  • consulta de cadastro
  • consulta de XML
  • configuração de webservices via arquivo INI
  • leitura de certificado P12
  • conexão segura usando biblioteca TLS padrão do sistema
  • configuração de timeout da conexão e da comunicação com o webservice
  • mais serviços como envio de lote, consulta de recibo, inutilização, distribuição de DFe, etc.
  • tentativas de comunicação com o webservice
  • validação e assinatura de XML
  • compressão no envio de lote
  • testes
  • documentação
  • mais exemplos
  • chamadas async
  • DANFE
  • geração de XML

Contribuições

Pull Requests e Issues são bem-vindos!

License

fiscalidade é distribuída sob qualquer uma das seguintes licenças: