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

# Hapus Pengguna Massal API: Penghapusan GDPR

> Hapus pengguna vendor Didit secara massal berdasarkan vendor_data, atau hapus semua pengguna dalam sebuah aplikasi. Sesuai GDPR dan hak CCPA untuk dilupakan.



Prompt Hapus Pengguna Massal
        Salin prompt ke papan klip



      
      

\<pre>

\`Goal: Permanently delete one or many Didit User entities. The matching user records, their tag links, their comment history, and every retained biometric template anchored to them are removed permanently. Verification sessions are NOT removed by this endpoint; delete those separately with POST /v3/sessions/delete/.

Endpoint: POST https://verification.didit.me/v3/users/delete/
Auth header: x-api-key: <DIDIT_API_KEY>
Content-Type: application/json

Request body — provide at least one selector:
\- vendor_data_list: string[] — your own identifiers (case-insensitive after normalisation).
\- didit_internal_id_list: string[] — Didit internal user IDs, the didit_internal_id returned by the create and get endpoints. Can be combined with vendor_data_list; the two are OR'd.
\- delete_all: true — wipe every user in this application. No confirmation, no undo. Takes precedence: when delete_all is true, the two lists are ignored.

\- retain_face_embeddings: boolean, default false — your explicit choice to keep one image-free biometric template of each deleted person for duplicate detection. Everything else about the person is deleted. Requires face_retention_days.
\- face_retention_days: integer 1 to 3650 — how many days that template is kept. Sent without retain_face_embeddings: true it returns 400 on face_retention_days.

This endpoint never narrows delete_all with filters. The Console's filter_* batch params (filter_search, filter_status, filter_country, filter_date_from, filter_date_to, filter_tag, filter_latest_verification_status, filter_risk, filter_has_sessions, filter_has_open_alerts, filter_aml_monitoring, filter_can_sign_in, filter_auth_status, filter_auth_method, filter_auth_mfa_enabled) are NOT supported here. Any of them sent with a value, even false, is rejected with a 400 keyed by that field, and any other unknown filter_* key with "Unknown filter.", so a narrowed intent does not wipe the whole application. Exception: filter_has_approved_sessions and filter_has_declined_sessions are neither rejected nor applied, so with delete_all they still delete every user. Do not send them.

curl:
curl -X POST 'https://verification.didit.me/v3/users/delete/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"vendor_data_list": ["user-123", "user-456"]}'

Response 200:
\{
"deleted": <int — number of users actually deleted; excludes vendor_data values that didn't match>
}

Biometric templates: unless you set retain_face_embeddings to true, if the application retained image-free biometric templates for these users after session deletion (see /management-api/biometric-templates/overview), Didit purges every one of them before the user is deleted, so the person stops matching in duplicate detection and Face Search. The purge is audited with instruction_source: vendor_user_delete.

Idempotency: re-sending the same list returns deleted: 0 after the first run (unmatched IDs are silently skipped). There is no undo.

Failure modes:
\- 400 — no selector supplied, or a Console-only filter_* param was sent.
No selector: {"vendor_data_list": ["This field is required unless delete_all is true."]}. An unknown filter_* key: {"filter_<name>": ["Unknown filter."]}.
\- 401 — missing/invalid x-api-key.
\- 403 — the API key is revoked or is not valid for this application.
\- 409 — the selection includes a person in a finalized regulatory report. Nothing is deleted. The body has code: in_filed_report and reports[] with uuid, report_number, report_type and case_uuid. Delete the reports, then repeat the request.
\- 409 — code: subject_deletion_in_progress: another request is still deleting one of the selected people. This request deleted nothing; repeat it once that deletion has finished.
\- 429 — rate-limited.
\- 503 — {"detail": "The biometric-template operation could not finish because an external store is unavailable. The operation is retryable."} A retained biometric template could not be purged. No user in the request is deleted; the affected template is already excluded from matching. Repeat the same request.

WARNING — delete_all: true: there is no confirmation step and no undo. Restrict to API keys you intentionally provision for batch maintenance.

When to prefer status change instead:
\- For day-to-day blocking, use PATCH /v3/users/{vendor_data}/update-status/ with {"status": "BLOCKED"} — it keeps the audit trail intact while rejecting future sessions for the same identifier.

For end-to-end Didit integration, paste in the full prompt at /integration/integration-prompt.`

\</pre>



      
      

Tempel ke

## RingkasanMenghapus satu atau beberapa [entitas pengguna](https://docs.didit.me/id/entities/users/overview.md). Catatan pengguna dihapus secara permanen. Sesi verifikasi mereka tidak tercakup oleh endpoint ini, dan tetap ada, tetapi tautannya ke pengguna dikosongkan. Hapus sesi tersebut dengan [Hapus Sesi](https://docs.didit.me/id/sessions-api/delete-session.md) atau [Hapus Sesi Massal](https://docs.didit.me/id/management-api/sessions/batch-delete.md). Transaksi juga tidak tercakup. Hapus transaksi dengan [Hapus Transaksi Massal](https://docs.didit.me/id/management-api/transactions/delete.md).## Kapan digunakan- Permintaan **hak untuk dilupakan** (GDPR / CCPA).
- **Pembersihan** pengguna uji selama QA.
- **Penonaktifan** pengguna yang dihapus dari platform Anda sendiri.## Catatan- Menerima daftar nilai `vendor_data`, daftar nilai `didit_internal_id`, atau `delete_all: true`. Kedua daftar dapat digabungkan dan dievaluasi dengan OR.
- Endpoint ini tidak pernah mempersempit `delete_all` dengan filter. Parameter batch `filter_*` dari Console ditolak dengan `400`, sehingga permintaan dengan kriteria yang dipersempit tidak menghapus semua pengguna di aplikasi.
  Pengecualiannya adalah `filter_has_approved_sessions` dan `filter_has_declined_sessions`. Keduanya tidak ditolak maupun diterapkan, jadi jangan kirimkan bersama `delete_all`.
- Semua-atau-tidak-sama-sekali: jika penghapusan tidak dapat diselesaikan untuk pengguna yang Anda pilih, tidak ada satu pun yang dihapus, dan Anda dapat mengulang permintaan yang sama dengan aman.
- Idempoten: mengirim ulang daftar yang sama mengembalikan `deleted: 0` setelah eksekusi pertama.
- Hanya mengembalikan jumlah yang dihapus, bukan laporan per item. Pengidentifikasi yang tidak cocok dengan apa pun dilewati secara diam-diam. Kirim daftar tanpa duplikat jika Anda ingin membandingkan `deleted` dengan jumlah pengidentifikasi yang Anda kirim, karena pengidentifikasi yang berulang hanya dihitung sekali.
- Tidak ada webhook yang dikirim untuk penghapusan. Webhook dikirim saat status dan data pengguna berubah, bukan saat penghapusan. Integrasi yang memerlukan sinyal penghapusan harus mencatatnya di sisi Anda sendiri.
- Sesi verifikasi yang terhubung dengan pengguna TIDAK dihapus oleh endpoint ini. Sesi tersebut tetap ada, dengan tautan ke pengguna dikosongkan, sehingga dokumen, wajah, dan medianya hanya dihapus setelah Anda menghapus sesi itu sendiri.
- `retain_face_embeddings` (boolean, default `false`) dan `face_retention_days` (1 sampai 3650) adalah pilihan eksplisit Anda untuk menyimpan satu templat biometrik tanpa gambar per orang yang dihapus, untuk deteksi duplikat, selama jumlah hari tersebut. Tidak ada informasi lain tentang orang tersebut yang disimpan. Hilangkan keduanya agar templat dihapus bersama pengguna. `face_retention_days` tanpa `retain_face_embeddings: true`, atau `retain_face_embeddings: true` tanpa `face_retention_days`, mengembalikan `400` pada `face_retention_days`.
- Kecuali Anda menetapkan `retain_face_embeddings` ke `true`, [templat biometrik](https://docs.didit.me/id/management-api/biometric-templates/overview.md) yang tersimpan dan terkait dengan pengguna DIHAPUS, sebelum pengguna dihapus. Jika templat tidak dapat dihapus karena penyimpanan biometrik tidak tersedia, panggilan mengembalikan `503`, tidak ada pengguna dalam permintaan yang dihapus, dan mengulang permintaan akan menyelesaikan prosesnya.## Data dalam laporan regulasi yang difinalisasiJika ada orang yang dipilih yang merupakan bagian dari kasus dengan laporan regulasi yang telah difinalisasi, seluruh permintaan mengembalikan `409` dan tidak ada yang dihapus. Respons menggunakan `code: in_filed_report` dan menyebutkan setiap laporan, sehingga Anda dapat membukanya di Console:```json theme={null}
{
  "detail": "A case about this person or company has a filed regulatory report, so it cannot be deleted.",
  "code": "in_filed_report",
  "reports": [
    {
      "uuid": "5ec00000-0000-4000-8000-000000000007",
      "report_number": "SAR-0001",
      "report_type": "SAR",
      "case_uuid": "c1a5e000-0000-4000-8000-000000000001"
    }
  ]
}
```Hapus setiap laporan dengan [Hapus Laporan](https://docs.didit.me/id/management-api/regulatory-reports/delete.md), lalu ulangi permintaan yang sama. Menghapus orang tersebut dari daftar tidak cukup jika orang lain yang dipilih masih ada dalam laporan.## Penghapusan yang sedang berjalanSetiap orang dihapus oleh satu permintaan dalam satu waktu. Jika permintaan lain masih menghapus salah satu orang yang dipilih, permintaan ini menunggu paling lama beberapa detik, lalu mengembalikan `409` dengan `code: subject_deletion_in_progress` dan tidak menghapus apa pun:```json theme={null}
{
  "detail": "This person or company is being deleted. Retry after deletion completes.",
  "code": "subject_deletion_in_progress"
}
```Ulangi permintaan yang sama setelah penghapusan lain selesai. Orang yang sudah dihapus oleh permintaan tersebut tidak lagi cocok, jadi pengulangan hanya menghapus sisanya.## IzinSetiap kunci API aktif dari aplikasi dapat memanggil endpoint ini. Kunci API Didit bersifat **terikat pada aplikasi, bukan pada peran**: [peran dan izin](https://docs.didit.me/id/console/roles-permissions.md) di Console (`delete:users` dan lainnya) menentukan apa yang dapat dilakukan seseorang di Console, dan tidak dievaluasi untuk lalu lintas Management API. Untuk mengontrol siapa yang dapat memanggil endpoint ini, atur siapa yang dapat membaca kunci API aplikasi.## Terkait- [Retensi data](https://docs.didit.me/id/console/data-retention.md)
- [Log audit](https://docs.didit.me/id/console/audit-logs.md)
- [Operasi pengguna](https://docs.didit.me/id/entities/users/operations.md)
- [Templat biometrik](https://docs.didit.me/id/management-api/biometric-templates/overview.md)


## OpenAPI

````yaml id/openapi-25.json POST /v3/users/delete/
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/users/delete/:
    post:
      tags:
        - Users
      summary: Hapus pengguna secara batch
      description: >-
        **Hapus pengguna secara permanen**: catatan pengguna akan dihapus secara
        permanen. Untuk pemblokiran sehari-hari, lebih disarankan menggunakan
        [Perbarui Status
        Pengguna](#patch-/v3/users/-vendor_data-/update-status/) dengan
        `BLOCKED`. Pilih pengguna dengan `vendor_data_list`, dengan
        `didit_internal_id_list`, atau keduanya sekaligus; atau kirimkan
        `delete_all: true`. Endpoint ini tidak pernah mempersempit cakupan
        `delete_all` dengan filter. Filter People di Console akan ditolak dengan
        `400` (lihat respons `400`), sehingga niat mempersempit tidak berubah
        menjadi penghapusan menyeluruh. Dua pengecualian:
        `filter_has_approved_sessions` dan `filter_has_declined_sessions` tidak
        ditolak dan tidak diterapkan, jadi dengan `delete_all: true` kedua
        filter tersebut tetap menghapus semua pengguna; jangan kirimkan filter
        tersebut.


        **Templat biometrik:** kecuali Anda menyetel `retain_face_embeddings` ke
        `true`, setiap templat biometrik tanpa gambar yang disimpan untuk
        pengguna ini setelah penghapusan sesi (lihat `/v3/biometric-templates/`)
        akan dibersihkan sebelum pengguna dihapus, sehingga orang tersebut tidak
        lagi cocok dalam deteksi duplikat dan Pencarian Wajah. Dengan
        `retain_face_embeddings: true` dan `face_retention_days`, Anda memilih
        untuk menyimpan satu templat biometrik tanpa gambar per orang selama
        jumlah hari tersebut, dan data lain tentang orang tersebut tidak
        disimpan. Jika templat tidak dapat dibersihkan karena penyimpanan
        biometrik tidak tersedia, panggilan akan mengembalikan `503`, tidak ada
        pengguna dalam permintaan yang dihapus, dan mengulangi permintaan akan
        menyelesaikan proses tersebut.


        **Laporan regulasi yang telah diajukan:** jika data yang dipilih berada
        dalam laporan regulasi yang sudah final, seluruh permintaan akan ditolak
        dengan `409` dan tidak ada yang dihapus. Isi respons menggunakan `code:
        in_filed_report` dan menyebutkan setiap laporan beserta `uuid`,
        `report_number`, `report_type`, dan `case_uuid`. Hapus laporan tersebut,
        lalu ulangi permintaan.
      operationId: batch_delete_users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: >-
                Sediakan `vendor_data_list`, `didit_internal_id_list`, atau
                `delete_all: true`. Kedua daftar dapat dikombinasikan dan
                digabungkan dengan operator OR. Jika `delete_all` bernilai
                `true`, ini diprioritaskan dan kedua daftar diabaikan.
              properties:
                vendor_data_list:
                  type: array
                  items:
                    type: string
                  description: >-
                    Pengenal Anda sendiri yang akan dihapus, dicocokkan persis
                    seperti yang dikirimkan.
                didit_internal_id_list:
                  type: array
                  items:
                    type: string
                    format: uuid
                  description: >-
                    ID pengguna internal Didit yang akan dihapus -
                    `didit_internal_id` yang dikembalikan oleh endpoint
                    pembuatan dan pengambilan.
                delete_all:
                  type: boolean
                  default: false
                  description: Jika `true`, menghapus setiap pengguna di aplikasi.
                retain_face_embeddings:
                  type: boolean
                  default: false
                  description: >-
                    Pilihan eksplisit Anda untuk menyimpan satu templat
                    biometrik bebas gambar dari setiap individu yang dihapus
                    untuk deteksi duplikat, selama `face_retention_days`. Segala
                    hal lain tentang individu tersebut akan dihapus. Tiadakan,
                    atau kirim `false`, untuk menghapus templat bersama dengan
                    pengguna. Jika `true`, `face_retention_days` wajib diisi.
                face_retention_days:
                  type: integer
                  minimum: 1
                  maximum: 3650
                  description: >-
                    Jumlah hari templat biometrik bebas gambar disimpan saat
                    `retain_face_embeddings` bernilai `true`. Wajib diisi
                    bersamanya, dan ditolak tanpanya dengan kode `400` pada
                    `face_retention_days`.
                  example: 365
            examples:
              Specific users:
                summary: Hapus pengguna berdasarkan vendor_data
                value:
                  vendor_data_list:
                    - user-123
                    - user-456
              By Didit internal ID:
                summary: Hapus pengguna berdasarkan didit_internal_id
                value:
                  didit_internal_id_list:
                    - 3f1c0d3e-8f0a-4c2e-9a3d-9b1f5f4a2c11
              All users:
                summary: Hapus semua pengguna dalam aplikasi ini
                value:
                  delete_all: true
              Keep face templates:
                summary: Hapus pengguna dan simpan templat wajah anonim selama 365 hari
                value:
                  vendor_data_list:
                    - user-123
                  retain_face_embeddings: true
                  face_retention_days: 365
      responses:
        '200':
          description: >-
            Pengguna dihapus. Mengembalikan jumlah pengguna yang benar-benar
            dihapus.
          content:
            application/json:
              schema:
                type: object
                properties:
                  deleted:
                    type: integer
                    description: >-
                      Jumlah pengguna yang dihapus (tidak termasuk nilai
                      vendor_data yang tidak cocok dengan apa pun).
              examples:
                Deleted some:
                  value:
                    deleted: 2
                Nothing matched:
                  value:
                    deleted: 0
        '400':
          description: >-
            Kesalahan validasi; tidak ada yang dihapus. Kesalahan dikelompokkan
            berdasarkan nama kolom. Tanpa selektor (kedua daftar tidak ada dan
            `delete_all` bukan `true`) isinya adalah `{"vendor_data_list":
            ["This field is required unless delete_all is true."]}`; daftar
            kosong ditolak di bawah kuncinya sendiri dengan `"This list may not
            be empty."`. Filter khusus Console (`filter_search`,
            `filter_status`, `filter_country`, `filter_date_from`,
            `filter_date_to`, `filter_tag`, `filter_latest_verification_status`,
            `filter_risk`, `filter_has_sessions`, `filter_has_open_alerts`,
            `filter_aml_monitoring`, `filter_can_sign_in`, `filter_auth_status`,
            `filter_auth_method`, atau `filter_auth_mfa_enabled`) ditolak setiap
            kali memiliki nilai, bahkan `false`, dengan objek yang dikelompokkan
            berdasarkan setiap kolom tersebut. Kunci `filter_*` lain yang tidak
            dikenal ditolak dengan `"Unknown filter."`.
          content:
            application/json:
              examples:
                Missing selector:
                  summary: Baik list maupun delete_all tidak diberikan
                  value:
                    vendor_data_list:
                      - This field is required unless delete_all is true.
                Console-only filter:
                  value:
                    filter_has_sessions: >-
                      This filter is Console-only and is not supported by this
                      endpoint.
        '401':
          description: >-
            Tidak ada kredensial yang diberikan. Permintaan ke jalur
            `/v3/users/*` tanpa header `x-api-key` (atau token `Authorization:
            Bearer`) akan ditolak oleh middleware autentikasi sebelum mencapai
            API.
          content:
            application/json:
              examples:
                Missing credentials:
                  value:
                    detail: >-
                      You must be authenticated with a valid access token to
                      access this endpoint.
        '403':
          description: >-
            Kunci API tidak valid atau dicabut, atau kunci tidak dapat menghapus
            pengguna untuk aplikasi ini. Kunci yang hilang mengembalikan `403`;
            kunci yang salah, dicabut, atau kedaluwarsa mengembalikan `401`.
          content:
            application/json:
              examples:
                Forbidden:
                  value:
                    detail: You do not have permission to perform this action.
        '409':
          description: >-
            Tidak ada yang dihapus. `code` menyatakan alasannya:
            `in_filed_report` ketika pilihan mencakup seseorang dalam laporan
            regulasi yang sudah final, `subject_deletion_in_progress` ketika
            permintaan lain masih menghapus salah satu orang yang dipilih.
            Ulangi permintaan setelah penghapusan tersebut selesai.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InFiledReportError'
                  - $ref: '#/components/schemas/SubjectDeletionInProgressError'
        '429':
          description: >-
            Batas laju terlampaui; kurangi laju permintaan dan coba lagi setelah
            interval yang ditunjukkan dalam `Retry-After`.
          content:
            application/json:
              examples:
                Rate limited:
                  value:
                    detail: Request was throttled. Expected available in 30 seconds.
        '503':
          description: >-
            Penyimpanan biometrik tidak tersedia saat mempertahankan atau
            menghapus total templat biometrik. Tidak ada yang dihapus; ulangi
            permintaan yang sama. Coba lagi bersifat idempoten dan mengarah pada
            satu templat tunggal.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Retryable:
                  value:
                    detail: >-
                      The biometric-template operation could not finish because
                      an external store is unavailable. The operation is
                      retryable.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X POST 'https://verification.didit.me/v3/users/delete/' \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"vendor_data_list": ["user-123", "user-456"]}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.users.batch_delete(
                vendor_data_list=["user-123", "user-456"],
            )
            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.users.batchDelete({
              vendor_data_list: ["user-123", "user-456"],
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Users.BatchDelete(ctx, didit.UsersBatchDeleteParams{\n\tVendorDataList: didit.Some([]string{\"user-123\", \"user-456\"}),\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.UsersBatchDeleteParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.users().batchDelete(UsersBatchDeleteParams.builder()
                    .vendorDataList(List.of("user-123", "user-456"))
                    .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->users->batchDelete([
                'vendor_data_list' => ['user-123', 'user-456'],
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            result = didit.users.batch_delete(vendor_data_list: ["user-123",
            "user-456"])

            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.Users.BatchDeleteAsync(new
            UsersBatchDeleteParams

            {
                VendorDataList = new string[] { "user-123", "user-456" },
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    InFiledReportError:
      type: object
      description: >-
        Penghapusan ditolak karena data yang dipilih berada dalam laporan
        regulasi yang telah diselesaikan. Tidak ada yang dihapus. Hapus laporan
        tersebut, lalu ulangi permintaan.
      required:
        - detail
        - code
      properties:
        detail:
          type: string
        code:
          type: string
          enum:
            - in_filed_report
          description: >-
            Kode kesalahan stabil untuk penghapusan yang diblokir oleh laporan
            regulasi yang telah difinalisasi.
        reports:
          type: array
          items:
            $ref: '#/components/schemas/FiledRegulatoryReport'
          description: >-
            Laporan yang memblokir penghapusan orang, perusahaan, kasus, atau
            sesi.
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/FiledReportTransaction'
          description: >-
            Transaksi yang memblokir penghapusan transaksi, masing-masing
            beserta laporan yang mencantumkannya.
    SubjectDeletionInProgressError:
      type: object
      description: >-
        Permintaan lain masih menghapus individu atau perusahaan ini. Permintaan
        ini tidak menghapus apa pun dan dapat diulang setelah penghapusan
        tersebut selesai; pengulangan kemudian akan menghapus apa pun yang masih
        dipilih.
      required:
        - detail
        - code
      properties:
        detail:
          type: string
        code:
          type: string
          enum:
            - subject_deletion_in_progress
          description: >-
            Kode kesalahan stabil untuk individu atau perusahaan yang masih
            dalam proses penghapusan oleh permintaan lain.
    FiledRegulatoryReport:
      type: object
      description: Laporan regulasi yang sudah final mencegah penghapusan yang diminta.
      required:
        - uuid
        - report_number
        - report_type
        - case_uuid
      properties:
        uuid:
          type: string
          format: uuid
          description: UUID laporan.
        report_number:
          type: string
          description: Nomor laporan yang ditampilkan di Console (misalnya, SAR-0001).
        report_type:
          type: string
          enum:
            - SAR
            - STR
            - CTR
            - TTR
            - UTR
            - IFT
            - CBR
            - TFR
          description: Jenis laporan regulasi.
        case_uuid:
          type: string
          format: uuid
          description: Kasus tempat laporan ini bernaung.
    FiledReportTransaction:
      type: object
      description: >-
        Transaksi yang tidak dapat dihapus karena tercantum dalam laporan
        regulasi yang telah difinalisasi.
      required:
        - uuid
        - transaction_id
        - reports
      properties:
        uuid:
          type: string
          format: uuid
          description: UUID transaksi Didit.
        transaction_id:
          type: string
          description: Pengidentifikasi transaksi yang diberikan saat transaksi dibuat.
        reports:
          type: array
          items:
            $ref: '#/components/schemas/FiledRegulatoryReport'
          description: Laporan yang telah difinalisasi dan mencantumkan transaksi ini.
  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.