PyTrustNFe é uma biblioteca para envio de NF-e
Project description
PyTrustNFe
==========
Biblioteca Python que tem por objetivo enviar NFe, NFCe e NFSe no Brasil
`|Coverage
Status| <https://coveralls.io/r/danimaribeiro/PyTrustNFe?branch=master>`_
`|Code
Health| <https://landscape.io/github/danimaribeiro/PyTrustNFe/master>`_
`|Build Status| <https://travis-ci.org/danimaribeiro/PyTrustNFe>`_
`|PyPI version| <https://badge.fury.io/py/PyTrustNFe>`_
Dependências: \* PyXmlSec \* lxml \* signxml \* suds \* suds\_requests
\* reportlab \* Jinja2
Roadmap
-------
Teste unitários
Emissão de NFCe
Compatibilidade `python 2 e
3 <https://github.com/danimaribeiro/PyTrustNFe/pull/6>`_
Implementar novos provedores de NFSe \* `Betha <cidades/betha.md>`_ - 81
cidades atendidas WIP \* `GINFES <cidades/ginfes.md>`_ - 79 cidades
atendidas \* `WebISS <cidades/webiss.md>`_ - 51 cidades atendidas \*
`ISSIntel <cidades/issintel.md>`_ - 32 cidades atendidas \*
`ISSNET <cidades/issnet.md>`_ - 32 cidades atendidas \*
`Saatri <cidades/saatri.md>`_ - 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
.. |Coverage
Status| image:: https://coveralls.io/repos/danimaribeiro/PyTrustNFe/badge.svg?branch=master
.. |Code
Health| image:: https://landscape.io/github/danimaribeiro/PyTrustNFe/master/landscape.svg?style=flat
.. |Build
Status| image:: https://travis-ci.org/danimaribeiro/PyTrustNFe.svg?branch=master
.. |PyPI version| image:: https://badge.fury.io/py/PyTrustNFe.svg
==========
Biblioteca Python que tem por objetivo enviar NFe, NFCe e NFSe no Brasil
`|Coverage
Status| <https://coveralls.io/r/danimaribeiro/PyTrustNFe?branch=master>`_
`|Code
Health| <https://landscape.io/github/danimaribeiro/PyTrustNFe/master>`_
`|Build Status| <https://travis-ci.org/danimaribeiro/PyTrustNFe>`_
`|PyPI version| <https://badge.fury.io/py/PyTrustNFe>`_
Dependências: \* PyXmlSec \* lxml \* signxml \* suds \* suds\_requests
\* reportlab \* Jinja2
Roadmap
-------
Teste unitários
Emissão de NFCe
Compatibilidade `python 2 e
3 <https://github.com/danimaribeiro/PyTrustNFe/pull/6>`_
Implementar novos provedores de NFSe \* `Betha <cidades/betha.md>`_ - 81
cidades atendidas WIP \* `GINFES <cidades/ginfes.md>`_ - 79 cidades
atendidas \* `WebISS <cidades/webiss.md>`_ - 51 cidades atendidas \*
`ISSIntel <cidades/issintel.md>`_ - 32 cidades atendidas \*
`ISSNET <cidades/issnet.md>`_ - 32 cidades atendidas \*
`Saatri <cidades/saatri.md>`_ - 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
.. |Coverage
Status| image:: https://coveralls.io/repos/danimaribeiro/PyTrustNFe/badge.svg?branch=master
.. |Code
Health| image:: https://landscape.io/github/danimaribeiro/PyTrustNFe/master/landscape.svg?style=flat
.. |Build
Status| image:: https://travis-ci.org/danimaribeiro/PyTrustNFe.svg?branch=master
.. |PyPI version| image:: https://badge.fury.io/py/PyTrustNFe.svg
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.9.tar.gz
(24.5 kB
view hashes)