> ## 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 para resolver casos: falso positivo o amenaza válida

> Resuelve casos en Didit como falso positivo o amenaza válida, con control por checklist, nota obligatoria y aprobación de 4 ojos.



Prompt de la API para resolver casos
        Copiar el prompt al portapapeles



      
      

\<pre>

\`Resolve a case through the Management API.

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

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

Request body:
\{"resolution": "FALSE_POSITIVE", "note": "Confirmed legitimate activity after reviewing documents."}
\- resolution is required: FALSE_POSITIVE (no concern found) | VALID_THREAT (concern confirmed) | INCONCLUSIVE | REQUIREMENTS_NOT_MET | REQUIREMENTS_SATISFIED.
\- note is required only when the case's blueprint has require_resolution_note enabled.
\- checker is optional and only for a blueprint with a four-eyes checker step: the user uuid of the member who must approve the resolution (the same id as assigned_to.uuid on a case, or members[].user_id on a review team). Omit it or send null to leave the resolution to the checker queue.

Behavior:
\- Blocked with 400 if the blueprint's checklist is not optional and any item is incomplete - response lists the incomplete item labels.
\- Blocked with 400 if the blueprint requires a note and none was given.
\- If the blueprint has a four_eyes_checker_blueprint configured, the resolution is staged (case.pending_resolution) and the case moves to that checker blueprint's queue instead of closing - status stays OPEN. A different user must then call approve or reject-approval.
\- Submit a four-eyes resolution as a console member. A resolution an API key submits has no recorded maker (pending_resolution.maker_email is null), so approve and reject-approval return 403 {"detail": "Case has no recorded maker for this pending resolution; approve is not permitted."} for every caller.
\- Otherwise the case closes immediately: status becomes RESOLVED, resolved_at and resolved_by_email are set.
\- On a four-eyes blueprint with checker, only that member can approve or reject the staged resolution, and the response's checker {member_uuid, name, email} names them. Any other caller, including an API key, gets 403 on approve and reject-approval. Without checker, the response's checker is null and the checker blueprint's queue decides.

Example call:
curl -X POST "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/resolve/" \
-H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"resolution": "FALSE_POSITIVE", "note": "Confirmed legitimate activity."}'

Response 200: CaseDetail. Check pending_resolution to tell staged-for-approval apart from a completed resolution.

Failure modes:
\- 400 - incomplete checklist, or missing required note (a list of strings).
\- 400 - when checker is sent, in the order they fire:
\- ["Reviewer access could not be verified. Try again."] or ["Choose an active reviewer with case access to this application."] - the member could not be checked, or is not an active reviewer with case access.
\- {"checker": ["The officer who submitted the resolution cannot be its checker."]} - you named the officer who is resolving.
\- {"checker": ["This review policy has no checker step, so the case resolves directly."]} - the case's blueprint has no four-eyes checker step.
\- 401/403 - auth/permission errors. A key with restricted access gets 403 {"detail": "This API key has no access to this endpoint."} (cases need a full-access key). A console member token needs write:cases.
\- 404 - case not found.

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

\</pre>



      
      

Pegar en

Resuelve un caso. Si su blueprint está emparejado con un blueprint verificador para la [revisión de cuatro ojos](https://docs.didit.me/es/console/case-management/four-eyes.md), esta llamada deja la resolución pendiente en lugar de cerrar el caso: consulta el campo `pending_resolution` de la respuesta para distinguir los dos resultados.## Indica el verificadorEn un blueprint con un paso verificador de cuatro ojos, envía `checker` con el uuid de usuario del miembro que debe aprobar la resolución.
Solo ese miembro puede entonces aprobarla o rechazarla; cualquier otra persona, incluida una clave de API, recibe `403`.
El campo `checker` del caso lo identifica hasta que la resolución se aprueba, se rechaza o se devuelve para una nueva revisión porque la evidencia cambió.
Sin `checker`, la resolución espera en la cola del blueprint verificador.
El miembro debe tener acceso a los casos de esta aplicación y no puede ser el responsable que envía la resolución.
En un blueprint sin paso verificador, `checker` devuelve `400`.## Las resoluciones de cuatro ojos requieren un miembro de la consolaEnvía una resolución que pasa a revisión de cuatro ojos como miembro de la consola, no con una clave de API.
Una resolución enviada con una clave de API no tiene un autor registrado, por lo que la aprobación y el rechazo de la aprobación devuelven `403` para cualquier solicitante, incluido el verificador indicado.## AccesoLos endpoints de casos requieren una [clave de API](https://docs.didit.me/es/console/api-keys.md) con acceso completo.
Una clave con acceso restringido recibe una respuesta `403`.## Relacionado- [Revisión de cuatro ojos (consola)](https://docs.didit.me/es/console/case-management/four-eyes.md)
- [Obtener un caso](https://docs.didit.me/es/management-api/cases/get.md)
- [Checklist (consola)](https://docs.didit.me/es/console/case-management/checklist.md)
- [Actualizar el estado en bloque](https://docs.didit.me/es/management-api/cases/bulk-status.md)


## OpenAPI

````yaml es/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/resolve/
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/{case_uuid}/resolve/:
    post:
      tags:
        - Cases
      summary: Resolver caso
      description: >-
        Resuelve el caso con una de cinco resoluciones: FALSE_POSITIVE (no se
        encontró ningún motivo de preocupación), VALID_THREAT (preocupación
        confirmada), INCONCLUSIVE, REQUIREMENTS_NOT_MET o
        REQUIREMENTS_SATISFIED. Se bloquea con 400 si la lista de verificación
        del blueprint no es opcional y quedan elementos incompletos, o si el
        blueprint exige una nota de resolución y no se proporciona ninguna.
        Cuando el blueprint del caso tiene un paso de verificador de cuatro ojos
        (four_eyes_checker_blueprint), la resolución queda en espera
        (case.pending_resolution) y el caso pasa al blueprint del verificador en
        lugar de resolverse de inmediato; otro responsable distinto debe llamar
        a approve o reject-approval. Envía una resolución de cuatro ojos como
        miembro de la consola: una resolución enviada con una clave de API no
        tiene autor registrado, por lo que approve y reject-approval devuelven
        403 para cualquier llamante. En un blueprint de cuatro ojos puedes
        indicar con `checker` el miembro que debe aprobar: en ese caso, solo ese
        miembro puede aprobar o rechazar la resolución, y el campo `checker` de
        la respuesta lo identifica. Sin `checker`, la resolución espera en la
        cola del blueprint del verificador. Enviar `checker` para un blueprint
        sin paso de verificador devuelve 400.
      operationId: resolve_case
      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.
        - name: case_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
            example: c1a5e000-0000-4000-8000-000000000001
          description: UUID del caso.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - resolution
              properties:
                resolution:
                  type: string
                  enum:
                    - FALSE_POSITIVE
                    - VALID_THREAT
                    - INCONCLUSIVE
                    - REQUIREMENTS_NOT_MET
                    - REQUIREMENTS_SATISFIED
                note:
                  type: string
                  nullable: true
                  description: >-
                    Obligatorio cuando el blueprint establece
                    require_resolution_note.
                checker:
                  type: string
                  format: uuid
                  nullable: true
                  description: >-
                    Solo para esquemas con principio de cuatro ojos. El uuid de
                    usuario del miembro que debe aprobar esta resolución (el
                    mismo id que `assigned_to.uuid` en un caso, o
                    `members[].user_id` en un equipo de revisión). El miembro
                    debe tener acceso a los casos de esta aplicación y no puede
                    ser el responsable que envía la resolución. Omítelo o envía
                    null para dejar la resolución a la cola de verificadores.
            examples:
              Resolve:
                value:
                  resolution: FALSE_POSITIVE
                  note: Confirmed legitimate activity after reviewing documents.
              Four-eyes blueprint with a named checker:
                value:
                  resolution: VALID_THREAT
                  note: Document tampering confirmed.
                  checker: 3fa85f64-5717-4562-b3fc-2c963f66afa6
      responses:
        '200':
          description: Resuelto, o en espera de aprobación de cuatro ojos.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaseDetail'
        '400':
          description: >-
            Se rechazó la resolución. Los errores que no corresponden a un campo
            llegan como una lista de cadenas: una checklist incompleta, falta
            una nota obligatoria, o un `checker` que no se pudo comprobar o que
            no es un revisor activo con acceso a casos de esta aplicación. Los
            errores de `checker` llegan con el campo como clave: el miembro
            indicado es el responsable que envía la resolución, o el blueprint
            del caso no tiene un paso de checker.
          content:
            application/json:
              schema:
                oneOf:
                  - type: array
                    items:
                      type: string
                  - type: object
                    additionalProperties:
                      type: array
                      items:
                        type: string
              examples:
                Incomplete checklist:
                  value:
                    - >-
                      Case has incomplete checklist items: Verify source of
                      funds
                Resolution note required:
                  value:
                    - A resolution note is required to resolve this case.
                Reviewer access could not be verified:
                  value:
                    - Reviewer access could not be verified. Try again.
                Checker is not an active reviewer:
                  value:
                    - >-
                      Choose an active reviewer with case access to this
                      application.
                Checker is the submitting officer:
                  value:
                    checker:
                      - >-
                        The officer who submitted the resolution cannot be its
                        checker.
                Policy has no checker step:
                  value:
                    checker:
                      - >-
                        This review policy has no checker step, so the case
                        resolves directly.
      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/c1a5e000-0000-4000-8000-000000000001/resolve/'
            \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"resolution": "FALSE_POSITIVE", "note": "Confirmed legitimate activity after reviewing documents."}'
        - 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.resolve(
                "c1a5e000-0000-4000-8000-000000000001",
                resolution="FALSE_POSITIVE",
                note="Confirmed legitimate activity after reviewing documents.",
            )
            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.resolve("c1a5e000-0000-4000-8000-000000000001", {
              resolution: "FALSE_POSITIVE",
              note: "Confirmed legitimate activity after reviewing documents.",
            });

            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.Resolve(ctx, \"c1a5e000-0000-4000-8000-000000000001\", didit.CasesResolveParams{\n\tResolution: \"FALSE_POSITIVE\",\n\tNote:       didit.String(\"Confirmed legitimate activity after reviewing documents.\"),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;

            import me.didit.types.CasesResolveParams;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            Didit client = new Didit();


            var result =
            client.cases().resolve("c1a5e000-0000-4000-8000-000000000001",
            CasesResolveParams.builder()
                    .resolution(CasesResolveParams.Resolution.of("FALSE_POSITIVE"))
                    .note("Confirmed legitimate activity after reviewing documents.")
                    .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->resolve('c1a5e000-0000-4000-8000-000000000001', [
                'resolution' => 'FALSE_POSITIVE',
                'note' => 'Confirmed legitimate activity after reviewing documents.',
            ]);

            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.resolve(
              "c1a5e000-0000-4000-8000-000000000001",
              resolution: "FALSE_POSITIVE",
              note: "Confirmed legitimate activity after reviewing documents."
            )
            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.ResolveAsync("c1a5e000-0000-4000-8000-000000000001",
            new CasesResolveParams

            {
                Resolution = "FALSE_POSITIVE",
                Note = "Confirmed legitimate activity after reviewing documents.",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    CaseDetail:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        case_number:
          type: string
          nullable: true
        title:
          type: string
        status:
          type: string
          enum:
            - OPEN
            - AWAITING_USER
            - RESOLVED
        resolution:
          type: string
          enum:
            - FALSE_POSITIVE
            - VALID_THREAT
            - INCONCLUSIVE
            - REQUIREMENTS_NOT_MET
            - REQUIREMENTS_SATISFIED
          nullable: true
        resolution_notes:
          type: string
          nullable: true
        priority:
          type: string
          enum:
            - LOW
            - MEDIUM
            - HIGH
        source:
          type: string
          enum:
            - MANUAL
            - AML_SCREENING
            - TRANSACTION_RULE
            - WORKFLOW_BUILDER
        tags:
          type: array
          items:
            type: string
        subject:
          $ref: '#/components/schemas/CaseSubject'
        assigned_to:
          $ref: '#/components/schemas/CaseAssignee'
        assigned_at:
          type: string
          format: date-time
          nullable: true
        team:
          $ref: '#/components/schemas/CaseTeamSummary'
        due_at:
          type: string
          format: date-time
          nullable: true
        resolved_at:
          type: string
          format: date-time
          nullable: true
        resolved_by_email:
          type: string
          nullable: true
        pending_resolution:
          type: object
          nullable: true
          description: >-
            Se establece solo mientras una resolución de doble validación
            (4-eyes) está preparada en el blueprint del verificador, a la espera
            de su aprobación o del rechazo de la aprobación.
          properties:
            resolution:
              type: string
              enum:
                - FALSE_POSITIVE
                - VALID_THREAT
                - INCONCLUSIVE
                - REQUIREMENTS_NOT_MET
                - REQUIREMENTS_SATISFIED
            resolution_notes:
              type: string
              nullable: true
            maker_email:
              type: string
              format: email
              nullable: true
              description: >-
                Correo electrónico del responsable que envió la resolución. Null
                cuando la envió una clave de API: esa resolución no tiene un
                autor registrado, por lo que aprobar y rechazar la aprobación
                devuelven 403 para cualquier solicitante.
            maker_name:
              type: string
              nullable: true
            maker_user_id:
              type: string
              format: uuid
              nullable: true
              description: >-
                UUID de usuario del miembro responsable que envió la resolución.
                Es null cuando la envió una clave de API. Ese miembro no puede
                figurar como `checker`.
            maker_blueprint_id:
              type: string
              format: uuid
            staged_at:
              type: string
              format: date-time
        checker:
          $ref: '#/components/schemas/CaseChecker'
        metadata:
          type: object
        blueprint:
          $ref: '#/components/schemas/CaseBlueprintDetail'
        notes:
          type: array
          items:
            $ref: '#/components/schemas/CaseNote'
          description: Las 50 notas más recientes.
        events:
          type: array
          items:
            $ref: '#/components/schemas/CaseEvent'
          description: Los 100 eventos más recientes.
        links:
          type: array
          items:
            $ref: '#/components/schemas/CaseLink'
        links_count:
          type: integer
        notes_count:
          type: integer
        checklist_items:
          type: array
          items:
            $ref: '#/components/schemas/CaseChecklistItem'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    CaseSubject:
      type: object
      nullable: true
      description: El único usuario o empresa al que está vinculado el caso.
      properties:
        type:
          type: string
          enum:
            - user
            - business
        uuid:
          type: string
          format: uuid
        name:
          type: string
        external_id:
          type: string
          nullable: true
          description: El vendor_data del sujeto.
        country:
          type: string
          nullable: true
          description: >-
            Código de país de tres letras del sujeto (ISO 3166-1 alfa-3), o null
            cuando no se conoce. Para una empresa, su país de constitución. Para
            una persona, el país emisor de un documento de identidad de sus
            verificaciones; una persona con documentos de varios países muestra
            uno de ellos, y pueden aparecer códigos de documento OACI como
            `XXA`.
          example: ESP
        portrait:
          type: string
          format: uri
          nullable: true
          description: >-
            URL firmada de corta duración de la imagen del retrato de la
            persona. Siempre es null para una empresa, y null para una persona
            sin retrato. La URL caduca, así que descarga la imagen cuando leas
            el caso en lugar de guardar la URL.
    CaseAssignee:
      type: object
      nullable: true
      properties:
        uuid:
          type: string
          format: uuid
        full_name:
          type: string
        email:
          type: string
          format: email
    CaseTeamSummary:
      type: object
      nullable: true
      description: >-
        El equipo de revisión responsable del caso, o null si ningún equipo es
        responsable. El enrutamiento lo establece cuando una regla de
        enrutamiento asigna el caso a uno de sus equipos. Cámbialo o bórralo con
        `PATCH .../cases/{case_uuid}/` (`team`).
      properties:
        uuid:
          type: string
          format: uuid
        name:
          type: string
    CaseChecker:
      type: object
      nullable: true
      description: >-
        El miembro designado para aprobar o rechazar la resolución pendiente.
        Solo tiene valor mientras una resolución con principio de cuatro ojos
        espera a un verificador designado. Null cuando no hay nada pendiente,
        mientras la resolución pendiente espera en la cola de verificadores, y
        una vez que la resolución se aprueba, se rechaza o se devuelve para una
        nueva revisión porque las pruebas cambiaron.
      properties:
        member_uuid:
          type: string
          format: uuid
          description: >-
            El uuid de usuario del miembro: el valor que pasas como `checker`
            cuando resuelves el caso.
        name:
          type: string
          nullable: true
          description: El nombre completo del miembro, o null si no se conoce.
        email:
          type: string
          format: email
    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: >-
            Las seis secciones activables que determinan qué pestañas y campos
            aparecen en la página del caso. Se rechazan las secciones o claves
            desconocidas.
          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
        creation_sources:
          type: array
          description: Conectores que actualmente dirigen casos nuevos a este blueprint.
          items:
            type: object
            properties:
              kind:
                type: string
                enum:
                  - aml
                  - rule
                  - workflow
              id:
                type: string
              name:
                type: string
        receives_escalation_from:
          type: array
          description: Otros blueprints cuyo destino de escalado apunta a este.
          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
    CaseNote:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        comment:
          type: string
        actor_email:
          type: string
          format: email
          nullable: true
        actor_name:
          type: string
          nullable: true
        mentioned_emails:
          type: array
          items:
            type: string
            format: email
        is_internal:
          type: boolean
        attachments:
          type: array
          items:
            type: object
            properties:
              s3_key:
                type: string
              filename:
                type: string
              file_size:
                type: integer
              url:
                type: string
                format: uri
        tags:
          type: array
          items:
            type: string
        created_at:
          type: string
          format: date-time
    CaseEvent:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        event_type:
          type: string
          enum:
            - CREATED
            - STATUS_CHANGED
            - ASSIGNED
            - UNASSIGNED
            - RESOLVED
            - REOPENED
            - LINK_ADDED
            - LINK_REMOVED
            - NOTE_ADDED
            - NOTE_PINNED
            - NOTE_UNPINNED
            - PRIORITY_CHANGED
            - DUE_DATE_CHANGED
            - TAG_ADDED
            - TAG_REMOVED
            - ESCALATED
            - TRANSFERRED
            - CHECKLIST_COMPLETED
            - REPORT_CREATED
            - REPORT_FINALIZED
            - SUBMITTED_FOR_APPROVAL
            - APPROVAL_GRANTED
            - APPROVAL_REJECTED
            - ENTITY_ACTION
            - APPROVAL_INVALIDATED
            - CUSTOMER_REQUEST
            - STAGE_CHANGED
            - TEAM_CHANGED
            - CHECKER_ASSIGNED
            - CHECKER_UNASSIGNED
        actor_email:
          type: string
          format: email
          nullable: true
        actor_name:
          type: string
          nullable: true
        previous_status:
          type: string
          enum:
            - OPEN
            - AWAITING_USER
            - RESOLVED
          nullable: true
        new_status:
          type: string
          enum:
            - OPEN
            - AWAITING_USER
            - RESOLVED
          nullable: true
        metadata:
          type: object
        created_at:
          type: string
          format: date-time
    CaseLink:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        linked_entity_type:
          type: string
          enum:
            - session
            - business_session
            - transaction
          nullable: true
        linked_entity_uuid:
          type: string
          format: uuid
          nullable: true
        linked_entity_summary:
          type: object
          nullable: true
          description: >-
            session_id/session_number/status para enlaces de session y
            business_session; uuid/txn_id/status para enlaces de transacción.
        created_at:
          type: string
          format: date-time
    CaseChecklistItem:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        label:
          type: string
          maxLength: 255
        is_completed:
          type: boolean
        completed_by:
          type: string
          format: email
          nullable: true
        completed_at:
          type: string
          format: date-time
          nullable: true
        order:
          type: integer
  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.