> ## 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 Instalasi Aturan Pemantauan Transaksi Preset

> Instal aturan KYT preset ke aplikasi Anda via API di Didit, satu per satu dengan kunci library atau sekaligus dalam satu bundel.



Prompt API Aturan untuk Menginstal Pustaka
        Salin prompt ke papan klip



      
      

\<pre>

\`Install preset rules from the Didit library onto my application.

Endpoint:
POST https://verification.didit.me/v3/transactions/rules/install/

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

Request body (application/json) - provide at least one selector:
\{ "library_keys": ["structuring-inbound", "structuring-outbound"] }
\{ "bundle": "responsible_gaming" }
\{ "library_keys": ["structuring-inbound"], "bundle": "aml_ctf" }

Response:
\{ "installed_library_keys": ["structuring-inbound", "structuring-outbound"], "installed_count": 2 }

Behavior:
\- Installed presets evaluate immediately - in ACTIVE mode when transaction monitoring is enabled on the application, DISABLED otherwise. Tune them afterwards with PATCH (mode only).
\- You may send both selectors. When you do, only the requested library keys that belong to the bundle are installed.
\- Already-installed keys are skipped, so the call is safe to repeat.
\- Discover keys and bundles via GET /v3/transactions/rules/library/.

Failure modes:
\- 400 - neither library_keys nor bundle provided, or library_keys is not a list.`

\</pre>



      
      

Tempel ke



## OpenAPI

````yaml id/openapi-25.json POST /v3/transactions/rules/install/
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/install/:
    post:
      tags:
        - Transactions
      summary: Instal aturan pustaka
      description: >-
        Instal satu atau beberapa preset ke aplikasi, berdasarkan `library_keys`
        atau seluruh `bundle`. Preset yang terinstal langsung aktif saat
        pemantauan transaksi aktif, dan dinonaktifkan jika tidak; kunci yang
        sudah terinstal dilewati. Aturan pustaka yang kondisinya membaca data
        yang belum dapat dievaluasi oleh mesin aturan akan ditahan hingga dapat
        dijalankan. Permintaan yang menyebutkan salah satunya di `library_keys`
        menghasilkan respons 400 dan tidak menginstal apa pun ("These library
        rules cannot run yet: their conditions read data the rules engine cannot
        evaluate." diikuti oleh kunci-kuncinya), dan penginstalan `bundle`
        melewatinya. Aturan yang ditahan akan aktif kembali dengan sendirinya
        setelah kondisinya dapat dievaluasi. Entri `library_keys` yang tidak ada
        di pustaka dilewati, bukan ditolak.
      operationId: installTransactionRuleLibrary
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionRuleInstallRequest'
            example:
              library_keys:
                - structuring-inbound
                - structuring-outbound
      responses:
        '200':
          description: Apa yang diinstal.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRuleInstallResult'
              example:
                installed_library_keys:
                  - structuring-inbound
                  - structuring-outbound
                installed_count: 2
        '400':
          description: >-
            Baik library_keys maupun bundle tidak diberikan, `library_keys`
            bukan berupa list, atau entri `library_keys` ditahan. Entri yang
            tidak dikenal dilewati dan memberikan respons 200 tanpanya.
          content:
            application/json:
              schema:
                type: object
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X POST
            'https://verification.didit.me/v3/transactions/rules/install/' \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"library_keys": ["structuring-inbound", "structuring-outbound"]}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.transactions.rules.install_library(
                library_keys=["structuring-inbound", "structuring-outbound"],
            )
            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.installLibrary({
              library_keys: ["structuring-inbound", "structuring-outbound"],
            });
            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.InstallLibrary(ctx, didit.TransactionRuleInstallRequest{\n\tLibraryKeys: didit.Some([]string{\"structuring-inbound\", \"structuring-outbound\"}),\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.TransactionRuleInstallRequest;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.transactions().rules().installLibrary(TransactionRuleInstallRequest.builder()
                    .libraryKeys(List.of("structuring-inbound", "structuring-outbound"))
                    .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->installLibrary([
                'library_keys' => ['structuring-inbound', 'structuring-outbound'],
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            result = didit.transactions.rules.install_library(library_keys:
            ["structuring-inbound", "structuring-outbound"])

            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.InstallLibraryAsync(new
            TransactionRuleInstallRequest

            {
                LibraryKeys = new string[] { "structuring-inbound", "structuring-outbound" },
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    TransactionRuleInstallRequest:
      type: object
      properties:
        library_keys:
          type: array
          items:
            type: string
          description: Preset spesifik untuk diinstal atau dihapus instalasinya.
        bundle:
          type: string
          description: >-
            Sebagai gantinya, instal atau hapus instalasi setiap preset dalam
            bundel ini.
      description: Sediakan library_keys ATAU bundle.
    TransactionRuleInstallResult:
      type: object
      properties:
        installed_library_keys:
          type: array
          items:
            type: string
          description: 'Hanya POST (instalasi): preset yang diinstal oleh panggilan ini.'
        installed_count:
          type: integer
          description: Hanya POST (instalasi).
        uninstalled_count:
          type: integer
          description: 'DELETE (uninstal) saja: preset yang dihapus oleh panggilan 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.