Welkom bij de Wiki van de Kolibri Real Estate Connector. In deze Wiki wordt uitgelegd wat het doel is van de Connector is en hoe de Connector gebruikt moet worden. Deze Wiki is bedoeld voor de ontwikkelaars van Media Partners. Hieronder een overzicht van de veelgebruikte begrippen binnen de Connector.
Begin bij de Introductie en volg de Wiki tot aan de implementatie om een goed begrip te krijgen van de Connector.
Mocht je na het lezen van deze Wiki toch nog vragen hebben, neem dan contact op met het ontwikkelteam van Kolibri: development@kolibri.software.
Succes met het ontwikkelen!
Het ontwikkelteam van Kolibri.
De Connector heeft alleen actieve panden. We beschouwen een pand actief als deze:
Is een pand niet meer actief dan verdwijnt deze automatisch en zal deze ook niet meer gedeeld (kunnen) worden met Media Partners.
Een pand is verkocht op de datum waarop de koopakte bij de makelaar wordt getekend. Maar is er nog een voorbehoudsperiode van toepassing dan geldt dat de einddatum van deze voorbehoudsperiode als ‘datum verkocht’. Een pand zal in dit geval dus 8 dagen na de einddatum van de voorbehoudsperiode automatisch verdwijnen. Het pand wordt in dit geval dus een tijdje als ‘verkocht onder voorbehoud’ aangeleverd en vervolgens (na einddatum voorbehoud) 8 dagen als ‘verkocht’.
Een Media Partner is een afnemer van de Connector; en haalt dus gegevens op uit de Connector. Voorbeelden van Media Partners zijn portals, drukkers en nieuwsbrief applicaties.
Een Content Provider levert juist gegevens aan de Connector. Een voorbeeld van een Content Provider is Kolibri. Naast Kolibri zijn er nog andere Content Providers welke (nog) niet interessant zijn voor de Nederlandstalige Media Partners waarvoor deze Wiki is geschreven.
Samengevat leveren Content Providers dus data aan de Connector, en deelt de Connector de data met Media Partners, die de data dus op kunnen halen bij de Connector:
Op dit moment worden twee soorten content onderscheiden: panden (Real Estate Properties) en relaties (Relations). De gegevens van een pand zijn onder te verdelen in 24 categorieën, waaronder de locatie gegevens (LocationInfo), de aanbiedende makelaar, vestiging en de medewerker (Contact), informatie over de voorzieningen (Facilities), maar ook financiele informatie (Financials), kadastrale gegevens (Cadastre) en transactie gegevens (Transactions). Een Relation kent veel minder gegevens en de structuur is veel minder complex. Een Relation bestaat met name uit contact gegevens, zoals telefoonnummers, e-mail adressen en adresgegevens. Er zijn 4 typen Relations: medewerkers (Employee), een vestigingen van de makelaar (Offices), bedrijfsrelaties (Companies) en persoonsrelaties (Persons).
Als een makelaar (een gebruiker van de software van de Content Provider) een pand wilt delen met een Media Partner via de Connector zal zijn makelaarskantoor eerst een Contract moeten hebben met de betreffende Media Partner. Het verkrijgen van een Contract tussen het makelaarskantoor en een Media Partner is per Media Partner een eenmalige actie. Heeft het makelaarskantoor eenmaal een Contract met een Media Partner dan kan hij naar hartenlust panden delen. Meer informatie over het activeren van contracten vind je hier.
Heeft een makelaarskantoor eenmaal Contract met een Media Partner dan kan hij panden en relaties gaan delen (Publish) met de Media Partner.
De Connector is ontwikkeld in het Engels. De Connector wordt namelijk niet alleen door Nederlandse software leveranciers (Kolibri) gebruikt, maar ook door anderstaligen. Alle veldnamen, keuzeopties, groeperingen etc. hebben dus Engelstalige namen. Helaas is het zo dat enkele typisch Nederlandse begrippen geen goede Engelse vertaling kennen. We hebben ons best gedaan een zo goed mogelijke vertaling te geven, al levert het soms grappige woorden op. Excuus hiervoor!
In de XSD zijn wel alle Nederlandse vertalingen opgenomen. Als er geen vertaling beschikbaar is kun je er van uit gaan dat dit veld niet voor de Nederlandse markt relevant is.
Defintie: Contract Een Contract is een overeenkomst tussen een makelaarskantoor en een Media Partij waarbij het makelaarskantoor aangeeft de gegevens van alle of van geselecteerde panden te willen delen met de Media Partner. Het aanvragen van een Contract (door het makelaarskantoor) en het bevestigen van het Contract (door de Media Partner) verloopt via de Connector. En ook het verzoek om een Contract te beëindigen (door het makelaarskantoor) en de bevestiging hiervan (door de Media Partner) verloopt via de Connector.
Zodra een makelaarskantoor een Contract heeft met de Media Partner kan hij panden delen met de Media Partner. Voor het delen van panden biedt de Connector een API voor de Content Providers. De beschrijving van deze API valt buiten de scope van deze Wiki, maar het is belangrijk om te weten dat het delen dus via de software van de Content Provider gaat; dus vanuit Kolibri.
Er zijn twee manieren waarop panden gedeeld kunnen worden: handmatig of automatisch. Bij handmatige mode kiest de makelaar per pand in de software er voor dat hij deze wilt delen met de geselecteerde Media Partner. Bij automatische mode hoeft de makelaar helemaal niets te doen; alle panden worden automatisch gedeeld met de Media Partner. Maakt de makelaar dus een nieuw pand aan in het software pakket dan wordt deze direct gedeeld met de Media Partner.
Manual Publish Available
Een makelaar kiest zelf welke mode hij wilt gebruiken. De opties waar de makelaar uit kan kiezen hangt echter af van de instellingen van de Media Partner. Sommige Media Partners ondersteunen de handmatige mode niet (‘Manual Publish Available’ = nee). In dit geval kan de makelaar dus mogelijk enkel de automatische mode activeren.
Auto Publish Available
Of de makelaar kan kiezen voor de automatische mode hangt af van de instelling van de Media Partner. Wordt de automatische mode niet ondersteund (‘Auto Publish Available’ = nee) dan kan de makelaar hier ook niet voor kiezen. In dit geval is dus mogelijk alleen de handmatige mode beschikbaar. Het mag duidelijk zijn dat het delen van panden alleen mogelijk is als minstens 1 van beide modes wordt ondersteund.
In onderstaande afbeelding is te zien dat de makelaar voor de geselecteerde Media Partner kan kiezen voor automatische of handmatige mode.
Nu de makelaar panden handmatig dan wel automatisch gedeeld heeft met de Media Partner is het voor de Media Partner zaak om de panden op te halen.
Om te voorkomen dat het proces van ophalen van panden door een Media Partner onnodig lang duurt en er onnodig veel dataverkeer plaats vindt verloopt het ophalen van panden in drie stappen:
Door éérst een lijst op te halen van actieve Contracten hoeft de Media Partner zelf niet bij te houden welke Contracten er actief zijn. Houdt de Media Partner dit wel zelf bij dan kan stap 1 worden overgeslagen. Door vervolgens per Contract enkel een beperkte set van gegevens van de actieve panden op te halen kan de Media Partner op basis van de datum waarop het pand voor het laatst is gewijzigd bepalen of zijn versie van de pandgegevens overeenkomen met de meest recente pandgegevens. Heeft de Media Partner is zijn database een pand met een oude wijzigingsdatum dan is het dus zaak om de meest recente gegevens van het betreffende pand op te halen. Dit gebeurt in stap 3.
Bovenstaande 3 stappen kan de Media Partner een aantal keren (max. 2x) per dag doorlopen.
Actieve panden
De Connector heeft alleen actieve panden. We beschouwen een pand actief als deze:
Is een pand niet meer actief dan verdwijnt deze automatisch en zal deze ook niet meer gedeeld (kunnen) worden met Media Partners.
Een pand is verkocht op de datum waarop de koopakte bij de makelaar wordt getekend. Maar is er nog een voorbehoudsperiode van toepassing dan geldt dat de einddatum van deze voorbehoudsperiode als ‘datum verkocht’. Een pand zal in dit geval dus 8 dagen na de einddatum van de voorbehoudsperiode automatisch verdwijnen. Het pand wordt in dit geval dus een tijdje als ‘verkocht onder voorbehoud’ aangeleverd en vervolgens (na einddatum voorbehoud) 8 dagen als ‘verkocht’.
De gegevens van een pand zijn op te delen in 24 blokken of categorieën. Deze categorieën worden elders in deze Wiki uitvoerig beschreven. Het is echter niet zo dat iedere Media Partner altijd alle gegevens van een pand krijgt; dit hangt namelijk af van de rechten die een Media Partner heeft.
Het ophalen van relaties gaat eenvoudig: alle relaties (persoonsrelaties, bedrijfsrelaties maar ook medewerkers en eigen vestigingen) worden gedeeld met de Media Partner waarvoor de makelaar een Contract heeft geactiveerd. Wel moet de Media Partner het recht hebben om relaties van een makelaar via de Connector op te halen.
Niet alle Media Partners zullen zowel handmatige als automatische mode willen of kunnen ondersteunen. Een Media Partner die kosten doorberekend per pand, bijvoorbeeld een drukker die brochures ontwikkeld, zal kiezen voor de handmatige mode. Het is namelijk erg onwaarschijnlijk dat een makelaar automatisch altijd van al zijn aanbod een brochure wilt laten drukken.
Ook zullen niet alle Media Partners al het aanbod kunnen accepteren. Zo zijn er Portals gespecialiseerd in huuraanbod; zij willen enkel huur panden. En zo zijn er weer andere Portals die enkel bedrijfsmatig aanbod willen.
De status van een publicatie (een pand waarvan de gegevens gedeeld worden met een Media Partner) kunnen zichtbaar zijn in de software van de Content Partner. En het heeft natuurlijk alleen zin om de status te tonen bij de relevante panden. De status van de publicatie naar een Portal met enkel bedrijfsmatige panden zullen zo nooit getoond moeten worden bij een particulier pand.
Om bovenstaande netjes te kunnen faciliteren heeft de Connector een aantal instellingen welke door de beheerder van de Connector per Media Partner worden ingesteld. Het is belangrijk dat deze instellingen juist zijn ingesteld. Vraag als Media Partner daarom altijd naar de instellingen van de Connector, om er zeker van te zijn dat deze juist zijn ingesteld!
De Connector levert op dit moment Real Estate Properties (panden) en Relations (relaties).
De panden uit de Connector komen van verschillende Content Providers. Dit zijn niet alleen leveranciers van Nederlandstalige software pakketten maar ook Content Providers die software leveren aan makelaars uit Oostenrijk, Italië en Kroatië.
Om de gegevens van de verschillende leveranciers te kunnen ontvangen en zonder verlies aan Media Partners aan te kunnen leveren is de Connector meertalig opgezet en wordt de land en cultuur specifieke informatie van het makelaarskantoor van het pand meegeleverd.
Bij een pand wordt de cultuur (Culture), de geldeenheid (Currency) en de taal (Language) van het makelaarskantoor meegeleverd.
Aan de hand van de cultuur bepaalt de Media Partner hoe de gegevens geïnterpreteerd moeten worden. Geldt in een bepaalde cultuur bijvoorbeeld dat de breedte van een kamer niet de afstand tussen de muren is maar gemeten vanaf het hart van de muren dan is de opgegeven breedte van een kamer dus volgens deze standaard.
De valuta geeft aan welke valuta er gehanteerd moet worden voor de interpretatie van de prijzen. Prijzen bij een pand zijn dus altijd in één valuta. Indien er op een Portal prijzen van panden in meerdere valuta’s weergegeven moeten worden dan is de Media Partner dus zelf verantwoordelijk voor de correcte omrekening.
Tot slot bepaalt de taal de standaard taal van de makelaar. Teksten, zoals de advertentietekst, kunnen in meerdere talen aangeleverd worden. Per ‘vertaling’ wordt de taal van de betreffende vertaling weergegeven. Is er echter geen taal gespecificeerd dan is dit (volgens de makelaar) de standaard tekst, en deze tekst is dus in de standaard taal van het betreffende makelaarskantoor.
Zoals hierboven staat beschreven kunnen teksten in meerdere talen worden aangeleverd. Welke dat zijn hangt af van
Elk pand, elke relatie en elk makelaarskantoor heeft zijn eigen unieke ID. In de Connector worden hier integers voor gebruikt. Er worden nooit ID’s hergebruikt.
Bij een pand, een relatie en een makelaarskantoor kunnen “foreign ID’s” worden meegegeven. Dit zijn de ID’s waaronder het betreffende pand, relatie of makelaarskantoor bij de betreffende Content Provider. De Connector doet niets met deze “foreign ID’s”, behalve ontvangen van de Content Provider en doorsturen naar de Media Partner. De “foreign ID’s” kunnen gebruikt worden bij het debuggen; de Media Partner en de Content Partner kunnen dan onderling contact hebben over een bepaald pand, een relatie en/of een makelaarskantoor en daarbij naar hetzelfde pand, relatie of kantoor verwijzen door gebruik te maken van deze “foreign ID’s”. De ‘Origin’ geeft aan wie de Content Provider is geweest; en ‘VM’ staat hier voor Kolibri (voorheen Venum).
Bij communicatie met de Connector gebruikt de Media Partner dus nooit foreign ID’s.
Datums en tijden die door de Connector worden aangeleverd zijn altijd in UTC. Dit geldt dus ook voor datums. Een ‘einddatum voorbehoud’ is op een bepaald moment in tijd. Dit is één moment, waar je ook maar in de wereld bent. Vandaar dat bij een datum ook de tijd geleverd wordt.
De gegevens van een Real Estate Property zijn gegroepeerd in 24 verschillende blokken. Afhankelijk van de rechten van een Media Partner wordt een blok wel of niet aangeleverd, of worden enkele nodes wel of niet aangeleverd. Hieronder een schematisch overzicht van een Real Estate Property met daaronder per blok een korte toelichting.
Deze node bevat oppervlakte informatie over de verschillende delen van het object, waaronder van kelderruimte, woonkamer en opslagruimten. De ‘gebruiksoppervlakte Wonen‘ (“Wat is de bewoonbare oppervlakte achter de voordeur van de woning”) is terug te vinden onder de node RealEstateProperty/AreaTotals/EffectiveArea. De ‘woonoppervlakte’ is te vinden onder de node RealEstateProperty/AreaTotals/LivingArea.
Deze node bevat informatie over bijlagen bij een object. Hieronder vallen foto’s, video’s, kaarten en ander soortig materiaal.
Elke bijlage (Attachment) heeft twee eigenschappen, welke kunnen veranderen wanneer de bijlage wordt bijgewerkt. Indien één van beide eigenschappen veranderd zijn, dient de bijlage opnieuw opgehaald te worden:
De kadastrale gegevens worden beschreven in de node ‘Cadastre’. Deze node wordt meestal niet aangeleverd aan een Media Partner. Informatie over eigen grond erfpacht en recht van opstal is terug te vinden onder CadastrallInformations/CadastralInformation/Ownership/Type.
De node ‘Cadastre’ is mogelijk in zijn geheel niet beschikbaar.
Deze node bevat informatie over de aanwezige verwarming in het object en toegekende energielabels. Informatie over energielabels is te vinden in de nodes EnergyCertificate/HasEnergyCertificate en EnergyCertificate/EnergyClass. Of er een cv-ketel aanwezig is, is te vinden in de node Heating (HeatingAllocation is type CENTRAL). De leeftijd van de cv-ketel is te vinden in de node Heating/YearOfManufacture, het type cv-ketel in de node Heating/TypeOfBoiler. Of het elektrisch, gas of anderszins gestookte cv betreft, in terig te vinden in de node Heating/EnergySource. De eigenaar van de verwarmingsinstallatie is terug te vinden in Heating/Ownership. Of het een combiketel betreft staat in de node Heating/IsCombiBoiler. Voor meer informatie rond specifieke boilertypes controleer je het type boiler (Heating/TypeOfBoiler) en dan de gewenste eigenschap.
Deze node bevat informatie over de periode waarin het object gebouwd is. Daarnaast wordt in de node IsNewState vermeld of het de ‘nieuw’ status heeft. Of een object in aanbouw is, vind je in de node IsUnderConstruction. ConstructionYearFrom bevat het jaartal waarin met de bouw is gestart. ConstructionYearTo bevat het jaar waarin de bouw is afgerond. Deze gegevens kunnen ook ontbreken, maar dan zou de globalere ConstructionPeriod mogelijk nog ingevuld kunnen zijn. Onder de nodes Reconstruction en RenovationYear kun je respectievelijk terugvinden of er renovatie of herbouw heeft plaatsgevonden en wanneer dit is gebeurd.
Informatie over het dak kan teruggevonden worden in de node Roof. Hier is terug te vinden welk type dak het betreft, welke materialen zijn gebruikt (Roof/RoofMaterials), wat de staat van het dak is (Roof/RoofEvaluation) en eventuele opmerkingen (Roof/RoofComments). Indien er dakisolatie aanwezig is, bevat de node IsolationTypes het type ROOF. Voor dubbelglas is er een node Glazing/GlazingType van het type DOUBLE, voor gedeelde glasisolatie bevat Glazing/GlazingType type PARTLY_DOUBLE.
Indien het ecobouw betreft, bevat node IsolationTypes een type ECO_CONSTRUCTION. Hier worden ook andere isolatietypen vermeld. Opmerkingen over isolatie zijn te vinden in node IsolationComment.
Deze node bevat informatie over de makelaar die bemiddeld in de verhuur/verkoop van het object. Deze informatie bestaat uit bedrijfsinformatie, informatie over het betrokken kantoor en de verantwoordelijke contactpersoon.
Deze node bevat enkele cijfermatige feiten over het object, zoals het aantal verdiepingen, het aantal aanwezige (slaap)kamers, garages en tuinen. Aantal kamers vind je terug onder de node CountOfRooms, aantal slaapkamers onder de node CountOfBedrooms, aantal badkamers onder de node CountOfBathrooms en het aantal toiletten onder de node CountOfToilettes.
Deze node bevat informatie over de actuele (verhuur) status, verwachte huuropbrengst en de huidige bestemming. Of een object gedeeltelijk is verhuurd, is terug te vinden in de node IsPartiallyRented.
Deze node bevat de advertentietekst en omschrijvingen van de aanwezige verdiepingen. Een omschrijving kan in meerdere talen voorkomen. Daarnaast wordt in de node MultilanguageStringType/Encoding vermeld, wat de encoding van de tekst is (PLAINTEXT of HTML).
Elke omschrijving (Description) is mogelijk beschikbaar in één of meerdere talen. Indien bij een omschrijving geen specifieke taal vermeld is, dan betreft het een omschrijving in de standaard taal. De standaard taal van een pand kan worden opgezocht in de node LocalizationInfo/Language.
Deze node bevat informatie over de afmetingen van het object, zoals de inhoud (RealEstateProperty/Dimensions/Content) en de perceeloppervlakte (RealEstateProperty/Dimensions/Land/Area).
Deze node bevat informatie over beoordelingen van het object, waaronder wat de algemene status van het object is, of het object kindvriendelijk is en of het houden van huisdieren is toegestaan. Of het object beschermd is, vind je in de node IsProtected, of het een monument betreft in HasMonumentalProtection. De kwaliteit van de woning kun je terugvinden in de node ComfortQuality (LUXURY, NORMAL, SIMPLE). Daarnaast is er nog de algemene conditie van de woning in node BuildingCondition.
Of een object geschikt is voor gehandicapten en/of ouderen, is respectievelijk terug te vinden in de nodes ForSpecialTargetAudience en IsQualifiedForSeniors.
Zaken GIW certificaten, certificaat aangepaste woning, bouwkundige keuring, brandveiligheidscertificaat, huisgarantie en politiekeurmerk zijn terug te vinden onder de node Certifications.
Deze node bevat informatie over de aanwezige faciliteiten in het object. Er wordt een zeer uitgebreide lijst van mogelijke faciliteiten ondersteund, waaronder:
Airco, Alarm, Attick, BackYard, Balcony, Bathroom, Bedroom, BuildingHasElevator, BuiltInLight, Cable_TV, etc.
Of er een garage aanwezig is, vind je bijvoorbeeld door te controleren op een node Garage. De subnode Garage/Available geeft vervolgens aan of een garage wel of niet beschikbaar is.
Over de keuken kun je informatie vinden onder de nodes Kitchen en KitchenType.
Of er een tuin aanwezig is vind je in de node Garden. Of er een balkon aanwezig is, vind je in de node Balcony. Opmerkingen over een aanwezig balkon zijn te vinden in de subnode Balcony/Comments. Indien schuur aanwezig, dan is er een node StorageRoom aanwezig. Voor opmerkingen over bijgebouwen kijk je naar StorageRoom/Comments.
Zo is er ook informatie te vinden over buitenzonwering (OutdoorAwnings), Fransbalkon (FrenchBalcony), rolluiken (RollerBlinds), zwembad (SwimmingPool) en buitenkraan (WaterConnection).
Deze node bevat informatie over de prijscondities die gelden voor het object, zowel voor huur als koopobjecten.
Voor koopobjecten geldt, dat de verkoopprijs vermeldt wordt in de node PurchasePrice en de verkoopcondities (kosten koper, vrij op naam, etc.) in de node PurchaseCondition. In de node PriceCode vind je het onderscheid tussen ASKING_PRICE (vraagprijs) en FIXED_PRICE (vaste prijs).
Voor huurobjecten geldt, dat de huurprijs vermeldt wordt in de node RentPrice, waarbij uit de node RentPriceType kan worden afgeleid voor welke periode (maand, jaar, etc.) deze van toepassing is.
Of een woning (deels) gestoffeerd is, is terug te vinden in de node FurnitureType.
Deze node bevat gedetailleerde informatie over de inrichting van het pand over de verschillende verdiepingen. Per verdieping worden de verschillende ruimtes gespecificeerd en per ruimte de verschillende voorzieningen. Deze uiterst gedetailleerde informatie wordt lang niet door alle makelaars ingevoerd en is voor de meeste Media Partners te gedetailleerd en dus overbodig.
Een zolder is ook een verdieping. In de subnode Floor/AtticFixStair wordt gespecificeerd of er een vaste trap is en hoeveel kamers er zijn. Informatie over aanwezige keukens zijn te vinden onder de subnode Floor/Rooms/Room/KitchenTypes.
Of in de badkamer een toilet aanwezig is, kan afgeleid worden uit Floor/Rooms/Room/BathroomFacilities, indien de verdiepingsinformatie beschikbaar is.
Dakterras is een type kamer. Deze kan worden teruggevonden in Floor/Rooms/Room/Type met de waarde ROOF_TERRACE. Afmetingen worden aangegeven in Floor/Rooms/Room/Dimensions.
Balkon is een type kamer. Deze kan worden teruggevonden in Floor/Rooms/Room/Type met de waarde BALCONY. Oriëntatie wordt aangegeven in Floor/Rooms/Room/Orientation.
De node ‘Floors’ is mogelijk in zijn geheel niet beschikbaar.
Deze node bevat informatie over de garages die bij het object horen. Details over de aanwezige parkeerplaats(en), waaronder de afmetingen, de parkeercapaciteit en het type (GARAGEBOX, CARPORT, PARKING_PLACE), zijn te vinden onder de subnodes van deze node.
Deze node bevat informatie over de aanwezige tuin(en) bij het object, waaronder afmetingen, oriëntatie en of er een aparte ingang is.
Deze node bevat locatie gebaseerde informatie over het object, zoals de basistaal (Language) en munteenheid (Currency) waarin prijzen zijn vermeld. Verder bevat LocalizationInfo informatie over de cultuur van de makelaar in de node Culture. Deze node bevat een culture in het formaat ‘xx-YY’, welke aangeeft hoe waardes in deze Xml geïnterpreteerd dienen te worden.
Deze node bevat informatie over de locatie van het object, waaronder het adres.
Deze node bevat informatie over de acceptatievoorwaarden van het object, waaronder of het te koop is (IsForSale), te huur (IsForRent) of te pacht (IsForPacht). Verder is in deze node vermeld, hoe de acceptatie (Acceptance, AcceptanceDate, AcceptanceDescription) voor het object geregeld is. Informatie over de aanvaarding kun je terugvinden in de nodes Acceptance, AcceptanceDate en AcceptanceDescription. Openhuis is terug te vinden in de node OpenHouse. In de subnode(s) OpenHouse/OpenHouseEvent vind je de datum (Date) en een titel (Title) met eventuele vertalingen.
Deze node bevat informatie over de objectinformatie zelf en hoe deze te behandelen. Zo kan worden aangegeven dat het object vertrouwelijk is en dus niet op een publieke portal getoond mag worden (Confidential), wanneer de informatie voor het laatst is bewerkt (ModificationDate) en wat de huidige status is (Status). Indien de node Ignore de waarde ‘True’ heeft, moet dit object volledig genegeerd worden. Het is de bedoeling dit object niet in uw systeem op te nemen. Indien de node TemporaryHideProperty de waarde ‘True’ heeft, kunt u het object normaal verwerken. Het is echter de bedoeling, dat u dit object tijdelijk niet op een publieke portal vermeldt.
Indien de node HideAddress de waarde ‘True’ heeft, mag het adres van het pand niet getoond worden op een publieke portal.
Indien de node HideHouseNumber de waarde ‘True’ heeft, mag het huisnummer van het pand niet getoond worden op een publieke portal.
Indien de node HidePrice de waarde ‘True’ heeft, mag de verkoopprijs van het pand niet getoond worden op een publieke portal.
De node MandateDate geeft de (UTC) datum waarop het pand in opdracht is gekomen.
Deze node bevat informatie over de omgeving van het pand, waaronder nabijgelegen snelwegen, scholen en andere publieke voorzieningen.
Deze node bevat informatie over externe bijlagen bij het pand, waaronder bijvoorbeeld video’s gehost op YouTube.
De node ‘Transaction’ bevat gegevens over de verkoop of verhuur van het pand. Wanneer is het pand verkocht/verhuurd (Date), wat is de transport datum (ContractDate) en wat is de einddatum van een eventueel voorbehoud (WaivingOfTerminationTo). De eventueel gerealiseerde verkoopprijs kun je terugvinden in de node RealisedPrice.
De node ‘Transaction’ is mogelijk in zijn geheel niet beschikbaar.
Deze node bevat informatie over het type pand, waaronder welke type pand het betreft en of het permanent bewoonbaar is.
In Nederland / Kolibri kennen we hoofd- en subtypes, soorten en kenmerken om nog beter te specificeren wat er nu precies aangeboden wordt. Deze onderverdeling is land/cultuur/branche organisatie afhankelijk. De Connector verwerkt aanbod voor verschillende software leveranciers met klanten uit verschillende landen en verschillende culturen. Het vastleggen/bepalen van de hiërarchie/onderverdeling van types, soorten, etc. is niet aan de Connector. Om geen enkel detail verloren te laten gaan verwerkt de Connector de pandtypes ‘platgeslagen’, dus zonder hiërarchie. De node ‘RealEstateProperty/Type/PropertyTypes’ kan dus meerdere types bevatten.
Een woonhuis van het soort villa, type vrijstaand en kenmerk semi bungalow zal dus de typen ‘HOUSE’, ‘VILLA’ en ‘DETACHED_HOUSE’ en ‘SEMI_BUNGALOW’.
Is er niets meer bekend dan dat de woning enkel een woonhuis is, dan is ‘HOUSE’ het enige type wat aangeleverd zal worden. De Connector kan geen garanties geven over de aanwezigheid van de verschillende types; die verantwoordelijkheid ligt bij de software leverancier.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.
Hieronder een overzicht van de objecttypen zoals gebruikt in Venum (in het groen) met daarbij de Engels vertaalde Real Estate Property types (in het rood). De onderverdeling zoals weergegeven in onderstaande tabel is dus NIET terug te vinden in het datamodel, maar dient puur ter verduidelijking voor ‘Nederlands’ georienteerde ontwikkelaars.
Particulier aanbod – hoofdgroep | |||
---|---|---|---|
WOONHUIS | HOUSE | Soort woonhuis | |
EENGEZINSWONING | SINGLE-FAMILY_HOUSE | ||
HERENHUIS | MANSION | ||
VILLA | VILLA | ||
LANDHUIS | COUNTRY_HOUSE | ||
BUNGALOW | BUNGALOW | ||
WOONBOERDERIJ | RESIDENTIAL_FARM | ||
GRACHTENPAND | CANAL_HOUSE | ||
WOONBOOT | HOUSEBOAT | ||
STACARAVAN | MOBILE_HOME | ||
Type woonhuis | |||
VRIJSTAANDE Woning | DETACHED_HOUSE | ||
GESCHAKELDE Woning | LINKED_HOUSE | ||
TWEE ONDER EEN KAP Woning | SEMI_DETACHED_HOUSE_ONE_ROOF | ||
TUSSEN Woning | ROW_HOUSE_MIDDLE | ||
HOEK Woning | ROW_HOUSE_CORNER | ||
EIND Woning | ROW_HOUSE_END | ||
HALF VRIJSTAANDE Woning | SEMI_DETACHED_HOUSE | ||
GESCHAKELDE TWEE ONDER EEN KAP Woning | SEMI_DETACHED_LINKED_HOUSE_ONE_ROOF | ||
Kenmerk woning | |||
DIJKWONING | DIKE_HOUSE | ||
SPLITLEVELWONING | SPLIT_LEVEL_HOUSE | ||
DRIVEINWONING | DRIVE_IN_HOUSE | ||
SEMIBUNGALOW | SEMI_BUNGALOW | ||
PATIOWONING | PATIO_HOUSE | ||
PAALWONING | PILE_HOUSE | ||
HOFJESWONING | COURTYARD_HOUSE | ||
BEDRIJFSDIENSTWONING | BUSINESS_SERVICE_HOUSE | ||
WATERWONING | WATER_HOUSE | ||
WINDWATERMOLEN | WIND_WATER_MILL | ||
KWADRANTWONING | QUADRANT_HOUSE | ||
APPARTEMENT | APARTMENT | Soort appartement | |
BOVENWONING | UPSTAIRS_APARTMENT | ||
BENEDENWONING | GROUND_FLOOR_APARTMENT | ||
MAISONETTE | MAISONETTE | ||
GALERIJFLAT | GALLERY_FLAT | ||
PORTIEKFLAT | PORTICO_FLAT | ||
BENEDEN BOVEN WONING | UPSTAIRS_GROUND_FLOOR_APARTMENT | ||
PENTHOUSE | PENTHOUSE | ||
PORTIEKWONING | PORCH_APARTMENT | ||
Kenmerk appartement | |||
SERVICEFLAT | SERVICEFLAT | ||
APPARTEMENT | COMMON_APARTMENT | ||
CORRIDORFLAT | CORRIDOR_FLAT | ||
BELETAGE | BELETAGE | ||
SOUTERRAIN | BASEMENT | ||
DUBBELBOVENHUIS | DOUBLE_UPPER_HOUSE | ||
VERZORGINGSFLAT | NURSERY_FLAT | ||
PARKEERGELEGENHEID | PARKING | Soort parkeergelegenheid | |
GARAGEBOX | GARAGE | ||
INPANDIGE GARAGE | INDOOR_GARAGE | ||
PARKEERKELDER | PARKING_CELLAR | ||
PARKEERPLAATS | PARKING_PLACE | ||
BOUWGROND | PLOT | ||
Particulier OVERIG | RESIDENTIAL_OTHERS | Soort overig | |
BERGING | STOREROOM | ||
LIGPLAATS | BERTH | ||
STACARAVAN STANDPLAATS | MOBILE_HOME_PITCH | ||
WOONWAGEN STANDPLAATS | GIPSY_CART_PITCH | ||
WOON WINKELPAND | RESIDENTIAL_SHOP_PREMISES | ||
Bedrijfsmatig aanbod – hoofdgroep | |||
BOG OVERIG | COMMERCIAL_OTHERS | ||
BEDRIJFSHAL | PRODUCTION_HALL | ||
BUITENTERREIN | OUTDOOR_AREA | ||
HORECAPAND | HOTEL_RESTAURANT_CAFE | ||
KANTOOR | OFFICE | ||
KAVEL | LOT | ||
PRAKTIJKRUIMTE | PRACTICE_SPACE | ||
SHOWROOM | SHOWROOM | ||
WINKELRUIMTE | RETAIL_SPACE | ||
Agrarisch aanbod – hoofdgroep | |||
AKKERBOUWBEDRIJF | ARABLE_COMPANY | ||
LOSSEGROND | LOOSE_SOIL | Soort grond | |
KLEI | CLAY | ||
LEEM | LEEM | ||
VEEN | PEAT | ||
ZAND | SAND | ||
ZAVEL | SABLON | ||
ZEEKLEI | SEE_CLAY | ||
RIVIERKLEI | FLUVIAL | ||
LOSS | LOSS | ||
MELKVEEHOUDERIJBEDRIJF | DAIRY_FARMING_COMPANY | ||
PLUIMVEEBEDRIJF | POULTRY_COMPANY | Soort pluimveebedrijf | |
LEGHENNEN | HENS | ||
SLACHTKUIKENS | BROILERS | ||
OPFOK_LEGHENNEN | BREEDING_HENS | ||
OPFOK_SLACHTKUIKENOUDERDIER | BREEDING_BROILER | ||
KALKOENEN_GANZEN_EENDEN_STRUISVOGELS | TURKEYS_GEESE_DUCKS_OSTRICHES | ||
PAARDENBEDRIJF | HORSES_COMPANY | Soort paardenbedrijf | |
MANAGE | HORSE_RIDING_SCHOOL | ||
PENSION | HORSE_PENSION | ||
AFRICHT | HORSE_TRAINING_FARM | ||
PaardenBedrijf OVERIG | HORSE_FARM_OTHERS | ||
TUINBOUWBEDRIJF | HORTICULTURAL_COMPANY | Soort tuinbouwbedrijf | |
GLASTUINBOUW | GREENHOUSE_HORTICULTURE_COMPANY | ||
VOLLEGRONDSTUINBOUWBEDRIJF | GROUND_HORTICULTURE_COMPANY | ||
FRUITTEELTBEDRIJF | FRUIT_GROWING_COMPANY | ||
CHAMPIGNONTEELTBEDRIJF | MUSHROOM_CULTIVATION_COMPANY | ||
BOOMKWEKERIJBEDRIJF | TREE_NURSERY_COMPANY | ||
VARKENSBEDRIJF | PIG_HOLDING | Soort varkensbedrijf | |
ZEUGEN | SOWS | ||
VLEESVARKENS | FATTENING_PIGS | ||
ZEUGEN_EN_VLEESVARKENS | SOWS_AND_FATTENING_PIGS | ||
VLEESKALVEREN | VEAL_CALVES | ||
ALV WONING | AGRICULTURAL_HOUSE | ||
ALV OVERIG | AGRICULTURAL_OTHERS | Soort overig | |
SCHAPEN | SHEEP | ||
GEITEN | GOAT | ||
ZOOGKOEIEN | SUCKLER_COW | ||
VLEESSTIEREN | MEAT_BULLS | ||
JONGVEE_OPFOK | BREEDING_YOUNG_CATTLE | ||
WORMEN | WORMS | ||
PALING | EEL | ||
Alv Overig OVERIG | AGRICULTURAL_OTHER_OTHER |
Hieronder vindt u een lijst van objecteigenschappen zoals we die in het Nederlands kennen, met daarbij de verwijziging naar de output XML van de Kolibri Real Estate Connector.
Eigenschap | Sub-eigenschap | Locatie |
---|---|---|
Cultuur | RealEstateProperty/LocalizationInfo/Culture | |
Taal | RealEstateProperty/LocalizationInfo/Language | |
Aanvaarding | ||
Soort aanvaarding | RealEstateProperty/Offer/Acceptance | |
Toelichting | RealEstateProperty/Offer/AcceptanceDescription | |
Datum | RealEstateProperty/Offer/AcceptanceDate | |
Perceeloppervlakte | ||
Breedte | RealEstateProperty/Dimensions/Land/Width | |
Lengte | RealEstateProperty/Dimensions/Land/Length | |
Oppervlakte | RealEstateProperty/Dimensions/Land/Area | |
Bruto vloeroppervlakte | RealEstateProperty/AreaTotals/FloorAreaGross | |
Oppervlakte externe bergruimte | RealEstateProperty/AreaTotals/StorageAreaExternal | |
Oppervlakte gebouwgebonden buitenruimten | RealEstateProperty/AreaTotals/BuildingRelatedOutdoorSpaceArea | |
Gebruiksoppervlakte | RealEstateProperty/AreaTotals/EffectiveArea | |
Inhoud | RealEstateProperty/Dimensions/Lot/Content | |
Oppervlakte glasopstand | RealEstateProperty/AreaTotals/GlassCoverings | |
Oppervlakte overige inpandige ruimten | RealEstateProperty/AreaTotals/OtherIndoorSpaceArea | |
Verhuurbare vloeroppervlakte | RealEstateProperty/AreaTotals/FloorArea | |
Beschikbaarheidsstatus | RealEstateProperty/PropertyInfo/Status | |
Drainering aanwezig | RealEstateProperty/Facilities/Drainage/Available | |
Hygiënesluis aanwezig | RealEstateProperty/Facilities/SanitationLock/Available | |
Open portiek aanwezig | RealEstateProperty/Facilities/OpenPorch/Available | |
Tank aanwezig | RealEstateProperty/Facilities/Tank/Available | |
Woning aanwezig | RealEstateProperty/Facilities/House/Available | |
Adres verbergen | RealEstateProperty/PropertyInfo/HideAddress | |
Huisnummer verbergen | RealEstateProperty/PropertyInfo/HideHousenumber | |
Prijs verbergen | RealEstateProperty/PropertyInfo/HidePrice | |
Is bouwrijp | RealEstateProperty/Construction/IsReadyForConstruction | |
Heeft combiketel | RealEstateProperty/ClimatControl/Heating/IsCombiBoiler | |
Is voor speciale doelgroep | RealEstateProperty/Evaluations/ForSpecialTargetAudience | |
Is eigen belang | RealEstateProperty/Offer/SelfIntrest | |
Is huiskavel | RealEstateProperty/Type/IsResidentialLot | |
Is ontruimd | RealEstateProperty/Current/IsVacated | |
Is permanent bewoonbaar | RealEstateProperty/Type/ForPermanentResidence | |
Is recreatief | RealEstateProperty/Type/ForRecreation | |
Schuur/berging aanwezig | RealEstateProperty/Facilities/StorageRoom/Available | |
Is verhuur | RealEstateProperty/Offer/IsForRent | |
Is verkoop | RealEstateProperty/Offer/IsForSale | |
Is vertrouwelijk | RealEstateProperty/PropertyInfo/Confidential | |
VVE checklist aanwezig | RealEstateProperty/Current/CheckListAssociationOfOwnersAvailable | |
Bouwjaar | ||
Periode | RealEstateProperty/Construction/ConstructionPeriod | |
Jaar | RealEstateProperty/Construction/ConstructionYearFrom | |
Is in aanbouw | RealEstateProperty/Construction/IsUnderConstruction | |
Omschrijving | RealEstateProperty/Construction/ConstructionComment | |
Comfort kwaliteit | RealEstateProperty/Evaluations/ComfortQuality | |
Makelaar | ||
ID | RealEstateProperty/Contact/Agency/ForeignID | |
Naam | RealEstateProperty/Contact/Agency/Name | |
Belastingnummer | RealEstateProperty/Contact/Agency/VATNumber | |
Url logo | RealEstateProperty/Contact/Agency/LogoURL | |
Tenaamstelling bankrekening | RealEstateProperty/Contact/Agency/BankAccountAppellation | |
Bankrekeningnummer | RealEstateProperty/Contact/Agency/BankAccountNumber | |
Gevestigde naam | RealEstateProperty/Contact/Agency/LegalName | |
Registratienummer | RealEstateProperty/Contact/Agency/COCNumber | |
Makelaarsvereniging | RealEstateProperty/Contact/Agency/RealEstateAssociation | |
Lidmaatschapsnummer | RealEstateProperty/Contact/Agency/RealEstateAssociationNumber | |
Bezoekadres | RealEstateProperty/Contact/Agency/VisitAddress | |
Postadres | RealEstateProperty/Contact/Agency/PostalAddress | |
Telefoonnummer | RealEstateProperty/Contact/Agency/Phone | |
Faxnummer | RealEstateProperty/Contact/Agency/Fax | |
E-mailadres | RealEstateProperty/Contact/Agency/Email | |
Url website | RealEstateProperty/Contact/Agency/WebsiteURL | |
Kantoor | ||
ID | RealEstateProperty/Contact/Department/ForeignID | |
Naam | RealEstateProperty/Contact/Department/Name | |
Omschrijving | RealEstateProperty/Contact/Department/Description | |
Url logo | RealEstateProperty/Contact/Department/LogoURL | |
Bezoekadres | RealEstateProperty/Contact/Department/VisitAddress | |
Postadres | RealEstateProperty/Contact/Department/PostalAddress | |
Telefoonnummer | RealEstateProperty/Contact/Department/Phone | |
Faxnummer | RealEstateProperty/Contact/Department/Fax | |
E-mailadres | RealEstateProperty/Contact/Department/Email | |
Url website | RealEstateProperty/Contact/Department/WebsiteURL | |
Medewerker (contactpersoon) | ||
ID | RealEstateProperty/Contact/Person/ForeignID | |
Titel | RealEstateProperty/Contact/Person/Title | |
Voornaam | RealEstateProperty/Contact/Person/FirstName | |
Tussenvoegsels | RealEstateProperty/Contact/Person/MiddleName | |
Achternaam | RealEstateProperty/Contact/Person/LastName | |
Weergavenaam | RealEstateProperty/Contact/Person/DisplayName | |
Geslacht | RealEstateProperty/Contact/Person/Gender | |
Geboortedatum | RealEstateProperty/Contact/Person/DateOfBirth | |
E-mailadres | RealEstateProperty/Contact/Person/Email | |
Telefoonnummer (werk) | RealEstateProperty/Contact/Person/Phone | |
Telefoonnummer (mobiel) | RealEstateProperty/Contact/Person/Mobile | |
Faxnummer | RealEstateProperty/Contact/Person/Fax | |
Huidige bestemming | RealEstateProperty/Current/CurrentDestinationDescription | |
Huidig gebruik | RealEstateProperty/Current/CurrentUsageDescription | |
Advertentietekst | RealEstateProperty/Descriptions/AdText | |
Omschrijving balkon | RealEstateProperty/Descriptions/BalconyDescription | |
Omschrijving beganegrond | RealEstateProperty/Descriptions/GroundFloorDescription | |
Omschrijving eerste verdieping | RealEstateProperty/Descriptions/FirstFloorDescription | |
Omschrijving tweede verdieping | RealEstateProperty/Descriptions/SecondFloorDescription | |
Omschrijving overige verdiepingen | RealEstateProperty/Descriptions/OtherFloorDescription | |
Omschrijving bijzonderheden | RealEstateProperty/Descriptions/DetailsDescription | |
Omschrijving tuinen | RealEstateProperty/Descriptions/GardenDescription | |
Dak | RealEstateProperty/Construction/Roof | |
Type dak | RealEstateProperty/Construction/Roof/RoofType | |
Dakmaterialen | RealEstateProperty/Construction/Roof/RoofMaterials | |
Toelichting | RealEstateProperty/Construction/Roof/RoofComments | |
Datum opdracht | RealEstateProperty/PropertyInfo/MandateDate | |
Datum aangemaakt | RealEstateProperty/PropertyInfo/CreationDateTime | |
Datum laatst bewerkt | RealEstateProperty/PropertyInfo/ModificationDateTime | |
Datum ingetrokken | RealEstateProperty/Transaction/Date | |
Datum open huis | RealEstateProperty/Offer/OpenHouse/OpenHouseEvent | |
Energielabel | RealEstateProperty/ClimatControl/EnergyCertificate | |
Energieklasse | RealEstateProperty/ClimatControl/EnergyCertificate/EnergyClass | |
Energieindex | RealEstateProperty/ClimatControl/EnergyCertificate/EnergyIndex | |
Einddatum | RealEstateProperty/ClimatControl/EnergyCertificate/DueDate | |
Certificaat aanwezig | RealEstateProperty/ClimatControl/EnergyCertificate/HasEnergyCertificate | |
Certificaatnummer | RealEstateProperty/ClimatControl/EnergyCertificate/Number | |
Grondeigendom | RealEstateProperty/Cadastre/CadastrallInformations/CadastralInformation | |
Type eigendom | RealEstateProperty/Cadastre/CadastrallInformations/CadastralInformation/Ownership/Type | |
Bedrag per jaar | RealEstateProperty/Cadastre/CadastrallInformations/CadastralInformation/Ownership/GroundLeaseAmountPerYear | |
Datum tot | RealEstateProperty/Cadastre/CadastrallInformations/CadastralInformation/Ownership/EndDate | |
Grondsoort | RealEstateProperty/Type/PropertyTypes/PropertyType (CLAY,LEEM,PEAT,SAND,SABLON,SEE_CLAY,FLUVIAL,LOSS) | |
Adres | RealEstateProperty/Location/Address | |
Makelaar ID | RealEstateProperty/PropertyInfo/ForeignAgencyID | |
Opdracht ID | RealEstateProperty/PropertyInfo/ForeignID | |
Huuraanbieding | ||
Inrichting | RealEstateProperty/Facilities/UpholsteredType | |
Servicekosten | RealEstateProperty/Financials/ServiceCosts | |
Kostenindicatie gas | RealEstateProperty/Financials/Indications/GasCosts | |
Kostenindicatie water | RealEstateProperty/Financials/Indications/WaterCosts | |
Kostenindicatie elektra | RealEstateProperty/Financials/Indications/ElectricityCosts | |
Kostenindicatie stookkosten | RealEstateProperty/Financials/Indications/HeatingCosts | |
Prijshistorie | RealEstateProperty/Financials/PriceHistory | |
Huurprijs | RealEstateProperty/Financials/RentPrice | |
Huurspecificatie | RealEstateProperty/Financials/RentSpecification | |
Huurconditie | RealEstateProperty/Financials/RentPriceType | |
Meubilering | RealEstateProperty/Financials/FurnitureCosts | |
Voorschot | RealEstateProperty/Financials/AdvancedPaymentAmount | |
Beschikbaar vanaf | RealEstateProperty/Offer/AvailableFromDate | |
Beschikbaar tot | RealEstateProperty/Offer/AvailableUntilDate | |
Verhuurd vanaf | RealEstateProperty/Transaction/Date | |
Borg | RealEstateProperty/Financials/Deposit | |
Aantal bouwlagen | RealEstateProperty/Counts/CountOfFloors | |
Aantal garages | RealEstateProperty/Counts/CountOfGarages | |
Aantal kamers | RealEstateProperty/Counts/CountOfRooms | |
Aantal slaapkamers | RealEstateProperty/Counts/CountOfBedrooms | |
Aantal tuinen | RealEstateProperty/Counts/CountOfGardens | |
Aantal ligplaatsen jong vee | RealEstateProperty/Counts/CountOfMooringsCattles | |
Aantal ligplaatsen melkvee | RealEstateProperty/Counts/CountOfMooringsDairyCattles | |
Garagecapaciteit | RealEstateProperty/Counts/CountOfGaragePlaces | |
Bouwjaar CV-ketel | RealEstateProperty/ClimatControl/Heating/YearOfManufacture | |
Woonlaag | RealEstateProperty/Location/FloorNumber | |
Kenmerk appartement | RealEstateProperty/Type/PropertyTypes | |
Kenmerk woning | RealEstateProperty/Type/PropertyTypes | |
Ketelbrandstof | RealEstateProperty/ClimatControl/Heating/EnergySource | |
Keteleigendom | RealEstateProperty/ClimatControl/Heating/Ownership | |
Koopaanbieding | ||
Servicekosten | RealEstateProperty/Financials/ServiceCosts | |
Kostenindicatie gas | RealEstateProperty/Financials/Indications/GasCosts | |
Kostenindicatie water | RealEstateProperty/Financials/Indications/WaterCosts | |
Kostenindicatie elektra | RealEstateProperty/Financials/Indications/ElectricityCosts | |
Kostenindicatie stookkosten | RealEstateProperty/Financials/Indications/HeatingCosts | |
Prijshistorie | RealEstateProperty/Financials/PriceHistory | |
Vraagprijs | RealEstateProperty/Financials/PurchasePrice | |
Verkoopprijs | RealEstateProperty/Transaction/RealisedPrice | |
Prijscode | RealEstateProperty/Financials/PriceCode | |
Koopconditie | RealEstateProperty/Financials/PurchaseCondition | |
Koopspecificatie | RealEstateProperty/Financials/PurchaseSpecification | |
Datum veiling | RealEstateProperty/Offer/AuctionDate | |
Garages | RealEstateProperty/Garages | |
Naam | RealEstateProperty/Garages/Garage/Name | |
Beschrijving | RealEstateProperty/Garages/Garage/Comments | |
Isolatievormen | RealEstateProperty/Garages/Garage/IsolationTypes | |
Capaciteit | RealEstateProperty/Garages/Garage/CarCapacity | |
Voorzieningen | RealEstateProperty/Garages/Garage/Facilities | |
Type | RealEstateProperty/Garages/Garage/Type | |
Hoogte | RealEstateProperty/Garages/Garage/Dimensions/Height | |
Breedte | RealEstateProperty/Garages/Garage/Dimensions/Width | |
Lengte | RealEstateProperty/Garages/Garage/Dimensions/Length | |
Oppervlakte | RealEstateProperty/Garages/Garage/Dimensions/Area | |
Volume | RealEstateProperty/Garages/Garage/Dimensions/Content | |
Maps | RealEstateProperty/Attachments | |
Naam | RealEstateProperty/Attachments/Attachment/Title | |
Omschrijving | RealEstateProperty/Attachments/Attachment/Description | |
Datum aangemaakt | RealEstateProperty/Attachments/Attachment/CreationDateTime | |
Datum laatst gewijzigd | RealEstateProperty/Attachments/Attachment/ModificationDateTime | |
Md5Hash | RealEstateProperty/Attachments/Attachment/Hash | |
Url genormaliseerd | RealEstateProperty/Attachments/Attachment/URLNormalizedFile | |
Index | RealEstateProperty/Attachments/Attachment/Index | |
Foto’s | RealEstateProperty/Attachments | |
Naam | RealEstateProperty/Attachments/Attachment/Title | |
Omschrijving | RealEstateProperty/Attachments/Attachment/Description | |
Datum aangemaakt | RealEstateProperty/Attachments/Attachment/CreationDateTime | |
Datum laatst gewijzigd | RealEstateProperty/Attachments/Attachment/ModificationDateTime | |
Md5Hash | RealEstateProperty/Attachments/Attachment/Hash | |
Url genormaliseerd | RealEstateProperty/Attachments/Attachment/URLNormalizedFile | |
Index | RealEstateProperty/Attachments/Attachment/Index | |
Video’s | RealEstateProperty/Attachments | |
Naam | RealEstateProperty/Attachments/Attachment/Title | |
Omschrijving | RealEstateProperty/Attachments/Attachment/Description | |
Datum aangemaakt | RealEstateProperty/Attachments/Attachment/CreationDateTime | |
Datum laatst gewijzigd | RealEstateProperty/Attachments/Attachment/ModificationDateTime | |
Md5Hash | RealEstateProperty/Attachments/Attachment/Hash | |
Url genormaliseerd | RealEstateProperty/Attachments/Attachment/URLNormalizedFile | |
Index | RealEstateProperty/Attachments/Attachment/Index | |
Isolatievormen | RealEstateProperty/Construction/IsolationTypes | |
Keurmerken | RealEstateProperty/Evaluations/Certifications | |
Soorten warm water | RealEstateProperty/ClimatControl/Heating/HeatingMethodsWater | |
Externe media | RealEstateProperty/ThirdPartyMedias | |
Naam | RealEstateProperty/ThirdPartyMedias/ThirdPartyMedia/Title | |
Omschrijving | RealEstateProperty/ThirdPartyMedias/ThirdPartyMedia/Description | |
Datum aangemaakt | RealEstateProperty/ThirdPartyMedias/ThirdPartyMedia/CreationDateTime | |
Datum laatst gewijzigd | RealEstateProperty/ThirdPartyMedias/ThirdPartyMedia/ModificationDateTime | |
Md5Hash | RealEstateProperty/ThirdPartyMedias/ThirdPartyMedia/Hash | |
Externe ID | RealEstateProperty/ThirdPartyMedias/ThirdPartyMedia/ThirdPartyIDCode | |
Embed-code | RealEstateProperty/ThirdPartyMedias/ThirdPartyMedia/EmbedCode | |
Tuinen | RealEstateProperty/Gardens | |
Naam | RealEstateProperty/Gardens/Garden/Name | |
Omschrijving | RealEstateProperty/Gardens/Garden/Description | |
Kwaliteit | RealEstateProperty/Gardens/Garden/Quality | |
Type | RealEstateProperty/Gardens/Garden/Type | |
Breedte | RealEstateProperty/Gardens/Garden/Dimensions/Width | |
Lengte | RealEstateProperty/Gardens/Garden/Dimensions/Length | |
Oppervlakte | RealEstateProperty/Gardens/Garden/Dimensions/Area | |
Is hoofdtuin | RealEstateProperty/Gardens/Garden/IsMainGarden | |
Oriëntatie | RealEstateProperty/Gardens/Garden/Orientation | |
Heeft achterom | RealEstateProperty/Gardens/Garden/HasBackyardEntrance | |
Verontreinigingen | RealEstateProperty/Evaluations/PolutionTypes | |
Verwarmingen | RealEstateProperty/ClimatControl/Heating/HeatingMethods | |
Heeft mechanische ventilatie | RealEstateProperty/Facilities/Ventilation/Available | |
Heeft alarminstallatie | RealEstateProperty/Facilities/Alarm/Available | |
Heeft rolluiken | RealEstateProperty/Facilities/RollerBlinds/Available | |
Heeft kabel-TV | RealEstateProperty/Facilities/Cable_TV/Available | |
Heeft buitenzonwering | RealEstateProperty/Facilities/OutdoorAwnings/Available | |
Heeft zwembad | RealEstateProperty/Facilities/SwimmingPool/Available | |
Heeft lift | RealEstateProperty/Facilities/Elevator/Available | |
Heeft airconditioning | RealEstateProperty/Facilities/Airco/Available | |
Heeft windmolen | RealEstateProperty/Facilities/Windmill/Available | |
Heeft zonnecollectoren | RealEstateProperty/Facilities/SunCollectors/Available | |
Heeft satelietschotel | RealEstateProperty/Facilities/SatelliteDish/Available | |
Heeft jacuzzi | RealEstateProperty/Facilities/Jacuzzi/Available | |
Heeft stoomcabine | RealEstateProperty/Facilities/SteamCabin/Available | |
Heeft rookkanaal | RealEstateProperty/Facilities/FlueTube/Available | |
Heeft schuifpui | RealEstateProperty/Facilities/SlidingDoors/Available | |
Heeft fransbalkon | RealEstateProperty/Facilities/FrenchBalcony/Available | |
Heeft dakraam | RealEstateProperty/Facilities/SkyLight/Available | |
Heeft sauna | RealEstateProperty/Facilities/Sauna/Available | |
Hoofd objecttype | RealEstateProperty/Type/IsResidential, IsCommercial, IsAgricultural | |
Waardering onderhoud binnen | RealEstateProperty/Evaluations/MaintenanceInside | |
Waardering onderhoud buiten | RealEstateProperty/Evaluations/MaintenanceOutside | |
Soort appartement | RealEstateProperty/Type/PropertyTypes | |
Soort bouw | RealEstateProperty/Construction/IsNewEstate | |
Soort woning | RealEstateProperty/Type/PropertyTypes | |
Status verhuurd | ||
Percentage verhuurd | RealEstateProperty/Current/PercentageRented | |
Is gedeeltelijk verhuurd | RealEstateProperty/Current/IsPartiallyRented | |
Bedrage per jaar | RealEstateProperty/Current/RevenuePerYear | |
Bedrijfsnaam | RealEstateProperty/PropertyInfo/PropertyCompanyName | |
Munteenheid | RealEstateProperty/LocalizationInfo/Currency | |
Type CK-ketel | RealEstateProperty/ClimatControl/Heating/TypeOfBoiler | |
Openhuis tekst | RealEstateProperty/Offer/OpenHouse/OpenHouseEvent/Title | |
Publieke referentie | RealEstateProperty/PropertyInfo/PublicReferenceNumber | |
Type ALV | RealEstateProperty/Type/PropertyTypes | |
Type ALV overig | RealEstateProperty/Type/PropertyTypes | |
Type BOG | RealEstateProperty/Type/PropertyTypes | |
Type paardenbedrijf | RealEstateProperty/Type/PropertyTypes | |
Type parkeergelegenheid | RealEstateProperty/Type/PropertyTypes | |
Type particulier | RealEstateProperty/Type/PropertyTypes | |
Type particulier overig | RealEstateProperty/Type/PropertyTypes | |
Type pluimveebedrijf | RealEstateProperty/Type/PropertyTypes | |
Type tuinbouwbedrijf | RealEstateProperty/Type/PropertyTypes | |
Type varkensbedrijf | RealEstateProperty/Type/PropertyTypes | |
Type woning | RealEstateProperty/Type/PropertyTypes |
Hieronder vindt u een lijst van objecteigenschaplijsten in het Nederlands, met daarbij de Engelse benaming uit de output XML van de SiteLink.
Energieklasse | RealEstateProperty/ClimatControl/EnergyCertificate/EnergyClass |
---|---|
A | A |
B | B |
C | C |
D | D |
E | E |
F | F |
G | G |
APLUSPLUS | APLUSPLUS |
APLUS | APLUS |
Ketel brandstof | RealEstateProperty/ClimatControl/Heating/EnergySource |
GAS | GAS |
OLIE | OIL |
ELEKTRISCH | ELECTRICITY |
Ketel eigendom | RealEstateProperty/ClimatControl/Heating/Ownership |
EIGENDOM | OWNED |
HUUR | RENTED |
LEASE | LEASED |
Verwarming | RealEstateProperty/ClimatControl/Heating/HeatingMethods/HeatingMethod |
CVKETEL | CENTRAL_HEATING |
KOLENKACHEL | COAL_STOVE |
BLOKVERWARMING | HEATING_BLOCK |
STADSVERWARMING | DISTRICT_HEATING |
MOEDERHAARD | CENTRAL_FIREPLACE |
HETELUCHTVERWARMING | HOT_AIR |
AIRCONDITIONING | AIRCO |
GASKACHELS | GAS_STOVE |
OPENHAARD | FIREPLACE |
MOGELIJKHEIDOPENHAARD | OPTION_FOR_FIREPLACE |
VLOERVERWARMINGGEHEEL | FLOOR_HEATING |
VLOERVERWARMINGGEDEELTELIJK | FLOOR_HEATING_PARTLY |
ZONNECOLLECTOREN | SOLAR_COLLECTORS |
ELEKTRISCHEVERWARMING | ELECTRIC_HEATING |
MUURVERWARMING | WALL_HEATING |
Soort warm water | RealEstateProperty/ClimatControl/Heating/HeatingMethodsWater/HeatingMethod |
CVKETEL | CENTRAL_HEATING_SYSTEM |
CENTRALEVOORZIENING | CENTRALLY_SUPPLIED |
GEISERHUUR | GEYSER |
GEISEREIGENDOM | GEYSER |
GASBOILERHUUR | GAS_BOILER |
GASBOILEREIGENDOM | GAS_BOILER |
ELEKTRISCHEBOILERHUUR | ELECTRIC_BOILER |
ELEKTRISCHEBOIKEREIGENDOM | ELECTRIC_BOILER |
ZONNEBOILER | SUN_BOILER |
ZONNECOLLECTOREN | SUN_COLLECTOR |
Bouwperiod | RealEstateProperty/Construction/ConstructionPeriod |
TOT1906 | BEFORE_1906 |
VAN1906_TM1930 | 1906_1930 |
VAN1931_TM1944 | 1931_1944 |
VAN1945_TM1959 | 1945_1959 |
VAN1960_TM1970 | 1960_1970 |
VAN1971_TM1980 | 1971_1980 |
VAN1981_TM1990 | 1981_1990 |
VAN1991_TM2000 | 1991_2000 |
VAN2001_TM2010 | 2001_2010 |
NA2010 | FROM_2011 |
Isolatievormen | RealEstateProperty/Construction/IsolationTypes/IsolationType |
DAKISOLATIE | ROOF |
MUURISOLATIE | WALL |
VLOERISOLATIE | FLOOR |
VOLLEDIGGEISOLEERD | FULL |
SPOUWMUUR | CAVITY_WALL |
ANKERLOZESPOUWMUUR | ANCHOR_FREE_CAVITY_WALL |
ECOBOUW | ECO_CONSTRUCTION |
DUBBELGLAS | INSULATED_GLAZING |
GEDEELTELIJKDUBBELGLAS | PARTLY_INSULATED_GLAZING |
VOORZETRAMEN | SECONDARY_GLAZING |
Dakmateriaal | RealEstateProperty/Construction/Roof/RoofMaterials/RoofMaterial |
LEISTEEN | STONE_SLAB |
RIET | THATCH |
ASBEST | ASBESTOS |
KUNSTSTOF | FABRIC |
PANNEN | TILES |
BITUMINEUZEDAKBEDEKKING | BITUMEN |
METAAL | METAL |
Type dak | RealEstateProperty/Construction/Roof/RoofType |
ZADELDAK | FRONT_GABLE |
PLATDAK | FLAT |
LESSENAARSDAK | SHED |
MANSARDEDAK | GAMBREL |
DWARSKAP | SIDE_GABLE |
SAMENGESTELDDAK | COMPOSITE |
SCHILDDAK | HIPPED |
TENTDAK | PYRAMID_HIP |
DAKMETUILEBORDEN | OTHER |
TORENDAK | TOWER |
ZAAGOFSHEDDAK | SALTBOX |
LUIFELDAK | OTHER |
KAPMETPLAT | MANSARD |
GEBOGENDAK | CURVED |
GEBOGENMETLICHTRUPSEN | CURVED |
SCHAALDAK | SHELL |
Makelaarsvereniging | RealEstateProperty/Contact/Agency/RealEstateAssociation |
UNKNOWN | UNKNOWN |
INDEPENDENT | INDEPENDENT |
VBO | NL_VBO |
VASTGOEDPRO | NL_VASTGOED_PRO |
NVM | NL_NVM |
Geslacht | //element(*,RelationType)/Gender |
MALE | MALE |
FEMALE | FEMALE |
UNKNOWN | UNKNOWN |
Keurmerk | RealEstateProperty/Evaluations/Certifications/Certificate |
AANGEPASTEWONING | AANGEPASTE_WONING |
POLITIE | POLITIEKEURMERK |
BRANDVEILIGHEID | BRANDVEILIGHEID |
ALGEMENEWONINGKEUR | ALGEMENE_WONING_KEUR |
ENERGIEPRESTATIEADVIES | ENERGIE_PRESTATIE_ADVIES |
BOUWKUNDIGEKEURING | BOUWKUNDIGE_KEURING |
HUISGARANTIE | HUISGARANTIE |
GIWWAARBORGCERTIFICAAT | GIW_WAARBORGCERTIFICAAT |
Waardering onderhoud binnen | RealEstateProperty/Evaluations/MaintenanceInside |
SLECHT | TO_REFURBISH |
SLECHTTOTMATIG | TO_REFURBISH |
MATIG | TO_REFURBISH |
MATIGTOTREDELIJK | MEDIOCRE |
REDELIJK | MEDIOCRE |
REDELIJKTOTGOED | GOOD |
GOED | GOOD |
GOEDTOTUITSTEKEND | VERY_GOOD |
UITSTEKEND | VERY_GOOD |
Comfortkwaliteit | RealEstateProperty/Evaluations/ComfortQuality |
LUXE | LUXURY |
NORMAAL | NORMAL |
EENVOUDIG | SIMPLE |
Verontreiniging | RealEstateProperty/Evaluations/PolutionTypes/Polution |
VERWIJDERD | REMOVED |
METCERTIFICAAT | WITH_CERTIFICATE |
AFGEVULD | FILLED |
Inrichting/stoffering | RealEstateProperty/Facilities/FurnitureType |
GEMEUBILEERD | FURNISHED |
GEMEUBILEERD_EN_STOFFEERD | FURNISHED |
KAAL | NOT_FURNISHED |
GESTOFFEERD | NOT_FURNISHED |
Inrichting/stoffering | RealEstateProperty/Facilities/UpholsteredType |
GEMEUBILEERD | NOT_UPHOLSTERED |
GEMEUBILEERD_EN_STOFFEERD | FULLY_UPHOLSTERED |
KAAL | NOT_UPHOLSTERED |
GESTOFFEERD | FULLY_UPHOLSTERED |
Huurconditie | RealEstateProperty/Financials/RentPriceType |
MAAND | PRICE_PER_MONTH |
KWARTAAL | PRICE_PER_QUARTER |
HALF_JAAR | PRICE_PER_HALF_YEAR |
JAAR | PRICE_PER_YEAR |
CONTRACTDUUR | PRICE_PER_CONTRACT |
Huurspecificatie | RealEstateProperty/Financials/RentSpecification/Specification |
INCL_BTW | INCL_VAT |
GEINDEXEERD | INDEXED |
INCL_SERVICEKOSTEN | INCL_SERVICE_COSTS |
INCL_GAS | INCL_GAS |
INCL_WATER | INCL_WATER |
INCL_LICHT | INCL_ELECTRICITY |
GEMEUBILEERD | INCL_FURNITURE |
Koopconditie | RealEstateProperty/Financials/PurchaseCondition |
KOSTEN_KOPER | COSTS_BUYER |
VRIJ_OP_NAAM | FREE_ON_NAME |
Koopspecificatie | RealEstateProperty/Financials/PurchaseSpecification |
EXCL_BOUWRENTE | EXCLUSIVE_INTERIM_INTEREST |
EXCL_BTW | VAT_FISCALISED |
INCL_BTW | VAT_INCLUSIVE |
Prijscode | RealEstateProperty/Financials/PriceCode |
HOGERE_PRIJSKLASSE | HIGHER_BUDGET |
OPENBARE_VEILING | PUBLIC_AUCTION |
PRIJS_IN_OVERLEG | PRICE_IN_CONSULTATION |
PRIJS_NADER_OVEREEN_TE_KOMEN | PRICE_TO_BE_NEGOTIATED |
PRIJS_OP_AANVRAAG | PRICE_ON_REQUEST |
TEGEN_ELK_AANNEMELIJK_BOD | ANY_PLAUSIBLE_BID |
VASTE_PRIJS | FIXED_PRICE |
VERKOOP_BIJ_INSCHRIJVING | BY_TENDER |
VRAAGPRIJS | ASKING_PRICE |
Badkamervoorzieningen | RealEstateProperty/Floors/Floor/Rooms/Room/BathroomFacilities/Facility |
LIGBAD | BATH |
ZITBAD | HALF_BATH |
TOILET | TOILET |
DOUCHE | SHOWER |
URINOIR | URINOIR |
BIDET | BIDET |
STOOMCABINE | STEAMCABIN |
JACUZZI | JACUZZI |
Orientatie | OrientationType |
NOORD | NORTH |
NOORDOOST | NORTH_EAST |
OOST | EAST |
ZUIDOOST | SOUTH_EAST |
ZUID | SOUTH |
ZUIDWEST | SOUTH_WEST |
WEST | WEST |
NOORDWEST | NORTH_WEST |
RealEstateProperty/Facilities/KitchenType | |
Type keuken | RealEstateProperty/Floors/Floor/Rooms/Room/KitchenTypes/KitchenType |
OPENKEUKEN | OPEN |
WOONKEUKEN | DINING |
DICHTEKEUKEN | CLOSED |
HALFOPENKEUKEN | SEMI_OPEN |
Type overige ruimte | RealEstateProperty/Floors/Floor/Rooms/Room/Type |
BIJKEUKEN | SCULLERY |
DOUCHE | SHOWER |
TOILET | TOILET |
GANG | CORRIDOR |
TOCHTPORTAAL | ENCLOSED_PORCH |
HAL | HALL |
STOOKRUIMTE | BOILER_ROOM |
BERGING | STOREROOM |
PROVISIERUIMTE | STORAGE |
DAKKAPEL | DORMER |
LOGGIA | LOGGIA |
OVERLOOP | VESTIBULE |
WASRUIMTE | LAUNDRY_ROOM |
Type woonkamer | RealEstateProperty/Floors/Floor/Rooms/Room/LivingRoomTypes/LivingRoomType |
TKAMER | T_ROOM |
ZKAMER | Z_ROOM |
UKAMER | U_ROOM |
LKAMER | L_ROOM |
KAMERENSUITE | ROOM_EN_SUITE |
VOORMALIGENSUITE | FORMER_ROOM_EN_SUITE |
DOORZONKAMER | SUNRAYS_ROOM |
TUINKAMER | GARDENROOM |
SERRE | CONSERVATORY |
STUDEERKAMER | STUDY |
WERKKAMER | OFFICE |
WOONKAMER | LIVING_ROOM |
Garagevoorziening | RealEstateProperty/Garages/Garage/Facilities/Facility |
VERWARMING | HEATING |
ELEKTRA | ELECTRICITY |
WATER | WATER |
VLIERING | LOFT |
ELEKTRISCHEDEUR | ELECTRIC_DOORS |
Type garage | RealEstateProperty/Garages/Garage/Type |
AANGEBOUWD_STEEN | ATTACHED_STONE |
GEEN_GARAGE | OPTION |
AANGEBOUWD_HOUT | ATTACHED_WOOD |
VRIJSTAAND_STEEN | DETACHED_STONE |
VRIJSTAAND_HOUT | DETACHED_WOOD |
INPANDIG | INDOOR |
GARAGEBOX | GARAGEBOX |
PARKEERKELDER | BASEMENT_CAR_PARK |
GARAGE_MOGELIJK | OPTION |
CARPORT | CARPORT |
PARKEERPLAATS | PARKING_PLACE |
GARAGE_MET_CARPORT | GARAGE_WITH_CARPORT |
Kwaliteit tuin | RealEstateProperty/Gardens/Garden/Quality |
AANTELEGGEN | TO_BE_CREATED |
VERWAARLOOSD | NEGLECTED |
NORMAAL | NORMAL |
FRAAIAANGELEGD | BEAUTIFULLY_LANDSCAPED |
VERZORGD | WELL_MAINTAINED |
Type tuin | RealEstateProperty/Gardens/Garden/Type |
ACHTERTUIN | BACK_YARD |
VOORTUIN | FRONT_YARD |
ZIJTUIN | SIDE_YARD |
TUINRONDOM | GARDEN_AROUND |
PATIOATRIUM | PATIO_ATRIUM |
PLAATS | OPEN_AREA |
ZONNETERRAS | SUN_TERRACE |
Taal | RealEstateProperty/LocalizationInfo/Language |
Cultuur | RealEstateProperty/LocalizationInfo/Culture |
de-AT | de-AT |
de-CH | de-CH |
de-DE | de-DE |
en-GB | en-GB |
es-ES | es-ES |
fr-FR | fr-FR |
hr-HR | hr-HR |
nl-NL | nl-NL |
it-IT | it-IT |
ru-RU | ru-RU |
sk-SK | sk-SK |
Munteenheid | RealEstateProperty/LocalizationInfo/Currency |
ANG | ANG |
BGN | BGN |
CHF | CHF |
CZK | CZK |
EUR | EUR |
HRK | HRK |
HUF | HUF |
PLN | PLN |
RSD | RSD |
RON | RON |
RUB | RUB |
USD | USD |
Verdieping | RealEstateProperty/Floors/Floor/Type |
0 | GROUND_FLOOR |
1 | FLOOR_1 |
2 | FLOOR_2 |
3 | FLOOR_3 |
4 | FLOOR_4 |
5 | FLOOR_5 |
6 | FLOOR_6 |
7 | FLOOR_7 |
8 | FLOOR_8 |
9 | FLOOR_9 |
10 | FLOOR_10 |
11 | FLOOR_11_15 |
12 | FLOOR_11_15 |
13 | FLOOR_11_15 |
14 | FLOOR_11_15 |
15 | FLOOR_11_15 |
Soort aanvaarding | RealEstateProperty/Offer/Acceptance |
IN_OVERLEG | IN_CONCERT |
PER_DATUM | BY_DATE |
DIRECT | DIRECT |
Type relatie | //element(*,RelationType)/RelationType |
PERSON | PERSON |
COMPANY | COMPANY |
Beschikbaarheidsstatus | RealEstateProperty/PropertyInfo/Status |
BESCHIKBAAR | AVAILABLE |
ONDER_BOD | AVAILABLE |
ONDER_OPTIE | AVAILABLE |
VERKOCHT_ONDER_VOORBEHOUD | SOLD_UNDER_CONDITIONS |
VERHUURD_ONDER_VOORBEHOUD | RENTED_UNDER_CONDITIONS |
VERKOCHT | SOLD |
VERHUURD | RENTED |
INGETROKKEN | WITHDRAWN |
In het vorige gedeelte van deze Wiki is de theorie besproken. Welke begrippen worden er gebruikt en welke processen zijn er onderkent. In het gedeelte ‘De praktijk’ wordt exact uitgelegd op welke manier Contracten verwerkt moeten worden en panden en relaties opgehaald kunnen worden.
De Connector is geïmplementeerd als een RESTful web service. De gegevens (panden en relaties) worden in de vorm van XML berichten beschikbaar gesteld via de webservice. Deze gegevens worden opgehaald door het uitvoeren van een HTTP GET request. De Media Partner krijgt ‘schone, valide’ XML berichten terug; valide volgens vooraf gespecificeerde XSD schema’s.
Om de Connector opdrachten te geven (bijvoorbeeld de opdracht om een Contract te accepteren) stuurt de Media Partner een XML bericht naar de webservice van de Connector. Dit laatste gebeurt door het XML bericht aan te leveren aan de Connector met een standaard HTTP POST actie.
Versie beheer
De implementatie van de Connector zal zich in de komende jaren evolueren. Verschillende Content Providers en Media Partners stellen in de toekomst mogelijk nieuwe eisen. Om hier aan te kunnen blijven voldoen zal de API van de Connector in de toekomst ongetwijfeld wijzigen. Nieuwe functies zullen worden toegevoegd en XML berichten zullen wijzigen. Om ervoor te zorgen dat er doorontwikkeld kan worden aan de Connector zonder dat alle Media Partners continu hun consumerende software aan moeten passen werkt de Connector met versies. En de Connector ondersteunt dus meerdere versies tegelijkertijd.
Versies zullen verschillen in API methods en de XML definities. Iedere versie kent dus zijn eigen XSD’s. Een XML bericht uit versie X moet dus valide zijn met het bijbehorende XSD uit versie X. Een XML bericht uit versie X is dus niet per definitie valide volgens een XSD uit versie Y.
Zodra een versie de status ‘Released’ heeft zijn de API methods vastgelegd en zijn de XSD’s niet meer wijzigbaar. Totdat de status van een versie ‘Released’ is zullen er nog wijzigingen mogelijk zijn. Bij een status ‘Release Candidate’ is dit erg onwaarschijnlijk; maar wel mogelijk. Bij een status ‘Development’ is dit juist heel waarschijnlijk. Als een XSD aangepast moet worden maar heeft de laatste versie van de API de status ‘Released’ dan zal er dus een nieuwe versie van de webservice komen.
Op dit moment zijn de volgende versies beschikbaar:
16.0 | Released | https://api.wazzupsoftware.com/outputservice.svc/16/0/ | This is the most actual version of the Wazzup Real Estate Connector |
De webservice voor Media Partners bevindt zich op de onderstaande locatie:
https://api.wazzupsoftware.com/outputservice.svc/X/Y/
Het versie nummer van de Connector staat vermeld in de URL van de webservice. https://api.wazzupsoftware.com/outputservice.svc/16/0/ betekent versie 16.0 (X = major version number = 16, Y = minor version number = 0).
De Connector levert XML bestanden die altijd voldoen aan een vooraf gedefinieerd schema. Dit schema is in XSD bestanden vastgelegd. Iedere versie van de Connector kent zijn eigen schema, welke mogelijk afwijkt van het schema van een vorige versie.
Gebruik het juiste versienummer en token in de URL om toegang te krijgen tot het bestand. In onderstaande voorbeelden is token ABCDEFG als voorbeeld gebruikt.
XSD Media Contract Snapshot
https://api.wazzupsoftware.com/InformationService.svc/16/0/ABCDEFG/files/?filename=MediaContractSnapshot.xsd
XSD Real Estate Property Summary
https://api.wazzupsoftware.com/InformationService.svc/16/0/ABCDEFG/files/?filename=RealEstatePropertySummarySnapshot.xsd
XSD Real Estate Property
https://api.wazzupsoftware.com/InformationService.svc/16/0/ABCDEFG/files/?filename=RealEstateProperty.xsd
https://api.wazzupsoftware.com/InformationService.svc/16/0/ABCDEFG/files/?filename=RealEstateProperty.zip (Inclusief beschrijvingen en Schema weergave als HTML)
XSD Relation
https://api.wazzupsoftware.com/InformationService.svc/16/0/ABCDEFG/files/?filename=Relation.xsd
In dit scenario laat de Media Partner niet zomaar alle makelaarskantoren toe als ‘klant’. De makelaar dient een verzoek in voor een contract en de Media Partner keurt dit verzoek goed of af. Dit scenario is van toepassing als de instelling ‘Auto Accept’ op ‘nee’ staat ingesteld voor de specifieke Media Partner.
Dit scenario is niet van toepassing indien ‘Auto Accept’ op ‘ja’ staat ingesteld. In het geval dat ‘Auto Accept’ op ‘ja’ staat gebeurt dit gehele proces namelijk automatisch en worden altijd alle Contract verzoeken direct geaccepteerd.
Het scenario ‘Contract verzoeken verwerken’ is bijvoorbeeld toepasbaar bij een Media Partner die een (papieren) overeenkomst wilt hebben met de makelaar voordat hij toestaat dat de makelaar panden gaat publiceren naar de Media Partner. Vaak worden deze overeenkomsten éérst getekend om duidelijk te maken aan de makelaar dat hij, zodra hij een pand gaat publiceren naar de Media Partner, feitelijk de opdracht geeft aan de Media Partner om een product of dienst voor het pand te leveren. En dat de kosten vervolgens (uiteraard) voor rekening zijn van deze makelaar.
Voor dit scenario haalt de Media Partner met regelmaat (bijvoorbeeld 1x per dag) een lijst op bij de Connector met alle contract verzoeken. Deze verzoeken verwerkt de Media Partner, bijvoorbeeld door overeenkomsten op te stellen en per post te versturen naar de makelaar. Is de makelaar uiteindelijk (enkele dagen later) akkoord met de voorwaarden en heeft de Media Partner alle benodigde getekende documenten ontvangen dan bevestigd de Media Partner dit bij de Connector. Gaat de makelaar niet akkoord dan laat de Media Partner dit ook weten bij de Connector.
Pas als een Contract actief is (in dit scenario: pas als de Media Partner het verzoek voor het contract geaccepteerd heeft) kan de makelaar panden publiceren naar de Media Partner.
In onderstaand sequence diagram wordt de workflow voor het verwerken van verzoeken voor een Contract weergegeven.
Als eerste haalt de Media Partner alle verzoeken voor Contracten op. Dit gaat met een HTTP GET request op alle MediaContracts met de status van het Contract ‘pendingactivation’. De URL van dit GET request ziet er voor versie 16.0 van de connector en token ABCDEFG als volgt uit:
https://api.wazzupsoftware.com/ActivateService.svc/16/0/ABCDEFG/mediacontract/?state=pendingactivation
private IList<MediaContractSnapshot> getMediaContractSnapshots(string constractState)
{
var url = string.Format(@"{0}ActivateService.svc/16/0/{1}/mediacontract/?state={2}",
m_connectorURL, m_token, constractState);
var result = XmlLib.GetObject<MediaContractSnapshotResult>(url);
if (!result.IsSuccess)
throw new Exception(result.ErrorMessage);
return result.ArrayOfMediaContractSnapshot;
}
Met een geldig token maar zonder Contract verzoeken ziet het resultaat er als volgt uit:
Met een geldig token en één verzoek ziet het resultaat er als volgt uit:
Geen recht om de API method aan te roepen.
Is het token geldig maar heb je als Media Partner niet het recht om verzoeken op te halen (bijvoorbeeld omdat ‘Auto Accept’ op ‘ja’ staat ingesteld) dan krijg je het volgende resultaat:
Ongeldig token
Indien de Connector wordt aangeroepen met een ongeldig token kun je het onderstaande resultaat verwachten:
Als de contract verzoeken éénmaal zijn opgehaald kunnen ze verwerkt worden. Dit verwerken is per Media Partner anders: de ene partner belt de makelaar om de voorwaarden te bespreken; de ander stuurt per post een overeenkomst op, etc. Zodra dit verwerken is afgerond kan de Media Partner aan de Connector doorgeven of het verzoek geaccepteerd of geweigerd wordt.
Het accepteren gaat door een bericht te posten met als actie ‘acceptactivation’. Het resultaat van de actie geeft aan of de actie gelukt of mislukt is. De URL van deze POST actie ziet er voor versie 1.0 van de Connector, token ABCDEFG en Contract 12 als volgt uit:
https://api.wazzupsoftware.com/ActivateService.svc/16/0/ABCDEFG/mediacontract/?id=12&action=acceptactivation
Hieronder een code voorbeeld waarin een verzoek van een contract wordt geaccepteerd:
public void AcceptActivation(int mediaContractID)
{
var url = string.Format("{0}ActivateService.svc/16/0/{1}/mediacontract/?id={2}&action={3}",
m_connectorURL, m_token, mediaContractID, "acceptactivation");
postMessage(url);
}
private static void postMessage(string url)
{
var request = WebRequest.Create(url);
request.Method = "POST";
request.ContentLength = 0;
using (var response = request.GetResponse())
{
var result = XmlLib.GetObject<DefaultResult>(response.GetResponseStream());
if (!result.IsSuccess)
throw new Exception(result.ErrorMessage);
}
}
Uiteraard kan een verzoek voor een contract ook geweigerd worden. Het weigeren gaat op een soortgelijke manier als het accepteren, alleen is de actie dan ‘rejectactivation’ en niet ‘acceptactivation’. Daarnaast kan de Media Partner bij het weigeren een reden meegeven. Deze reden wordt via de software van de Content Provider (b.v. Kolibri) getoond aan de makelaar.
De URL van de POST actie ziet er voor versie 16.0 van de Connector, token ABCDEFG en Contract 12 als volgt uit:
https://api.wazzupsoftware.com/ActivateService.svc/16/0/ABCDEFG/mediacontract/?id=12&action=rejectactivation&reason=Overeenkomst%20niet%20op%20tijd%20ontvangen
Hieronder een C# code voorbeeld waarin een verzoek van een contract wordt geweigerd:
public void RejectActivation(int mediaContractID, string reason)
{
var url = string.Format("{0}ActivateService.svc/16/0/{1}/mediacontract/?id={2}&action={3}&reason={4}",
m_connectorURL, m_token, mediaContractID, "rejectactivation", HttpUtility.UrlEncode(reason));
postMessage(url);
}
private static void postMessage(string url)
{
var request = WebRequest.Create(url);
request.Method = "POST";
request.ContentLength = 0;
using (var response = request.GetResponse())
{
var result = XmlLib.GetObject<DefaultResult>(response.GetResponseStream());
if (!result.IsSuccess)
throw new Exception(result.ErrorMessage);
}
}
Met het API recht ‘SuspendMediaContract’ wordt het voor een Media Partner mogelijk om een Contract met een makelaar tijdelijk te pauzeren. Door een Contract te pauzeren wordt het voor de makelaar niet meer mogelijk om vanuit de software van de Content Provider (b.v. Kolibri) panden te delen. Voor reeds gedeelde panden en bij ‘automatische mode’ gebeurt er niets.
Bij het pauzeren van een Contract heeft de Media Partner de mogelijkheid om een reden mee te geven. Deze reden wordt via de software aan de makelaar getoond.
Het pauzeren van een contract gaat door een bericht te posten met als actie ‘suspend’. Het resultaat van de actie geeft aan of de actie gelukt of mislukt is. De URL van deze POST actie ziet er voor versie 16.0 van de Connector, token ABCDEFG en Contract 12 als volgt uit:
https://api.wazzupsoftware.com/ActivateService.svc/16/0/ABCDEFG/mediacontract/?id=12&action=suspend
Hieronder een code voorbeeld waarin een verzoek van een contract wordt geaccepteerd:
public void SuspendContract(int mediaContractID, string reason)
{
var url = string.Format("{0}ActivateService.svc/16/0/{1}/mediacontract/?id={2}&action={3}&reason={4}",
m_connectorURL, m_token, mediaContractID, "suspend", HttpUtility.UrlEncode(reason));
postMessage(url);
}
private static void postMessage(string url)
{
var request = WebRequest.Create(url);
request.Method = "POST";
using (var response = request.GetResponse())
{
var result = XmlLib.GetObject<DefaultResult>(response.GetResponseStream());
if (!result.IsSuccess)
throw new Exception(result.ErrorMessage);
}
}
Om een gepauzeerd contract weer te heractiveren post de Media Partner een bericht me als actie ‘reactivate’. Het resultaat van de actie geeft aan of de actie gelukt of mislukt is. De URL van deze POST actie ziet er voor versie 16.0 van de Connector, token ABCDEFG en Contract 12 als volgt uit:
https://api.wazzupsoftware.com/ActivateService.svc/16/0/ABCDEFG/mediacontract/?id=12&action=reactivate
Een ‘reactivate’ dient enkel uitgevoerd te worden op een gepauzeerd Contract, anders zal er een fout optreden.
Hieronder een code voorbeeld waarin een gepauzeerd contract wordt geheractiveerd:
public void ReactivateContract(int mediaContractID)
{
var url = string.Format("{0}ActivateService.svc/16/0/{1}/mediacontract/?id={2}&action={3}",
m_connectorURL, m_token, mediaContractID, "reactivate");
postMessage(url);
}
private static void postMessage(string url)
{
var request = WebRequest.Create(url);
request.Method = "POST";
using (var response = request.GetResponse())
{
var result = XmlLib.GetObject<DefaultResult>(response.GetResponseStream());
if (!result.IsSuccess)
throw new Exception(result.ErrorMessage);
}
}
Uiteraard is het mogelijk dat een makelaar geen gegevens meer wilt delen met een Media Partner. Dit geeft de makelaar aan via de software van de Content Provider (b.v. Kolibri). De Media Partner zal met enige regelmaat (bijvoorbeeld 1x per dag) moeten controleren of er nog verzoeken voor Contractbeëindigingen voor hem zijn.
Bij de ontvangst van een verzoek voor een Contractbeëindiging zal de Media Partner de nodige administratieve handelingen door kunnen voeren om vervolgens aan de Connector te bevestigen dat het Contract is beëindigd.
Dit scenario is niet van toepassing indien ‘Auto Accept Deactivation’ op ‘ja’ staat ingesteld. In het geval dat ‘Auto Accept Deactivation’ op ‘ja’ staat gebeurt dit gehele proces namelijk automatisch en worden altijd alle Contract beëindigingsverzoeken automatisch direct geaccepteerd en afgerond.
Nadat een verzoek voor een Contractbeëindiging is bevestigd door de Media Partner kan de makelaar geen gegevens meer delen met de Media Partner.
In onderstaand sequence diagram wordt de workflow voor het verwerken van verzoeken voor een Contractbeëindigingen weergegeven.
Uit het bovenstaande diagram valt inderdaad af te leiden dat een Media Partner een verzoek tot een beëindiging niet kan/mag weigeren.
Nadat een Media Partner het verzoek voor beëindiging van het Contract heeft bevestigd ontvangt de Media Partner geen gedeelde gegevens (panden en/of relaties) meer van het betreffende makelaarskantoor. Vervolgens kan de makelaar wel via de software van de Content Provider (b.v. Kolibri) opnieuw een Contract voor de Media Partner indienen. En hiermee begint het proces dus weer helemaal van vooraf aan.
Als eerste haalt de Media Partner alle verzoeken voor beëindiging van Contracten op. Dit gaat met een HTTP GET request op alle MediaContracts met de status van het Contract ‘pendingdeactivation’. De URL van dit GET request ziet er voor versie 16.0 van de connector en token ABCDEFG als volgt uit:
https://api.wazzupsoftware.com/ActivateService.svc/16/0/ABCDEFG/mediacontract/?state=pendingdeactivation
Hieronder een C# code voorbeeld:
public void AcceptDeactivation(int mediaContractID)
{
var url = string.Format("{0}ActivateService.svc/16/0/{1}/mediacontract/?id={2}&action={3}",
m_connectorURL, m_token, mediaContractID, "acceptdeactivation");
postMessage(url);
}
private static void postMessage(string url)
{
var request = WebRequest.Create(url);
request.Method = "POST";
using (var response = request.GetResponse())
{
var result = XmlLib.GetObject<DefaultResult>(response.GetResponseStream());
if (!result.IsSuccess)
throw new Exception(result.ErrorMessage);
}
}
Na de ontvangst van één of meerdere beëindigingsverzoeken zal de Media Partner dit verzoek moeten accepteren.
Het accepteren gaat door een bericht te posten met als actie ‘acceptdeactivation’. Het resultaat van de actie geeft aan of de actie gelukt of mislukt is. De URL van deze POST actie ziet er voor versie 16.0 van de Connector, token ABCDEFG en Contract 12 als volgt uit:
https://api.wazzupsoftware.com/ActivateService.svc/16/0/ABCDEFG/mediacontract/?id=12&action=acceptdeactivation
Hieronder een code voorbeeld waarin een verzoek tot beëindiging van een contract wordt geaccepteerd:
public void AcceptDeactivation(int mediaContractID)
{
var url = string.Format("{0}ActivateService.svc/16/0/{1}/mediacontract/?id={2}&action={3}",
m_connectorURL, m_token, mediaContractID, "acceptdeactivation");
postMessage(url);
}
private static void postMessage(string url)
{
var request = WebRequest.Create(url);
request.Method = "POST";
using (var response = request.GetResponse())
{
var result = XmlLib.GetObject<DefaultResult>(response.GetResponseStream());
if (!result.IsSuccess)
throw new Exception(result.ErrorMessage);
}
}
Zodra er een actief Contract is tussen een makelaarskantoor en een Media Partner kan een makelaar panden delen met een Media Partner. Dit wordt over het algemeen ‘publiceren’ genoemd.
Een makelaar ‘publiceert’ per pand, of schakelt de ‘automatisch mode’ in. Bij de automatische mode worden al zijn panden altijd automatisch gedeeld met de betreffende Media Partner.
Zodra een pand, handmatig of automatisch, gedeeld wordt komen de actuele pandgegevens beschikbaar voor de betreffende Media Partner. Zodra de makelaar de publicatie stopt (alléén mogelijk als de automatische mode uit staat) worden de pand gegevens niet meer gedeeld. Het delen van een pand stopt ook als een pand niet meer actief is:
Actieve panden
De Connector heeft alleen actieve panden. We beschouwen een pand actief als deze:
Is een pand niet meer actief dan verdwijnt deze automatisch en zal deze ook niet meer gedeeld (kunnen) worden met Media Partners.
Een Media Partner haalt de gegevens van gedeelde panden op via de Connector en geeft vervolgens een terugkoppeling aan de Connector over de publicatie. Deze terugkoppeling kan bestaat uit een acceptatie (‘confirm’) of een weigering (‘reject’). De terugkoppeling kan direct bij het ophalen van de gegevens plaats vinden, of uren of dagen later.
Bij de acceptatie kan de Media Partner een webadres meegeven die verwijst naar het eindproduct (bijvoorbeeld de detailpagina van het pand op de portal website van de Media Partner). Ook kan een bericht aangeleverd worden die getoond wordt aan de makelaar via de software van de Content Provider (b.v. Kolibri).
Door een pand te weigeren kan de Media Partner terugkoppeling geven aan de makelaar over problemen met het gedeelde pand. Stelt de Media Partner als eis dat er foto’s bij een pand aangeleverd moeten worden, en deelt de makelaar een pand zonder foto’s dan kan de Media Partner de fout terugkoppelen aan de makelaar, wederom via de software van de Content Provider.
Om panden op te halen en te verwerken doorloopt de Media Partner de volgende 5 stappen:
In een sequence diagram ziet dit er als volgt uit:
Het ophalen van contracten gaat d.m.v. een HTTP GET actie. Naast het ophalen van Contract verzoeken (zie hier) en Contract beëindigingsverzoeken (zie hier) kan ook de lijst met actieve Contracten opgehaald worden. Dit zijn de Contracten waarvan de makelaar panden met de Media Partner wil delen. Alleen de pandgegevens van panden met een actief contract tussen de Media Partner en de makelaar mogen door de Media Partner gebruikt worden. Dit zijn ook de enige pandgegevens die de Connector aanlevert.
Een makelaar dient via de software voor een Media Partner een verzoek in voor een Contract. De status van het Contract (eerst INACTIVE) wordt nu PENDING ACTIVATION.De Media Partner bevestigd dit verzoek waarna het Contract actief wordt (status ACTIVE). Vervolgens kan de makelaar via de software een verzoek indienen voor beëindiging van het Contract (status PENDING DEACTIVATION). Dit verzoek wordt opgehaald door de Media Partner die de beëindiging bevestigd (status INACTIVE).
Een Media Partner ontvangt alleen actieve panden van de Connector als het Contract de status ACTIVE of PENDING DEACTIVATION heeft. In alle andere gevallen dient de Media Partner de pandgegevens die horen bij het betreffende Contract te verwijderen.
Als eerste haalt de Media Partner alle actieve Contracten op. Dit gaat met een HTTP GET request op alle MediaContracts met de status van het Contract ‘active’. De URL van dit GET request ziet er voor versie 16.0 van de connector en token ABCDEFG als volgt uit:
https://api.wazzupsoftware.com/ActivateService.svc/16/0/ABCDEFG/mediacontract/?state=active
Hieronder een C# code voorbeeld:
private IList<MediaContractSnapshot> getMediaContractSnapshots(string constractState)
{
var url = string.Format(@"{0}ActivateService.svc/16/0/{1}/mediacontract/?state={2}",
m_connectorURL, m_token, constractState);
var result = XmlLib.GetObject<MediaContractSnapshotResult>(url);
if (!result.IsSuccess)
throw new Exception(result.ErrorMessage);
return result.ArrayOfMediaContractSnapshot;
}
Per Contract kunnen de Real Estate Property Summaries opgehaald worden. De Summaries bevatten een beperkte set aan gegevens van de actieve panden; genoeg voor de Media Partner om te bepalen of de gegevens van de panden in zijn database nog overeenkomen met de gegevens zoals de makelaar ze als laatst heeft bijgewerkt.
Een belangrijk veld uit de Summaries is ‘ModificationDateTimeUtc’; als dit veld anders is dan de vorige keer dat de pand gegevens door de Media Partner is opgehaald dan heeft de Media Partner niet de meest recente pand gegevens en zal hij deze dus opnieuw op moeten halen.
Hieronder aantal pand Summaries in een XML bestand:
Het ophalen van de Summaries gaat met een HTTP GET request. De URL van dit GET request ziet er voor versie 16.0 van de Connector, token ABCDEFG en Realtor ID 376 (uit het MediaContract uit stap A + B) als volgt uit:
https://api.wazzupsoftware.com/OutputService.svc/16/0/ABCDEFG/realestatesummary/?realtorid=376
Hieronder een C# code voorbeeld:
public IList<RealEstatePropertySummarySnapshot> GetRealEstatePropertySummaries(int realtorID)
{
modifiedSinceUTC = modifiedSinceUTC ?? new DateTime(1900, 1, 1).ToUniversalTime();
var url = string.Format(@"{0}OutputService.svc/16/0/{1}/realestatesummary/?realtorid={2}", m_connectorURL, m_token, realtorID"));
var result = XmlLib.GetObject<RealEstatePropertySummarySnapshotResult>(url);
if (!result.IsSuccess)
throw new Exception(result.ErrorMessage);
return result.ArrayOfRealEstatePropertySummarySnapshot;
}
Komt de Media Partner met behulp van de Summaries tot de conclusie dat de pandgegevens in de database van de Media Partner niet meer actueel zijn dan kan hij de actuele gegevens ophalen door middel van een HTTP GET request. De URL van dit GET request ziet er voor versie 16.0 van de Connector, token ABCDEFG en Realtor ID 376 (uit de Summary uit stap C + D) en Real Estate Property ID 1365 (uit de Summary uit stap C + D) als volgt uit:
https://api.wazzupsoftware.com/OutputService.svc/16/0/ABCDEFG/realestate/?realtorid=376&id=1365
Hieronder een C# code voorbeeld:
public RealEstateProperty GetRealEstateProperty(int realtorID, int realEstateProperyID)
{
var url = string.Format(@"{0}OutputService.svc/16/0/{1}/realestate/?realtorid={2}&id={3}",
m_connectorURL, m_token, realtorID, realEstateProperyID);
var result = XmlLib.GetObject<RealEstatePropertyResult>(url);
if (!result.IsSuccess)
throw new Exception(result.ErrorMessage);
return result.RealEstateProperty;
}
Wat er na het ophalen van een Real Estate Property gebeurt is per Media Partner verschillend. De één verwerkt de gegevens in haar database waarna deze op de portal verschijnt; de ander start met DTP werkzaamheden en maakt m.b.v. de gegevens een papieren brochure. Voor de ene Media Partner heeft de pandgegevens binnen enkele seconden verwerkt; de ander heeft enkele dagen nodig. Maar zodra de Media Partner zijn werk voor het pand heeft afgerond bevestigt de Media Partner dit aan de Connector. Deze Connector geeft dit bericht vervolgens weer door aan de makelaar via de software van de Content Provider (b.v. Kolibri). Ook kan er extra informatie toegevoegd worden bij deze bevestiging; namelijk een bericht en een url. In het bericht informeert de Media Partner de makelaar over het eindresultaat van de succesvolle verwerking en de optionele url verwijst naar een webpagina waar de makelaar het resultaat kan bewonderen. Een voorbeeld van een bericht kan zijn “De pandgegevens zijn succesvol verwerkt in onze database.” en een url bijvoorbeeld “https://www.mediapartner.nl/woningaanbod/koop/arnhem/jansbuitensingel/7”).
De ene Media Partner verwerkt continu de wijzigingen van het pand. Zo zal een Portal altijd de meest recente gegevens willen ontvangen en tonen op haar site. Telkens als deze Media Partner pandgegevens ontvangt bevestigd de Media Partner de succesvolle verwerking aan de Connector. En dit geldt dus niet alleen als het pand voor het eerst wordt aangeboden, maar ook telkens als er wijzigingen zijn doorgegeven en verwerkt door de Media Partner.
Een andere Media Partner verwerkt de gegevens van een pand slechts één keer. Zo zal een drukker de gegevens verwerken en de brochure drukken. Worden de pandgegevens daarna gewijzigd dan zal de drukker (meestal) niet opnieuw brochures gaan drukken. In het geval dat de Media Partner de gegevens slechts 1x verwerkt bevestigd de Media Partner dus ook slechts 1x de correcte verwerking van de pand gegevens.
Het bevestigen van een succesvolle verwerking van de pandgegevens gaat door middel van een HTTP POST actie. De URL van zo’n POST actie ziet er voor versie 16.0 van de Connector, token ABCDEFG en Realtor ID 376 (uit de Summary uit stap C + D) en Real Estate Property ID 1365 (uit de Summary uit stap C + D) als volgt uit:
https://api.wazzupsoftware.com/OutputService.svc/16/0/ABCDEFG/realestate/?realtorid=376&id=1365&action=confirm&url=http%3a%2f%2fwww.funda.nl%2fpanddetails.aspx%3fpandid%3d1234&message=De+pandgegevens+zijn+succesvol+verwerkt+in+onze+database.
Hieronder een C# code voorbeeld:
public void ConfirmRealEstatePropertyRetrieval(int realtorID, int realEstateProperyID, string mediaPartnerUrl, string message)
{
var url = string.Format(@"{0}OutputService.svc/16/0/{1}/realestate/?realtorid={2}&id={3}&action={4}&url={5}&message={6}",
m_connectorURL, m_token, realtorID, realEstateProperyID, "confirm", HttpUtility.UrlEncode(mediaPartnerUrl), HttpUtility.UrlEncode(message));
var result = HttpLib.PostMessage<DefaultResult>(url);
if (!result.IsSuccess)
throw new Exception(result.ErrorMessage ?? "Unknown error message.");
}
Helaas gaat niet altijd alles gelijk goed. Zo kan het zijn dat een pand niet aan de minimale eisen van de Media Partner voldoet. Heeft een pand bijvoorbeeld geen foto’s maar is dit een vereiste van de Media Partner dan kan deze dit terugkoppelen aan de makelaar. Dit gaat via de Connector door een HTTP POST actie uit te voeren. Bij deze actie kan een reden worden opgegeven die wordt getoond via de software van de Content Provider aan de makelaar. De makelaar kan vervolgens de noodzakelijk acties ondernemen om ervoor te zorgen dat het pand wel geaccepteerd wordt. Bijvoorbeeld door foto’s toe te voegen aan het betreffende pand. Wijzigt de makelaar het pand dan zal de Media Partner dit merken als hij de Summaries gaat verwerken. Het pand met foto’s wordt opnieuw opgehaald en het pand kan alsnog succesvol verwerkt worden.
De URL van een POST actie waarmee het pand wordt geweigerd ziet er voor versie 16.0 van de Connector, token ABCDEFG en Realtor ID 376 (uit de Summary uit stap C + D) en Real Estate Property ID 1365 (uit de Summary uit stap C + D) als volgt uit:
https://api.wazzupsoftware.com/OutputService.svc/16/0/ABCDEFG/realestate/?realtorid=376&id=1365&action=reject&message=Dit+pand+heeft+geen+foto%27s.+Voeg+foto%27s+toe+voor+een+succesvolle+verwerking.
Hieronder een C# code voorbeeld:
public void RejectRealEstatePropertyRetrieval(int realtorID, int realEstateProperyID, string message)
{
var url = string.Format(@"{0}OutputService.svc/16/0/{1}/realestate/?realtorid={2}&id={3}&action={4}&message={5}",
m_connectorURL, m_token, realtorID, realEstateProperyID, "reject", HttpUtility.UrlEncode(message));
var result = HttpLib.PostMessage<DefaultResult>(url);
if (!result.IsSuccess)
throw new Exception(result.ErrorMessage ?? "Unknown error message.");
}
Om alles nog eens samen te vatten zijn er een aantal scenario’s uitgewerkt. Een Media Partner implementeert één van deze scenario’s.
Deze scenario’s zullen ook worden gebruikt om naar te refereren in de communicatie tussen Kolibri en de Media Partners.
In dit scenario worden alle verzoeken voor Contracten automatisch geaccepteerd door de Connector.
De 4 stappen die telkens (1 á 2 keer per dag) doorlopen moeten worden zijn:
Voorwaarden voor dit scenario:
Noodzakelijke API rechten:
Media Partners consumeren de WREC door het aanroepen van de verschillende API methods zoals beschreven in deze Wiki. Een Media Partner ontwikkelt feitelijk een WREC Client applicatie, vaak een ‘connector’, ‘adapter’ of ‘import tool’ genoemd.
Om het ontwikkelen van zo’n WREC Client te versimpelen is de WREC Client demo applicatie ontwikkeld (in C#). Deze Visual Studio 2010 solution kan hier gedownload worden. Na het invullen van het juiste token in het bestand ‘program.cs’ op regel 16, haalt de applicatie Contracten, pand summaries en pand details op. De demo applicatie toont ook hoe verzoeken voor Contracten en contract beëindigingen opgehaald en verwerkt kunnen worden. Deze functionaliteit hoeft uiteraard alleen ontwikkeld te worden als ‘Auto Accept’ voor de betreffende Media Partner op false staat.
De complete demo applicatie waarmee Contracten verwerkt worden en panden opgehaald worden, bestaat uit zo’n 400 regels getypte code.
In welke volgorde moet ik de teksten van een pand weergeven?
De volgorde van de nodes in de XML/XSD zijn willekeurig. Normaal gesproken is dit de volgorde die de makelaar in Nederland gewend is:
Wanneer verdwijnt een pand uit ‘mijn feed’?
De Connector levert alleen actieve panden. Dit zijn panden die te koop, te huur of ter pacht zijn, verkocht onder voorbehoud of verhuurd onder voorbehoud zijn, verkocht zijn, maar niet langer dan 8 dagen, verhuurd zijn, maar niet langer dan 8 dagen, ingetrokken zijn, maar niet langer dan 8 dagen. Panden ‘verdwijnen’ dus automatisch als ze niet meer voldoen aan deze criteria.
In Kolibri kan de makelaar zelf ook het delen van een pand met een media partner stoppen. Op het moment dat een makelaar in Kolibri expliciet aangeeft dan het pand niet meer gedeeld moet worden verdwijnt deze DIRECT uit ‘de feed’.
Ik ben zowel AppXchange Partner als Mediapartner. Hoe kan ik de koppeling leggen tussen een object uit de Kolibri API en de Wazzup Real Estate Connector?
In de RealEstateProperty/PropertyInfo vind je een ForeignId en een ForeignAgencyId. Deze komen overeen met respectievelijk het ObjectAssignmentId en het RealEstateAgencyId