> For the complete documentation index, see [llms.txt](https://docs.opencityitalia.it/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.opencityitalia.it/stanza-del-cittadino/guida-alla-creazione-dei-servizi-digitali/creare-un-servizio/i-componenti/i-nested-form.md).

# I nested form

{% hint style="warning" %}
La gestione e l'aggiornamento di questi componenti è centralizzato e a carico di OpenCity Italia.

Puoi però effettuare alcune modifiche ai campi di un Nested form tramite [le logiche](/stanza-del-cittadino/guida-alla-creazione-dei-servizi-digitali/creare-un-servizio/le-funzioni/impostare-delle-azioni-automatiche-le-logiche.md).
{% endhint %}

La piattaforma permette di utilizzare un set di componenti standard, denominati ***nested form**,* che permettono di raccogliere dati in modo consistente tra i diversi servizi

Attraverso l'utilizzo di questi componenti, possiamo raccogliere dati in modo consistente tra i diversi servizi, mettendo a disposizione degli utenti funzioni come:

* funzioni di [precompilazione dati tra i servizi](/stanza-del-cittadino/guida-alla-creazione-dei-servizi-digitali/creare-un-servizio/le-funzioni/precompilazione-dei-dati.md#configurazione-del-once-only);
* [acquisizione di dati certificati via PDND](/stanza-del-cittadino/guida-alla-creazione-dei-servizi-digitali/creare-un-servizio/le-funzioni/precompilazione-dei-dati.md#integrazione-con-pdnd);
* visualizzazione e aggiornamento dei dati nel profilo utente;
* funzioni di acquisizione dati terze parti (es. ISEE).

OpenCity Italia mette a disposizione un elenco fornito di nested forms da utilizzare; per usufruire di queste funzioni, però, si consiglia di utilizzare quelli contrassegnati con "OC" e elencati qui:

<table data-full-width="true"><thead><tr><th>Dati raccolti</th><th>Nome del nested form</th><th>Property name</th><th data-hidden></th></tr></thead><tbody><tr><td>Anagrafica richiedente</td><td>OC - Richiedente</td><td>applicant</td><td></td></tr><tr><td>Anagrafica beneficiario persona fisica</td><td>OC - Beneficiario</td><td>beneficiary</td><td></td></tr><tr><td>Anagrafica beneficiario soggetto giuridico</td><td>OC - Soggetto giuridico</td><td>legal_entities</td><td></td></tr><tr><td>Anagrafica figli</td><td>OC - Figli</td><td>children</td><td></td></tr><tr><td>Anagrafica coniuge</td><td>OC - Coniuge</td><td>spouse</td><td></td></tr><tr><td>Anagrafica genitore</td><td>OC - Genitori</td><td>parents</td><td></td></tr><tr><td>Delega</td><td>OC - Delega</td><td>delegation</td><td></td></tr><tr><td>Residenza</td><td>OC - Residenza<br>Residenza (archetipo)</td><td>address</td><td></td></tr><tr><td>Cittadinanza</td><td>OC - Cittadinanza</td><td>citizenship</td><td></td></tr><tr><td>Esperienze lavorative</td><td>OC - Esperienze lavorative</td><td>work_experience</td><td></td></tr><tr><td>Titoli di studio</td><td>OC - Titoli di studio</td><td>educational_occupational_credential</td><td></td></tr><tr><td>ISEE Generico</td><td>OC - ISEE</td><td>economic_situation_indicator</td><td></td></tr><tr><td>ISEE Ordinario</td><td>OC - ISEE Ordinario</td><td>ordinary_economic_situation_indicator</td><td></td></tr><tr><td>Dati di accredito</td><td>OC - IBAN</td><td>bank_account</td><td></td></tr><tr><td>Veicoli</td><td>OC - Veicoli<br>OC - Veicoli (semplificato)</td><td>vehicles</td><td></td></tr><tr><td>Immobili</td><td>OC - Immobili</td><td>real_estate</td><td></td></tr><tr><td>Informativa privacy</td><td>OC - Informativa privacy</td><td>privacy_policy</td><td></td></tr><tr><td>Nucleo familiare</td><td>OC - Nucleo familiare</td><td></td><td></td></tr></tbody></table>

## Usare i nested form all'interno del modulo

Dalla colonna dei componenti seleziona quello chiamato "nested form".

<figure><img src="/files/AazONG4dPG6y4IvAHSVN" alt=""><figcaption></figcaption></figure>

Una volta trascinato nel modulo, seleziona nella voce "Form" del componente quello che vuoi utilizzare.

## Configurare l'ISEE per un minorenne

Usa questa configurazione quando il servizio richiede l'ISEE di un figlio minorenne, non del richiedente adulto. La chiamata PDND richiede il codice fiscale del minore (`fiscal_code_child`) in aggiunta a quello del richiedente.

### Prerequisiti

Il modulo deve raccogliere il codice fiscale del minore prima della sezione ISEE. Inserisci il nested form del minore in una pagina precedente del servizio:

* **OC - Beneficiario** (chiave API: `beneficiary`): se il minore è il beneficiario diretto del servizio;
* **OC - Figli** (chiave API: `children`): se il servizio coinvolge uno o più figli del richiedente, precompilati via PDND.

### Configurazione

1. Trascina nel modulo il nested form **OC - ISEE** e assegnagli la chiave API `economic_situation_indicator`.
2. Nella sezione "API" del componente, sotto "Custom properties", aggiungi queste proprietà:

| Proprietà           | Valore                                             |
| ------------------- | -------------------------------------------------- |
| `profile_block`     | `true`                                             |
| `eservice`          | `4f3d1f0e-1e2b-4c5a-8f3a-2b6e9f0c8d7e`             |
| `format`            | `minorenne`                                        |
| `fiscal_code_child` | percorso al codice fiscale del minore (vedi sotto) |

3. Per il valore di `fiscal_code_child`, usa il percorso corretto in base al nested form scelto:
   * Con **OC - Beneficiario**: `data.beneficiary.data.fiscal_code.data.fiscal_code`
   * Con **OC - Figli**: `data.children.data[0].fiscal_code.data.fiscal_code`

{% hint style="warning" %}
Il parametro `fiscal_code_child` è obbligatorio con il formato `minorenne`. Se non viene configurato, la chiamata PDND non restituisce l'ISEE del minore e il cittadino non può completare la pratica.
{% endhint %}

{% hint style="info" %}
Per verificare il percorso esatto dei campi nel tuo nested form, usa `console.log(data.[chiave_api])` nella sezione "Custom action" di una logica, come descritto nella pagina [Modificare i campi di un Nested Form](/stanza-del-cittadino/guida-alla-creazione-dei-servizi-digitali/creare-un-servizio/le-funzioni/modificare-i-campi-di-un-nested-form.md).
{% endhint %}

<figure><img src="/files/YMA0KwUYi0YJ6t4TP7eQ" alt=""><figcaption></figcaption></figure>

## Struttura dei dati

I dati inseriti nei Nested Form vengono organizzati secondo una struttura gerarchica che permette di individuare in modo preciso ogni informazione raccolta.

Ogni campo può essere richiamato tramite un **percorso univoco**, che indica dove si trova il dato all’interno del modulo compilato. Questi percorsi vengono utilizzati, per esempio, per applicare regole e condizioni nei moduli.

Il formato base è il seguente:

```
data.<property_name>.data.<campo>
```

Dove:

* **property\_name** identifica il nested form
* **campo** rappresenta la singola informazione inserita

Di seguito sono riportati i percorsi utilizzati per accedere ai singoli campi inseriti all’interno dei nested form.

<details>

<summary>OC - Richiedente</summary>

**property\_name:** applicant

***

#### **Dati anagrafici**

* **Nome** (path: `data.applicant.data.completename.data.name` )
* **Cognome** (path: `data.applicant.data.completename.data.surname`)
* **Genere** (path: `data.applicant.data.gender.data.gender` )
* **Codice Fiscale** (path: `data.applicant.data.fiscal_code`)
* **Data di nascita** (path: `data.applicant.data.Born.data.natoAIl`)
* **Luogo di nascita** (path: `data.applicant.data.Born.data.place_of_birth`)

#### **Residenza**

* **Indirizzo** (path: `data.applicant.data.address.data.street_address`)
* **Nr. civico** (path: `data.applicant.data.address.data.address_number`)
* **Paese** (path: `data.applicant.data.address.data.address_country`)
* **Provincia** (path: `data.applicant.data.address.data.county`)
* **Comune** (path: `data.applicant.data.address.data.address_locality`)
* **CAP** (path: `data.applicant.data.address.data.postal_code`)

#### **Contatti**

* **Numero di telefono cellulare** (path: `data.applicant.data.cell_number`)
* **Numero di telefono fisso** (path: `data.applicant.data.phone_number`)
* **Indirizzo email** (path: `data.applicant.data.email_address`)

</details>

<details>

<summary>OC - Beneficiario</summary>

**property\_name:** beneficiary

***

#### Dati anagrafici

* **Nome** (path: `data.beneficiary.data.given_name`)
* **Cognome** (path: `data.beneficiary.data.family_name`)
* **Luogo di nascita** (path: `data.beneficiary.data.birth_place`)
* **Data di nascita** (path: `data.beneficiary.data.birth_date`)
* **Genere** (path: `data.beneficiary.data.gender`)
* **Codice fiscale** (path: `data.beneficiary.data.tax_id`)

#### Residenza

* **Indirizzo** (path: `data.beneficiary.data.address.data.street_address`)
* **Nr. civico** (path: `data.beneficiary.data.address.data.address_number`)
* **Paese** (path: `data.beneficiary.data.address.data.address_country`)
* **Provincia** (path: `data.beneficiary.data.address.data.county`)
* **Comune** (path: `data.beneficiary.data.address.data.address_locality`)
* **CAP** (path: `data.beneficiary.data.address.data.postal_code`)

#### Nazionalità

* **Nazionalità** (path: `data.beneficiary.data.nationality`)
* **Nazione** (path: `data.beneficiary.data.nation`)

</details>

<details>

<summary>OC - Soggetto giuridico</summary>

**property\_name:** legal\_entities

***

#### Dati anagrafici impresa

* **Denominazione** (path: `data.legal_entities.data.legal_name`)
* **Codice destinatario (SDI)** (path: `data.legal_entities.data.additional_property_codice_destination`)
* **Partita IVA / Codice Fiscale** (path: `data.legal_entities.data.vat`)
* **Codice fiscale** (path: `data.legal_entities.data.tax_id`)
* **Numero di telefono** (path: `data.legal_entities.data.phone_number`)
* **Email** (path: `data.legal_entities.data.email`)
* **PEC** (path: `data.legal_entities.data.certified_email`)
* **Tipo di organizzazione** (path: `data.legal_entities.data.entity_type` )

#### Sede legale

* **Indirizzo** (path: `data.legal_entities.data.address.data.street_address`)
* **Nr. civico** (path: `data.legal_entities.address.data.address_number`)
* **Paese** (path: `data.legal_entities.address.data.address_country`)
* **Provincia** (path: `data.legal_entities.data.address.data.county`)
* **Comune** (path: `data.legal_entities.data.address.data.address_locality`)
* **CAP** (path: `data.legal_entities.data.address.data.postal_code`)

</details>

<details>

<summary>OC - Figli</summary>

**property\_name:** children (datagrid)

***

{% hint style="info" %}
Essendo un **datagrid**, ogni elemento dell’array (lista) rappresenta una riga. Se si vuole accedere ai dati di un figlio è necessario indicare l'indice della riga.

Il placeholder **`[i]` indica l’indice della riga**, quindi:

* `i = 0` → primo figlio (prima riga)
* `i = 1` → secondo figlio (seconda riga)
* ecc.
  {% endhint %}

#### Dati anagrafici

* **Nome** (path: `data.children.data.children[i].given_name`)
* **Cognome** (path: `data.children.data.children[i].family_name`)
* **Luogo di nascita** (path: `data.children.data.children[i].birth_place`)
* **Data di nascita** (path: `data.children.data.children[i].birth_date`)
* **Genere** (path: `data.children.data.children[i].gender`)
* **Codice fiscale** (path: `data.children.data.children[i].tax_id`)

#### Residenza

* **Indirizzo** (path: `data.children.data.children[i].address.data.street_address`)
* **Nr. civico** (path: `data.children.data.children[i].address.data.address_number`)
* **Paese** (path: `data.children.data.children[i].address.data.address_country`)
* **Provincia** (path: `data.children.data.children[i].address.data.county`)
* **Comune** (path: `data.children.data.children[i].address.data.address_locality`)
* **CAP** (path: `data.children.data.children[i].address.data.postal_code`)

#### Altri dati

* **Nazionalità** (path: `data.children.data.children[i].nationality`)
* **Permesso di soggiorno** (path: `data.children.data.children[i].residence_permit`)
* **Data scadenza permesso di soggiorno** (path: `data.children.data.children[i].residence_permit_expirationdate`)
* **Documento d’identità** (path: `data.children.data.children[i].identity_document`)
* **Data scadenza documento d’identità** (path: `data.children.data.children[i].identity_document_expirationdate`)

</details>

<details>

<summary>OC - Coniuge</summary>

**property\_name:** spouse

***

#### Dati anagrafici

* **Nome** (path: `data.spouse.data.given_name`)
* **Cognome** (path: `data.spouse.data.family_name`)
* **Luogo di nascita** (path: `data.spouse.data.birth_place`)
* **Data di nascita** (path: `data.spouse.data.birth_date`)
* **Genere** (path: `data.spouse.data.gender`)
* **Codice fiscale** (path: `data.spouse.data.tax_id`)

#### Residenza

* **Indirizzo** (path: `data.spouse.data.address.data.street_address`)
* **Nr. civico** (path: `data.spouse.data.address.data.address_number`)
* **Paese** (path: `data.spouse.data.address.data.address_country`)
* **Provincia** (path: `data.spouse.data.address.data.county`)
* **Comune** (path: `data.spouse.data.address.data.address_locality`)
* **CAP** (path: `data.spouse.data.address.data.postal_code`)

#### Altri dati

* **Nazionalità** (path: `data.spouse.data.nationality`)
* **Nazione** (path: `data.spouse.data.nation`)
* **Documento d’identità** (path: `data.spouse.data.identity_document`)
* **Data scadenza documento d’identità** (path: `data.spouse.data.identity_document_expirationdate`)
* **Permesso di soggiorno** (path: `data.spouse.data.residence_permit`)
* **Data scadenza permesso di soggiorno** (path: `data.spouse.data.residence_permit_expirationdate`)

</details>

<details>

<summary>OC - Genitori</summary>

**property\_name:** parents (datagrid)

***

{% hint style="info" %}
Essendo un **datagrid**, ogni elemento dell’array (lista) rappresenta una riga. Se si vuole accedere ai dati di un genitore è necessario indicare l'indice della riga.

Il placeholder **`[i]` indica l’indice della riga**, quindi:

* `i = 0` → primo genitore (prima riga)
* `i = 1` → secondo genitore (seconda riga)
  {% endhint %}

#### Dati anagrafici

* **Nome** (path: `data.parents.data.parents[i].given_name`)
* **Cognome** (path: `data.parents.data.parents[i].family_name`)
* **Luogo di nascita** (path: `data.parents.data.parents[i].birth_place`)
* **Data di nascita** (path: `data.parents.data.parents[i].birth_date`)
* **Genere** (path: `data.parents.data.parents[i].gender`)
* **Codice fiscale** (path: `data.parents.data.parents[i].tax_id`)

#### Residenza

* **Indirizzo** (path: `data.parents.data.parents[i].address.data.street_address`)
* **Nr. civico** (path: `data.parents.data.parents[i].address.data.address_number`)
* **Paese** (path: `data.parents.data.parents[i].address.data.address_country`)
* **Provincia** (path: `data.parents.data.parents[i].address.data.county`)
* **Comune** (path: `data.parents.data.parents[i].address.data.address_locality`)
* **CAP** (path: `data.parents.data.parents[i].address.data.postal_code`)

#### Altri dati

* **Nazionalità** (path: `data.parents.data.parents[i].nationality`)
* **Documento d’identità** (path: `data.parents.data.parents[i].identity_document`)
* **Data scadenza documento d’identità** (path: `data.parents.data.parents[i].identity_document_expirationdate`)

</details>

<details>

<summary>OC - Delega</summary>

**property\_name:** delegation

***

#### Documenti

* **Documento d’identità o passaporto** (path: `data.delegation.data.identity_document`)
* **Data scadenza documento d’identità o passaporto** (path: `data.delegation.data.identity_document_expirationdate`)
* **Delega del beneficiario** (path: `data.delegation.data.delegation_document`)
* **Data scadenza delega** (path: `data.delegation.data.delegation_document_expirationdate`)

</details>

<details>

<summary>OC - Residenza<br>Residenza (archetipo)</summary>

**property\_name:** address

***

#### Dati indirizzo

* **Indirizzo** (path: `data.address.data.street_address`)
* **Nr. civico** (path: `data.address.data.address_number`)
* **Paese** (path: `data.address.data.address_country`)
* **Provincia** (path: `data.address.data.county`)
* **Comune** (path: `data.address.data.address_locality`)
* **CAP** (path: `data.address.data.postal_code`)

{% hint style="info" %}
Questo nested form è riutilizzato all’interno di altri nested form. Per accedere ai campi, il path completo segue il seguente pattern:

`data.<nested_form>.data.address.data.<campo>`

Ad esempio, per accedere al **comune di residenza del beneficiario**, il path è:\
`data.beneficiary.data.address.data.address_locality`
{% endhint %}

</details>

<details>

<summary>OC - Cittadinanza</summary>

**property\_name:** citizenship (datagrid)

***

{% hint style="info" %}
Essendo un **datagrid**, ogni elemento dell’array (lista) rappresenta una riga. Ogni elemento dell’array rappresenta una cittadinanza della persona. Il placeholder **`[i]` indica l’indice della riga**:

* `i = 0` → prima cittadinanza
* `i = 1` → seconda cittadinanza
* ecc.
  {% endhint %}

#### Dati cittadinanza

* **Cittadinanza** (path: `data.citizenship.data.cittadinanza[i].data.nationality`)
* **Stato** (path: `data.citizenship.data.cittadinanza[i].data.country`)

</details>

<details>

<summary>OC - Esperienze lavorative</summary>

**property\_name:** work\_experience (datagrid)

***

{% hint style="info" %}
Essendo un **datagrid**, ogni elemento dell’array (lista) rappresenta una riga. Ogni riga rappresenta una singola esperienza lavorativa. Il placeholder **`[i]` indica l’indice della riga**:

* `i = 0` → prima esperienza
* `i = 1` → seconda esperienza
* ecc.
  {% endhint %}

#### Dati esperienza lavorativa

* **Nome dell'organizzazione** (path: `data.work_experience.data.work_experience[i].organization`)
* **Titolo del lavoro** (path: `data.work_experience.data.work_experience[i].job_title`)
* **Descrizione breve della mansione** (path: `data.work_experience.data.work_experience[i].description`)
* **Rapporto di lavoro in corso** (path: `data.work_experience.data.work_experience[i].is_current`)
* **Data di inizio** (path: `data.work_experience.data.work_experience[i].start_date`)
* **Data di fine** (path: `data.work_experience.data.work_experience[i].end_date`)
* **Causa di risoluzione del contratto** (path: `data.work_experience.data.work_experience[i].termination_reason`)
* **Tipo di contratto** (path: `data.work_experience.data.work_experience[i].employment_contract_type`)
* **Orario di servizio** (path: `data.work_experience.data.work_experience[i].work_hours`)

</details>

<details>

<summary>OC - Titoli di studio</summary>

**property\_name:** educational\_occupational\_credential (datagrid)

***

{% hint style="info" %}
Essendo un **datagrid**, ogni elemento dell’array (lista) rappresenta una riga. Ogni riga rappresenta un titolo di studio. Il placeholder **`[i]` indica l’indice della riga**:

* `i = 0` → primo titolo
* `i = 1` → secondo titolo
* ecc.
  {% endhint %}

#### Dati titolo di studio

* **Livello di istruzione** (path: `data.educational_occupational_credential.data.titoliDiStudio[i].data.educational_level`)
* **Titolo conseguito** (path: `data.educational_occupational_credential.data.titoliDiStudio[i].data.degree_title`)
* **Descrizione del titolo di studio** (path: `data.educational_occupational_credential.data.titoliDiStudio[i].data.description`)
* **Istituto** (path: `data.educational_occupational_credential.data.titoliDiStudio[i].data.educational_organization`)
* **Anno di conseguimento** (path: `data.educational_occupational_credential.data.titoliDiStudio[i].data.award_date`)
* **Votazione finale** (path: `data.educational_occupational_credential.data.titoliDiStudio[i].data.graduation_vote`)

</details>

<details>

<summary>OC - ISEE</summary>

**property\_name:** economic\_situation\_indicator

***

#### Dati ISEE

* **Importo** (path: `data.economic_situation_indicator.data.value`)
* **Data di scadenza** (path: `data.economic_situation_indicator.data.additional_credential_expirationdate`)
* **Attestazione ISEE** (path: `data.economic_situation_indicator.data.additional_credential`)

</details>

<details>

<summary>OC - ISEE Ordinario</summary>

**property\_name:** ordinary\_economic\_situation\_indicator

***

#### Dati ISEE

* **Importo ISEE** (path: `data.ordinary_economic_situation_indicator.data.isee`)
* **Numero protocollo DSU** (path: `data.ordinary_economic_situation_indicator.data.dsu_protocol_number`)
* **Data di presentazione ISEE** (path: `data.ordinary_economic_situation_indicator.data.submission_date`)
* **Data di scadenza ISEE** (path: `data.ordinary_economic_situation_indicator.data.valid_until`)

#### Nucleo familiare

**Nucleo familiare** (datagrid, **property\_name**: household)

{% hint style="info" %}
Essendo un **datagrid**, ogni elemento dell’array (lista) rappresenta una riga. Ogni riga rappresenta un componente del nucleo. Il placeholder **`[i]` indica l’indice della riga**:

* `i = 0` → primo componente del nucleo

* `i = 1` → secondo componente

* ecc.
  {% endhint %}

* **Nome** (path: `data.ordinary_economic_situation_indicator.data.household[i].data.name`)

* **Cognome** (path: `data.ordinary_economic_situation_indicator.data.household[i].data.surname`)

* **Codice fiscale** (path: `data.ordinary_economic_situation_indicator.data.household[i].data.fiscal_code`)

* **Rapporto di parentela** (path: `data.ordinary_economic_situation_indicator.data.household[i].data.relationship_with_declarant`)

* **ISEE corrente** (path: `data.ordinary_economic_situation_indicator.data.household[i].data.current`)

* **Attestazione PDF** (path: `data.ordinary_economic_situation_indicator.data.household[i].data.attestation_pdf`)

</details>

<details>

<summary>OC - IBAN</summary>

**property\_name:** bank\_account

***

#### Dati bancari

* **IBAN** (path: `data.bank_account.data.account_number`)
* **Codice SWIFT** (path: `data.bank_account.data.swift_code`)
* **Nome e cognome dell’intestatario** (path: `data.bank_account.data.owner`)
* **Nome istituto bancario** (path: `data.bank_account.data.bank_name`)

</details>

<details>

<summary>OC - Veicoli<br>OC - Veicoli (semplificato)</summary>

**property\_name:** vehicles (datagrid)

***

{% hint style="info" %}
Essendo un **datagrid**, ogni elemento dell’array (lista) rappresenta una riga. Ogni riga rappresenta un veicolo. Il placeholder **`[i]` indica l’indice della riga**:

* `i = 0` → primo veicolo
* `i = 1` → secondo veicolo
* ecc.
  {% endhint %}

#### Dati veicolo

* **Targa** (path: `data.vehicles.data.vehicles[i].license_plate_number`)
* **Marca** (path: `data.vehicles.data.vehicles[i].manufacturer`)
* **Modello** (path: `data.vehicles.data.vehicles[i].model`)
* **Tipo di alimentazione** (path: `data.vehicles.data.vehicles[i].fuel_type`)
* **Omologazione ambientale** (path: `data.vehicles.data.vehicles[i].emission_standard`)
* **Carta di circolazione** (path: `data.vehicles.data.vehicles[i].registration_document`)

</details>

<details>

<summary>OC - Immobili</summary>

**property\_name:** real\_estate (datagrid)

***

{% hint style="info" %}
Essendo un **datagrid**, ogni elemento dell’array (lista) rappresenta una riga. Ogni riga rappresenta un immobile. Il placeholder **`[i]` indica l’indice della riga**:

* `i = 0` → primo immobile
* `i = 1` → secondo immobile
* ecc.
  {% endhint %}

#### Dati immobile

* **Denominazione dell’immobile** (path: `data.real_estate[i].description`)

#### Indirizzo

* **Indirizzo** (path: `data.real_estate.data.real_estate[i].address.data.street_address`)
* **Nr. civico** (path: `data.real_estate.data.real_estate[i].address.data.address_number`)
* **Paese** (path: `data.real_estate.data.real_estate[i].address.data.address_country`)
* **Provincia** (path: `data.real_estate.data.real_estate[i].address.data.county`)
* **Comune** (path: `data.real_estate.data.real_estate[i].address.data.address_locality`)
* **CAP** (path: `data.real_estate.data.real_estate[i].address.data.postal_code`)

#### Dati catastali

* **Tipologia immobile** (path: `data.real_estate.data.real_estate[i].property_type`)
* **Codice catastale del Comune** (path: `data.real_estate.data.real_estate[i].cadastral_code`)
* **Sezione** (path: `data.real_estate.data.real_estate[i].section`)
* **Foglio** (path: `data.real_estate.data.real_estate[i].sheet`)
* **Particella o mappale** (path: `data.real_estate.data.real_estate[i].parcel`)
* **Subalterno** (path: `data.real_estate.data.real_estate[i].subunit`)
* **Volumetria del fabbricato** (path: `data.real_estate.data.real_estate[i].volume`)

</details>

<details>

<summary>OC - Informativa privacy</summary>

**property\_name:** privacy\_policy

***

#### Informativa privacy

* **HTML informativa** (path: `data.privacy_policy.data.html1`)
* **Ho letto e compreso l’informativa sulla privacy** (path: `data.privacy_policy.data.accepted_by_user`)
* **Link privacy (hidden)** (path: `data.privacy_policy.data.privacy_link`)

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.opencityitalia.it/stanza-del-cittadino/guida-alla-creazione-dei-servizi-digitali/creare-un-servizio/i-componenti/i-nested-form.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
