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

# Perbarui Aturan Pemantauan Transaksi API

> Perbarui aturan KYT via API Didit: ubah ambang batas, kondisi, tindakan, atau mode TEST/ACTIVE/DISABLED. Preset pustaka hanya menerima mode.



Prompt API Pembaruan Aturan
        Salin prompt ke papan klip



      
      

\<pre>

\`Update a transaction-monitoring rule.

Endpoint:
PATCH https://verification.didit.me/v3/transactions/rules/{rule_uuid}/

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

Request body (application/json, partial - send only what changes):
\{ "mode": "ACTIVE" }
or any of: title, description, category, mode, evaluation_mode, scope, conditions, aggregation, actions, metadata.

Behavior:
\- CUSTOM rules accept every field, with the same validation as create.
\- Library (PRESET) rules accept ONLY "mode" - use it to activate, disable, or switch a preset to TEST. Any other field returns 400 naming the offending keys.
\- Changes take effect immediately for new transactions.
\- The typical activation call after a successful backtest is exactly {"mode": "ACTIVE"}.

Failure modes:
\- 400 - validation error, or a non-mode field on a library rule.
\- 404 - unknown rule uuid for this application.`

\</pre>



      
      

Tempel ke



## OpenAPI

````yaml id/openapi-25.json PATCH /v3/transactions/rules/{rule_uuid}/
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/transactions/rules/{rule_uuid}/:
    parameters:
      - name: rule_uuid
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: UUID aturan dari operasi list atau create.
    patch:
      tags:
        - Transactions
      summary: Perbarui aturan
      description: >-
        Perbarui aturan secara parsial. Aturan kustom menerima semua kolom
        konfigurasi. Aturan pustaka (PRESET) hanya menerima `mode` - gunakan
        untuk mengaktifkan, menonaktifkan, atau mengalihkan preset ke TEST;
        kolom lain akan mengembalikan 400, karena Didit memelihara aturan
        pustaka dan menerapkan pembaruannya secara otomatis. Untuk mengubah
        ketentuan aturan pustaka, buat salinan kustom dengan `POST
        /v3/transactions/rules/` menggunakan definisi aturan pustaka serta
        `metadata.based_on` (kunci pustaka) dan `metadata.based_on_rule_uuid`,
        lalu nonaktifkan aturan pustaka dengan `mode: DISABLED` agar transaksi
        tidak memicu alert dua kali. Salinan terpasang dari aturan pustaka yang
        ditahan akan dinonaktifkan: menyetel `mode`-nya ke nilai selain
        `DISABLED` akan menghasilkan 400 ("Aturan pustaka ini belum dapat
        dijalankan: kondisinya membaca data yang tidak dapat dievaluasi oleh
        mesin aturan.").
      operationId: updateTransactionRule
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionRuleUpdateRequest'
            example:
              mode: ACTIVE
      responses:
        '200':
          description: Aturan yang diperbarui.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRuleDetail'
        '400':
          description: >-
            Kesalahan validasi, kolom non-mode pada aturan pustaka, atau mode
            selain DISABLED pada aturan pustaka yang ditahan.
          content:
            application/json:
              schema:
                type: object
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X PATCH
            'https://verification.didit.me/v3/transactions/rules/RULE_UUID/' \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"mode": "ACTIVE"}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.transactions.rules.update(
                "11111111-2222-3333-4444-555555555555",
                mode="ACTIVE",
            )
            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.transactions.rules.update("11111111-2222-3333-4444-555555555555",
            {
              mode: "ACTIVE",
            });

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Transactions.Rules.Update(ctx, \"11111111-2222-3333-4444-555555555555\", didit.TransactionRuleUpdateRequest{\n\tMode: didit.Some(didit.TransactionRuleUpdateRequestMode(\"ACTIVE\")),\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.TransactionRuleUpdateRequest;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.transactions().rules().update("11111111-2222-3333-4444-555555555555",
            TransactionRuleUpdateRequest.builder()
                    .mode(TransactionRuleUpdateRequest.Mode.of("ACTIVE"))
                    .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->transactions->rules->update('11111111-2222-3333-4444-555555555555',
            [
                'mode' => 'ACTIVE',
            ]);

            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.transactions.rules.update(
              "11111111-2222-3333-4444-555555555555",
              mode: "ACTIVE"
            )
            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.Transactions.Rules.UpdateAsync("11111111-2222-3333-4444-555555555555",
            new TransactionRuleUpdateRequest

            {
                Mode = new TransactionRuleUpdateRequestMode("ACTIVE"),
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    TransactionRuleUpdateRequest:
      type: object
      properties:
        title:
          type: string
          description: >-
            Nama aturan. Unik per aplikasi di antara aturan yang tidak dihapus;
            duplikat menghasilkan 400.
        description:
          type: string
          nullable: true
        category:
          type: string
          description: >-
            Tema risiko yang digunakan untuk pengelompokan dan pelaporan, mis.
            finance, aml_ctf, anomaly_detection, fatf, device_intelligence,
            crypto_monitoring, travel_rule, responsible_gaming, e_commerce.
        mode:
          type: string
          enum:
            - ACTIVE
            - DISABLED
            - TEST
          description: >-
            ACTIVE mengevaluasi secara langsung. TEST mengevaluasi dan mencatat
            eksekusi aturan tetapi tidak pernah memengaruhi skor atau status -
            mode awal yang disarankan. DISABLED dilewati.
        evaluation_mode:
          type: string
          enum:
            - ALL
            - ANY
          default: ALL
          description: >-
            Menentukan apakah setiap kondisi harus cocok (ALL) atau setidaknya
            satu (ANY). Diabaikan jika kondisi menggunakan group_index.
        scope:
          $ref: '#/components/schemas/TransactionRuleScope'
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/TransactionRuleCondition'
        aggregation:
          type: array
          items:
            $ref: '#/components/schemas/TransactionRuleAggregation'
        actions:
          type: array
          items:
            $ref: '#/components/schemas/TransactionRuleAction'
        metadata:
          type: object
          description: Metadata bentuk bebas yang disimpan pada aturan.
      description: >-
        Pembaruan parsial. Aturan kustom menerima semua kolom; aturan pustaka
        (PRESET) hanya menerima mode - hal lain akan mengembalikan 400.
    TransactionRuleDetail:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        title:
          type: string
          description: >-
            Nama aturan. Unik per aplikasi di antara aturan yang tidak dihapus;
            duplikat menghasilkan 400.
        description:
          type: string
          nullable: true
        category:
          type: string
          description: >-
            Tema risiko yang digunakan untuk pengelompokan dan pelaporan, mis.
            finance, aml_ctf, anomaly_detection, fatf, device_intelligence,
            crypto_monitoring, travel_rule, responsible_gaming, e_commerce.
        mode:
          type: string
          enum:
            - ACTIVE
            - DISABLED
            - TEST
          description: >-
            ACTIVE mengevaluasi secara langsung. TEST mengevaluasi dan mencatat
            eksekusi aturan tetapi tidak pernah memengaruhi skor atau status -
            mode awal yang disarankan. DISABLED dilewati.
        evaluation_mode:
          type: string
          enum:
            - ALL
            - ANY
          default: ALL
          description: >-
            Menentukan apakah setiap kondisi harus cocok (ALL) atau setidaknya
            satu (ANY). Diabaikan jika kondisi menggunakan group_index.
        scope:
          $ref: '#/components/schemas/TransactionRuleScope'
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/TransactionRuleCondition'
        aggregation:
          type: array
          items:
            $ref: '#/components/schemas/TransactionRuleAggregation'
        actions:
          type: array
          items:
            $ref: '#/components/schemas/TransactionRuleAction'
        metadata:
          type: object
          description: Metadata bentuk bebas yang disimpan pada aturan.
        severity:
          type: string
          enum:
            - UNKNOWN
            - LOW
            - MEDIUM
            - HIGH
            - CRITICAL
          nullable: true
          description: >-
            Tingkat keparahan informasional yang dibawa oleh aturan pustaka;
            tidak dapat diatur pada aturan kustom.
        source:
          type: string
          enum:
            - PRESET
            - CUSTOM
          description: >-
            Aturan PRESET berasal dari pustaka (instalasi/pencopotan, pengeditan
            khusus mode); aturan CUSTOM sepenuhnya milik Anda.
        library_key:
          type: string
          nullable: true
          description: Pengidentifikasi pustaka yang stabil; null untuk aturan kustom.
        latest_triggered_at:
          type: string
          format: date-time
          nullable: true
        run_count:
          type: integer
          description: Berapa banyak transaksi yang cocok dengan aturan ini.
        approved_count:
          type: integer
        reviewed_count:
          type: integer
        declined_count:
          type: integer
        awaiting_user_count:
          type: integer
        approved_pct:
          type: number
        reviewed_pct:
          type: number
        declined_pct:
          type: number
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    TransactionRuleScope:
      type: object
      properties:
        transaction_types:
          type: array
          items:
            type: string
          description: >-
            Batasi ke jenis transaksi, mis. finance, kyc, travel_rule,
            user_event. Kosong atau tidak ada = tanpa pembatasan.
        directions:
          type: array
          items:
            type: string
            enum:
              - INBOUND
              - OUTBOUND
          description: >-
            Batasi ke arah transaksi (tidak peka huruf besar/kecil saat
            penulisan).
        action_types:
          type: array
          items:
            type: string
          description: Batasi ke nilai action_type Anda, mis. withdrawal, deposit.
      description: >-
        Transaksi mana yang dikenai aturan ini. Hanya ketiga kunci ini yang
        diterima.
    TransactionRuleCondition:
      type: object
      required:
        - field
        - operator
      properties:
        field:
          type: string
          description: >-
            Jalur kolom transaksi yang akan dievaluasi. Kolom inti: amount,
            currency, direction, action_type, score, severity, transaction_type,
            payment_details, preferred_currency_amount (beralih ke
            amount_in_default_currency jika tidak tersedia),
            default_currency_code, subject_country, counterparty_country,
            subject_vendor_data, counterparty_vendor_data,
            subject_device_fingerprint, counterparty_device_fingerprint,
            subject_browser_family, subject_browser_version, subject_platform,
            subject_accept_language, subject_session_age_ms, subject_ip_country,
            counterparty_ip_country, subject_ip_address,
            counterparty_ip_address, subject_payment_method_type,
            subject_payment_method_country, subject_payment_method_fingerprint,
            subject_payment_method_account_id (dan padanan
            counterparty_payment_method_*), travel_rule_status,
            travel_rule_required, travel_rule_obligations_count,
            counterparty_dd_status (keputusan Anda tentang pihak lawan Travel
            Rule: APPROVED, RESTRICTED, atau BLOCKED, suatu entitas yang
            mengikuti keputusan mereknya), counterparty_risk_level (LOW, MEDIUM,
            atau HIGH; HIGH saat skrining pihak lawan Anda sendiri ditandai),
            counterparty_jurisdiction (negara VASP pihak lawan),
            counterparty_responsiveness (RESPONSIVE, UNRESPONSIVE, atau
            UNKNOWN), subject_days_since_previous_transaction, tags, dan
            custom_values.<key> untuk kunci apa pun yang dikirimkan dalam
            custom_properties saat pembuatan transaksi. Kolom kode negara
            menerima ISO-2 atau ISO-3; kedua sisi dinormalisasi ke ISO-3 sebelum
            dibandingkan.
        operator:
          type: string
          enum:
            - eq
            - ne
            - gt
            - gte
            - lt
            - lte
            - in
            - not_in
            - contains
            - not_contains
            - contains_any
            - regex
            - fuzzy_match
            - exists
            - is_not_empty
            - is_not_null
            - not_exists
            - is_empty
            - is_null
          description: >-
            Operator perbandingan. in/not_in menguji keanggotaan (nilai dapat
            berupa daftar atau skalar tunggal). contains/not_contains adalah
            pemeriksaan substring tanpa membedakan huruf besar/kecil terhadap
            nilai string. contains_any menerima daftar string dan cocok jika
            salah satunya merupakan substring tanpa membedakan huruf besar/kecil
            dari nilai kolom. regex mencocokkan pola nilai terhadap kolom.
            fuzzy_match membandingkan terhadap string nilai dengan ambang batas
            `score` yang diperlukan (0-100). gt/gte/lt/lte tidak pernah cocok
            jika salah satu sisi tidak ada. exists/is_not_empty/is_not_null
            (alias) dan not_exists/is_empty/is_null (alias) adalah pemeriksaan
            keberadaan yang mengabaikan `value`.
        value:
          description: >-
            Nilai perbandingan. Bentuknya bergantung pada operator dan
            value_type; jangan sertakan untuk operator pemeriksaan keberadaan.
            Setiap operator lainnya memerlukan nilai yang bukan `null` atau
            daftar kosong, jika tidak, aturan akan ditolak dengan `400`.
            `contains_any` memerlukan daftar string, dan `contains`,
            `not_contains`, serta `regex` memerlukan string tunggal.
        value_type:
          type: string
          enum:
            - list
            - field
            - relative_date
          description: >-
            Interpretasi nilai opsional. `list`: nilai adalah UUID Daftar dan
            entri daftar menjadi nilai perbandingan. `field`: nilai adalah jalur
            kolom lain, dibandingkan antarkolom. `relative_date`: nilai adalah
            objek tanggal relatif, mis. {"direction": "past", "unit": "days",
            "amount": 30}.
        score:
          type: number
          minimum: 0
          maximum: 100
          description: >-
            Wajib jika operator adalah fuzzy_match: ambang batas kemiripan
            0-100.
        group_index:
          type: integer
          description: >-
            Logika terkelompok opsional. Ketika kondisi apa pun membawa
            group_index, kondisi yang berbagi indeks membentuk sebuah grup dan
            evaluasi terkelompok menggantikan evaluation_mode.
        group_logic:
          type: string
          enum:
            - AND
            - OR
          default: AND
          description: Cara kondisi digabungkan DI DALAM grup.
        groups_logic:
          type: string
          enum:
            - AND
            - OR
          default: OR
          description: >-
            Cara hasil grup digabungkan DI SELURUH grup. Dibaca dari kondisi
            pertama.
      description: >-
        Kondisi hanya membaca transaksi yang sedang dievaluasi - kondisi ini
        tidak pernah memfilter jendela agregasi.
    TransactionRuleAggregation:
      type: object
      required:
        - value
      properties:
        metric:
          type: string
          enum:
            - count
            - sum
            - max
            - min
            - avg
            - distinct_count
          default: count
          description: >-
            Bagaimana transaksi historis yang cocok diagregasikan. unique_count
            diterima sebagai alias dari distinct_count.
        field:
          type: string
          default: amount
          description: >-
            Kolom yang diagregasikan berdasarkan sum/max/min/avg/distinct_count.
            Diabaikan untuk count.
        operator:
          type: string
          enum:
            - eq
            - ne
            - gt
            - gte
            - lt
            - lte
          default: eq
          description: Perbandingan yang diterapkan pada metrik yang dihitung.
        value:
          type: number
          description: Ambang batas yang dibandingkan dengan metrik terhitung.
        window:
          type: string
          pattern: ^\d+(m|h|d)$
          default: 1d
          description: >-
            Periode penelusuran mundur yang berakhir pada txn_date transaksi:
            <N>m (MENIT, bukan bulan), <N>h (jam), atau <N>d (hari), misalnya
            30m, 24h, 7d, 30d.
        filters:
          type: object
          additionalProperties: true
          description: >-
            Mempersempit transaksi historis mana yang diagregasi. Kunci berupa
            jalur kolom dari katalog kolom kondisi; nilai "__current__"
            diselesaikan ke nilai kolom yang sama pada transaksi yang sedang
            dievaluasi (misalnya {"subject_vendor_data": "__current__"}
            membatasi rentang waktu pada subjek yang sama), dan nilai daftar
            berarti keanggotaan. Catatan tanpa nilai yang dikelompokkan tidak
            akan pernah dikelompokkan bersama: ketika transaksi yang dievaluasi
            tidak memiliki nilai untuk kolom "__current__" (tidak ada pihak
            lawan, tidak ada sidik jari perangkat), agregasi tidak cocok, apa
            pun operatornya. Filter HANYA membandingkan berdasarkan kesetaraan
            atau keanggotaan - tidak ada filter lt/gte, sehingga rentang seperti
            "transaksi historis di bawah 10.000" tidak dapat dinyatakan di sini.
            Tempatkan rentang pada metrik sebagai gantinya (metrik max dengan
            operator lt mempertahankan setiap transaksi di dalam rentang waktu
            di bawah ambang batas).
      description: >-
        Pemeriksaan kecepatan (velocity check) terhadap riwayat transaksi
        aplikasi di dalam jendela waktu. Setiap entri agregasi harus cocok agar
        aturan cocok, terlepas dari evaluation_mode. Agregasi hanya membatasi
        jendela waktu; transaksi yang sedang dievaluasi dibatasi oleh cakupan
        dan kondisi, jadi ulangi direction, currency, atau transaction_type di
        kedua bagian saat aturan memerlukannya.
    TransactionRuleAction:
      oneOf:
        - $ref: '#/components/schemas/TransactionRuleActionAddScore'
        - $ref: '#/components/schemas/TransactionRuleActionChangeStatus'
        - $ref: '#/components/schemas/TransactionRuleActionAddTags'
        - $ref: '#/components/schemas/TransactionRuleActionAddNote'
        - $ref: '#/components/schemas/TransactionRuleActionAddToList'
        - $ref: '#/components/schemas/TransactionRuleActionOpenCase'
      discriminator:
        propertyName: type
        mapping:
          add_score: '#/components/schemas/TransactionRuleActionAddScore'
          change_status: '#/components/schemas/TransactionRuleActionChangeStatus'
          add_tags: '#/components/schemas/TransactionRuleActionAddTags'
          add_note: '#/components/schemas/TransactionRuleActionAddNote'
          add_to_list: '#/components/schemas/TransactionRuleActionAddToList'
          open_case: '#/components/schemas/TransactionRuleActionOpenCase'
      description: >-
        Satu tindakan aturan. Suatu aturan dapat memuat beberapa tindakan;
        semuanya diterapkan bersamaan saat cocok. Aturan dalam mode TEST
        mencatat apa yang seharusnya dilakukan tanpa menerapkan tindakan apa
        pun.
    TransactionRuleActionAddScore:
      type: object
      required:
        - type
        - value
      properties:
        type:
          type: string
          enum:
            - add_score
        value:
          type: integer
          description: >-
            Poin yang ditambahkan ke skor risiko transaksi. Dapat bernilai
            negatif.
      description: >-
        Tambahkan poin ke skor risiko kumulatif transaksi; totalnya menentukan
        status melalui ambang batas peninjauan/penolakan aplikasi.
    TransactionRuleActionChangeStatus:
      type: object
      required:
        - type
        - value
      properties:
        type:
          type: string
          enum:
            - change_status
        value:
          type: string
          enum:
            - APPROVED
            - IN_REVIEW
            - DECLINED
            - AWAITING_USER
          description: >-
            Status yang akan langsung ditetapkan, terlepas dari skor. Kunci
            alias: status.
        workflow_id:
          type: string
          format: uuid
          description: >-
            DIBUTUHKAN saat nilai adalah AWAITING_USER: alur kerja verifikasi
            yang diminta untuk diselesaikan oleh subjek. Kunci alias:
            remediation_workflow_id. Didit membuat sesi remediasi yang
            di-hosting untuk subjek saat aturan terpicu.
      description: >-
        Tetapkan status transaksi secara langsung. DECLINED selalu
        diprioritaskan di antara aturan yang cocok.
    TransactionRuleActionAddTags:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - add_tags
        tag_uuid:
          type: string
          format: uuid
          description: Tag aplikasi yang ada untuk dilampirkan.
        tag_name:
          type: string
          description: >-
            Nama tag yang akan dilampirkan; dibuat saat pertama kali digunakan
            (disimpan dalam huruf besar). Berikan tag_uuid atau tag_name.
        tag_color:
          type: string
          description: >-
            Warna hex yang digunakan saat tag_name membuat tag baru, misalnya
            #007AFE.
      description: Lampirkan tag aplikasi ke transaksi yang cocok.
    TransactionRuleActionAddNote:
      type: object
      required:
        - type
        - note
      properties:
        type:
          type: string
          enum:
            - add_note
        note:
          type: string
          description: >-
            Teks catatan yang dilampirkan ke transaksi (penulis: Rule Engine).
            Kunci alias: nilai.
      description: Lampirkan catatan analis otomatis ke transaksi yang cocok.
    TransactionRuleActionAddToList:
      type: object
      required:
        - type
        - list_id
      properties:
        type:
          type: string
          enum:
            - add_to_list
        list_id:
          type: string
          format: uuid
          description: Daftar untuk menambahkan vendor_data subjek.
      description: >-
        Tambahkan vendor_data subjek ke daftar blokir, daftar izin, atau daftar
        kustom.
    TransactionRuleActionOpenCase:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - open_case
        blueprint:
          type: string
          format: uuid
          description: UUID blueprint kasus; default ke blueprint default aplikasi.
        grouping:
          type: string
          enum:
            - by_applicant
            - by_rule_and_applicant
          description: >-
            Menentukan apakah kecocokan berulang digabungkan ke dalam satu kasus
            per pemohon atau satu kasus per aturan+pemohon.
        attach_matched_transaction:
          type: boolean
          description: Lampirkan transaksi yang cocok ke kasus.
      description: >-
        Buka (atau tambahkan ke) kasus investigasi. Hanya tindakan open_case
        pertama pada aturan yang diterapkan.
  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.