PyTrustNFe é uma biblioteca para envio de NF-e
Project description
PyTrustNFe
Biblioteca Python que tem por objetivo enviar NFe, NFCe e NFSe no Brasil
Dependências:
- PyXmlSec
- lxml
- signxml
- suds-jurko
- suds-jurko-requests
- reportlab
- Jinja2
NFSe - Cidades atendidas
- Paulistana - São Paulo/SP
- Nota Carioca - Rio de Janeiro/RJ
- Imperial - Petrópolis/RH
- Susesu - 3 cidades atendidas
- Simpliss - 18 cidade atendidas
- GINFES - 79 cidades atendidas
- DSF - 7 cidades atendidas
Roadmap
Teste unitários
Implementar novos provedores de NFSe
- Betha - 81 cidades atendidas WIP
- 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 Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
PyTrustNFe3-1.0.38-py3-none-any.whl
(194.3 kB
view details)
File details
Details for the file PyTrustNFe3-1.0.38-py3-none-any.whl
.
File metadata
- Download URL: PyTrustNFe3-1.0.38-py3-none-any.whl
- Upload date:
- Size: 194.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 111114d7393de5420a9c54c4b9f065e85ab57d0c97fbde341b595fff7b91bf92 |
|
MD5 | 568750e5816543db0ea109d7028efd26 |
|
BLAKE2b-256 | dbcbca6139453fe2ba2a142b3111bc980b3035f24e4f2edac6fea58b8f29816f |