> ## 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 eliminar de la lista de bloqueo: desbloquear

> POST /v3/blocklist/remove/: levanta el bloqueo del rostro, documento, teléfono o correo de una sesión de verificación de Didit en una sola llamada.



Prompt de la API para quitar de la lista de bloqueo
        Copiar el prompt al portapapeles



      
      

\<pre>

\`Lift the block on the face, document, phone number or email address of one of my Didit verification sessions through the Management API.

Endpoint:
POST https://verification.didit.me/v3/blocklist/remove/

Authentication:
Use the x-api-key header with my Didit API key. A scoped API key needs workflows: write.

Goal:
\- Undo a blocklist decision for a session, for example after a false positive.

Request body (application/json):
\{
"session_id": "33333333-4444-5555-6666-777777777777", // required: a verification session of my application
"unblock_face": true,       // optional, default false
"unblock_document": true,   // optional, default false
"unblock_phone": false,     // optional, default false
"unblock_email": false      // optional, default false
}
At least one unblock_* flag must be true.

Behavior:
\- Didit uses the session's most recent record of each selected type.
\- The record is no longer flagged as blocklisted, and the system blocklist entries created from it are deleted, so it no longer declines new sessions.
\- Entries added by value are not touched: if the same phone number was also added to the phone blocklist by hand, it stays blocked until I delete that entry with DELETE /v3/lists/{list_uuid}/entries/{entry_uuid}/.
\- Unblocking a record that is not blocklisted succeeds and changes nothing.
\- Sessions that already finished are not changed.

Example call:
curl -X POST "https://verification.didit.me/v3/blocklist/remove/" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"session_id": "33333333-4444-5555-6666-777777777777", "unblock_face": true, "unblock_document": true}'

Example response (200):
\{ "message": "Successfully removed from blocklist." }

Failure modes:
\- 400: session_id is missing ({ "session_id": ["This field is required."] }) or not a UUID ({ "session_id": ["Must be a valid UUID."] }); the session is not a verification session of this application ({ "non_field_errors": ["Session not found"] }; business verification sessions are not accepted); no flag is true ({ "non_field_errors": ["Must specify at least one item to unblock"] }); or the session has no record of a selected type ({ "non_field_errors": ["Session does not have an email record"] }).
\- 401: the API key has expired.
\- 403: missing x-api-key (a wrong, revoked or expired key gets 401) ({ "detail": "You do not have permission to perform this action." }), or a scoped key without workflows: write.
\- 429: rate limited (see /integration/rate-limiting); back off and retry.

Side effects:
\- Deletes the matching entries from the system face, document, phone and email blocklists.

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

\</pre>



      
      

Pegar en

Levanta el bloqueo de lo que recopiló una sesión de verificación: su rostro, su documento de identidad, su número de teléfono o su dirección de correo electrónico. El registro deja de estar marcado como bloqueado y se eliminan las entradas de la lista de bloqueo del sistema creadas a partir de él, por lo que ya no rechaza nuevas sesiones.> [!NOTE]
>
> Solo se eliminan las entradas creadas a partir de los registros de la sesión. Un valor que alguien añadió a mano a una lista, como el mismo número de teléfono introducido en la lista de bloqueo de teléfonos, sigue bloqueado: búscalo con [Listar entradas](https://docs.didit.me/es/management-api/lists/list-entries.md) y elimínalo con [Eliminar entrada](https://docs.didit.me/es/management-api/lists/delete-entry.md).Para ver lo que está bloqueado actualmente, usa [Listar elementos de la lista de bloqueo](https://docs.didit.me/es/management-api/blocklist/list.md). Consulta [Usuarios de la lista de bloqueo](https://docs.didit.me/es/console/blocklist-users.md) para gestionar la lista de bloqueo en la consola.


## OpenAPI

````yaml es/openapi-25.json POST /v3/blocklist/remove/
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/blocklist/remove/:
    post:
      tags:
        - Blocklist
      summary: Eliminar elementos de la sesión de la lista de bloqueo
      description: >-
        Levanta el bloqueo del rostro, el documento de identidad, el número de
        teléfono o la dirección de correo electrónico de una sesión de
        verificación de persona de la aplicación. Para cada tipo seleccionado,
        Didit toma el registro más reciente de la sesión, quita su marca de
        lista de bloqueo y elimina las entradas de la lista de bloqueo del
        sistema creadas a partir de ese registro, de modo que deja de rechazar
        nuevas sesiones. Las entradas añadidas a una lista por valor no se
        modifican: búscalas con [Listar las entradas de una
        lista](https://docs.didit.me/es/management-api/lists/list-entries) y
        elimínalas con [Eliminar una entrada de una
        lista](https://docs.didit.me/es/management-api/lists/delete-entry).
        Desbloquear un registro que no está en la lista de bloqueo se completa
        correctamente y no cambia nada, y las sesiones que ya finalizaron no se
        modifican. Una clave de API con alcance limitado necesita `workflows:
        write`.
      operationId: remove_from_blocklist
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - session_id
              description: Al menos un indicador `unblock_*` debe ser `true`.
              properties:
                session_id:
                  type: string
                  format: uuid
                  description: >-
                    Una sesión de verificación de persona de tu aplicación. Se
                    rechazan las sesiones eliminadas.
                unblock_face:
                  type: boolean
                  default: false
                  description: Levanta el bloqueo del rostro de la sesión.
                unblock_document:
                  type: boolean
                  default: false
                  description: Levanta el bloqueo del documento de identidad de la sesión.
                unblock_phone:
                  type: boolean
                  default: false
                  description: Levanta el bloqueo del número de teléfono de la sesión.
                unblock_email:
                  type: boolean
                  default: false
                  description: >-
                    Levanta el bloqueo de la dirección de correo electrónico de
                    la sesión.
            examples:
              Face and document:
                value:
                  session_id: 33333333-4444-5555-6666-777777777777
                  unblock_face: true
                  unblock_document: true
      responses:
        '200':
          description: Se levantó el bloqueo de los elementos seleccionados.
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                properties:
                  message:
                    type: string
                    description: Siempre `Successfully removed from blocklist.`
              examples:
                Unblocked:
                  value:
                    message: Successfully removed from blocklist.
        '400':
          description: >-
            El cuerpo no es válido, la sesión no es una sesión de verificación
            de esta aplicación o no tiene ningún registro de un tipo
            seleccionado. No se cambió nada.
          content:
            application/json:
              examples:
                Unknown session:
                  value:
                    non_field_errors:
                      - Session not found
                No item selected:
                  value:
                    non_field_errors:
                      - Must specify at least one item to unblock
                No email record:
                  value:
                    non_field_errors:
                      - Session does not have an email record
                Invalid session id:
                  value:
                    session_id:
                      - Must be a valid UUID.
                Missing session id:
                  value:
                    session_id:
                      - This field is required.
        '401':
          description: >-
            La clave de API con alcance limitado ha expirado. Los demás fallos
            de autenticación devuelven `403`.
          content:
            application/json:
              examples:
                Expired API key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            Falta el encabezado `x-api-key` (una clave incorrecta, revocada o
            expirada recibe `401`), o una clave de API con alcance limitado no
            tiene `workflows: write` o se usa desde una dirección IP que no está
            en su lista de permitidas.
          content:
            application/json:
              examples:
                Missing or invalid API key:
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without workflows access:
                  value:
                    detail: This API key has no write access to workflows.
        '429':
          $ref: '#/components/responses/RateLimitedWrite'
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X POST 'https://verification.didit.me/v3/blocklist/remove/' \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{
                "session_id": "33333333-4444-5555-6666-777777777777",
                "unblock_face": true,
                "unblock_document": true
              }'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.blocklist.remove(
                session_id="33333333-4444-5555-6666-777777777777",
                unblock_face=True,
                unblock_document=True,
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            const result = await didit.blocklist.remove({
              session_id: "33333333-4444-5555-6666-777777777777",
              unblock_face: true,
              unblock_document: true,
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Blocklist.Remove(ctx, didit.BlocklistRemoveParams{\n\tSessionID:       \"33333333-4444-5555-6666-777777777777\",\n\tUnblockFace:     didit.Bool(true),\n\tUnblockDocument: didit.Bool(true),\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.BlocklistRemoveParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.blocklist().remove(BlocklistRemoveParams.builder()
                    .sessionId("33333333-4444-5555-6666-777777777777")
                    .unblockFace(true)
                    .unblockDocument(true)
                    .build());
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            $result = $didit->blocklist->remove([
                'session_id' => '33333333-4444-5555-6666-777777777777',
                'unblock_face' => true,
                'unblock_document' => true,
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.blocklist.remove(
              session_id: "33333333-4444-5555-6666-777777777777",
              unblock_face: true,
              unblock_document: true
            )
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await client.Blocklist.RemoveAsync(new
            BlocklistRemoveParams

            {
                SessionId = "33333333-4444-5555-6666-777777777777",
                UnblockFace = true,
                UnblockDocument = true,
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  responses:
    RateLimitedWrite:
      description: >-
        Se superó el límite de escritura compartido de 300 solicitudes por
        minuto por clave de API. Respeta `Retry-After` antes de reintentar.
      content:
        application/json:
          schema:
            type: object
            required:
              - detail
            properties:
              detail:
                type: string
          example:
            detail: >-
              Write request rate limit exceeded. You can make up to 300 requests
              per minute.
  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.