# Aggiornamenti imminenti dei requisiti

Leggi le informazioni sulle modifiche alle informazioni di verifica richieste e sul loro impatto sulla tua integrazione con Stripe

Gli aggiornamenti dei requisiti riportati nella presente guida si riferiscono alle proprietà dell’API Accounts v1. Puoi visualizzare le proprietà corrispondenti dell’API Accounts v2 in [Informazioni di verifica richieste](https://docs.stripe.com/connect/required-verification-information.md) selezionando `v2` nel menu a discesa **API Accounts** e l’aggiornamento desiderato nel menu a discesa **Aggiornamento dei requisiti**.

Le normative sui pagamenti contribuiscono a prevenire reati quali riciclaggio di denaro, frode ed evasione fiscale. Le autorità di regolamentazione finanziaria di tutto il mondo applicano i [requisiti di adeguata verifica della clientela (Know Your Customer, KYC)](https://support.stripe.com/questions/know-your-customer) per garantire che Stripe raccolga, verifichi e conservi le informazioni relative all’identità di determinati tipi di attività e delle persone che ne sono proprietarie, che le controllano o le dirigono. Tali requisiti vengono aggiornati frequentemente dalle autorità di regolamentazione dei servizi finanziari, dai circuiti di carte di credito e da altri istituti finanziari.

Questa guida fornisce una panoramica delle modifiche imminenti ed evidenzia quelle più significative. Per un elenco esaustivo dei requisiti, fai riferimento a [Informazioni richieste per la verifica](https://docs.stripe.com/connect/required-verification-information.md).

Se utilizzi un flusso basato su API per integrare i tuoi account connessi, devi aggiornare la tua integrazione per gestire tutte le modifiche dei requisiti. Scopri di più sulle [opzioni di attivazione Connect](https://docs.stripe.com/connect/onboarding.md) e sulla [migrazione dei tuoi flussi di integrazione e risoluzione basati su API a flussi integrati o in hosting su Stripe](https://docs.stripe.com/connect/migrate-from-api-onboarding.md).

#### Programma - Europa

*Ultimo aggiornamento: 23 febbraio 2026*

## Comprendere le modifiche ai requisiti di verifica

Per allinearci alle normative della Financial Conduct Authority (FCA) del Regno Unito e della Banca Centrale d’Irlanda (CBI), Stripe sta aggiornando i requisiti di adeguata verifica della clientela (KYC), dei beneficiari effettivi (UBO) e dei membri del consiglio di amministrazione.

Se i tuoi account connessi operano in uno qualsiasi dei Paesi elencati, potresti dover aggiornare il flusso di attivazione. La mancata esecuzione degli aggiornamenti richiesti interromperà l’accesso dei tuoi account connessi a pagamenti e servizi finanziari.

Per saperne di più su ciò che sta cambiando e perché, consulta il [nuovo articolo di assistenza sui requisiti di conformità](https://support.stripe.com/questions/europe-verification-requirement-updates-for-connected-accounts).

Le modifiche imminenti riguardano gli account connessi nei seguenti Paesi:

- AT
- BE
- BG
- CH
- CY
- CZ
- DE
- DK
- EE
- ES
- FI
- FR
- GB
- GI
- GR
- HR
- HU
- IE
- IS
- IT
- LI
- LT
- LU
- LV
- MT
- NL
- NO
- PL
- PT
- RO
- SE
- SI
- SK

> #### Aggiornamenti continui
> 
> Stripe continuerà ad aggiornare l’API per supportare la raccolta di questi requisiti fino al 1° aprile 2026.

## Scegli un approccio per l’integrazione

Stripe consiglia di utilizzare l’attivazione in hosting o incorporata su Stripe per raccogliere i requisiti di verifica dell’attività e dell’identità. Queste opzioni richiedono meno risorse da implementare e gestire rispetto all’attivazione con API. La tabella seguente descrive le principali differenze:

- [Attivazione in hosting su Stripe](https://docs.stripe.com/connect/hosted-onboarding.md): (Consigliato) invia gli account a un flusso in hosting su Stripe per inoltrare le informazioni richieste.
- [Attivazione integrata](https://docs.stripe.com/connect/embedded-onboarding.md): (Consigliato) integra componenti di attivazione forniti da Stripe che consentono agli account di inviare le informazioni direttamente a Stripe dalla tua app.
- [Attivazione tramite API](https://docs.stripe.com/connect/api-onboarding.md): crea e gestisci un flusso di attivazione personalizzato utilizzando le API di Stripe.

|  | **Attivazione in hosting su Stripe** | **Attivazione integrata** | **Attivazione basata su API** |
| --- | --- | --- | --- |
| Ottimali per | Piattaforme che desiderano che Stripe gestisca l’attivazione | Piattaforme che desiderano un flusso di attivazione brandizzato in-app | Piattaforme che hanno necessitano di pieno controllo, possono crearlo e mantenerlo |
| Impegno di implementazione iniziale | 3-4 settimane di progettazione | 3-4 settimane di progettazione | 30-40 settimane di progettazione |
| Impegno continuo per risolvere gli aggiornamenti dei requisiti | Gestito automaticamente da Stripe | Gestito automaticamente da Stripe | Richiede un monitoraggio proattivo delle modifiche imminenti, oltre a risorse tecniche per aggiornare il flusso di attivazione a ogni modifica |
| Personalizzazione | Interfaccia in hosting su Stripe con branding della piattaforma | Componente altamente tematizzabile a cui gli account accedono attraverso l’app della piattaforma | La piattaforma progetta, crea e gestisce l’interfaccia |
| Impegno per il supporto di altri Paesi | Gestito automaticamente da Stripe | Gestito automaticamente da Stripe | Richiede risorse tecniche per aggiornare il flusso di attivazione per ogni Paese aggiuntivo |

Scopri di più sulle [opzioni di attivazione Connect](https://docs.stripe.com/connect/onboarding.md) e sulla [migrazione dei tuoi flussi di integrazione e risoluzione basati su API a flussi integrati o in hosting su Stripe](https://docs.stripe.com/connect/migrate-from-api-onboarding.md).

Le [modifiche apportate al flusso di attivazione](https://docs.stripe.com/connect/handle-verification-updates.md#collect-future-requirements) dipendono dalla configurazione dell’attivazione. Oltre ad aggiornare il flusso di attivazione, aggiorna la documentazione interna ed esterna, se necessario, e prepara i team di assistenza in modo che rispondano alle domande sugli aggiornamenti.

Se utilizzi l’attivazione in hosting su Stripe o integrata, non devi aggiornare l’integrazione per preparare agli aggiornamenti dei requisiti. Tuttavia, puoi comunicare ai tuoi account connessi che Stripe potrebbe richiedere informazioni nuove o aggiornate sull’identità quando i requisiti cambiano.

## Panoramica integrazione API

Se scegli di non eseguire la migrazione all’attivazione in hosting su Stripe o integrata, devi gestire i seguenti aggiornamenti:

- [Adeguata verifica della clientela (KYC)](https://docs.stripe.com/connect/upcoming-requirements-updates.md#know-your-customer-\(kyc\)-verification)
- [Verifica del beneficiario effettivo (UBO) e della relazione tra i membri del consiglio di amministrazione](https://docs.stripe.com/connect/upcoming-requirements-updates.md#ubo-director-verification)
- [Requisiti di registrazione delle attività olandesi (KvK)](https://docs.stripe.com/connect/upcoming-requirements-updates.md#netherlands-business-registration-requirements)
- [Nuovi codici di errore](https://docs.stripe.com/connect/upcoming-requirements-updates.md#new-error-codes)

## Aggiorna la cronologia

La cronologia seguente illustra le tappe fondamentali per queste modifiche. Assicurati di aggiornare e testare in anticipo la tua integrazione per evitare problemi quando entreranno in vigore i nuovi requisiti.

| Data | Pietra miliare | Descrizione |
| --- | --- | --- |
| 2025 ottobre | Avvia la pianificazione dell’integrazione | Sono disponibili i primi aggiornamenti dell’API. Consulta questa guida e le relative modifiche per iniziare a pianificare gli aggiornamenti dell’integrazione. |
| Marzo 2026 | Rivedi gli account interessati e verifica gli aggiornamenti dell’integrazione | Stripe fornisce un elenco dei tuoi account connessi interessati. Inizia a testare il flusso di attivazione aggiornato. |
| Marzo – aprile 2026 | Inizia il lancio di `future_requirements` (attivazione API) | Per le piattaforme che utilizzano l’attivazione API, Stripe inizia ad aggiungere i nuovi requisiti a `future_requirements` sia per gli account nuovi che per quelli esistenti. |
| 1° aprile 2026 | Entrano in vigore nuovi requisiti per le piattaforme che dispongono solo di account collegati con tipo di business `individual` | Assicurati che il tuo flusso di attivazione aggiornato sia pronto per raccogliere i nuovi requisiti. Il flusso aggiornato dovrà essere operativo entro il 1° aprile, quando Stripe inizierà a implementare i nuovi requisiti. Tutti i nuovi requisiti entreranno in vigore entro la fine di aprile. |
| 1° maggio 2026 | Entrano in vigore nuovi requisiti per le piattaforme che hanno account connessi con tipo di business `company`, comprese le piattaforme che hanno anche account connessi `individual` | Assicurati che il tuo flusso di attivazione aggiornato sia pronto per raccogliere i nuovi requisiti. Il flusso aggiornato dovrà essere operativo per tutti gli account connessi entro il 1° maggio, data in cui Stripe inizierà a implementare i nuovi requisiti. Tutti i nuovi requisiti entreranno in vigore entro la fine di maggio. |
| Giugno 2026 - agosto 2026 | Nuovi requisiti attualmente in scadenza per gli account esistenti | Durante questo periodo i nuovi requisiti verranno revocati agli account connessi esistenti. Utilizza il flusso di attivazione aggiornato per raccoglierli secondo necessità. |
| Luglio – ottobre 2026 | Date di scadenza per i nuovi requisiti | Per evitare restrizioni, i requisiti aggiornati per ciascun account devono essere verificati entro la data di scadenza dell’account. |

## Verifica adeguata della clientela (KYC)

Stripe sta rafforzando il proprio processo di verifica dell’identità, il che potrebbe richiedere ad alcuni dei tuoi account connessi di fornire ulteriori informazioni. Stiamo inoltre aggiungendo ulteriori opzioni all’API per la verifica delle informazioni.

Le seguenti entità devono fornire informazioni controllabili per l’adeguata verifica della clientela:

- Persona giuridica (per persone fisiche e ditte individuali);
- Rappresentante dell’account
- UBO (per gli account considerati ad alto rischio dal modello di rischio di Stripe)

### Metodi di verifica aggiuntivi

Oltre alle informazioni inserite manualmente, utilizza i seguenti metodi opzionali per massimizzare le percentuali di successo della verifica:

- [Stripe Identity](https://docs.stripe.com/connect/upcoming-requirements-updates.md#stripe-identity): (Consigliato) Utilizza la funzione di acquisizione di selfie e documenti per gli account che non superano la verifica automatica.
- [Verifica del documento di identità](https://docs.stripe.com/connect/upcoming-requirements-updates.md#national-id-verification): raccogli in anticipo un numero di documento di identità nazionale per aumentare i tassi di verifica al primo tentativo.
- [Carica ulteriori documenti](https://support.stripe.com/questions/documents-for-identity-and-home-address-verification): invia documenti di identità o di indirizzo a supporto per una revisione manuale.

### Stripe Identity (Consigliato)

Puoi cercare di verificare gli account connessi che non superano la verifica automatica utilizzando [Stripe Identity](https://stripe.com/identity). Identity funziona con l’acquisizione di un selfie e di un [documento di identità](https://docs.stripe.com/acceptable-verification-documents.md). La maggior parte dei [Paesi europei](https://docs.stripe.com/identity/use-cases.md) supporta Stripe Identity e le percentuali di successo variano secondo il Paese.

Crea una [sessione di verifica](https://docs.stripe.com/api/identity/verification_sessions.md?api-version=preview) dell’identità e utilizza il parametro [related_person](https://docs.stripe.com/api/identity/verification_sessions/object.md?api-version=preview#identity_verification_session_object-related_person) per inviare i `document` e i requisiti di `proof_of_liveness` della persona. Puoi verificare i risultati utilizzando l’API o la Dashboard.

### Verifica dell’identità nazionale

Nei [Paesi interessati da questo aggiornamento](https://docs.stripe.com/connect/upcoming-requirements-updates.md#affected-countries) è possibile migliorare la verifica del rappresentante di un account connesso fornendo il numero del documento di identità nazionale oltre al nome, alla data di nascita, all’indirizzo e alla nazionalità.

Al momento la verifica supporta i seguenti numeri di identificazione nazionale.

| Paese | Tipo di documento di identità nazionale |
| --- | --- |
| Danimarca | Central Person Register (CPR) |
| Finlandia | Henkilötunnus (Codice di identità personale) |
| Grecia | Arithmós Forologikoú Mitróou (AFM/ID fiscale) o Prosopikós Arithmós (Numero personale) |
| Irlanda | Numero Personal Public Service (PPS) |
| Italia | Codice fiscale |
| Lettonia | Personas kods (Codice personale) |
| Polonia | Numero PESEL |
| Romania | Cod Numeric Personal (CNP) |
| Spagna | Documento Nacional de Identidad (DNI) |
| Svezia | Personnummer (Numero di identificazione personale) |

I Paesi non interessati da questo aggiornamento, come gli Stati Uniti, non offrono assistenza per la verifica del numero di identificazione nazionale. Ad esempio, puoi fornire il numero di identificazione di un cittadino spagnolo che agisce in qualità di rappresentante di un account connesso in Austria, che si trova nell’UE. Tuttavia, non puoi fornire il numero di identificazione di un cittadino spagnolo che agisce da rappresentante di un account connesso negli Stati Uniti.

> #### Disponibilità del documento di identità nazionale
> 
> Potrai iniziare a raccogliere i numeri di identificazione nazionale per i tuoi account connessi quando i requisiti aggiornati entreranno in vigore. Nel frattempo, l’integrazione è disponibile per i tuoi account sandbox come funzione in anteprima.

### Implementa la verifica dell'identità nazionale utilizzando l'API

Il seguente esempio mostra l’attivazione di un nuovo account connesso con i requisiti aggiornati.

> Le differenze riportate di seguito riguardano solo l’API Accounts v1, non la v2.

#### Passaggio 1: crea un account connesso per i test (Public preview)

Una volta revocati i requisiti futuri, crea gli account connessi come di consueto. Fino ad allora, devi creare i nuovi account connessi in una [sandbox](https://docs.stripe.com/sandboxes.md) per consentire il nuovo comportamento di adeguata verifica della clientela.

Attiva questo comportamento modificando due parti della chiamata di creazione dell’account:

1. Aggiungi l’intestazione `experimental_onboarding_preview=v2`.
2. Invia `capabilities[card_payments][preview]=true`.

Dopo aver creato l’account, viene visualizzata una nuova stringa di requisiti `representative.nationality`. Ciò indica che è possibile creare un rappresentante dell’account e fornire la nazionalità.

```shell
// Creating a connected account in Spain
> curl https://api.stripe.com/v1/accounts \
  -u sk_test_123 \
  -H "Stripe-Version: 2025-08-27.basil;experimental_onboarding_preview=v2" \
  -d 'type'='custom' \
  -d 'country'='ES' \
  -d 'capabilities[card_payments][requested]'='true' \
  -d 'capabilities[card_payments][preview]'='true' \
  -d 'capabilities[transfers][requested]'='true'

{
  "id": "acct_1Nv0FGQ9RKHgCVdB",
  ...
  "requirements": {
    "past_due": [
      ...
      "representative.nationality",
      ...
    ]
  }
 ...
}
```

#### Passaggio 2: crea un rappresentante dell’account

Dopo aver creato l’account connesso, crea un rappresentante dell’account.

```shell
> curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB/persons \
  -u sk_test_123: \
  -d first_name=John \
  -d last_name=Doe

{
  "id": "person_1N9XNb2eZvKYlo2CjPX7xF6B",
  ...
}
```

#### Passaggio 3: invia la nazionalità

Dopo aver creato un rappresentante dell’account, la `nationality` viene visualizzata in `past_due`. Raccogli questo campo in modo che Stripe possa determinare se il rappresentante è idoneo all’acquisizione dell’`id_number`.

```shell
> curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB -u sk_test_123:

{
  ...
  "requirements": {
    "past_due": [
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.dob.year",
      ...other person requirements...
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.nationality"
    ]
  }
 ...
}
```

Dopo aver raccolto la nazionalità, se la persona si trova in un paese idoneo, il suo numero di identificazione apparirà come requisito alternativo nell’array `alternatives`. Ogni voce dell’array`alternatives` rappresenta un percorso alternativo per soddisfare un requisito standard. È possibile soddisfare un requisito alternativo al posto di quello originale, ma non è necessario soddisfarli entrambi.

In questo esempio, `alternatives` contiene `id_number` come alternativa per il requisito `dob.year` scaduto. Ciò significa che puoi fornire il numero del documento di identità nazionale della persona anziché l’anno di nascita. Se specifichi l’anno di nascita, non devi fornire il numero del documento di identità.

```shell
> curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB/persons/person_1N9XNb2eZvKYlo2CjPX7xF6B \
  -u sk_test_123: \
  -d nationality=ES

> curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB -u sk_test_123:

{
  "requirements": {
    "past_due": [
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.dob.year",
      ...other person fields...
    ],
    "alternatives": [
      {
        "original_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.dob.year",
          ...other person fields...
        ],
        "alternative_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.id_number"
        ]
      }
    ]
  }
}
```

#### Passaggio 4: raccogliere i campi dei restanti rappresentanti dell’account

Raccogli ulteriori attributi della persona, tra cui un numero di identificazione nazionale, per avviare la verifica KYC.

```shell
> curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB/persons/person_1N9XNb2eZvKYlo2CjPX7xF6B \
  -u sk_test_123: \
  -d 'id_number'='74362315-A' \
  ...other person fields...
```

#### Passaggio 5: i campi digitati passano alla verifica in sospeso

Dopo aver inserito i dati, i campi in `pending_verification` vengono visualizzati in un nuovo modo:

- I campi inseriti vanno in `pending_verification` anziché in `verification.document` e `verification.additional_document`. Questo indica che i campi inseriti sono in fase di verifica.
- Il requisito `id_number` può essere inserito in `pending_verification` se specificato, anche se compare solo in `alternative_fields_due` e mai in `past_due` o `currently_due`.

```shell
> curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB/ -u sk_test_123:

{
  "requirements": {
    "pending_verification": [
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.city",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.line1",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.postal_code",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.dob.day",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.dob.month",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.dob.year",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.first_name",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.id_number",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.last_name"
    ]
  }
}
```

#### Passaggio 6: gestire gli errori di verifica

In molti casi, dopo che i campi sono stati inseriti in `pending_verification`, il rappresentante supera la verifica KYC e viene completato il processo.

Se la verifica non va a buon fine, Stripe restituisce ulteriori informazioni per aiutarti a determinare i passaggi successivi.

Ci sono due cambiamenti importanti.

**Più alternative**

Nell’hash dei requisiti vedrai più alternative. Ognuna di queste rappresenta un percorso utilizzabile dai tuoi utenti.

Ad esempio, se il nome e la data di nascita corrispondono ma il nome e l’indirizzo non corrispondono, il tuo account connesso ha diversi modi per risolvere il problema:

1. Possono controllare le informazioni inserite per nome e indirizzo e reimmettere quei campi per correggere eventuali errori.
2. Possono controllare le informazioni inserite per data di nascita, nome, indirizzo e id_number, e digitare nuovamente le informazioni corrette.
3. Possono caricare un documento corrispondente al loro nome e indirizzo
4. Possono completare Stripe Identity

Questi quattro percorsi vengono visualizzati come campi `past_due` e `alternatives`:

```shell
> curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB -u sk_test_123:

{
  "requirements": {
    // 1. They can check the information they've entered for dob, name, and address, and re-enter the correct information.
    "past_due": [
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.first_name",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.last_name",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.*"
    ],
    "alternatives": [
      // 2. They can check the information they entered for dob, name, address and id_number and re-key correct information.
      {
        "original_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.first_name",
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.last_name",
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.*"
        ],
        "alternative_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.id_number"
        ]
      },
      // 3. They can upload document that matches their name and address
      {
        "original_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.first_name",
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.last_name",
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.*"
        ],
        "alternative_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.verification.additional_document"
        ]
      },
      // 4. They can complete Stripe Identity
      {
        "original_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.first_name",
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.last_name",
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.*"
        ],
        "alternative_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.proof_of_liveness"
        ]
      }
    ]
  }
}
```

**Errori nei campi digitati** In precedenza, se si verificava un errore di verifica durante l’elaborazione dei campi digitati, i campi del documento passavano a `past_due` e comparivano degli errori. In seguito, i campi digitati tornavano a `past_due`. I campi come `id_number` rimangono in `alternative_fields_due`.

Ad esempio, se il nome, la data di nascita e l’indirizzo sono originariamente `past_due` e, dopo l’invio, il nome e la data di nascita corrispondono mentre il nome e l’indirizzo non corrispondono, il nome e l’indirizzo tornano a `past_due` mentre la data di nascita viene rimossa.

In questa situazione appaiono errori nei campi `past_due` e `alternative_fields_due`.

```shell

> curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB -u sk_test_123:
{
  "requirements": {
    "past_due": [
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.name",
      "person_1N9XNb2eZvKYlo2CjPX7xF6B.address"
    ],
    "alternatives": [
      {
        "original_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.name",
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.address"
        ],
        "alternative_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.id_number"
        ]
      },
      {
        "original_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.name",
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.address"
        ],
        "alternative_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.proof_of_liveness"
        ]
      },
      {
        "original_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.name",
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.address"
        ],
        "alternative_fields_due": [
          "person_1N9XNb2eZvKYlo2CjPX7xF6B.verification.additional_document"
        ]
      }
    ],
    "errors": [
      {
        "code": "verification_failed_keyed_identity",
        "reason": "Identity information could not be verified.",
        "requirement": "person_1N9XNb2eZvKYlo2CjPX7xF6B.name"
      },
      {
        "code": "verification_failed_keyed_identity",
        "reason": "Identity information could not be verified.",
        "requirement": "person_1N9XNb2eZvKYlo2CjPX7xF6B.address"
      },
      {
        "code": "verification_failed_keyed_identity",
        "reason": "Identity information could not be verified.",
        "requirement": "person_1N9XNb2eZvKYlo2CjPX7xF6B.id_number"
      }
    ]
  }
}
```

### Account ad alto rischio

Il modello di rischio di Stripe richiede l’adeguata verifica della clientela dei titolari effettivi solo per i conti classificati come ad alto rischio. Ai fini del test, aggiungi `_high_risk` alla ragione sociale per forzare l’assegnazione di un rating di alto rischio. Ciò ti consente di testare l’intero flusso di adeguata verifica della clientela per i beneficiari, compresi i requisiti e gli errori che la tua integrazione deve gestire.

Questo esempio mostra come creare un account di test ad alto rischio e aggiungere i beneficiari:

```curl
// Creating a connected account in Spain
curl https://api.stripe.com/v1/accounts \
  -u sk_test_123: \
  -H "Stripe-Version: 2025-08-27.basil;experimental_onboarding_preview=v2" \
  -d 'type'='custom' \
  -d 'country'='ES' \
  -d 'capabilities[card_payments][requested]'='true' \
  -d 'capabilities[card_payments][preview]'='true' \
  -d 'capabilities[transfers][requested]'='true'
{
  "id": "acct_123",
  ...
  "requirements": {...}
 ...
}

// Set the business name to enforce the account to be high risk
curl https://api.stripe.com/v1/accounts/acct_123 \
  -u sk_test_123: \
  -d "business_profile[name]"="example_high_risk"
```

```curl
curl https://api.stripe.com/v1/accounts/acct_123/persons \
  -u sk_test_123: \
  -d first_name=Marie \
  -d last_name=Dupont \
  -d "dob[day]"=1 \
  -d "dob[month]"=1 \
  -d "dob[year]"=1901 \
  -d "relationship[owner]=true" \
  -d "address[line1]"="address_no_match" \
  -d "address[city]"="Madrid" \
  -d "address[postal_code]"="28001"
{
  "id": "person_123",
  ...
}
```

```curl
curl https://api.stripe.com/v1/accounts/acct_123 \
  -u sk_test_123: \
  -d "company[owners_provided]"="true"
```

Dopo che Stripe ha eseguito un’adeguata verifica della clientela sul titolare, i requisiti dell’account riflettono il risultato. Quando il nome del beneficiario corrisponde ma l’indirizzo non corrisponde (attivato utilizzando l’indirizzo di test `address_no_match`), i requisiti includono errori `verification_failed_keyed_identity` nei campi del titolare:

```json
{
  "requirements": {
    "past_due": [
      "people.person_123.address.city",
      "people.person_123.address.line1",
      "people.person_123.address.postal_code",
      "people.person_123.first_name",
      "people.person_123.last_name"
    ],
    "errors": [
      {
        "code": "verification_failed_keyed_identity",
        "requirement": "people.person_123.address.city"
      },
      {
        "code": "verification_failed_keyed_identity",
        "requirement": "people.person_123.address.line1"
      },
      {
        "code": "verification_failed_keyed_identity",
        "requirement": "people.person_123.address.postal_code"
      },
      {
        "code": "verification_failed_keyed_identity",
        "requirement": "people.person_123.first_name"
      },
      {
        "code": "verification_failed_keyed_identity",
        "requirement": "people.person_123.last_name"
      }
    ],
    "alternatives": [
      {
        "original_fields_due": [
          "people.person_123.address.city",
          "people.person_123.address.line1",
          "people.person_123.address.postal_code",
          "people.person_123.first_name",
          "people.person_123.last_name"
        ],
        "alternative_fields_due": [
          "people.person_123.verification.additional_document"
        ]
      },
      {
        "original_fields_due": [
          "people.person_123.address.city",
          "people.person_123.address.line1",
          "people.person_123.address.postal_code",
          "people.person_123.first_name",
          "people.person_123.last_name"
        ],
        "alternative_fields_due": [
          "people.person_123.verification.proof_of_liveness"
        ]
      }
    ]
  }
}
```

Per soddisfare questi requisiti, devi inviare nuovamente le informazioni sull’identità del beneficiario o soddisfare uno dei requisiti alternativi (carica `additional_document` o `proof_of_liveness` completa).

## Verifica delle relazioni di UBO e membri del consiglio di amministrazione

Stripe sta migliorando il processo di verifica dei beneficiari effettivi finali (UBO) e dei membri del consiglio di amministrazione. Le normative europee richiedono la verifica del rapporto tra UBO, membri del consiglio di amministrazione e persona giuridica.

- **UBO:** persona fisica che possiede o controlla (direttamente o indirettamente) più del 25% di una persona giuridica (ad esempio, aziende, società di capitali, LLC e società di persone).
- **Membro del consiglio di amministrazione:** un membro del consiglio di amministrazione dell’attività o qualsiasi altra figura dirigenziale responsabile della gestione dell’attività. (Gli esempi includono CEO, COO, presidente, amministratore delegato, direttore esecutivo e così via).

La tabella seguente mostra le relazioni che devono essere verificate per ogni tipo di persona giuridica:

| Tipo di persona giuridica | Relazioni da verificare | Nota |
| --- | --- | --- |
| Company, corporation, LLC, partnership | UBO, se esistenti; oppure membri del consiglio di amministrazione | Solo per il Regno Unito: UBO e membri del consiglio di amministrazione |
| Non profit | Direttori | La maggior parte delle organizzazioni no profit non ha UBO |
| Persona fisica o ditta individuale | N/A | N/A |
| Organismo governativo o agenzia | N/A | Per l’esenzione dalla fornitura dei dati relativi agli UBO, gli organismi governativi devono seguire la procedura descritta in [questo articolo dell’Assistenza](https://support.stripe.com/questions/business-verification-requirements-for-government-entities). |
| Società quotata in borsa | N/A | Per l’esenzione dalla fornitura dei dati relativi agli UBO, le società quotate in borsa devono seguire la procedura descritta in [questo articolo dell’Assistenza](https://support.stripe.com/questions/business-verification-requirements-for-publicly-traded-companies). |

### Verifica le informazioni sull’UBO e sul membro del consiglio di amministrazione

Gli UBO e i membri del consiglio di amministrazione devono fornire le seguenti informazioni:

- Nome completo
- Data di nascita
- Indirizzo
- Email
- Qualifica (solo per i membri del consiglio di amministrazione)

Stripe tenta di verificare la relazione della persona confrontando le seguenti proprietà chiave della persona e della persona giuridica:

| Entità | Proprietà chiave |
| --- | --- |
| Persona | - Nome
- Cognome
- (Se fornito) Numero ID |
| Persona giuridica | - Nome
- Indirizzo
- ID fiscale
- Partita IVA
- Numero di iscrizione |

Una verifica andata a buon fine potrebbe richiedere solo la corrispondenza di un sottoinsieme delle proprietà.

Stripe tenta di verificare le relazioni nei seguenti modi:

| Metodo | Descrizione | Esempio di requisiti |
| --- | --- | --- |
| Fornitore terzo | Se è disponibile un fornitore terzo, Stripe tenta automaticamente di verificare tutte le relazioni sull’account. | - `owners.first_name`
- `owners.last_name`
- `company.tax_id` |
| Documento ufficiale | È possibile fornire un documento di “Prova dell’UBO” per i titolari e un documento di “Prova di registrazione” per i membri del consiglio di amministrazione. I [documenti accettabili](https://docs.stripe.com/acceptable-verification-documents.md) variano a seconda del Paese. | - `owners.first_name`
- `owners.last_name`
- `company.name`
- `company.address.line1`
- `company.address.city`
- `company.address.state`
- `documents.proof_of_ultimate_beneficial_ownership` |
| Attestazione digitale | Puoi utilizzare i seguenti modelli PDF per fornire attestazioni digitali per le tue relazioni:
- [Modello di attestazione digitale UBO](https://docs.stripecdn.com/6e82842bfc01bd0b1c46d77f7d46b69673a9ca965ed2ad9ef53139f98abdbbaf.pdf)
- [Modello di attestazione digitale per un membro del consiglio di amministrazione](https://docs.stripecdn.com/715ffef45157ff700bc368a4011659ee23bc8ba3c68746c5c15948a6eee1591f.pdf) | - `owners.id_number`
- `company.tax_id`
- `documents.proof_of_ultimate_beneficial_ownership`
- `documents.proof_of_ultimate_beneficial_ownership.signer` |

### Identifica i requisiti di verifica delle relazioni utilizzando l'API

Quando si recuperano i requisiti di un `Account`, le opzioni di verifica originali e alternative rappresentano combinazioni delle informazioni chiave e dei metodi di verifica disponibili. Nella maggior parte dei casi, esistono almeno tre opzioni per verificare i titolari o i membri del consiglio di amministrazione.

Il codice seguente mostra un esempio di account connesso con requisiti relativi al titolare. Le opzioni specifiche e l’ordine in cui appaiono possono variare da un account all’altro.

```shell
// Example with owner requirements
> curl https://api.stripe.com/v1/accounts/acct_1234 \
  -u sk_test_123:

{
  "id": "acct_1234",
  "past_due": {
    // third-party provider option
    "currently_due": [
      "owners.first_name",
      "owners.last_name",
      "company.owners_provided",
      "company.tax_id"
    ],
    "alternatives": [
      {
        "original_fields_due": [
          "owners.first_name",
          "owners.last_name",
          "company.owners_provided",
          "company.tax_id"
        ],
        // official document option
        "alternative_fields_due": [
          "owners.first_name",
          "owners.last_name",
          "company.owners_provided",
          "company.name",
          "company.address.line1",
          "company.address.state",
          "company.address.city",
          "documents.proof_of_ultimate_beneficial_ownership.files"
        ],
      },
      {
        "original_fields_due": [
          "owners.first_name",
          "owners.last_name",
          "company.owners_provided",
          "company.tax_id"
        ],
        // digital attestation option
        "alternative_fields_due": [
          "owners.first_name",
          "owners.last_name",
          "company.owners_provided",
          "company.name",
          "company.address.line1",
          "company.address.state",
          "company.address.city",
          "documents.proof_of_ultimate_beneficial_ownership.files",
          "documents.proof_of_ultimate_beneficial_ownership.signer"
        ],
      }
    ]
  }
}
```

### Verifica i membri del consiglio di amministrazione anziché i titolari

Se un account connesso è idoneo a fornire membri del consiglio di amministrazione anziché titolari, include opzioni alternative per la verifica dei membri del consiglio di amministrazione. Se si verificano i membri del consiglio di amministrazione, è comunque necessario attestare di aver fornito 0 UBO.

L’esempio seguente mostra un account connesso che è idoneo a verificare i membri del consiglio di amministrazione anziché i titolari:

```shell
// Example with owner requirements
> curl https://api.stripe.com/v1/accounts/acct_1234 \
  -u sk_test_123:

{
  "id": "acct_1234",
  "past_due": {
    // third-party provider option for owners
    "currently_due": [
      "owners.first_name",
      "owners.last_name",
      "company.owners_provided",
      "company.tax_id"
    ],
    "alternatives": [
      ...,
      {
        "original_fields_due": [
          "owners.first_name",
          "owners.last_name",
          "company.owners_provided",
          "company.tax_id"
        ],
        // third-party provider option for directors
        "alternative_fields_due": [
          "directors.first_name",
          "directors.last_name",
          "company.directors_provided",
          "company.owners_provided",
          "company.tax_id"
        ],
      }
    ]
  }
}
```

Se fornisci informazioni sul membro del consiglio di amministrazione e attesti di fornire 0 UBO, le opzioni relative ai requisiti primari riflettono comunque i requisiti relativi al titolare. Puoi fornire le informazioni sul titolare non appena saranno disponibili.

Il seguente esempio mostra un account connesso con attestazione UBO pari a 0:

```shell
// Example with owner requirements
> curl https://api.stripe.com/v1/accounts/acct_1234 \
  -u sk_test_123:

{
  "id": "acct_1234",
  "past_due": {
    // third-party provider option for owners
    "currently_due": [
      "owners.first_name",
      "owners.last_name",
      // company.owners_provided is no longer a requirement
      "company.tax_id"
    ],
    "alternatives": [
      ...,
      {
        "original_fields_due": [
          "owners.first_name",
          "owners.last_name",
          "company.tax_id"
        ],
        // third-party provider option for directors
        "alternative_fields_due": [
          "directors.first_name",
          "directors.last_name",
          "company.directors_provided",
          "company.tax_id"
        ],
      }
    ]
  }
}
```

### Gestione degli errori

Gli errori relativi ai requisiti del titolare e del membro del consiglio di amministrazione possono includere i seguenti valori `code` oltre agli [errori comuni di mancata corrispondenza dei documenti e dei dettagli](https://docs.stripe.com/error-codes.md).

| Codice | Descrizione |
| --- | --- |
| `verification_missing_owners` | Nell’`Account` mancano informazioni sui titolari identificati da un fornitore terzo o che figurano in un documento o in un attestato digitale. |
| `verification_missing_directors` | Nell’`Account` mancano informazioni sui membri del consiglio di amministrazione identificati da un fornitore terzo o che figurano in un documento o in un attestato digitale. |
| `verification_data_not_found` (Public preview) | Un fornitore terzo non è riuscito a trovare informazioni sull’attività. |

A volte puoi risolvere questi errori aggiornando i dati dell’attività. Tuttavia, nella maggior parte dei casi, devi indirizzare l’account connesso al percorso di caricamento del documento o al percorso di attestazione digitale.

Quando Stripe identifica i titolari o i membri del consiglio di amministrazione mancanti, in alcuni casi un’API privata di anteprima può fornire dati su di loro. L’account connesso può utilizzare tali dati per creare le `Persons` scomparse.

### Implementa l'attestazione digitale per la verifica dell'UBO e del membro del consiglio di amministrazione utilizzando l'API

Il seguente esempio mostra come eseguire l’attestazione digitale per la verifica dell’UBO o dei membri del consiglio di amministrazione.

1. Recupera l’account per identificare i documenti di attestazione necessari.

   ```shell
   // Check for UBO attestation requirement
   > curl https://api.stripe.com/v1/accounts/acct_1234 \
     -u sk_test_123:
   
   // Response showing UBO attestation
   {
     "id": "acct_1234",
     "requirements": {
       "past_due": [
         "documents.proof_of_ultimate_beneficial_ownership.files",
         "documents.proof_of_ultimate_beneficial_ownership.signer",
       ],
       "errors": []
     }
   }
   
   // Or for directors & officers requirement
   {
     "id": "acct_1234",
     "requirements": {
       "past_due": [
         "documents.proof_of_registration.files",
         "documents.proof_of_registration.signer"
        ],
       "errors": []
     }
   }
   ```

L’opzione dei requisiti di attestazione digitale può essere visualizzata come opzione principale o in alternativa a un’altra opzione. Le opzioni particolari e l’ordine in cui compaiono possono variare da un account all’altro.

1. Genera un PDF utilizzando il modello e fallo firmare digitalmente da una persona autorizzata.

2. Carica il documento di attestazione firmato con l’API File.

   ```shell
   curl -X POST https://files.stripe.com/v1/files \
     -u sk_test_123: \
     -F purpose=account_requirement \
     -F file=@signed_attestation.pdf
   
   // Response
   {
     "id": "file_1234567890",
     "object": "file",
     "purpose": "account_requirement"
   }
   ```

3. Invia il documento con il documento di identità della `Person` che rappresenta il firmatario.

   ```shell
   // For UBO attestation
   curl -X POST https://api.stripe.com/v1/accounts/acct_1234 \
     -u sk_test_123: \
     -d "documents[proof_of_ultimate_beneficial_ownership][files][]=file_1234567890" \
     -d "documents[proof_of_ultimate_beneficial_ownership][signer][person]=person_xyz"
   
   // For D&O attestation
   curl -X POST https://api.stripe.com/v1/accounts/acct_1234 \
     -u sk_test_123: \
     -d "documents[proof_of_registration][files][]=file_1234567890" \
     -d "documents[proof_of_registration][signer][person]=person_xyz"
   ```

### Requisiti di convalida del firmatario

Chi può firmare le attestazioni

- Rappresentanti dell’account
- Titolari di attività (25% di proprietà e oltre)
- Membri del consiglio di amministrazione e dirigenti
- Altri membri autorizzati dell’account

Importante: il firmatario deve essere una persona esistente associata all’account. Solo le persone fisiche con un rapporto documentato con la persona giuridica possono firmare i documenti di attestazione.

### Gestione degli errori

L’attestazione digitale introduce scenari d’errore specifici che devi gestire:

#### Firmatario non valido

Si verifica quando il firmatario non è associato all’account o non ha l’autorità.

```shell
{
  "requirements": {
    "errors": [{
      "requirement": "documents.proof_of_ultimate_beneficial_ownership.files",
      "code": "invalid_signator",
      "reason": "Unauthorized attestation signer. The signer must have a documented relationship with the legal entity."
    },
    {
      "requirement": "documents.proof_of_ultimate_beneficial_ownership.signer",
      "code": "invalid_signator",
      "reason": "Unauthorized attestation signer. The signer must have a documented relationship with the legal entity."
    }]
  }
}
```

#### Documento non riuscito

Si verifica quando il documento caricato è illeggibile o errato.

```shell
{
  "requirements": {
    "past_due": ["documents.proof_of_registration.files"],
    "errors": [{
      "requirement": "documents.proof_of_registration.files",
      "code": "verification_document_failed_other",
      "reason": "Your team can contact Stripe to learn more about why identity verification failed."
    }]
  }
}
```

#### Firmatario inviato senza file

Errori API durante l’invio del firmatario senza file

```shell
{
  "error": {
    "code": "invalid_signator",
    "message": "signer.person can only be provided when a file is also provided",
    "type": "invalid_request_error"
  }
}
```

### Passaggi successivi

1. Aggiorna la tua integrazione per riscuotere i firmatari quando utilizzi i documenti di attestazione.
2. Implementa la gestione degli errori per i nuovi codici d’errore specifici dell’attestazione.
3. Forma il tuo team di assistenza sui nuovi requisiti di attestazione.

#### Precompila le informazioni sul titolare effettivo e sul membro del consiglio di amministrazione (Private preview)

Facoltativamente, puoi anche integrare un’API che rileva e precompila tramite codice gli UBO o i membri del consiglio di amministrazione associati a una persona giuridica. L’account connesso può verificare la relazione confermando le informazioni rilevate invece di caricare documenti o fornire un’attestazione digitale.

Questo percorso può aumentare i tassi di verifica e ridurre le complessità, ma non funziona per tutti gli account. Devi comunque gestire il caricamento dei documenti o le attestazioni digitali per gli account per i quali Stripe non può precompilare le relazioni.

Se ti interessa precompilare per la verifica UBO o membro del consiglio di amministrazione, crea il tuo account Express di seguito.

### Ti interessa accedere in anteprima al modulo precompilato di Stripe per UBO/membri del consiglio di amministrazione?

Enter your email to request access.

```bash
curl https://docs.stripe.com/preview/register \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Referer: https://docs.stripe.com/connect/upcoming-requirements-updates" \
  -d '{"email": "EMAIL", "preview": "risk_requirements_beta_preview"}'
```

## Requisiti di registrazione delle attività olandesi (KvK)

**In vigore dal 14 maggio 2026**

All’inizio del 2026, alle piattaforme è stato richiesto di raccogliere un numero KvK (Kamer van Koophandel), un numero univoco di registrazione aziendale a 8 cifre, dagli account connessi nei Paesi Bassi (NL). Nell’ambito di questa modifica, il tipo di business `individual` è stato reso con limitazioni con un errore `unsupported_business_type` e alle entità non incorporate è stato richiesto di fornire un numero KvK tramite `company.tax_id`.

A partire dal 14 maggio 2026, gli account connessi che rappresentano persone fisiche o entità non incorporate che non hanno accesso a una Dashboard in hosting su Stripe non sono più tenuti a fornire un numero KvK.

Gli account connessi che rappresentano persone fisiche o entità non incorporate che hanno accesso alla Dashboard Stripe completa o alla Dashboard Express devono ancora fornire un numero KvK.

### Cosa cambierà

- `business_type: "individual"` è ora supportato per gli account connessi nei Paesi Bassi che non hanno accesso a una Dashboard in hosting su Stripe. L’errore `unsupported_business_type` non viene più visualizzato per questi account.
- I tipi di business `unincorporated_partnership` e `unincorporated_non_profit` non richiedono più che `company.tax_id` contenga il numero KvK per gli account connessi che non hanno accesso a una Dashboard in hosting su Stripe.

### Cosa devi fare

Non è richiesta alcuna azione. Non è necessario apportare modifiche alla tua integrazione.

Per gli account connessi esistenti interessati da questa modifica:

- Stripe cancella automaticamente l’errore `unsupported_business_type` da `requirements.errors` per gli account di persone fisiche
- Eventuali limitazioni delle funzionalità (come `card_payments` o `transfers`) collegate a questo errore vengono rimosse automaticamente.
- Gli account che rappresentano persone fisiche o entità non incorporate che erano con limitazioni per mancanza del numero KvK vengono anch’essi automaticamente ripristinati.

## Nuovi codici di errore

### Codici di errore di verifica (Public preview)

Il nuovo codice di errore `verification_data_not_found` può comparire nell’array `requirements.errors` dell’oggetto `Account`. Questo errore indica che Stripe non è riuscita a recuperare informazioni (come i dati relativi a UBO o membri del consiglio di amministrazione/funzionari) dai fornitori di verifica terzi utilizzando i dettagli della persona giuridica associati all’account connesso. Ciò può accadere per diversi motivi, ma spesso è dovuto all’inserimento errato delle informazioni da parte dell’account.

Questo errore “dati non trovati” è distinto dai codici di errore di verifica esistenti:

- **`verification_missing_owners`**: indica che i titolari noti non sono presenti nell’account.
- **`verification_failed_keyed_match`**: indica una mancata corrispondenza tra le informazioni inviate e le fonti di verifica.

```shell
// Example: verification_data_not_found error
{
  "requirements": {
    "errors": [{
      "requirement": "owners",
      "code": "verification_data_not_found",
      "reason": "Stripe was unable to retrieve ownership or director information from third-party providers based on the current legal entity details. Verify that the business information on the account is correct."
    }]
  }
}
```

Per gestire questo errore, chiedi all’account connesso di rivedere e correggere le informazioni sulla persona giuridica (nome dell’azienda, numero di registrazione, indirizzo). Se aggiorna le informazioni, Stripe tenta automaticamente di verificarle di nuovo.

Se le informazioni dell’account sono corrette o se Stripe non riesce ancora a verificare le informazioni aggiornate, utilizza un metodo di verifica manuale come il caricamento dei documenti o l’attestazione digitale.

## Test

Puoi creare account di test da utilizzare durante lo sviluppo e il collaudo dell’integrazione. Gli account di test possono simulare diversi risultati di verifica, consentendo di vedere come l’API restituisce i requisiti e gli errori per ciascun caso.

I seguenti esempi ti aiutano a prepararti alle imminenti modifiche dei requisiti UE. Per ulteriori informazioni sui test di Connect in generale, consulta [Test di Stripe Connect](https://docs.stripe.com/connect/testing.md).

### Crea un account di test

Crea un `Account` di test inviando una richiesta POST all’API Accounts utilizzando la tua [chiave privata sandbox](https://docs.stripe.com/keys.md).

Per accedere ai nuovi requisiti prima che vengano rilasciati agli account in modalità non di test, imposta un’intestazione che abiliti una versione di anteprima dell’API, abilita la funzione di anteprima sperimentale dell’attivazione e abilita la versione di anteprima quando richiedi una funzionalità. Ad esempio:

```shell
curl https://api.stripe.com/v1/accounts \
  -u sk_test_123: \
  -H "Stripe-Version: 2026-01-28.preview;experimental_onboarding_preview=v2" \
  -d 'type'='custom' \
  -d 'country'='ES' \
  -d 'capabilities[card_payments][requested]'='true' \
  -d 'capabilities[card_payments][preview]'='true' \
  -d 'capabilities[transfers][requested]'='true' \
  -d 'capabilities[transfers][preview]'='true'
```

Gli esempi riportati di seguito mostrano come simulare situazioni diverse utilizzando valori che attivano risposte specifiche per gli account di test.

### Testare un account appartenente a una persona fisica

Questo esempio crea un account che non richiede la verifica della relazione perché il tipo di persona fisica di attività è `individual`.

Crea un account di test seguendo [le istruzioni precedenti](https://docs.stripe.com/connect/upcoming-requirements-updates.md#create-a-test-account), quindi imposta i dettagli di base dell’attività:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d business_type=individual \
  -d "business_profile[mcc]"=5995 \
  -d "business_profile[url]"="https://accessible.stripe.com"
```

La risposta include i requisiti di base per una persona fisica. Puoi soddisfare questi requisiti creando un rappresentante:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123/persons \
  -u sk_test_123: \
  -d "first_name=Marie" \
  -d "last_name=Dupont" \
  -d "dob[year]=1901" \
  -d "dob[month]=1" \
  -d "dob[day]=1" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=Madrid" \
  -d "address[postal_code]=28009" \
  -d "address[country]=ES" \
  -d "email=test@example.com" \
  -d "phone=%2B35366666666" \
  -d "nationality=ES" \
  -d "relationship[representative]=true"
```

Specificando la data di nascita 1901-01-01 si attiva la verifica dell’identità in una sandbox. Per altri risultati, consulta [Date di nascita di test](https://docs.stripe.com/connect/testing.md#test-dobs). Allo stesso modo, impostando la prima riga dell’indirizzo sulla stringa `address_full_match` si attiva la verifica dell’indirizzo. Per altri risultati, consulta [Indirizzi aziendali di test](https://docs.stripe.com/connect/testing.md#test-validation-addresses).

La risposta mostra che i requisiti della persona fisica sono diventati in sospeso. Se aspetti qualche istante e recuperi l’`Account`, puoi notare che tali requisiti sono stati soddisfatti:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123
```

Gli unici requisiti rimanenti sono per il conto (`external_account`) e i termini di servizio (TOS). Per cancellare i requisiti dei termini di servizio, imposta l’hash `tos_acceptance` dell’`Account`:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d "tos_acceptance[date]=1540248693" \
  -d "tos_acceptance[ip]=10.0.0.1"
```

Per soddisfare i requisiti del conto bancario, crea un conto bancario di test per `Account`. Specifica [un numero di conto bancario di test in base al Paese](https://docs.stripe.com/connect/testing.md#account-numbers):

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123/external_accounts \
  -u sk_test_123: \
  -d "external_account[object]=bank_account" \
  -d "external_account[account_number]=ES0700120345030000067890" \
  -d "external_account[country]=ES" \
  -d "external_account[currency]=EUR"
```

### Testare un account appartenente a un’azienda

Questo esempio crea un account soggetto a requisiti di verifica della relazione perché il tipo di persona giuridica dell’attività è `company`.

> Il Regno Unito richiede la verifica sia dei titolari effettivi finali che degli amministratori. Se disponi di account connessi nel Regno Unito, assicurati di effettuare il test con conti che hanno il Paese impostato su `GB`.

Crea un account di test seguendo [le istruzioni precedenti](https://docs.stripe.com/connect/upcoming-requirements-updates.md#create-a-test-account), quindi imposta i dettagli di base dell’attività:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d business_type=company \
  -d "business_profile[mcc]"=5995 \
  -d "business_profile[url]"="https://accessible.stripe.com" \
  -d "company[name]=Test company" \
  -d "company[phone]=628123456787" \
  -d "company[address][line1]=address_full_match" \
  -d "company[address][city]=Madrid" \
  -d "company[address][postal_code]=28009" \
  -d "company[address][country]=ES" \
  -d "company[tax_id]=000000000"
```

Se specifichi il numero di ID fiscale `000000000`, la verifica dell’azienda va a buon fine. Per altri trigger di risultato, consulta [Testare gli ID fiscali dell’attività](https://docs.stripe.com/connect/testing.md#test-business-tax-ids).

Poi fornisci un rappresentante.

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123/persons \
  -u sk_test_123: \
  -d "first_name=Adam" \
  -d "last_name=" \
  -d "dob[year]=1901" \
  -d "dob[month]=1" \
  -d "dob[day]=1" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=Madrid" \
  -d "address[postal_code]=28009" \
  -d "address[country]=ES" \
  -d "email=test@example.com" \
  -d "phone=%2B35366666666" \
  -d "nationality=ES" \
  -d "relationship[representative]=true" \
  -d "relationship[title]=CEO"
```

Al termine della verifica elaborata per il rappresentante, puoi visualizzare i requisiti rimanenti con una richiesta GET:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123:
```

I requisiti nella matrice `requirements.currently_due` elencano i dettagli di cui abbiamo bisogno sui titolari dell’`Account`. La matrice `requirements.alternatives` può includere informazioni facoltative che puoi fornire per soddisfare determinati requisiti. Ad esempio:

```json
{
  "alternative_fields_due": [
    "company.owners_provided",
    "documents.proof_of_ultimate_beneficial_ownership.files",
    "owners.first_name",
    "owners.last_name"
  ],
  "original_fields_due": [
    "company.owners_provided",
    "owners.first_name",
    "owners.last_name"
  ]
}
```

Puoi specificare i campi elencati in `alternative_fields_due` come altro modo per soddisfare i requisiti nell’elenco `original_fields_due` corrispondente. In questo esempio, `alternative_fields_due` include le proprietà in `original_fields_due`, oltre a `documents.proof_of_ultimate_beneficial_ownership.files`. Ciò significa che le informazioni originali sono obbligatorie, ma che hai la possibilità di fornire anche un documento che dimostri il titolare effettivo finale per facilitare l’elaborazione della verifica.

Per soddisfare i requisiti del titolare, crea due persone e contrassegnale come titolari. I nomi in questo esempio sono valori con codice rigido per gli account di test che utilizzano l’ID fiscale `000000000`.

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123/persons \
  -u sk_test_123: \
  -d "first_name=Marie" \
  -d "last_name=Dupont" \
  -d "dob[year]=1901" \
  -d "dob[month]=1" \
  -d "dob[day]=1" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=Madrid" \
  -d "address[postal_code]=28009" \
  -d "address[country]=ES" \
  -d "email=owner@example.com" \
  -d "relationship[owner]=true"

curl https://api.stripe.com/v1/accounts/acct_test_123/persons \
  -u sk_test_123: \
  -d "first_name=Louis" \
  -d "last_name=Martin" \
  -d "dob[year]=1901" \
  -d "dob[month]=1" \
  -d "dob[day]=1" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=Madrid" \
  -d "address[postal_code]=28009" \
  -d "address[country]=ES" \
  -d "email=owner@example.com" \
  -d "relationship[owner]=true"
```

Indica che hai creato tutti i titolari dell’`Account` impostando `company.owners_provided` su true:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d "company[owners_provided]=true"
```

Se completi questa richiesta, tutti i requisiti del titolare verranno rimossi dall’`Account`.

### Testa il fallback per la verifica dei documenti

I requisiti del titolare di un `Account` rimangono in `currently_due` (o in `pending_verification`, se è in corso la verifica) fino a quando la verifica non va a buon fine.

Quando la verifica non va a buon fine, puoi caricare un documento. Questo esempio mostra come farlo utilizzando l’API.

Crea un account di test seguendo [le istruzioni precedenti](https://docs.stripe.com/connect/upcoming-requirements-updates.md#create-a-test-account), quindi imposta i dettagli di base dell’attività. Imposta l’ID fiscale su `222221001`, il che attiva l’esito negativo della verifica del beneficiario. Per altri risultati, consulta [Test degli ID fiscali delle attività](https://docs.stripe.com/connect/testing.md#test-business-tax-ids).

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d business_type=company \
  -d "business_profile[mcc]"=5995 \
  -d "business_profile[url]"="https://accessible.stripe.com" \
  -d "company[name]=Test company" \
  -d "company[phone]=628123456787" \
  -d "company[address][line1]=address_full_match" \
  -d "company[address][city]=Madrid" \
  -d "company[address][postal_code]=28009" \
  -d "company[address][country]=ES" \
  -d "company[tax_id]=222221001"
```

Poi fornisci un rappresentante:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123/persons \
  -u sk_test_123: \
  -d "first_name=Marie" \
  -d "last_name=Dupont" \
  -d "dob[year]=1901" \
  -d "dob[month]=1" \
  -d "dob[day]=1" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=Madrid" \
  -d "address[postal_code]=28009" \
  -d "address[country]=ES" \
  -d "email=test@example.com" \
  -d "phone=%2B35366666666" \
  -d "nationality=ES" \
  -d "relationship[representative]=true" \
  -d "relationship[title]=CEO"
```

Quindi crea un titolare:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123/persons \
  -u sk_test_123: \
  -d "first_name=Adam" \
  -d "last_name=Smith" \
  -d "dob[year]=1901" \
  -d "dob[month]=1" \
  -d "dob[day]=1" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=Madrid" \
  -d "address[postal_code]=28009" \
  -d "address[country]=ES" \
  -d "email=owner@example.com" \
  -d "relationship[owner]=true"
```

Indica che hai finito di creare titolari impostando `company.owners_provided` su true:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d "company[owners_provided]=true"
```

Se esamini l’`Account`, puoi notare che i requisiti del titolare rimangono e che la matrice `requirements.errors` contiene una voce con un `requirement` di `owner` e un `code` di `verification_failed_other`. Ciò significa che Stripe non è stata in grado di verificare i titolari utilizzando le informazioni fornite sull’azienda.

> Se utilizzi la versione in anteprima pubblica dell’API, il codice di errore è [verification_data_not_found](https://docs.stripe.com/changelog/clover/2025-10-29/accounts-verification-data-error.md) anziché `verification_failed_other`.

Se ricevi questo errore per un `Account` reale, verifica di aver inserito i dati della persona giuridica corretta. Questo esempio presuppone che i dati siano corretti e che tu debba fornire un documento per verificarli.

Per un `Account` reale, [utilizza l’API Files per caricare un documento](https://docs.stripe.com/file-upload.md), quindi aggiorna `Account` utilizzando il token restituito nella risposta. Per questo esempio, utilizza il token di test `file_relationship_document_success`. Per altri trigger di risultato, consulta i [Test dei token dei documenti di relazione](https://docs.stripe.com/connect/testing.md#test-relationship-document-tokens).

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d "documents[proof_of_ultimate_beneficial_ownership][files][]"=file_relationship_document_success
```

Pochi istanti dopo aver aggiornato `Account`, puoi recuperare i requisiti attuali e verificare che i requisiti del titolare siano stati soddisfatti.

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123:
```

### Testare un’azienda senza titolari idonei

Se un’azienda non ha titolari con una quota di proprietà superiore al 25%, Stripe richiede le informazioni sul membro del consiglio di amministrazione. Questo esempio mostra come fornire le informazioni sul membro del consiglio di amministrazione.

Crea un account di test seguendo [le istruzioni precedenti](https://docs.stripe.com/connect/upcoming-requirements-updates.md#create-a-test-account), quindi imposta i dettagli di base dell’attività. Imposta l’ID fiscale su `000000000`, in modo che la verifica dell’azienda vada a buon fine.

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d business_type=company \
  -d "business_profile[mcc]"=5995 \
  -d "business_profile[url]"="https://accessible.stripe.com" \
  -d "company[name]=Test company" \
  -d "company[phone]=628123456787" \
  -d "company[address][line1]=address_full_match" \
  -d "company[address][city]=Madrid" \
  -d "company[address][postal_code]=28009" \
  -d "company[address][country]=ES" \
  -d "company[tax_id]=000000000"
```

Poi fornisci un rappresentante:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123/persons \
  -u sk_test_123: \
  -d "first_name=Marie" \
  -d "last_name=Dupont" \
  -d "dob[year]=1901" \
  -d "dob[month]=1" \
  -d "dob[day]=1" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=Madrid" \
  -d "address[postal_code]=28009" \
  -d "address[country]=ES" \
  -d "email=test@example.com" \
  -d "phone=%2B35366666666" \
  -d "nationality=ES" \
  -d "relationship[representative]=true" \
  -d "relationship[title]=CEO"
```

Per indicare che l’attività non ha titolari rilevanti, imposta `company.owners_provided` su true senza creare titolari. Per riutilizzare un `Account` di test esistente con titolari, puoi rimuovere tutti i titolari esistenti.

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d "company[owners_provided]=true"
```

La matrice `requirements.alternatives` contiene una serie di proprietà del membro del consiglio di amministrazione in alternativa alle proprietà del titolare. Il processo di creazione di un membro del consiglio di amministrazione è molto simile a quello di creazione di un titolare:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123/persons \
  -u sk_test_123: \
  -d "first_name=Adam" \
  -d "last_name=Smith" \
  -d "dob[year]=1901" \
  -d "dob[month]=1" \
  -d "dob[day]=1" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=Madrid" \
  -d "address[postal_code]=28009" \
  -d "address[country]=ES" \
  -d "email=owner@example.com" \
  -d "relationship[director]=true" \
  -d "relationship[title]=President"
```

Indica che hai finito di creare membri del consiglio di amministrazione impostando `company.directors_provided` su true:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d "company[directors_provided]=true"
```

Per simulare una corretta verifica delle relazioni, imposta `company.name` sulla stringa `match_name_relationships`:

```shell
curl https://api.stripe.com/v1/accounts/acct_test_123 \
  -u sk_test_123: \
  -d "company[name]=match_name_relationships"
```

### Altri casi di test

Anche i seguenti test sono preziosi:

- Un’entità di tipo `non_profit`, che richiede la verifica del membro del consiglio di amministrazione (la verifica UBO non è un’opzione).
- Soddisfare i requisiti di verifica del membro del consiglio di amministrazione utilizzando un documento.
- Aziende nel Regno Unito che richiedono sia la verifica dell’UBO che quella del membro del consiglio di amministrazione.

#### Programma - Brasile

*Ultimo aggiornamento: 1° luglio 2026*

## Comprendere le modifiche ai requisiti di verifica

Per allinearsi alle normative della Banca Centrale del Brasile (BCB) ai sensi della Circolare BCB 3978/20, Stripe aggiornerà i nostri requisiti di verifica per adeguata verifica della clientel (KYC), adeguata verifica dell’attività (KYB) e per i titolari effettivi finali (UBO).

Se i tuoi conti connessi operano in Brasile, potrebbe essere necessario aggiornare i flussi di attivazione e di regolarizzazione. La mancata esecuzione degli aggiornamenti richiesti interromperà l’accesso dei tuoi conti connessi ai pagamenti e ai servizi finanziari.

## Scegli un approccio di integrazione

Stripe consiglia di utilizzare l’attivazione in hosting o incorporata su Stripe per raccogliere i requisiti di verifica dell’attività e dell’identità. Queste opzioni richiedono meno risorse da implementare e gestire rispetto all’attivazione con API. La tabella seguente descrive le principali differenze:

- [Attivazione in hosting su Stripe](https://docs.stripe.com/connect/hosted-onboarding.md): (Consigliato) invia gli account a un flusso in hosting su Stripe per inoltrare le informazioni richieste.
- [Attivazione integrata](https://docs.stripe.com/connect/embedded-onboarding.md): (Consigliato) integra componenti di attivazione forniti da Stripe che consentono agli account di inviare le informazioni direttamente a Stripe dalla tua app.
- [Attivazione tramite API](https://docs.stripe.com/connect/api-onboarding.md): crea e gestisci un flusso di attivazione personalizzato utilizzando le API di Stripe.

|  | **Attivazione in hosting su Stripe** | **Attivazione integrata** | **Attivazione basata su API** |
| --- | --- | --- | --- |
| Ottimali per | Piattaforme che desiderano che Stripe gestisca l’attivazione | Piattaforme che desiderano un flusso di attivazione brandizzato in-app | Piattaforme che hanno necessitano di pieno controllo, possono crearlo e mantenerlo |
| Impegno di implementazione iniziale | 3-4 settimane di progettazione | 3-4 settimane di progettazione | 30-40 settimane di progettazione |
| Impegno continuo per risolvere gli aggiornamenti dei requisiti | Gestito automaticamente da Stripe | Gestito automaticamente da Stripe | Richiede un monitoraggio proattivo delle modifiche imminenti, oltre a risorse tecniche per aggiornare il flusso di attivazione a ogni modifica |
| Personalizzazione | Interfaccia in hosting su Stripe con branding della piattaforma | Componente altamente tematizzabile a cui gli account accedono attraverso l’app della piattaforma | La piattaforma progetta, crea e gestisce l’interfaccia |
| Impegno per il supporto di altri Paesi | Gestito automaticamente da Stripe | Gestito automaticamente da Stripe | Richiede risorse tecniche per aggiornare il flusso di attivazione per ogni Paese aggiuntivo |

Scopri di più sulle [opzioni di attivazione Connect](https://docs.stripe.com/connect/onboarding.md) e sulla [migrazione dei tuoi flussi di integrazione e risoluzione basati su API a flussi integrati o in hosting su Stripe](https://docs.stripe.com/connect/migrate-from-api-onboarding.md).

Le piattaforme che utilizzano l’attivazione in hosting o integrato da Stripe non devono modificare le proprie integrazioni per questi aggiornamenti dei requisiti: Stripe li gestisce automaticamente. Le piattaforme che utilizzano l’attivazione basata su API devono monitorare attivamente le modifiche ai requisiti e allocare risorse tecniche per ogni aggiornamento.

## Panoramica sull’integrazione API

Se la tua piattaforma utilizza l’attivazione basata su API, devi aggiornare l’integrazione per gestire le seguenti modifiche per i conti brasiliani connessi:

- **Adeguata verifica della clientela: verifica dell’identità individuale**. raccogli CPF, data di nascita, indirizzo e verifica della presenza per tutti gli account individuali e i rappresentanti aziendali.
- **Adeguata verifica dell’attività: verifica dell’identità della persona giuridica**. raccogli CNPJ, ragione sociale e sede legale per le persone giuridiche, gestisci i flussi di verifica programmatica e i flussi alternativi basati su documentazione.
- **Stato di registrazione dell’ID fiscale**: gestisci lo stato di registrazione per i codici CPF e CNPJ inattivi o non validi
- **Prova di autorizzazione**: verifica che il rappresentante dell’attività sia autorizzato a rappresentare l’azienda; risolvi il problema tramite l’abbinamento a livello di codice o l’attestazione `company.representative_declaration`.
- **Titolare effettivo finale e verifica della relazione**: verifica che i titolari effettivi finali e i membri del consiglio di amministrazione siano elencati nel registro CNPJ; risolvi il problema tramite l’abbinamento a livello di codice, il caricamento di documenti o il flusso di fallback da titolare a membro del consiglio di amministrazione.
- **Capacità finanziaria**: riscuoti il reddito mensile o i ricavi lordi.
- **Nuovi codici di errore**: gestisci i nuovi codici di errore di verifica emersi nell’array `requirements.errors`.

## Adeguata verifica della clientela: verifica dell’identità delle persone fisiche

Per allinearsi ai requisiti della Banca Centrale del Brasile (BCB), Stripe rafforzerà la verifica dell’identità per gli account di persone fisiche in Brasile. Gli account connessi di tipo persona fisica e i rappresentanti degli account di tipo persona giuridica dovranno essere verificati: potrebbe essere necessario fornire informazioni aggiuntive durante la fase di attivazione.

Le seguenti persone devono fornire informazioni controllabili per l’adeguata verifica della clientela:

- **Rappresentante dell’attività**: la persona che firma i Termini di servizio ed è legalmente responsabile del conto.
- **Titolari**: i titolari delle entità giuridiche (ove applicabile).

Stripe utilizza una combinazione di dati inseriti manualmente e revisione dei documenti per verificare l’identità di ogni persona. Inoltre, la normativa brasiliana richiede una verifica di presenza (`proof_of_liveness`) per confermare che la persona che presenta i documenti di identità sia fisicamente presente. I flussi di attivazione in hosting su Stripe e integrati gestiscono automaticamente questa fase. Se la tua piattaforma utilizza l’attivazione basata su API, devi reindirizzare gli utenti a per una fase di verifica in hosting su Stripe o integrare il componente `<stripe-connect-kyc-details>` integrato per completare la raccolta dei dati di verifica di presenza. Vedi [Gestire i requisiti di verifica di presenza](https://docs.stripe.com/connect/api-onboarding.md?accounts-namespace=v1&liveness=hosted#proof-of-liveness) per maggiori dettagli.

**Requisiti di età:** i rappresentanti aziendali devono avere almeno 18 anni. I titolari,i membri del consiglio di amministrazione e i dirigenti devono avere almeno 18 anni. Ai nuovi utenti che non soddisfano questi requisiti non saranno abilitate le funzionalità. I conti esistenti con un rappresentante aziendale di età inferiore ai 18 anni saranno disattivati immediatamente al momento della migrazione della piattaforma.

### Campi obbligatori

I conti brasiliani intestati a persone fisiche ora richiedono i seguenti campi:

| Campo | Descrizione |
| --- | --- |
| `person.first_name`, `person.last_name` | Ragione sociale completa. |
| `person.id_number` | CPF (ID fiscale delle persone fisiche brasiliano). |
| `person.address.line1`, `.city`, `.postal_code`, `.country` | Indirizzo di residenza in Brasile. Tutti i rappresentanti aziendali devono essere residenti in Brasile e fornire un indirizzo brasiliano. |
| `person.dob.day`, `.month`, `.year` | Data di nascita. |
| `person.verification.proof_of_liveness` | Selfie per il rilevamento della presenza. (Solo per i flussi di attivazione in hosting su Stripe e integrati). |
| `person.verification.additional_document` | Requisito documentale facoltativo in caso di mancata verifica dell’indirizzo digitato. |

Assicurati che la tua interfaccia utente raccolga specificamente un CPF: non accettiamo altri tipi di ID (numeri di passaporto, ID fiscali esteri) per gli account brasiliani.

### Risposta ai requisiti iniziali

Quando viene creato un nuovo conto intestato a persone fisiche, l’hash `requirements` includerà:

```json
{
  "currently_due": [
    "person.first_name",
    "person.last_name",
    "person.id_number",
    "person.dob.day",
    "person.dob.month",
    "person.dob.year",
    "person.address.line1",
    "person.address.city",
    "person.address.state",
    "person.address.country",
    "person.verification.proof_of_liveness"
  ],
  "pending_verification": [],
  "alternatives": [
    {
      "original_fields_due": ["person.address.line1", "person.address.city", "person.address.state", "person.address.country"],
      "alternative_fields_due": ["person.verification.additional_document"]
    }
  ],
  "errors": []
}
```

### Raccolta dei dati personali

Utilizza l’API Persone per inviare singoli campi:

```shell
curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}}/persons/{{PERSON_ID}} \
  -u "{{PLATFORM_SECRET_KEY}}:" \
  -d "first_name=Maria" \
  -d "last_name=Silva" \
  -d "id_number=123.456.789-09" \
  -d "dob[day]=15" \
  -d "dob[month]=6" \
  -d "dob[year]=1985" \
  -d "address[line1]=Rua das Flores, 123" \
  -d "address[city]=São Paulo" \
  -d "address[state]=SP" \
  -d "address[postal_code]=01310-100" \
  -d "address[country]=BR"
```

### Gestione degli errori

| Codice di errore | Trigger | Rimedio |
| --- | --- | --- |
| `verification_failed_id_number_inactive` | CPF trovato ma lo stato è inattivo (ad esempio, sospeso, annullato, deceduto). | Gli utenti devono risolvere lo stato del CPF con l’autorità fiscale brasiliana (Receita Federal). Per gli account con stato del CPF cancellato, nullo o di persone decedute, Stripe potrebbe disabilitare le relative funzionalità. |
| `verification_failed_keyed_match` | Sia la ricerca automatica che la verifica manuale non sono riuscite a verificare il CPF. | L’utente invia nuovamente il CPF e il documento di identità: il conto entra nella coda MVR. |
| `verification_document_type_not_supported` | Il documento caricato è di tipo errato, proviene da un Paese non supportato o è illeggibile. | L’utente ricarica un documento di identità rilasciato da un’autorità governativa brasiliana. |

## Verifica dell’identità della persona giuridica per la verifica dell’attività

Per allinearsi ai requisiti antiriciclaggio (AML) della Banca Centrale del Brasile (BCB), Stripe aggiornerà i requisiti di verifica per le entità giuridiche in Brasile. Questo tipo di verifica rientra nella più ampia categoria dei requisiti di adeguata verifica dell’attività (KYB). Se i tuoi account connessi includono attività costituite in Brasile, potrebbe essere necessario fornire informazioni aggiuntive durante la fase di attivazione.

Stripe verifica le persone giuridiche utilizzando il CNPJ (Cadastro Nacional da Pessoa Jurídica), il numero di registrazione nazionale delle società brasiliane, insieme alla ragione sociale e alla sede legale. Stripe effettua innanzitutto una verifica automatica confrontando i dati con il registro CNPJ del governo brasiliano. Se le informazioni inserite non corrispondono, il conto può risolvere il problema caricando un documento di verifica della società (come un certificato CNPJ rilasciato dalla Receita Federal).

Oltre alla verifica dell’identità, la normativa brasiliana in materia di antiriciclaggio richiede a Stripe di valutare la capacità finanziaria di un conto connesso prima di abilitare addebiti e bonifici. Tutti i conti brasiliani devono fornire la stima dei ricavi o del reddito mensile prima che le funzionalità vengano attivate. Queste informazioni sono solo a scopo di monitoraggio normativo e non le verifichiamo in modo indipendente al momento dell’attivazione.

### Campi obbligatori

I seguenti campi sono obbligatori per i conti delle persone giuridiche brasiliane:

| Campo | Descrizione |
| --- | --- |
| `company.tax_id` | CNPJ (numero di registrazione aziendale brasiliano a 14 cifre). |
| `company.name` | Ragione sociale legale: deve corrispondere al registro CNPJ. |
| `company.address.line1`, `.city`, `.postal_code` | Indirizzo aziendale registrato in Brasile. |
| `company.verification.document` | Opzionale inizialmente, obbligatorio se la verifica programmatica non va a buon fine. |
| `business_profile.monthly_estimated_revenue.amount` | Ricavi lordi mensili in BRL. |
| `business_profile.monthly_estimated_revenue.currency` | Deve essere `brl`. |

### Risposta ai requisiti iniziali

```json
{
  "currently_due": [
    "company.tax_id",
    "company.name",
    "company.address.line1",
    "company.address.city",
    "company.address.postal_code",
    "business_profile.monthly_estimated_revenue.amount",
    "business_profile.monthly_estimated_revenue.currency"
  ],
  "pending_verification": [],
  "alternatives": [
    {
      "original_fields_due": [
        "company.tax_id",
        "company.name",
        "company.address.line1",
        "company.address.city",
        "company.address.postal_code"
      ],
      "alternative_fields_due": [
        "company.tax_id",
        "company.name",
        "company.address.line1",
        "company.address.city",
        "company.address.postal_code",
        "company.verification.document"
      ]
    }
  ],
  "errors": []
}
```

L’array `alternatives` indica che, se la verifica programmatica del CNPJ non va a buon fine, la piattaforma può risolvere il problema fornendo anche un `company.verification.document`.

### Raccolta dei dati aziendali

```shell
curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \
  -u "{{PLATFORM_SECRET_KEY}}:" \
  -d "company[tax_id]=12.345.678/0001-99" \
  -d "company[name]=Empresa Exemplo Ltda" \
  -d "company[address][line1]=Avenida Paulista, 1000" \
  -d "company[address][city]=São Paulo" \
  -d "company[address][postal_code]=01310-100" \
  -d "company[address][country]=BR" \
  -d "business_profile[monthly_estimated_revenue][amount]=5000000" \
  -d "business_profile[monthly_estimated_revenue][currency]=brl"
```

Dopo aver inviato l’ID fiscale, il nome e l’indirizzo dell’azienda, i requisiti passano a `pending_verification` mentre Stripe verifica il registro CNPJ:

```json
{
  "currently_due": [],
  "pending_verification": [
    "company.tax_id",
    "company.name",
    "company.address.line1",
    "company.address.city",
    "company.address.postal_code"
  ],
  "alternatives": [],
  "errors": []
}
```

Attendere un webhook `account.updated` prima di procedere. Se la verifica ha esito positivo, tutti i campi vengono cancellati dai requisiti. Se la verifica non va a buon fine, consulta la sezione relativa alla gestione degli errori di seguito.

### Stato della registrazione dell’ID fiscale

Oltre a verificare il CNPJ rispetto ai registri aziendali, Stripe controlla lo stato di registrazione del CNPJ (e del CPF del rappresentante aziendale) rispetto ai registri del governo brasiliano. Non è possibile modificare l’ID fiscale dopo averlo impostato.

| Tipo di persona giuridica | Approvato | Errore | È necessaria la disattivazione immediata |
| --- | --- | --- | --- |
| Persone fisiche (CPF) | Regolare | Sospeso, in attesa di regolarizzazione | Annullato, nullo, deceduto |
| Persone giuridiche (CNPJ) | Attiva (Ativa), In attesa di regolarizzazione (Ativa não regular) | Sospesa (Suspensa) | Sciolta (Baixada), Cancellata (Baixada), Inidonea (Inapta), Nulla (Nula), Con sede all’estero |

I conti con un CPF o un CNPJ sospeso vengono considerati validi al momento dell’attivazione, ma devono risolvere il loro stato entro circa 30 giorni. Se non risolto, limiteremo le funzionalità di pagamento. I conti con stati che richiedono la disattivazione (cancellato, nullo, deceduto, sciolto, inidoneo) hanno tutte le funzionalità disabilitate immediatamente e non possono essere ripristinati tramite il caricamento di documenti.

### Capacità finanziaria

La normativa brasiliana in materia di antiriciclaggio impone a Stripe di raccogliere la capacità finanziaria stimata di un conto connesso prima di abilitare addebiti e bonifici. Ciò si applica a tutti i conti brasiliani, sia di persone fisiche che di persone giuridiche.

`monthly_estimated_revenue.amount` è espresso nella più piccola unità monetaria (centavos). Ad esempio, 50.000 BRL = `5000000`. Raccogliamo i valori solo a fini di monitoraggio normativo e non li verifichiamo in modo indipendente al momento dell’attivazione.

### Gestione degli errori

| Codice di errore | Trigger | Rimedio |
| --- | --- | --- |
| `verification_failed_keyed_match` | CNPJ non trovato, oppure la ragione sociale o l’indirizzo non corrispondono al registro CNPJ. | Reinserire la ragione sociale e l’indirizzo registrato corretti oppure caricare `company.verification.document`. |
| `verification_failed_id_number_status_not_found` | CNPJ trovato ma impossibile recuperare lo stato fiscale. | Invia nuovamente o carica un documento di verifica dell’azienda. |
| `verification_failed_id_number_inactive` | CNPJ trovato ma lo stato è inattivo (ad esempio, sospeso, sciolto). | Per lo stato “sospeso”, l’account dispone di un periodo di grazia per risolvere la questione con la Receita Federal. Per gli stati “sciolto”, “annullato”, “inidoneo” o “nullo”, il conto verrà disattivato: non è possibile risolvere la questione tramite il caricamento di documenti. |
| `verification_document_type_not_supported` | Il documento aziendale caricato è illeggibile o di tipo errato. | Carica nuovamente un documento di verifica aziendale valido. |
| `verification_document_name_mismatch` | La ragione sociale riportata nel documento non corrisponde a quello inserito. | Inserisci nuovamente la ragione sociale esattamente come appare sul certificato CNPJ. |
| `verification_document_id_number_mismatch` | L’ID fiscale nel documento non corrisponde al CNPJ inserito, oppure lo stato dell’ID fiscale non è stato trovato o è inattivo. | Carica nuovamente un certificato CNPJ aggiornato rilasciato dalla Receita Federal. |
| `verification_document_address_mismatch` | L’indirizzo nel documento non corrisponde all’indirizzo inserito. | Reinserisci l’indirizzo in modo che corrisponda a quello registrato sul certificato CNPJ. |

## Prova di autorizzazione

Tutti i conti non `individual` in Brasile richiedono la verifica della prova di autorizzazione (PoA). Questa conferma che il rappresentante dell’attività è autorizzato ad agire per conto dell’azienda.

Stripe tenta per prima cosa la verifica a livello di codice confrontando il nome del rappresentante con il registro CNPJ. Se il nome del rappresentante corrisponde a una persona autorizzata nel registro, la verifica viene superata automaticamente e non sono necessarie ulteriori azioni. Se il controllo a livello di codice ha esito negativo, il rappresentante deve inviare un’attestazione `company.representative_declaration`.

### Alternativa per i requisiti iniziali

Per un `Account` aziendale, l’array [alternatives](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-alternatives) contiene i campi obbligatori per l’attestazione della dichiarazione del rappresentante:

```json
{
  "alternatives": [
    {
      "original_fields_due": ["representative.first_name", "representative.last_name"],
      "alternative_fields_due": [
        "company.representative_declaration.date",
        "company.representative_declaration.ip",
        "representative.first_name",
        "representative.last_name"
      ]
    }
  ]
}
```

Se il tentativo iniziale di Stripe di verificare `representative.first_name` e `representative.last_name` ha esito negativo, la piattaforma o l’account deve fornire la data e l’indirizzo IP dell’attestazione del rappresentante. Anche il nome e il cognome sono ancora obbligatori (figurano sia in `original_fields_due` sia in `alternative_fields_due`).

### Stato di errore quando la verifica a livello di codice ha esito negativo

Se il nome fornito non corrisponde al registro CNPJ, l’array [requirements.errors](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-errors) contiene requisiti specifici di `Person` con codici di errore `verification_failed_representative_authority`. Inoltre, l’array `alternatives` viene aggiornato per fare riferimento all’ID `Person` in `original_fields_due`:

```json
{
  "errors": [
    { "requirement": "people.{{PERSON_ID}}.first_name", "code": "verification_failed_representative_authority" },
    { "requirement": "people.{{PERSON_ID}}.last_name", "code": "verification_failed_representative_authority" }
  ],
  "alternatives": [
    {
      "original_fields_due": [
        "company.name",
        "company.tax_id",
        "people.{{PERSON_ID}}.first_name",
        "people.{{PERSON_ID}}.last_name"
      ],
      "alternative_fields_due": [
        "company.representative_declaration.date",
        "company.representative_declaration.ip"
      ]
    },
    {
      "original_fields_due": ["company.owners_provided", "owners.first_name", "owners.last_name"],
      "alternative_fields_due": [
        "company.directors_provided",
        "company.owners_provided",
        "directors.first_name",
        "directors.last_name"
      ]
    },
    {
      "original_fields_due": ["company.owners_provided", "owners.first_name", "owners.last_name"],
      "alternative_fields_due": [
        "company.directors_provided",
        "company.owners_provided",
        "directors.first_name",
        "directors.last_name",
        "documents.proof_of_registration.files"
      ]
    },
    {
      "original_fields_due": ["company.owners_provided", "owners.first_name", "owners.last_name"],
      "alternative_fields_due": [
        "company.owners_provided",
        "documents.proof_of_ultimate_beneficial_ownership.files",
        "owners.first_name",
        "owners.last_name"
      ]
    }
  ]
}
```

### Invia la dichiarazione del rappresentante

Per risolvere una verifica della prova di autorizzazione a livello di codice non andata a buon fine, fornisci l’attestazione della dichiarazione del rappresentante:

```shell
curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \
  -u "{{PLATFORM_SECRET_KEY}}:" \
  -d "company[representative_declaration][date]={{UNIX_TIMESTAMP}}" \
  -d "company[representative_declaration][ip]={{USER_IP_ADDRESS}}" \
  -d "company[representative_declaration][user_agent]={{USER_AGENT}}"
```

Il campo `date` è un timestamp Unix che rappresenta il momento in cui il rappresentante ha accettato la dichiarazione. Il campo `ip` è l’indirizzo IP del rappresentante in quel momento. Il campo `user_agent` è facoltativo ma consigliato.

Una volta fornita la dichiarazione, gli errori della prova di autorizzazione scompaiono e l’account può procedere con i requisiti rimanenti (ad esempio la verifica dei titolari effettivi finali).

### Gestione degli errori

| Codice di errore | Trigger | Rimedio |
| --- | --- | --- |
| `verification_failed_representative_authority` | Il nome del rappresentante non corrisponde a nessuna persona autorizzata nel registro CNPJ. | Invia `company.representative_declaration` con `date` (timestamp Unix) e `ip` (indirizzo IP del rappresentante) per attestare l’autorizzazione. |

## Verifica del titolare effettivo finale e delle relazioni

La normativa brasiliana antiriciclaggio (Circolare BCB 3978/20) richiede che i titolari effettivi finali e i membri del consiglio di amministrazione di una persona giuridica siano identificati e verificati in quanto legalmente elencati nel registro CNPJ.

### Ambito della normativa

I seguenti tipi di business sono soggetti alla normativa antiriciclaggio:

| Tipo di verifica | Strutture aziendali |
| --- | --- |
| Verifica del titolare effettivo finale | Società a responsabilità limitata pluripersonale (MMLLC), società per azioni privata, società di persone privata |
| Verifica dei membri del consiglio di amministrazione | Società per azioni, organismo governativo, organizzazione non profit |
| Escluso dall’ambito | Persona fisica, ditta individuale (MEI) |

### Raccogli le informazioni in ordine

Raccogli prima le informazioni sui titolari (titolare effettivo finale). Se l’account non ha titolari, ad esempio quando tutti gli azionisti sono entità giuridiche anziché persone fisiche, raccogli invece le informazioni sui membri del consiglio di amministrazione. Questa logica a cascata aiuta Stripe a verificare i titolari effettivi nell’assetto proprietario dell’account nel modo più efficiente possibile.

### Come funziona la verifica

Stripe consiglia di indicare i titolari e i membri del consiglio di amministrazione nel modo seguente:

1. **Precompilazione tramite codice** (Private preview): dopo il completamento della verifica KYB, puoi ottenere i nomi dei titolari o dei membri del consiglio di amministrazione dall’API Prefill. Se fornisci persone i cui nomi corrispondono, la verifica viene superata tramite corrispondenza unidirezionale. Consulta [Precompilare le informazioni sul titolare e sul membro del consiglio di amministrazione](https://docs.stripe.com/connect/upcoming-requirements-updates.md#prefill-owner-and-director-information) per registrarti.
2. **Fallback del documento**: se i nomi pre-compilati non corrispondono, carica `documents.proof_of_ultimate_beneficial_ownership` (per i titolari) o `documents.proof_of_registration` (per i membri del consiglio di amministrazione).
3. **Procedura del flusso di fallback per i membri del consiglio di amministrazione**: se non è possibile verificare i titolari (ad esempio se tutti i titolari sono persone giuridiche anziché persone fisiche), risolvi utilizzando invece `company.directors_provided` e le persone che ricoprono il ruolo di membro del consiglio di amministrazione.

### Campi Person obbligatori

| Campo | Descrizione |
| --- | --- |
| `person.first_name`, `person.last_name` | Ragione sociale completa (deve corrispondere al registro CNPJ per la verifica a livello di codice). |
| `person.id_number` | CPF (ID fiscale delle persone fisiche brasiliano). |
| `person.dob.day`, `.month`, `.year` | Data di nascita. |
| `person.address.line1`, `.city`, `.state`, `.postal_code` | Indirizzo di residenza in Brasile. |
| `person.email` | Indirizzo email. |
| `person.political_exposure` | Dichiarazione sull’esposizione politica (`none` o `existing`). |
| `person.relationship.owner` o `person.relationship.director` | Ruolo sull’account (`owner` per i titolari effettivi finali, `director` per i membri del consiglio di amministrazione). |
| `person.relationship.percent_ownership` | Facoltativo; se viene omesso, la persona viene considerata un titolare effettivo finale (soglia > 25%). |

### Alternative ai requisiti iniziali per un’azienda

Quando viene creato un account aziendale, l’array `requirements.alternatives` include opzioni per i tre percorsi di verifica (flusso di fallback del membro del consiglio di amministrazione, flusso di fallback del membro del consiglio di amministrazione + documento, caricamento del documento del titolare):

```json
{
  "currently_due": [
    "company.owners_provided",
    "owners.first_name",
    "owners.last_name",
    "owners.id_number",
    "owners.dob.day",
    "owners.dob.month",
    "owners.dob.year",
    "owners.address.line1",
    "owners.address.city",
    "owners.address.state",
    "owners.address.postal_code",
    "owners.email",
    "owners.political_exposure"
  ],
  "alternatives": [
    {
      "original_fields_due": ["company.owners_provided", "owners.first_name", "owners.last_name"],
      "alternative_fields_due": [
        "company.directors_provided",
        "company.owners_provided",
        "directors.first_name",
        "directors.last_name"
      ]
    },
    {
      "original_fields_due": ["company.owners_provided", "owners.first_name", "owners.last_name"],
      "alternative_fields_due": [
        "company.directors_provided",
        "company.owners_provided",
        "directors.first_name",
        "directors.last_name",
        "documents.proof_of_registration.files"
      ]
    },
    {
      "original_fields_due": ["company.owners_provided", "owners.first_name", "owners.last_name"],
      "alternative_fields_due": [
        "company.owners_provided",
        "documents.proof_of_ultimate_beneficial_ownership.files",
        "owners.first_name",
        "owners.last_name"
      ]
    }
  ]
}
```

Le tre alternative rappresentano modi diversi di soddisfare il requisito della verifica del titolare:

- **Flusso di fallback dei membri del consiglio di amministrazione**: anziché verificare i titolari, fornisci i membri del consiglio di amministrazione (`company.directors_provided`, `directors.first_name`, `directors.last_name`).
- **flusso di fallback dei membri del consiglio di amministrazione + documento**: fornisci i membri del consiglio di amministrazione e carica un file `documents.proof_of_registration`.
- **Caricamento del documento del titolare**: fornisci i nomi dei titolari e carica un file `documents.proof_of_ultimate_beneficial_ownership`.

### Precompilare le informazioni sul titolare e sul membro del consiglio di amministrazione (Private preview)

Opzionalmente, puoi integrare un’API che rileva e precompila a livelo di codice i titolari o gli amministratori associati a una persona giuridica. L’account connesso può verificare la relazione confermando le informazioni rilevate invece di procedere tramite caricamento dei documenti.

Questo percorso può aumentare i tassi di verifica e ridurre gli attriti, ma non funziona per tutti gli account. Devi comunque gestire i caricamenti di documenti o la procedura del flusso di fallback del membro del consiglio di amministrazione per gli account in cui Stripe non può precompilare le relazioni.

Se ti interessa la precompilazione per la verifica del titolare o del membro del consiglio di amministrazione, registrati di seguito per manifestare il tuo interesse.

### Ti interessa ottenere l'accesso anticipato alla precompilazione di titolare effettivo finale/membro del consiglio di amministrazione di Stripe?

Enter your email to request access.

```bash
curl https://docs.stripe.com/preview/register \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Referer: https://docs.stripe.com/connect/upcoming-requirements-updates" \
  -d '{"email": "EMAIL", "preview": "risk_requirements_beta_preview"}'
```

### Corrispondenza del titolare a livello di codice

Crea persone titolari con nomi corrispondenti al registro CNPJ, quindi conferma che i titolari siano stati forniti. Se il nome del titolare corrisponde, la verifica viene completata a livello di codice. Facoltativamente puoi usare l’[API Prefill](https://docs.stripe.com/connect/upcoming-requirements-updates.md#prefill-owner-and-director-information) (Private preview) per recuperare i nomi suggeriti prima di creare le persone.

```shell
# Create owner with matching name
curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}}/persons \
  -u "{{PLATFORM_SECRET_KEY}}:" \
  -d "first_name=Maria" \
  -d "last_name=Santos" \
  -d "id_number=123.456.789-09" \
  -d "dob[day]=15" \
  -d "dob[month]=6" \
  -d "dob[year]=1985" \
  -d "address[line1]=Rua das Flores, 123" \
  -d "address[city]=São Paulo" \
  -d "address[state]=SP" \
  -d "address[postal_code]=01310-100" \
  -d "email=maria@example.com" \
  -d "political_exposure=none" \
  -d "relationship[owner]=true" \
  -d "relationship[percent_ownership]=26"

# Confirm owners provided
curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \
  -u "{{PLATFORM_SECRET_KEY}}:" \
  -d "company[owners_provided]=true"
```

Se il nome del titolare corrisponde a quello del registro, la verifica viene superata a livello di codice.

### Caricamento del documento del titolare

Se il nome del titolare non corrisponde al registro CNPJ (o la verifica a livello di codice non è abilitata), viene visualizzato un errore `verification_missing_owners`. Carica un documento di prova del titolare effettivo finale per risolvere il problema:

```shell
# 1. Upload the relationship document
curl https://files.stripe.com/v1/files \
  -u "{{PLATFORM_SECRET_KEY}}:" \
  -F "file=@/path/to/ownership_document.pdf" \
  -F "purpose=account_requirement"

# 2. Attach to account
curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \
  -u "{{PLATFORM_SECRET_KEY}}:" \
  -d "documents[proof_of_ultimate_beneficial_ownership][files][0]={{FILE_ID}}"
```

### Flusso di fallback del membro del consiglio di amministrazione

Se non è possibile verificare il titolare (ad esempio, tutti gli azionisti sono persone giuridiche), risolvi fornendo invece i membri del consiglio di amministrazione:

```shell
# Create director person
curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}}/persons \
  -u "{{PLATFORM_SECRET_KEY}}:" \
  -d "first_name=Carlos" \
  -d "last_name=Oliveira" \
  -d "id_number=987.654.321-00" \
  -d "dob[day]=20" \
  -d "dob[month]=3" \
  -d "dob[year]=1978" \
  -d "address[line1]=Av Brasil, 500" \
  -d "address[city]=Rio de Janeiro" \
  -d "address[state]=RJ" \
  -d "address[postal_code]=20040-020" \
  -d "email=carlos@example.com" \
  -d "political_exposure=none" \
  -d "relationship[director]=true"

# Confirm directors and owners provided
curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \
  -u "{{PLATFORM_SECRET_KEY}}:" \
  -d "company[directors_provided]=true" \
  -d "company[owners_provided]=true"
```

### Documenti accettati

I documenti di titolarità accettabili dipendono dalla struttura di titolarità, se semplice (tutti gli azionisti sono persone fisiche) o complessa (almeno un azionista è a sua volta una persona giuridica):

#### Strutture di titolarità semplici

Carica un *contrato social* o un *estatuto social*. Il documento deve contenere quanto segue:

- Nome della persona giuridica e CNPJ
- Nome completo e CPF di ciascun azionista (o data di nascita per i non residenti)
- Percentuali di titolarità
- Firme
- Timbro del registro delle imprese (Junta Comercial)

#### Strutture di titolarità complesse

Scarica il modello della lettera di attestazione Stripe ([modello del titolare effettivo finale](https://docs.stripecdn.com/6e82842bfc01bd0b1c46d77f7d46b69673a9ca965ed2ad9ef53139f98abdbbaf.pdf) o il [modello per i membri del consiglio di amministrazione](https://docs.stripecdn.com/715ffef45157ff700bc368a4011659ee23bc8ba3c68746c5c15948a6eee1591f.pdf)), quindi compilalo e caricalo. Le società con livelli intermedi (holding, trust, filiali) che separano i titolari effettivi finali dall’entità operativa devono utilizzare questo percorso.

### Gestione degli errori

| Codice di errore | Trigger | Rimedio |
| --- | --- | --- |
| `verification_missing_owners` | I nomi dei titolari forniti non corrispondono ad alcun titolare nel registro CNPJ. | Aggiungi persone con nomi corrispondenti al registro oppure carica `documents.proof_of_ultimate_beneficial_ownership`. |
| `verification_missing_directors` | I nomi dei membri del consiglio di amministrazione forniti non corrispondono ad alcun membro del consiglio di amministrazione nel registro CNPJ. | Aggiungi persone con nomi corrispondenti al registro oppure carica `documents.proof_of_registration`. |
| `verification_data_not_found` | Impossibile recuperare dal registro CNPJ alcun dato relativo a titolari o membri del consiglio di amministrazione per questa entità. | Carica `documents.proof_of_ultimate_beneficial_ownership` (per i titolari) o `documents.proof_of_registration` (per i membri del consiglio di amministrazione). |
| `verification_document_type_not_supported` | Il documento di relazione caricato è illeggibile o del tipo errato. | Carica un documento accettabile (contrato social, estatuto social o modello di attestazione Stripe). |

## Test

Usa le [sandbox](https://docs.stripe.com/connect/testing.md) per verificare che la tua integrazione gestisca tutti gli stati di adeguata verifica di KYC/KYB.

### Test: adeguata verifica della clientela riuscita (persona fisica)

```shell
# Create test account
curl https://api.stripe.com/v1/accounts \
  -u "{{TEST_SECRET_KEY}}:" \
  -H "Stripe-Version: 2026-03-25.dahlia;experimental_onboarding_preview=v2" \
  -d "type=custom" \
  -d "country=BR" \
  -d "capabilities[transfers][requested]=true"

# Submit person data (use test CPF: 000.000.001-91 for success)
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons/{{PERSON_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "first_name=Maria" \
  -d "last_name=Silva" \
  -d "id_number=000.000.001-91" \
  -d "dob[day]=15" \
  -d "dob[month]=6" \
  -d "dob[year]=1985" \
  -d "address[line1]=Rua das Flores, 123" \
  -d "address[city]=São Paulo" \
  -d "address[state]=SP" \
  -d "address[postal_code]=01310-100" \
  -d "address[country]=BR"
```

Per completare il test di esito positivo di adeguata verifica della clientela, è ancora richiesto `proof_of_liveness`. Vedi [Gestire i requisiti di presenza](https://docs.stripe.com/connect/api-onboarding.md?accounts-namespace=v1&liveness=hosted#proof-of-liveness) per maggiori dettagli.

### Test: CPF inattivo (`verification_document_id_number_mismatch`)

```shell
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons/{{PERSON_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "id_number=000.000.002-00"
```

Errore previsto nei requisiti:

```json
{
  "code": "verification_document_id_number_mismatch",
  "reason": "",
  "requirement": "person.id_number"
}
```

### Test: adeguata verifica dell’attività (persona giuridica) completata con successo

```shell
# Create test company account
curl https://api.stripe.com/v1/accounts \
  -u "{{TEST_SECRET_KEY}}:" \
  -H "Stripe-Version: 2026-03-25.dahlia;experimental_onboarding_preview=v2" \
  -d "type=custom" \
  -d "country=BR" \
  -d "business_type=company" \
  -d "capabilities[transfers][requested]=true"

# Submit company data (use test CNPJ: 00.000.000/0001-91 for success)
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "company[tax_id]=00.000.000/0001-91" \
  -d "company[name]=Empresa Teste Ltda" \
  -d "company[address][line1]=Avenida Paulista, 1000" \
  -d "company[address][city]=São Paulo" \
  -d "company[address][postal_code]=01310-100" \
  -d "company[address][country]=BR" \
  -d "business_profile[monthly_estimated_revenue][amount]=5000000" \
  -d "business_profile[monthly_estimated_revenue][currency]=brl"
```

### Test: errore di corrispondenza con chiave CNPJ (`verification_failed_keyed_match`)

```shell
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "company[tax_id]=00.000.000/0002-00" \
  -d "company[name]=Wrong Name Ltda"
```

Errori previsti nei requisiti:

```json
[
  { "code": "verification_failed_keyed_match", "requirement": "company.tax_id" },
  { "code": "verification_failed_keyed_match", "requirement": "company.name" },
  { "code": "verification_failed_keyed_match", "requirement": "company.address.line1" }
]
```

Risolvi il problema caricando un documento di verifica dell’azienda:

```shell
# 1. Upload CNPJ certificate PDF
curl https://files.stripe.com/v1/files \
  -u "{{TEST_SECRET_KEY}}:" \
  -F "file=@/path/to/cnpj_certificate.pdf" \
  -F "purpose=account_requirement"

# 2. Attach to account
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "company[verification][document][front]={{FILE_ID}}"
```

### Test: successo della prova di autorizzazione a livello di codice

Utilizza `match_representative` come nome del rappresentante, con un CNPJ non speciale. Il provider di test restituisce una corrispondenza positiva e non è necessaria alcuna attestazione.

```shell
# Create company account
curl https://api.stripe.com/v1/accounts \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "type=custom" \
  -d "country=BR" \
  -d "business_type=company" \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=123456789" \
  -d "company[name]=Empresa Teste Ltda" \
  -d "company[address][line1]=address_full_match" \
  -d "company[address][city]=São Paulo" \
  -d "company[address][state]=SP" \
  -d "company[address][postal_code]=01310-100" \
  -d "capabilities[card_payments][requested]=true"

# Create representative with magic first_name
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "first_name=match_representative" \
  -d "last_name=Silva" \
  -d "id_number=000000000" \
  -d "dob[day]=1" \
  -d "dob[month]=1" \
  -d "dob[year]=1901" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=São Paulo" \
  -d "address[state]=SP" \
  -d "address[postal_code]=01310-100" \
  -d "email=rep@example.com" \
  -d "political_exposure=none" \
  -d "relationship[representative]=true" \
  -d "relationship[title]=CEO"
```

Previsto: nessun errore `verification_failed_representative_authority`. La prova di autorizzazione viene superata a livello di codice. Rimangono solo i requisiti del titolare effettivo finale.

### Test: errore della prova di autorizzazione a livello di codice con ripiego sull’attestazione

Utilizza `mismatch_representative` come nome del rappresentante. Il controllo a livello di codice non va a buon fine e i campi del nome della persona contengono errori `verification_failed_representative_authority`.

```shell
# Create company account
curl https://api.stripe.com/v1/accounts \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "type=custom" \
  -d "country=BR" \
  -d "business_type=company" \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=000000000" \
  -d "company[name]=Empresa Teste Ltda" \
  -d "company[address][line1]=address_full_match" \
  -d "company[address][city]=São Paulo" \
  -d "company[address][state]=SP" \
  -d "company[address][postal_code]=01310-100" \
  -d "capabilities[card_payments][requested]=true"

# Create representative with mismatch magic first_name
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "first_name=mismatch_representative" \
  -d "last_name=Silva" \
  -d "id_number=000000000" \
  -d "dob[day]=1" \
  -d "dob[month]=1" \
  -d "dob[year]=1901" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=São Paulo" \
  -d "address[state]=SP" \
  -d "address[postal_code]=01310-100" \
  -d "email=rep@example.com" \
  -d "political_exposure=none" \
  -d "relationship[representative]=true" \
  -d "relationship[title]=CEO"
```

Errori previsti nei requisiti:

```json
[
  { "code": "verification_data_not_found", "requirement": "directors.first_name" },
  { "code": "verification_data_not_found", "requirement": "directors.last_name" },
  { "code": "verification_data_not_found", "requirement": "owners.first_name" },
  { "code": "verification_data_not_found", "requirement": "owners.last_name" },
  { "code": "verification_failed_representative_authority", "requirement": "people.{{PERSON_ID}}.first_name" },
  { "code": "verification_failed_representative_authority", "requirement": "people.{{PERSON_ID}}.last_name" }
]
```

Gli errori `verification_data_not_found` vengono visualizzati perché il registro CNPJ non ha restituito alcun dato del titolare effettivo finale per il CNPJ di test. Risolvi inviando la dichiarazione del rappresentante:

```shell
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "company[representative_declaration][date]=1772226508" \
  -d "company[representative_declaration][ip]=162.211.155.69"
```

Dopo l’invio, gli errori della prova di autorizzazione scompaiono e rimangono solo i requisiti del titolare effettivo finale.

### Test: soddisfa i requisiti utilizzando la corrispondenza del titolare a livello di codice

Usa il CNPJ `222221003` per attivare l’errore `verification_missing_owners`. Crea un titolare con un nome corrispondente al registro CNPJ per risolvere il problema. Facoltativamente puoi usare l’[API Prefill](https://docs.stripe.com/connect/upcoming-requirements-updates.md#prefill-owner-and-director-information) (Private preview) per recuperare i nomi previsti.

```shell
# Create company with magic CNPJ for missing owners
curl https://api.stripe.com/v1/accounts \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "type=custom" \
  -d "country=BR" \
  -d "business_type=company" \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=222221003" \
  -d "company[name]=Empresa Teste Ltda" \
  -d "company[address][line1]=address_full_match" \
  -d "company[address][city]=São Paulo" \
  -d "company[address][state]=SP" \
  -d "company[address][postal_code]=01310-100" \
  -d "capabilities[card_payments][requested]=true"

# Create owner with name matching the CNPJ registry
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "first_name=match_representative" \
  -d "last_name=match_representative" \
  -d "id_number=000000000" \
  -d "dob[day]=1" \
  -d "dob[month]=1" \
  -d "dob[year]=1901" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=São Paulo" \
  -d "address[state]=SP" \
  -d "address[postal_code]=01310-100" \
  -d "email=owner@example.com" \
  -d "political_exposure=none" \
  -d "relationship[owner]=true" \
  -d "relationship[percent_ownership]=26"

# Confirm owners provided
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "company[owners_provided]=true"
```

Previsto: dopo aver impostato `owners_provided`, tutti i requisiti del titolare scompaiono. Non rimangono errori `verification_missing_owners`.

### Test: soddisfa i requisiti tramite il caricamento del documento del titolare (`verification_missing_owners`)

Utilizza il CNPJ `222221003` e crea un titolare con un nome non corrispondente. Dopo la visualizzazione degli errori `verification_missing_owners`, carica un documento di prova del titolare effettivo finale per risolvere il problema.

```shell
# Create non-matching owner
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "first_name=Carlos" \
  -d "last_name=NonMatch" \
  -d "id_number=000000000" \
  -d "dob[day]=1" \
  -d "dob[month]=1" \
  -d "dob[year]=1901" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=São Paulo" \
  -d "address[state]=SP" \
  -d "address[postal_code]=01310-100" \
  -d "email=carlos@example.com" \
  -d "political_exposure=none" \
  -d "relationship[owner]=true"

# Set owners_provided
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "company[owners_provided]=true"
```

Errori previsti dopo la valutazione:

```json
[
  { "code": "verification_missing_owners", "requirement": "owners.first_name" },
  { "code": "verification_missing_owners", "requirement": "owners.last_name" }
]
```

Risolvi caricando un documento:

```shell
# Upload relationship document
curl https://files.stripe.com/v1/files \
  -u "{{TEST_SECRET_KEY}}:" \
  -F "file=@/path/to/ownership_doc.pdf" \
  -F "purpose=account_requirement"

# Attach to account
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "documents[proof_of_ultimate_beneficial_ownership][files][0]={{FILE_ID}}"
```

### Test: soddisfa i requisiti tramite il flusso di fallback del membro del consiglio di amministrazione

Usa il CNPJ `222221004` per attivare il percorso di verifica del membro del consiglio di amministrazione. Crea persone membri del consiglio di amministrazione con nomi corrispondenti al registro CNPJ. Facoltativamente puoi usare l’[API Prefill](https://docs.stripe.com/connect/upcoming-requirements-updates.md#prefill-owner-and-director-information) (Private preview) per recuperare i nomi previsti.

```shell
# Create company with magic CNPJ for missing directors
curl https://api.stripe.com/v1/accounts \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "type=custom" \
  -d "country=BR" \
  -d "business_type=company" \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=222221004" \
  -d "company[name]=Empresa Teste Ltda" \
  -d "company[address][line1]=address_full_match" \
  -d "company[address][city]=São Paulo" \
  -d "company[address][state]=SP" \
  -d "company[address][postal_code]=01310-100" \
  -d "capabilities[card_payments][requested]=true"

# Create director with name matching the CNPJ registry
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "first_name=match_representative" \
  -d "last_name=match_representative" \
  -d "id_number=000000000" \
  -d "dob[day]=1" \
  -d "dob[month]=1" \
  -d "dob[year]=1901" \
  -d "address[line1]=address_full_match" \
  -d "address[city]=São Paulo" \
  -d "address[state]=SP" \
  -d "address[postal_code]=01310-100" \
  -d "email=director@example.com" \
  -d "political_exposure=none" \
  -d "relationship[director]=true"

# Confirm directors and owners provided
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "company[directors_provided]=true" \
  -d "company[owners_provided]=true"
```

Previsto: dopo aver impostato `directors_provided` e `owners_provided`, i requisiti del membro del consiglio di amministrazione e del titolare scompaiono.

### Test: risolvi il caricamento di un documento non valido (`verification_document_type_not_supported`)

Carica un documento di relazione non valido per attivare l’errore `verification_document_type_not_supported`. Quindi, carica un documento valido per risolvere.

```shell
# Upload invalid document (use file_relationship_document_invalid magic value)
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "documents[proof_of_ultimate_beneficial_ownership][files][0]=file_relationship_document_invalid"
```

Errori previsti dopo la valutazione:

```json
[
  { "code": "verification_document_type_not_supported", "requirement": "documents.proof_of_ultimate_beneficial_ownership.files" },
  { "code": "verification_missing_owners", "requirement": "owners.first_name" },
  { "code": "verification_missing_owners", "requirement": "owners.last_name" }
]
```

Gli errori `verification_missing_owners` persistono perché il caricamento di un documento non valido non risolve la mancata corrispondenza del nome. Risolvi caricando un documento valido:

```shell
curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \
  -u "{{TEST_SECRET_KEY}}:" \
  -d "documents[proof_of_ultimate_beneficial_ownership][files][0]=file_relationship_document_success"
```

#### Programma - Singapore

*Ultimo aggiornamento: 12 giugno 2026*

## Comprendere le modifiche ai requisiti di verifica

Per allinearsi ai requisiti aggiornati della Monetary Authority of Singapore (MAS) PSN01, Stripe sta aggiornando i propri requisiti per l’adeguata verifica dell’attività (KYB) e per la verifica del titolare effettivo finale.

Se i tuoi account connessi operano a Singapore, potresti dover aggiornare i tuoi flussi di attivazione e di risoluzione. Il mancato aggiornamento dei requisiti interromperà l’accesso dei tuoi account connessi ai pagamenti e ai servizi finanziari.

## Scegli un approccio di integrazione

Stripe consiglia di utilizzare l’attivazione in hosting o incorporata su Stripe per raccogliere i requisiti di verifica dell’attività e dell’identità. Queste opzioni richiedono meno risorse da implementare e gestire rispetto all’attivazione con API. La tabella seguente descrive le principali differenze:

- [Attivazione in hosting su Stripe](https://docs.stripe.com/connect/hosted-onboarding.md): (Consigliato) invia gli account a un flusso in hosting su Stripe per inoltrare le informazioni richieste.
- [Attivazione integrata](https://docs.stripe.com/connect/embedded-onboarding.md): (Consigliato) integra componenti di attivazione forniti da Stripe che consentono agli account di inviare le informazioni direttamente a Stripe dalla tua app.
- [Attivazione tramite API](https://docs.stripe.com/connect/api-onboarding.md): crea e gestisci un flusso di attivazione personalizzato utilizzando le API di Stripe.

|  | **Attivazione in hosting su Stripe** | **Attivazione integrata** | **Attivazione basata su API** |
| --- | --- | --- | --- |
| Ottimali per | Piattaforme che desiderano che Stripe gestisca l’attivazione | Piattaforme che desiderano un flusso di attivazione brandizzato in-app | Piattaforme che hanno necessitano di pieno controllo, possono crearlo e mantenerlo |
| Impegno di implementazione iniziale | 3-4 settimane di progettazione | 3-4 settimane di progettazione | 30-40 settimane di progettazione |
| Impegno continuo per risolvere gli aggiornamenti dei requisiti | Gestito automaticamente da Stripe | Gestito automaticamente da Stripe | Richiede un monitoraggio proattivo delle modifiche imminenti, oltre a risorse tecniche per aggiornare il flusso di attivazione a ogni modifica |
| Personalizzazione | Interfaccia in hosting su Stripe con branding della piattaforma | Componente altamente tematizzabile a cui gli account accedono attraverso l’app della piattaforma | La piattaforma progetta, crea e gestisce l’interfaccia |
| Impegno per il supporto di altri Paesi | Gestito automaticamente da Stripe | Gestito automaticamente da Stripe | Richiede risorse tecniche per aggiornare il flusso di attivazione per ogni Paese aggiuntivo |

Scopri di più sulle [opzioni di attivazione Connect](https://docs.stripe.com/connect/onboarding.md) e sulla [migrazione dei tuoi flussi di integrazione e risoluzione basati su API a flussi integrati o in hosting su Stripe](https://docs.stripe.com/connect/migrate-from-api-onboarding.md).

Le piattaforme che utilizzano l’attivazione in hosting su Stripe o integrata non devono modificare le proprie integrazioni per questi aggiornamenti dei requisiti: Stripe li gestisce automaticamente. Le piattaforme che utilizzano l’attivazione basata su API devono invece monitorare attivamente le modifiche ai requisiti e allocare risorse di sviluppo per ogni aggiornamento.

## Panoramica sull’integrazione API

Se la tua piattaforma utilizza l’attivazione basata su API, aggiorna la tua integrazione per gestire le seguenti modifiche per gli account connessi a Singapore:

- **KYB: dettagli dell’attività e verifica della persona giuridica:** raccogli [i dettagli dell’attività e i dati relativi alla persona giuridica](https://docs.stripe.com/connect/upcoming-requirements-updates.md#kyb-business-details-and-legal-entity-verification), inclusi la data di costituzione, la sede principale dell’attività e la sede amministrativa.
- **Verifica dell’indirizzo registrato:** gestisci la [verifica dell’indirizzo registrato](https://docs.stripe.com/connect/upcoming-requirements-updates.md#registered-address-verification) quando Stripe non riesce a verificarlo automaticamente.
- **Verifica del documento di costituzione:** raccogli un [documento di costituzione](https://docs.stripe.com/connect/upcoming-requirements-updates.md#constitution-document-verification) per aziende, società di persone e organizzazioni non profit, ove richiesto.
- **Verifica del titolare effettivo finale e della relazione:** raccogli le [informazioni per la verifica del titolare effettivo finale e della relazione](https://docs.stripe.com/connect/upcoming-requirements-updates.md#ubo-and-relationship-verification) per titolari, direttori e dirigenti chiave, ove richiesto.

Prima dell’entrata in vigore dei requisiti, puoi monitorare [future_requirements](https://docs.stripe.com/api/accounts/object.md#account_object-future_requirements) per visualizzare in anteprima i requisiti futuri. Dopo che i requisiti diventano attivi, monitora l’hash `requirements` dell’account e ascolta il webhook `account.updated` per rilevare eventuali modifiche ai requisiti.

Assicurati che la tua integrazione sia configurata per [gestire gli aggiornamenti della verifica](https://docs.stripe.com/connect/handle-verification-updates.md) durante l’attivazione di nuovi account e la raccolta di informazioni aggiornate dagli account esistenti.

## Cronologia dei requisiti

La seguente cronologia illustra le principali tappe di queste modifiche. Aggiorna e testa la tua integrazione con anticipo per evitare eventuali problemi quando i nuovi requisiti entreranno in vigore.

| Data | Traguardo | Descrizione |
| --- | --- | --- |
| Luglio 2026 | Avvia la pianificazione dell’integrazione | Consulta questa guida e le modifiche per iniziare a pianificare gli aggiornamenti della tua integrazione. |
| Settembre 2026 | Inizia il lancio di `future_requirements` (attivazione tramite API) | Per le piattaforme che utilizzano l’attivazione tramite API, Stripe inizia ad aggiungere i nuovi requisiti a `future_requirements` sia per i nuovi account che per quelli esistenti. |
| 1° novembre 2026 | Inizia l’implementazione dei nuovi requisiti | Assicurati che il tuo flusso di attivazione aggiornato sia pronto per acquisire i nuovi requisiti. Il flusso aggiornato dovrà essere operativo entro il 1° novembre, quando Stripe inizierà a introdurre gradualmente i nuovi requisiti. Tutti i nuovi requisiti entreranno in vigore entro la fine di novembre. |

## KYB: dettagli dell’attività e verifica della persona giuridica

Stripe sta aggiornando i requisiti KYB per gli account di Singapore che non sono [persone fisiche](https://docs.stripe.com/api/accounts/object.md#account_object-business_type). Questi requisiti includono nuovi campi per le [aziende](https://docs.stripe.com/api/accounts/object.md#account_object-company) e la verifica delle informazioni sull’attività registrate.

### Campi obbligatori

| Campo | Tipo | Descrizione |
| --- | --- | --- |
| `company.registration_date` (Novità) | Oggetto con `day`, `month` e `year` | Data in cui è stata costituita l’attività. |
| `company.address` | Oggetto [Address](https://docs.stripe.com/api/accounts/object.md#account_object-company-address) | Indirizzo registrato dell’attività (nuova verifica del requisito esistente) |
| `company.principal_place_of_business` (Novità) | Oggetto [Address](https://docs.stripe.com/api/accounts/object.md#account_object-company-address) | Sede principale in cui l’attività svolge le operazioni. |
| `company.administrative_address` (Novità) | Oggetto [Address](https://docs.stripe.com/api/accounts/object.md#account_object-company-address) | Luogo in cui l’attività viene amministrata. |

Se uno qualsiasi degli indirizzi coincide con un altro, invia gli stessi valori dell’indirizzo per ciascuno di essi. Non ometterne nessuno.

Crea un account aziendale di Singapore. Utilizza l’ID account restituito negli esempi seguenti.

```curl
curl https://api.stripe.com/v1/accounts \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d country=SG \
  -d type=custom \
  -d business_type=company \
  -d "capabilities[card_payments][requested]=true" \
  -d "capabilities[transfers][requested]=true"
```

### Risposta ai requisiti iniziali

L’hash `requirements` del nuovo account include voci quali:

```json
{
  "currently_due": [
    "company.registration_date.day",
    "company.registration_date.month",
    "company.registration_date.year",
    "company.address.line1",
    "company.address.postal_code",
    "company.principal_place_of_business.line1",
    "company.principal_place_of_business.postal_code",
    "company.administrative_address.line1",
    "company.administrative_address.postal_code"
  ]
}
```

I campi in `currently_due` rimangono lì finché non fornisci dei valori.

### Acquisisci i dettagli dell’attività

Il seguente esempio mostra come inviare i nuovi requisiti:

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "company[registration_date][day]=20" \
  -d "company[registration_date][month]=3" \
  -d "company[registration_date][year]=2015" \
  --data-urlencode "company[address][line1]=60 Anson Road #05-01" \
  -d "company[address][postal_code]=079914" \
  --data-urlencode "company[principal_place_of_business][line1]=60 Anson Road #05-01" \
  -d "company[principal_place_of_business][postal_code]=079914" \
  --data-urlencode "company[administrative_address][line1]=1 Raffles Place #30-01" \
  -d "company[administrative_address][postal_code]=048616"
```

### Verifica dell’indirizzo registrato

L’indirizzo registrato (`company.address`) è già obbligatorio per gli account di Singapore. Questo aggiornamento aggiunge la verifica dell’indirizzo registrato come parte della verifica della persona giuridica.

Se Stripe non è in grado di verificare l’indirizzo registrato dell’account, controlla l’hash `requirements` dell’oggetto Account. Questo mostra quali campi dell’indirizzo non hanno superato la verifica, elenca `company.verification.document` come modo alternativo per risolvere il requisito e include i dettagli nell’array [`errors`](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-errors):

```json
{
  "currently_due": [
    "company.address.line1",
    "company.address.postal_code"
  ],
  "alternatives": [
    {
      "original_fields_due": [
        "company.address.line1",
        "company.address.postal_code"
      ],
      "alternative_fields_due": [
        "company.verification.document"
      ]
    }
  ],
  "errors": [
    {
      "code": "verification_failed_keyed_match",
      "reason": "We couldn't match the account's registered business address to government records. You can either fix any errors in the account's Unique Entity Number (UEN) or registered business address. Alternatively, you can upload a document that shows the company's registered address.",
      "requirement": "company.address.line1"
    },
    {
      "code": "verification_failed_keyed_match",
      "reason": "We couldn't match the account's registered business address to government records. You can either fix any errors in the account's Unique Entity Number (UEN) or registered business address. Alternatively, you can upload a document that shows the company's registered address.",
      "requirement": "company.address.postal_code"
    }
  ]
}
```

Per soddisfare il requisito, acquisisci un documento di verifica della società accettabile dall’account connesso.

- Per le attività costituite a livello locale: un profilo [BizFile](https://www.bizfile.gov.sg/) dall’[Accounting and Corporate Regulatory Authority (ACRA)](https://www.acra.gov.sg/).
- Per le società: un certificato di registrazione o una dichiarazione annuale presentata al [Registry of Societies (ROS)](https://www.mha.gov.sg/what-we-do/registry-of-societies).
- Per le entità correlate al [Majlis Ugama Islam Singapura (MUIS)](https://www.muis.gov.sg/): una lettera del MUIS che contiene l’indirizzo registrato.

Carica il documento di verifica dell’azienda.

```bash
curl https://files.stripe.com/v1/files \
  -u <<YOUR_SECRET_KEY>>: \
  -F "file"="@/path/to/company_verification_document.pdf" \
  -F "purpose"="account_requirement"
```

Allega il documento di verifica dell’azienda all’account.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "company[verification][document][front]={{FILE_ID}}"
```

## Verifica del documento costitutivo

Le aziende, le organizzazioni non profit e le società di persone devono soddisfare il requisito del documento di costituzione. Questo requisito non si applica alle ditte individuali o alle persone fisiche.

| Classificazione dell’account | Valori API | Requisito del documento costitutivo |
| --- | --- | --- |
| Azienda privata | `business_type=company` con `company.structure=private_company` | Obbligatorio a meno che ACRA non confermi che l’account utilizza un Modello di costituzione. |
| Società per azioni | `business_type=company` con `company.structure=public_company` | Obbligatorio a meno che ACRA non confermi che l’account utilizza un Modello di costituzione. |
| Non profit | `business_type=non_profit` | Obbligatorio se restituito nei requisiti dell’account. |
| Partnership | `business_type=company` con `company.structure=private_partnership` | Obbligatorio se restituito nei requisiti dell’account. |
| Ditta individuale o persona fisica | `business_type=company` con `company.structure=sole_proprietorship`, o `business_type=individual` | Non necessario. |

Se l’ACRA conferma che l’entità ha adottato un [Modello di costituzione](https://sso.agc.gov.sg/SL/CoA1967-S833-2015?DocDate=20151231), il requisito del documento costitutivo è soddisfatto automaticamente e non è richiesto il caricamento di alcun documento.

In caso contrario, devi raccogliere il documento e inviarlo come `documents.company_memorandum_of_association.files`. Stripe esamina il documento per identificare le persone fisiche che esercitano un controllo, un’autorità o poteri significativi sull’entità. Devi aggiungere tali persone all’account come titolari effettivi finali per soddisfare i requisiti.

| Campo | Tipo |
| --- | --- |
| `documents.company_memorandum_of_association.files` (Novità) | Caricamento file. |

### Risposta ai requisiti iniziali

Quando è richiesto un documento costitutivo, l’hash `requirements` dell’account include:

```json
{
  "currently_due": [
    "documents.company_memorandum_of_association.files"
  ]
}
```

### Carica un documento costitutivo

L’esempio seguente mostra come caricare un documento costitutivo personalizzato:

```bash
curl https://files.stripe.com/v1/files \
  -u <<YOUR_SECRET_KEY>>: \
  -F "file"="@/path/to/constitution.pdf" \
  -F "purpose"="account_requirement"
```

Allega il documento costitutivo all’account.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "documents[company_memorandum_of_association][files][]={{FILE_ID}}"
```

### Gestione degli errori

Gestisci gli [errori di verifica dei documenti](https://docs.stripe.com/connect/handling-api-verification.md#handle-document-verification-problems) standard per i caricamenti del documento di costituzione.

## Verifica del titolare effettivo finale e delle relazioni

I requisiti per i titolari effettivi finali a Singapore dipendono dal tipo di business dell’account connesso.

1. Le aziende private devono identificare e aggiungere i titolari.
2. Le organizzazioni no profit devono identificare e aggiungere i membri del consiglio di amministrazione e i dirigenti chiave.
3. Alcune entità possono avere diritto a un’eccezione per i titolari effettivi finali, come gli istituti finanziari idonei o le entità possedute al 75% o più da società holding idonee.

### Campi obbligatori

| Campo API Person | Descrizione |
| --- | --- |
| `person.first_name`, `person.last_name` | Ragione sociale. |
| `person.full_name_aliases` | [Alias del nome](https://docs.stripe.com/api/persons/object.md#person_object-full_name_aliases). |
| `person.id_number` | Numero di identificazione nazionale (NRIC o FIN per i residenti a Singapore). |
| `person.nationality` (Novità) | Codice Paese a due lettere ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). |
| `person.dob` (Novità) | [Data di nascita](https://docs.stripe.com/api/persons/object.md#person_object-dob). |
| `person.address` (Novità) | [Indirizzo di residenza](https://docs.stripe.com/api/persons/object.md#person_object-address). |

Per i titolari effettivi e i membri del consiglio di amministrazione, Stripe verifica la ragione sociale e il numero del documento di identità. Alias, nazionalità, data di nascita e indirizzo di residenza sono richiesti per conformarsi ai requisiti normativi aggiornati di Singapore, ma non comportano una verifica dell’identità separata.

I campi obbligatori relativi alla persona utilizzano percorsi preceduti dal ruolo nell’hash `requirements` dell’account:

```json
{
  "currently_due": [
    "company.owners_provided",
    "company.directors_provided",
    "owners.first_name",
    "owners.last_name",
    "owners.id_number",
    "owners.full_name_aliases",
    "owners.nationality",
    "owners.dob.day",
    "owners.dob.month",
    "owners.dob.year",
    "owners.address.line1",
    "owners.address.postal_code",
    "directors.first_name",
    "directors.last_name",
    "directors.id_number",
    "directors.full_name_aliases",
    "directors.nationality",
    "directors.dob.day",
    "directors.dob.month",
    "directors.dob.year",
    "directors.address.line1",
    "directors.address.postal_code"
  ]
}
```

A seconda dello stato dell’account, alcuni campi potrebbero essere già compilati o precompilati. Invia i campi che appaiono negli array `requirements.currently_due`, `requirements.eventually_due` o `requirements.past_due` dell’account.

### Invia i campi relativi ai titolari effettivi finali

Se Stripe ha già creato o precompilato l’oggetto [Person](https://docs.stripe.com/api/persons/object.md), aggiorna [Person](https://docs.stripe.com/api/persons/object.md) con i campi mancanti.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons/{{PERSON_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d nationality=SG \
  -d "dob[day]=15" \
  -d "dob[month]=6" \
  -d "dob[year]=1985" \
  --data-urlencode "address[line1]=10 Bayfront Avenue #01-01" \
  -d "address[city]=Singapore" \
  -d "address[postal_code]=018956" \
  -d "address[country]=SG"
```

Se crei un nuovo oggetto [Person](https://docs.stripe.com/api/persons/object.md) del titolare effettivo finale, includi la relazione della persona, la ragione sociale, il numero di documento di identità, gli alias, la nazionalità, la data di nascita e l’indirizzo di residenza.

#### Titolari come titolari effettivi finali per le aziende

Per le aziende private, Stripe tenta di identificare, tramite i registri governativi, le persone fisiche che possiedono il 25% o più dell’azienda. Quando Stripe identifica i titolari, elenca le persone associate all’account per individuare i record dei titolari precompilati.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons \
  -u "<<YOUR_SECRET_KEY>>:"
```

Aggiorna ciascun titolare con gli eventuali dati mancanti restituiti nei requisiti dell’account.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons/{{PERSON_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d nationality=SG \
  -d "dob[day]=15" \
  -d "dob[month]=6" \
  -d "dob[year]=1985" \
  --data-urlencode "address[line1]=10 Bayfront Avenue #01-01" \
  -d "address[city]=Singapore" \
  -d "address[postal_code]=018956" \
  -d "address[country]=SG"
```

Dopo aver aggiunto o aggiornato tutti i titolari richiesti, imposta `company.owners_provided=true` se quel campo appare nei requisiti dell’account.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "company[owners_provided]=true"
```

Per tutti i dettagli sui meccanismi di verifica dei titolari effettivi esistenti, le soglie di titolarità, i membri del consiglio di amministrazione come titolari effettivi di riserva, le esenzioni, i documenti comprovanti lo status di titolare effettivo, le dichiarazioni della direzione e i codici di errore, consulta la sezione [Informazioni di verifica richieste](https://docs.stripe.com/connect/required-verification-information.md). Questa sezione illustra solo i **nuovi campi** aggiunti con questo aggiornamento.

## Esegui il test dell’integrazione

Crea o aggiorna un account connesso di Singapore in modalità sandbox e utilizza un [UEN aziendale di esempio di Singapore](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#sample-companies-singapore) come `company.tax_id`. Utilizza questi esempi per verificare che la tua integrazione gestisca correttamente gli stati della verifica KYB di Singapore, del documento costitutivo e della verifica degli UBO, quindi esamina i `requirements` dell’account.

I risultati della verifica possono aggiornarsi in modo asincrono. Dopo aver inviato i dati di test, recupera l’account o rimani in ascolto di un evento `account.updated`, quindi ispezionane i `requirements`.

### Testa i titolari mancanti

Utilizza [180100002M](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100002m) per testare le informazioni mancanti sul titolare.

1. Imposta `company.owners_provided=true`.
2. Non aggiungere gli oggetti [Person](https://docs.stripe.com/api/persons/object.md) richiesti per il titolare.

Questo produce requisiti per il titolare come `owners.first_name`, `owners.last_name` e `company.owners_provided` e restituisce l’errore `verification_missing_owners`.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d business_type=company \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=180100002M" \
  -d "company[owners_provided]=true"
```

Requisiti ed errori previsti:

```json
{
  "currently_due": [
    "company.owners_provided",
    "owners.first_name",
    "owners.last_name"
  ],
  "errors": [
    { "code": "verification_missing_owners", "requirement": "owners.first_name" },
    { "code": "verification_missing_owners", "requirement": "owners.last_name" }
  ]
}
```

### Testa la mancata corrispondenza del titolare

Utilizza [180100002M](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100002m) per testare l’invio di un titolare che non corrisponde ai dati di relazione della sandbox.

1. Crea un titolare non corrispondente.
2. Imposta `company.owners_provided=true`.

Stripe restituisce `verification_missing_owners` perché non ha potuto abbinare il titolare inviato ai titolari nel profilo di test.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d business_type=company \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=180100002M"
```

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d first_name=Mismatch \
  -d last_name=Owner \
  -d id_number=S9999999Z \
  -d "dob[day]=1" \
  -d "dob[month]=1" \
  -d "dob[year]=1990" \
  -d "address[line1]=10 ANSON ROAD" \
  -d "address[city]=Singapore" \
  -d "address[postal_code]=079903" \
  -d "address[country]=SG" \
  -d "relationship[owner]=true" \
  -d "relationship[percent_ownership]=30"
```

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "company[owners_provided]=true"
```

Requisiti ed errori previsti:

```json
{
  "currently_due": [
    "owners.first_name",
    "owners.last_name"
  ],
  "errors": [
    { "code": "verification_missing_owners", "requirement": "owners.first_name" },
    { "code": "verification_missing_owners", "requirement": "owners.last_name" }
  ]
}
```

### Testa i requisiti del membro del consiglio di amministrazione per le organizzazioni non profit

Utilizza [R01SS0001A](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-r01ss0001a) per testare i requisiti con prefisso del membro del consiglio di amministrazione per un’organizzazione non profit.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d business_type=non_profit \
  -d "company[tax_id]=R01SS0001A"
```

Requisiti ed errori previsti:

```json
{
  "currently_due": [
    "company.directors_provided",
    "directors.first_name",
    "directors.last_name"
  ],
  "errors": []
}
```

### Testa i membri del consiglio di amministrazione mancanti

Utilizza [180100002M](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100002m) per testare i membri del consiglio di amministrazione richiesti mancanti.

1. Imposta `company.directors_provided=true`.
2. Non aggiungere gli oggetti [Person](https://docs.stripe.com/api/persons/object.md) richiesti per il membro del consiglio di amministrazione.

Questo produce requisiti per il membro del consiglio di amministrazione come `directors.first_name`, `directors.last_name` e `company.directors_provided` e restituisce `verification_missing_directors`.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d business_type=company \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=180100002M" \
  -d "company[directors_provided]=true"
```

Requisiti ed errori previsti:

```json
{
  "currently_due": [
    "company.directors_provided",
    "directors.first_name",
    "directors.last_name"
  ],
  "errors": [
    { "code": "verification_missing_directors", "requirement": "directors.first_name" },
    { "code": "verification_missing_directors", "requirement": "directors.last_name" }
  ]
}
```

### Testa la mancata corrispondenza del membro del consiglio di amministrazione

Utilizza [180100002M](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100002m) per testare una mancata corrispondenza del membro del consiglio di amministrazione.

1. Crea tre oggetti [Person](https://docs.stripe.com/api/persons/object.md) per il membro del consiglio di amministrazione che non corrispondono ai tre membri del consiglio di amministrazione nel profilo di test.
2. Imposta `company.directors_provided=true`.

Questo restituisce `verification_directors_mismatch`.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d business_type=company \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=180100002M"
```

Crea il primo membro del consiglio di amministrazione non corrispondente, quindi ripeti questa richiesta altre due volte con diversi dettagli del membro del consiglio di amministrazione non corrispondenti.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d first_name=Mismatch \
  -d last_name=Director \
  -d id_number=S8888888Z \
  -d "dob[day]=1" \
  -d "dob[month]=1" \
  -d "dob[year]=1990" \
  -d "address[line1]=10 ANSON ROAD" \
  -d "address[city]=Singapore" \
  -d "address[postal_code]=079903" \
  -d "address[country]=SG" \
  -d "relationship[director]=true"
```

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "company[directors_provided]=true"
```

Requisiti ed errori previsti:

```json
{
  "currently_due": [
    "directors.first_name",
    "directors.last_name"
  ],
  "errors": [
    { "code": "verification_directors_mismatch", "requirement": "directors.first_name" },
    { "code": "verification_directors_mismatch", "requirement": "directors.last_name" }
  ]
}
```

### Testa l’assenza di azionisti di rilievo

Utilizza [180100001C](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100001c) per testare un’attività in cui nessun azionista possiede il 25% o più dell’azienda.

1. Invia l’UEN.
2. Imposta `company.owners_provided=true` senza aggiungere oggetti [Person](https://docs.stripe.com/api/persons/object.md) per il titolare.

Stripe restituisce `verification_missing_directors` perché richiede i membri del consiglio di amministrazione come UBO quando non esistono titolari idonei.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d business_type=company \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=180100001C" \
  -d "company[owners_provided]=true"
```

Requisiti ed errori previsti:

```json
{
  "currently_due": [
    "company.directors_provided",
    "directors.first_name",
    "directors.last_name"
  ],
  "errors": [
    { "code": "verification_missing_directors" }
  ]
}
```

### Testa la proprietà complessa o il fallback del documento

Utilizza [180100005E](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100005e) per simulare una struttura di proprietà che include una persona giuridica intermedia.

Questo produce il requisito `documents.proof_of_ultimate_beneficial_ownership.files` e l’errore `verification_requires_additional_proof_of_registration`.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d business_type=company \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=180100005E"
```

Requisiti ed errori previsti:

```json
{
  "currently_due": [
    "documents.proof_of_ultimate_beneficial_ownership.files"
  ],
  "errors": [
    { "code": "verification_requires_additional_proof_of_registration", "requirement": "documents.proof_of_ultimate_beneficial_ownership.files" }
  ]
}
```

Risolvi il problema caricando un documento che provi la titolarità effettiva e allegandolo all’account:

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "documents[proof_of_ultimate_beneficial_ownership][files][]={{FILE_ID}}"
```

### Testa il requisito del documento costitutivo

Utilizza [180100013R](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100013r) per simulare un’azienda privata che non utilizza un modello di costituzione.

Questo produce il requisito `documents.company_memorandum_of_association.files` e l’errore `verification_failed_other`.

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d business_type=company \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=180100013R"
```

Requisiti ed errori previsti:

```json
{
  "currently_due": [
    "documents.company_memorandum_of_association.files"
  ],
  "errors": [
    { "code": "verification_failed_other", "requirement": "documents.company_memorandum_of_association.files" }
  ]
}
```

Risolvi il problema caricando un documento costitutivo e allegandolo all’account:

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "documents[company_memorandum_of_association][files][]={{FILE_ID}}"
```

## Come ricevere assistenza

- Per domande su queste modifiche ai requisiti, contatta l’[assistenza Stripe](https://support.stripe.com).
- Per domande sull’integrazione dell’API, consulta la [documentazione di Connect](https://docs.stripe.com/connect.md).
- Per monitorare lo stato della conformità dei tuoi account, usa la pagina [Account da esaminare](https://dashboard.stripe.com/connect/accounts/overview) nella tua Dashboard.

#### Programma - US

*Ultimo aggiornamento: 23 settembre 2025*

## Cosa sta cambiando

- **Informazioni obbligatorie raccolte dagli account connessi:** stiamo aggiornando le informazioni che richiediamo alle ditte individuali, alle organizzazioni non profit e alle LLC unipersonali, e semplifichiamo il modo in cui otteniamo il consenso del tutore legale per gli account aperti da minori. Inoltre, ora è necessaria un’email del rappresentante dell’account per tutti i tipi di persone giuridiche e una modifica per gli enti governativi e le società per azioni.
- **Come verifichiamo le informazioni sull’attività e forniamo nuove risposte dettagliate per la verifica:** stiamo aggiornando i nostri criteri per le informazioni sull’attività e introducendo nuovi codici d’errore della verifica quando non siamo in grado di accettare o verificare le informazioni fornite.
- **Soglia di verifica dei numeri di identificazione fiscale (TIN):** per gli account connessi Custom ed Express, stiamo abbassando la soglia del volume dei pagamenti per cui verifichiamo i pagamenti, per allinearci alle attuali soglie di reportistica fiscale federale.
- **Come precompiliamo le voci per gli estratti conto e i prefissi delle voci:** se una voce sull’estratto conto non viene specificata, attualmente viene utilizzato il nome del profilo dell’attività, l’URL dell’attività o il nome della persona giuridica dell’account connesso.

Queste modifiche interessano tutti gli utenti che hanno richiesto la funzionalità [card_payments](https://docs.stripe.com/api/accounts/object.md#account_object-capabilities-card_payments) negli USA.

## Informazioni obbligatorie ottenute dagli account connessi

Nuove informazioni acquisite e nuovi campi aggiunti all’API:

- Le attività che sono [company.structure](https://docs.stripe.com/api/accounts/create.md#create_account-company-structure) di `sole_proprietorship` e `single_member_llc` devono fornire l’indirizzo dell’attività (“indirizzo aziendale”). Nel caso in cui l’indirizzo dell’attività coincida con l’indirizzo personale del rappresentante, gli account connessi possono fornire gli stessi valori per entrambi.
- Le persone giuridiche che sono [company.structure](https://docs.stripe.com/api/accounts/create.md#create_account-company-structure) di `government_instrumentality`, `tax_exempt_government_instrumentality`, `governmental_unit`, `public_company`, `public_corporation`, e `public_partnership` devono fornire un’email del rappresentante dell’account. Ora questo requisito si applica a tutti i tipi di persone giuridiche.
- Per semplificare il modo in cui otteniamo il consenso di un tutore legale per gli account aperti da minori, l’[API Persons](https://docs.stripe.com/api/persons.md) è stata aggiornata con un nuovo tipo di relazione `legal_guardian`, nonché un campo `additional_tos_acceptances` per registrare il consenso del tutore legale ai termini di servizio di Stripe. Se la data di nascita del rappresentante dell’account indica che la persona fisica è minorenne, viene attivato un requisito dell’account per aggiungere un `legal_guardian` prima che l’account possa essere attivato.

## In che modo verifichiamo le informazioni sull’attività e forniamo nuove risposte dettagliate per le verifiche.

### Aggiornamenti alle informazioni già acquisite

Richiederemo ai tuoi account connessi le seguenti informazioni:

| Campo | Requisiti aggiornati | Considerazioni aggiuntive |
| --- | --- | --- |
| SSN o ITIN richiesto ai rappresentanti residenti negli USA | Ultime 4 cifre richieste durante l’attivazione per tutti i tipi di account (inclusi gli account connessi Custom ed Express) | Questo è il comportamento attuale degli account connessi standard |
| SSN o ITIN attenuti dai titolari residenti negli USA | Ultime quattro cifre richieste quando il volume dei pagamenti supera i 500.000 USD per tutti i tipi di account (inclusi gli account connessi Custom ed Express) | Vedere *Nota completa SSNa 9 cifre* di seguito |
| Documento di identità o di verifica nazionale raccolto da rappresentanti non residenti negli USA | Documento di identità o di verifica nazionale all’attivazione di tutti i tipi di account (inclusi gli account connessi Custom ed Express) | Si applica solo ai rappresentanti non residenti negli USA |
| Documento di identità o di verifica nazionale acquisito da titolari non residenti negli USA | Documento di identità o di verifica nazionale quando il volume dei pagamenti supera i 500.000 USD per tutti i tipi di account (inclusi gli account connessi Custom ed Express). | Si applica solo ai titolari non residenti negli USA |

> Se, utilizzando le informazioni già fornite, non riusciamo a ottenere tramite codice il numero SSN completo di nove cifre di una persona fisica associata al tuo account, devi fornire tutte le nove cifre.

### Nuovi codici d’errore per la verifica

Se non siamo in grado di verificare le informazioni fornite dai tuoi account connessi, le risposte di verifica dettagliate visualizzeranno i relativi codici d’errore nell’oggetto [requirements.errors](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-errors). [Consulta la documentazione](https://docs.stripe.com/connect/handling-api-verification.md#validation-and-verification-errors).

#### Errori sincroni

| Campo | Nuovo codice d’errore | Messaggio d’errore |
| --- | --- | --- |
| Descrizione del prodotto | `invalid_product_description_length` | La descrizione del prodotto deve contenere almeno 10 caratteri. |
| Descrizione del prodotto | `invalid_product_description_url_match` | La descrizione del prodotto deve essere diversa dall’URL. |
| Voce sull’estratto conto (completa) | `invalid_statement_descriptor_length` | La voce sull’estratto conto deve contenere da 5 a 22 caratteri. |
| Voce sull’estratto conto (completa) | `invalid_statement_descriptor_business_mismatch` | La voce sull’estratto conto deve essere simile al nome dell’attività, al nome della persona giuridica o all’URL. |
| Voce sull’estratto conto (completa) | `invalid_statement_descriptor_denylisted` | Le voci per gli estratti conto generiche o note non sono supportate. |
| Voce per gli estratti conto (breve) | `invalid_statement_descriptor_prefix_mismatch` | Il prefisso della voce per gli estratti conto deve essere simile alla voce stessa, alla ragione sociale, al nome della persona giuridica o all’URL. |
| Voce per gli estratti conto (breve) | `invalid_statement_descriptor_prefix_denylisted` | I prefissi delle voci per gli estratti conto, generici o noti, non sono supportati. |
| Ragione sociale LE | `invalid_company_name_denylisted` | Le ragioni sociali generiche o note non sono supportate. |
| Nome profilo attività (nome commerciale) | `invalid_business_profile_name_denylisted` | Le ragioni sociali generiche o note non sono supportate. |
| Nome profilo attività (nome commerciale) | `invalid_business_profile_name` | I nomi dei profili delle attività devono contenere parole riconoscibili. |
| Data di nascita delle persone | `invalid_dob_age_under_minimum` | La persona deve avere almeno 13 anni. |
| Data di nascita delle persone | `invalid_dob_age_over_maximum` | La data di nascita deve risalire agli ultimi 120 anni. |
| Telefono delle persone | `invalid_phone_number` | Il numero di telefono non sembra essere valido. Assicurati che il formato sia corretto. |
| Telefono dell’attività LE | `invalid_phone_number` | Il numero di telefono non sembra essere valido. Assicurati che il formato sia corretto. |
| Codice fiscale dell’azienda | `invalid_tax_id_format` | I codici fiscali devono essere costituiti da una sequenza univoca di 9 numeri senza trattini o altri caratteri speciali. |
| URL | `invalid_url_format` | Formattare come https://example.com |
| URL | `invalid_url_denylisted` | Gli URL generici delle attività non sono supportati. |

#### Errori asincroni

| Campo | Nuovo codice d’errore | Messaggio d’errore |
| --- | --- | --- |
| URL | `invalid_url_website_inaccessible` | Impossibile raggiungere l’URL. Assicurati che sia disponibile e inserito in modo corretto, oppure forniscine un altro. |
| URL | `invalid_url_website_business_information_mismatch` | Le informazioni sull’attività presenti sul tuo sito web non corrispondono ai dettagli che hai fornito a Stripe. |
| URL | `invalid_url_website_incomplete` | Sembra che nel tuo sito web manchino alcune informazioni obbligatorie. Leggi ulteriori informazioni sui requisiti del sito web |
| URL | `invalid_url_website_other` | Non è stato possibile verificare l’attività utilizzando l’URL fornito. Assicurati che sia stato inserito correttamente, oppure fornisci un altro URL. |
| URL | `invalid_url_web_presence_detected` | Dato che utilizzi un sito web, un’app, una pagina di social media o un profilo online per vendere prodotti o servizi, devi fornire un URL per la tua attività. |

### Aggiornamento della soglia in base per la verifica dei numeri di identificazione fiscale (TIN)

Per allinearci alle soglie di reportistica dell’IRS per i moduli 1099-K, 1099-NEC e 1099-MISC, stiamo aggiornando la soglia alla quale verifichiamo il TIN quando il volume dei pagamenti raggiunge i 600 USD o entro 30 giorni dal primo addebito, a seconda dell’evento che si verifica per primo.

### In che modo precompiliamo le voci degli estratti conto e i relativi prefissi

Se non si specifica, la voce sull’estratto conto viene precompilata utilizzando i seguenti campi (nell’ordine): [business_profile.name](https://docs.stripe.com/api/accounts/object.md#account_object-business_profile-name) (“nome commerciale dell’attività”), [business_profile.url](https://docs.stripe.com/api/accounts/object.md#account_object-business_profile-url), nome della persona giuridica ([individual.first_name](https://docs.stripe.com/api/accounts/object.md#account_object-individual-first_name) + [individual.last_name](https://docs.stripe.com/api/accounts/object.md#account_object-individual-last_name) o [company.name](https://docs.stripe.com/api/accounts/object.md#account_object-company-name))`. Inoltre, se non viene fornito il prefisso della voce per gli estratti conto, questo viene precompilato dai primi 10 caratteri della voce sull’estratto conto.

## See also

- [Attivazione Connect per gli account Custom](https://docs.stripe.com/connect/custom/hosted-onboarding.md)
- [Soluzioni di attivazione per gli account Custom](https://docs.stripe.com/connect/custom/onboarding.md)
- [Aggiornamento degli account](https://docs.stripe.com/connect/updating-service-agreements.md)
- [Gestire la verifica dell’identità con l’API](https://docs.stripe.com/connect/handling-api-verification.md)
- [Test di verifica dell’identità dell’account Custom](https://docs.stripe.com/connect/testing-verification.md)
