Skip to the content.

Structura datelor

saveProperty creează oferta sau o actualizează parțial. O actualizare este identificată prin AGENTIA + ID_LOCAL, iar câmpurile nemodificate pot lipsi fără să fie șterse.

La creare, trimite câmpurile necesare publicării. La actualizare, trimite identificatorii și numai valorile care trebuie modificate.

Nume câmp Tip Exemplu Descriere Obligatoriu
ID_LOCAL integer 67654 Identificatorul numeric canonic al ofertei în contextul agenției. Dacă este transmis, trebuie să fie stabil la retrimiteri. Dacă nu este transmis sau ID-ul CRM nu este numeric, API-ul alocă un ID_LOCAL numeric care trebuie salvat de integrator. Nu este property_id intern Imopedia. Recomandat când există ID numeric stabil
AGENTIA integer 123 ID-ul numeric al agenției autorizate pentru publicare, primit de la Imopedia. Da
REGION_ID integer 12 Identificatorul numeric canonic al regiunii, din nomenclatorul public de regiuni. Acceptă valori întregi de la 1 și, pentru compatibilitate SOAP, stringuri numerice normalizate la integer. Recomandat / viitor obligatoriu
TAGURI string "[\"Sold\"]" String JSON-encoded care conține o listă de stringuri (ex.: Sold, Ucraina). Opțional
IMOPEDIA integer 1 Flag pentru afișarea ofertei în listingul Imopedia.ro. Folosește 1 pentru publicare. Recomandat pentru publicare
TITLU string "Apartament 2 camere în Giurgiului" Titlul anunțului afișat public. Recomandat pentru publicare
COMISION / COMISION_I string "2" / "2.5" Procentul de comision pentru vânzare, respectiv închiriere. 2 înseamnă 2%, iar 2.5 înseamnă 2,5%. Opțional
VIDEO_INFO string Vezi exemplul JSON de mai jos. String JSON serializat cu resurse video sau tururi virtuale. Opțional
GEO_LAT / GEO_LONG string 44.392663 / 26.089659 Coordonate geografice pentru harta Google Maps. Opțional
PRET_TEXT_DISCOUNT string "Capacitate 4 persoane..." Detalii privind prețurile cu discount, folosit inclusiv în regimuri speciale. Opțional
T_I_PRET_DISCOUNT float 200 Preț de închiriere cu discount. Opțional
T_H_PRET_DISCOUNT float null Preț regim hotelier cu discount. Opțional
GOLD integer 1 Solicită promovarea ofertei ca GOLD, în limita disponibilă pentru agenție. Opțional

COMISION și COMISION_I se transmit prin SOAP ca stringuri numerice, conform WSDL. Folosește punctul ca separator zecimal și nu include semnul % sau o monedă.

TAGURI se transmite ca string, nu ca array SOAP. În PHP, serializează lista de stringuri înainte de apel:

$tags = array('Sold', 'Ucraina');
$options['TAGURI'] = json_encode($tags);

Identificatori și URL public

ID_LOCAL este identificatorul numeric canonic al ofertei în contextul agenției și trebuie păstrat stabil la fiecare retrimitere. Împreună cu AGENTIA, acesta formează identificatorul folosit în URL-ul public al anunțului:

https://www.imopedia.ro/anunt/proprietate-{AGENTIA}RUN{ID_LOCAL}

Exemplu cu date fictive:

https://www.imopedia.ro/anunt/proprietate-123RUN67654

Nu construi linkul public din property_id. Dacă saveProperty returnează property_id, tratează-l ca identificator intern Imopedia, nu ca slug public și nu ca înlocuitor pentru ID_LOCAL.

Dacă ID-ul din CRM este alfanumeric, UUID sau alt format nenumeric, nu îl folosești direct ca ID_LOCAL numeric. Dacă la creare omiți ID_LOCAL, API-ul alocă un ID_LOCAL numeric; salvează această valoare returnată și folosește-o pentru actualizări, media, ștergere, promovare și URL public.

saveProperty poate returna atât identificatori interni, cât și ID_LOCAL numeric. Pentru sincronizare, CRM-ul trebuie să persiste ID_LOCAL și să îl folosească la toate apelurile viitoare de saveProperty pentru aceeași ofertă.

Localizare și compatibilitate legacy

Pentru integrări noi, trimite REGION_ID. O valoare explicită și validă are întotdeauna prioritate. REGION_ID, JUDET_ID și ZONA_ID au roluri distincte și nu sunt interschimbabile; API-ul nu copiază JUDET_ID sau ZONA_ID în REGION_ID.

ORAS și JUDET rămân acceptate pentru compatibilitate, dar sunt deprecated pentru identificarea regiunii și produc warning-ul DEPRECATED_FIELD. Dacă REGION_ID lipsește, este null sau șir gol, API-ul încearcă să determine regiunea întâi din ORAS, apoi din JUDET. Integrarea primește în continuare warning-ul MIGRATION_REQUIRED, chiar dacă fallback-ul găsește regiunea.

La un update parțial, omiterea REGION_ID nu șterge regiunea persistentă. Dacă requestul nu conține nici ORAS sau JUDET din care se poate determina altă regiune, localizarea existentă rămâne neschimbată.

Video și tururi virtuale

VIDEO_INFO se transmite ca string JSON serializat, nu ca array SOAP imbricat. Fiecare element poate include câmpuri precum ID, ID_OFERTA, TITLE, FILE_TYPE și FILE_URL. Pentru YouTube, folosește FILE_TYPE = "youtube" și un URL de embed sau watch valid.

Forma JSON înainte de serializare:

[
  {
    "TITLE": "Titlu video",
    "FILE_TYPE": "youtube",
    "FILE_URL": "https://www.youtube.com/embed/example"
  }
]

Referințe JSON

Pentru consum programatic, câmpurile și nomenclatoarele sunt disponibile ca fișiere versionate:

Pentru toate valorile controlate, vezi Nomenclatoare.