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.
Metadata
Release files for ibptws 0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ibptws-0.4.tar.gz | 13.3 kB | Without provenance | Details |
Release files / ibptws-0.4.tar.gz
| Download URL | ibptws-0.4.tar.gz |
|---|---|
| Size | 13.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c29b336afb8fc690258c92bcf23f588f3533347cf4de9323e73fd445538ae249
|
|
BLAKE2b-256 checksum How to use checksums |
db6284c502d4ef125101508cd43307ca1d13e94e4bab556ea0c07cb206f31e71
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for ibptws 0.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.