Documentazione per feed di importazione 2.0.0

Nel documento che segue descriviamo la struttura XML utilizzabile per la sincronizzazione degli annunci immobiliari da fonti esterne nei portali di Immobiliare.it S.p.A.

Questo documento è stato strutturato per suddividere le informazioni per argomenti, in modo da renderne più snella e agevole la consultazione.

Icone Importanti

Abbiamo introdotto alcune convenzioni a beneficio di sintesi.

IconaSignificatoPosizione in pagina
AnnuncioA sinistra
AstaA sinistra
Immobile all'astaA sinistra
ObbligatorioDi fianco all'XPath
DeprecatoSul lato sinistro di una nota
Link diretto alla sezione della paginaDi fianco al titolo
Link di approfondimentoSul lato destro del paragrafo
Link a sezione della paginaSul lato destro del paragrafo
Torna alla pagina principaleSul lato destro del paragrafo
Risorsa scaricabileSul lato destro del paragrafo
Pagina esternaSul lato destro del paragrafo

Formato XML

Immobiliare.it consente di importare automaticamente gli annunci delle agenzie, previo accordo commerciale, da gestionali o franchising.

Le modalità di invio delle informazioni sono approfondite in una pagina dedicata.

Nelle sezioni che seguono sono descritte le informazioni con cui potete integrare gli annunci, consigliamo di validare il feed risultante con lo schema XSD a vostra disposizione per lo sviluppo. La validazione è applicata su ogni annunci in ingresso, se non supera questo passaggio l'annuncio è scartato. E' quindi consigliabile validare il flusso dopo ogni modifica.

Ogni informazione, completa di valori compatibili, è contenuta nello schema XSD. La presente documentazione può quindi essere considerata una traduzione leggibile dello schema stesso.

Formati standard

Ogni volta che è stato necessario usare una specifica unità di grandezza abbiamo utilizzato standard universali e noti, possibilmente applicando specifiche ISO o le direttive W3C sul formato XML.

In quest'ottica, per identificare con sicurezza la posizione che ciascun elemento deve occupare all'interno del feed usiamo la notazione nota come XPath:

/feed/properties/property/building/@IDType

In generale

I nomi dei nodi e degli attributi XML devono essere scritti così come sono riportati, rispettando lettere maiuscole e minuscole. Nel tempo abbiamo cercato di raggruppare le informazioni in gruppi logici, per esempio gli attributi geografici sono organizzati all'interno di un contenitore //location.

Intestazione XML

Ogni chiamata o feed XML deve avere indicata la versione dello standard stesso (1.0), e dalla codifica del documento UTF-8.

<?xml version="1.0" encoding="UTF-8"?>

Numeri

Numeri interi o decimali sono espressi senza separatori delle migliaia. Secondo lo standard XML va usato il punto . come separatore decimale.Il segno è necessario solo per i numeri negativi

-41.8968348

Flag

Parecchi nodi e attributi possono assumere soltanto i valori Vero o Falso (campi di tipo boolean). Per essi i valori ammessi sono

true
false

è importante che si presentino tutti in minuscolo, non è necessario usare CDATA ed è sconsigliato inserire spazi o ritorni a capo prima o dopo questi valori, idealmente:

<price currency="EUR" reserved="false">1000000</price>
...
<workshop>false</workshop>

Il trattamento dei campi boolean è conforme allo standard XML definite da W3C.

w3c

Data e ora

Data e ora (campi di tipo dateTime) sono espresse secondo il formato ISO 8601:

2013-01-30T12:01:07

In altre parole: specificare l'anno in 4 cifre, trattino, mese a 2 cifre, trattino, giorno a 2 cifre, la T maiuscola, 2 cifre per l'ora (00-23), due punti, 2 cifre per i minuti (00-59), due punti, 2 cifre per i secondi (00-59).

Si noti il carattere T come separatore tra data e ora. Non è necessario specificare la Timezone (il fuso orario). Come riferimento rapido vi rimandiamo alla pagina Wikipedia.

Valuta

Sebbene Immobiliare.it preveda soltanto l'Euro come divisa ammessa, è sempre richiesto specificare la valuta secondo lo standard ISO 4217, consistente in tre caratteri maiuscoli.

EUR

Campi specifici

Entrando nei dettagli specifici di un immobile troverete informazioni peculiari di alcune categorie immobiliari. In altre parole troverete dei campi che hanno senso solo per determinati tipi di immobile e non per altri. Questi nodi sono contrassegnati dalle seguenti icone:

CategoriaPrevistaNon prevista
Residenziali
Palazzi / stabili
Garage / posti auto
Terreni
Uffici / coworking
Magazzini
Capannoni
negozi / locali commerciali
Cantieri / nuove costruzioni

Flussi batch (obsoleti)

Per compatibilità con il passato sono supportati flussi batch.

Inserimento o aggiornamento Immobile

Di seguito sono riportate le specifiche dei nodi xml da inviare per descrivere le caratteristiche di un annuncio immobiliare. Laddove non espressamente indicato l'assenza di un elemento o di un attributo in un feed viene interpretato con la volontà di rimuovere la relativa informazione.

//property

Nodo contenitore dell'immobile da pubblicare o aggiornare.

AttributoDescrizioneStato
@operationtipo di operazione richiesta
@IDid annuncio su immobiliare.itOpzionale

possibili valori per @operation:

Il valore write aggiorna le informazioni dell'immobile. Se l'immobile non viene trovato verrà creato un nuovo annuncio. Il valore archive aggiorna le informazioni dell'immobile e lo archivia.

Per le chiamate REST in Real Time questo nodo ha funzione di radice, quindi ogni chiamta REST può contenere uno e un solo annuncio:

<property ID="12345" operation="write">
  ...
</property>

In modalità Batch è necessario inviare l'intero set di annunci, avremo quindi un numero variabile di nodi property strutturati in questo modo:

<feed>
    <properties>
        <property ID="12345" operation="write">
            ....      
        </property>
        <property ID="54321" operation="write">
            ....      
        </property>
        ...
    </properties>
</feed>

//property/unique-id

id dell'immobile nel gestionale, viene utilizzato per identificare l'annuncio. In accoppiata con l'email dell'agenzia, sotto la responsabilità del mittente, deve risultare univoco.

//property/published-on

data di prima pubblicazione dell'immobile.

//property/date-updated

data di ultimo aggiornamento dell'immobile, deve essere sempre aggiornata dopo ogni modifica all'annuncio.

//property/agent

agenzia che richiede la pubblicazione dell'annuncio

AttributoDescrizioneStato
@idid dell'agenzia su immobiliare.itOpzionale

Di seguito un esempio:

<property operation="write">
  <unique-id><![CDATA[123456]]></unique-id>
  ...
  <agent>
    <office-name><![CDATA[Agenzia Test]]></office-name>
    <email>agency-email@example.com</email>
  </agent>
  ...
</property>

//property/agent/name

nome dell'agenzia che pubblica l'annuncio

//property/agent/email

Username dell'agenzia che pubblica l'annuncio (univoca per agenzia), combinata con //property/unique-id identifica univocamente l'annuncio.

//property/location

Nodo contenitore dei dati geografici dell'immobile

//property/pictures

Contenitore delle immagini dell'immobile.

//property/videos

Contenitore dei video dell'immobile.

//property/estates

Contenitore delle unità abitative in vendita.

//property/reference-code

Codice di riferimento dell'agenzia (max 255 caratteri), è un campo di testo libero a discrezione del cliente. Non è necessario garantirne l'univocità

//property/publish

Stato della visibilità, all'interno del portale Immobiliare.

Per garantire la visibilità su Immobiliare, inviare il nodo Publish. Se lo status è uguale a true, l'annuncio è pubblicato e quindi visibile sul portale Immobiliare. Se lo status è uguale a false, rimane visibile sul gestionale, ma non sul portale Immobiliare.

<publish>
    <portal id="immobiliare.it" status="true" />
</publish>

//property/publish/portal

contenitore delle informazioni relative alle extra-visibilità (l'agenzia deve essere abilitata all'invio). In assenza del noto publish la visibilità dell'annuncio resta inalterata.

AttributoDescrizioneStato
@idl'id del portale per cui si voglione impostare le extra-visibilità
@statusspecifica se l'annuncio deve essre pubblicato (true) o deve soltanto essere disponibile sul gestionale (false)

possibili valori per @id:

Esempio xml:

<publish>
    <portal id="immobiliare.it" status="true">
      <visibilities>
        <visibility op="active">premium</visibility>
        <visibility op="active">top</visibility>
        <visibility op="remove">showcase</visibility>
      </visibilities>
    </portal>
  </publish>

//property/publish/portal/visibilities

contenitore delle extra-visibilità specifiche di un portale (vengono scalate, se diponibili, dal plafond dell'agenzia).

//property/publish/portal/visibilities/visibility

specifica una singola extra-visibilità da aggiungere o rimuovere

AttributoDescrizioneStato
@opspecifica il tipo di operazione richiesta per una specifica extra-visibilità (default: active)

possibili valori per @op:

possibili valori per il nodo:

//property/transactions

contenitore delle informazioni relative a prezzo e tipo di contratto (vendita o affitto)

Di seguito un esempio:

<transactions>
    <transaction type="S">
      <price currency="EUR" reserved="false">140000</price>
    </transaction>
</transactions>

//property/transactions/transaction

AttributoDescrizioneStato
@typespecifica il contratto (affitto o vendita) con cui viene proposto l'immobile
@on-redeemaffitto con riscatto
@ownershipmodello di contratto
@ownership-quotaquota proprietà

possibili valori per @type:

possibili valori per @ownership:

@ownership-quota rappresenta la quota di proprietà ed è un campo di testo libero.

//property/transactions/transaction/price

prezzo dell'immobile

AttributoDescrizioneStato
@currencyvaluta (passare 'EUR')
@reservedspecifica se il prezzo è riservato, se true il prezzo sarà nascosto

//property/building

contenitore delle informazioni relative alla tipologia dell'immobile

AttributoDescrizioneStato
@IDTypeid della tipologia dell'immobile

L'elenco dei possibili valori, e la spiegazione di ciascuno, è disponibile qui

<building IDType="14" />

//property/building/status

stato dell'immobile.

Possibili valori:

//property/building/class

classe dell'immobile.

Possibili valori:

//property/features

Questo contenitore è destinato alle caratteristiche descrittive principali dell'immobile.

//property/extra-features

Contenitore destinato a caratteristiche più specifiche dell'immobile.

//property/extended

Estensione delle caratteristiche dell'immobile.

//property/documents

Contenitore dei documenti dell'immobile.

//property/blueprints

Contenitore delle planimetrie dell'immobile.

//property/raw-360s

Nodo contenitori delle immagini sferiche dell'annuncio.

//property/registrar-data/section

dati catastali: sezione

//property/registrar-data/sheet

dati catastali: foglio

//property/registrar-data/parcel

dati catastali: particella

//property/registrar-data/sub-parcel

dati catastali: subparticella

//property/registrar-data/sub

dati catastali: subalterno

//property/registrar-data/sub-2nd

dati catastali: subalterno 2

//property/registrar-data/attached

dati catastali: graffato

//property/registrar-data/revenue

dati catastali: Rendita catastale. Valore decimale espresso in Euro.

Inserimento o aggiornamento Asta

Di seguito riportiamo le specifiche dei vari nodi xml da inviare per impostare le varie caratteristiche di un'asta. Laddove non espressamente indicato l'assenza di un elemento o di un attributo in un feed viene interpretato con la volontà di rimuovere la relativa informazione.

//auction

Nodo contenitore degli elementi di tipo asta da pubblicare o aggiornare

AttributoDescrizioneStato
@operationtipo di operazione richiesta
@IDid annuncio su immobiliare.it
@source-typeMotivazione dell'asta
@typeTipo di procedura

possibili valori per @operation:

Il valore write aggiorna le informazioni dell'asta. Se l'asta non viene trovata verrà creato un nuovo annuncio. Il valore archive aggiorna le informazioni dell'asta e la archivia.

possibili valori per @source-type:

possibili valori per @type:

Per le chiamate REST in Real Time questo nodo ha funzione di radice, quindi ogni chiamata REST può contenere una e una sola asta:

<auction ID="12345" operation="write">
  ...
</auction>

In modalità Batch è necessario inviare l'intero set di aste, avremo quindi un numero variabile di nodi auction strutturati in questo modo:

<feed>
    <auctions>
        <auction ID="12345" operation="write">
            ....      
        </auction>
        <auction ID="54321" operation="write">
            ....      
        </auction>
        ...
    </auctions>
</feed>

//auction/unique-id

Identificativo dell'asta nel gestionale, viene utilizzato per identificare l'asta. In accoppiata con l'email dell'agenzia, sotto la responsabilità del mittente, deve risultare univoco.

//auction/reference-code

Codice di riferimento dell'agenzia (max 255 caratteri), è un campo di testo libero a discrezione del cliente. Non è necessario garantirne l'univocità.

//auction/published-on

data di prima pubblicazione dell'asta

//auction/date-updated

data di ultimo aggiornamento dell'asta, deve essere sempre aggiornata dopo ogni modifica all'annuncio.

//auction/agent

agenzia che richiede la pubblicazione dell'annuncio

AttributoDescrizioneStato
@idid dell'agenzia su immobiliare.it

Di seguito un esempio:

<auction operation="write">
  <unique-id><![CDATA[123456]]></unique-id>
  ...
  <agent>
    <office-name><![CDATA[Agenzia Test]]></office-name>
    <email>agency-email@example.com</email>
  </agent>
  ...
</auction>

//auction/descriptions/description

decrizione dell'asta

AttributoDescrizioneStato
@languagelingua della descrizione

//auction/descriptions/description/title

titolo dell'annuncio (max 255 caratteri)

//auction/descriptions/description/content

testo della descrizione

//auction/starting-price

Prezzo di partenza dell'asta

AttributoDescrizioneStato
@currencyvaluta (passare 'EUR')
@reservedspecifica se il prezzo è riservato, se true il prezzo sarà nascosto

//auction/minimum-bid

Rialzo minimo

AttributoDescrizioneStato
@currencyvaluta (passare 'EUR')
@reservedspecifica se il prezzo è riservato, se true il prezzo sarà nascosto

//auction/minimum-bid-challenge

Rialzo minimo gara

AttributoDescrizioneStato
@currencyvaluta (passare 'EUR')
@reservedspecifica se il prezzo è riservato, se true il prezzo sarà nascosto

//auction/success-price

Offerta minima

AttributoDescrizioneStato
@currencyvaluta (passare 'EUR')
@reservedspecifica se il prezzo è riservato, se true il prezzo sarà nascosto

//auction/court

Tribunale di riferimento per l'asta

AttributoDescrizioneStato
@namenome del tribunale
@typetipo del tribunale. Possibili valori sono 'court' e 'other'

Estremi del procedimento giudiziario

AttributoDescrizioneStato
@yearanno del procedimento
@numbernumero del procedimento

//auction/actors

Contenitore delle informazioni relativi agli attori del procedimento giudiziario

//auction/actors/actor

Attore dell'asta giudiziaria

AttributoDescrizioneStato
@typeTipo di attore
@IDid dell'attore

possibili valori per @type:

//auction/actors/actor/name

Nome dell'attore

//auction/actors/actor/lastname

Cognome dell'attore

//auction/actors/actor/tax-code

Codice fiscale dell'attore

//auction/actors/actor/phone

Telefono fisso dell'attore

//auction/actors/actor/mobile

Telefono cellulare dell'attore

//auction/actors/actor/email

Email dell'attore

//auction/actors/actor/fax

Fax dell'attore

//auction/actors/actor/selling-operations

Indica se l'attore è abilitato al'operazione di vendita (flag true o false)

//auction/actors/actor/estate-journey

Indica se l'attore è abilitato alla visita del bene (flag true o false)

//auction/notes

Note riguardanti l'asta giudiziaria

//auction/lot-number

Numero del lotto d'asta

//auction/selling-place

Contenitore della geografia, per l'indirizzo del luogo di vendita.

//auction/depot-conditions

Informazioni sul deposito cauzionale

//auction/depot-out-of-date

Termine presentazione

//auction/depot-bills

Deposito conto spese, in Euro (EUR). Può contenere valori decimali.

//auction/real-value

Valore dell'immobile da perizia, in Euro (EUR). Può contenere valori decimali.

//auction/ransom

Valore della cauzione, in Euro (EUR). Può contenere valori decimali.

//auction/ransom-bill

Spese cauzione, in Euro (EUR). Può contenere valori decimali.

//auction/practice

description

//auction/show-place

Luogo di presentazione dell'asta

//auction/reference-info

Informazioni sul referente dell'asta

//auction/events

Nodo contenitore degli eventi legati all'asta. E' il calendario con le date in cui sono previste le aste.

//auction/events/event

Singolo evento legato all'asta

AttributoDescrizioneStato
@typeTipo di evento
@statusStato dell'evento
@modemodalità di svolgimento dell'evento

possibili valori per @type:

possibili valori per @status:

possibili valori per @mode:

//auction/events/event/date

Data di svolgimento dell'evento

//auction/events/event/starting-price

Prezzo base

AttributoDescrizioneStato
@currencyvaluta (passare 'EUR')
@reservedspecifica se il prezzo è riservato, se true il prezzo sarà nascosto

//auction/documents

Contenitore dei documenti dell'asta.

//auction/raw-360s

Nodo contenitori delle immagini sferiche dell'annuncio.

//auction/publish/portal

contenitore delle informazioni relative alle extra-visibilità (l'agenzia deve essere abilitata all'invio). In assenza del nodo publish la visibilità dell'annuncio resta inalterata.

AttributoDescrizioneStato
@idl'id del portale per cui si vogliono impostare le extra-visibilità
@statusspecifica se inserire l'annuncio in immobiliare (true) o solo in Getrix (false)

possibili valori per @id:

Esempio xml:

<publish>
    <portal id="immobiliare.it" status="true">
      <visibilities>
        <visibility op="active">premium</visibility>
        <visibility op="active">top</visibility>
        <visibility op="remove">showcase</visibility>
      </visibilities>
    </portal>
  </publish>

//auction/publish/portal/visibilities

contenitore delle extra-visibilità specifiche di un portale

//auction/publish/portal/visibilities/visibility

specifica una singola extra-visibilità che si vuole aggiungere o rimuovere

AttributoDescrizioneStato
@opspecifica il tipo di operazione richiesta per una specifica extra-visibilità (default: active)

possibili valori per @op:

possibili valori per il nodo:

//auction/estates

Nodo contenitore degli immobili dell'asta

//auction/register

Informazioni di registro dell'asta (lookup). Possibili valori:

Categoria legale degli immobili. Possibili valori:

Tipo di contribuzione. Possibili valori:

Contenitore di link relativi all'asta

Descrizione del link

AttributoDescrizioneStato
@urlurl relativa al link da mostrare
Immobiliare.it