shared¶
Modulo compartilhado: utilitarios, clientes HTTP, validadores e schemas base.
APIError ¶
MCPFiscalError ¶
Bases: Exception
Exceção base para todos os erros do MCP Fiscal Brasil.
NotFoundError ¶
RateLimitError ¶
TimeoutError ¶
ValidationError ¶
XMLParseError ¶
BaseResponse ¶
Bases: BaseModel
Resposta base para todas as ferramentas MCP.
ErrorResponse ¶
format_cnpj ¶
Formata um CNPJ com ou sem mascara.
Se remover_mascara=True, retorna apenas os 14 digitos numericos. Caso contrario, retorna no formato XX.XXX.XXX/XXXX-XX.
format_cpf ¶
Formata um CPF com ou sem mascara.
Se remover_mascara=True, retorna apenas os 11 digitos numericos. Caso contrario, retorna no formato XXX.XXX.XXX-XX.
validate_chave_nfe ¶
Valida uma chave de acesso de NFe/NFCe (44 digitos).
A chave e composta por: cUF(2) + AAMM(4) + CNPJ(14) + mod(2) + serie(3) + nNF(9) + tpEmis(1) + cNF(8) + cDV(1) = 44 digitos.
Verifica apenas o digito verificador (modulo 11).
validate_cnpj ¶
Valida um CNPJ brasileiro.
Aceita formatos com ou sem mascara (XX.XXX.XXX/XXXX-XX ou XXXXXXXXXXXXXX).
validate_cpf ¶
Valida um CPF brasileiro.
Aceita formatos com ou sem mascara (XXX.XXX.XXX-XX ou XXXXXXXXXXX). Retorna False para CPFs com todos os digitos iguais (ex: 111.111.111-11).
constants ¶
Constantes fiscais brasileiras: UFs, CFOP, CST, NCM e códigos SEFAZ.
exceptions ¶
http_client ¶
Cliente HTTP assincrono com retry, backoff e integracao com rate limiter.
FiscalHTTPClient ¶
FiscalHTTPClient(base_url, timeout=DEFAULT_TIMEOUT, max_retries=3, backoff_factor=1.5, rate_limiter=None, headers=None)
Cliente HTTP assincrono com: - Retry automático com backoff exponencial - Integracao com SlidingWindowRateLimiter - Mapeamento de erros HTTP para excecoes fiscais - Logging estruturado
rate_limiter ¶
Rate limiter de janela deslizante por endpoint.
SlidingWindowRateLimiter ¶
Implementa um rate limiter de janela deslizante por chave (ex: endpoint).
Permite configurar N requisicoes por janela de tempo (em segundos). Thread-safe via asyncio.Lock.
schemas ¶
validators ¶
Validadores de documentos fiscais brasileiros (CPF, CNPJ, chave NFe).
validate_cpf ¶
Valida um CPF brasileiro.
Aceita formatos com ou sem mascara (XXX.XXX.XXX-XX ou XXXXXXXXXXX). Retorna False para CPFs com todos os digitos iguais (ex: 111.111.111-11).
validate_cnpj ¶
Valida um CNPJ brasileiro.
Aceita formatos com ou sem mascara (XX.XXX.XXX/XXXX-XX ou XXXXXXXXXXXXXX).
validate_chave_nfe ¶
Valida uma chave de acesso de NFe/NFCe (44 digitos).
A chave e composta por: cUF(2) + AAMM(4) + CNPJ(14) + mod(2) + serie(3) + nNF(9) + tpEmis(1) + cNF(8) + cDV(1) = 44 digitos.
Verifica apenas o digito verificador (modulo 11).
format_cpf ¶
Formata um CPF com ou sem mascara.
Se remover_mascara=True, retorna apenas os 11 digitos numericos. Caso contrario, retorna no formato XXX.XXX.XXX-XX.
format_cnpj ¶
Formata um CNPJ com ou sem mascara.
Se remover_mascara=True, retorna apenas os 14 digitos numericos. Caso contrario, retorna no formato XX.XXX.XXX/XXXX-XX.
format_chave_nfe ¶
Formata uma chave NFe em grupos de 4 digitos para legibilidade.
xml_utils ¶
Utilitarios para parse e geracao de XML fiscal (NFe, NFSe, SPED).
parse_xml ¶
Parseia XML e retorna o elemento raiz.
Usa parser seguro contra XXE (resolve_entities=False, no_network=True). Lanca XMLParseError em caso de XML invalido.
xpath_text ¶
Extrai o texto do primeiro elemento encontrado pelo XPath.
xpath_all_text ¶
Extrai o texto de todos os elementos encontrados pelo XPath.
element_to_dict ¶
Converte um elemento XML para dicionario Python.
Util para serializar partes de NFe para JSON.
strip_namespace ¶
Remove declaracoes de namespace do XML para facilitar parsing simples.
build_soap_envelope ¶
Monta um envelope SOAP para envio a webservices da SEFAZ.
Retorna a string XML completa com o envelope.
extract_soap_body ¶
Extrai o conteudo do Body de uma resposta SOAP.
Lanca XMLParseError se o envelope for invalido.