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::*;