Publicar em um portal
Quando o imóvel já está cadastrado e a conta do portal conectada, isto o publica.
PUT /property-v1/properties/{paId}/publication/{portal}
Você não envia o imóvel de novo: nós já o temos, e o publicamos exatamente como ficou salvo. Nós o traduzimos para o formato do portal.
| Portal | Valor de {portal} | Situação |
|---|---|---|
| Zonaprop | zonapropapi | disponível |
| Argenprop, Cabaprop, MercadoLibre | — | em breve |
Requer o escopo {portal}:publish — por exemplo zonapropapi:publish. É diferente do :connect: você pode estar habilitado para conectar contas de um portal e não para publicar nele.
Antes de publicar
Três coisas, nesta ordem:
- A ficha do seu cliente — Clientes
- A conta do portal dele conectada — Conectar com um link
- O imóvel cadastrado, com o seu
paId— Cadastro de imóveis
A chamada
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
plan | string | depende do portal | O plano de publicação. Sobrepõe o que você tenha colocado em publication dentro do objeto |
curl -X PUT https://property-api.mapaprop.com/property-v1/properties/01M3PTZ8YBMM5DSNW03WP8VD9E/publication/zonapropapi \
-H "Authorization: Bearer <SEU_TOKEN>" \
-H "x-client-ref: cliente-42" \
-H "Content-Type: application/json" \
-d '{ "plan": "SUPERDESTACADO" }'
Resposta 200:
{
"status": "published",
"portal": "zonapropapi",
"paId": "01M3PTZ8YBMM5DSNW03WP8VD9E",
"plan": "SUPERDESTACADO",
"quota": { "remaining": 1493, "limit": 1500 }
}
O plan também pode ficar fixo no objeto, em publication. Se você enviar os dois, vence o desta chamada: assim dá para trocar de plano sem reescrever o imóvel.
Chamar de novo ATUALIZA, não duplica
Publicar o mesmo imóvel duas vezes não cria dois anúncios. A segunda chamada atualiza o que já existe. Você pode tentar de novo sem medo: se uma chamada falhou e você não sabe se chegou, chame outra vez.
É a propriedade mais importante deste endpoint, e o motivo de não haver um "criar" e um "atualizar" separados: uma única operação, e o resultado depende de o anúncio já existir ou não.
Quando não dá para publicar: 422
Não é um erro da sua chamada — é que falta um dado. Por isso vêm duas listas separadas:
{
"error": "not_publishable",
"detail": "La propiedad no se puede publicar en este portal todavía.",
"blockers": [
{ "field": "title", "kind": "missing", "message": "Falta el título" }
],
"accountBlockers": [
{ "field": "options.zoneNaventId", "kind": "missing",
"message": "La zona de la propiedad no tiene mapeo guardado en Zonaprop" }
]
}
| Lista | O que significa | Quem resolve |
|---|---|---|
blockers | falta um dado do imóvel | você: corrija o objeto e tente de novo |
accountBlockers | falta algo da conta no portal (zona sem mapeamento, plano, filial) | resolve-se uma vez e vale para todos os imóveis daquele cliente |
Estão separadas porque a correção é diferente. Se você veio de accountBlockers, revisar o JSON do imóvel não vai levar a lugar nenhum: ele está certo.
Dá para antecipar quase todos os blockers com POST /properties/verify, que não cria nem publica nada.
Códigos de resposta
| Código | O que aconteceu | O que fazer |
|---|---|---|
200 | Publicado | — |
400 | O portal ainda não está disponível, ou o body não é JSON válido | Confira o valor de {portal} |
403 | O seu token não tem o escopo {portal}:publish | Escreva para nós para habilitá-lo |
404 | Esse imóvel não existe para este cliente | Confira o paId e o x-client-ref |
409 | A conta não está conectada ao portal | Solicite um link de conexão |
409 | O cliente está com baixa (customer_not_active) | Reative-o com POST /property-v1/customers — veja Clientes |
422 | Falta um dado | Veja acima |
502 | O portal recusou a publicação, ou não respondeu | Veja abaixo |
O 502, que tem dois sabores
{ "error": "portal_rejected",
"detail": "No pudimos alcanzar al portal. El aviso PUEDE haberse publicado: volvé a intentar, la operación es idempotente y no duplica.",
"portalResponse": null }
- O portal recusou →
portalResponsetraz a resposta dele tal como veio. O motivo está ali. - Não respondeu → o
detailinforma isso, e pode ter sido publicado mesmo assim. Tentar de novo é seguro: não duplica.
Não dizemos "não foi publicado" quando não sabemos.
Despublicar
Em breve. DELETE /property-v1/properties/{paId}/publication/{portal} vai retirar o anúncio do portal. Escreva para dev@mapaprop.com se a sua integração precisar disso.
Enquanto isso, o seu cliente pode retirar o anúncio pelo painel do próprio portal.
Específico de cada portal
- Zonaprop: o plano é obrigatório e cada publicação consome a cota mensal do seu cliente — Cota mensal e limites
Relacionado
- A chave
publication— o que configurar dentro do objeto - Conectar com um link — conectar a conta do portal
POST /properties/verify— antecipar os blockers