Pular para o conteúdo principal

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 status
  • page: Página atual
  • page_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ódigoDescrição
200Sucesso
201Criado com sucesso
202Aceito (processamento async)
400Erro de validação
401Não autenticado
403Sem permissão
404Não encontrado
500Erro interno

Autenticação

Todos os endpoints (exceto login, register e reset de senha) requerem autenticação JWT:

Authorization: Bearer <access_token>