PyTrustNFe é uma biblioteca para envio de NF-e
Project description
Biblioteca Python que tem por objetivo enviar NFe, NFCe e NFSe no Brasil
Dependências: * PyXmlSec * lxml * signxml * suds * suds_requests * reportlab * Jinja2
Roadmap
Teste unitários
Emissão de NFCe
Compatibilidade python 2 e 3
Implementar novos provedores de NFSe * Betha - 81 cidades atendidas WIP * GINFES - 79 cidades atendidas * WebISS - 51 cidades atendidas * ISSIntel - 32 cidades atendidas * ISSNET - 32 cidades atendidas * Saatri - 31 cidades atendidas
Exemplos de uso da NFe
Consulta Cadastro por CNPJ:
from pytrustnfe.nfe import consulta_cadastro
from pytrustnfe.certificado import Certificado
certificado = open("/path/certificado.pfx", "r").read()
certificado = Certificado(certificado, 'senha_pfx')
obj = {'cnpj': '12345678901234', 'estado': '42'}
resposta = consulta_cadastro(certificado, obj=obj, ambiente=1, estado='42')
Exemplo de uso da NFSe Paulistana
Envio de RPS por lote
certificado = open('/path/certificado.pfx', 'r').read()
certificado = Certificado(certificado, '123456')
# Necessário criar um dicionário com os dados, validação dos dados deve
# ser feita pela aplicação que está utilizando a lib
rps = [
{
'assinatura': '123',
'serie': '1',
'numero': '1',
'data_emissao': '2016-08-29',
'codigo_atividade': '07498',
'valor_servico': '2.00',
'valor_deducao': '3.00',
'prestador': {
'inscricao_municipal': '123456'
},
'tomador': {
'tipo_cpfcnpj': '1',
'cpf_cnpj': '12345678923256',
'inscricao_municipal': '123456',
'razao_social': 'Trustcode',
'tipo_logradouro': '1',
'logradouro': 'Vinicius de Moraes, 42',
'numero': '42',
'bairro': 'Corrego',
'cidade': '4205407', # Código da cidade, de acordo com o IBGE
'uf': 'SC',
'cep': '88037240',
},
'codigo_atividade': '07498',
'aliquota_atividade': '5.00',
'descricao': 'Venda de servico'
}
]
nfse = {
'cpf_cnpj': '12345678901234',
'data_inicio': '2016-08-29',
'data_fim': '2016-08-29',
'total_servicos': '2.00',
'total_deducoes': '3.00',
'lista_rps': rps
}
retorno = envio_lote_rps(certificado, nfse=nfse)
# retorno é um dicionário { 'received_xml':'', 'sent_xml':'', 'object': object() }
print retorno['received_xml']
print retorno['sent_xml']
# retorno['object'] é um objeto python criado apartir do xml de resposta
print retorno['object'].Cabecalho.Sucesso
print retorno['object'].ChaveNFeRPS.ChaveNFe.NumeroNFe
print retorno['object'].ChaveNFeRPS.ChaveRPS.NumeroRPS
Cancelamento de NFSe:
from pytrustnfe.certificado import Certificado
from pytrustnfe.nfse.paulistana import cancelamento_nfe
certificado = open('/path/certificado.pfx', 'r').read()
certificado = Certificado(certificado, '123456')
cancelamento = {
'cnpj_remetente': '123',
'assinatura': 'assinatura',
'numero_nfse': '456',
'inscricao_municipal': '654',
'codigo_verificacao': '789',
}
retorno = cancelamento_nfe(certificado, cancelamento=cancelamento)
# retorno é um dicionário { 'received_xml':'', 'sent_xml':'', 'object': object() }
print retorno['received_xml']
print retorno['sent_xml']
# retorno['object'] é um objeto python criado apartir do xml de resposta
print retorno['object'].Cabecalho.Sucesso
if not retorno['object'].Cabecalho.Sucesso: # Cancelamento com erro
print retorno['object'].Erro.Codigo
print retorno['object'].Erro.Descricao
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
PyTrustNFe-0.1.8.tar.gz
(24.5 kB
view hashes)
Built Distribution
PyTrustNFe-0.1.8-py2-none-any.whl
(38.4 kB
view hashes)
Close
Hashes for PyTrustNFe-0.1.8-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7d0460a94569490387a4834c60c785b1344901844cf027f23084f5a19e1b6bd |
|
MD5 | b7f3f3808bf69fe508e332202fb719c9 |
|
BLAKE2b-256 | 2d6ee91bb02bca49f6f59f04a4001a7c0e4110662eb2f7aca88d88de92ee9b10 |