Para publicar o actualizar un aviso necesitás armar un objeto property con la estructura descripta en esta página. Se envía dentro del campo property del body de POST /cabaprop/publish y PUT /cabaprop/property.

status, external_reference, real_estate_id y branch_office_id los completa el servidor automáticamente — no los envíes (si los enviás, se ignoran).

Modelo

{
  "title": "Hermosa casa 4 ambientes con parrilla",
  "description": "Casa de 4 ambientes con jardín y parrilla, a metros del subte D.",
  "operation_type": "1",
  "property_type": "3",
  "sub_property_type": "12",
  "location": {
    "barrios": [1234],
    "area_level_1": "Buenos Aires",
    "area_level_2": "Palermo",
    "cp": "1425",
    "cp_suffix": "",
    "letter": "",
    "lat": "-34.5885",
    "lng": "-58.4306",
    "locality": "Palermo, Capital Federal",
    "street": "Av. Santa Fe",
    "number": "3253"
  },
  "share": {},
  "surface": {
    "totalSurface": 180,
    "coveredSurface": 140
  },
  "antiquity": {
    "years": 15,
    "type": 2
  },
  "price": {
    "currency": 1,
    "total": 250000,
    "expenses": 15000,
    "expensesCurrency": 2
  },
  "characteristics": {
    "ambience": 4,
    "bedrooms": 3,
    "bathrooms": 2,
    "toilettes": 1,
    "accessibilities": false
  },
  "images": [
    {
      "url": "https://tu-servidor.com/fotos/casa-4amb-1.jpg",
      "title": "imagen1",
      "originalname": "Hermosa casa 4 ambientes1",
      "filename": null
    }
  ],
  "houseMaps": [
    {
      "url": "https://tu-servidor.com/planos/casa-4amb.jpg",
      "title": "plano",
      "originalname": "Hermosa casa 4 ambientes",
      "filename": null
    }
  ],
  "video": "https://www.youtube.com/watch?v=xxxxxxxxxxx",
  "video360": "",
  "extras": {
    "serviciosEsenciales": {
      "internet_wifi": true,
      "tv_cable": false,
      "telefono": false
    },
    "seguridad": {
      "alarma": true,
      "grupoElectrogeno": false
    },
    "calefaccion": {
      "aireAcondicionado": true,
      "split": true,
      "termotanque_calefon": true
    },
    "vigilancia": {
      "encargado": false,
      "vigilancia_24hs": false
    },
    "adicionales": {
      "amoblado": false,
      "hidromasaje": false,
      "laundry": false,
      "parrilla": true,
      "piscina": false,
      "sala_de_juegos": false,
      "sum": false
    }
  }
}

Campos

CampoTipoRequeridoDescripción
titlestringTítulo del aviso. No puede modificarse una vez publicado (ver notas).
descriptionstringnoDescripción del aviso.
operation_typestring/numberId de la operación en Cabaprop. Resolvelo con GET /cabaprop/utils/get-operations o con el mapeo de operación.
property_typestring/numberId del tipo de propiedad en Cabaprop. Resolvelo con GET /cabaprop/utils/get-types o con el mapeo de tipo.
sub_property_typestring/numbernoId del subtipo. 0 si no aplica.
location.barriosnumberUno o más ids de barrio (CABA), resueltos con GET /cabaprop/utils/get-zones o con el mapeo de zona. No puede modificarse una vez publicado (ver notas).
location.area_level_1stringnoProvincia/estado. Para CABA, típicamente "Buenos Aires".
location.area_level_2stringnoBarrio/localidad.
location.cpstringnoCódigo postal.
location.cp_suffixstringnoSufijo del código postal.
location.letterstringnoLetra del código postal.
location.lat / location.lngstring/numbernoCoordenadas. Deben corresponder a un punto dentro de CABA (ver notas).
location.localitystringnoLocalidad descriptiva.
location.streetstringnoCalle.
location.numberstringsí (la key)Altura de la calle. La key debe estar presente aunque el valor sea "" — ver notas.
surface.totalSurfacenumbernoSuperficie total (m²).
surface.coveredSurfacenumbernoSuperficie cubierta (m²).
antiquity.yearsnumber/stringnoAntigüedad en años.
antiquity.typenumber/stringno2 cuando se informa antigüedad, vacío si no aplica.
price.currencynumberMoneda del precio: 2 = ARS, 1 = cualquier otra moneda.
price.totalnumbernoPrecio de la operación.
price.expensesnumbernoExpensas.
price.expensesCurrencynumbernoMoneda de las expensas: mismo código que price.currency.
characteristics.ambiencenumbernoCantidad de ambientes.
characteristics.bedroomsnumbernoCantidad de dormitorios.
characteristics.bathroomsnumbernoCantidad de baños.
characteristics.toilettesnumbernoCantidad de toilettes.
characteristics.accessibilitiesboolean/numbernoAccesibilidad.
imagesarraysí, mínimo 3Ver Imágenes abajo. Requisito de Cabaprop para publicar.
houseMapsarraynoPlanos. Mismo shape que images.
videostringnoURL de video (YouTube u otro embebido).
video360stringnoURL de recorrido 360°.
extrasobjectnoComodidades/amenities, agrupadas por categoría (ver modelo arriba).

Imágenes

Cada imagen es un objeto:

CampoTipoDescripción
urlstringURL pública de la imagen (accesible sin autenticación).
titlestringTítulo de la imagen.
originalnamestringNombre original del archivo.
filenamestring | nullNombre de archivo interno, si corresponde.

Cabaprop exige un mínimo de 3 imágenes para publicar un aviso. POST /cabaprop/publish devuelve 400 con el mensaje "La propiedad debe tener al menos 3 imagenes para publicarse en Cabaprop" si se envían menos.

Notas

  • title, location y property_type/operation_type no pueden modificarse una vez publicado el aviso. Para cambiarlos hay que despublicar (DELETE /cabaprop/property/unpublish) y volver a publicar (POST /cabaprop/publish).
  • Si operation_type, property_type o location.barrios faltan o están vacíos, POST /cabaprop/publish devuelve 400 con {"error":"La zona/tipo/operacion no tiene mapping en Cabaprop","missing":[...]} antes de intentar publicar.
  • La key location.number debe estar presente en el JSON aunque no tengas el dato (enviala como ""). Si la key está ausente, Cabaprop rechaza la publicación con el mensaje "Debe ingresar una calle y un número de calle".
  • Si las coordenadas (location.lat/location.lng) no corresponden a un punto dentro de CABA, Cabaprop puede rechazar la publicación con el mensaje "Las coordenadas ingresadas no se encuentran dentro de los límites de la ciudad".
  • Estos errores de negocio del portal se devuelven con HTTP 200 y el shape {"success":false,"errorCode":"...","detail":"..."} — ver la sección de errores de POST /cabaprop/publish, PUT /cabaprop/property y DELETE /cabaprop/property/unpublish.