Metadata-Version: 2.5
Name: pairus-product-data
Version: 1.1.0
Summary: SDK oficial da PAIRUS para consulta de dados de produto (GTIN/EAN), catálogo, predição fiscal (IBS/CBS/IS) e emissão de NF-e/NFC-e com Autocura SEFAZ.
Project-URL: Homepage, https://pairus.com.br
Project-URL: Documentation, https://pairus.com.br/docs
Project-URL: Repository, https://github.com/marcos2r/api-consulta-gtin
Author-email: PAIRUS Soluções Tecnológicas <suporte@pairus.com.br>
License: MIT
Keywords: cbs,ean,fiscal,gtin,ibs,imposto-seletivo,nfe,pairus,reforma-tributaria,sefaz,tributacao
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: httpx>=0.25.0
Requires-Dist: pydantic>=2.0.0
Provides-Extra: dev
Requires-Dist: mypy>=1.10.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.4.0; extra == 'dev'
Description-Content-Type: text/markdown

# PAIRUS Product Data SDK para Python (`pairus-product-data`)

SDK oficial da **PAIRUS Soluções Tecnológicas** para consulta de dados de catálogo (GTIN/EAN) e predição fiscal completa da **Reforma Tributária (IBS, CBS e Imposto Seletivo)**.

[![PyPI](https://img.shields.io/pypi/v/pairus-product-data.svg)](https://pypi.org/project/pairus-product-data/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

---

## 📦 Instalação

```bash
pip install pairus-product-data
```

---

## 🚀 Início Rápido

### 1. Consulta de Produto por Código de Barras (GTIN)

```python
from pairus_product_data import PairusProductData

# Inicializa o cliente (lê automaticamente a variável de ambiente PAIRUS_API_KEY se omitido)
client = PairusProductData(api_key="pk_live_sua_chave_aqui")

produto = client.products.get("7891000744703")
print(f"Produto: {produto.xProd}")
print(f"NCM: {produto.ncm} | CEST: {produto.cest}")
```

### 2. Predição Fiscal da Reforma Tributária (IBS/CBS/IS)

```python
from pairus_product_data import PairusProductData

client = PairusProductData()

predicao = client.fiscal.predict(
    xProd="Refrigerante Coca-Cola Lata 350ml",
    gtin="7894900010015",
    regime_tributario="simples_nacional",
    uf_origem="SP",
    uf_destino="RJ",
    finalidade="revenda"
)

tributos = predicao.dados_tributarios
print(f"NCM: {tributos.ncm_sugerido} | CFOP: {tributos.cfop}")
print(f"CST IBS/CBS: {tributos.ibscbs.cst} | Classificação: {tributos.ibscbs.cClassTrib}")
print(f"Alíquota Efetiva CBS: {tributos.ibscbs.cbs_aliquota_efetiva}%")
print(f"Alíquota Efetiva IBS: {tributos.ibscbs.ibs_aliquota_efetiva}%")
print(f"Alíquota Unificada: {tributos.aliquota_efetiva_unificada}%")
```

### 3. Validação de Webhooks com Assinatura Criptográfica (HMAC-SHA256)

```python
from pairus_product_data.webhooks import Webhooks

# Em um endpoint FastAPI / Flask / Django:
raw_body = request.body
signature_header = request.headers.get("X-Pairus-Signature")
webhook_secret = "whsec_seu_secret"

evento = Webhooks.construct_event(raw_body, signature_header, webhook_secret)
print(f"Evento autêntico recebido: {evento.event} para o GTIN: {evento.data.get('gtin')}")
```

### 4. Emissão de NF-e / NFC-e com Autocura SEFAZ

```python
from pairus_product_data import PairusProductData

client = PairusProductData()

# Emissão de NF-e (Modelo 55) com correção automática pré-transmissão
nfe = client.emissao.emitir_nfe(
    natureza_operacao="VENDA DE MERCADORIAS",
    autocura=True,
    itens=[
        {
            "cProd": "SKU-001",
            "xProd": "Refrigerante Coca-Cola 350ml",
            "NCM": "22021000",
            "CFOP": "5102",
            "uCom": "UN",
            "qCom": 10.0,
            "vUnCom": 5.0,
            "vProd": 50.0,
        }
    ]
)

print(f"Status: {nfe.cStat} - {nfe.xMotivo}")
print(f"Chave de Acesso: {nfe.chave_acesso}")
print(f"DANFE PDF: {nfe.danfe_url}")

# Simulação com Custo ZERO de créditos para testes
simulacao = client.emissao.simular(
    natureza_operacao="TESTE PREVIO",
    itens=[{"cProd": "TEST", "xProd": "Item Teste", "NCM": "22021000", "CFOP": "5102", "uCom": "UN", "qCom": 1.0, "vUnCom": 10.0, "vProd": 10.0}]
)
print(f"Simulação concluída: DANFE disponível em {simulacao.danfe_url}")

# Governança de Eventos SEFAZ: Cancelamento, CC-e e Inutilização
client.emissao.cancelar(
    chave_acesso=nfe.chave_acesso,
    justificativa="Desistência da compra pelo cliente dentro do prazo legal"
)
```

---

## 🛡️ Licença
Distribuído sob a licença MIT. Consulte `LICENSE` para mais detalhes.
