# 🇦🇴 KambaSMS Python SDK
SDK oficial e leve da **KambaSMS** para integração de envio de mensagens SMS em Angola. Zero dependências externas (usa `urllib` nativo), tipagem forte e validações rigorosas para as operadoras angolanas.
## ✨ Funcionalidades
- 🚀 **Zero Dependências**: Utiliza `urllib` nativo do Python — sem `requests`, sem `httpx`.
- 🛡️ **Validação no Cliente**: Deteta números inválidos, URLs ou emojis *antes* de fazer a chamada à API.
- 💎 **Tipagem Forte**: Type hints completos para melhor experiência em IDEs.
- 🔐 **OTP como Serviço**: Autenticação por SMS com rate limiting e expiração incluídos.
- 📦 **MVP Completo**: Envio único, envio em massa, agendamento, OTP e gestão de saldo.
## 📦 Instalação
```bash
pip install kambasms
```
> **Nota:** Requer Python **3.8** ou superior.
## ⚡ Início Rápido
### 1. Inicialização
```python
from kambasms import KambaSMS
client = KambaSMS(api_key="kamba_tua_chave_aqui")
```
### 2. Enviar um SMS Único
```python
sms = client.sms.send(
to="+244923456789",
text="O seu código de verificação é 1234.",
sender_id="KAMBA" # Opcional: usa o da API Key se omitido
)
print(f"✅ SMS Enviado! ID: {sms['message_id']}")
print(f"Saldo Restante: {sms['remaining_balance']}")
```
### 3. Envio em Massa (Bulk)
```python
response = client.sms.send_bulk(
name="Campanha Natal 2024",
sender_id="PROMO",
text="Feliz Natal! Aproveite 20% de desconto.",
recipients=[
"+244923456789",
"+244933123456",
"+244943987654"
]
)
print(f"✅ Job criado! ID: {response['job_id']} | Total: {response['total']}")
```
### 4. Agendar um SMS
```python
from datetime import datetime, timedelta
data_futura = datetime.utcnow() + timedelta(hours=2)
response = client.sms.schedule(
to="+244923456789",
text="Lembrete: A sua consulta está marcada para amanhã.",
sender_id="CLINICA",
scheduled_at=data_futura # Aceita datetime ou string ISO 8601
)
print("✅ SMS agendado com sucesso!")
```
### 5. Consultar Saldo e Histórico
# Verificar Saldo
```python
balance = client …