O Harry possui API's (Application Programming Interface) para integração com parceiros e clientes, todas nossas API's seguem a arquitetura REST e sua comunicação é através do protocolo https.
Para ter acesso as nossas API's, solicite ao nosso suporte através do e-mail developer@goharry.com.br
Ambiente de HOMOLOGAÇÃO
https://apihml.goharry.com.br
Ambiente de PRODUÇÃO
https://api.goharry.com.br
Aqui no Harry utilizamos as melhores práticas de desenvolvimento pensando nos nossos clientes e parceiros.
Todas as nossas APIs seguem um ciclo de vida para absorver a constante evolução dos nossos produtos, para que isso não impacte nossos clientes as APIs são versionadas garantindo a retrocompatibilidade com todos os nossos consumidores.
Este documento está na versão 1.6.0 da API, na qual foi adicionado a API para consulta de atendimentos pela imobiliária. Use está tabela para encontrar a descrição das versões anteriores:
versão | data | mudanças |
---|---|---|
1.6.0 | 12/01/2024 | Adicionado os campos customizados na documentação do webhook |
1.5.0 | 26/04/2022 | Adicionado documentação do webhook |
1.4.1 | 14/01/2022 | Adicionado o campo scheduledAt na API de manipulação de visitas por parceiros |
1.4.0 | 13/12/2021 | Adicionado a API para manipulação de visitas por parceiros |
1.3.0 | 30/07/2021 | Adicionado a API para consulta de atendimentos pela imobiliária |
1.2.0 | 05/07/2021 | Adicionado a API para criação de atendimentos pela imobiliária |
1.1.0 | 01/02/2021 | Ajustes no contrato da API de envio de leads pelos canais de aquisição |
1.0.0 | 24/09/2020 | Adicionado a API para envio de leads pelos canais de aquisição |
Atualmente utilizamos os métodos de autenticação:
HTTP Basic que consiste em adicionar o usuário e senha no header Authorization da requisição HTTP
Authorization: Basic <credenciais em Base64 no formato: usuário:senha>
Api Key que consiste em enviar um ApiKey como query string.
https://host/path?api_key=102930405060708089
Todas API's utilizam o padrão HTTP status codes para indicar o sucesso ou erro da requisição. O corpo da resposta será JSON no seguinte formato:
{
"code": "400",
"status": "Bad Request",
"message": "MISSING_REQUEST_PARAMETER",
"description": "Erro de validação",
"correlationId": "d3e37230-10eb-47a6-a43e-88f5bbc2de58"
}
O webhook é a maneira mais simples do Harry se comunicar com o seu sistema quando um evento ocorrer. Cadastrando um webhook, o seu sistema será avisado pelo Harry sempre que um dos eventos abaixo ocorrer.
O Harry irá realizar uma requisição POST para sua aplicação e a mesma deve retornar o um status da classe 200 quando receber um webhook, caso contrário o Harry irá retentar 3 vezes.
O Harry envia os seguintes eventos por webhook:
Você poderá diferenciar o evento pelo atributo "eventType".
Exemplos:
{
"eventType": "customer_service_created", // tipo do evento que gerou a chamada
"customerService": {
"id": 1234567, // Identificador do atendimento
"businessType": "Vendas", // tipo do negócio
"status": "Em atendimento", // nome da etapa atual do atendimento
"createdAt": "2022-04-01T10:00:00", // data e hora da criação do atendimento
"createdByAcquisitionChannel": "Site", // nome do canal de aquisição inicial
"scheduledAt": "2022-04-15", // data para retornar depois
"temperature": "morno", // temperatura do atendimento
"updatedAt": "2022-04-01T10:15:00" // última atualização
"customer": { // dados do lead
"email": "jose.silva@sememail.com",
"name": "José da Silva",
"phone": "11999990000"
},
"estateAgent": { // dados do corretor dono do atendimento
"email": "jose.almeida@sememail.com",
"name": "José Almeida"
},
"properties": [ // lista de imóveis do atendimento
{
"acquisitionChannel": "Site", // Canal de aquisição que gerou o contato
"createdAt": "2022-04-01T10:00:00", // Data e hora que o contato foi realizado
"message": "Olá, gostaria de visitar o imóvel", // Mensagem enviada pelo lead na hora do contato
"property": { // Dados do imóvel
"code": "string",
"url": "string",
"amount": 0,
},
"interest": { // Dados do interesse do lead
"level": "Baixo",
"reason": "Busca outra localização",
"observation": "Cliente não gostou do bairro"
},
"visit": { // lista de visitas do atendimento
"date":"2022-04-02", // Data da visita
"startHour": "11:00", // Hora da visita
"canceled": true, // Se a visita foi cancelada
"canceledAt": "2022-04-01T11:00:00", // Quando a visita foi cancelada
"finished": true, // Se a visita foi finalizada
"finishedAt": "2022-04-01T12:00:00", // Quando a visita foi finalizada
"reason": "Analisando a compra", // Motivo da finalização ou cancelamento da visita
"feedback": "Cliente gostou do imóvel", // Feedback da visita
"visitOwner": { // Corretor responsável pela visita
"email": "jose.almeida@sememail.com",
"name": "José Almeida"
}
},
"customFields": [
{
"name": "Campanha",
"value": "Lançamento"
},
{
"name": "Plataforma",
"value": "Facebook"
},
{
"name": "Anúncio",
"value": "Vídeo lançamento"
}
]
}
]
},
"originUser": { // dados do usuário que gerou o evento
"email": "jose.almeida@sememail.com",
"name": "José Almeida"
}
}
channelName required | string Canal de Aquisição |
Corpo da Requisição.
acquisitionChannel | string Canal de aquisição, caso não seja informado será considerado o canal de aquisição que está se integrando |
businessType | string Enum: "SALE" "RENT" "RAISE_PROPERTY" Tipo de negócio do imóvel. Vendas, locação ou angariação |
string E-mail do lead | |
message | string Mensagem enviada pelo lead |
name | string Nome do lead |
phone | string Telefone do lead |
propertyAmount | number >= 1 Valor do imóvel |
propertyCode | string Código do imóvel |
propertyUrl | string Url do imóvel |
enterpriseId | integer <int32> ID da Imobiliária |
{- "acquisitionChannel": "site",
- "businessType": "SALE",
- "email": "cliente@email.com",
- "message": "Olá, gostaria de mais detalhes sobre o imóvel",
- "name": "José Carlos",
- "phone": "011999999999",
- "propertyAmount": "1500000.50",
- "propertyCode": "COD-9485",
- "enterpriseId": 1
}
{- "id": 0
}
Corpo da Requisição.
name | string Nome do lead |
string E-mail do lead | |
phone | string Telefone do lead |
message | string Mensagem enviada pelo lead |
businessType | string Enum: "SALE" "RENT" "RAISE_PROPERTY" Tipo de negócio do imóvel. Vendas, locação ou angariação |
acquisitionChannel | string Canal de aquisição |
propertyCode | string Código do imóvel |
propertyAmount | number >= 1 Valor do imóvel |
propertyUrl | string Url do imóvel |
{- "name": "Cliente",
- "email": "cliente@sememail.com",
- "phone": "1193746598",
- "message": "Gostaria de visitar o imóvel...",
- "businessType": "SALE",
- "acquisitionChannel": "GrupoZap",
- "propertyCode": "REF0004",
- "propertyAmount": 550000,
}
{- "id": 304030
}
user | string Filtrar atendimentos por corretor. Informar o e-mail do corretor |
team | string Filtrar atendimentos por time. Informar o nome do time |
business_type | string Enum: "SALE" "RENT" "RAISE_PROPERTY" Filtrar por tipo de negócio vendas, locação ou angariação |
start_date | string <date> Example: start_date=2021-07-05 Filtrar por atendimentos criado igual ou maior que a data informada |
end_date | string <date> Example: end_date=2021-07-05 Filtrar por atendimentos criado igual ou menor que a data informada |
page | number <int32> Example: page=1 Pagina da requisição |
size | number <int32> <= 50 Example: size=10 Itens por requisição. Máximo de 50 |
sort | string Enum: "id:asc" "id:desc" "status:asc" "status:desc" "user_id:asc" "user_id:desc" "business_type:asc" "business_type:desc" "temperature:asc" "temperature:desc" "created_at:asc" "created_at:desc" "updated_at:asc" "updated_at:desc" "finished_at:asc" "finished_at:desc" "scheduled_at:asc" "scheduled_at:desc" Example: sort=created_at:desc Utilizado para ordenação, pode ser combinado mais de um valor. ex: created_at:desc,status:desc |
curl --request GET \ --url 'https://apihml.goharry.com.br/public/v1/customer-services' \ --header 'Authorization: Basic [YOUR_USERNAME_PASSWORD]' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json'
{- "items": [
- {
- "businessType": "string",
- "customer": {
- "email": "string",
- "id": 0,
- "name": "string",
- "phone": "string"
}, - "id": 0,
- "properties": [
- "string"
], - "status": "string",
- "user": {
- "email": "string",
- "id": 0,
- "name": "string"
}
}
], - "page": 0,
- "pageSize": 0,
- "pages": 0,
- "totalItems": 0
}
Corpo da Requisição.
visitId | number Identificação da visita no Harry |
eventType | string Enum: "CREATE" "FINISH" "CANCEL" "FEEDBACK" Tipo de evento para manipular a visita. Criação, finalização, cancelamento e feedback |
feedback | string Mensagem de feedback |
updatedAt | string <date_time> Data e hora gerada pelo evento |
scheduledAt | any <date_time> Data e hora do agendamento |
{- "visitId": "10203040",
- "eventType": "CREATE",
- "feedback": "Cliente gostou do imóvel",
- "updatedAt": "2021-12-12T10:00:00",
- "scheduledAt": "2021-12-12T10:00:00"
}
{- "code": "400",
- "status": "Bad Request",
- "message": "MISSING_REQUEST_PARAMETER",
- "description": "Erro de validação",
- "correlationId": "d3e37230-10eb-47a6-a43e-88f5bbc2de58"
}