O objeto Locatário
{
"id": "loc456",
"nome": "João da Silva",
"cpf": "123.456.789-00",
"rg": "12.345.678-9",
"dataNascimento": "1990-05-20",
"sexo": "Masculino",
"estadoCivil": "Solteiro",
"profissao": "Engenheiro",
"nacionalidade": "Brasileiro(a)",
"email": "joao@email.com",
"telefone": "(11) 99999-0000",
"whatsapp": "(11) 99999-0000",
"endereco": {
"cep": "04567-000",
"rua": "Av. Paulista",
"numero": "1000",
"complemento": "",
"bairro": "Bela Vista",
"cidade": "São Paulo",
"estado": "SP"
},
"nomeEmergencia": "Maria da Silva",
"telefoneEmergencia": "(11) 98888-0000",
"documentos": {},
"temContratoAtivo": true,
"userId": "uid_do_usuario",
"criadoEm": "2025-01-10T14:00:00.000Z"
}
Campo temContratoAtivo
Calculado em tempo real na listagem — verifica se existe ao menos um contrato com ativo: true para este locatário. Não é persistido no banco.
Criar locatário
Nome completo do locatário.
CPF do locatário. A API rejeita duplicatas por userId + cpf.
Número com DDD para comunicação via WhatsApp.
POST /locatarios
Cookie: imob_session=<session_cookie>
Content-Type: application/json
{
"nome": "João da Silva",
"cpf": "123.456.789-00",
"email": "joao@email.com",
"telefone": "(11) 99999-0000",
"cep": "04567-000",
"rua": "Av. Paulista",
"numero": "1000",
"bairro": "Bela Vista",
"cidade": "São Paulo",
"estado": "SP"
}
{
"message": "Locatário cadastrado com sucesso",
"id": "loc456"
}
CPF duplicado para o mesmo userId retorna 409 Conflict.
Listar locatários
Retorna todos os locatários do usuário, ordenados por nome (pt-BR). Inclui o campo temContratoAtivo calculado via batch query — sem N+1.
GET /locatarios
Cookie: imob_session=<session_cookie>
Buscar locatário por ID
GET /locatarios/:id
Cookie: imob_session=<session_cookie>
Histórico de contratos
Retorna todos os contratos do locatário, enriquecidos com imovelNome, ordenados por criadoEm decrescente.
GET /locatarios/:id/contratos
Cookie: imob_session=<session_cookie>
[
{
"id": "con789",
"imovelId": "abc123",
"imovelNome": "Apto Centro",
"dataInicio": "2024-02-01",
"dataFim": "2025-01-31",
"ativo": false,
...
}
]
Atualizar locatário
PATCH /locatarios/:id
Cookie: imob_session=<session_cookie>
Content-Type: application/json
{
"telefone": "(11) 98765-4321",
"profissao": "Arquiteto"
}
Deletar locatário
Locatário com contrato ativo não pode ser removido. A API retorna 409 Conflict com mensagem explicativa.
DELETE /locatarios/:id
Cookie: imob_session=<session_cookie>