> ## 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 de création de modèle de dossier

> Créez un modèle de dossier avec Didit : attribution, escalade, transfert, binôme 4 yeux, note de résolution et six sections de contenu.



Prompt de l'API de création de modèle de dossier
        Copier le prompt dans le presse-papiers



      
      

\<pre>

\`Create a case blueprint through the Management API.

Endpoint:
POST https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/cases/blueprints/

Authentication:
Use the x-api-key header with my Didit API key.

Request body:
\{
"name": "AML investigation",                    // required, max 24 chars
"description": "...",                            // optional
"assignee_pool": ["<user-uuid>"],                 // required, at least 1 - "Pick at least one assignee" otherwise
"assignment_method": "AUTOMATIC",                 // optional, MANUAL|AUTOMATIC, default MANUAL
"max_active_cases": 15,                           // optional - AUTOMATIC threshold
"escalation_enabled": false,                      // optional
"escalation_blueprint": "<blueprint-uuid>",       // optional - set it alongside escalation_enabled; the escalate action fails with 400 until both are set
"transfer_enabled": false,                        // optional
"four_eyes_checker_blueprint": "<blueprint-uuid>", // optional - setting this enables 4-eyes
"require_resolution_note": true,                  // optional
"content_config": {"aml_control": {"enabled": true, "financial": true}},  // optional, six sections
"is_active": true                                 // optional, default true
}

content_config sections: checklist (enabled, optional, items[]), aml_control (enabled, financial, identity), identity (enabled, personal_information, applicant_tags, contact_information, risk_overview, poi_documents, poa_documents), verifications (enabled, summary), reporting (enabled, fiu_reports), financial (enabled, payment_methods, transactions). Unknown sections/keys are rejected with 400.

Example call:
curl -X POST "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/cases/blueprints/" \
-H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"name": "AML investigation", "assignee_pool": ["<uuid>"]}'

Response 201: CaseBlueprintDetail.

Failure modes:
\- 400 - name over 24 chars, empty assignee_pool, unknown content_config key, or escalation_blueprint/four_eyes_checker_blueprint not found in this application or self-referencing.
\- 401/403 - auth/permission errors (requires write:cases).

For the full integration shape, see /integration/integration-prompt.`

\</pre>



      
      

Coller dans

Créez un modèle. `content_config` est validé de manière stricte : seules les six sections connues et leurs clés documentées sont acceptées. Une faute de frappe renvoie donc une erreur 400 au lieu d'être ignorée silencieusement.## Liens connexes- [Lister les modèles de dossier](https://docs.didit.me/fr/management-api/case-blueprints/list.md)
- [Installer les préréglages de modèles](https://docs.didit.me/fr/management-api/case-blueprints/install-presets.md)
- [Modèles de dossier (Console)](https://docs.didit.me/fr/console/case-management/blueprints.md)


## OpenAPI

````yaml fr/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de vérification d'identité. Authentifiez-vous avec l'en-tête x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/:
    post:
      tags:
        - Case Blueprints
      summary: Créer un blueprint
      description: >-
        Créez un blueprint de dossier : paramètres généraux (attribution,
        escalade, transfert, contrôle à quatre yeux) ainsi que content_config,
        les six sections qui structurent la page du dossier. Définissez
        publish=false pour créer un brouillon non publié ; la publication crée
        sa première version active. L'abandon d'un brouillon jamais publié le
        supprime.
      operationId: create_case_blueprint
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID de l'organisation.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID de l'application.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - name
                - assignee_pool
              properties:
                name:
                  type: string
                  maxLength: 24
                  description: 24 caractères au maximum, ex. « investigation AML ».
                description:
                  type: string
                  nullable: true
                assignee_pool:
                  type: array
                  items:
                    type: string
                    format: uuid
                  minItems: 1
                  description: >-
                    Liste des UUID d'utilisateurs. Les tableaux vides sont
                    rejetés avec « Pick at least one assignee ».
                assignment_method:
                  type: string
                  enum:
                    - MANUAL
                    - AUTOMATIC
                  default: MANUAL
                max_active_cases:
                  type: integer
                  nullable: true
                  minimum: 1
                  description: >-
                    Seuil du mode automatique : « moins de N dossiers de ce
                    modèle attribués ».
                escalation_enabled:
                  type: boolean
                  default: false
                escalation_blueprint:
                  type: string
                  format: uuid
                  nullable: true
                  description: >-
                    UUID du blueprint cible. Non imposé au moment de
                    l'enregistrement, mais l'action d'escalade échoue avec un
                    code 400 tant que escalation_enabled et escalation_blueprint
                    ne sont pas tous deux définis.
                transfer_enabled:
                  type: boolean
                  default: false
                four_eyes_checker_blueprint:
                  type: string
                  format: uuid
                  nullable: true
                  description: >-
                    Activer ce paramètre active la revue à quatre yeux : les
                    résolutions sur ce modèle sont placées dans la file
                    d'attente du modèle de contrôle.
                require_resolution_note:
                  type: boolean
                  default: false
                content_config:
                  $ref: '#/components/schemas/CaseContentConfig'
                is_active:
                  type: boolean
                  default: true
                default_deadline_hours:
                  type: integer
                  nullable: true
                  minimum: 1
                  maximum: 8760
                  description: >-
                    Délai par défaut pour les dossiers nouvellement ouverts. Les
                    délais des dossiers existants restent inchangés.
                publish:
                  type: boolean
                  writeOnly: true
                  default: true
                  description: >-
                    Définissez sur false pour enregistrer un brouillon jamais
                    publié. L'enregistrement reste inactif à la version 0
                    jusqu'à ce que le brouillon soit explicitement publié.
                    L'omission de ce champ préserve la création immédiate pour
                    les intégrations existantes.
            example:
              name: AML investigation
              assignee_pool:
                - 9a000000-0000-4000-8000-0000000000aa
              assignment_method: AUTOMATIC
              max_active_cases: 15
              require_resolution_note: true
              content_config:
                aml_control:
                  enabled: true
                  financial: true
                  identity: false
      responses:
        '201':
          description: Blueprint créé.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaseBlueprintDetail'
        '400':
          description: >-
            Nom de plus de 24 caractères, assignee_pool vide, ou blueprint
            référencé (escalation/checker) introuvable.
          content:
            application/json:
              schema:
                type: object
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X POST
            'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/cases/blueprints/'
            \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"name": "AML investigation", "assignee_pool": ["9a000000-0000-4000-8000-0000000000aa"], "assignment_method": "AUTOMATIC", "max_active_cases": 15, "require_resolution_note": true, "content_config": {"aml_control": {"enabled": true, "financial": true, "identity": false}}}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            # and DIDIT_APPLICATION_ID.
            client = Didit()

            result = client.cases.blueprints.create(
                name="AML investigation",
                assignee_pool=["9a000000-0000-4000-8000-0000000000aa"],
                assignment_method="AUTOMATIC",
                max_active_cases=15,
                require_resolution_note=True,
                content_config={
                    "aml_control": {
                        "enabled": True,
                        "financial": True,
                        "identity": False,
                    },
                },
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            // and DIDIT_APPLICATION_ID.
            const didit = new Didit();

            const result = await didit.cases.blueprints.create({
              name: "AML investigation",
              assignee_pool: ["9a000000-0000-4000-8000-0000000000aa"],
              assignment_method: "AUTOMATIC",
              max_active_cases: 15,
              require_resolution_note: true,
              content_config: {
                aml_control: {
                  enabled: true,
                  financial: true,
                  identity: false,
                },
              },
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID\n// and DIDIT_APPLICATION_ID.\nclient := didit.NewClient()\n\nresult, err := client.Cases.Blueprints.Create(ctx, didit.CasesBlueprintsCreateParams{\n\tName:                  \"AML investigation\",\n\tAssigneePool:          []string{\"9a000000-0000-4000-8000-0000000000aa\"},\n\tAssignmentMethod:      didit.Some(didit.CasesBlueprintsCreateParamsAssignmentMethod(\"AUTOMATIC\")),\n\tMaxActiveCases:        didit.Int(15),\n\tRequireResolutionNote: didit.Bool(true),\n\tContentConfig: didit.Some(didit.CaseContentConfigParam{\n\t\tAMLControl: didit.Some(didit.CaseContentConfigParamAMLControl{\n\t\t\tEnabled:   didit.Bool(true),\n\t\t\tFinancial: didit.Bool(true),\n\t\t\tIdentity:  didit.Bool(false),\n\t\t}),\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.CaseContentConfig;

            import me.didit.types.CasesBlueprintsCreateParams;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            Didit client = new Didit();


            var result =
            client.cases().blueprints().create(CasesBlueprintsCreateParams.builder()
                    .name("AML investigation")
                    .assigneePool(List.of("9a000000-0000-4000-8000-0000000000aa"))
                    .assignmentMethod(CasesBlueprintsCreateParams.AssignmentMethod.of("AUTOMATIC"))
                    .maxActiveCases(15L)
                    .requireResolutionNote(true)
                    .contentConfig(CaseContentConfig.builder()
                            .amlControl(CaseContentConfig.AmlControl.builder()
                                    .enabled(true)
                                    .financial(true)
                                    .identity(false)
                                    .build())
                            .build())
                    .build());
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            // and DIDIT_APPLICATION_ID.
            $didit = new DiditClient();

            $result = $didit->cases->blueprints->create([
                'name' => 'AML investigation',
                'assignee_pool' => ['9a000000-0000-4000-8000-0000000000aa'],
                'assignment_method' => 'AUTOMATIC',
                'max_active_cases' => 15,
                'require_resolution_note' => true,
                'content_config' => [
                    'aml_control' => [
                        'enabled' => true,
                        'financial' => true,
                        'identity' => false,
                    ],
                ],
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            # and DIDIT_APPLICATION_ID.
            didit = Didit::Client.new

            result = didit.cases.blueprints.create(
              name: "AML investigation",
              assignee_pool: ["9a000000-0000-4000-8000-0000000000aa"],
              assignment_method: "AUTOMATIC",
              max_active_cases: 15,
              require_resolution_note: true,
              content_config: {
                aml_control: {
                  enabled: true,
                  financial: true,
                  identity: false,
                },
              }
            )
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            using var client = new DiditClient();


            var result = await client.Cases.Blueprints.CreateAsync(new
            CasesBlueprintsCreateParams

            {
                Name = "AML investigation",
                AssigneePool = new string[] { "9a000000-0000-4000-8000-0000000000aa" },
                AssignmentMethod = new CasesBlueprintsCreateParamsAssignmentMethod("AUTOMATIC"),
                MaxActiveCases = 15,
                RequireResolutionNote = true,
                ContentConfig = new CaseContentConfig
                {
                    AmlControl = new CaseContentConfigAmlControl
                    {
                        Enabled = true,
                        Financial = true,
                        Identity = false,
                    },
                },
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    CaseContentConfig:
      type: object
      description: >-
        Les six sections activables qui déterminent les onglets et les champs
        affichés sur la page du dossier. Les sections ou clés inconnues sont
        rejetées.
      properties:
        checklist:
          type: object
          properties:
            enabled:
              type: boolean
            optional:
              type: boolean
              description: >-
                Si true, un dossier peut être résolu avec des éléments de liste
                de contrôle incomplets.
            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
    CaseBlueprintDetail:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        name:
          type: string
          maxLength: 24
        description:
          type: string
          nullable: true
        assignment_method:
          type: string
          enum:
            - MANUAL
            - AUTOMATIC
        assignee_pool:
          type: array
          items:
            type: string
            format: uuid
        max_active_cases:
          type: integer
          nullable: true
        escalation_enabled:
          type: boolean
        transfer_enabled:
          type: boolean
        require_resolution_note:
          type: boolean
        is_active:
          type: boolean
        preset_key:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
        escalation_blueprint:
          type: string
          format: uuid
          nullable: true
        escalation_blueprint_name:
          type: string
          nullable: true
        four_eyes_checker_blueprint:
          type: string
          format: uuid
          nullable: true
        four_eyes_checker_blueprint_name:
          type: string
          nullable: true
        content_config:
          type: object
          description: >-
            Les six sections activables qui déterminent les onglets et les
            champs affichés sur la page du dossier. Les sections ou clés
            inconnues sont rejetées.
          properties:
            checklist:
              type: object
              properties:
                enabled:
                  type: boolean
                optional:
                  type: boolean
                  description: >-
                    Si true, un dossier peut être résolu avec des éléments de
                    liste de contrôle incomplets.
                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
        creation_sources:
          type: array
          description: >-
            Connecteurs acheminant actuellement de nouveaux dossiers vers ce
            modèle.
          items:
            type: object
            properties:
              kind:
                type: string
                enum:
                  - aml
                  - rule
                  - workflow
              id:
                type: string
              name:
                type: string
        receives_escalation_from:
          type: array
          description: Autres modèles dont la cible d'escalade pointe vers celui-ci.
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
        updated_at:
          type: string
          format: date-time
        version:
          type: integer
          readOnly: true
        default_deadline_hours:
          type: integer
          nullable: true
          minimum: 1
          maximum: 8760
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clé API de votre application, issue de Développeurs -> Clés API dans
        la Business Console. La clé principale dispose d'un accès complet. Une
        clé nommée peut être restreinte : aucun, lecture ou écriture par
        ressource, limitée à certains workflows ou aux sessions approuvées, à
        une liste d'adresses IP et à une date d'expiration. 401 signifie que la
        clé est incorrecte, révoquée ou expirée ; 403 signifie qu'aucune clé n'a
        été envoyée, que la clé n'a pas accès à cette ressource ou action, ou
        que la requête provient d'une adresse hors de sa liste d'IP ; 404 sur
        une route de session signifie que la session est hors des workflows ou
        des statuts de la clé. Une clé sans accès aux médias reçoit les URL
        d'images, de vidéos et de PDF à null, et une clé sans accès en écriture
        aux sessions reçoit les liens et tokens de session à null. Voir
        https://docs.didit.me/console/api-keys.

````

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