> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.visitown.live/llms.txt
> Use this file to discover all available pages before exploring further.

# Make Visible

> Description of your new file.



## OpenAPI

````yaml PUT /integration/visit/{id}/make-visible
openapi: 3.0.1
info:
  title: Visitown API
  description: >
    ## Objetivo

    Essa documentação tem como objetivo modelar os fluxos de integração entre a
    Visitown e as plataformas de parceiros.

    A ideia é permitir que o parceiro possa cadastrar imóveis e agendar visitas
    na plataforma Visitown, enquanto esta

    se responsabiliza de gerar webhooks sobre diversos eventos relacionados com
    a visita.


    **Importante:** As visitas agendadas por esse fluxo considerarão o local das
    chaves como sendo o local padrão das chaves do imóvel


    ## Webhooks

    ### Eventos

    - Visita Criada

    - Visita Realizada

    - Visita Cancelada

    - Relatório do Demonstrador Recebido

    - Relatório do Cliente Recebido


    ### Payloads

    Atualmente, todos os eventos possuem a mesma estrutura de payload
    ([WebhookPayloadDto](#model-WebhookPayloadDto)), mudando apenas os valores
    dos atributos.


    Atributo       | Tipo    | Descrição

    -------------- | ------- | ---------

    visitId        | Integer | ID da visita na plataforma Visitown

    partnerVisitId | String  | ID da visita na plataforma do parceiro.
    Disponível, quando a visita é criada passando-se esse valor

    eventType      | String  | Tipo do evento. Valores possíveis:<br>-
    **VISIT_CREATED**: Uma nova visita foi criada<br>- **VISIT_FINISHED**: A
    visita foi realizada<br>- **VISIT_CANCELED**: A visita foi cancelada<br>-
    **VISIT_AGENT_CHANGED**: O demonstrador da visita mudou<br>-
    **VISIT_RESCHEDULED**: A visita teve o horário alterado ou mudou de ID
    (reagendamento)<br>- **AGENT_FEEDBACK_RECEIVED**: Relatório preenchido pelo
    demonstrador<br>- **VISITOR_FEEDBACK_RECEIVED**: Relatório preenchido pelo
    visitante

    scheduledAt    | Date    | Data/Hora da visita. Formato ISO.

    feedback       | String  | Comentários pós-visita. Pode ser do demonstrador
    ou do visitante (depende do valor de eventType)

    offerAmount    | Float   | Valor da proposta. Disponível quando for evento
    de feedback do cliente e este preencheu o campo com o valor da proposta.

    updatedAt      | Date    | Data/Hora do evento. Formato ISO.

    customData     | Object  | Dados extras (informados pelo parceiro, ao
    agendar a visita), passados no parâmetro```customData```


    Os payloads dos webhooks objetivam identificar um evento ocorrido numa
    visita (sem os detalhes completos dela). Para se obter mais detalhes sobre a
    visita use o endpoint
    [integration/visit/{id}](#visit/VisitController_findVisitById).


    ### Autenticação

    A autenticação será feita por meio de chave de API, que será fornecida pela
    Visitown e que deverá ser passada via parâmetro **apiKey** nas urls dos
    endpoints ou nos headers da requisição.

    Ex: 


    ```

    https://api.visitown.live/integration/property?apiKey=<chave_da_api>&code=1234

    ```


    ou


    ```

    curl --location --request GET
    'http://api.visitown.live/integration/property?code=1234' --header
    'X-Custom-Lang: pt' --header 'apiKey: <chave_da_api>'

    ```


    Ambiente | Url Base                          | Chave de API

    -------- | --------------------------------- | ------------

    Teste    | https://api-sandbox.visitown.live |

    Produção | https://api.visitown.live         |


    ## Changelog

    Versão | Data       | Comentários

    ------ | ---------- | -----------

    0.1.17 | 2025-06-14 | Adicionado endpoint
    [integration/acceptance-pipeline/acceptance-pipelines](#acceptance-pipeline/AcceptancePipelineController_listAcceptancePipelines).<br>Adicionado
    campo 'acceptableByPipeline' ao tipo
    [ScheduleVisitInputDto](#model-ScheduleVisitInputDto).

    0.1.16 | 2025-05-22 | Adicionado campo 'isAcceptableByLeadLastAgent' ao tipo
    [ScheduleVisitInputDto](#model-ScheduleVisitInputDto).<br>Aumentado o limite
    da paginação do endpoint
    [integration/property/properties](#property/PropertyController_listProperties)
    de 100 para 500. 

    0.1.15 | 2024-05-07 | Substituído tipo
    [ListPropertiesByCodeInputDto](#model-ListPropertiesByCodeInputDto) pelo
    tipo [ListPropertiesInputDto](#model-ListPropertiesInputDto)

    0.1.14 | 2024-04-15 | Adicionado endpoint
    [integration/agent-group/agent-groups](#agent-group/AgentGroupController_listAgentGroups)

    0.1.13 | 2024-04-09 | Adicionado tipo
    [AgentGroupDto](#model-AgentGroupDto).<br>Adicionado atributo
    'acceptableByAgentGroup' ao tipo
    [ScheduleVisitInputDto](#model-ScheduleVisitInputDto).<br>Adicionados
    atributos 'acceptableByAgentGroup' e 'acceptableByAgentGroupDeadline' ao
    tipo [ScheduleVisitOutputDto](#model-ScheduleVisitOutputDto).

    0.1.12 | 2024-03-20 | Adicionado campos 'cancelReasonName' e
    'cancelReasonSlug' ao atributo 'cancelReason' do tipo
    [ScheduleVisitOutputDto](#model-ScheduleVisitOutputDto)

    0.1.11 | 2024-03-07 | Adicionado campos 'ownerName' e 'ownerWhatsapp' aos
    tipos [CreatePropertyInputDto](#model-CreatePropertyInputDto),
    [SavePropertyFromUrlInputDto](#model-SavePropertyFromUrlInputDto) e
    [UpdatePropertyInputDto](#model-UpdatePropertyInputDto).<br>Adicionados
    campos 'ownerName' e 'ownerWhatsapp' aos tipos
    [CreatePropertyOutputDto](#model-CreatePropertyOutputDto),
    [SavePropertyFromUrlOutputDto](#model-SavePropertyFromUrlOutputDto)
    [UpdatePropertyOutputDto](#model-UpdatePropertyOutputDto). 

    0.1.10 | 2024-03-05 | Adicionado campo `whatsappNumber` ao tipo
    [ListAgentsOutputDto](#model-ListAgentsOutputDto).

    0.1.9  | 2024-02-14 | Adicionado campo `geofenceRadius` ao tipo
    [CreatePropertyInputDto](#model-CreatePropertyInputDto).<br>Adicionado campo
    `geofenceRadius` ao tipo
    [CreatePropertyOutputDto](#model-CreatePropertyOutputDto).<br>Adicionado
    campo `geofenceRadius` ao tipo
    [SavePropertyFromUrlInputDto](#model-SavePropertyFromUrlInputDto).

    0.1.8  | 2024-02-11 | Adicionado endpoint
    [integration/property/agencies](#property/PropertyController_listAgencies).<br>Adicionado
    tipo [ResponsibleAgencyDto](#model-ResponsibleAgencyDto).<br>Adicionado
    campo `responsibleAgency` ao tipo
    [ScheduleVisitInputDto](#model-ScheduleVisitInputDto).<br>Adicionado campo
    `responsibleAgency` ao tipo
    [ScheduleVisitOutputDto](#model-ScheduleVisitOutputDto).<br>Adicionado campo
    `responsibleAgency` ao tipo
    [FindVisitByIdOutputDto](#model-FindVisitByIdOutputDto).<br>Adicionado campo
    `responsibleAgency` ao tipo
    [CancelVisitOutputDto](#model-CancelVisitOutputDto).<br>Adicionado campo
    `responsibleAgency` ao tipo
    [MakeVisitHiddenOutputDto](#model-MakeVisitHiddenOutputDto).<br>Adicionado
    campo `responsibleAgency` ao tipo
    [MakeVisitVisibleOutputDto](#model-MakeVisitVisibleOutputDto)

    0.1.7  | 2023-12-13 | Adicionado campo `propertyPurpose` ao tipo
    [CreatePropertyInputDto](#model-CreatePropertyInputDto).<br>Adicionado campo
    `propertyPurpose` ao tipo
    [CreatePropertyOutputDto](#model-CreatePropertyOutputDto).<br>Adicionado
    campo `propertyPurpose` ao tipo
    [SavePropertyFromUrlInputDto](#model-SavePropertyFromUrlInputDto).

    0.1.6  | 2023-12-12 | Adicionados campos `agentName` e `agentPhone` aos
    tipos [ScheduleVisitOutputDto](#model-ScheduleVisitOutputDto) e
    [FindVisitByIdOutputDto](#model-FindVisitByIdOutputDto)

    0.1.5  | 2023-10-19 | Adicionado campo `agentEvaluationFormResponse` ao tipo
    [ScheduleVisitOutputDto](#model-ScheduleVisitOutputDto) 

    0.1.4  | 2023-09-05 | Adicionada opção `EXPRESS` à propriedade `visitType`
    do tipo [ScheduleVisitInputDto](#model-ScheduleVisitInputDto)

    0.1.3  | 2023-09-04 | Adicionada propriedade `property` ao tipo
    [ScheduleVisitInputDto](#model-ScheduleVisitInputDto). Com isso, a partir de
    agora, é possível atualizar dados do imóvel na mesma chamada que agenda uma
    visita. Obs: as regras de atualização de dados do imóvel continuam valendo.
    Ex: se o imóvel tiver visitas em aberto, seus dados não são atualizados.

    0.1.2  | 2023-08-30 | Adicionada propriedade `createdByUserEmail` ao tipo
    [ScheduleVisitInputDto](#model-ScheduleVisitInputDto).<br>Adicionada
    propriedade `createdByUserEmail` ao tipo
    [ScheduleVisitOutputDto](#model-ScheduleVisitOutputDto).<br>Adicionada
    propriedade `createdByUserEmail` ao tipo
    [FindVisitByIdOutputDto](#model-FindVisitByIdOutputDto).<br>Adicionada
    propriedade `createdByUserEmail` ao tipo
    [CancelVisitOutputDto](#model-CancelVisitOutputDto)

    0.1.1  | 2023-08-29 | Adicionado endpoint
    [integration/agent/agents](#agent/AgentController_listAgents)

    0.1.0  | 2023-06-21 | Alterados elementos da paginação para `pageIndex`,
    `pageSize`, `length`, `sort` e `order`.<br>Detalhados os tipos de input e
    output de cada endpoint.

    0.0.9  | 2023-05-11 | Adicionados campos `agentVisitNotes`,
    `visitorVisitNotes`, `visitorNps` ao tipo
    [ScheduleVisitOutputDto](#model-ScheduleVisitOutputDto) 

    0.0.8  | 2023-03-11 | Adicionados campos `address`, `defaultKeyLocation` e
    `defaultKeyLocationAddress` ao tipo
    [SavePropertyFromUrlInputDto](#model-SavePropertyFromUrlInputDto).<br>Atualizado
    conteúdo da seção **Autenticação**.

    0.0.7  | 2022-12-21 | Adicionado parâmetro `visitType` ao endpoint
    [integration/visit/scheduled-availability](#visit/VisitController_getScheduleAvailability) 

    0.0.6  | 2022-12-16 | Adicionado campo `cancelReason` ao tipo
    [ScheduleVisitOutputDto](#model-ScheduleVisitOutputDto)

    0.0.5  | 2022-11-01 | Adicionado endpoint
    [integration/visit/{id}](#visit/VisitController_findVisitById)<br>Adicionados
    atributos `visitorName`, `visitorPhone`, `rescheduleFromVisitId` e
    `rescheduleToVisitId` ao tipo
    [ScheduleVisitOutputDto](#model-ScheduleVisitOutputDto)

    0.0.4  | 2022-10-30 | Adicionados webhooks *VISIT_AGENT_CHANGED* e
    *VISIT_RESCHEDULED*

    0.0.3  | 2022-10-03 | Adicionados campos `defaultKeyLocation` e
    `defaultKeyLocationAddress` ao tipo
    [SavePropertyInputDto](#model-SavePropertyInputDto).<br>Adicionado endpoint
    [integration/property/url](#property/PropertyController_savePropertyFromUrl).<br>Adicionado
    endpoint
    [integration/property/{id}](#property/PropertyController_updateProperty).<br>Revisados
    corpos das respostas (adicionado atributo `data` na raiz)
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: http://sandbox.mintlify.com
security:
  - bearerAuth: []
paths:
  /integration/visit/{id}/make-visible:
    put:
      tags:
        - visit
      operationId: VisitController_turnHiddenLegacyVisitIntoVisible
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MakeVisitVisibleOutputDto'
        '201':
          description: Sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/MakeVisitVisibleOutputDto'
      security:
        - apiKey: []
components:
  schemas:
    MakeVisitVisibleOutputDto:
      type: object
      properties:
        id:
          type: number
          description: ID da visita na Visitown
        visitType:
          enum:
            - EXPRESS
            - INSPECTION_OCCUPATION
            - INSPECTION_PRE_AD
            - INSPECTION_VACANCY
            - LOCAL
            - REMOTE
          type: string
          description: Tipo da visita
        status:
          enum:
            - requested
            - accepted
            - arrived
            - started
            - finished
            - canceled
          type: string
          description: Status da visita
        acceptableBy:
          enum:
            - ALL
            - SUBSCRIBER_AGENTS_ONLY
            - VISITOWNERS_ONLY
          type: string
          description: Quem poderá aceitar essa visita
        acceptableByAgentGroup:
          description: Grupo de demonstradores que tem preferência de aceite desta visita
          allOf:
            - $ref: '#/components/schemas/AgentGroupDto'
        acceptableByAgentGroupDeadline:
          format: date-time
          type: string
          description: >-
            Data/Hora limite para o grupo de demonstradores preferencial aceitar
            estar esta visita
        isHidden:
          type: boolean
          description: >-
            Se a visita não será listada no app, para aceite. Valor padrão:
            false. A visita ficará visivel, automaticamente, 1h antes do horário
            agendado (para visitas com demonstradores internos), 2h antes do
            horário agendado (para visitas com visitowners) ou a qualquer tempo,
            chamando-se o enpoint /integration/visits/:id/make-visible
          default: false
        propertyCode:
          type: string
          description: Referência do imóvel
        visitorName:
          type: string
          description: Nome do visitante
        visitorEmail:
          type: string
          description: Email do visitante
          format: email
        visitorPhone:
          type: string
          description: Telefone (whatsapp) do visitante
          format: E.164
        createdByUserEmail:
          type: string
          description: Email do usuário que agendou a visita
          format: email
        responsibleUserEmail:
          type: string
          description: Email do consultor/corretor responsável pela visita
          format: email
        responsibleAgency:
          description: Agência responsável pela visita
          allOf:
            - $ref: '#/components/schemas/ResponsibleAgencyDto'
        agentEmail:
          type: string
          description: Email do demonstrador. Se houver um vinculado à visita.
          format: email
        scheduledAt:
          format: date-time
          type: string
          description: Data/Hora da visita
        briefing:
          type: string
          description: >-
            Instruções da visita. Por exemplo: orientações sobre horário de
            retirada e devolução das chaves, se há necessidade de retirar carta
            de autorização, etc
        keyLocation:
          enum:
            - AGENCY
            - MASTER_KEY
            - NONE
            - OTHER
            - PROPERTY
          type: string
          description: Local de retirada das chaves
        keyLocationAddress:
          description: Endereço do local de retirada das chaves
          allOf:
            - $ref: '#/components/schemas/AddressDto'
        rescheduleFromVisitId:
          type: number
          description: >-
            Indica que esta visita é um reagendamento de outra (anterior), com
            ID indicado neste campo
        companionType:
          enum:
            - NONE
            - OTHER
            - OWNER
          type: string
          description: 'Tipo de acompanhante da visita. '
        companionName:
          type: string
          description: Nome do acompanhante da visita
        companionWhatsappNumber:
          type: string
          description: Telefone (whatsapp) do acompanhante da visita
          format: E.164
        rescheduleToVisitId:
          type: number
          description: >-
            Indica que esta visita foi reagendada para outra, com ID indicado
            neste campo
        scheduleSourceInputData:
          description: Dados de entrada do agendamento via parceiro
          allOf:
            - $ref: '#/components/schemas/ScheduleSourceInputDataDto'
        cancelReason:
          description: Motivo do cancelamento da visita
          allOf:
            - $ref: '#/components/schemas/VisitCancelReasonDto'
        agentVisitNotes:
          type: string
          description: Feedback dado pelo demonstrador
        agentEvaluationUrl:
          type: string
          description: Url para o relatório de avaliação da visita (versão Demonstrador)
        agentEvaluationFormResponse:
          description: >-
            Respostas dadas pelo demonstrador, no formulário de avaliação da
            visita
          allOf:
            - $ref: '#/components/schemas/VisitEvaluationFormResponse'
        visitorEvaluationUrl:
          type: string
          description: Url para o relatório de avaliação da visita (versão Visitante)
        visitorVisitNotes:
          type: string
          description: Feedback dado pelo cliente/visitante
        visitorNps:
          type: number
          description: NPS dado pelo cliente/demonstrador ao serviço prestado
        agentName:
          type: string
          description: Nome do demonstrador. Se houver um vinculado à visita.
        agentPhone:
          type: string
          description: Telefone (whatsapp) do demonstrador. Se houver um vinculado à visita
          format: E.164
      required:
        - id
        - visitType
        - status
        - acceptableBy
        - acceptableByAgentGroup
        - acceptableByAgentGroupDeadline
        - isHidden
        - propertyCode
        - visitorName
        - visitorEmail
        - visitorPhone
        - createdByUserEmail
        - responsibleUserEmail
        - responsibleAgency
        - scheduledAt
        - briefing
        - keyLocation
        - keyLocationAddress
        - companionType
        - companionName
        - companionWhatsappNumber
        - scheduleSourceInputData
        - cancelReason
        - agentVisitNotes
        - agentEvaluationUrl
        - agentEvaluationFormResponse
        - visitorEvaluationUrl
        - visitorVisitNotes
        - visitorNps
    AgentGroupDto:
      type: object
      properties:
        id:
          type: string
          description: ID do grupo preferencial de demonstradores (na Visitown)
        name:
          type: string
          description: Nome do grupo preferencial de demonstradores
      required:
        - id
        - name
    ResponsibleAgencyDto:
      type: object
      properties:
        id:
          type: string
          description: ID da agência responsável (na Visitown)
        name:
          type: string
          description: Nome da agência responsável
      required:
        - id
        - name
    AddressDto:
      type: object
      properties:
        streetAddress:
          type: string
          description: Logradouro
        streetNumber:
          type: string
          description: Número do imóvel
        complement:
          type: string
          description: Complemento
        neighborhood:
          type: string
          description: Nome do bairro
        zipCode:
          type: string
          description: CEP
        locality:
          type: string
          description: Nome do município
        state:
          type: string
          minLength: 2
          maxLength: 2
          description: UF
          pattern: ^[A-Z]{2}$
        country:
          type: string
          minLength: 2
          maxLength: 2
          description: Sigla do país
          pattern: ^[A-Z]{2}$
        latitude:
          type: number
          minimum: -90
          maximum: 90
          description: Latitude
        longitude:
          type: number
          minimum: -180
          maximum: 180
          description: Longitude
      required:
        - streetAddress
        - streetNumber
        - neighborhood
        - zipCode
        - locality
        - state
        - country
    ScheduleSourceInputDataDto:
      type: object
      properties:
        sourceVisitId:
          type: string
          description: Id da visita no sistema do parceiro
        webhooks:
          type: array
          description: >-
            Lista de urls para as quais serão disparados webhooks dos eventos
            dessa visita
          items:
            type: string
            format: url
        customData:
          type: object
          description: >-
            Dados customizados a serem enviados no payload dos webhooks dessa
            visita
      required:
        - sourceVisitId
        - webhooks
    VisitCancelReasonDto:
      type: object
      properties:
        cancelReasonId:
          type: number
          minimum: 1
          description: Id do motivo de cancelamento
        cancelReasonName:
          type: string
          description: Nome (internacionalizado) do motivo de cancelamento
        cancelReasonSlug:
          type: string
          description: Slug do motivo de cancelamento
        cancelReasonNotes:
          type: string
          description: Observações sobre o cancelamento
      required:
        - cancelReasonId
        - cancelReasonName
        - cancelReasonSlug
        - cancelReasonNotes
    VisitEvaluationFormResponse:
      type: object
      properties:
        items:
          description: >-
            Respostas dadas pelo demonstrador, no formulário de avaliação da
            visita
          type: array
          items:
            $ref: '#/components/schemas/VisitEvaluationFormResponseItem'
      required:
        - items
    VisitEvaluationFormResponseItem:
      type: object
      properties:
        question:
          description: Dados da pergunta
          allOf:
            - $ref: '#/components/schemas/VisitEvaluationFormResponseItemQuestion'
        answer:
          type: string
          description: Conteúdo da resposta
      required:
        - question
        - answer
    VisitEvaluationFormResponseItemQuestion:
      type: object
      properties:
        name:
          type: string
          description: Identificador único da pergunta
        title:
          type: string
          description: Título ou texto da pergunta
      required:
        - name
        - title
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````