Este documento descreve a forma de integração de leads que o VivaReal está disponibilizando para nossos clientes de forma que eles possam receber os leads enviados pelos usuários do portal diretamente em seus sistemas.
Endpoint
http://yourdomain.com.br/lead/ID-DO-ANUNCIANTE
OU
http://ID-DO-ANUNCIANTE.yourdomain.com.br/lead
ID-DO-ANUNCIANTE é parte da URL que representa o identificador do anunciante no sistema que irá receber a requisição
Caso não tenha ou não queira especificar o ID-DO-ANUNCIANTE o endpoint poderá ser implementado sem o identificador do anunciante. Exemplo: http://yourdomain.com.br/lead
Os leads serão enviados através de um callback que será feito em uma URL (endpoint) escolhida pelo cliente e que terá como payload os dados do lead. Esse endpoint deverá ser implementado de forma que entenda e processe o payload que será enviado e, uma vez que o lead seja recebido com sucesso, retorne um código de status HTTP adequado.
O payload será enviado no corpo do request através do método POST do protocolo HTTP no formato JSON e terá a seguinte estrutura:
{
"leadOrigin": "VivaReal",
"timestamp": "2017-10-23T15:50:30.619Z",
"originLeadId": "59ee0fc6e4b043e1b2a6d863",
"originListingId": "87027856",
"clientListingId": "a40171",
"name": "Nome Consumidor",
"email": "[email protected]",
"ddd": "11",
"phone": "999999999",
"phoneNumber": "999999999",
"message": Olá, tenho interesse neste imóvel. Aguardo o contato. Obrigado.",
}
Onde:
- leadOrigin: Identificador do emissor do lead (VivaReal);
- timestamp: Data e horário da criação do lead no formato ISO_LOCAL_DATE_TIME;
- originLeadId: Identificador do lead no VivaReal;
- originListingId: Identificador do imóvel no VivaReal;
- clientListingId: Identificador do anúncio para o anunciante;
- name: Nome do consumidor que gerou o lead;
- email: E-Mail do consumidor que gerou o lead;
- ddd: DDD do telefone do consumidor que gerou o lead;
- phone: Telefone do consumidor que gerou o lead;
- phoneNumber: [deprecado] Telefone do consumidor que gerou o lead (DDD + AREA + Phone);
- message: Mensagem do consumidor que gerou o lead;
Os campos phoneNumber, ddd e phone são opcionais e podem não ser enviados na integração. O campo phoneNumber está deprecado e será removido futuramente.
O processo de integração será acionado para cada lead individualmente, sempre que recebermos um contato do usuário. Nosso controle de sucesso do recebimento dos leads será feito através dos códigos de status do protocolo HTTP da seguinte forma: 2xx: indica que o cliente recebeu o lead com sucesso e que ações adicionais não são necessárias. Qualquer código de status da família 200 terá esse efeito. 3xx, 4xx ou 5xx: indica que houve falha no processamento do lead por parte do cliente.
Caso o endpoint do cliente retorne qualquer código de status que não os da família 200, haverá retentativa automática no envio do lead. O reenvio será tentado por 6 vezes em intervalos de 30 minutos e após isso ele será armazenado temporariamente por até 14 dias, podendo ser reenviado a pedido do cliente.
O controle do status de recebimento dos leads será feito exclusivamente através dos códigos de status do protocolo HTTP, qualquer informação enviada no corpo da resposta será totalmente ignorada.
Para verificar a confiabilidade do emissor das requisições, será enviado no Header uma chave de segurança no padrão Basic Authentication. A chave a ser verificada será no seguinte formato:
Authorization: Basic dml2YXJlYWw6U0VDVVJJVFktS0VZ
Decodifique a chave dml2YXJlYWw6U0VDVVJJVFktS0VZ com Base64 terá o valor
vivareal:SECRET-KEY
Valide a SECRET-KEY
A SECRET-KEY poderá ser solicitada para nossa equipe na adesão da integração. Caso a SECRET-KEY não coincida com a chave que enviamos deverá retornar httpStatusCode 401
Assim que as implementações forem devidamente realizadas e estiver pronto para iniciar os testes, entre em contato com:
Caso tenha alguma dúvida, sugestão ou problemas durante a implementação da integração de Leads, abra um Issue neste repositório que iremos responder assim que possível.