Skip to main content

opensefaz_rs/
lib.rs

1//! OpenSefaz - SDK Rust para integração com SEFAZ
2//! 
3//! Esta biblioteca fornece uma interface segura e robusta para comunicação
4//! com os serviços da SEFAZ para emissão de NF-e, NFC-e, CT-e e outros documentos fiscais.
5//! 
6//! # Exemplo de uso
7//! 
8//! ```no_run
9//! use opensefaz_rs::{Config, NfeClient, Certificado, Ambiente};
10//! 
11//! #[tokio::main]
12//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
13//!     let config = Config::new(
14//!         "99999999999999".to_string(), // CNPJ
15//!         "99".to_string(),              // UF
16//!         Ambiente::Homologacao,
17//!     );
18//!     
19//!     let cert_mock = "-----BEGIN CERTIFICATE-----
20//! MIICajCCAdOgAwIBAgIJAKL0UG+mRKSzMA0GCSqGSIb3DQEBCwUAMBExDzANBgNV
21//! BAMMBnRlc3RjYTAeFw0yNDAxMDEwMDAwMDBaFw0yNTAxMDEwMDAwMDBaMBExDzAN
22//! BgNVBAMMBnRlc3RjYTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3a
23//! -----END CERTIFICATE-----
24//! -----BEGIN PRIVATE KEY-----
25//! MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC92g==
26//! -----END PRIVATE KEY-----";
27//!     
28//!     let certificado = Certificado::from_pem_str(cert_mock, "senha")?;
29//!     let client = NfeClient::new(config, certificado)?;
30//!     
31//!     // Consultar situação de uma NF-e
32//!     let resultado = client.consultar_por_chave("42150899999999999999550010000000011234567890").await?;
33//!     
34//!     println!("Situação: {:?}", resultado.status);
35//!     Ok(())
36//! }
37//! ```
38
39pub mod error;
40pub mod config;
41pub mod certificate;
42pub mod nfe;
43pub mod utils;
44pub mod types;
45
46pub use error::{Error, Result};
47pub use config::{Config, Ambiente};
48pub use certificate::Certificado;
49pub use nfe::NfeClient;
50pub use types::*;