SDK de integração da API do Mpesa
# M-Pesa SDK para Moçambique
Um SDK robusto e completo para integração com a API M-Pesa da Vodacom em Moçambique, desenvolvido em TypeScript/JavaScript. Suporta todas as operações principais: C2B, B2C, B2B, Query e Reversal.
## 🚀 Características
- **Autenticação Segura**: Criptografia RSA do apiKey com a publicKey
- **Seleção de Ambiente**: Suporte automático para sandbox e produção
- **Tratamento de Erros Robusto**: Classe MpesaError personalizada
- **Logging Detalhado**: Para depuração e monitoramento
- **TypeScript**: Tipagem completa para melhor experiência de desenvolvimento
- **Testes Unitários**: Cobertura completa com Jest
- **API Simplificada**: Métodos curtos e intuitivos
- **Respostas Legíveis**: Formato de resposta limpo e organizado
## 📦 Instalação
```bash
npm install mpesa-mz-sdk
```
## ⚙️ Configuração
### Variáveis de Ambiente
Crie um arquivo `.env` na raiz do seu projeto:
```env
# Credenciais M-Pesa
MPESA_API_KEY=sua_api_key_aqui
MPESA_PUBLIC_KEY=sua_public_key_aqui
MPESA_SERVICE_PROVIDER_CODE=seu_service_provider_code
MPESA_ORIGIN=seu_origin_aqui
# Ambiente (sandbox ou live)
MPESA_ENV=sandbox
```
### Configuração do SDK
```typescript
import { MpesaService } from 'mpesa-sdk-mozambique';
const mpesa = new MpesaService({
apiKey: process.env.MPESA_API_KEY!,
publicKey: process.env.MPESA_PUBLIC_KEY!,
serviceProviderCode: process.env.MPESA_SERVICE_PROVIDER_CODE!,
origin: process.env.MPESA_ORIGIN!,
env: process.env.MPESA_ENV as 'sandbox' | 'live', // Define automaticamente o host
timeout: 60000 // Timeout opcional em ms
});
```
## 📚 Uso
### Formato de Resposta
Todos os métodos retornam um objeto padronizado com a seguinte estrutura:
```typescript
{
status: 'success' | 'error',
message: string,
data?: T, // Dados específicos da operação
code?: string, // Código de resposta da M-Pesa
httpStatus?: number,
transactionId?: string,
conversationId?: string,
thirdPartyReference?: string,
timestamp?: string
}
```
### C2B (Customer to Business)
``` …