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:
```rust
extern crate fiscalidade;
use std::{error, result};
use fiscalidade::{Ambiente, Dfe, Pkcs12Certificate, Uf, WebServicesIni};
fn main() -> result::Result<(), Box> {
let ini = WebServicesIni::fromfile("resources/webservices.ini")?;
let pkcs12 = Pkcs12Certificate::fromfile("resources/certificado.pfx", "minha-senha-secreta")?;
let dfe = Dfe::new().setini(ini).setpkcs12(pkcs12);
let xml = dfe.statusservico(Uf::Mt, Ambiente::Homologacao)?;
println!("XML retornado: {}", String::fromutf8lossy(xml.asref()));
Ok(())
}
```
Uso
Adicione isto em seu Cargo.toml
:
ini
[dependencies]
fiscalidade = "0.1.0"
e isto em seu crate root:
rust
extern crate fiscalidade;
Wishlist
- [x] status do serviço
- [x] consulta de cadastro
- [x] consulta de XML
- [x] configuração de webservices via arquivo INI
- [x] leitura de certificado P12
- [x] conexão segura usando biblioteca TLS padrão do sistema
- [x] 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: