PROD

El siguiente documento describe el flujo de implementación para integrar la API de Cabaprop en tu sistema.

Flujo de trabajo

  1. Conectar cuenta: el titular de la cuenta genera una API KEY desde su panel en cabaprop.com.ar y la enviás a POST /cabaprop/connect, que devuelve un token de Cabaprop (token + exp). Guardalo — lo vas a necesitar en el header X-Cabaprop-Token de todos los endpoints siguientes.
  2. Obtener perfil y sucursales: con GET /cabaprop/get-branches obtenés el id de la inmobiliaria (realStateId) y el id de al menos una sucursal (branchOfficeId). Ambos son requeridos para publicar.
  3. Resolver los catálogos: usá Cabaprop API > Catálogos de localización (barrios, tipos de operación, tipos/subtipos de propiedad, atributos) para obtener los ids que necesitás para armar el Property Object (operation_type, property_type, sub_property_type, location.barrios). Si tu sistema ya conoce el esquema interno de Mapaprop, también podés consultar el mapeo de zona/operación/tipo/atributo — pero no hay forma de crear mapeos nuevos, así que la vía recomendada para integraciones nuevas es siempre el catálogo.
  4. Armar tu Property Object: con los ids resueltos, construí el objeto property según Cabaprop API > Property Object. Recordá el mínimo de 3 imágenes y la key location.number presente (aunque sea "").
  5. Publicar la propiedad: con POST /cabaprop/publish publicás el aviso. El endpoint es idempotente — si volvés a llamarlo para la misma propiedad, actualiza el aviso existente en vez de fallar.
  6. Actualizar el aviso: para cambios posteriores (precio, descripción, imágenes, etc.) usá PUT /cabaprop/property, enviando solo los campos que cambiaron. title, location y property_type/operation_type no se pueden actualizar — para esos casos hay que despublicar y volver a publicar.
  7. Despublicar el aviso: con DELETE /cabaprop/property/unpublish das de baja el aviso. También es idempotente.
  8. Desconectar la cuenta (opcional): DELETE /cabaprop/disconnect marca la cuenta como desconectada de tu lado. No despublica avisos existentes — despublicalos antes si corresponde.

Renovación del token de Cabaprop

El token que devuelve POST /cabaprop/connect expira (aproximadamente 30 días, según el campo exp de la respuesta). Cuando cualquier endpoint devuelva 401 con "Cabaprop authentication failed", volvé a llamar a POST /cabaprop/connect con la misma apiKey para obtener un token nuevo.

Errores de negocio del portal

Los errores de validación que devuelve Cabaprop (por ejemplo, coordenadas fuera de CABA o falta de calle/número) no se propagan como error HTTP: se devuelven con status 200 y el shape {"success":false,"errorCode":"...","detail":"..."}. Revisá siempre el campo success de la respuesta de POST /cabaprop/publish, PUT /cabaprop/property y DELETE /cabaprop/property/unpublish — un 200 no siempre significa éxito.

Base de datos intermedia

El sistema guarda una copia del último estado publicado de cada aviso, vinculada a tu propertyId/custId. Esto es lo que permite que PUT /cabaprop/property mergee solo los campos que enviás, y que POST /cabaprop/publish sea idempotente. La información que vas cargando y modificando en Cabaprop queda registrada hasta que despublicás el aviso con DELETE /cabaprop/property/unpublish.