# Exemplos de Autenticação no Postman

## 🔑 **Opção 1: Usando Bearer Token (Recomendado)**

### Headers:
```
Content-Type: application/json
Authorization: Bearer SEU_TOKEN_AQUI
```

### Exemplo de Body:
```json
{
  "company": "6836d4ac6e70bfcca6ace8cf",
  "district": "683415755719dcede57e176a",
  "paymentType": "bank",
  "accountName": "Conta Principal - Mandimba",
  "bankDetails": {
    "bank": "Banco de Moçambique",
    "accountNumber": "1234567890",
    "nib": "00012345678901234567890"
  },
  "description": "Conta bancária principal para o distrito de Mandimba",
  "isDefault": true,
  "isActive": true
}
```

## 🔑 **Opção 2: Usando Header 'token'**

### Headers:
```
Content-Type: application/json
token: SEU_TOKEN_AQUI
```

### Exemplo de Body:
```json
{
  "company": "6836d4ac6e70bfcca6ace8cf",
  "district": "683415755719dcede57e176a",
  "paymentType": "mpesa",
  "accountName": "M-Pesa Mandimba",
  "mobileDetails": {
    "phoneNumber": "+258841234567",
    "merchantCode": "MPESA001"
  },
  "description": "M-Pesa para o distrito de Mandimba",
  "isDefault": false,
  "isActive": true
}
```

## 🚀 **Como Obter o Token**

### 1. Fazer Login:
```
POST http://localhost:8000/api/auth/login
```

### Body:
```json
{
  "username": "seu_usuario",
  "password": "sua_senha"
}
```

### 2. Copiar o Token da Resposta:
```json
{
  "success": true,
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "user": {
    "id": "64f1234567890abcdef12345",
    "username": "seu_usuario",
    "role": "admin"
  }
}
```

## 📋 **Configuração no Postman**

### 1. Criar Variáveis de Ambiente:
- `baseUrl`: `http://localhost:8000`
- `token`: `SEU_TOKEN_AQUI`

### 2. Configurar Headers Globais:
```
Content-Type: application/json
Authorization: Bearer {{token}}
```

### 3. URLs das Requisições:
```
POST {{baseUrl}}/api/payment-details
GET {{baseUrl}}/api/payment-details/company/6836d4ac6e70bfcca6ace8cf/district/683415755719dcede57e176a
GET {{baseUrl}}/api/payment-details/default/6836d4ac6e70bfcca6ace8cf/683415755719dcede57e176a/bank
```

## 🔧 **Exemplos de Requisições Completas**

### 1. Criar Conta Bancária Principal
```
Method: POST
URL: http://localhost:8000/api/payment-details
Headers:
  Content-Type: application/json
  Authorization: Bearer SEU_TOKEN_AQUI

Body (Raw JSON):
{
  "company": "6836d4ac6e70bfcca6ace8cf",
  "district": "683415755719dcede57e176a",
  "paymentType": "bank",
  "accountName": "Conta Principal - Mandimba",
  "bankDetails": {
    "bank": "Banco de Moçambique",
    "accountNumber": "1234567890",
    "nib": "00012345678901234567890"
  },
  "description": "Conta bancária principal para o distrito de Mandimba",
  "isDefault": true,
  "isActive": true
}
```

### 2. Criar M-Pesa
```
Method: POST
URL: http://localhost:8000/api/payment-details
Headers:
  Content-Type: application/json
  Authorization: Bearer SEU_TOKEN_AQUI

Body (Raw JSON):
{
  "company": "6836d4ac6e70bfcca6ace8cf",
  "district": "683415755719dcede57e176a",
  "paymentType": "mpesa",
  "accountName": "M-Pesa Mandimba",
  "mobileDetails": {
    "phoneNumber": "+258841234567",
    "merchantCode": "MPESA001"
  },
  "description": "M-Pesa para o distrito de Mandimba",
  "isDefault": false,
  "isActive": true
}
```

### 3. Buscar Configurações
```
Method: GET
URL: http://localhost:8000/api/payment-details/company/6836d4ac6e70bfcca6ace8cf/district/683415755719dcede57e176a
Headers:
  Authorization: Bearer SEU_TOKEN_AQUI
```

## ⚠️ **Problemas Comuns**

### Erro 401: "Não autorizado: Use o formato Bearer token"
**Solução:** Certifique-se de que está usando o formato correto:
```
Authorization: Bearer SEU_TOKEN_AQUI
```

### Erro 401: "Token não fornecido"
**Solução:** Verifique se o token está sendo enviado corretamente no header.

### Erro 401: "Token inválido"
**Solução:** O token pode estar expirado. Faça login novamente para obter um novo token.

### Erro 401: "Token expirado"
**Solução:** Faça login novamente para obter um novo token.

## 🎯 **Dicas**

1. **Sempre use o formato Bearer** para maior compatibilidade
2. **Configure variáveis de ambiente** no Postman para facilitar
3. **Teste o token primeiro** fazendo uma requisição simples
4. **Verifique se o servidor está rodando** na porta correta
5. **Use o console do navegador** para obter o token se estiver testando via frontend 