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

# Bozza di case blueprint con AI tramite API

> Genera con Didit una bozza di case blueprint non salvata da un prompt, rivedi fasi e tipi di caso, poi salva a parte le policy scelte.

L'API di Didit per la generazione di bozze AI dei blueprint trasforma una descrizione di policy in una proposta di policy di revisione non salvata.
Autenticati con `x-api-key` e con l'autorizzazione `write:cases` per l'applicazione.

## Generare e rivedere una proposta

Invia un valore `prompt` non vuoto di al massimo 4000 caratteri. La risposta è `200` con un oggetto `draft`, non un blueprint salvato né un UUID.

```json theme={null}
{"prompt": "Draft an AML review policy with triage and evidence review stages."}
```

La proposta può contenere `name`, `description`, `applies_to`, `content_config`, `require_resolution_note`, `assignment_method`, `max_active_cases` e `default_deadline_hours`. I campi possono essere assenti, quindi controlla la risposta prima di usarla. La proposta di primo livello esclude gli elenchi di assegnatari, le impostazioni di approvazione e i riferimenti di instradamento.

Seleziona tu stesso assegnatari, team, approvazioni e instradamento prima di salvare. Se una fase generata contiene `worked_by`, nell'applicazione viene validato come UUID di un team di revisione attivo; non considerare una proposta come un'assegnazione approvata.

Usa [Crea blueprint del caso](https://docs.didit.me/it/management-api/case-blueprints/create.md) dopo la revisione, includendo il campo obbligatorio `name` e un `assignee_pool` non vuoto. Generare una proposta non salva una bozza di policy, non pubblica una policy e non modifica i casi esistenti. Il [ciclo di vita della bozza salvata e della pubblicazione](https://docs.didit.me/it/console/case-management/blueprints.md#salva-e-pubblica-le-modifiche-alle-policy) è separato.

## Errori

| Stato | Significato |
| - | - |
| `400` | Prompt mancante, vuoto o troppo lungo |
| `401` / `403` | Autenticazione o autorizzazione mancante |
| `404` | Applicazione non trovata |
| `503` | Generazione non riuscita oppure proposta che non ha superato la validazione; riprova più tardi |

In caso di errore nella generazione viene restituito:

```json theme={null}
{"detail": "A blueprint draft could not be generated. Please try again."}
```

## Correlati

* [Elenca i blueprint dei casi](https://docs.didit.me/it/management-api/case-blueprints/list.md)
* [Impostazioni dei blueprint dei casi e politiche di revisione](https://docs.didit.me/it/console/case-management/blueprints.md)


## OpenAPI

````yaml it/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/ai-draft/
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/organization/{organization_id}/application/{application_id}/cases/blueprints/ai-draft/:
    post:
      tags:
        - Case Blueprints
      summary: Crea con l'AI una bozza dello schema del caso
      description: >-
        Genera una bozza di blueprint non salvata. Richiede write:cases.
        Restituisce un oggetto bozza, non un UUID di blueprint; non viene creato
        alcun blueprint né alcuna bozza di policy salvata. Verifica la proposta,
        scegli gli assegnatari e gli eventuali team, approvazioni o
        instradamento, quindi crea o aggiorna un blueprint separatamente.
        Contenuto generato non valido o errore di generazione restituiscono 503.
        Vedi [bozze AI dei
        blueprint](/it/management-api/case-blueprints/ai-draft).
      operationId: draft_case_blueprint
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID dell'organizzazione.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID dell'applicazione.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseBlueprintAiDraftRequest'
            example:
              prompt: >-
                Draft an AML review policy with triage and evidence review
                stages.
      responses:
        '200':
          description: Proposta non salvata. Non è stato modificato alcuno stato.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaseBlueprintAiDraftResponse'
              example:
                draft:
                  name: AML review
                  applies_to:
                    - AML
                  require_resolution_note: true
                  content_config:
                    stages:
                      items:
                        - key: triage
                          label: Triage
                          sla_hours: 24
        '400':
          description: Il prompt è mancante, vuoto o più lungo di 4000 caratteri.
        '401':
          description: L'autenticazione è richiesta.
        '403':
          description: È richiesta l'autorizzazione write:cases.
        '404':
          description: Applicazione non trovata.
        '503':
          description: Generazione non riuscita o proposta non valida. Riprova più tardi.
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    type: string
              example:
                detail: A blueprint draft could not be generated. Please try again.
      security:
        - ApiKeyAuth: []
      x-codeSamples: []
components:
  schemas:
    CaseBlueprintAiDraftRequest:
      type: object
      required:
        - prompt
      properties:
        prompt:
          type: string
          minLength: 1
          maxLength: 4000
          description: Descrizione non vuota della policy di revisione da proporre.
          example: Draft an AML review policy with triage and evidence review stages.
    CaseBlueprintAiDraftResponse:
      type: object
      required:
        - draft
      properties:
        draft:
          $ref: '#/components/schemas/CaseBlueprintAiDraft'
    CaseBlueprintAiDraft:
      type: object
      additionalProperties: false
      description: >-
        Proposta non salvata e convalidata. I campi sono facoltativi; verifica
        il risultato e seleziona assegnatari, team e instradamento prima di
        salvare.
      properties:
        name:
          type: string
          maxLength: 24
          description: Massimo 24 caratteri, ad es. "AML investigation".
        description:
          type: string
          nullable: true
        content_config:
          $ref: '#/components/schemas/CaseContentConfig'
        require_resolution_note:
          type: boolean
        assignment_method:
          type: string
          enum:
            - MANUAL
            - AUTOMATIC
        max_active_cases:
          type: integer
          nullable: true
          minimum: 1
          description: >-
            Soglia della modalità automatica: "meno di N casi di questo modello
            assegnati".
        default_deadline_hours:
          type: integer
          nullable: true
          minimum: 1
          maximum: 8760
          description: >-
            Scadenza predefinita per i casi appena aperti. Le scadenze dei casi
            esistenti rimangono invariate.
        applies_to:
          $ref: '#/components/schemas/CaseBlueprintAppliesTo'
    CaseContentConfig:
      type: object
      description: >-
        Sezioni del contenuto del caso e passaggi di revisione facoltativi.
        Sezioni o chiavi sconosciute vengono rifiutate. I casi conservano lo
        snapshot della policy accettato al momento dell'apertura; le modifiche
        successive al blueprint non lo riscrivono.
      properties:
        checklist:
          type: object
          properties:
            enabled:
              type: boolean
            optional:
              type: boolean
              description: >-
                Se true, un caso può essere risolto anche con elementi della
                checklist incompleti.
            items:
              type: array
              items:
                type: object
                properties:
                  label:
                    type: string
                    maxLength: 255
                  order:
                    type: integer
        aml_control:
          type: object
          properties:
            enabled:
              type: boolean
            financial:
              type: boolean
            identity:
              type: boolean
        identity:
          type: object
          properties:
            enabled:
              type: boolean
            personal_information:
              type: boolean
            applicant_tags:
              type: boolean
            contact_information:
              type: boolean
            risk_overview:
              type: boolean
            poi_documents:
              type: boolean
            poa_documents:
              type: boolean
        verifications:
          type: object
          properties:
            enabled:
              type: boolean
            summary:
              type: boolean
        reporting:
          type: object
          properties:
            enabled:
              type: boolean
            fiu_reports:
              type: boolean
        financial:
          type: object
          properties:
            enabled:
              type: boolean
            payment_methods:
              type: boolean
            transactions:
              type: boolean
        stages:
          type: object
          additionalProperties: false
          description: >-
            Fasi di revisione ordinate. Se omesse o vuote, vengono usate le fasi
            predefinite Triage, Evidence review e Decision.
          properties:
            items:
              type: array
              maxItems: 10
              items:
                $ref: '#/components/schemas/CaseBlueprintStage'
              description: >-
                Al massimo dieci passaggi con chiavi distinte. Risolvere un caso
                è un cambio di stato, non un passaggio.
    CaseBlueprintAppliesTo:
      type: array
      maxItems: 6
      items:
        type: string
        enum:
          - GENERAL
          - VERIFICATION_REVIEW
          - BUSINESS_REVIEW
          - AML
          - TRANSACTION_MONITORING
          - DUPLICATES
      description: >-
        Tipi di caso descritti da questo blueprint. Facoltativo in creazione e
        aggiornamento; i nuovi blueprint hanno come valore predefinito un elenco
        vuoto. Memorizzato nello snapshot della policy del caso accettato.
      example:
        - AML
    CaseBlueprintStage:
      type: object
      additionalProperties: false
      required:
        - label
      properties:
        key:
          type: string
          pattern: ^[a-z0-9_]{1,64}$
          description: >-
            Unico all'interno della policy. Omettere per derivarlo
            dall'etichetta. La chiave risolta è riservata.
          example: triage
        label:
          type: string
          minLength: 1
          maxLength: 64
          description: Etichetta della fase non vuota.
          example: Triage
        sla_hours:
          type: integer
          minimum: 1
          maximum: 8760
          nullable: true
          description: SLA della fase in ore, oppure null se non c'è SLA.
          example: 24
        worked_by:
          type: string
          format: uuid
          nullable: true
          description: >-
            UUID facoltativo del team di revisione. Un valore non null deve
            identificare un team attivo in questa applicazione. Ometti il campo
            o usa null se la fase non ha un team.
          example: a0000000-0000-4000-8000-000000000001
  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.

````

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