Skip to content

Visitas — Endpoints

Base URL: /api/visits

Permissões: Admin, Broker


GET /api/visits

Lista visitas da empresa.

Query params:

ParâmetroTipoDescrição
pageintegerPágina (padrão: 1)
pageSizeintegerItens por página
searchstringBusca por imóvel ou cliente
statusstringScheduled, Confirmed, Done, Cancelled
brokerIdguidFiltrar por corretor
propertyIdguidFiltrar por imóvel
dateFromdateData inicial
dateTodateData final

Resposta 200:

json
{
  "data": [
    {
      "id": "i1j2k3l4-...",
      "scheduledAt": "2026-05-25T10:00:00Z",
      "status": "Scheduled",
      "checkinDone": false,
      "property": {
        "id": "3fa85f64-...",
        "code": "AP-001",
        "address": "Rua das Flores, 123 - Centro"
      },
      "client": {
        "id": "a1b2c3d4-...",
        "name": "João da Silva",
        "phone": "(11) 99999-0001"
      },
      "broker": {
        "id": "b1c2d3e4-...",
        "name": "Paulo Corretor"
      },
      "createdAt": "2026-05-20T09:00:00Z"
    }
  ],
  "page": 1,
  "pageSize": 20,
  "total": 9,
  "totalPages": 1,
  "hasNext": false,
  "hasPrevious": false
}

GET /api/visits/:id

Retorna detalhes de uma visita.

Resposta 200:

json
{
  "id": "i1j2k3l4-...",
  "scheduledAt": "2026-05-25T10:00:00Z",
  "status": "Done",
  "checkinDone": true,
  "checkinAt": "2026-05-25T10:05:00Z",
  "notes": "Cliente gostou muito, pediu tempo para pensar.",
  "property": { ... },
  "client": { ... },
  "broker": { ... },
  "createdAt": "2026-05-20T09:00:00Z",
  "updatedAt": "2026-05-25T11:00:00Z"
}

POST /api/visits

Agenda uma visita.

Body:

json
{
  "propertyId": "3fa85f64-...",
  "clientId": "a1b2c3d4-...",
  "brokerId": "b1c2d3e4-...",
  "scheduledAt": "2026-05-25T10:00:00Z",
  "notes": "Cliente prefere manhãs."
}
CampoTipoObrigatório
propertyIdguidSim
clientIdguidSim
brokerIdguidSim
scheduledAtdatetimeSim

Resposta 201: Visita criada com status Scheduled.


PUT /api/visits/:id

Atualiza dados da visita (data, notas).


PATCH /api/visits/:id/status

Avança o status da visita.

Body:

json
{
  "status": "Confirmed",
  "checkinDone": false
}

Transições válidas:

Scheduled → Confirmed
Scheduled → Cancelled
Confirmed → Done (com checkinDone: true)
Confirmed → Cancelled

Resposta 200: Visita atualizada.


DELETE /api/visits/:id

Remove visita (soft delete).

Permissões: Admin

Resposta 204: Sem conteúdo.

Documentação do FastGivr SystemImob