Metadata-Version: 2.4
Name: positiva-consultas-python-sdk
Version: 1.0.1
Summary: Client HTTP de comunicacao com a API da Positiva Consultas (PositivaConnect)
Author-email: Filipe Coelho <filipe@fmconsult.com.br>
License: MIT License
        
        Copyright (c) 2026 Seu Nome
        
        Permission is hereby granted, free of charge, to any person obtaining a copy...
        
Project-URL: Homepage, https://github.com/FMConsult/positiva-consultas-python-sdk
Project-URL: Bug Tracker, https://github.com/FMConsult/positiva-consultas-python-sdk/issues
Project-URL: Documentation, https://positivaconnect.positivaconsultas.com.br/developers/documentation
Keywords: sdk,api,positiva,consultas,juridico360
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Dynamic: license-file

# positiva-consultas-python-sdk

Client HTTP Python para a [API Positiva Consultas (PositivaConnect)](https://positivaconnect.positivaconsultas.com.br/developers/documentation).

Escopo inicial:

- Autenticacao OAuth 2.0 Client Credentials (`POST /client/token`)
- Positiva Juridico 360 (`POST /api/client/provider/juridico360` e `/pdf`)

## Instalacao

```bash
pip install positiva-consultas-python-sdk
```

Requer Python >= 3.11 e o ecossistema `fmconsult` (`ApiBase`).

## Credenciais

Configure as variaveis de ambiente. O SDK resolve credenciais por **environment**
(`sandbox` | `live`, default `sandbox`):

```bash
export positiva.consultas.api.environment="sandbox"

# Preferencial: um par por environment
export positiva.consultas.api.client_id.sandbox="client_xxx_sandbox"
export positiva.consultas.api.client_secret.sandbox="secret_sandbox"
export positiva.consultas.api.client_id.live="client_xxx_live"
export positiva.consultas.api.client_secret.live="secret_live"

# Legado (ainda suportado): um unico par, sem sufixo
# export positiva.consultas.api.client_id="seu_client_id"
# export positiva.consultas.api.client_secret="seu_client_secret"

# Opcional: override da URL base
# export positiva.consultas.api.base_url="https://positivaconnect.positivaconsultas.com.br/api"
```

No Unit Consult Core API isso vem de `[POSITIVA360]` no `configs.ini`
(`positiva360.environment` + `positiva360.api.client.id|secret.{sandbox|live}`).

## Uso

```python
from positiva.consultas import Juridico360Api, Juridico360ProductCode
from positiva.consultas.dtos.juridico360 import Juridico360Request

api = Juridico360Api()  # autentica automaticamente via /client/token

# Consulta processual (um ou mais produtos)
response = api.consultar(
  Juridico360Request(
    document="11111111111",
    product_code=[
      Juridico360ProductCode.CRIMINAL,
      Juridico360ProductCode.CIVIL,
    ],
  )
)

print(response.success, response.query_date)
criminal = response.results.get("CRIMINAL")
if criminal and criminal.success and criminal.data:
  print(criminal.data.nome, len(criminal.data.processos or []))

# PDF do relatorio (Base64)
pdf = api.gerar_pdf(
  document="11111111111",
  product_code=["CRIMINAL", "CIVIL"],
)
print(pdf.mime_type, len(pdf.pdf_base64 or ""))
```

### Autenticacao utilitaria

```python
from positiva.consultas import PositivaConsultasApi

api = PositivaConsultasApi()
me = api.me()
print(me.client.name, me.client.cnpj)

api.refresh()   # renova o Bearer
api.logout()    # invalida o token atual
```

## Produtos Juridico 360

| Codigo | Descricao |
| ------ | --------- |
| `CRIMINAL` | Processos criminais |
| `CIVIL` | Processos civis |
| `TRABALHISTA` | Processos trabalhistas |
| `MP` | Registros do Ministerio Publico |
| `BNMP` | Banco Nacional de Mandados de Prisao |
| `EMPREGADOR_IRREGULAR` | Empregadores irregulares |

Homologacao (credencial em ambiente `homolog`): use documentos de teste `11111111111` … `55555555555` — a API devolve dados ficticios determinísticos.

## Documentacao oficial

- [Visao geral](https://positivaconnect.positivaconsultas.com.br/developers/documentation)
- [Authentication](https://positivaconnect.positivaconsultas.com.br/developers/docs/authentication)
- [Juridico 360](https://positivaconnect.positivaconsultas.com.br/developers/docs/providers/juridico360)
