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

# Controllo frodi API

> Con Didit pianifica ed esegui in una sola richiesta controlli selezionati su identità, rischio di contatto, arricchimento e rete.

Sottoponi identificatori digitati e attributi di identità dichiarati, seleziona i controlli da eseguire e verifica separatamente ciascun risultato.
Usa prima [Pianifica un controllo antifrode](https://docs.didit.me/it/standalone-apis/fraud-check-plan.md) per controllare i requisiti di input e i costi stimati.

## Scegli un profilo

Fissa `profile_version` in modo che i valori predefiniti selezionati e la politica decisionale siano espliciti.
Il profilo predefinito è `standard`, versione `2026-08-27`.
La versione `2026-09-14` aggiunge l'arricchimento sociale facoltativo di email e telefono e registra ogni controllo completato come sessione nativa di Verifica degli utenti.
In questa versione, i componenti aggiuntivi a pagamento sono facoltativi e devono essere attivati esplicitamente.
La versione `2026-09-14.1` abilita anche le ricerche di identificatori nella rete globale antifrode per le organizzazioni con piano Enterprise che condividono dati a livello globale.
La versione `2026-09-14.2` aggiunge un controllo facoltativo di riferimento tra selfie e CPF per il Brasile.
Le versioni precedenti mantengono il loro comportamento originale.

I profili attuali supportano il rischio email, il rischio telefono, il rischio IP, la validazione su database idonea e la cronologia di rete privata della tua applicazione.
L'associazione d'identità basata su selfie richiede la versione `2026-09-14.2`.
Se la selezioni nelle versioni precedenti, viene restituito `not_available_in_profile_version`.

## Identità dichiarata e contesto

Inserisci email, telefono e identificativi governativi in `subject.identifiers`.
Gli identificativi governativi richiedono il paese di emissione; in alcuni casi può essere necessario anche l'ente emittente, quando i numeri sono univoci solo all'interno di una regione.
Inserisci nomi, data di nascita, nazionalità e indirizzo in `subject.attributes`.
Sono affermazioni da confrontare laddove una fonte selezionata lo consenta, non fatti verificati solo perché sono stati inviati.

Usa `context` per l'indirizzo IP del tentativo, lo user agent, la finalità, il paese e qualsiasi dichiarazione di consenso richiesta.
In questo modo si separano le informazioni sul tentativo di verifica da quelle sulla persona.
Per i controlli biometrici supportati, fornisci `subject.selfie` come JPEG, PNG o WebP codificato in base64, fino a 6 MB.
È accettato anche un data URI di immagine corrispondente.
Non inviare un'immagine di riferimento, un URL remoto o una chiave di archiviazione.

## Selfie e identificativo dichiarato

Seleziona `biometric_identity`, invia un identificativo `tax_number` brasiliano e un selfie, e conferma `context.consent_obtained`.
Il controllo di riferimento verifica che quel selfie appartenga al titolare del CPF dichiarato.
Se il consenso manca, viene restituito `consent_required`; per i paesi non supportati viene restituito `unsupported_region`.
Il modulo ha un prezzo per controllo basato sulla tariffa di validazione su database della tua organizzazione; consulta il piano prima di eseguirlo.

Quando il riferimento risponde, `identity_relationship.result` è `match`, `mismatch` o `inconclusive`.
Una risposta inconcludente richiede una revisione e non viene mai trattata come una mancata corrispondenza.
Il risultato stabilisce solo la relazione tra selfie e CPF.
Non convalida un nome o una data di nascita inviati, non dimostra la vitalità e non cerca un volto su internet o nella rete globale antifrode.
Nomi e data di nascita restano affermazioni, a meno che un'altra fonte selezionata non fornisca prove per quei campi.
Timeout ed errori della fonte sono risultati non disponibili e non vengono addebitati.
Le risposte inconcludenti completate vengono addebitate alla stessa tariffa del controllo di riferimento.
Questo controllo non include il selfie nel risultato e non lo memorizza come contenuto multimediale della sessione.

## Seleziona i controlli

`checks.include` seleziona i moduli, e `checks.exclude` ha la precedenza.
Un elenco `include` esplicitamente vuoto disattiva tutte le attività facoltative; la normalizzazione viene comunque eseguita.
Se ometti `include`, vengono usati i valori predefiniti del profilo fissato.
L'arricchimento sociale di email e telefono si seleziona separatamente con `email_social` e `phone_social`.
Richiedono un identificativo valido e corrispondente e non inviano un OTP.

```json theme={null}
{
  "profile_version": "2026-09-14.1",
  "client_reference": "review-attempt-001",
  "subject": {
    "identifiers": [
      { "type": "email", "value": "applicant@example.com" }
    ],
    "attributes": { "first_name": "Alex", "last_name": "Example" }
  },
  "checks": { "include": ["networks_same_org", "networks_cross_org", "email_risk"] }
}
```

## Leggi i risultati senza confonderli

Ogni modulo riporta lo stato di esecuzione, il motivo e le unità fatturabili.
`not_requested`, `excluded_by_caller`, `missing_required_input` e `source_unavailable` descrivono esiti diversi.
Una fonte mancante non equivale a una mancata corrispondenza dell'identità né a un risultato di rischio zero.

`attribute_evidence` descrive le prove a livello di campo, mentre `risk` mantiene separate le dimensioni di identità, contatto, dispositivo, comportamento e rete antifrode.
Un'email, un dispositivo o un altro identificativo condiviso è una connessione osservata, non una prova che due account appartengano alla stessa persona o che sia stata commessa una frode.
`recommendation` è la raccomandazione del controllo; non modifica lo stato di un altro record.
I risultati dell'arricchimento sociale compaiono in `enrichment`, con i risultati non disponibili distinti da quelli completati.

## Rete globale antifrode

Seleziona `networks_cross_org` per interrogare sulla rete condivisa gli identificatori supportati di email e telefono e gli identificatori di documento con il namespace corretto.
La ricerca richiede il piano Enterprise e che la modalità di condivisione della tua organizzazione sia impostata su `global`.
In caso contrario, il piano segnala il modulo con `available: false` e `availability_reason: "entitlement_required"`, e un controllo che lo seleziona lo salta con stato `skipped` e motivo `entitlement_required`.
Lo stesso motivo si applica quando Networks non è abilitato per la tua organizzazione.
Le applicazioni sandbox non sono soggette al piano né alla modalità di condivisione: con un identificatore supportato, il modulo viene eseguito e restituisce un risultato campione vuoto.
La ricerca utilizza il budget di letture esistente dell'organizzazione e registra la lettura nel registro di audit.
Non prevede alcun addebito per ricerca.
Pianificare un controllo non interroga l'indice condiviso e non consuma il suo budget di letture.

`network.cross_organization` contiene `signals_checked` e gli `insights` aggregati e divulgati, quando il controllo è completato.
Ogni insight contiene il tipo di segnale, le classi di esito, il numero di contributori, l'intervallo di recenza e, solo se la divulgazione è attiva, le categorie di settore.
Non identifica mai un'altra organizzazione, un account, una persona o una verifica.
I risultati sotto la soglia di divulgazione vengono omessi; un elenco vuoto non dimostra l'assenza di storico di frodi.
Un segnale condiviso divulgato attiva una raccomandazione di revisione, mai un rifiuto automatico né una corrispondenza di identità.

Una ricerca non disponibile riporta il proprio motivo separatamente da una ricerca completata senza risultati.
Se la tua organizzazione perde in seguito l'accesso alla rete tra organizzazioni, ad esempio dopo un cambio di piano o quando la condivisione non è più `global`, il recupero dei risultati, i nuovi tentativi e i dettagli della sessione nascondono gli aggregati condivisi e le relative evidenze di rischio derivate.
La raccomandazione originale resta una decisione storica; le letture non modificano lo stato della verifica.

## Sessioni, nuovi tentativi e addebiti

`check_id` recupera il risultato memorizzato tramite [Ottieni un controllo antifrode](https://docs.didit.me/it/standalone-apis/fraud-check-result.md).
Quando è presente, `request_id` identifica la sessione di verifica nativa.
Le versioni `2026-09-14`, `2026-09-14.1` e `2026-09-14.2` creano sempre quella sessione, anche quando viene selezionata solo la cronologia della rete privata.

Riutilizzare `client_reference` con lo stesso corpo della richiesta restituisce il risultato originale, senza una nuova esecuzione né un nuovo addebito, finché quel controllo esiste.
Un corpo diverso con lo stesso riferimento restituisce `409`.
Se l'esecuzione è ancora in corso, ripeti la stessa richiesta dopo l'intervallo indicato in `Retry-After` nella risposta.
Eliminare la verifica associata elimina anche il risultato del controllo antifrode; il recupero restituisce poi `404`.
Un controllo eliminato durante l'esecuzione non può pubblicare un risultato completato.

I prezzi derivano dalle tariffe prepagate o contrattuali correnti della tua organizzazione.
I moduli non disponibili e saltati non vengono fatturati, e la cronologia della rete privata non prevede alcun addebito per controllo.
I controlli in sandbox usano risposte campione, senza chiamate a fornitori a pagamento né addebiti.


## OpenAPI

````yaml it/openapi-25.json POST /v3/fraud/checks/
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/fraud/checks/:
    post:
      tags:
        - Fraud Check
      summary: Esegui un controllo antifrode
      description: >-
        Invia uno o più identificativi tipizzati e ricevi normalizzazione,
        arricchimento aggiornato, validazione da fonte autorevole quando il
        paese e il tipo di identificativo sono supportati, dimensioni di rischio
        indipendenti e una raccomandazione in un'unica risposta.


        Questi profili supportano i controlli degli identificativi.
        L'associazione dell'identità basata su selfie (`biometric_identity`)
        richiede la versione del profilo `2026-09-14.2` e un CPF brasiliano;
        viene eseguita solo con il consenso dell'utente e quando la tua
        organizzazione ne ha diritto. Le versioni precedenti la segnalano come
        `not_available_in_profile_version`. I moduli che non possono essere
        eseguiti vengono segnalati come ignorati con un motivo deterministico;
        una fonte che non ha potuto rispondere non viene mai segnalata come
        mancata corrispondenza dell'identità.
      operationId: create_fraud_check
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/FraudCheckRequestRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/FraudCheckRequestRequest'
            example:
              client_reference: review-attempt-001
              subject:
                identifiers:
                  - type: email
                    value: applicant@example.com
                attributes:
                  first_name: Alex
                  last_name: Example
              checks:
                include:
                  - networks_same_org
                  - networks_cross_org
                  - email_risk
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FraudCheckRequestRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FraudCheckResponse'
          description: ''
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FraudClientCredentialsErrorMessage'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/FraudClientCredentialsForbiddenErrorMessage
          description: ''
        '409':
          description: >-
            Conflitto, restituito senza addebito: il `client_reference` è già
            stato utilizzato con un corpo della richiesta diverso; un controllo
            con lo stesso `client_reference` è ancora in esecuzione (riprova
            dopo `Retry-After` secondi con lo stesso riferimento); oppure la
            verifica in cui questo controllo registra i dati è stata eliminata
            prima del completamento del controllo.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
              examples:
                different_body:
                  summary: Riferimento riutilizzato con un body diverso
                  value:
                    error: >-
                      client_reference has already been used with a different
                      request body.
                still_running:
                  summary: Un controllo con questo riferimento è ancora in esecuzione
                  value:
                    error: >-
                      A check with this client_reference is already running.
                      Retry with the same reference later.
                verification_deleted:
                  summary: >-
                    La verifica è stata eliminata prima del completamento del
                    controllo
                  value:
                    error: This verification was deleted before the check completed.
          headers:
            Retry-After:
              description: >-
                Secondi da attendere prima di riprovare, inviati quando un
                controllo con lo stesso `client_reference` è ancora in
                esecuzione.
              schema:
                type: integer
      security:
        - ApiKeyAuth: []
        - BearerAuth: []
      x-codeSamples:
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.fraud_checks.create(
                client_reference="review-attempt-001",
                subject={
                    "identifiers": [{
                        "type": "email",
                        "value": "applicant@example.com",
                    }],
                    "attributes": {
                        "first_name": "Alex",
                        "last_name": "Example",
                    },
                },
                checks={
                    "include": ["networks_same_org", "networks_cross_org", "email_risk"],
                },
            )
            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.fraudChecks.create({
              client_reference: "review-attempt-001",
              subject: {
                identifiers: [{
                  type: "email",
                  value: "applicant@example.com",
                }],
                attributes: {
                  first_name: "Alex",
                  last_name: "Example",
                },
              },
              checks: {
                include: ["networks_same_org", "networks_cross_org", "email_risk"],
              },
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.FraudChecks.Create(ctx, didit.FraudCheckRequestRequest{\n\tClientReference: didit.String(\"review-attempt-001\"),\n\tSubject: didit.FraudCheckSubjectRequest{\n\t\tIdentifiers: []didit.FraudCheckIdentifierRequest{{\n\t\t\tType:  didit.FraudTypeEnum(\"email\"),\n\t\t\tValue: \"applicant@example.com\",\n\t\t}},\n\t\tAttributes: didit.Some(didit.FraudCheckAttributesRequest{\n\t\t\tFirstName: didit.String(\"Alex\"),\n\t\t\tLastName:  didit.String(\"Example\"),\n\t\t}),\n\t},\n\tChecks: didit.Some(didit.FraudCheckModuleSelectionRequest{\n\t\tInclude: didit.Some([]didit.FraudExcludeEnum{didit.FraudExcludeEnum(\"networks_same_org\"), didit.FraudExcludeEnum(\"networks_cross_org\"), didit.FraudExcludeEnum(\"email_risk\")}),\n\t}),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import java.util.List;

            import me.didit.Didit;

            import me.didit.types.FraudCheckAttributesRequest;

            import me.didit.types.FraudCheckIdentifierRequest;

            import me.didit.types.FraudCheckModuleSelectionRequest;

            import me.didit.types.FraudCheckRequestRequest;

            import me.didit.types.FraudCheckSubjectRequest;

            import me.didit.types.FraudExcludeEnum;

            import me.didit.types.FraudTypeEnum;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.fraudChecks().create(FraudCheckRequestRequest.builder()
                    .clientReference("review-attempt-001")
                    .subject(FraudCheckSubjectRequest.builder()
                            .identifiers(List.of(FraudCheckIdentifierRequest.builder()
                                    .type(FraudTypeEnum.of("email"))
                                    .value("applicant@example.com")
                                    .build()))
                            .attributes(FraudCheckAttributesRequest.builder()
                                    .firstName("Alex")
                                    .lastName("Example")
                                    .build())
                            .build())
                    .checks(FraudCheckModuleSelectionRequest.builder()
                            .include(List.of(FraudExcludeEnum.of("networks_same_org"), FraudExcludeEnum.of("networks_cross_org"), FraudExcludeEnum.of("email_risk")))
                            .build())
                    .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->fraudChecks->create([
                'client_reference' => 'review-attempt-001',
                'subject' => [
                    'identifiers' => [[
                        'type' => 'email',
                        'value' => 'applicant@example.com',
                    ]],
                    'attributes' => [
                        'first_name' => 'Alex',
                        'last_name' => 'Example',
                    ],
                ],
                'checks' => [
                    'include' => ['networks_same_org', 'networks_cross_org', 'email_risk'],
                ],
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.fraud_checks.create(
              client_reference: "review-attempt-001",
              subject: {
                identifiers: [{
                  type: "email",
                  value: "applicant@example.com",
                }],
                attributes: {
                  first_name: "Alex",
                  last_name: "Example",
                },
              },
              checks: {
                include: ["networks_same_org", "networks_cross_org", "email_risk"],
              }
            )
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await client.FraudChecks.CreateAsync(new
            FraudCheckRequestRequest

            {
                ClientReference = "review-attempt-001",
                Subject = new()
                {
                    Identifiers = new FraudCheckIdentifierRequest[]
                    {
                        new()
                        {
                            Type = "email",
                            Value = "applicant@example.com",
                        },
                    },
                    Attributes = new FraudCheckAttributesRequest
                    {
                        FirstName = "Alex",
                        LastName = "Example",
                    },
                },
                Checks = new FraudCheckModuleSelectionRequest
                {
                    Include = new FraudExcludeEnum[] { "networks_same_org", "networks_cross_org", "email_risk" },
                },
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    FraudCheckRequestRequest:
      type: object
      properties:
        client_reference:
          type: string
          minLength: 1
          description: >-
            Il tuo riferimento per questo controllo. Funziona anche come chiave
            di idempotenza: riutilizzarlo con lo stesso corpo della richiesta
            restituisce il controllo originale senza eseguire né fatturare
            nuovamente i moduli; riutilizzarlo con un corpo della richiesta
            diverso restituisce 409.
          maxLength: 255
        profile:
          type: string
          minLength: 1
          default: standard
          description: >-
            ID del profilo di orchestrazione. Il valore predefinito è il profilo
            Didit `standard`.
          maxLength: 64
        profile_version:
          type: string
          minLength: 1
          description: >-
            Fissa una versione bloccata del profilo. Il valore predefinito è la
            versione corrente del profilo.
          maxLength: 32
        subject:
          $ref: '#/components/schemas/FraudCheckSubjectRequest'
        context:
          $ref: '#/components/schemas/FraudCheckContextRequest'
        checks:
          $ref: '#/components/schemas/FraudCheckModuleSelectionRequest'
        vendor_data:
          type: string
          maxLength: 1000
        metadata: {}
      required:
        - subject
    FraudCheckResponse:
      type: object
      properties:
        check_id:
          type: string
          format: uuid
        request_id:
          type: string
          format: uuid
          description: Sessione di verifica nativa creata per questo controllo.
        client_reference:
          type: string
          nullable: true
        processing_status:
          $ref: '#/components/schemas/FraudProcessingStatusEnum'
        profile_id:
          type: string
        profile_version:
          type: string
        created_at:
          type: string
          format: date-time
        completed_at:
          type: string
          format: date-time
          nullable: true
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/FraudCheckInput'
        modules:
          type: array
          items:
            $ref: '#/components/schemas/FraudCheckModuleReport'
        attribute_evidence:
          type: array
          items:
            type: object
            additionalProperties: {}
        compound_evidence:
          type: array
          items:
            type: object
            additionalProperties: {}
        risk:
          type: array
          items:
            $ref: '#/components/schemas/FraudCheckRisk'
        network:
          type: object
          additionalProperties: {}
        enrichment:
          type: object
          additionalProperties: {}
        identity_relationship:
          allOf:
            - $ref: '#/components/schemas/FraudCheckIdentityRelationship'
          nullable: true
        recommendation:
          $ref: '#/components/schemas/FraudRecommendationEnum'
        next_action:
          $ref: '#/components/schemas/FraudNextActionEnum'
        decision_reasons:
          type: array
          items:
            type: string
        coverage:
          type: object
          additionalProperties: {}
        usage:
          type: array
          items:
            type: object
            additionalProperties: {}
        vendor_data:
          type: string
          nullable: true
        metadata:
          nullable: true
      required:
        - attribute_evidence
        - check_id
        - client_reference
        - completed_at
        - compound_evidence
        - coverage
        - created_at
        - decision_reasons
        - inputs
        - modules
        - network
        - next_action
        - processing_status
        - profile_id
        - profile_version
        - recommendation
        - risk
        - usage
    FraudClientCredentialsErrorMessage:
      type: object
      properties:
        detail:
          type: string
          default: 'Authentication failed: Invalid client access token.'
    FraudClientCredentialsForbiddenErrorMessage:
      type: object
      properties:
        detail:
          type: string
          default: Forbidden - User doesn't have permission
    FraudCheckSubjectRequest:
      type: object
      properties:
        selfie:
          type: string
          minLength: 1
          description: >-
            Selfie Base64 in formato JPEG, PNG o WebP, fino a 6 MB. Nessuna
            immagine di riferimento o URL.
          maxLength: 8388672
        identifiers:
          type: array
          items:
            $ref: '#/components/schemas/FraudCheckIdentifierRequest'
          description: Uno o più identificatori tipizzati. Uno è sufficiente.
          maxItems: 10
          minItems: 1
        attributes:
          $ref: '#/components/schemas/FraudCheckAttributesRequest'
      required:
        - identifiers
    FraudCheckContextRequest:
      type: object
      properties:
        ip_address:
          type: string
          minLength: 1
        user_agent:
          type: string
          maxLength: 512
        country:
          type: string
          description: >-
            Paese in cui il soggetto dichiara di trovarsi. Solo contestuale -
            mai una prova della titolarità dell'identità.
          maxLength: 3
        purpose:
          type: string
          maxLength: 128
        consent_obtained:
          type: boolean
    FraudCheckModuleSelectionRequest:
      type: object
      properties:
        include:
          type: array
          items:
            $ref: '#/components/schemas/FraudExcludeEnum'
        exclude:
          type: array
          items:
            $ref: '#/components/schemas/FraudExcludeEnum'
    FraudProcessingStatusEnum:
      enum:
        - pending
        - running
        - completed
        - failed
      type: string
      description: |-
        * `pending` - In sospeso
        * `running` - In esecuzione
        * `completed` - Completato
        * `failed` - Non riuscito
    FraudCheckInput:
      type: object
      properties:
        reference:
          type: string
          description: Handle oscurato per l'identificatore inviato.
        type:
          $ref: '#/components/schemas/FraudTypeEnum'
        namespace:
          type: object
          additionalProperties: {}
        quality:
          type: string
        normalization:
          type: object
          additionalProperties: {}
        availability:
          $ref: '#/components/schemas/FraudAvailabilityEnum'
      required:
        - availability
        - namespace
        - normalization
        - quality
        - reference
        - type
    FraudCheckModuleReport:
      type: object
      properties:
        module:
          $ref: '#/components/schemas/FraudExcludeEnum'
        status:
          $ref: '#/components/schemas/FraudStatusEnum'
        reason:
          type: string
          nullable: true
        latency_ms:
          type: integer
        freshness:
          type: string
          nullable: true
        billable_units:
          type: integer
      required:
        - billable_units
        - freshness
        - latency_ms
        - module
        - reason
        - status
    FraudCheckRisk:
      type: object
      properties:
        dimension:
          $ref: '#/components/schemas/FraudDimensionEnum'
        score:
          type: integer
          nullable: true
        band:
          $ref: '#/components/schemas/FraudBandEnum'
        availability:
          $ref: '#/components/schemas/FraudAvailabilityEnum'
        requested_but_unavailable:
          type: boolean
          description: >-
            True quando la richiesta ha fornito tutto ciò di cui questa
            dimensione aveva bisogno e la piattaforma non è comunque riuscita a
            elaborare una risposta. Un controllo del genere non viene mai
            raccomandato per l'approvazione in base alle dimensioni che hanno
            fornito una risposta.
        reason_codes:
          type: array
          items:
            type: string
        evidence_indexes:
          type: array
          items:
            type: integer
      required:
        - availability
        - band
        - dimension
        - evidence_indexes
        - reason_codes
        - requested_but_unavailable
        - score
    FraudCheckIdentityRelationship:
      type: object
      properties:
        result:
          $ref: '#/components/schemas/FraudResultEnum'
        reference_type:
          type: string
        country:
          type: string
        availability:
          $ref: '#/components/schemas/FraudAvailabilityEnum'
        reason_codes:
          type: array
          items:
            type: string
      required:
        - availability
        - country
        - reason_codes
        - reference_type
        - result
    FraudRecommendationEnum:
      enum:
        - approve
        - review
        - reject
      type: string
      description: |-
        * `approve` - Approva
        * `review` - Revisiona
        * `reject` - Rifiuta
    FraudNextActionEnum:
      enum:
        - none
        - manual_review
        - step_up
        - resubmit_capture
      type: string
      description: |-
        * `none` - Nessuno
        * `manual_review` - Revisione manuale
        * `step_up` - Passaggio a un livello superiore
        * `resubmit_capture` - Invia nuovamente l'acquisizione
    FraudCheckIdentifierRequest:
      type: object
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/FraudTypeEnum'
          description: >-
            Tipo di identificatore. Determina quali campi del namespace sono
            obbligatori.


            * `email` - Email

            * `phone` - Telefono

            * `national_id` - Documento d'identità nazionale

            * `tax_number` - Codice fiscale

            * `passport_number` - Numero di passaporto

            * `driving_licence_number` - Numero della patente di guida

            * `residence_permit_number` - Numero del permesso di soggiorno

            * `voter_id` - Tessera elettorale

            * `external_id` - ID esterno
        value:
          type: string
          minLength: 1
          description: Il valore dell'identificativo, in qualsiasi formato consueto.
          maxLength: 255
        country:
          type: string
          description: >-
            Paese di emissione ISO-3166 alpha-2 o alpha-3. Obbligatorio per i
            tipi di identificativo governativo: le stesse cifre indicano persone
            diverse in paesi diversi.
          maxLength: 3
        issuer:
          type: string
          description: >-
            Autorità di rilascio o ente emittente sub-nazionale opzionale,
            quando il solo paese non è univoco.
          maxLength: 128
      required:
        - type
        - value
    FraudCheckAttributesRequest:
      type: object
      description: >-
        Attributi corroboranti. Tutti facoltativi; ampliano la copertura dei
        moduli.
      properties:
        first_name:
          type: string
          maxLength: 128
        last_name:
          type: string
          maxLength: 128
        full_name:
          type: string
          maxLength: 256
        date_of_birth:
          type: string
          format: date
        nationality:
          type: string
          maxLength: 3
        gender:
          type: string
          maxLength: 16
        address:
          type: string
          maxLength: 512
        city:
          type: string
          maxLength: 128
        state:
          type: string
          maxLength: 128
        postal_code:
          type: string
          maxLength: 32
    FraudExcludeEnum:
      enum:
        - normalization
        - email_risk
        - email_social
        - phone_social
        - phone_risk
        - ip_risk
        - database_validation
        - networks_same_org
        - networks_cross_org
        - biometric_identity
      type: string
      description: |-
        * `normalization` - Normalizzazione
        * `email_risk` - Rischio email
        * `email_social` - Socialità dell'email
        * `phone_social` - Socialità del telefono
        * `phone_risk` - Rischio telefono
        * `ip_risk` - Rischio IP
        * `database_validation` - Validazione su database
        * `networks_same_org` - Reti della stessa organizzazione
        * `networks_cross_org` - Reti tra organizzazioni diverse
        * `biometric_identity` - Identità biometrica
    FraudTypeEnum:
      enum:
        - email
        - phone
        - national_id
        - tax_number
        - passport_number
        - driving_licence_number
        - residence_permit_number
        - voter_id
        - external_id
      type: string
      description: |-
        * `email` - Email
        * `phone` - Telefono
        * `national_id` - Documento d'identità nazionale
        * `tax_number` - Numero di identificazione fiscale
        * `passport_number` - Numero di passaporto
        * `driving_licence_number` - Numero della patente di guida
        * `residence_permit_number` - Numero del permesso di soggiorno
        * `voter_id` - Tessera elettorale
        * `external_id` - ID esterno
    FraudAvailabilityEnum:
      enum:
        - available
        - not_requested
        - no_reference
        - insufficient_history
        - unsupported_region
        - source_unavailable
      type: string
      description: |-
        * `available` - Disponibile
        * `not_requested` - Non richiesto
        * `no_reference` - Nessun riferimento
        * `insufficient_history` - Cronologia insufficiente
        * `unsupported_region` - Area geografica non supportata
        * `source_unavailable` - Fonte non disponibile
    FraudStatusEnum:
      enum:
        - planned
        - completed
        - skipped
        - failed
      type: string
      description: |-
        * `planned` - Pianificato
        * `completed` - Completato
        * `skipped` - Saltato
        * `failed` - Non riuscito
    FraudDimensionEnum:
      enum:
        - identity
        - contact
        - device_network
        - behavioral
        - fraud_network
      type: string
      description: |-
        * `identity` - Identità
        * `contact` - Contatto
        * `device_network` - Rete e dispositivo
        * `behavioral` - Comportamentale
        * `fraud_network` - Rete di frode
    FraudBandEnum:
      enum:
        - low
        - medium
        - high
        - unknown
      type: string
      description: |-
        * `low` - Basso
        * `medium` - Medio
        * `high` - Alto
        * `unknown` - Sconosciuto
    FraudResultEnum:
      enum:
        - match
        - mismatch
        - inconclusive
        - no_reference
      type: string
      description: |-
        * `match` - Corrispondenza
        * `mismatch` - Mancata corrispondenza
        * `inconclusive` - Non conclusivo
        * `no_reference` - Nessun riferimento
  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.