Endpoints da API
Documentação completa dos endpoints REST disponíveis no Módulo Empreendedorismo.
Base URL: /api
Autenticação
POST /api/auth/login/
Realiza login do usuário.
Request:
{
"email": "usuario@email.com",
"password": "senha123"
}
Response (200):
{
"access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
}
POST /api/auth/token/refresh/
Atualiza o token de acesso.
Request:
{
"refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
}
POST /api/auth/register/
Registra novo usuário base.
Request:
{
"email": "usuario@email.com",
"password": "senha123",
"first_name": "João",
"last_name": "Silva"
}
GET /api/auth/me/
Retorna dados do usuário autenticado.
Headers: Authorization: Bearer <token>
Response (200):
{
"id": 1,
"email": "usuario@email.com",
"first_name": "João",
"last_name": "Silva",
"email_verified": true,
"is_first_login": false,
"role": "entrepreneur"
}
POST /api/auth/verify-email/
Verifica email do usuário.
Request:
{
"token": "abc123..."
}
POST /api/auth/password/reset/
Solicita reset de senha (público).
Request:
{
"email": "usuario@email.com"
}
POST /api/auth/password/reset/confirm/
Confirma reset de senha.
Request:
{
"token": "abc123...",
"password": "novaSenha123"
}
POST /api/auth/password/change/
Altera senha (autenticado).
Request:
{
"old_password": "senhaAtual",
"new_password": "novaSenha123"
}
Empreendedores
POST /api/entrepreneurs/register/
Registra perfil de empreendedor.
Request (multipart/form-data):
full_name: "João da Silva"
cpf: "12345678901"
phone: "11999999999"
proof_of_residence: <file>
needs_help: true
GET /api/entrepreneurs/documents/:id/
Retorna documento do empreendedor (protegido).
Agentes Estruturadores
POST /api/structuring-agents/register/
Registra perfil de agente estruturador.
Request (multipart/form-data):
full_name: "Maria Santos"
cpf: "12345678901"
phone: "11999999999"
position: "Analista"
institution: "SEBRAE"
cnpj: "12345678000190"
proof_of_residence: <file>
affiliation_documents: <files[]>
identification_documents: <files[]>
GET /api/structuring-agents/business-plans/board/
Retorna planos para o Kanban Board do agente.
Response (200):
{
"pending": [...],
"under_review": [...],
"corrections": [...],
"approved": [...],
"in_mentorship": [...]
}
POST /api/structuring-agents/business-plans/review/
Revisa um plano de negócio.
Request:
{
"business_plan_id": "uuid",
"action": "approve|reject|corrections",
"feedback": "Feedback detalhado..."
}
POST /api/structuring-agents/mentorships/assume/
Assume mentoria de um plano.
Request:
{
"business_plan_id": "uuid"
}
POST /api/structuring-agents/corrections/
Cria solicitação de correção.
Request (multipart/form-data):
business_plan_id: "uuid"
description: "Descrição da correção necessária"
reference_file: <file> (opcional)
Planos de Negócio
GET /api/business-plans/
Lista planos do empreendedor autenticado.
Query params:
status: Filtrar por statuspage: Página atualpage_size: Itens por página
Response (200):
{
"count": 10,
"next": "http://api/business-plans/?page=2",
"previous": null,
"results": [
{
"id": "uuid",
"number": 1,
"business_name": "Meu Negócio",
"status": "pending",
"created_at": "2024-01-15T10:30:00Z"
}
]
}
POST /api/business-plans/create/
Cria novo plano de negócio.
Request:
{
"business_name": "Nome do Negócio",
"activity_sector": "retail_food",
"description": "Descrição breve",
"stage": "idea",
"target_audience": ["teenagers", "women"],
"problem_solved": "Problema que resolve",
"competitors": "Principais concorrentes",
"differentiator": "Diferencial competitivo",
"sales_strategy": "Estratégia de vendas",
"current_resources": "Recursos atuais",
"needed_resources": "Recursos necessários",
"current_structure": "Estrutura atual",
"initial_investment": 50000.00,
"recurring_expenses": 5000.00,
"expected_revenue": 15000.00,
"financing_options": ["own_resources", "bndes"],
"needs_mentorship": false
}
POST /api/business-plans/create-with-mentorship/
Cria plano com solicitação de mentoria.
GET /api/business-plans/:id/
Retorna detalhes do plano.
POST /api/business-plans/:id/correct/
Envia correções solicitadas.
Request:
{
"corrections": [
{
"correction_id": "uuid",
"response": "Resposta/correção aplicada"
}
]
}
Instituições Financeiras
POST /api/financial-institutions/register/
Registra perfil de instituição financeira.
Request (multipart/form-data):
institution_name: "Banco XYZ"
cnpj: "12345678000190"
phone: "11999999999"
responsible_name: "João da Silva"
responsible_position: "Gerente de Crédito"
email: "contato@banco.com"
email_confirmation: "contato@banco.com"
password: "senha123"
password_confirmation: "senha123"
affiliation_documents: <files[]>
Response (201):
{
"id": "uuid",
"institution_name": "Banco XYZ",
"cnpj": "12345678000190",
"phone": "11999999999",
"email": "contato@banco.com",
"responsible_name": "João da Silva",
"responsible_position": "Gerente de Crédito",
"affiliation_documents": [
{
"id": "uuid",
"file": "/media/financial_institutions/...",
"uploaded_at": "2024-01-15T10:30:00Z"
}
],
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
GET /api/financial-institutions/affiliation-documents/:id/
Retorna documento de vínculo da instituição (protegido).
Gestores
GET /api/managers/approval-requests/
Lista solicitações de aprovação de agentes pendentes.
Response (200):
{
"count": 5,
"results": [
{
"id": "uuid",
"structuring_agent": {
"id": "uuid",
"full_name": "Maria Santos",
"institution": "SEBRAE",
"cnpj": "12345678000190"
},
"status": "pending",
"created_at": "2024-01-15T10:30:00Z"
}
]
}
POST /api/managers/approval-requests/approve/
Aprova solicitação de agente.
Request:
{
"request_id": "uuid",
"review_notes": "Documentação em ordem. Aprovado."
}
POST /api/managers/approval-requests/reject/
Rejeita solicitação de agente.
Request:
{
"request_id": "uuid",
"review_notes": "Documentação incompleta. Necessário enviar..."
}
GET /api/managers/financial-institutions/approval-requests/
Lista solicitações de aprovação de instituições financeiras pendentes.
Response (200):
{
"count": 3,
"results": [
{
"id": "uuid",
"financial_institution": {
"id": "uuid",
"institution_name": "Banco XYZ",
"cnpj": "12345678000190",
"responsible_name": "João da Silva",
"responsible_position": "Gerente de Crédito"
},
"status": "pending",
"created_at": "2024-01-15T10:30:00Z"
}
]
}
POST /api/managers/financial-institutions/approval-requests/approve/
Aprova solicitação de instituição financeira.
Request:
{
"request_id": "uuid",
"review_notes": "Documentação em ordem. Aprovado."
}
POST /api/managers/financial-institutions/approval-requests/reject/
Rejeita solicitação de instituição financeira.
Request:
{
"request_id": "uuid",
"review_notes": "Documentação incompleta. Necessário enviar..."
}
Relatórios
GET /api/reports/
Retorna relatório do usuário.
Response (200) - Agente:
{
"total_mentorships": 15,
"active_mentorships": 5,
"plans_reviewed": 45,
"approval_rate": 0.78,
"corrections_requested": 12
}
Response (200) - Gestor:
{
"total_agents": 25,
"pending_approvals": 3,
"total_entrepreneurs": 150,
"total_business_plans": 320,
"plans_by_status": {
"pending": 45,
"under_review": 12,
"approved": 180,
"rejected": 35,
"in_mentorship": 48
}
}
POST /api/reports/refresh/
Solicita atualização do relatório (async).
Response (202):
{
"task_id": "celery-task-uuid"
}
GET /api/reports/task/:task_id/
Verifica status da tarefa de relatório.
Documentação Interativa
- Swagger UI:
GET /api/docs/ - ReDoc:
GET /api/redoc/ - OpenAPI Schema:
GET /api/schema/
Códigos de Resposta
| Código | Descrição |
|---|---|
200 | Sucesso |
201 | Criado com sucesso |
202 | Aceito (processamento async) |
400 | Erro de validação |
401 | Não autenticado |
403 | Sem permissão |
404 | Não encontrado |
500 | Erro interno |
Autenticação
Todos os endpoints (exceto login, register e reset de senha) requerem autenticação JWT:
Authorization: Bearer <access_token>