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.
Source Distribution
File details
Details for the file ibptws-0.4.tar.gz
.
File metadata
- Download URL: ibptws-0.4.tar.gz
- Upload date:
- Size: 13.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c29b336afb8fc690258c92bcf23f588f3533347cf4de9323e73fd445538ae249 |
|
MD5 | e99419fb2c9b2613e46230582acca810 |
|
BLAKE2b-256 | db6284c502d4ef125101508cd43307ca1d13e94e4bab556ea0c07cb206f31e71 |