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

# Borrador de blueprint de caso con IA mediante API

> Genera una propuesta de blueprint de caso en Didit sin guardarla, revísala por etapas y tipos de caso, y guarda después tu política.

La API de borrador con IA para blueprints de Didit convierte una descripción de la política en una propuesta de política de revisión sin guardar.
Autentícate con `x-api-key` y el permiso `write:cases` de la aplicación.

## Generar y revisar una propuesta

Envía un `prompt` no vacío de como máximo 4000 caracteres. La respuesta es `200` con un objeto `draft`, no un blueprint guardado ni un UUID.

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

La propuesta puede contener `name`, `description`, `applies_to`, `content_config`, `require_resolution_note`, `assignment_method`, `max_active_cases` y `default_deadline_hours`. Algunos campos pueden no aparecer, así que revisa la respuesta antes de usarla. La propuesta de nivel superior excluye las listas de asignados, los ajustes de aprobación y las referencias de enrutamiento.

Selecciona tú mismo los asignados, los equipos, las aprobaciones y el enrutamiento antes de guardar. Si una etapa generada contiene `worked_by`, la aplicación lo valida como UUID de un equipo de revisión activo; no trates una propuesta como una asignación aprobada.

Usa [Crear blueprint de caso](https://docs.didit.me/es/management-api/case-blueprints/create.md) después de revisar, incluyendo su `name` obligatorio y un `assignee_pool` no vacío. Generar una propuesta no guarda un borrador de política, no publica una política ni cambia los casos existentes. El [ciclo de vida del borrador guardado y de publicación](https://docs.didit.me/es/console/case-management/blueprints.md#guardar-y-publicar-cambios-de-políticas) es independiente.

## Errores

| Estado | Significado |
| - | - |
| `400` | Falta el prompt, está en blanco o supera la longitud máxima |
| `401` / `403` | Falta la autenticación o el permiso |
| `404` | Aplicación no encontrada |
| `503` | La generación falló o devolvió una propuesta que no superó la validación; vuelve a intentarlo más tarde |

Si la generación falla, la respuesta es:

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

## Relacionado

* [Listar blueprints de casos](https://docs.didit.me/es/management-api/case-blueprints/list.md)
* [Configuración de blueprints y políticas de revisión](https://docs.didit.me/es/console/case-management/blueprints.md)


## OpenAPI

````yaml es/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 verificación de identidad. Autentícate con el encabezado 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: Redacta con IA un borrador del esquema del caso
      description: >-
        Genera una propuesta de blueprint sin guardar. Requiere write:cases.
        Devuelve un objeto de borrador, no un UUID de blueprint; no se crea
        ningún blueprint ni borrador de política guardado. Revisa la propuesta,
        elige los responsables asignados y los equipos, aprobaciones o
        enrutamiento que necesites, y después crea o actualiza un blueprint por
        separado. El contenido generado no válido o un fallo de generación
        devuelve 503. Consulta [borradores de blueprint con
        IA](/es/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 de la organización.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID de la aplicación.
      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: Propuesta no guardada. No se ha cambiado ningún estado.
          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: Falta el prompt, está en blanco o tiene más de 4000 caracteres.
        '401':
          description: Se requiere autenticación.
        '403':
          description: Se requiere el permiso write:cases.
        '404':
          description: Aplicación no encontrada.
        '503':
          description: >-
            La generación falló o produjo una propuesta no válida. Vuelve a
            intentarlo más 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: Descripción no vacía de la política de revisión que se propone.
          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: >-
        Propuesta validada pero no guardada. Los campos son opcionales; revise
        el resultado y seleccione las personas asignadas, los equipos y el
        enrutamiento antes de guardar.
      properties:
        name:
          type: string
          maxLength: 24
          description: Máximo 24 caracteres, por ejemplo "Investigación 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: >-
            Umbral del modo automático: "menos de N casos asignados de este
            blueprint".
        default_deadline_hours:
          type: integer
          nullable: true
          minimum: 1
          maximum: 8760
          description: >-
            Plazo predeterminado para los casos recién abiertos. Los plazos de
            los casos existentes no cambian.
        applies_to:
          $ref: '#/components/schemas/CaseBlueprintAppliesTo'
    CaseContentConfig:
      type: object
      description: >-
        Secciones de contenido del caso y etapas de revisión opcionales. Se
        rechazan las secciones o claves desconocidas. Los casos conservan la
        instantánea de la política aceptada al abrirse; las ediciones
        posteriores del plan no la reescriben.
      properties:
        checklist:
          type: object
          properties:
            enabled:
              type: boolean
            optional:
              type: boolean
              description: >-
                Si es true, un caso puede resolverse con elementos de la lista
                de comprobación 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 revisión ordenadas. Los elementos omitidos o vacíos usan
            las etapas predeterminadas Triage, Evidence review y Decision.
          properties:
            items:
              type: array
              maxItems: 10
              items:
                $ref: '#/components/schemas/CaseBlueprintStage'
              description: >-
                Como máximo diez etapas con claves distintas. Resolver un caso
                es un cambio de estado, no una etapa.
    CaseBlueprintAppliesTo:
      type: array
      maxItems: 6
      items:
        type: string
        enum:
          - GENERAL
          - VERIFICATION_REVIEW
          - BUSINESS_REVIEW
          - AML
          - TRANSACTION_MONITORING
          - DUPLICATES
      description: >-
        Case types this plan describes. Optional on create and update; new plans
        default to an empty list. Stored in the accepted case policy snapshot.
      example:
        - AML
    CaseBlueprintStage:
      type: object
      additionalProperties: false
      required:
        - label
      properties:
        key:
          type: string
          pattern: ^[a-z0-9_]{1,64}$
          description: >-
            Único dentro de la política. Omítalo para derivarlo de la etiqueta.
            La clave resuelta está reservada.
          example: triage
        label:
          type: string
          minLength: 1
          maxLength: 64
          description: Etiqueta de etapa no vacía.
          example: Triage
        sla_hours:
          type: integer
          minimum: 1
          maximum: 8760
          nullable: true
          description: SLA de la etapa en horas, o null si no hay SLA.
          example: 24
        worked_by:
          type: string
          format: uuid
          nullable: true
          description: >-
            UUID opcional de un equipo de revisión. Un valor no nulo debe
            identificar un equipo activo en esta aplicación. Omítelo o usa null
            si la etapa no tiene equipo.
          example: a0000000-0000-4000-8000-000000000001
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clave de API de tu aplicación, que encontrarás en Developers -> API
        keys en la Business Console. La clave principal tiene acceso completo.
        Una clave con nombre puede tener un alcance limitado: ninguno, lectura o
        escritura por recurso, limitada a algunos flujos o a sesiones aprobadas,
        a una lista de direcciones IP y a una fecha de caducidad. 401 significa
        que la clave es incorrecta, se revocó o expiró; 403 significa que no se
        envió ninguna clave, que la clave no tiene acceso a este recurso o
        acción, o que la solicitud provino de una dirección fuera de su lista de
        IP; 404 en una ruta de sesión significa que la sesión está fuera de los
        flujos o estados de la clave. Una clave sin acceso a contenido
        multimedia recibe las URL de imágenes, videos y PDF como null, y una
        clave sin permiso de escritura en sesiones recibe los enlaces y tokens
        de sesión como null. Consulta https://docs.didit.me/console/api-keys.

````

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