System voxCRM udostępnia publiczne API XML (z opcją JSON), dzięki któremu strona WWW może w pełni zautomatyzowany sposób pobierać aktualne dane o inwestycjach, dostępnych lokalach oraz historii zmian cen. Dane w pliku XML są automatycznie aktualizowane raz na godzinę — rekomendujemy buforowanie po stronie WWW.
- Adres:
https://demo1.voxdeveloper.com - Testowy klucz API:
ab33c2fb8240c8c7ca015d924713b5d234b7778e - Przykładowa inwestycja:
investment_id = 15
Spis treści
- Endpoint — Lista inwestycji
- Endpoint — Lista lokali dla inwestycji
- Endpoint — Historia zmian cen
- Słowniki: statusy, typy lokali i kierunki świata
- Przykłady integracji
- Kontakt
1. Endpoint — Lista inwestycji
URL (XML — format domyślny):
GET https://demo1.voxdeveloper.com/webservice/investments-list/api_key/{API_KEY}
Przykład dla instancji demo (XML):
https://demo1.voxdeveloper.com/webservice/investments-list/api_key/ab33c2fb8240c8c7ca015d924713b5d234b7778e
Wersja JSON — ten sam endpoint zwraca dane w formacie JSON po dodaniu segmentu /json/1 w adresie:
GET https://demo1.voxdeveloper.com/webservice/investments-list/api_key/{API_KEY}/json/1
Przykład dla instancji demo (JSON):
https://demo1.voxdeveloper.com/webservice/investments-list/api_key/ab33c2fb8240c8c7ca015d924713b5d234b7778e/json/1
/json/1 endpoint zwraca XML (domyślnie). Z segmentem /json/1 — JSON. Oba warianty zawierają te same dane i pola, różnią się jedynie formatem.Pola domyślne (zawsze zwracane)
| Tag | Opis | Przykład |
id |
ID inwestycji w CRM | 123 |
name |
Nazwa inwestycji | Testowa Inwestycja |
voivodeship |
Województwo | mazowieckie |
address_district |
Dzielnica / powiat | Śródmieście |
address_street |
Ulica | Al. Jerozolimskie |
address_building_number |
Numer budynku | 65 |
address_apartment_number |
Numer lokalu | 1 |
postal_code |
Kod pocztowy | 00-001 |
latitude |
Szerokość geograficzna | 52.2297 |
longitude |
Długość geograficzna | 21.0122 |
city |
Miasto | Warszawa |
transfer_ownership_date |
Data przeniesienia własności | 2025-06-30 |
website_url |
Adres strony WWW inwestycji | https://inwestycja.pl |
monetary_benefits |
Inne korzyści finansowe (opisowo) | 5% cashback |
status |
Status inwestycji (tłumaczony) | W sprzedaży |
Pola opcjonalne (zależne od ustawień)
Te pola pojawią się w XML tylko gdy administrator włączył odpowiednią opcję. Jeśli chcesz wykorzystać któreś z nich, poproś administratora o włączenie.
| Tag | Opis | Opcja do włączenia |
investment_mini |
Miniaturka wizualizacji inwestycji | Miniaturka wizualizacji inwestycji |
investment_photo_{N} |
Galeria zdjęć inwestycji (N = 1, 2, 3…) | Galeria wizualizacji inwestycji |
investment_logo |
Logo inwestycji | Logo inwestycji |
informative_prospectus_link{N} |
Prospekty informacyjne (inwestycja) | Prospekt informacyjny |
stage_informative_prospectus_link{N} |
Prospekty informacyjne (etapy) — z atrybutem stageName |
Prospekt informacyjny |
technical_standard_link{N} |
Standardy techniczne (inwestycja) | Standard techniczny |
stage_technical_standard_link{N} |
Standardy techniczne (etapy) — z atrybutem stageName |
Standard techniczny |
Przykład XML
<?xml version="1.0"?>
<xml>
<investment>
<id>123</id>
<name>Testowa Inwestycja</name>
<voivodeship>mazowieckie</voivodeship>
<address_district>Śródmieście</address_district>
<address_street>Al. Jerozolimskie</address_street>
<address_building_number>65</address_building_number>
<address_apartment_number></address_apartment_number>
<postal_code>00-001</postal_code>
<latitude>52.2297</latitude>
<longitude>21.0122</longitude>
<city>Warszawa</city>
<transfer_ownership_date>2025-06-30</transfer_ownership_date>
<website_url>https://inwestycja.pl</website_url>
<monetary_benefits>5% cashback</monetary_benefits>
<status>W sprzedaży</status>
<investment_logo>https://demo1.voxdeveloper.com/files/investments/logo.png</investment_logo>
</investment>
</xml>
2. Endpoint — Lista lokali dla inwestycji
URL (XML — format domyślny):
GET https://demo1.voxdeveloper.com/webservice/realestatestatuslist/api_key/{API_KEY}/investment_id/{ID}
Przykład dla instancji demo, XML (inwestycja nr 15):
https://demo1.voxdeveloper.com/webservice/realestatestatuslist/api_key/ab33c2fb8240c8c7ca015d924713b5d234b7778e/investment_id/15
Wersja JSON — ten sam endpoint zwraca dane w formacie JSON po dodaniu segmentu /json/1 w adresie:
GET https://demo1.voxdeveloper.com/webservice/realestatestatuslist/api_key/{API_KEY}/json/1/investment_id/{ID}
Przykład dla instancji demo, JSON (inwestycja nr 15):
https://demo1.voxdeveloper.com/webservice/realestatestatuslist/api_key/ab33c2fb8240c8c7ca015d924713b5d234b7778e/json/1/investment_id/15
/json/1 endpoint zwraca XML (domyślnie). Z segmentem /json/1 — JSON. Oba warianty zawierają te same dane i pola, różnią się jedynie formatem odpowiedzi.Filtrowanie wyników w URL
Endpoint realestatestatuslist wspiera dodatkowe, opcjonalne filtry przekazywane w adresie URL. Pozwalają one ograniczyć rozmiar zwracanego pliku XML — przydatne przy dużych inwestycjach, gdzie pełna lista lokali ładuje się wolno.
| Parametr | Opis | Wartości |
stage_id={ID} |
Filtruje lokale do konkretnego etapu inwestycji | ID etapu |
type_id={ID} |
Filtruje lokale po typie | ID typu lub lista CSV (słownik), np. 1 lub 1,2 |
status_id={ID} |
Filtruje lokale po statusie | ID statusu lub lista CSV (słownik), np. 1 lub 1,2 |
Zasady łączenia filtrów:
- Jako pierwszy w adresie występuje
investment_idlubstage_id. - Następnie, w dowolnej kolejności, można dodać
type_idi/lubstatus_id. - Każdy z filtrów
type_idistatus_idprzyjmuje pojedynczą wartość lub listę rozdzieloną przecinkami (CSV).
Przykłady poprawnych adresów:
# Tylko mieszkania (typ 1) w inwestycji 15
.../realestatestatuslist/api_key/{API_KEY}/investment_id/15/type_id/1
# Mieszkania i garaże (typy 1 i 2)
.../realestatestatuslist/api_key/{API_KEY}/investment_id/15/type_id/1,2
# Tylko lokale dostępne (status 1)
.../realestatestatuslist/api_key/{API_KEY}/investment_id/15/status_id/1
# Mieszkania dostępne i z rezerwacją ustną (typ 1, statusy 1 i 2)
.../realestatestatuslist/api_key/{API_KEY}/investment_id/15/type_id/1/status_id/1,2
# Filtrowanie po etapie zamiast inwestycji
.../realestatestatuslist/api_key/{API_KEY}/stage_id/15/type_id/1,2/status_id/1
type_id i status_id odpowiadają identyfikatorom ze słowników statusów i typów lokali w dalszej części dokumentacji.realestatestatuslist w systemie dostępny jest również /webservice/realestate-list-xml — alternatywny endpoint z nieco innym zestawem pól. Endpoint ten obsługuje filtrowanie wyłącznie po investment_id (filtry type_id oraz status_id dostępne są tylko w realestatestatuslist). W razie potrzeby warto skontaktować się z działem wsparcia, aby dobrać odpowiedni endpoint do integracji.Pola domyślne (zawsze zwracane)
| Tag | Opis | Format / wartości |
id |
ID lokalu w CRM | liczba |
investment_id |
ID inwestycji | liczba |
investment_name |
Nazwa inwestycji | tekst |
investment_status |
Status inwestycji (tłumaczony) | tekst |
investment_stage |
Nazwa etapu inwestycji | tekst |
building |
Nazwa budynku | tekst |
name |
Pełna nazwa lokalu (budynek + numer) | tekst, np. A - M1 |
local_number |
Numer lokalu | tekst, np. M1 |
status_id |
ID statusu lokalu | 1–11 (słownik) |
status_name |
Nazwa statusu (tłumaczona) | tekst |
area |
Powierzchnia całkowita | liczba (m²) |
area_usable |
Powierzchnia użytkowa | liczba (m²) |
rooms |
Liczba pokoi | liczba |
floor |
Piętro | liczba lub tekst (np. 3A) |
completion_date |
Data pozwolenia na użytkowanie | data lub tekst (np. „Available immediately") |
ask_for_price |
Pytaj o cenę | 0 lub 1 |
city |
Miasto | tekst |
date_modified |
Data ostatniej zmiany | YYYY-MM-DD HH:MM:SS |
type_id |
ID typu lokalu | 1–31 (słownik) |
type |
Nazwa typu (tłumaczona) | tekst |
staircase |
Nazwa klatki | tekst |
promotion |
Lokal w promocji | 0 lub 1 |
direction |
Kierunek świata (strony świata lokalu) | lista CSV (słownik) |
two_levels |
Lokal dwupoziomowy | 0 lub 1 |
dont_send_to_www |
Ukryty na WWW | 0 lub 1 |
sold_status |
Status sprzedaży | liczba |
dont_export_realestate_to_xml_table |
Wyłączony z eksportu XML (tabela) | 0 lub 1 |
virtual_walk |
Link do spaceru wirtualnego | URL |
view360 |
Link do widoku 360° | URL |
Pola cenowe (warunkowe)
Zwracane dla lokali dostępnych (statusy 1, 2). Jeśli chcesz pokazywać ceny także dla lokali zarezerwowanych lub sprzedanych — skontaktuj się z administratorem, który może włączyć opcję „Dodaj ceny do xml kiedy status jest niedostępny". Pełne wyłączenie cen w XML (np. na życzenie dewelopera) również leży po stronie administratora.
| Tag | Opis | Format / wartości |
price |
Cena brutto | liczba (PLN) |
pricemkw |
Cena za m² brutto | liczba (PLN/m²) |
price_net |
Cena netto | liczba (PLN) |
pricemkw_net |
Cena za m² netto | liczba (PLN/m²) |
promotion_price |
Cena promocyjna brutto | liczba (PLN) |
promotion_price_net |
Cena promocyjna netto | liczba (PLN) |
promotion_date_from |
Data startu promocji | data (YYYY-MM-DD) |
promotion_date_to |
Data końca promocji | data (YYYY-MM-DD) |
Pola opcjonalne
Te pola są widoczne w XML tylko gdy administrator włączył je w konfiguracji systemu. Pogrupowane tematycznie — jeśli potrzebujesz konkretnego pola, poproś administratora o jego włączenie.
Dodatkowe ceny:
| Tag | Opis | Format / wartości |
minimal_price_gross |
Najniższa cena brutto z ostatnich 30 dni | liczba (PLN) |
minimal_price_net |
Najniższa cena netto z ostatnich 30 dni | liczba (PLN) |
promotion_price_mkw / promotion_price_mkw_net |
Cena promocyjna za m² brutto / netto | liczba (PLN/m²) |
promotion_price_mkw_usable / promotion_price_mkw_usable_net |
Cena promocyjna za m² użytkowy brutto / netto | liczba (PLN/m²) |
pricemkw_usable / pricemkw_net_usable |
Cena za m² powierzchni użytkowej brutto / netto | liczba (PLN/m²) |
price_marketing / pricemkw_marketing |
Cena marketingowa i za m² | liczba (PLN) / (PLN/m²) |
parking_place_price |
Cena miejsca parkingowego | liczba (PLN) |
total_gross_price / total_net_price |
Cena łączna (lokal + przynależności) brutto / netto | liczba (PLN) |
promotion_desc |
Opis promocji | tekst |
last_price_change |
Data ostatniej zmiany ceny | data (YYYY-MM-DD) |
price_change_history |
Link do XML-a z historią cen lokalu | URL |
price_change_history_json |
Jw. w formacie JSON (jeśli administrator włączył opcję „Pokaż historię zmian cen również w formacie JSON") | URL |
Wynajem:
| Tag | Opis | Format / wartości |
rent_percentage_amount |
Udział procentowy w czynszu | liczba (%) |
base_rent / base_rent_net |
Czynsz bazowy brutto / netto | liczba (PLN) |
available_for_sale |
Dostępne do sprzedaży | 0 lub 1 |
available_for_rent |
Dostępne do wynajmu | 0 lub 1 |
Powierzchnie i miary:
| Tag | Opis | Format / wartości |
balkon |
Powierzchnia balkonu | liczba (m²) |
balcony_count |
Liczba balkonów | liczba |
taras |
Powierzchnia tarasu | liczba (m²) |
ogrod |
Powierzchnia ogrodu | liczba (m²) |
loggia |
Powierzchnia loggii | liczba (m²) |
antresole_area |
Powierzchnia antresoli | liczba (m²) |
area_attic |
Powierzchnia strychu | liczba (m²) |
area_marketing |
Powierzchnia marketingowa | liczba (m²) |
plot_area |
Powierzchnia działki | liczba (m²) |
room_height |
Wysokość pomieszczenia | liczba (m) |
sales_area |
Powierzchnia sprzedażowa | liczba (m²) |
Identyfikatory i nazewnictwo:
| Tag | Opis | Format / wartości |
administrative_number |
Numer administracyjny lokalu | tekst |
zeropadded_name |
Numer lokalu z zerami wiodącymi | tekst |
www_id |
Identyfikator na portalu WWW | tekst |
Cechy i wyposażenie:
| Tag | Opis | Format / wartości |
description |
Opis lokalu | tekst |
features |
Cechy lokalu (lista) | lista tekstów (CSV) |
recommended |
Lokal rekomendowany | 0 lub 1 |
ready_to_move |
Gotowe do odbioru | 0 lub 1 |
turnkey_condition |
Wykończenie pod klucz | 0 lub 1 |
finish_and_equipment |
Wykończenie i wyposażenie | 0 lub 1 |
finish_and_equipment_premium |
Wykończenie premium | 0 lub 1 |
fireplace |
Kominek | 0 lub 1 |
air_conditioner |
Klimatyzacja | 0 lub 1 |
corner_apartment |
Lokal narożny | 0 lub 1 |
home_office |
Nadający się pod biuro | 0 lub 1 |
pantry |
Spiżarnia / schowek gospodarczy | 0 lub 1 |
photovoltaics |
Fotowoltaika | 0 lub 1 |
recuperation |
Rekuperacja | 0 lub 1 |
underfloor_heating |
Ogrzewanie podłogowe | 0 lub 1 |
duplex |
Lokal typu duplex | 0 lub 1 |
kitchen |
Rodzaj kuchni | tekst |
wardrobe |
Garderoba / szafa | 0 lub 1 |
cubby |
Miejsce na gospodarstwo | 0 lub 1 |
building_type |
Typ budynku (tłumaczony) | tekst |
district |
Dzielnica / osiedle | tekst |
Parkingi, piwnice, rowerownie:
| Tag | Opis | Format / wartości |
number_of_mandatory_parking_spaces |
Obowiązkowa liczba miejsc parkingowych | liczba |
number_of_mandatory_cellars |
Obowiązkowa liczba piwnic | liczba |
number_of_mandatory_bicycle_boxes |
Obowiązkowa liczba boksów rowerowych | liczba |
Energetyka:
| Tag | Opis | Format / wartości |
energy_class |
Klasa energetyczna | tekst (np. A+, B, C) |
annual_demand_indicator_for_usable_energy |
Roczne zapotrzebowanie — energia użytkowa | liczba (kWh/m²/rok) |
annual_demand_indicator_for_final_energy |
Roczne zapotrzebowanie — energia końcowa | liczba (kWh/m²/rok) |
annual_demand_indicator_for_non_renewable_primary_energy |
Roczne zapotrzebowanie — energia pierwotna nieodnawialna | liczba (kWh/m²/rok) |
share_of_renewable_energy_sources |
Udział OZE | liczba (%) |
unit_amount_of_co2_emission |
Emisja CO₂ na m² | liczba (kg CO₂/m²/rok) |
Daty i statusy dodatkowe:
| Tag | Opis | Format / wartości |
date_pnu |
Data pozwolenia na użytkowanie (etap) | data (YYYY-MM-DD) |
inspection_date |
Data odbioru | data (YYYY-MM-DD) |
realestate_promotion_available |
Dostępność promocji | 0 lub 1 |
investment_other_cash_benefits |
Inne korzyści finansowe inwestycji | tekst |
total_finally_net_value |
Finalna wartość netto lokalu | liczba (PLN) |
Pliki:
| Tag | Opis | Format / wartości |
photo_link{N} |
Zdjęcia lokalu (N = 1, 2, 3…) | URL |
card_link / card_link_extension / card_link_file_extension |
Karta lokalu (PDF) + wersje z rozszerzeniem | URL / tekst / tekst |
plan_link / plan_link_extension / plan_link_tn |
Plan lokalu + rozszerzenie + miniatura | URL / tekst / URL |
plan3d_link |
Plan 3D | URL |
plan_thumbnail_link / plan_thumbnail_link_extension |
Miniatura planu | URL / tekst |
plan_preview / plan_preview_extension |
Podgląd planu | URL / tekst |
document_link / documents_link_extension |
Inne dokumenty lokalu | URL / tekst |
housing_estate_plan{N} |
Plany osiedla | URL |
video_link |
Film o lokalu | URL |
Struktury zagnieżdżone
Pojawiają się jako osobne elementy wewnątrz <realestate>.
<contiguity_list> — przynależności. Każdy <contiguity> zawiera:
| Tag | Opis | Format / wartości |
contiguity_id |
ID przynależnego lokalu | liczba |
contiguity_name |
Nazwa | tekst |
contiguity_type |
Typ (tłumaczony) | tekst |
contiguity_multilingual_description |
Opis wielojęzyczny | tekst |
contiguity_price / contiguity_price_net |
Cena brutto / netto | liczba (PLN) |
contiguity_pricemkw / contiguity_pricemkw_net |
Cena za m² brutto / netto | liczba (PLN/m²) |
contiguity_area / contiguity_area_usable |
Powierzchnia / użytkowa | liczba (m²) |
contiguity_last_price_change |
Data ostatniej zmiany ceny | data (YYYY-MM-DD) |
contiguity_price_change_history / _json |
Linki do historii zmian cen | URL |
contiguity_available_for_sale / _for_rent |
Flagi dostępności | 0 lub 1 |
<storey_list> — rozbicie powierzchni na kondygnacje / strefy dodatkowe. Lista kondygnacji i stref lokalu, które nie są głównymi pomieszczeniami (np. antresole, strychy, poddasza). Sekcja pojawia się po włączeniu opcji „Powierzchnia apartamentu" (wspólnej dla <storey_list> i <room_list>). Każdy <storey> zawiera:
| Tag | Opis | Format / wartości |
storey_name |
Nazwa kondygnacji / strefy | tekst |
storey_area |
Powierzchnia | liczba (m²) |
storey_height |
Wysokość | liczba (m) |
storey_area_usable |
Powierzchnia użytkowa | liczba (m²) |
storey_area_under_the_walls_and_stairs |
Powierzchnia pod ścianami i schodami | liczba (m²) |
<room_list> — rozbicie powierzchni na pomieszczenia główne. Lista pomieszczeń głównych lokalu (np. pokoje, kuchnia, łazienka). Sekcja pojawia się po włączeniu opcji „Powierzchnia apartamentu" (wspólnej z <storey_list>). Każdy <room> zawiera:
| Tag | Opis | Format / wartości |
room_name |
Nazwa pomieszczenia (np. „Pokój dzienny", „Kuchnia") | tekst |
room_area |
Powierzchnia | liczba (m²) |
<flags_list> — atuty / wyróżniki lokalu. Lista cech wyróżniających lokal (np. „Balkon", „Narożne okno", „Widok na park"). Sekcja pojawia się po włączeniu opcji „Zalety". Każdy <flag> zawiera:
| Tag | Opis | Format / wartości |
flag_name |
Nazwa atutu | tekst |
Przykład XML
<?xml version="1.0"?>
<xml>
<realestate>
<id>2041</id>
<investment_id>15</investment_id>
<investment_name>Testowa Inwestycja</investment_name>
<investment_status>W sprzedaży</investment_status>
<investment_stage>Etap I</investment_stage>
<building>A</building>
<name>A - M1</name>
<local_number>M1</local_number>
<status_id>1</status_id>
<status_name>Dostępne</status_name>
<area>45.50</area>
<area_usable>38.20</area_usable>
<rooms>2</rooms>
<floor>3</floor>
<completion_date>2025-06-15</completion_date>
<ask_for_price>0</ask_for_price>
<city>Warszawa</city>
<price>490000.00</price>
<pricemkw>10769.23</pricemkw>
<price_net>453703.70</price_net>
<pricemkw_net>9970.96</pricemkw_net>
<date_modified>2025-05-26 17:00:00</date_modified>
<type_id>1</type_id>
<type>Mieszkanie</type>
<balkon>8.50</balkon>
<plan_link>https://demo1.voxdeveloper.com/files/realestate/plan.pdf</plan_link>
<card_link>https://demo1.voxdeveloper.com/files/realestate/card.pdf</card_link>
<contiguity_list>
<contiguity>
<contiguity_name>MP-12</contiguity_name>
<contiguity_type>Miejsce postojowe</contiguity_type>
<contiguity_price>25000.00</contiguity_price>
<contiguity_area>12.00</contiguity_area>
</contiguity>
</contiguity_list>
</realestate>
</xml>
3. Endpoint — Historia zmian cen
Link do pliku XML historii cen każdego lokalu znajdziesz w polu price_change_history poprzedniego endpointu. Przykład ścieżki:
https://demo1.voxdeveloper.com/files/price_changes/{hash1}/{hash2}.xml
Plik jest generowany automatycznie po każdej zmianie cen — nie wymaga autoryzacji poza znajomością URL-a. Dla wygody dostępna jest również wersja JSON (jeśli administrator ją włączył).
Pola zawsze zwracane
| Tag | Opis | Format / wartości |
id |
ID lokalu | liczba |
investment_id |
ID inwestycji | liczba |
investment_name |
Nazwa inwestycji | tekst |
investment_stage |
Nazwa etapu | tekst |
building |
Budynek | tekst |
name |
Pełna nazwa lokalu | tekst |
local_number |
Numer lokalu | tekst |
type_id / type |
Typ lokalu | liczba / tekst |
price / price_net |
Aktualna cena brutto / netto | liczba (PLN) |
pricemkw / pricemkw_net |
Aktualna cena za m² brutto / netto | liczba (PLN/m²) |
Pola opcjonalne (włączane przez administratora)
| Tag | Opis | Format / wartości |
pricemkw_usable / pricemkw_usable_net |
Cena za m² użytkowy brutto / netto | liczba (PLN/m²) |
Struktura <price_history>
Zawiera listę <price_change>. Każdy zawiera:
| Tag | Opis | Format / wartości |
date_modified |
Data i godzina zmiany | YYYY-MM-DD HH:MM |
type |
Rodzaj zmiany (tłumaczony), np. „Cena katalogowa", „Cena promocyjna" | tekst |
<before> |
Stan przed zmianą — price, price_net, pricemkw, pricemkw_net (+ opcjonalnie warianty _usable) |
grupa pól |
<after> |
Stan po zmianie — te same pola | grupa pól |
Przykład XML
<?xml version="1.0"?>
<xml>
<realestate>
<id>2041</id>
<investment_id>15</investment_id>
<investment_name>Testowa Inwestycja</investment_name>
<investment_stage>Etap I</investment_stage>
<building>A</building>
<name>A - M1</name>
<local_number>M1</local_number>
<type_id>1</type_id>
<type>Mieszkanie</type>
<price>490000.00</price>
<price_net>453703.70</price_net>
<pricemkw>10769.23</pricemkw>
<pricemkw_net>9970.96</pricemkw_net>
<price_history>
<price_change>
<date_modified>2025-05-26 17:00</date_modified>
<type>Cena katalogowa</type>
<before>
<price>500000.00</price>
<price_net>462962.96</price_net>
<pricemkw>10989.01</pricemkw>
<pricemkw_net>10175.01</pricemkw_net>
</before>
<after>
<price>490000.00</price>
<price_net>453703.70</price_net>
<pricemkw>10769.23</pricemkw>
<pricemkw_net>9970.96</pricemkw_net>
</after>
</price_change>
</price_history>
</realestate>
</xml>
4. Słowniki: statusy, typy lokali i kierunki świata
Statusy lokali
| ID | Status |
| 1 | Dostępne |
| 2 | Rezerwacja ustna |
| 3 | Umowa rezerwacyjna |
| 4 | Sprzedane |
| 5 | Umowa przedwstępna |
| 6 | Umowa deweloperska |
| 7 | Akt notarialny |
| 8 | Odbiór |
| 9 | Wstrzymany |
| 10 | Rezerwacja podtrzymana |
| 11 | Umowa najmu |
Typy lokali
| ID | Typ |
| 1 | Mieszkanie |
| 2 | Garaż |
| 3 | Miejsce postojowe |
| 4 | Komórka lokatorska |
| 5 | Miejsce postojowe zadaszone |
| 6 | Piwnica |
| 7 | Boks rowerowy |
| 8 | Lokal komercyjny |
| 9 | Lokal biurowy |
| 10 | Schowek |
| 11 | Miejsce postojowe naziemne |
| 12 | Miejsce postojowe podziemne |
| 13 | Miejsce postojowe ze schowkiem |
| 14 | Miejsce postojowe zależne podwójne |
| 15 | Miejsce postojowe na jednoślad |
| 16 | Dom |
| 17 | Udział |
| 18 | Hala na platformie |
| 19 | Standard wykończenia |
| 20 | Condohotel |
| 21 | Apartament |
| 22 | Udział w nieruchomości wodnej |
| 23 | Miejsce cumownicze |
| 24 | Działka |
| 25 | Osiedle mieszkaniowe |
| 26 | Miejsce postojowe dla osób z niepełnosprawnością |
| 27 | Taras dachowy |
| 28 | Schowek na jednoślad |
| 29 | Sauna |
| 30 | Ogród |
| 31 | Loggia |
Kierunki świata (pole direction)
Pole direction w XML opisuje strony świata, na które wychodzi lokal. Może zawierać jedną lub kilka wartości rozdzielonych przecinkami (dla lokali narożnych / przechodnich).
Format wartości zależy od ustawienia w panelu voxCRM — opcji „Wyświetl alternatywną listę stron świata (skrócone polskie nazwy i posortowane według zegara)":
| Ustawienie | Format w XML | Przykład |
| Opcja wyłączona (domyślnie) | Surowe kody literowe N / S / E / W | <direction>NE,NS,SW</direction> |
| Opcja włączona | Skrócone nazwy polskie rozdzielone przecinkami | <direction>Pn., Wsch., Pd., Zach.</direction> |
direction, ustal z administratorem voxCRM po stronie klienta, który wariant jest włączony — i trzymaj się jednego. Mieszanie formatów (raz kody, raz polskie skróty) w tym samym pliku XML nie wystąpi, ale zmiana ustawienia w panelu zmienia format w kolejnym wygenerowaniu XML.Pełna lista dostępnych kodów (wariant domyślny — opcja wyłączona)
| Kod | Znaczenie | Proponowany skrót polski |
N |
Północ | Pn. |
S |
Południe | Pd. |
E |
Wschód | Wsch. |
W |
Zachód | Zach. |
NE |
Północny-Wschód | Pn., Wsch. |
EN |
Wschodni-Północ | Pn., Wsch. |
NW |
Północny-Zachód | Pn., Zach. |
WN |
Zachodni-Północ | Pn., Zach. |
SE |
Południowy-Wschód | Pd., Wsch. |
ES |
Wschodni-Południe | Pd., Wsch. |
SW |
Południowy-Zachód | Pd., Zach. |
WS |
Zachodni-Południe | Pd., Zach. |
NS |
Północ-Południe | Pn., Pd. |
SN |
Południe-Północ | Pn., Pd. |
EW |
Wschód-Zachód | Wsch., Zach. |
WE |
Zachód-Wschód | Wsch., Zach. |
NSE |
Północ, Południe, Wschód | Pn., Wsch., Pd. |
NES |
Północ, Wschód, Południe | Pn., Wsch., Pd. |
NSW |
Północ, Południe, Zachód | Pn., Pd., Zach. |
NWS |
Północ, Zachód, Południe | Pn., Pd., Zach. |
SWN |
Południe, Zachód, Północ | Pn., Pd., Zach. |
NEW |
Północ, Wschód, Zachód | Pn., Wsch., Zach. |
NWE |
Północ, Zachód, Wschód | Pn., Wsch., Zach. |
EWN |
Wschód, Zachód, Północ | Pn., Wsch., Zach. |
SWE |
Południe, Zachód, Wschód | Pd., Wsch., Zach. |
ESW |
Wschód, Południe, Zachód | Pd., Wsch., Zach. |
NSEW |
Wszystkie cztery strony | Pn., Wsch., Pd., Zach. |
NE i EN oznaczają to samo). Przy parsowaniu surowych kodów warto rozpoznawać wartość po zestawie liter, a nie po dokładnym ciągu — tak, aby mapowanie działało niezależnie od kolejności znaków w kodzie. W wariancie z włączoną alternatywną listą problem nie występuje: XML zwraca gotowe skróty polskie z kolumny „Proponowany skrót polski".5. Przykłady integracji
PHP — pobranie statusu lokalu
<?php
// Dla środowiska produkcyjnego podmień klucz API i ID inwestycji na własne.
function getRealEstateInfo(int $id): ?array {
$url = 'https://demo1.voxdeveloper.com/webservice/realestatestatuslist'
. '/api_key/ab33c2fb8240c8c7ca015d924713b5d234b7778e/investment_id/15';
$xml = simplexml_load_file($url);
if ($xml === false) {
return null;
}
foreach ($xml->realestate as $realestate) {
if ((int) $realestate->id === $id) {
return [
'id' => (string) $realestate->id,
'status_id' => (int) $realestate->status_id,
'status_name' => (string) $realestate->status_name,
'price' => (float) $realestate->price,
'area' => (float) $realestate->area,
];
}
}
return null;
}
$info = getRealEstateInfo(2041);
if ($info !== null) {
echo "Lokal #{$info['id']} — {$info['status_name']} — {$info['price']} PLN";
}
WordPress — shortcode z buforowaniem
<?php
/* Plugin Name: voxCRM Real Estate Table */
function voxcrm_realestate_table() {
if (false === ($output = get_transient('voxcrm_realestate_table'))) {
// Dla środowiska produkcyjnego podmień klucz API i ID inwestycji na własne.
$url = 'https://demo1.voxdeveloper.com/webservice/realestatestatuslist'
. '/api_key/ab33c2fb8240c8c7ca015d924713b5d234b7778e/investment_id/15';
$xml = simplexml_load_file($url);
if ($xml === false) {
return '<p>Brak danych.</p>';
}
$output = '<table><thead><tr>'
. '<th>Lokal</th><th>Metraż</th><th>Status</th><th>Cena</th>'
. '</tr></thead><tbody>';
foreach ($xml->realestate as $r) {
$output .= sprintf(
'<tr><td>%s</td><td>%s m²</td><td>%s</td><td>%s PLN</td></tr>',
esc_html((string) $r->name),
esc_html((string) $r->area),
esc_html((string) $r->status_name),
esc_html((string) $r->price)
);
}
$output .= '</tbody></table>';
set_transient('voxcrm_realestate_table', $output, HOUR_IN_SECONDS);
}
return $output;
}
add_shortcode('voxcrm_realestate_table', 'voxcrm_realestate_table');
Powiązane materiały
- Jak pobrać dane historii cen lokalu
- Jak zarządzać prospektem informacyjnym do przekazania na dane.gov.pl oraz na stronę WWW
6. Kontakt
W razie pytań lub problemów z integracją prosimy o kontakt z działem wsparcia technicznego:
- E-mail: kontakt@voxcommerce.pl
- Telefon: 534 571 638
W sprawach związanych z kluczem API, zakresem udostępnionych inwestycji oraz widocznością pól opcjonalnych — skontaktuj się z administratorem Twojej instancji voxCRM.