O documento a seguir descreve o fluxo de implementação para integrar a API do Cabaprop ao seu sistema.
Fluxo de trabalho
- Conectar a conta: o titular da conta gera uma API KEY no seu painel em cabaprop.com.ar e você a envia para POST /cabaprop/connect, que devolve um token do Cabaprop (
token+exp). Guarde-o — você vai precisar dele no headerX-Cabaprop-Tokende todos os endpoints seguintes. - Obter o perfil e as filiais: com GET /cabaprop/get-branches você obtém o
idda imobiliária (realStateId) e oidde pelo menos uma filial (branchOfficeId). Ambos são obrigatórios para publicar. - Resolver os catálogos: use Cabaprop API > Catálogos de localização (bairros, tipos de operação, tipos/subtipos de imóvel, atributos) para obter os ids necessários para montar o Property Object (
operation_type,property_type,sub_property_type,location.barrios). Se o seu sistema já conhece o esquema interno do Mapaprop, você também pode consultar o mapeamento de zona/operação/tipo/atributo — mas não há como criar mapeamentos novos, por isso a via recomendada para integrações novas é sempre o catálogo. - Montar o seu Property Object: com os ids resolvidos, construa o objeto
propertyde acordo com Cabaprop API > Property Object. Lembre-se do mínimo de 3 imagens e da keylocation.numberpresente (mesmo que seja""). - Publicar o imóvel: com POST /cabaprop/publish você publica o anúncio. O endpoint é idempotente — se você chamá-lo novamente para o mesmo imóvel, ele atualiza o anúncio existente em vez de falhar.
- Atualizar o anúncio: para alterações posteriores (preço, descrição, imagens, etc.) use PUT /cabaprop/property, enviando apenas os campos que mudaram.
title,locationeproperty_type/operation_typenão podem ser atualizados — nesses casos é preciso despublicar e publicar novamente. - Despublicar o anúncio: com DELETE /cabaprop/property/unpublish você dá baixa no anúncio. Também é idempotente.
- Desconectar a conta (opcional): DELETE /cabaprop/disconnect marca a conta como desconectada do seu lado. Não despublica anúncios existentes — despublique-os antes, se for o caso.
Renovação do token do Cabaprop
O token devolvido por POST /cabaprop/connect expira (aproximadamente 30 dias, de acordo com o campo exp da resposta). Quando qualquer endpoint devolver 401 com "Cabaprop authentication failed", chame novamente POST /cabaprop/connect com a mesma apiKey para obter um token novo.
Erros de negócio do portal
Os erros de validação devolvidos pelo Cabaprop (por exemplo, coordenadas fora de CABA ou falta de rua/número) não são propagados como erro HTTP: são devolvidos com status 200 e o formato {"success":false,"errorCode":"...","detail":"..."}. Verifique sempre o campo success da resposta de POST /cabaprop/publish, PUT /cabaprop/property e DELETE /cabaprop/property/unpublish — um 200 nem sempre significa sucesso.
Banco de dados intermediário
O sistema guarda uma cópia do último estado publicado de cada anúncio, vinculada ao seu propertyId/custId. É isso que permite que PUT /cabaprop/property faça o merge apenas dos campos que você envia, e que POST /cabaprop/publish seja idempotente. As informações que você vai carregando e modificando no Cabaprop ficam registradas até você despublicar o anúncio com DELETE /cabaprop/property/unpublish.