SDK em Python para consulta de NIF pessoal e de empresa via API Identity Lookup
Project description
identify-ao
SDK em Python para consulta de identidades pessoais e de empresas via NIF angolano utilizando a API Identity Lookup.
📋 Requisitos
- Python 3.8+
requests>= 2.31.0
Instalação
Via pip (após publicação)
pip install identify-ao
Desenvolvimento local
git clone https://github.com/omariscode/identify-ao.git
cd identify-ao
pip install -e .
Uso Básico
Importar o SDK
from identify_ao import personal_nif, company_nif
Consultar NIF Pessoal
try:
resultado = personal_nif("12345678901")
print(resultado)
except Exception as e:
print(f"Erro: {e}")
Resposta esperada:
{
"fullName": "Morgado Andrade De Melo",
"address": "VIANA, NA, CASA Nº XXXX ZONA YY",
"dateOfBirth": "2000-01-04"
}
Consultar NIF de Empresa
try:
resultado = company_nif("123456789")
print(resultado)
except Exception as e:
print(f"Erro: {e}")
Resposta esperada:
{
"companyName": "UNITEL, S.A"
}
Tratamento de Erros
O SDK levanta IdentityLookupError em caso de falhas:
from identify_ao.core import IdentityLookupError, personal_nif
try:
dados = personal_nif("invalid-nif")
except IdentityLookupError as e:
print(f"Falha na consulta: {e}")
Tipos de erros:
- Conexão falhou: Problema de rede ou API indisponível
- Resposta inválida: A API retornou um formato não esperado
- NIF inválido: O NIF fornecido não existe ou é inválido
Estrutura do Projeto
identify-ao/
├── identify_ao/
│ ├── __init__.py # Exports públicos
│ └── core.py # Lógica principal
├── pyproject.toml # Configuração do pacote
├── requirements.txt # Dependências
└── README.md # Este ficheiro
🔌 API Reference
personal_nif(nif: str) -> dict
Consulta informações de uma pessoa pelo NIF.
Parâmetros:
nif(str): NIF angolano da pessoa (14 dígitos)
Retorna:
dict: Dados da pessoa ou informações de erro
Levanta:
IdentityLookupError: Se a consulta falhar
company_nif(nif: str) -> dict
Consulta informações de uma empresa pelo NIF.
Parâmetros:
nif(str): NIF angolano da empresa (14 dígitos)
Retorna:
dict: Dados da empresa ou informações de erro
Levanta:
IdentityLookupError: Se a consulta falhar
Exemplos
Script simples
from identify_ao import personal_nif, company_nif, IdentityLookupError
def consultar_identidade(nif, tipo="pessoal"):
try:
if tipo == "pessoal":
resultado = personal_nif(nif)
else:
resultado = company_nif(nif)
print(f"✓ Consulta bem-sucedida:")
for chave, valor in resultado.items():
print(f" {chave}: {valor}")
except IdentityLookupError as e:
print(f"✗ Erro na consulta: {e}")
# Uso
consultar_identidade("12345678901", "pessoal")
consultar_identidade("123456789", "empresa")
Licença
MIT
Autor
Omar Rodrigues - omarscode007@gmail.com
Contribuições
Contribuições são bem-vindas! Por favor:
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/TuaFeature) - Commit suas mudanças (
git commit -m 'Adiciona MinhaFeature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
Suporte
Para reportar bugs ou fazer sugestões, abra uma issue no repositório.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file identify_ao-0.1.0.tar.gz.
File metadata
- Download URL: identify_ao-0.1.0.tar.gz
- Upload date:
- Size: 3.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b0ec0055841e8e0299ae7eea2beef7fc29463ee01fbcfd39740062badd64ebe
|
|
| MD5 |
afa6016fe7d3d8cceb9f51fd7311b521
|
|
| BLAKE2b-256 |
ddb122e91ccec6eddea1d8b6b99e71e1fb909eee3647bf744a80b943bbe62ab4
|
File details
Details for the file identify_ao-0.1.0-py3-none-any.whl.
File metadata
- Download URL: identify_ao-0.1.0-py3-none-any.whl
- Upload date:
- Size: 3.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb431d282cc35919049b274015feb720854b5291a47c26eb1703e9f4343296a9
|
|
| MD5 |
1f310d2242f97e093f9f79e102f989ea
|
|
| BLAKE2b-256 |
fcae9fad72ef275d3bffcca4a46dab1f30927f772790be5fcbb1e1a719270241
|