Acesso aos web services do IBPT
Project description
IBPT Web Services
Implementa uma camada fina para acesso aos web services do IBPT, para auxiliar no cumprimento à Lei 12.741/2012, popularmente conhecida como “De Olho no Imposto”. O Instituto Brasileiro de Planejamento e Tributação, IBPT, calcula e fornece os valores aproximados dos tributos para produtos e serviços com base no código NCM (Nomenclatura Comum do Mercosul, para produtos) e no código NBS (Nomenclatura Brasileira de Serviços).
Para que o acesso aos web services seja possível, é preciso cadastrar-se no IBPT para obter seu token de acesso.
Configuração e Consultas Básicas
Exemplo básico de configuração e consulta de produto:
>>> from ibptws import conf >>> from ibptws import get_produto >>> conf.token = 'ZyW9z...' # cadastre-se no IBPT para obter seu token >>> conf.cnpj = '08427847000169' >>> conf.estado = 'SP' >>> get_produto('02091021') Produto(codigo=u'2091021', uf=u'SP', ex=0, descricao=u'Gordura de porco,fresca,refrigerada ou congelada', nacional=4.2, estadual=12.0, importado=6.39)
Similarmente, para consultar um serviço faça:
>>> from ibptws import get_servico >>> get_servico('0101') Servico(codigo=u'101', uf=u'SP', descricao=u'An\xe1lise e desenvolvimento de sistemas.', tipo=u'NBS', nacional=13.45, estadual=0.0, municipal=3.9, importado=15.45)
Calculadora DeOlhoNoImposto
A calculadora De Olho no Imposto auxilia na computação dos valores aproximados dos tributos, tornando trivial a consulta por n produtos e/ou servicos e a obtenção dos cálculos parciais e totais dos tributos.
>>> from decimal import Decimal >>> from ibptws.calculadoras import DeOlhoNoImposto >>> calc = DeOlhoNoImposto() >>> calc.produto('02091021', 0, Decimal('5.75')) >>> calc.servico('0101', Decimal('73.47')) >>> calc.carga_federal_nacional() Decimal('10.123215') >>> calc.carga_federal_importado() Decimal('11.718540') >>> calc.carga_estadual() Decimal('0.6900') >>> calc.carga_municipal() Decimal('2.86533') >>> calc.total_tributos() Decimal('25.397085') >>> calc.total() Decimal('79.22') >>> calc.percentual_sobre_total() Decimal('0.3205893082554910376167634436')
Provisionamento de Dados
A calculadora De Olho no Imposto recorre a um proxy para realizar as consultas de produtos e serviços, possibilitando que seja implementada uma camada para provisionamento (cache) das consultas realizadas. Este projeto traz uma implementação de provisionamento baseada em Redis:
from ibptws.calculadoras import DeOlhoNoImposto from ibptws.provisoes import ProvisaoViaRedis calc = DeOlhoNoImposto(provisao=ProvisaoViaRedis( host='192.168.0.111', port=6379, db=0))
Neste exemplo, as consultas a produtos e serviços serão realizadas através do proxy e, uma vez acessado o web services do IBPT, os dados ficarão provisionados até que expire (o padrão é expirar em 24h, mas você poderá usar os seus próprios critérios).
Testes
Os testes são baseados em pytest e não há acesso real aos serviços do IBPT, portanto não há necessidade de configurar o token de acesso para executar os testes unitários:
$ python setup.py test
Isenção de Responsabilidade
Os autores deste projeto não tem qualquer relação com o Instituto Brasileiro de Planejamento e Tributação (IBPT), e este, por sua vez, não avaliza o uso desta biblioteca de código. Utilize por sua conta e risco.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size ibptws-0.4.tar.gz (13.3 kB) | File type Source | Python version None | Upload date | Hashes View |