Versões
Unstable
Webhook
Imóvel

Webhooks

Disponibilizamos os seguintes webhooks para gerenciamento do site do corretor:

type.d.ts
//é enviado toda vez que o corretor adiciona um imóvel à seu site
interface CreatePublicationWebhook {
  event: "publication:create";
  userSlug: string;
  property: Property;
}
 
//é enviado toda vez que o corretor remove um imóvel de seu site, ou quando o imóvel torna-se indisponível para ele
interface DeletePublicationWebhook {
  event: "publication:delete";
  propertyId: string;
  userSlug: string;
}
 
//é enviado toda vez que o ocorre a atualização de algum dos imóveis
interface UpdatePropertyWebhook {
  event: "property:update";
  property: Property;
}
 
//é enviado toda vez que o ocorre a deleção de um imóvel
interface DeletePropertyWebhook {
  event: "property:delete";
  propertyId: string;
}

Definição de imóvel que é enviado via webhook

Os tipos mais complexos que compõe o imóvel estão definidos individualmente abaixo. Os links estão à direita.

Property

type.d.ts
export interface Property {
  id: string;
  use: Use;
  type: Type;
  rooms: number | null;
  suites: number | null;
  title: string;
  condo: Condo | null;
  availableFor: ("VENDA" | "LOCACAO" | "INDISPONIVEL")[];
  accepts: ("PERMUTA" | "FINANCIAMENTO")[];
  status: "LANCAMENTO" | "CONSTRUCAO" | "REFORMA" | "NOVO" | "PADRAO";
  parkingLots: ParkingLot[];
  baths: number;
  floor: number | null;
  face: Face | null;
  user: User;
  sharedMgmtUser: User | null;
  registry: {
    number: number;
    office: string;
  };
  values: {
    sale: number | null;
    saleAssessment: number | null;
    longStay: number | null;
    condoFee: number | null;
    propertyTax: number | null;
  };
  fees: {
    total: number | null;
    juridical: number | null;
    natural: number | null;
  };
  areas: Areas;
  yearOfConstruction: number | null;
  address: Address;
  description: string;
  features: PropertyFeature;
  mgmt: Mgmt;
  pendencies: (
    | "ALIENACAO_FIDUCIARIA"
    | "DEBITO_DE_CONDOMINIO"
    | "DEBITO_DE_IPTU"
    | "INVENTARIO"
    | "PENHORA"
    | "PROPRIETARIO_INCAPAZ"
    | "USUFRUTO"
  )[];
  base36Id: string;
  zapRating: number;
  transactionStatus:
  | "SEM_OBSERVACOES"
  | "VENDIDO"
  | "ALUGADO"
  | "EM_NEGOCIACAO";
  media: Media;
  updatedAt: Date;
  createdAt: Date;
}

Use

type.d.ts
type Use = "RESIDENCIAL" | "COMERCIAL" | "INDUSTRIAL" | "RURAL" | "LOGISTICO";

Type

type.d.ts
type Type =
  | "TERRENO_RESIDENCIAL"
  | "TERRENO_RESIDENCIAL_EM_CONDOMINIO"
  | "APARTAMENTO_GARDEN"
  | "APARTAMENTO_TIPO"
  | "CASA_DE_VILA"
  | "CASA_EM_CONDOMINIO"
  | "CASA_TIPO"
  | "COBERTURA"
  | "DUPLEX"
  | "FLAT"
  | "KITNET"
  | "LOFT"
  | "SOBRADO"
  | "STUDIO"
  | "TRIPLEX"
  | "TERRENO_COMERCIAL"
  | "CASA_COMERCIAL"
  | "CONJUNTO_COMERCIAL"
  | "EDIFICIO_MONOUSUARIO"
  | "GALPAO_COMERCIAL"
  | "LAGE_CORPORATIVA"
  | "LOJA_DE_RUA"
  | "TERRENO_INDUSTRIAL"
  | "GALPAO_INDUSTRIAL"
  | "TERRENO_RURAL"
  | "CASA_RURAL"
  | "GALPAO_LOGISTICO"
  | "TERRENO_LOGISTICO";

Condo

type.d.ts
export interface Condo {
  id: string;
  features: CondoFeature;
  media: Media;
  name: string;
  address: Address;
  yearOfConstruction: number;
}

CondoFeature

type.d.ts
type CondoFeature =
  | "ACADEMIA"
  | "ACESSO_PCD"
  | "AREA_DE_LAZER"
  | "AR_CONDICIONADO_CENTRAL"
  | "AREA_DE_CARGA_E_DESCARGA"
  | "BANHEIRO_MASCULINO_FEMININO"
  | "BAR"
  | "BICICLETARIO"
  | "BIKE_ROOM"
  | "BRINQUEDOTECA"
  | "CHURRASQUEIRA"
  | "CINEMA"
  | "COWORKING"
  | "DECK_MOLHADO"
  | "DEPOSITO_DE_ENTREGAS"
  | "ELEVADOR"
  | "ELEVADOR_DE_SERVICO"
  | "ELEVADOR_DE_SHABBAT"
  | "ELEVADOR_SOCIAL"
  | "ESPACO_BEBE"
  | "ESPACO_BELEZA"
  | "ESPACO_FAMILIA"
  | "ESPACO_KIDS"
  | "ESPACO_GOURMET"
  | "ESPACO_PETS"
  | "ESTACIONAMENTO_24H"
  | "FITNESS"
  | "GARAGEM_COM_AUXILIO_DE_MANOBRISTA"
  | "GERADOR"
  | "HALL_SOCIAL_PRIVATIVO"
  | "HONEST_MARKET"
  | "HORTA"
  | "INFRAESTRUTURA_MODULAR"
  | "JARDIM"
  | "LOBBY_COM_PE_DIREITO_DUPLO"
  | "OFURO"
  | "PAY_PER_USE"
  | "PET_FRIENDLY"
  | "PISCINA_ADULTO"
  | "PISCINA_COBERTA"
  | "PISCINA_AQUECIDA"
  | "PISCINA_INFANTIL"
  | "PLAYGROUND"
  | "PORTARIA_24_HORAS"
  | "PORTARIA_REMOTA"
  | "QUADRA_DE_BEACH_TENNIS"
  | "QUADRA_DE_FUTEBOL"
  | "QUADRA_DE_SQUASH"
  | "QUADRA_DE_TENIS"
  | "QUADRA_POLIESPORTIVA"
  | "SALA_DE_JOGOS"
  | "SALAO_DE_FESTAS"
  | "SAUNA_SECA"
  | "SAUNA_UMIDA"
  | "SEGURANCA_24H"
  | "SERVICO_DE_ARRUMACAO"
  | "SERVICO_DE_LAVANDERIA"
  | "SPA"
  | "SPORTS_BAR"
  | "VAGAS_DE_VISITANTE"
  | "VESTIARIO"
  | "ZELADOR";

ParkingLot

type.d.ts
export interface ParkingLot {
  id: string;
  size: "PEQUENA" | "MEDIA" | "GRANDE";
  type: "DETERMINADA" | "INDETERMINADA";
  notes: string | null;
}

Face

type.d.ts
type Face = "N" | "NE" | "E" | "SE" | "S" | "SW" | "W" | "NW";

Areas

type.d.ts
export interface Areas {
  useful: number | null;
  total: number | null;
  land: number | null;
}

User

type.d.ts
export interface User {
  id: string;
  name: string | null;
  type:
  | "AGENTE"
  | "IBUYER"
  | "INCORPORADOR"
  | "IMOBILIARIA"
  | "FUNDO_IMOBILIARIO"
  | "GESTAO_DE_PATRIMONIO";
  email: string;
  corporateEmail: string | null;
  phone: string | null;
  whatsapp: string | null;
  hrWhatsapp: string | null;
  profileImage: string | null;
  slug: string;
  site: string | null;
  zapRating: number | null;
  reputation: number;
  portfolio: {
    vgv: number;
    total: number;
    soldVgv: number;
    soldTotal: number;
  };
  brokerage: Brokerage | null;
  network: Network | null;
}

Brokerage

type.d.ts
export interface Brokerage {
  id: string;
  name: string | null;
  email: string;
  corporateEmail: string | null;
  phone: string | null;
  whatsapp: string | null;
  hrWhatsapp: string | null;
  profileImage: string | null;
  slug: string;
  site: string | null;
  type: "IMOBILIARIA";
  network: Network | null;
}

Network

type.d.ts
export interface Network {
  id: string;
  name: string;
  logo: string | null;
}

Address

type.d.ts
export interface Address {
  street: string;
  number: string;
  complement: string | null;
  area: string;
  city: string;
  state: UF;
  zipcode: string;
  geo: {
    type: "Point";
    coordinates: number[];
  };
}

PropertyFeature

type.d.ts
type PropertyFeature =
  | "ADEGA_CLIMATIZADA"
  | "AGUA_QUENTE"
  | "AQUECIMENTO_CENTRAL"
  | "AQUECIMENTO_SOLAR"
  | "ALARME"
  | "AR_CONDICIONADO_CENTRAL"
  | "AREA_SERVICO"
  | "BANHEIRO_SERVICO"
  | "BANHEIRO_SR_SRA"
  | "CARPETE"
  | "CHURRASQUEIRA"
  | "CLOSET"
  | "COPA"
  | "COZINHA_INTEGRADA"
  | "DEPENDENCIA_DE_FUNCIONARIO"
  | "DEPOSITO"
  | "DESPENSA"
  | "ELEVADOR_PRIVATIVO"
  | "ESPACO_GOURMET"
  | "GAS_ENCANADO"
  | "HALL_PRIVATIVO"
  | "HIDROMASSAGEM"
  | "HOME_OFFICE"
  | "HOME_THEATER"
  | "INFRAESTRUTURA_AR_CONDICIONADO"
  | "INTERFONE"
  | "JANELA_TETO_CHAO"
  | "JARDIM"
  | "LAREIRA"
  | "LAVABO"
  | "LOCACAO_NAO_ACEITA_PET"
  | "MOBILIADO"
  | "MOVEIS_PLANEJADOS"
  | "OFURO"
  | "PISCINA"
  | "PISO_MADEIRA"
  | "PISO_PORCELANATO"
  | "PISO_LAMINADO"
  | "PISO_VINILICO"
  | "SACADA"
  | "SALA_INTIMA"
  | "SALA_CINEMA"
  | "SAUNA_SECA"
  | "SAUNA_UMIDA"
  | "VISTA_PARA_CIDADE"
  | "VISTA_PARA_MAR"
  | "VISTA_PANORAMICA"
  | "VISTA_PERMANENTE";

Media

type.d.ts
export interface Media {
  images: MediaFile[];
  floorPlans: MediaFile[];
  promotionalFiles: MediaFile[];
  videos: string[];
  tours: string[];
}

MediaFile

type.d.ts
export interface MediaFile {
  id: string;
  name: string;
  type: string;
  size: number;
  url: string;
}

UF

type.d.ts
type UF =
  | "AC"
  | "AL"
  | "AP"
  | "AM"
  | "BA"
  | "CE"
  | "DF"
  | "ES"
  | "GO"
  | "MA"
  | "MT"
  | "MS"
  | "MG"
  | "PA"
  | "PB"
  | "PR"
  | "PE"
  | "PI"
  | "RJ"
  | "RN"
  | "RS"
  | "RO"
  | "RR"
  | "SC"
  | "SP"
  | "SE"
  | "TO";