fiscal-rsfiscal-rs

Tipos principais

Enums, structs e newtypes do fiscal-rs

Enums

InvoiceModel

pub enum InvoiceModel {
    NFe,   // modelo 55
    NFCe,  // modelo 65
}

SefazEnvironment

pub enum SefazEnvironment {
    Production,   // "1"
    Homologation, // "2"
}

EmissionType

pub enum EmissionType {
    Normal,     // "1"
    Contingency, // outros valores
}

TaxRegime (CRT)

pub enum TaxRegime {
    SimplesNacional,   // "1"
    ExcessoSublimite,  // "2"
    Normal,            // "3"
}

ContingencyType

pub enum ContingencyType {
    SvcAn, // "6"
    SvcRs, // "7"
}

Newtypes validados

O modulo newtypes fornece tipos que validam o formato na construcao:

use fiscal::newtypes::{TaxId, Gtin, Ncm, Cfop};

let cnpj = TaxId::new("25028332000105")?;   // valida CPF ou CNPJ
let ean = Gtin::new("7891234567890")?;       // valida GTIN-8/12/13/14
let ncm = Ncm::new("18069000")?;            // valida NCM (8 digitos)
let cfop = Cfop::new("5102")?;              // valida CFOP (4 digitos)

Unidades monetarias

O fiscal-rs usa centavos como inteiros para evitar erros de ponto flutuante:

type Cents = i64;   // R$ 100,00 = 10000
type Rate = i64;    // 18.00% = 1800
type Rate4 = i64;   // 1.6500% = 16500

Structs de dados

StructDescricao
IssuerDataDados do emissor (CNPJ, IE, endereco)
RecipientDataDados do destinatario
InvoiceItemDataItem da nota fiscal
PaymentDataForma de pagamento
ContingencyDataDados de contingencia
TransportDataInformacoes de transporte
BillingDataFatura e duplicatas
AdditionalInfoInformacoes adicionais
CertificateDataChave privada + certificado PEM
CertificateInfoMetadados do certificado (CN, validade)
AccessKeyParamsParametros para gerar chave de acesso

Todos os builders usam o padrao fluent com metodos encadeados. Consulte a API Reference para detalhes de cada campo.

On this page