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

# Blueprint de caso com IA: rascunho via API

> Gere com a Didit um blueprint de caso não guardado a partir de um prompt, reveja os passos e tipos de caso e guarde a política à parte.

A API de rascunho com IA do blueprint da Didit transforma uma descrição de política numa proposta de política de revisão não guardada.
Autentique-se com `x-api-key` e a permissão `write:cases` para a aplicação.

## Gerar e rever uma proposta

Envie um `prompt` não vazio, com no máximo 4000 caracteres. A resposta é `200` com um objeto `draft`, e não um modelo de caso guardado nem um UUID.

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

A proposta pode conter `name`, `description`, `applies_to`, `content_config`, `require_resolution_note`, `assignment_method`, `max_active_cases` e `default_deadline_hours`. Os campos podem estar ausentes, por isso reveja a resposta antes de a utilizar. A proposta de nível superior exclui as listas de responsáveis atribuídos, as definições de aprovação e as referências de encaminhamento.

Selecione você mesmo os responsáveis, as equipas, as aprovações e o encaminhamento antes de guardar. Se um passo gerado contiver `worked_by`, ele é validado na aplicação como um UUID de uma equipa de revisão ativa; não trate uma proposta como uma atribuição aprovada.

Use [Criar modelo de caso](https://docs.didit.me/pt/management-api/case-blueprints/create.md) depois da revisão, com o `name` obrigatório e um `assignee_pool` não vazio. Gerar uma proposta não guarda um rascunho de política, não publica uma política nem altera casos existentes. O [ciclo de vida do rascunho guardado e da publicação](https://docs.didit.me/pt/console/case-management/blueprints.md#guardar-e-publicar-alterações-à-política) é separado.

## Erros

| Status | Significado |
| - | - |
| `400` | Prompt em falta, em branco ou demasiado longo |
| `401` / `403` | Autenticação ou permissão em falta |
| `404` | Aplicação não encontrada |
| `503` | A geração falhou ou devolveu uma proposta que não passou na validação; tente novamente mais tarde |

Uma falha na geração devolve:

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

## Relacionados

* [Listar modelos de casos](https://docs.didit.me/pt/management-api/case-blueprints/list.md)
* [Definições dos modelos de casos e políticas de revisão](https://docs.didit.me/pt/console/case-management/blueprints.md)


## OpenAPI

````yaml pt/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 de Verificação de identidade. Autentique-se com o cabeçalho 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: Criar um rascunho do modelo de caso com IA
      description: >-
        Gera uma proposta de blueprint não guardada. Requer write:cases. Devolve
        um objeto de rascunho, e não um UUID de blueprint; não é criado nenhum
        blueprint nem rascunho de política guardado. Reveja a proposta, escolha
        os responsáveis e quaisquer equipas, aprovações ou encaminhamento, e
        depois crie ou atualize um blueprint separadamente. Conteúdo gerado
        inválido ou falha na geração devolve 503. Consulte [rascunhos de IA de
        blueprint](/pt/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 da organização.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID da aplicação.
      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 não guardada. Nenhum estado foi alterado.
          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: prompt está em falta, em branco ou tem mais de 4000 caracteres.
        '401':
          description: A autenticação é obrigatória.
        '403':
          description: É necessária a permissão write:cases.
        '404':
          description: Aplicação não encontrada.
        '503':
          description: >-
            A geração falhou ou produziu uma proposta inválida. Tente novamente
            mais tarde.
          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: Descrição não vazia da política de revisão a propor.
          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 validada, não guardada. Os campos são opcionais; reveja o
        resultado e selecione responsáveis, equipas e encaminhamento antes de
        guardar.
      properties:
        name:
          type: string
          maxLength: 24
          description: Máximo de 24 caracteres, por ex., "investigação AML".
        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: >-
            Limiar do modo automático: "menos de N casos deste blueprint
            atribuídos".
        default_deadline_hours:
          type: integer
          nullable: true
          minimum: 1
          maximum: 8760
          description: >-
            Prazo predefinido para casos recém-abertos. Os prazos dos casos
            existentes permanecem inalterados.
        applies_to:
          $ref: '#/components/schemas/CaseBlueprintAppliesTo'
    CaseContentConfig:
      type: object
      description: >-
        Secções de conteúdo do caso e etapas de revisão opcionais. Secções ou
        chaves desconhecidas são rejeitadas. Os casos mantêm o instantâneo da
        política aceite na abertura; as edições posteriores do modelo não a
        reescrevem.
      properties:
        checklist:
          type: object
          properties:
            enabled:
              type: boolean
            optional:
              type: boolean
              description: >-
                Quando for true, um caso pode ser resolvido com itens da lista
                de verificação incompletos.
            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: >-
            Etapas de revisão ordenadas. Se omitido ou vazio, são usadas as
            etapas predefinidas Triagem, Análise de provas e Decisão.
          properties:
            items:
              type: array
              maxItems: 10
              items:
                $ref: '#/components/schemas/CaseBlueprintStage'
              description: >-
                No máximo dez etapas com chaves distintas. Resolver um caso é
                uma alteração de estado, não uma etapa.
    CaseBlueprintAppliesTo:
      type: array
      maxItems: 6
      items:
        type: string
        enum:
          - GENERAL
          - VERIFICATION_REVIEW
          - BUSINESS_REVIEW
          - AML
          - TRANSACTION_MONITORING
          - DUPLICATES
      description: >-
        Tipos de caso que este modelo descreve. Opcional na criação e na
        atualização; os novos modelos usam por omissão uma lista vazia. Guardado
        no instantâneo da política de caso aceite.
      example:
        - AML
    CaseBlueprintStage:
      type: object
      additionalProperties: false
      required:
        - label
      properties:
        key:
          type: string
          pattern: ^[a-z0-9_]{1,64}$
          description: >-
            Único dentro da política. Omitir para derivar a partir do rótulo. A
            chave resolvida está reservada.
          example: triage
        label:
          type: string
          minLength: 1
          maxLength: 64
          description: Rótulo não vazio da etapa.
          example: Triage
        sla_hours:
          type: integer
          minimum: 1
          maximum: 8760
          nullable: true
          description: SLA da etapa em horas, ou null se não houver SLA.
          example: 24
        worked_by:
          type: string
          format: uuid
          nullable: true
          description: >-
            UUID opcional da equipa de revisão. Um valor não nulo tem de
            identificar uma equipa ativa nesta aplicação. Omita ou use null para
            não ter equipa na etapa.
          example: a0000000-0000-4000-8000-000000000001
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        A chave de API da sua aplicação, a partir de Programadores -> Chaves de
        API na Business Console. A chave principal tem acesso total. Uma chave
        nomeada pode ter o âmbito definido: nenhum, leitura ou escrita por
        recurso, limitada a alguns fluxos ou a sessões aprovadas, a uma lista de
        endereços IP e a uma data de validade. 401 significa que a chave está
        incorreta, revogada ou expirada; 403 significa que nenhuma chave foi
        enviada, que a chave não tem acesso a este recurso ou ação, ou que o
        pedido veio de um endereço fora da sua lista de IP; 404 numa rota de
        sessão significa que a sessão está fora dos fluxos ou estados da chave.
        Uma chave sem acesso a multimédia recebe URLs de imagens, vídeos e PDFs
        como nulos, e uma chave sem permissão de escrita em sessões recebe
        ligações de sessão e tokens como nulos. Consulte
        https://docs.didit.me/console/api-keys.

````

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