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

# Create Case Blueprint

> Create a case blueprint: general settings (assignment, escalation, transfer, 4-eyes pairing) plus content_config, the six sections that drive the case page.

export const AgentPromptAccordion = ({prompt, title = "AI Agent Integration Prompt"}) => {
  const [copied, setCopied] = React.useState(false);
  const handleCopy = e => {
    e.stopPropagation();
    if (!prompt) return;
    navigator.clipboard.writeText(prompt.trim()).then(() => {
      setCopied(true);
      setTimeout(() => setCopied(false), 2000);
    });
  };
  const agents = ["Claude Code", "Codex", "Cursor", "Devin", "Windsurf", "GitHub Copilot"];
  return <div className="didit-agent-card">
      {}
      <div className="didit-agent-titlebar">
        <div className="didit-agent-dots" aria-hidden="true">
          <span className="didit-agent-dot didit-agent-dot-red"></span>
          <span className="didit-agent-dot didit-agent-dot-yellow"></span>
          <span className="didit-agent-dot didit-agent-dot-green"></span>
        </div>
        <span className="didit-agent-filename">{title}</span>
        <button type="button" className={`didit-agent-copy ${copied ? "didit-agent-copy-copied" : ""}`} onClick={handleCopy} title="Copy prompt to clipboard" aria-label={copied ? "Copied!" : "Copy prompt to clipboard"}>
          {copied ? <>
              <svg width="13" height="13" viewBox="0 0 16 16" fill="none">
                <path d="M3 8.5l3.5 3.5L13 4" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
              </svg>
              <span>Copied</span>
            </> : <>
              <svg width="13" height="13" viewBox="0 0 16 16" fill="none">
                <rect x="5" y="5" width="9" height="9" rx="1.5" stroke="currentColor" strokeWidth="1.5" />
                <path d="M11 5V3.5A1.5 1.5 0 0 0 9.5 2h-6A1.5 1.5 0 0 0 2 3.5v6A1.5 1.5 0 0 0 3.5 11H5" stroke="currentColor" strokeWidth="1.5" />
              </svg>
              <span>Copy</span>
            </>}
        </button>
      </div>

      {}
      <pre className="didit-agent-body"><code>{prompt.trim()}</code></pre>

      {}
      <div className="didit-agent-footer">
        <span className="didit-agent-footer-label">Paste into</span>
        <div className="didit-agent-chips">
          {agents.map(name => <span key={name} className="didit-agent-chip">{name}</span>)}
        </div>
      </div>
    </div>;
};

<AgentPromptAccordion
  title="Create Case Blueprint API Prompt"
  prompt={`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.`}
/>

Create a blueprint. `content_config` is validated strictly - only the six known sections and their documented keys are accepted, so a typo returns a 400 rather than silently being ignored.

## Related

* [List case blueprints](/management-api/case-blueprints/list)
* [Install blueprint presets](/management-api/case-blueprints/install-presets)
* [Blueprints (Console)](/console/case-management/blueprints)


## OpenAPI

````yaml POST /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: Identity verification API. Authenticate with x-api-key header.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/:
    post:
      tags:
        - Case Blueprints
      summary: Create blueprint
      description: >-
        Create a case blueprint: general settings (assignment, escalation,
        transfer, 4-eyes pairing) plus content_config, the six sections that
        drive the case page.
      operationId: create_case_blueprint
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Organization UUID.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Application UUID.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - name
                - assignee_pool
              properties:
                name:
                  type: string
                  maxLength: 24
                  description: Max 24 characters, e.g. "AML investigation".
                description:
                  type: string
                  nullable: true
                assignee_pool:
                  type: array
                  items:
                    type: string
                    format: uuid
                  minItems: 1
                  description: >-
                    List of User UUIDs. Empty arrays are rejected with "Pick at
                    least one assignee".
                assignment_method:
                  type: string
                  enum:
                    - MANUAL
                    - AUTOMATIC
                  default: MANUAL
                max_active_cases:
                  type: integer
                  nullable: true
                  minimum: 1
                  description: >-
                    Automatic-mode threshold: "fewer than N cases of this
                    blueprint assigned".
                escalation_enabled:
                  type: boolean
                  default: false
                escalation_blueprint:
                  type: string
                  format: uuid
                  nullable: true
                  description: >-
                    Target blueprint UUID. Not enforced at save time, but the
                    escalate action fails with 400 until both escalation_enabled
                    and escalation_blueprint are set.
                transfer_enabled:
                  type: boolean
                  default: false
                four_eyes_checker_blueprint:
                  type: string
                  format: uuid
                  nullable: true
                  description: >-
                    Setting this enables 4-eyes review: resolutions on this
                    blueprint stage on the checker blueprint's queue.
                require_resolution_note:
                  type: boolean
                  default: false
                content_config:
                  $ref: '#/components/schemas/CaseContentConfig'
                is_active:
                  type: boolean
                  default: true
      responses:
        '201':
          description: Blueprint created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaseBlueprintDetail'
        '400':
          description: >-
            Name over 24 chars, empty assignee_pool, or a cross-referenced
            blueprint (escalation/checker) not found.
          content:
            application/json:
              schema:
                type: object
      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}}}'
components:
  schemas:
    CaseContentConfig:
      type: object
      description: >-
        The six togglable sections that drive which tabs and fields appear on
        the case page. Unknown sections or keys are rejected.
      properties:
        checklist:
          type: object
          properties:
            enabled:
              type: boolean
            optional:
              type: boolean
              description: >-
                When true, a case can be resolved with incomplete checklist
                items.
            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: >-
            The six togglable sections that drive which tabs and fields appear
            on the case page. Unknown sections or keys are rejected.
          properties:
            checklist:
              type: object
              properties:
                enabled:
                  type: boolean
                optional:
                  type: boolean
                  description: >-
                    When true, a case can be resolved with incomplete checklist
                    items.
                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: Connectors currently routing new cases into this blueprint.
          items:
            type: object
            properties:
              kind:
                type: string
                enum:
                  - aml
                  - rule
                  - workflow
              id:
                type: string
              name:
                type: string
        receives_escalation_from:
          type: array
          description: Other blueprints whose Escalation target points at this one.
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
        updated_at:
          type: string
          format: date-time

````