> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# API di verifica EUDI Wallet

> Integra con Didit la verifica dell'identità EUDI Wallet: copertura per paese, passaggi di autenticazione, risultati e prezzi.

Avvia la verifica EUDI Wallet dal tuo backend usando la chiave API della tua applicazione.
Non ti serve un workflow né un `workflow_id`.
La risposta di avvio descrive la prossima azione di autenticazione; non è un risultato di identità approvato.

## Copertura e attivazione

| Proprietà | Valore |
| - | - |
| Wallet | EUDI Wallet |
| ID wallet | `eudi` |
| Paesi | ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/at.svg)Austria, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/be.svg)Belgio, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/bg.svg)Bulgaria, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/hr.svg)Croazia, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/cy.svg)Cipro, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/cz.svg)Cechia, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/dk.svg)Danimarca, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/ee.svg)Estonia, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/fi.svg)Finlandia, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/fr.svg)Francia, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/de.svg)Germania, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/gr.svg)Grecia, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/hu.svg)Ungheria, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/ie.svg)Irlanda, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/it.svg)Italia, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/lv.svg)Lettonia, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/lt.svg)Lituania, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/lu.svg)Lussemburgo, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/mt.svg)Malta, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/nl.svg)Paesi Bassi, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/pl.svg)Polonia, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/pt.svg)Portogallo, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/ro.svg)Romania, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/sk.svg)Slovacchia, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/si.svg)Slovenia, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/es.svg)Spagna, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/se.svg)Svezia, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/is.svg)Islanda, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/li.svg)Liechtenstein, ![](https://didit-public-assets.s3.eu-west-1.amazonaws.com/flags/no.svg)Norvegia |
| Attivazione del wallet in produzione | ⏳ Prossimamente |
| Prezzo pubblicato del wallet | Prossimamente |

L'attivazione del wallet è separata dalla distribuzione dell'API e dall'idoneità della tua applicazione.
Un endpoint documentato non attiva un wallet contrassegnato come Prossimamente.
Per le tariffe attualmente pubblicate, consulta [prezzi dei wallet di identità digitale](https://docs.didit.me/it/getting-started/pricing.md#prezzi-dei-wallet-di-identità-digitale).

## Cosa fa la persona

Segui la prossima azione restituita dalla richiesta di avvio.
L'esperienza di autenticazione del wallet determina se la persona usa un browser, un altro dispositivo o un'app.

## Ricezione del risultato

Segui la [guida alle API dei wallet di identità digitale](https://docs.didit.me/it/standalone-apis/digital-id-wallets.md) per monitorare la verifica e recuperarne il risultato.
Considera come prova che il wallet ha autenticato la persona solo un risultato completato e verificato.
Gli attributi di identità restituiti variano da wallet a wallet; non dare per scontato che siano presenti un indirizzo, un'immagine del volto o tutti gli attributi richiesti.

## Correlati

* [API dei wallet di identità digitale](https://docs.didit.me/it/standalone-apis/digital-id-wallets.md)
* [Copertura e attributi dei wallet](https://docs.didit.me/it/core-technology/id-verification/digital-id-wallets.md)
* [Prezzi](https://docs.didit.me/it/getting-started/pricing.md#prezzi-dei-wallet-di-identità-digitale)


## OpenAPI

````yaml it/openapi-25.json POST /v3/id-verification/wallets/eudi/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API di verifica dell'identità. Autenticati con l'intestazione x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/id-verification/wallets/eudi/:
    post:
      tags:
        - Digital ID wallets
      summary: Avvia la verifica EUDI Wallet
      description: >-
        Avvia un accesso EUDI Wallet (lo Stato membro dell'utente; l'emittente
        varia a seconda del paese; AUT, BEL, BGR, HRV, CYP, CZE, DNK, EST, FIN,
        FRA, DEU, GRC, HUN, IRL, ITA, LVA, LTU, LUX, MLT, NLD, POL, PRT, ROU,
        SVK, SVN, ESP, SWE, ISL, LIE, NOR) senza alcun workflow. Addebitato una
        sola volta, solo quando l'identità viene verificata. La risposta include
        next_action.type=redirect con l'URL a cui indirizzare il browser
        dell'utente; l'utente torna a return_url con request_id e result
        aggiunti in coda. Leggi l'esito con GET
        /v3/id-verification/wallets/verifications/{request_id}/ o dal webhook,
        mai dall'URL. Le applicazioni sandbox ricevono una simulazione
        deterministica (simulated: true) che non contatta mai il fornitore.
      operationId: start_eudi_wallet_verification
      parameters:
        - in: header
          name: Idempotency-Key
          schema:
            type: string
          description: >-
            Chiave di sicurezza per i nuovi tentativi opzionale (max 255
            caratteri). Un nuovo tentativo con la stessa chiave, wallet e corpo
            restituisce la verifica originale senza avviare un secondo accesso;
            la stessa chiave con un altro wallet o corpo restituisce 409
            idempotency_key_reused.
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/DigitalIdWalletApiEudiWalletVerificationStartRequest
            example:
              country: AUT
              vendor_data: your-customer-reference
              metadata:
                reference: example
              return_url: https://app.example.com/identity/complete
          application/x-www-form-urlencoded:
            schema:
              $ref: >-
                #/components/schemas/DigitalIdWalletApiEudiWalletVerificationStartRequest
          multipart/form-data:
            schema:
              $ref: >-
                #/components/schemas/DigitalIdWalletApiEudiWalletVerificationStartRequest
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/DigitalIdWalletApiWalletVerificationResponse
              example:
                request_id: 00000000-0000-4000-8000-000000000001
                wallet_verification:
                  wallet:
                    id: eudi
                    name: EUDI Wallet
                    issuing_authority: >-
                      The user's own member state; the issuer differs per
                      country
                  country: AUT
                  status: Not Finished
                  outcome: pending
                  error: null
                  interaction: redirect
                  simulated: false
                  expires_at: '2026-01-01T10:10:00Z'
                  next_action:
                    type: redirect
                    url: https://wallet.example.com/authorize
                  identity: null
                  attributes: null
                  level_of_assurance: null
                  verified_at: null
                  signature_valid: null
                  credential_type: person_identification
                vendor_data: your-customer-reference
                metadata:
                  reference: example
                created_at: '2026-01-01T10:00:00Z'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/DigitalIdWalletApiWalletVerificationStartBadRequest
          description: >-
            Errori di validazione dei campi ({field: [messages]}), oppure errore
            return_url_invalid, return_url_not_allowed, invalid_personal_code,
            invalid_phone_number o idempotency_key_invalid.
        '403':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/DigitalIdWalletApiWalletVerificationStartForbidden
          description: >-
            Credenziali mancanti ({detail}), oppure errore wallet_unavailable,
            insufficient_credits o contract_rate_missing.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DigitalIdWalletApiWalletVerificationError'
          description: >-
            errore idempotency_key_reused o idempotency_key_in_progress (con
            Retry-After).
        '502':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DigitalIdWalletApiWalletVerificationError'
          description: >-
            errore wallet_provider_unavailable: non è stato possibile avviare il
            provider; non è stato creato nulla.
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DigitalIdWalletApiWalletVerificationError'
          description: >-
            errore wallet_not_configured: questo ambiente non può raggiungere il
            wallet.
      security:
        - ApiKeyAuth: []
        - BearerAuth: []
      x-codeSamples:
        - lang: curl
          label: cURL
          source: |-
            curl --request POST \
              --url https://verification.didit.me/v3/id-verification/wallets/eudi/ \
              --header 'x-api-key: YOUR_API_KEY' \
              --header 'Idempotency-Key: your-unique-attempt-key' \
              --header 'Content-Type: application/json' \
              --data '{
              "country": "AUT",
              "vendor_data": "your-customer-reference",
              "metadata": {
                "reference": "example"
              },
              "return_url": "https://app.example.com/identity/complete"
            }'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.id_wallets.start_eudi(
                vendor_data="your-customer-reference",
                metadata={"reference": "example"},
                country="AUT",
                return_url="https://app.example.com/identity/complete",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            const result = await didit.idWallets.startEudi({
              vendor_data: "your-customer-reference",
              metadata: { reference: "example" },
              country: "AUT",
              return_url: "https://app.example.com/identity/complete",
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.IDWallets.StartEudi(ctx, didit.IDWalletsStartEudiParams{\n\tBody: didit.DigitalIDWalletAPIEudiWalletVerificationStartRequest{\n\t\tVendorData: didit.String(\"your-customer-reference\"),\n\t\tMetadata:   didit.Some(map[string]any{\"reference\": \"example\"}),\n\t\tCountry:    didit.DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum(\"AUT\"),\n\t\tReturnURL:  \"https://app.example.com/identity/complete\",\n\t},\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import java.util.Map;

            import me.didit.Didit;

            import
            me.didit.types.DigitalIdWalletApiEudiWalletVerificationStartCountryEnum;

            import
            me.didit.types.DigitalIdWalletApiEudiWalletVerificationStartRequest;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.idWallets().startEudi(DigitalIdWalletApiEudiWalletVerificationStartRequest.builder()
                    .vendorData("your-customer-reference")
                    .metadata(Map.of("reference", "example"))
                    .country(DigitalIdWalletApiEudiWalletVerificationStartCountryEnum.of("AUT"))
                    .returnUrl("https://app.example.com/identity/complete")
                    .build());
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            $result = $didit->idWallets->startEudi([
                'vendor_data' => 'your-customer-reference',
                'metadata' => ['reference' => 'example'],
                'country' => 'AUT',
                'return_url' => 'https://app.example.com/identity/complete',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.id_wallets.start_eudi(
              vendor_data: "your-customer-reference",
              metadata: { reference: "example" },
              country: "AUT",
              return_url: "https://app.example.com/identity/complete"
            )
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Collections.Generic;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await client.IdWallets.StartEudiAsync(new
            DigitalIdWalletApiEudiWalletVerificationStartRequest

            {
                VendorData = "your-customer-reference",
                Metadata = new Dictionary<string, object> { ["reference"] = "example" },
                Country = "AUT",
                ReturnUrl = "https://app.example.com/identity/complete",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    DigitalIdWalletApiEudiWalletVerificationStartRequest:
      type: object
      description: >-
        Avvia una verifica EUDI Wallet (AUT, BEL, BGR, HRV, CYP, CZE, DNK, EST,
        FIN, FRA, DEU, GRC, HUN, IRL, ITA, LVA, LTU, LUX, MLT, NLD, POL, PRT,
        ROU, SVK, SVN, ESP, SWE, ISL, LIE, NOR).
      properties:
        vendor_data:
          type: string
          nullable: true
          description: >-
            Il tuo riferimento per questa verifica (es. il tuo ID utente).
            Restituito nei risultati e nei webhook.
        metadata:
          type: object
          additionalProperties: {}
          nullable: true
          description: >-
            Oggetto JSON opzionale memorizzato con la verifica e restituito nei
            risultati e nei webhook.
        sandbox_scenario:
          type: string
          minLength: 1
          description: >-
            Solo per applicazioni sandbox: l'esito simulato -
            'wallet_cancelled', 'wallet_timeout' o 'wallet_provider_error';
            qualsiasi altro scenario (o nessuno) viene verificato. Rifiutato
            sulle applicazioni in produzione. Il catalogo completo è disponibile
            su GET /v1/sandbox/scenarios/.
        country:
          allOf:
            - $ref: >-
                #/components/schemas/DigitalIdWalletApiEudiWalletVerificationStartCountryEnum
          description: |-
            Paese ISO 3166-1 alpha-3 dell'identità EUDI Wallet.

            * `AUT` - AUT
            * `BEL` - BEL
            * `BGR` - BGR
            * `HRV` - HRV
            * `CYP` - CYP
            * `CZE` - CZE
            * `DNK` - DNK
            * `EST` - EST
            * `FIN` - FIN
            * `FRA` - FRA
            * `DEU` - DEU
            * `GRC` - GRC
            * `HUN` - HUN
            * `IRL` - IRL
            * `ITA` - ITA
            * `LVA` - LVA
            * `LTU` - LTU
            * `LUX` - LUX
            * `MLT` - MLT
            * `NLD` - NLD
            * `POL` - POL
            * `PRT` - PRT
            * `ROU` - ROU
            * `SVK` - SVK
            * `SVN` - SVN
            * `ESP` - ESP
            * `SWE` - SWE
            * `ISL` - ISL
            * `LIE` - LIE
            * `NOR` - NOR
        return_url:
          type: string
          format: uri
          minLength: 1
          description: >-
            URL https a cui ritorna il browser dell'utente dopo il wallet, con
            request_id e result aggiunti in coda. Il rispettivo host deve essere
            registrato in allowed_return_hosts dell'applicazione (o
            corrispondere al suo dominio white label). Non fidarti mai di result
            da solo: leggi l'esito con GET .../verifications/{request_id}/ o
            tramite il webhook.
          maxLength: 2048
        device:
          allOf:
            - $ref: '#/components/schemas/DigitalIdWalletApiDeviceEnum'
          default: same_device
          description: >-
            same_device quando l'utente effettua l'accesso sul dispositivo che
            mostra la tua pagina, cross_device quando ne utilizza un altro (es.
            il codice QR di BankID).


            * `same_device` - same_device

            * `cross_device` - cross_device
      required:
        - country
        - return_url
    DigitalIdWalletApiWalletVerificationResponse:
      type: object
      description: >-
        Una verifica del wallet autonoma, così come restituita da ciascun
        endpoint di wallet.
      properties:
        request_id:
          type: string
          format: uuid
        wallet_verification:
          $ref: '#/components/schemas/DigitalIdWalletApiWalletVerificationResult'
        vendor_data:
          type: string
          nullable: true
        metadata:
          type: object
          additionalProperties: {}
          nullable: true
          description: L'oggetto dei metadati inviato all'avvio, o null.
        created_at:
          type: string
          format: date-time
      required:
        - created_at
        - metadata
        - request_id
        - vendor_data
        - wallet_verification
    DigitalIdWalletApiWalletVerificationStartBadRequest:
      oneOf:
        - $ref: '#/components/schemas/DigitalIdWalletApiWalletVerificationError'
        - $ref: '#/components/schemas/DigitalIdWalletApiWalletVerificationFieldErrors'
    DigitalIdWalletApiWalletVerificationStartForbidden:
      oneOf:
        - $ref: >-
            #/components/schemas/DigitalIdWalletApiClientCredentialsForbiddenErrorMessage
        - $ref: '#/components/schemas/DigitalIdWalletApiWalletVerificationError'
    DigitalIdWalletApiWalletVerificationError:
      type: object
      properties:
        error:
          type: string
          description: Codice stabile leggibile da macchina, es. wallet_unavailable.
        detail:
          type: string
      required:
        - detail
        - error
    DigitalIdWalletApiEudiWalletVerificationStartCountryEnum:
      enum:
        - AUT
        - BEL
        - BGR
        - HRV
        - CYP
        - CZE
        - DNK
        - EST
        - FIN
        - FRA
        - DEU
        - GRC
        - HUN
        - IRL
        - ITA
        - LVA
        - LTU
        - LUX
        - MLT
        - NLD
        - POL
        - PRT
        - ROU
        - SVK
        - SVN
        - ESP
        - SWE
        - ISL
        - LIE
        - NOR
      type: string
      description: |-
        * `AUT` - AUT
        * `BEL` - BEL
        * `BGR` - BGR
        * `HRV` - HRV
        * `CYP` - CYP
        * `CZE` - CZE
        * `DNK` - DNK
        * `EST` - EST
        * `FIN` - FIN
        * `FRA` - FRA
        * `DEU` - DEU
        * `GRC` - GRC
        * `HUN` - HUN
        * `IRL` - IRL
        * `ITA` - ITA
        * `LVA` - LVA
        * `LTU` - LTU
        * `LUX` - LUX
        * `MLT` - MLT
        * `NLD` - NLD
        * `POL` - POL
        * `PRT` - PRT
        * `ROU` - ROU
        * `SVK` - SVK
        * `SVN` - SVN
        * `ESP` - ESP
        * `SWE` - SWE
        * `ISL` - ISL
        * `LIE` - LIE
        * `NOR` - NOR
    DigitalIdWalletApiDeviceEnum:
      enum:
        - same_device
        - cross_device
      type: string
      description: |-
        * `same_device` - same_device
        * `cross_device` - cross_device
    DigitalIdWalletApiWalletVerificationResult:
      type: object
      properties:
        wallet:
          allOf:
            - $ref: '#/components/schemas/DigitalIdWalletApiWallet'
          readOnly: true
        country:
          type: string
        status:
          type: string
          description: >-
            Non completato mentre è in sospeso, poi Approvata (verificata) o
            Rifiutata.
        outcome:
          $ref: >-
            #/components/schemas/DigitalIdWalletApiWalletVerificationResultOutcomeEnum
        error:
          type: string
          nullable: true
          readOnly: true
        interaction:
          allOf:
            - $ref: '#/components/schemas/DigitalIdWalletApiInteractionEnum'
          readOnly: true
        simulated:
          type: boolean
          readOnly: true
        expires_at:
          type: string
          format: date-time
        next_action:
          allOf:
            - $ref: '#/components/schemas/DigitalIdWalletApiWalletNextAction'
          nullable: true
          readOnly: true
        identity:
          allOf:
            - $ref: '#/components/schemas/DigitalIdWalletApiWalletIdentity'
          nullable: true
          readOnly: true
        attributes:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        level_of_assurance:
          type: string
          nullable: true
        verified_at:
          type: string
          format: date-time
          nullable: true
        signature_valid:
          type: boolean
          nullable: true
          description: >-
            True dopo che la firma della credenziale è stata verificata; null
            per una simulata.
        credential_type:
          type: string
          nullable: true
      required:
        - attributes
        - country
        - credential_type
        - error
        - expires_at
        - identity
        - interaction
        - level_of_assurance
        - next_action
        - outcome
        - signature_valid
        - simulated
        - status
        - verified_at
        - wallet
    DigitalIdWalletApiWalletVerificationFieldErrors:
      type: object
      description: >-
        Errori di validazione della richiesta: ciascun campo rifiutato con i
        relativi messaggi.
      additionalProperties:
        type: array
        items:
          type: string
    DigitalIdWalletApiClientCredentialsForbiddenErrorMessage:
      type: object
      properties:
        detail:
          type: string
          default: Forbidden - User doesn't have permission
    DigitalIdWalletApiWallet:
      type: object
      properties:
        id:
          type: string
          description: Id di catalogo del wallet, ad es. bankid_se.
        name:
          type: string
        issuing_authority:
          type: string
          nullable: true
      required:
        - id
        - issuing_authority
        - name
    DigitalIdWalletApiWalletVerificationResultOutcomeEnum:
      enum:
        - pending
        - verified
        - cancelled
        - timeout
        - failed
      type: string
      description: |-
        * `pending` - In sospeso
        * `verified` - Verificata
        * `cancelled` - Annullata dall'utente
        * `timeout` - Scaduta per timeout
        * `failed` - Non riuscita
    DigitalIdWalletApiInteractionEnum:
      enum:
        - redirect
        - in_app
        - digital_credentials
      type: string
      description: |-
        * `redirect` - redirect
        * `in_app` - in_app
        * `digital_credentials` - digital_credentials
    DigitalIdWalletApiWalletNextAction:
      type: object
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/DigitalIdWalletApiWalletNextActionTypeEnum'
          description: >-
            redirect: reindirizza il browser dell'utente a url. confirm_in_app:
            mostra verification_code all'utente, che verifica la corrispondenza
            con il codice nella propria app wallet e conferma lì; quindi esegui
            il polling. request_digital_credential: con un gesto dell'utente
            sull'origine da cui hai iniziato, richiedi al wallet con
            digital_credentials.request, quindi invia ciò che restituisce a POST
            .../verifications/{request_id}/response/.


            * `redirect` - redirect

            * `confirm_in_app` - confirm_in_app

            * `request_digital_credential` - request_digital_credential
        url:
          type: string
          format: uri
          description: 'Solo redirect: dove l''utente effettua l''accesso con il wallet.'
        digital_credentials:
          allOf:
            - $ref: >-
                #/components/schemas/DigitalIdWalletApiWalletDigitalCredentialsRequest
          description: >-
            Solo request_digital_credential: la richiesta da trasmettere al
            wallet.
        verification_code:
          type: string
          description: >-
            Solo confirm_in_app: il codice di confronto a 4 cifre mostrato anche
            dall'app del wallet.
        poll_interval_seconds:
          type: integer
          description: >-
            Solo confirm_in_app: la frequenza con cui chiamare POST
            .../verifications/{request_id}/poll/ per un feedback immediato.
            Didit esegue il polling degli accessi in sospeso anche in
            background, quindi il webhook segnala l'esito anche se non esegui il
            polling.
      required:
        - type
    DigitalIdWalletApiWalletIdentity:
      type: object
      properties:
        full_name:
          type: string
          nullable: true
        first_name:
          type: string
          nullable: true
        last_name:
          type: string
          nullable: true
        date_of_birth:
          type: string
          format: date
          nullable: true
        nationality:
          type: string
          nullable: true
          description: Nazionalità ISO3, solo quando dichiarata dal wallet (mai dedotta).
        issuing_state:
          type: string
          description: Paese ISO3 il cui schema ha emesso l'identità.
      required:
        - date_of_birth
        - first_name
        - full_name
        - issuing_state
        - last_name
        - nationality
    DigitalIdWalletApiWalletNextActionTypeEnum:
      enum:
        - redirect
        - confirm_in_app
        - request_digital_credential
      type: string
      description: |-
        * `redirect` - redirect
        * `confirm_in_app` - confirm_in_app
        * `request_digital_credential` - request_digital_credential
    DigitalIdWalletApiWalletDigitalCredentialsRequest:
      type: object
      properties:
        protocol:
          type: string
          description: openid4vp-v1-signed.
        request:
          type: object
          additionalProperties: {}
          description: >-
            Passalo così com'è: navigator.credentials.get({digital: request})
            nel browser, oppure JSON.stringify(request) come requestJson di
            GetDigitalCredentialOption su Android. Firmato da Didit per la tua
            applicazione.
      required:
        - protocol
        - request
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La chiave API della tua applicazione, da Developers -> API keys nella
        Business Console. La chiave primaria ha accesso completo. Una chiave con
        nome può avere un ambito definito: nessuno, lettura o scrittura per
        risorsa, limitata ad alcuni workflow o a sessioni approvate, a un elenco
        di indirizzi IP e a una data di scadenza. 401 indica che la chiave è
        errata, revocata o scaduta; 403 indica che non è stata inviata alcuna
        chiave, che la chiave non ha accesso a questa risorsa o azione, oppure
        che la richiesta proviene da un indirizzo non incluso nel suo elenco IP;
        404 su una route di sessione indica che la sessione non rientra nei
        workflow o negli stati previsti dalla chiave. Una chiave senza accesso
        ai media riceve gli URL di immagini, video e PDF come null, e una chiave
        senza permessi di scrittura sulle sessioni riceve link e token di
        sessione come null. Consulta https://docs.didit.me/console/api-keys.
    BearerAuth:
      type: http
      scheme: bearer
      description: Il token di accesso client-credentials dell'applicazione.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.