Skip to main content

Acesso aos web services do IBPT

Project description

IBPT Web Services

Development status Supported Python versions License Latest version
Build status

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

ibptws-0.4.tar.gz (13.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page