PROD

POST /cabaprop/publish

Publica um imóvel no Cabaprop a partir do Property Object.

É idempotente: se já existir um anúncio ativo para o mesmo propertyId/custId, este endpoint o atualiza em vez de devolver um erro de duplicado.

Informações do recurso
AutenticaçãoObrigatória (token do Mapaprop + token do Cabaprop)
Método HTTPPOST
RespostaJSON
Versão1

Resource URL

https://property-api.mapaprop.com/cabaprop/publish

Headers

HeaderObrigatórioDescrição
AuthorizationsimBearer <token> — token do Mapaprop
X-Cabaprop-TokensimToken do Cabaprop obtido em POST /cabaprop/connect
Content-Typesimapplication/json

Parameters (body request)

KeyTipoObrigatórioDescrição
propertyIdnumber/stringsimId do imóvel na sua aplicação. É usado para vincular o seu imóvel ao anúncio do Cabaprop.
custIdnumber/stringsimId do cliente/conta na sua aplicação. Deve corresponder ao mesmo custId autenticado (veja os erros).
propertyobjectsimO Property Object, com mínimo de 3 imagens.
realStateIdstring/numbersimId da imobiliária no Cabaprop, obtido em GET /cabaprop/get-branches (.id).
branchOfficeIdstring/numbersimId da filial no Cabaprop, obtido em GET /cabaprop/get-branches (.branchOffices[].id).

Sample code

POST /cabaprop/publish
Host: property-api.mapaprop.com
Content-Type: application/json
Authorization: Bearer {access_token}
X-Cabaprop-Token: {cabaprop_token}
{
  "propertyId": 188017,
  "custId": 1,
  "realStateId": "81592",
  "branchOfficeId": "83347",
  "property": {
    "title": "Hermosa casa 4 ambientes con parrilla",
    "description": "Casa de 4 ambientes con jardín y parrilla.",
    "operation_type": "1",
    "property_type": "3",
    "sub_property_type": "12",
    "location": {
      "barrios": [1234],
      "cp": "1425",
      "lat": "-34.5885",
      "lng": "-58.4306",
      "street": "Av. Santa Fe",
      "number": "3253"
    },
    "surface": { "totalSurface": 180, "coveredSurface": 140 },
    "price": { "currency": 1, "total": 250000 },
    "characteristics": { "ambience": 4, "bedrooms": 3, "bathrooms": 2 },
    "images": [
      { "url": "https://tu-servidor.com/fotos/1.jpg", "title": "imagen1", "originalname": "casa1", "filename": null },
      { "url": "https://tu-servidor.com/fotos/2.jpg", "title": "imagen2", "originalname": "casa2", "filename": null },
      { "url": "https://tu-servidor.com/fotos/3.jpg", "title": "imagen3", "originalname": "casa3", "filename": null }
    ]
  }
}

Response

Em caso de sucesso devolve um 200:

{
  "success": true,
  "cabapropId": "68cae034f1a2b3c4d5e6f7a8",
  "mode": "created"
}
CampoTipoDescrição
successbooleantrue se o anúncio foi publicado (ou atualizado) corretamente.
cabapropIdstringId do anúncio no Cabaprop. Guarde-o para futuras chamadas a PUT /cabaprop/property e DELETE /cabaprop/property/unpublish.
modestringcreated se for um anúncio novo, updated se já existia um anúncio ativo e ele foi atualizado (idempotência).

Erros

StatusCorpoCausa
400{"error":"Invalid JSON body"}O body não é um JSON válido.
403{"error":"custId does not match the authenticated customer"}O custId do body não coincide com a conta autenticada.
400{"error":"propertyId, custId and property are required"}Falta algum dos campos obrigatórios.
400{"error":"La propiedad debe tener al menos 3 imagenes para publicarse en Cabaprop"}O property.images tem menos de 3 elementos.
400{"error":"Cabaprop account is not connected (missing token)"}Falta o token do Cabaprop.
400{"error":"Missing realStateId/branchOfficeId — reconnect the Cabaprop account (GET /cabaprop/get-branches) and retry"}Faltam realStateId/branchOfficeId.
400{"error":"La zona/tipo/operacion no tiene mapping en Cabaprop","missing":["..."]}operation_type, property_type ou location.barrios vieram vazios.
502{"error":"Could not verify existing Cabaprop publication state — retry"}Erro interno ao verificar se já existia um anúncio. Tente novamente.
401{"error":"Cabaprop authentication failed — reconnect the account"}O token do Cabaprop é inválido ou expirou.
200{"success":false,"errorCode":"...","detail":"..."}O Cabaprop rejeitou a publicação por dados inválidos (veja as notas do Property Object). detail traz a mensagem textual do portal.
500{"error":"Error publishing Cabaprop property","detail":"..."}Erro inesperado.