> ## 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 Tambah ke Daftar Blokir: Blokir Item Sesi

> POST /v3/blocklist/add/: blokir wajah, dokumen, nomor telepon, atau email dari sesi verifikasi Didit agar sesi baru yang cocok ditolak.



Prompt API Tambah ke Daftar Blokir
        Salin prompt ke papan klip



      
      

\<pre>

\`Blocklist 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/add/

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

Goal:
\- After reviewing a fraudulent session, block what it collected so the same person is declined next time.

Request body (application/json):
\{
"session_id": "33333333-4444-5555-6666-777777777777", // required: a verification session of my application
"blocklist_face": true,       // optional, default false
"blocklist_document": true,   // optional, default false
"blocklist_phone": false,     // optional, default false
"blocklist_email": false      // optional, default false
}
At least one blocklist_* flag must be true.

Behavior:
\- Didit uses the session's most recent record of each selected type.
\- Each selected record is flagged as blocklisted and gets an entry, linked to the session, in the matching system blocklist (added_by "api").
\- From then on, new sessions with a matching face, document number, phone number or email address are declined.
\- The session itself and sessions that already finished are not changed.
\- Safe to repeat: an item already listed keeps its single entry, and its blocklisted_at is refreshed.
\- All or nothing: Didit checks every selected item first. If one is missing, nothing is blocklisted.
\- A document needs its issuing state, document type, document number and full name.

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

Example response (200):
\{ "message": "Successfully updated 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 blocklist"] }); the session has no record of a selected type ({ "non_field_errors": ["Session does not have a face record"] }); or the document lacks a required field.
\- 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:
\- Writes entries to the system face, document, phone and email blocklists and blocks matching new sessions.

To block a value without a session, or an IP address, device fingerprint, user or business, use POST /v3/lists/{list_uuid}/entries/ on the matching system blocklist instead.

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

\</pre>



      
      

Tempel ke

Blokir wajah, dokumen identitas, nomor telepon, atau alamat email yang dikumpulkan oleh satu sesi verifikasi. Didit menandai setiap data yang dipilih sebagai diblokir dan menambahkannya ke daftar blokir sistem yang sesuai, yang ditautkan ke sesi tersebut. Sesi baru dengan wajah, nomor dokumen, nomor telepon, atau alamat email yang cocok akan ditolak mulai saat itu.> [!NOTE]
>
> Panggilan ini bersifat semua atau tidak sama sekali: jika sesi tidak memiliki data untuk jenis yang dipilih, atau dokumen tidak memiliki negara penerbit, jenis dokumen, nomor dokumen, atau nama lengkap, panggilan akan mengembalikan `400` dan tidak ada data yang diblokir. Mengulangi panggilan untuk item yang sudah diblokir aman dilakukan.Untuk memeriksa apa saja yang diblokir, gunakan [Daftar item yang diblokir](https://docs.didit.me/id/management-api/blocklist/list.md). Untuk mencabut pemblokiran, gunakan [Hapus dari daftar blokir](https://docs.didit.me/id/management-api/blocklist/remove.md). Untuk memblokir alamat IP, sidik jari perangkat, pengguna, bisnis, atau nilai tanpa sesi, tambahkan entri ke daftar blokir sistem yang sesuai dengan [Buat entri](https://docs.didit.me/id/management-api/lists/create-entry.md). Lihat [Daftar blokir pengguna](https://docs.didit.me/id/entities/users/blocklist.md) untuk mengetahui cara daftar blokir diterapkan.


## OpenAPI

````yaml id/openapi-25.json POST /v3/blocklist/add/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API Verifikasi Identitas. Lakukan autentikasi dengan header x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/blocklist/add/:
    post:
      tags:
        - Blocklist
      summary: Tambahkan item sesi ke daftar blokir
      description: >-
        Memasukkan wajah, dokumen identitas, nomor telepon, atau alamat email
        dari satu sesi verifikasi individu pada aplikasi ke daftar blokir. Untuk
        setiap jenis yang dipilih, Didit mengambil rekaman terbaru sesi
        tersebut, menandainya sebagai masuk daftar blokir, dan menambahkan entri
        yang ditautkan ke sesi tersebut ke daftar blokir sistem yang cocok
        (`added_by: "api"`), sehingga sesi baru dengan wajah, nomor dokumen,
        nomor telepon, atau alamat email yang cocok akan ditolak. Setiap item
        yang dipilih diperiksa terlebih dahulu, jadi jika salah satu hilang,
        tidak ada yang dimasukkan ke daftar blokir; mengulang panggilan untuk
        item yang sudah terdaftar akan mempertahankan entri tunggalnya dan
        memperbarui `blocklisted_at`. Sesi itu sendiri dan sesi yang sudah
        selesai tidak diubah. Kunci API dengan pembatasan izin memerlukan
        `workflows: write`.
      operationId: add_to_blocklist
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - session_id
              description: Setidaknya satu flag `blocklist_*` harus bernilai `true`.
              properties:
                session_id:
                  type: string
                  format: uuid
                  description: >-
                    Sesi verifikasi perorangan dari aplikasi Anda. Sesi yang
                    telah dihapus akan ditolak.
                blocklist_face:
                  type: boolean
                  default: false
                  description: Masukkan wajah sesi ke daftar blokir.
                blocklist_document:
                  type: boolean
                  default: false
                  description: >-
                    Masukkan dokumen identitas sesi ke daftar blokir. Dokumen
                    memerlukan negara bagian penerbit, jenis dokumen, nomor
                    dokumen, dan nama lengkap.
                blocklist_phone:
                  type: boolean
                  default: false
                  description: Masukkan nomor telepon sesi ke daftar blokir.
                blocklist_email:
                  type: boolean
                  default: false
                  description: Masukkan alamat email sesi ke daftar blokir.
            examples:
              Face and document:
                value:
                  session_id: 33333333-4444-5555-6666-777777777777
                  blocklist_face: true
                  blocklist_document: true
              Phone only:
                value:
                  session_id: 33333333-4444-5555-6666-777777777777
                  blocklist_phone: true
      responses:
        '200':
          description: Item yang dipilih dimasukkan ke daftar blokir.
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                properties:
                  message:
                    type: string
                    description: Selalu `Successfully updated blocklist.`
              examples:
                Blocklisted:
                  value:
                    message: Successfully updated blocklist.
        '400':
          description: >-
            Isi permintaan tidak valid, sesi bukan sesi verifikasi dari aplikasi
            ini, atau tidak memiliki catatan dari tipe yang dipilih. Tidak ada
            yang dimasukkan ke daftar blokir.
          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 blocklist
                No face record:
                  value:
                    non_field_errors:
                      - Session does not have a face record
                Incomplete document:
                  value:
                    non_field_errors:
                      - >-
                        To blocklist a document, the document must have an
                        issuing state, document type, document number and full
                        name
                Invalid session id:
                  value:
                    session_id:
                      - Must be a valid UUID.
                Missing session id:
                  value:
                    session_id:
                      - This field is required.
        '401':
          description: >-
            Kunci API dengan cakupan terbatas telah kedaluwarsa. Kegagalan
            autentikasi lainnya mengembalikan `403`.
          content:
            application/json:
              examples:
                Expired API key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            Header `x-api-key` tidak ada (kunci yang salah, dicabut, atau
            kedaluwarsa menghasilkan `401`), atau kunci API dengan cakupan
            tertentu tidak memiliki `workflows: write` atau digunakan dari
            alamat IP di luar daftar izinnya.
          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/add/' \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{
                "session_id": "33333333-4444-5555-6666-777777777777",
                "blocklist_face": true,
                "blocklist_document": true
              }'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.blocklist.add(
                session_id="33333333-4444-5555-6666-777777777777",
                blocklist_face=True,
                blocklist_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.add({
              session_id: "33333333-4444-5555-6666-777777777777",
              blocklist_face: true,
              blocklist_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.Add(ctx, didit.BlocklistAddParams{\n\tSessionID:         \"33333333-4444-5555-6666-777777777777\",\n\tBlocklistFace:     didit.Bool(true),\n\tBlocklistDocument: 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.BlocklistAddParams;

            // Reads DIDIT_API_KEY.
            Didit client = new Didit();

            var result = client.blocklist().add(BlocklistAddParams.builder()
                    .sessionId("33333333-4444-5555-6666-777777777777")
                    .blocklistFace(true)
                    .blocklistDocument(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->add([
                'session_id' => '33333333-4444-5555-6666-777777777777',
                'blocklist_face' => true,
                'blocklist_document' => true,
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.blocklist.add(
              session_id: "33333333-4444-5555-6666-777777777777",
              blocklist_face: true,
              blocklist_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.AddAsync(new BlocklistAddParams
            {
                SessionId = "33333333-4444-5555-6666-777777777777",
                BlocklistFace = true,
                BlocklistDocument = true,
            });
            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  responses:
    RateLimitedWrite:
      description: >-
        Batas tulis bersama sebesar 300 permintaan per menit per kunci API telah
        terlampaui. Patuhi `Retry-After` sebelum mencoba lagi.
      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: >-
        Kunci API aplikasi Anda, dari Developers -> API keys di Business
        Console. Kunci utama memiliki akses penuh. Kunci bernama dapat diberi
        cakupan: none, read, atau write per sumber daya, dibatasi pada beberapa
        alur kerja atau pada sesi yang disetujui, pada daftar alamat IP, dan
        pada tanggal kedaluwarsa. 401 berarti kuncinya salah, dicabut, atau
        kedaluwarsa; 403 berarti tidak ada kunci yang dikirimkan, kunci tidak
        memiliki akses ke sumber daya atau tindakan ini, atau permintaan datang
        dari alamat di luar daftar IP-nya; 404 pada rute sesi berarti sesi
        berada di luar alur kerja atau status kunci tersebut. Kunci tanpa akses
        media menerima URL gambar, video, dan PDF sebagai null, dan kunci tanpa
        izin tulis sesi menerima tautan sesi dan token sebagai null. Lihat
        https://docs.didit.me/console/api-keys.

````

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