> 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>ISEE Minorenni</td><td>OC - ISEE Minorenni</td><td>economic_situation_indicator_minor</td><td></td></tr><tr><td>ICEF</td><td>OC - ICEF</td><td>economic_situation_indicator_icef</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>family_unit</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="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FtWbtdSJwIkNwXIWzQZGi%2Fimage.png?alt=media&amp;token=c07daa40-efb1-41f2-ade3-a1ecc0e531b3" alt=""><figcaption></figcaption></figure>

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

{% hint style="info" %}
Il Nested Form **OC - ISEE Minorenni** richiede una configurazione aggiuntiva oltre al trascinamento e alla selezione del Form: [vedi Configurare l'ISEE per un minorenne](#configurare-lisee-per-un-minorenne).
{% endhint %}

## 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

{% hint style="info" %}
Per modificare i campi di un Nested Form il valore da inserire nel codice è l'ultimo segmento del path. Ad esempio, per il campo "Comune" del beneficiario (path `data.beneficiary.data.address.data.address_locality`), il valore da usare è `address_locality`.

Vedi [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) per la procedura completa.
{% endhint %}

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

***

<div><figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2F8oqDFG0Sl8c9LKbzdiBd%2FScreenshot%202026-07-30%20alle%2014.57.22.png?alt=media&amp;token=8aedcdcf-28a2-41f3-be40-9fb8c3c30d7b" alt=""><figcaption></figcaption></figure> <figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2F3K6etlHSA1sZ2yZVLCC8%2FScreenshot%202026-07-30%20alle%2014.57.32.png?alt=media&amp;token=d2aa44cf-4c7d-4acc-8c65-323b3c2b656e" alt=""><figcaption></figcaption></figure></div>

#### **Dati anagrafici**

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

#### **Residenza**

* **Residenza** (property\_name: **`html12`**; path: `data.applicant.data.address.html12`)
* **Indirizzo** (property name: **`address`**; path: `data.applicant.data.address.data.address`)
* **Nr. civico** (property name: **`house_number`**; path: `data.applicant.data.address.data.house_number`)
* **Paese** (property name: **`country`**; path: `data.applicant.data.address.data.country`)
* **Provincia** (property name: **`county`**; path: `data.applicant.data.address.data.county`)
* **Comune** (property name: **`municipality`**; path: `data.applicant.data.address.data.municipality`)
* **CAP** (property name: **`postal_code`**; path: `data.applicant.data.address.data.postal_code`)

#### **Contatti**

* **Contatti** (property name: **`html10`**; path: `data.applicant.data.completename.data.html10`)
* **Numero di telefono cellulare** (property name: **`cell_number`**; path: `data.applicant.data.cell_number`)
* **Numero di telefono fisso** (property name: **`phone_number`**; path: `data.applicant.data.phone_number`)
* **Indirizzo email** (property name: **`email_address`**; path: `data.applicant.data.email_address`)

</details>

<details>

<summary>OC - Beneficiario</summary>

**property\_name:** beneficiary

***

<div><figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FgUMixwK4Km0P3edMmPRV%2FScreenshot%202026-07-30%20alle%2015.01.02.png?alt=media&amp;token=df2e5282-d036-47d2-b2a2-54fca7ff62b4" alt=""><figcaption></figcaption></figure> <figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FPiqXsVMSkjkfSMjRQ7b2%2FScreenshot%202026-07-30%20alle%2015.01.11.png?alt=media&amp;token=d8f29406-989c-45ea-8752-c7aff275c532" alt=""><figcaption></figcaption></figure></div>

#### Dati anagrafici

* **Nome** (property\_name: **given\_name**; path: `data.beneficiary.data.given_name`)
* **Cognome** (property\_name: **family\_name**; path: `data.beneficiary.data.family_name`)
* **Luogo di nascita** (property\_name: **birth\_place**; path: `data.beneficiary.data.birth_place`)
* **Data di nascita** (property\_name: **birth\_date**; path: `data.beneficiary.data.birth_date`)
* **Genere** (property\_name: **gender**; path: `data.beneficiary.data.gender`)
* **Codice fiscale** (property\_name: **tax\_id**; path: `data.beneficiary.data.tax_id`)

#### Residenza

* **Residenza** (property\_name: **html12**; path: `data.beneficiary.data.address.data.html12`)
* **Indirizzo** (property\_name: **street\_address**; path: `data.beneficiary.data.address.data.street_address`)
* **Nr. civico** (property\_name: **address\_number**; path: `data.beneficiary.data.address.data.address_number`)
* **Paese** (property\_name: **address\_country**; path: `data.beneficiary.data.address.data.address_country`)
* **Provincia** (property\_name: **county**; path: `data.beneficiary.data.address.data.county`)
* **Comune** (property\_name: **address\_locality**; path: `data.beneficiary.data.address.data.address_locality`)
* **CAP** (property\_name: **postal\_code**; path: `data.beneficiary.data.address.data.postal_code`)

#### Nazionalità

* **Nazionalità** (property\_name: **nationality**; path: `data.beneficiary.data.nationality`)
* **Nazione** (property\_name: **nation**; path: `data.beneficiary.data.nation`)

</details>

<details>

<summary>OC - Soggetto giuridico</summary>

**property\_name:** legal\_entities

***

<div><figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2F3bt4b7EQ6txjifgClNv6%2FScreenshot%202026-07-30%20alle%2015.02.55.png?alt=media&amp;token=7b4e8dab-6fd7-4ca9-8017-ec6b4794d1b3" alt=""><figcaption></figcaption></figure> <figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FhxqPqqSmkuQHqJbP2Kku%2FScreenshot%202026-07-30%20alle%2015.03.04.png?alt=media&amp;token=b6b8a9f6-d5a5-4945-9c26-79596d59b271" alt=""><figcaption></figcaption></figure></div>

#### Dati anagrafici impresa

* **Denominazione** (property\_name: **legal\_name**; path: `data.legal_entities.data.legal_name`)
* **Codice destinatario (SDI)** (property\_name: **additional\_property\_codice\_destination**; path: `data.legal_entities.data.additional_property_codice_destination`)
* **Partita IVA / Codice Fiscale** (property\_name: **vat**; path: `data.legal_entities.data.vat`)
* **Codice fiscale** (property\_name: **tax\_id**; path: `data.legal_entities.data.tax_id`)
* **Numero di telefono** (property\_name: **phone\_number**; path: `data.legal_entities.data.phone_number`)
* **Email** (property\_name: **email**; path: `data.legal_entities.data.email`)
* **PEC** (property\_name: **certified\_email**; path: `data.legal_entities.data.certified_email`)
* **Tipo di organizzazione** (property\_name: **entity\_type**; path: `data.legal_entities.data.entity_type`)

#### Sede legale

* **Sede legale** (property\_name: **html12**; path: `data.legal_entities.data.address.data.html12`)
* **Indirizzo** (property\_name: **street\_address**; path: `data.legal_entities.data.address.data.street_address`)
* **Nr. civico** (property\_name: **address\_number**; path: `data.legal_entities.data.address.data.address_number`)
* **Paese** (property\_name: **address\_country**; path: `data.legal_entities.data.address.data.address_country`)
* **Provincia** (property\_name: **county**; path: `data.legal_entities.data.address.data.county`)
* **Comune** (property\_name: **address\_locality**; path: `data.legal_entities.data.address.data.address_locality`)
* **CAP** (property\_name: **postal\_code**; path: `data.legal_entities.data.address.data.postal_code`)

</details>

<details>

<summary>OC - Figli</summary>

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

***

<div><figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FxctwOzYTGXJGfExyGT4c%2FScreenshot%202026-07-30%20alle%2015.06.36.png?alt=media&amp;token=982b40c6-d2fb-4be4-a3b3-0eeba1d6771c" alt=""><figcaption></figcaption></figure> <figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FDGplkHNkzkzk4K4gU6Rk%2FScreenshot%202026-07-30%20alle%2015.07.04.png?alt=media&amp;token=8c035882-8371-4dd6-aab3-881353c0a400" alt=""><figcaption></figcaption></figure></div>

{% 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** (property\_name: **given\_name**; path: `data.children.data.children[i].given_name`)
* **Cognome** (property\_name: **family\_name**; path: `data.children.data.children[i].family_name`)
* **Luogo di nascita** (property\_name: **birth\_place**; path: `data.children.data.children[i].birth_place`)
* **Data di nascita** (property\_name: **birth\_date**; path: `data.children.data.children[i].birth_date`)
* **Genere** (property\_name: **gender**; path: `data.children.data.children[i].gender`)
* **Codice fiscale** (property\_name: **tax\_id**; path: `data.children.data.children[i].tax_id`)

#### Residenza

* **Residenza del figlio/a** (property\_name: **html12**; path: `data.children.data.children[i].address.data.html12`)
* **Indirizzo** (property\_name: **street\_address**; path: `data.children.data.children[i].address.data.street_address`)
* **Nr. civico** (property\_name: **address\_number**; path: `data.children.data.children[i].address.data.address_number`)
* **Paese** (property\_name: **address\_country**; path: `data.children.data.children[i].address.data.address_country`)
* **Provincia** (property\_name: **county**; path: `data.children.data.children[i].address.data.county`)
* **Comune** (property\_name: **address\_locality**; path: `data.children.data.children[i].address.data.address_locality`)
* **CAP** (property\_name: **postal\_code**; path: `data.children.data.children[i].address.data.postal_code`)

#### Altri dati

* **Nazionalità** (property\_name: **nationality**; path: `data.children.data.children[i].nationality`)
* **Permesso di soggiorno** (property\_name: **residence\_permit**; path: `data.children.data.children[i].residence_permit`)
* **Data scadenza permesso di soggiorno** (property\_name: **residence\_permit\_expirationdate**; path: `data.children.data.children[i].residence_permit_expirationdate`)
* **Documento d’identità** (property\_name: **identity\_document**; path: `data.children.data.children[i].identity_document`)
* **Data scadenza documento d’identità** (property\_name: **identity\_document\_expirationdate**; path: `data.children.data.children[i].identity_document_expirationdate`)

</details>

<details>

<summary>OC - Coniuge</summary>

**property\_name:** spouse

***

<div><figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2Fz6axVPewnIkUEsXuE5Pf%2FScreenshot%202026-07-30%20alle%2015.08.26.png?alt=media&amp;token=c7229253-753e-4501-a393-e10b9567e0a3" alt=""><figcaption></figcaption></figure> <figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FaSPztfGXuPlzeMIDUIXz%2FScreenshot%202026-07-30%20alle%2015.08.36.png?alt=media&amp;token=b6811aa4-5587-4f8f-9d5f-b1b34ada1dc8" alt=""><figcaption></figcaption></figure></div>

#### Dati anagrafici

* **Nome** (property\_name: **given\_name**; path: `data.spouse.data.given_name`)
* **Cognome** (property\_name: **family\_name**; path: `data.spouse.data.family_name`)
* **Luogo di nascita** (property\_name: **birth\_place**; path: `data.spouse.data.birth_place`)
* **Data di nascita** (property\_name: **birth\_date**; path: `data.spouse.data.birth_date`)
* **Genere** (property\_name: **gender**; path: `data.spouse.data.gender`)
* **Codice fiscale** (property\_name: **tax\_id**; path: `data.spouse.data.tax_id`)

#### Residenza

* **Residenza** (property\_name: **html12**; path: `data.spouse.data.address.data.html12`)
* **Indirizzo** (property\_name: **street\_address**; path: `data.spouse.data.address.data.street_address`)
* **Nr. civico** (property\_name: **address\_number**; path: `data.spouse.data.address.data.address_number`)
* **Paese** (property\_name: **address\_country**; path: `data.spouse.data.address.data.address_country`)
* **Provincia** (property\_name: **county**; path: `data.spouse.data.address.data.county`)
* **Comune** (property\_name: **address\_locality**; path: `data.spouse.data.address.data.address_locality`)
* **CAP** (property\_name: **postal\_code**; path: `data.spouse.data.address.data.postal_code`)

#### Altri dati

* **Nazionalità** (property\_name: **nationality**; path: `data.spouse.data.nationality`)
* **Nazione** (property\_name: **nation**; path: `data.spouse.data.nation`)
* **Documento d’identità** (property\_name: **identity\_document**; path: `data.spouse.data.identity_document`)
* **Data scadenza documento d’identità** (property\_name: **identity\_document\_expirationdate**; path: `data.spouse.data.identity_document_expirationdate`)
* **Permesso di soggiorno** (property\_name: **residence\_permit**; path: `data.spouse.data.residence_permit`)
* **Data scadenza permesso di soggiorno** (property\_name: **residence\_permit\_expirationdate**; path: `data.spouse.data.residence_permit_expirationdate`)

</details>

<details>

<summary>OC - Genitori</summary>

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

***

<div><figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FYyGFHPNDTiJbgqH6M18q%2FScreenshot%202026-07-30%20alle%2015.09.47.png?alt=media&amp;token=e77fb057-15a2-40d2-bb6e-8ded699ebfcb" alt=""><figcaption></figcaption></figure> <figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FKMLDDU4JdZ7eEOfvuh3F%2FScreenshot%202026-07-30%20alle%2015.09.59.png?alt=media&amp;token=602b93a6-f90c-4f45-9e15-d8d8b807fa2d" alt=""><figcaption></figcaption></figure></div>

{% 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** (property\_name: **given\_name**; path: `data.parents.data.parents[i].given_name`)
* **Cognome** (property\_name: **family\_name**; path: `data.parents.data.parents[i].family_name`)
* **Luogo di nascita** (property\_name: **birth\_place**; path: `data.parents.data.parents[i].birth_place`)
* **Data di nascita** (property\_name: **birth\_date**; path: `data.parents.data.parents[i].birth_date`)
* **Genere** (property\_name: **gender**; path: `data.parents.data.parents[i].gender`)
* **Codice fiscale** (property\_name: **tax\_id**; path: `data.parents.data.parents[i].tax_id`)

#### Residenza

* **Residenza** (property\_name: **html12**; path: `data.parents.data.parents[i].address.data.html12`)
* **Indirizzo** (property\_name: **street\_address**; path: `data.parents.data.parents[i].address.data.street_address`)
* **Nr. civico** (property\_name: **address\_number**; path: `data.parents.data.parents[i].address.data.address_number`)
* **Paese** (property\_name: **address\_country**; path: `data.parents.data.parents[i].address.data.address_country`)
* **Provincia** (property\_name: **county**; path: `data.parents.data.parents[i].address.data.county`)
* **Comune** (property\_name: **address\_locality**; path: `data.parents.data.parents[i].address.data.address_locality`)
* **CAP** (property\_name: **postal\_code**; path: `data.parents.data.parents[i].address.data.postal_code`)

#### Altri dati

* **Nazionalità** (property\_name: **nationality**; path: `data.parents.data.parents[i].nationality`)
* **Documento d’identità** (property\_name: **identity\_document**; path: `data.parents.data.parents[i].identity_document`)
* **Data scadenza documento d’identità** (property\_name: **identity\_document\_expirationdate**; path: `data.parents.data.parents[i].identity_document_expirationdate`)

</details>

<details>

<summary>OC - Delega</summary>

**property\_name:** delegation

***

<figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2F0md14SKp8ikiojrOVutZ%2Fimage.png?alt=media&amp;token=85f26801-2e9d-4866-b2c3-028a851883fe" alt=""><figcaption></figcaption></figure>

* **Documento d’identità** (property\_name: **identity\_document**; path: `data.delegation.data.identity_document`)
* **Data scadenza documento d’identità** (property\_name: **identity\_document\_expirationdate**; path: `data.delegation.data.identity_document_expirationdate`)
* **Delega del beneficiario** (property\_name: **delegation\_document**; path: `data.delegation.data.delegation_document`)
* **Data scadenza delega** (property\_name: **delegation\_document\_expirationdate**; path: `data.delegation.data.delegation_document_expirationdate`)

</details>

<details>

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

**property\_name:** address

***

<figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2F9sMg6iQ1OTSG5aGHxlxX%2Fimage.png?alt=media&amp;token=ddd0e919-ae97-4dc4-b276-47dcba5278c2" alt=""><figcaption></figcaption></figure>

* **Indirizzo** (property\_name: **street\_address**; path: `data.address.data.street_address`)
* **Nr. civico** (property\_name: **address\_number**; path: `data.address.data.address_number`)
* **Paese** (property\_name: **address\_country**; path: `data.address.data.address_country`)
* **Provincia** (property\_name: **county**; path: `data.address.data.county`)
* **Comune** (property\_name: **address\_locality**; path: `data.address.data.address_locality`)
* **CAP** (property\_name: **postal\_code**; 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)*

***

<figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FmV09yYYv3eqJjiyQ2F7j%2Fimage.png?alt=media&amp;token=1a1bfb93-2330-4cfe-ad10-00d3e43aea95" alt=""><figcaption></figcaption></figure>

{% 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 %}

* **Cittadinanza** (property\_name: **nationality**; path: `data.citizenship.data.cittadinanza[i].data.nationality`)

* **Stato** (property\_name: **country**; path: `data.citizenship.data.cittadinanza[i].data.country`)

</details>

<details>

<summary>OC - Esperienze lavorative</summary>

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

***

<div><figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FJEMxmXCPKYaCrTWC2Mwv%2FScreenshot%202026-07-30%20alle%2015.18.09.png?alt=media&amp;token=72d6c86d-32df-4908-ab6d-a4ba26b846b9" alt=""><figcaption></figcaption></figure> <figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2F68BqGSERmv5G8UnMxZOl%2FScreenshot%202026-07-30%20alle%2015.18.22.png?alt=media&amp;token=aeff84de-e6fa-41f6-be2e-652a34ae273b" alt=""><figcaption></figcaption></figure></div>

{% 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 %}

* **Nome dell'organizzazione** (property\_name: **organization**; path: `data.work_experience.data.work_experience[i].organization`)

* **Titolo del lavoro** (property\_name: **job\_title**; path: `data.work_experience.data.work_experience[i].job_title`)

* **Descrizione breve della mansione** (property\_name: **description**; path: `data.work_experience.data.work_experience[i].description`)

* **Rapporto di lavoro in corso** (property\_name: **is\_current**; path: `data.work_experience.data.work_experience[i].is_current`)

* **Data di inizio** (property\_name: **start\_date**; path: `data.work_experience.data.work_experience[i].start_date`)

* **Data di fine** (property\_name: **end\_date**; path: `data.work_experience.data.work_experience[i].end_date`)

* **Causa di risoluzione del contratto** (property\_name: **termination\_reason**; path: `data.work_experience.data.work_experience[i].termination_reason`)

* **Tipo di contratto** (property\_name: **employment\_contract\_type**; path: `data.work_experience.data.work_experience[i].employment_contract_type`)

* **Orario di servizio** (property\_name: **work\_hours**; path: `data.work_experience.data.work_experience[i].work_hours`)

</details>

<details>

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

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

***

<figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FAcypTXQcJXCqh27lPiSE%2Fimage.png?alt=media&amp;token=633b1550-d8b3-4384-b28f-265c5a0a3732" alt=""><figcaption></figcaption></figure>

{% 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** (property\_name: **educational\_level**; path: `data.educational_occupational_credential.data.titoliDiStudio[i].data.educational_level`)
* **Titolo conseguito** (property\_name: **degree\_title**; path: `data.educational_occupational_credential.data.titoliDiStudio[i].data.degree_title`)
* **Descrizione del titolo di studio** (property\_name: **description**; path: `data.educational_occupational_credential.data.titoliDiStudio[i].data.description`)
* **Istituto** (property\_name: **educational\_organization**; path: `data.educational_occupational_credential.data.titoliDiStudio[i].data.educational_organization`)
* **Anno di conseguimento** (property\_name: **award\_date**; path: `data.educational_occupational_credential.data.titoliDiStudio[i].data.award_date`)
* **Votazione finale** (property\_name: **graduation\_vote**; path: `data.educational_occupational_credential.data.titoliDiStudio[i].data.graduation_vote`)

</details>

<details>

<summary>OC - Nucleo Familiare</summary>

**property\_name:** family\_unit (datagrid)

***

<figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FhT4cVCXYq5VO0T0AqavR%2Fimage.png?alt=media&amp;token=140679a8-fcc6-4e27-a1c2-3070d4968de8" alt=""><figcaption></figcaption></figure>

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

* `i = 0` → primo componente del nucleo

* `i = 1` → secondo componente

* ecc.
  {% endhint %}

* **Nome** (property\_name: **given\_name**; path: `data.family_unit.data.family_unit[i].given_name`)

* **Cognome** (property\_name: **family\_name**; path: `data.family_unit.data.family_unit[i].family_name`)

* **Codice fiscale** (property\_name: **tax\_id**; path: `data.family_unit.data.family_unit[i].tax_id`)

* **Data di nascita** (property\_name: **birth\_date**; path: `data.family_unit.data.family_unit[i].birth_date`)

* **Legame con l'intestatario del nucleo familiare** (property\_name: **related\_to**; path: `data.family_unit.data.family_unit[i].related_to`)

</details>

<details>

<summary>OC - ISEE</summary>

{% hint style="warning" %}
L'OC - ISEE (nested form `economic_situation_indicator`) è stato sostituito da **OC - ISEE Ordinario** (`ordinary_economic_situation_indicator`), che include anche i componenti del nucleo familiare. Si raccomanda di usare quest'ultimo nelle nuove configurazioni.
{% endhint %}

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

***

<figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FtNoYmXDbOBPBQNm9hEUj%2Fimage.png?alt=media&amp;token=331d38b0-f327-4787-bd44-a7f9ecda2250" alt=""><figcaption></figcaption></figure>

* **Importo** (property\_name: **value**; path: `data.economic_situation_indicator.data.value`)
* **Data di scadenza** (property\_name: **additional\_credential\_expirationdate**; path: `data.economic_situation_indicator.data.additional_credential_expirationdate`)
* **Documenti allegati** (property\_name: html20; path: `data.economic_situation_indicator.data.html20`)
* **Attestazione ISEE** (property\_name: **additional\_credential**; path: `data.economic_situation_indicator.data.additional_credential`)

</details>

<details>

<summary>OC - ISEE Ordinario</summary>

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

***

<div><figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FnggZ4oVgIfGqgca6lTih%2FScreenshot%202026-07-30%20alle%2015.22.59.png?alt=media&amp;token=4f81d54d-28c8-4121-9ea7-38c0ae811f9a" alt=""><figcaption></figcaption></figure> <figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FLcBLd92IqPsuZ1ucBdDl%2FScreenshot%202026-07-30%20alle%2015.23.09.png?alt=media&amp;token=b0466d95-a4fa-4b77-b032-e95bd9e8aaba" alt=""><figcaption></figcaption></figure></div>

* **Importo ISEE** (property\_name: **isee**; path: `data.ordinary_economic_situation_indicator.data.isee`)
* **Numero protocollo DSU** (property\_name: **dsu\_protocol\_number**; path: `data.ordinary_economic_situation_indicator.data.dsu_protocol_number`)
* **Data di presentazione ISEE** (property\_name: **submission\_date**; path: `data.ordinary_economic_situation_indicator.data.submission_date`)
* **Data di scadenza ISEE** (property\_name: **valid\_until**; 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** (property\_name: **name**; path: `data.ordinary_economic_situation_indicator.data.household[i].data.name`)

* **Cognome** (property\_name: **surname**; path: `data.ordinary_economic_situation_indicator.data.household[i].data.surname`)

* **Codice fiscale** (property\_name: **fiscal\_code**; path: `data.ordinary_economic_situation_indicator.data.household[i].data.fiscal_code`)

* **Rapporto di parentela** (property\_name: **relationship\_with\_declarant**; path: `data.ordinary_economic_situation_indicator.data.household[i].data.relationship_with_declarant`)

* **ISEE corrente** (property\_name: **current**; path: `data.ordinary_economic_situation_indicator.data.household[i].data.current`)<br>

* **Attestazione PDF** (property\_name: **attestation\_pdf**; path: `data.ordinary_economic_situation_indicator.data.household[i].data.attestation_pdf`)

</details>

<details>

<summary>OC - ISEE Minorenni </summary>

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

{% hint style="info" %}
Usa questo nested form quando l'ISEE riguarda un figlio minorenne, non il richiedente adulto. A differenza di **OC - ISEE Ordinario**, include il campo `fiscal_code_child` per indicare il codice fiscale del minore a cui si riferisce l'attestazione, e il nucleo familiare non prevede il campo "ISEE corrente".

Per la configurazione della chiamata PDND, vedi la sezione "[Configurare l'ISEE per un minorenne](#configurare-lisee-per-un-minorenne)".
{% endhint %}

<figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2F5BcJo8ipBb5pLvU19dFA%2FISEE%20Minorenni.png?alt=media&amp;token=027d08cf-49ce-4408-a83e-0970456dfe57" alt=""><figcaption></figcaption></figure>

Dati ISEE

* **Importo ISEE minorenne** (property\_name: **isee\_min**; path: `data.economic_situation_indicator_minor.data.isee_min`)
* **Numero protocollo DSU** (property\_name: **dsu\_protocol\_number**; path: `data.economic_situation_indicator_minor.data.dsu_protocol_number`)
* **Data di presentazione dell'ISEE** (property\_name: **submission\_date**; path: `data.economic_situation_indicator_minor.data.submission_date`)
* **Data di scadenza dell'ISEE** (property\_name: **valid\_until**; path: `data.economic_situation_indicator_minor.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** (property\_name: **name**; path: `data.economic_situation_indicator_minor.data.household[i].data.name`)

* **Cognome** (property\_name: **surname**; path: `data.economic_situation_indicator_minor.data.household[i].data.surname`)

* **Codice fiscale** (property\_name: **fiscal\_code**; path: `data.economic_situation_indicator_minor.data.household[i].data.fiscal_code`)

* **Rapporto di parentela** (property\_name: **relationship\_with\_declarant**; path: `data.economic_situation_indicator_minor.data.household[i].data.relationship_with_declarant`)<br>

* **Codice fiscale del minore** (property\_name: **fiscal\_code\_child**; path: `data.economic_situation_indicator_minor.data.fiscal_code_child`)

* **Attestazione PDF** (property\_name: **attestation\_pdf**; path: `data.economic_situation_indicator_minor.data.attestation_pdf`)

</details>

<details>

<summary>OC - ICEF</summary>

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

***

<div><figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FoVtx4Vk159Fs5iOU03SP%2FScreenshot%202026-07-30%20alle%2015.33.21.png?alt=media&amp;token=c4f46707-3d76-435a-8c20-058642fcbeab" alt=""><figcaption></figcaption></figure> <figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FFgwU7y1Tq1JJlQ8Q4vCi%2FScreenshot%202026-07-30%20alle%2015.33.29.png?alt=media&amp;token=aa136037-7314-41d5-9bfc-30d9ac8070bf" alt=""><figcaption></figcaption></figure></div>

* **Indicatore ICEF** (property\_name: **icef**; path: `data.economic_situation_indicator_icef.data.icef`)
* **Anno di riferimento** (property\_name: **reference\_year**; path: `data.economic_situation_indicator_icef.data.reference_year`)
* **Numero protocollo ICEF** (property\_name: **icef\_protocol\_number**; path: `data.economic_situation_indicator_icef.data.icef_protocol_number`)
* **Data di presentazione dell'ICEF** (property\_name: **valid\_from**; path: `data.economic_situation_indicator_icef.data.valid_from`)
* **Data di scadenza dell'ICEF** (property\_name: **valid\_until**; path: `data.economic_situation_indicator_icef.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** (property\_name: **name**; path: `data.economic_situation_indicator_icef.data.household[i].data.name`)

* **Cognome** (property\_name: **surname**; path: `data.economic_situation_indicator_icef.data.household[i].data.surname`)

* **Codice fiscale** (property\_name: **fiscal\_code**; path: `data.economic_situation_indicator_icef.data.household[i].data.fiscal_code`)

* **Data di nascita** (property\_name: **birth\_date**; path: `data.economic_situation_indicator_icef.data.household[i].data.birth_date`)<br>

* **Attestazione PDF** (property\_name: **attestation\_pdf**; path: `data.economic_situation_indicator_icef.data.attestation_pdf`)

</details>

<details>

<summary>OC - IBAN</summary>

**property\_name:** bank\_account

***

<figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FpBg7tov6JYH6PO0E5CMk%2Fimage.png?alt=media&amp;token=a6098317-03f2-402c-a036-1841026c96c2" alt=""><figcaption></figcaption></figure>

* **IBAN** (property\_name: **account\_number**; path: `data.bank_account.data.account_number`)
* **Codice SWIFT** (property\_name: **swift\_code**; path: `data.bank_account.data.swift_code`)
* **Nome e cognome dell’intestatario** (property\_name: **owner**; path: `data.bank_account.data.owner`)
* **Nome istituto bancario** (property\_name: **bank\_name**; path: `data.bank_account.data.bank_name`)

</details>

<details>

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

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

***

<figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FOiyIT9WfN5F9eMTtnNPZ%2Fimage.png?alt=media&amp;token=254cbff8-704c-4354-a790-bf510c3563ed" alt=""><figcaption></figcaption></figure>

{% 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 %}

* **Targa** (property\_name: **license\_plate\_number**; path: `data.vehicles.data.vehicles[i].license_plate_number`)

* **Marca** (property\_name: **manufacturer**; path: `data.vehicles.data.vehicles[i].manufacturer`)

* **Modello** (property\_name: **model**; path: `data.vehicles.data.vehicles[i].model`)

* **Tipo di alimentazione** (property\_name: **fuel\_type**; path: `data.vehicles.data.vehicles[i].fuel_type`)

* **Omologazione ambientale** (property\_name: **emission\_standard**; path: `data.vehicles.data.vehicles[i].emission_standard`)

* **Carta di circolazione** (property\_name: **registration\_document**; path: `data.vehicles.data.vehicles[i].registration_document`)

</details>

<details>

<summary>OC - Immobili</summary>

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

***

<div><figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FOGKmyH9sEGNy46IyDCAR%2FScreenshot%202026-07-30%20alle%2015.37.00.png?alt=media&amp;token=e5dc4ec6-7058-4903-864a-fe09293c0484" alt=""><figcaption></figcaption></figure> <figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FjVnXqXQwLmXkKn62ORFS%2FScreenshot%202026-07-30%20alle%2015.37.09.png?alt=media&amp;token=d4901ca4-89c8-438a-89d8-24dea3fab32c" alt=""><figcaption></figcaption></figure></div>

{% 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 %}

* **Denominazione dell'immobile** (property\_name: **street\_address**; path: `data.real_estate.data.real_estate[i].data.description`)

* **Luogo** (property\_name: **html1**; path: `data.real_estate.data.real_estate[i].data.html1`)

* **Indirizzo** (property\_name: **street\_address**; path: `data.real_estate.data.real_estate[i].address.data.street_address`)

* **Nr. civico** (property\_name: **address\_number**; path: `data.real_estate.data.real_estate[i].address.data.address_number`)

* **Paese** (property\_name: **address\_country**; path: `data.real_estate.data.real_estate[i].address.data.address_country`)

* **Provincia** (property\_name: **county**; path: `data.real_estate.data.real_estate[i].address.data.county`)

* **Comune** (property\_name: **address\_locality**; path: `data.real_estate.data.real_estate[i].address.data.address_locality`)

* **CAP** (property\_name: **postal\_code**; path: `data.real_estate.data.real_estate[i].address.data.postal_code`)

#### Dati catastali

* **Dati catastali** (property\_name: **html**; path: `data.real_estate.data.real_estate[i].html`)
* **Tipologia immobile** (property\_name: **property\_type**; path: `data.real_estate.data.real_estate[i].property_type`)
* **Sezione** (property\_name: **section**; path: `data.real_estate.data.real_estate[i].section`)
* **Foglio** (property\_name: **sheet**; path: `data.real_estate.data.real_estate[i].sheet`)
* **Particella o mappale** (property\_name: **parcel**; path: `data.real_estate.data.real_estate[i].parcel`)
* **Subalterno** (property\_name: **subunit**; path: `data.real_estate.data.real_estate[i].subunit`)
* **Volumetria del fabbricato** (property\_name: **volume**; path: `data.real_estate.data.real_estate[i].volume`)

</details>

<details>

<summary>OC - Informativa privacy</summary>

**property\_name:** privacy\_policy

***

<figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FhxL94rBPSSoSQfhLlRBa%2Fimage.png?alt=media&amp;token=5e641759-a760-47bd-8e4f-2a7284a1bc50" alt=""><figcaption></figcaption></figure>

* **HTML informativa** (property\_name: **html1**; path: `data.privacy_policy.data.html1`)
* **Ho letto e compreso l’informativa sulla privacy** (property\_name: **accepted\_by\_user**; path: `data.privacy_policy.data.accepted_by_user`)
* **Link privacy (hidden)** (property\_name: **privacy\_link**; path: `data.privacy_policy.data.privacy_link`)

</details>

## l'ISEE per un minorenne e PDND

Per poter chiamare tramite PDND l'ISEE di un minore è necessario una configurazione specifica. È necessario raccogliere prima l'anagrafica dei figli, far scegliere all'utente il minore e il consenso alla presentazione dell'ISEE, e collegare questi dati al nested form tramite un valore calcolato.

{% stepper %}
{% step %}

### Nested Form OC - Figli

Configura correttamente nel modulo il nested form OC - Figli:

| Nome          | Label        | Chiave API |
| ------------- | ------------ | ---------- |
| OC - Figli    | I tuoi figli | `children` |
| {% endstep %} |              |            |

{% step %}

### Select minore

Configura una Select per permettere all'utente di selezionare il/la minore per cui fa la richiesta.

* Label: es. "Seleziona il/la minore che vuoi iscrivere";
* API property name: `select_child`.

#### Sezione Data

* Data Source Type: Custom;
* ID Path: `tax_id`;
* Custom Values: `values = data?.children.data.children || []`;
* Item Template:

```
<span>{{ item.given_name }} {{ item.family_name }}</span>
```

{% endstep %}

{% step %}

### Fai scegliere all'utente se presentare l'ISEE

Chiedi all'utente se vuole presentare l'ISEE: non tutte le persone potrebbero volerlo fare.

Configura un Radio Button:

* Label: "Vuoi presentare l'ISEE minorenni?";
* In Data:
  * Label: sì; no;
  * Value: si; no.
    {% endstep %}

{% step %}

### OC - ISEE Minorenni

Configura nel modulo il nested form OC - ISEE Minorenni.

| Nome                | Label       | Chiave API                           |
| ------------------- | ----------- | ------------------------------------ |
| OC - ISEE Minorenni | Il tuo ISEE | `economic_situation_indicator_minor` |

* Nella sezione Data, in Calculated Value, inserisci il codice Javascript:

```javascript
instance.component.properties.fiscal_code_child = data?.select_child?.tax_id ?? null
```

* Nella sezione API, in Custom Properties, configura la proprietà `profile_block` con valore `"true"`.

{% hint style="info" %}
Le informazioni richieste possono essere fornite esclusivamente per nuclei familiari residenti nel bacino geografico di competenza dell'ente.
{% endhint %}

{% hint style="warning" %}
L'upload del "PDF Attestazione" è obbligatorio solo se il sistema non recupera i dati da PDND.
{% endhint %}
{% endstep %}

{% step %}

### Configura una condizione semplice

Configura la comparsa del nested form solo nel caso in cui l'utente abbia selezionato "sì" alla domanda "Vuoi presentare l'ISEE minorenni?".

<figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FIsvlxuhGmCigaS7rMr1M%2Fimage.png?alt=media&amp;token=84cfce5e-a589-4830-97d0-c8e84eb46180" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

## Configurare la delega

{% hint style="info" %}
In questo modo, quando l'utente seleziona un ruolo da delegato, compare il nested form **OC - Delega**. L'utente dovrà quindi allegare allegare:

* il documento d'identità del beneficiario, con data di scadenza;
* la delega del beneficiario, con data di scadenza.
  {% endhint %}

Se il servizio permette di presentare la domanda per conto di un'altra persona o di un'impresa, devi chiedere all'utente la delega.

Per farlo usa sempre il nested form **OC - Delega**. Il nested form compare solo se l'utente dichiara di agire come delegato.

{% stepper %}
{% step %}

### Inserisci la Select

Inserisci una [<mark style="color:$success;">`Select`</mark>](/stanza-del-cittadino/guida-alla-creazione-dei-servizi-digitali/creare-un-servizio/i-componenti/la-select.md) con label "In qualità di" e property\_name `for_whom`. Inserisci un'opzione per ogni ruolo previsto dal servizio. Ad esempio:

| Label                               | Value                   |
| ----------------------------------- | ----------------------- |
| beneficiario del servizio           | `beneficiario`          |
| delegato da un'altra persona        | `delegato`              |
| delegato da un'impresa              | `delegato_impresa`      |
| legale rappresentante di un'impresa | `legale_rappresentante` |

Il value è il dato da controllare nella condizione. Se cambi i value, aggiorna anche la condizione.

<figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2F3B6oMZasRV9dxyxvLRZL%2FScreenshot%202026-10-21%20alle%2011.08.54.png?alt=media&amp;token=2aa230dd-a6fb-4b2c-852b-0b2296f4fead" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Inserisci il nested form

Inserisci il nested form **OC - Delega**, con property\_name `delegation`.

<figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FxUAtn31ZJddT7SKvkAjE%2FScreenshot%202026-10-21%20alle%2011.09.46.png?alt=media&amp;token=4e94fa1e-12e2-4069-a854-7e426e01e34e" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Inserisci la condizione di comparsa

Apri il Nested Form **OC - Delega** e vai nella sezione **Conditional**. Scegli il tipo di condizione in base a quanti ruoli prevedono la delega.

#### **Condizionale semplice**

Usalo se la delega serve per un solo ruolo. Imposta:

* **This component should display**: `True`
* **When the form component**: In qualità di (`for_whom`)
* **Has the value**: `delegato`

<figure><img src="https://4252442743-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrdV0mwA7iy2c3I7wu5BX%2Fuploads%2FsUlAVxhytCr3Wo6vNA4z%2FScreenshot%202026-10-21%20alle%2011.02.56.png?alt=media&amp;token=d4b8b3e9-8181-48f5-9ab4-b8924a3ec69a" alt=""><figcaption></figcaption></figure>

#### **Condizionale avanzato**

Usalo se la delega serve per più ruoli, per esempio per chi è delegato da una persona o da un'impresa. In **Advanced Conditions** → **JavaScript** inserisci:

```javascript
show = (data.for_whom === "delegato" || data.for_whom === "delegato_impresa")
```

{% hint style="info" %}
Per approfondire come configurare le condizioni, consulta [Relazione tra i dati: i conditiona](https://docs.opencityitalia.it/stanza-del-cittadino/guida-alla-creazione-dei-servizi-digitali/creare-un-servizio/le-funzioni/relazione-tra-i-dati-i-conditional)l.
{% endhint %}
{% endstep %}
{% endstepper %}


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
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=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
