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
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
title | string | sí | Título del aviso. No puede modificarse una vez publicado (ver notas). |
description | string | no | Descripción del aviso. |
operation_type | string/number | sí | Id de la operación en Cabaprop. Resolvelo con GET /cabaprop/utils/get-operations o con el mapeo de operación. |
property_type | string/number | sí | Id del tipo de propiedad en Cabaprop. Resolvelo con GET /cabaprop/utils/get-types o con el mapeo de tipo. |
sub_property_type | string/number | no | Id del subtipo. 0 si no aplica. |
location.barrios | number | sí | Uno 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_1 | string | no | Provincia/estado. Para CABA, típicamente "Buenos Aires". |
location.area_level_2 | string | no | Barrio/localidad. |
location.cp | string | no | Código postal. |
location.cp_suffix | string | no | Sufijo del código postal. |
location.letter | string | no | Letra del código postal. |
location.lat / location.lng | string/number | no | Coordenadas. Deben corresponder a un punto dentro de CABA (ver notas). |
location.locality | string | no | Localidad descriptiva. |
location.street | string | no | Calle. |
location.number | string | sí (la key) | Altura de la calle. La key debe estar presente aunque el valor sea "" — ver notas. |
surface.totalSurface | number | no | Superficie total (m²). |
surface.coveredSurface | number | no | Superficie cubierta (m²). |
antiquity.years | number/string | no | Antigüedad en años. |
antiquity.type | number/string | no | 2 cuando se informa antigüedad, vacío si no aplica. |
price.currency | number | sí | Moneda del precio: 2 = ARS, 1 = cualquier otra moneda. |
price.total | number | no | Precio de la operación. |
price.expenses | number | no | Expensas. |
price.expensesCurrency | number | no | Moneda de las expensas: mismo código que price.currency. |
characteristics.ambience | number | no | Cantidad de ambientes. |
characteristics.bedrooms | number | no | Cantidad de dormitorios. |
characteristics.bathrooms | number | no | Cantidad de baños. |
characteristics.toilettes | number | no | Cantidad de toilettes. |
characteristics.accessibilities | boolean/number | no | Accesibilidad. |
images | array | sí, mínimo 3 | Ver Imágenes abajo. Requisito de Cabaprop para publicar. |
houseMaps | array | no | Planos. Mismo shape que images. |
video | string | no | URL de video (YouTube u otro embebido). |
video360 | string | no | URL de recorrido 360°. |
extras | object | no | Comodidades/amenities, agrupadas por categoría (ver modelo arriba). |
Imágenes
Cada imagen es un objeto:
| Campo | Tipo | Descripción |
|---|---|---|
url | string | URL pública de la imagen (accesible sin autenticación). |
title | string | Título de la imagen. |
originalname | string | Nombre original del archivo. |
filename | string | null | Nombre 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,locationyproperty_type/operation_typeno 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_typeolocation.barriosfaltan o están vacíos, POST /cabaprop/publish devuelve400con{"error":"La zona/tipo/operacion no tiene mapping en Cabaprop","missing":[...]}antes de intentar publicar. - La key
location.numberdebe 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
200y el shape{"success":false,"errorCode":"...","detail":"..."}— ver la sección de errores de POST /cabaprop/publish, PUT /cabaprop/property y DELETE /cabaprop/property/unpublish.