PUT /cabaprop/property
Actualiza campos puntuales de un aviso ya publicado en Cabaprop con POST /cabaprop/publish.
El servidor mergea los campos que enviás con el último Property Object publicado — no hace falta reenviar el objeto completo, solo los campos que cambiaron. El merge es a nivel del primer nivel de cada objeto (por ejemplo, si mandás price, reemplaza el objeto price completo, no solo las claves internas que incluiste).
title, location y property_type/operation_type no pueden modificarse una vez publicado el aviso — despublicá y volvé a publicar si necesitás cambiarlos (ver Property Object > Notas).
| Información del recurso | |
|---|---|
| Autenticación | Requerida (token de Mapaprop + token de Cabaprop) |
| Método HTTP | PUT |
| Respuesta | JSON |
| Versión | 1 |
Resource URL
https://property-api.mapaprop.com/cabaprop/property
Headers
| Header | Requerido | Descripción |
|---|---|---|
Authorization | sí | Bearer <token> — token de Mapaprop |
X-Cabaprop-Token | sí | Token de Cabaprop obtenido en POST /cabaprop/connect |
Content-Type | sí | application/json |
Parameters (body request)
| Key | Tipo | Requerido | Descripción |
|---|---|---|---|
propertyId | number/string | sí | Id de la propiedad ya publicada. |
custId | number/string | sí | Id del cliente/cuenta, debe coincidir con la cuenta autenticada. |
property | object | sí | Subconjunto del Property Object con los campos a cambiar. |
Sample code
PUT /cabaprop/property
Host: property-api.mapaprop.com
Content-Type: application/json
Authorization: Bearer {access_token}
X-Cabaprop-Token: {cabaprop_token}
{
"propertyId": 188017,
"custId": 1,
"property": {
"price": { "currency": 1, "total": 240000 },
"description": "Precio actualizado. Casa de 4 ambientes con jardín y parrilla."
}
}
Response
{
"success": true,
"cabapropId": "68cae034f1a2b3c4d5e6f7a8"
}
| Campo | Tipo | Descripción |
|---|---|---|
success | boolean | true si la actualización se aplicó. |
cabapropId | string | Id del aviso en Cabaprop. |
Errores
| Status | Cuerpo | Causa |
|---|---|---|
| 400 | {"error":"Invalid JSON body"} | El body no es un JSON válido. |
| 403 | {"error":"custId does not match the authenticated customer"} | El custId del body no coincide con la cuenta autenticada. |
| 400 | {"error":"propertyId, custId and property are required"} | Falta alguno de los campos requeridos. |
| 400 | {"error":"Cabaprop account is not connected (missing token)"} | Falta el token de Cabaprop. |
| 404 | {"error":"Property is not published in Cabaprop — publish it first"} | La propiedad no tiene un aviso vivo — usá POST /cabaprop/publish primero. |
| 401 | {"error":"Cabaprop authentication failed — reconnect the account"} | El token de Cabaprop es inválido o expiró. |
| 200 | {"success":false,"errorCode":"...","detail":"..."} | Cabaprop rechazó la actualización por datos inválidos. detail trae el mensaje textual del portal. |
| 500 | {"error":"Error updating Cabaprop property","detail":"..."} | Error inesperado. |