#sefaz #nfe #sped

fiscalidade

Biblioteca Rust para validação, assinatura e transmissão de XMLs para webservices SEFAZ

11 releases (6 breaking)

0.8.0 Oct 14, 2021
0.7.1 Oct 6, 2021
0.6.0 Oct 5, 2021
0.5.2 Oct 4, 2021
0.1.0 Jan 25, 2020

MIT/Apache

38KB
1K SLoC

fiscalidade

Biblioteca Rust para validação, assinatura e transmissão de XMLs para webservices SEFAZ.

Exemplo

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

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

#[tokio::main]
async fn main() {
    let webservices = WebServices::from_embedded().unwrap();
    let pkcs12 = Pkcs12Certificate::from_file("resources/certificado.pfx", "minha-senha-secreta")
        .await
        .unwrap();
    let dfe = Dfe::new().set_webservices(webservices).set_pkcs12(pkcs12);
    let xml = dfe
        .status_servico(Modelo::Nfe, Uf::Mt, Ambiente::Homologacao)
        .await
        .unwrap();
    println!("XML retornado: {}", xml);
}

Uso

Adicione isto em seu Cargo.toml:

[dependencies]
tokio = { version = "1", features = ["full"] }
fiscalidade = "0.7"

Wishlist

  • Status do serviço
  • Consulta de cadastro
  • Consulta de XML
  • 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
  • Embutir arquivo de webservices na biblioteca
  • Verificar se recursos (envelope, URLs etc.) estão atualizados
  • Chamadas async
  • Validação e assinatura de XML
  • Adicionar exemplo de consulta de cadastro
  • Tentativas de comunicação com o webservice
  • Mais serviços como envio de lote, consulta de recibo, inutilização, distribuição de DFe, etc.
  • Compressão no envio de lote
  • Testes
  • Documentação
  • Mais exemplos
  • Proxy
  • GitHub Actions
  • DANFE

Contribuições

Pull Requests e Issues são sempre bem-vindos! =)

Licença

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

Dependencies

~7–20MB
~296K SLoC