> ## 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 правил мониторинга транзакций: 150+ пресетов

> API Didit для библиотеки пресетов KYT: 150+ правил по структурированию, скорости, санкциям, устройствам и Travel Rule, со статусом установки.

Промпт для API получения списка правил из библиотеки
Скопировать промпт в буфер обмена

<pre>
  \`Browse Didit's preset transaction-monitoring rule library.

  Endpoint:
  GET [https://verification.didit.me/v3/transactions/rules/library/](https://verification.didit.me/v3/transactions/rules/library/)

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

  Query parameters (all optional): bundle, category, search, limit, offset.

  Behavior:

  * Returns every library preset with its full configuration (conditions, aggregation, actions) and an is\_installed flag for this application.
  * Check the library before building a custom rule: if an equivalent preset exists, install it via POST /v3/transactions/rules/install/ instead of recreating its logic.
  * Bundles group related presets, e.g. finance, aml\_ctf, anomaly\_detection, fatf, device\_intelligence, crypto\_monitoring, travel\_rule, responsible\_gaming, e\_commerce.\`
</pre>

Вставьте в


## OpenAPI

````yaml ru/openapi-25.json GET /v3/transactions/rules/library/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: >-
    API верификации личности. Аутентификация выполняется с помощью заголовка
    x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/transactions/rules/library/:
    get:
      tags:
        - Transactions
      summary: Получить библиотеку правил
      description: >-
        Просмотр полной библиотеки предустановленных правил (150+ правил) с
        полной конфигурацией каждой записи и флагом `is_installed` для данного
        приложения. Фильтрация по пакету, категории или текстовому поиску.
        Правило библиотеки, условия которого используют данные, которые движок
        правил пока не может оценить, скрывается до тех пор, пока движок не
        сможет его выполнить. Скрытые правила не отображаются в списке.
      operationId: listTransactionRuleLibrary
      parameters:
        - name: bundle
          in: query
          required: false
          schema:
            type: string
          description: >-
            Фильтр по пакету, например finance, aml_ctf, crypto_monitoring,
            travel_rule
        - name: category
          in: query
          required: false
          schema:
            type: string
          description: Фильтр по категории
        - name: search
          in: query
          required: false
          schema:
            type: string
          description: Поиск без учёта регистра по названию и описанию
        - name: limit
          in: query
          required: false
          schema:
            type: integer
          description: Размер страницы
        - name: offset
          in: query
          required: false
          schema:
            type: integer
          description: Смещение страницы
      responses:
        '200':
          description: Записи библиотеки с пагинацией.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                  next:
                    type: string
                    nullable: true
                  previous:
                    type: string
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/TransactionRuleLibraryEntry'
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/transactions/rules/library/?bundle=finance'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            for item in client.transactions.rules.list_library():
                print(item)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

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

            for await (const item of didit.transactions.rules.listLibrary()) {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\niter := client.Transactions.Rules.ListLibraryAutoPaging(ctx, didit.TransactionsRulesListLibraryParams{})\nfor iter.Next() {\n\tfmt.Printf(\"%+v\\n\", iter.Current())\n}\nif err := iter.Err(); err != nil {\n\tlog.Fatal(err)\n}"
        - lang: java
          label: Java
          source: |-
            import me.didit.Didit;

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

            for (var item : client.transactions().rules().listLibrary()) {
                System.out.println(item);
            }
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

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

            foreach ($didit->transactions->rules->listLibrary() as $item) {
                print_r($item->toArray());
            }
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            didit.transactions.rules.list_library.auto_paging_each do |item|
              puts item.to_h
            end
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            await foreach (var item in await
            client.Transactions.Rules.ListLibraryAsync())

            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    TransactionRuleLibraryEntry:
      type: object
      properties:
        library_key:
          type: string
        title:
          type: string
        description:
          type: string
          nullable: true
        category:
          type: string
        evaluation_mode:
          type: string
          enum:
            - ALL
            - ANY
        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
        bundle:
          type: string
          nullable: true
          description: >-
            Функциональное семейство, например finance, aml_ctf,
            crypto_monitoring, travel_rule, responsible_gaming.
        tags:
          type: array
          items:
            type: string
        industries:
          type: array
          items:
            type: string
        source:
          type: string
        is_installed:
          type: boolean
          description: Установлен ли этот пресет в приложении в данный момент.
    TransactionRuleScope:
      type: object
      properties:
        transaction_types:
          type: array
          items:
            type: string
          description: >-
            Ограничить типами транзакций, например finance, kyc, travel_rule,
            user_event. Пустое или отсутствующее значение = без ограничений.
        directions:
          type: array
          items:
            type: string
            enum:
              - INBOUND
              - OUTBOUND
          description: >-
            Ограничить направлениями транзакций (нечувствительно к регистру при
            записи).
        action_types:
          type: array
          items:
            type: string
          description: >-
            Ограничить вашими значениями action_type, например withdrawal,
            deposit.
      description: >-
        К каким транзакциям применяется правило. Принимаются только эти три
        ключа.
    TransactionRuleCondition:
      type: object
      required:
        - field
        - operator
      properties:
        field:
          type: string
          description: >-
            Путь к полю транзакции для вычисления. Основные поля: amount,
            currency, direction, action_type, score, severity, transaction_type,
            payment_details, preferred_currency_amount (по умолчанию
            amount_in_default_currency), 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 (и эквиваленты
            counterparty_payment_method_*), travel_rule_status,
            travel_rule_required, travel_rule_obligations_count,
            counterparty_dd_status (ваше решение по контрагенту Travel Rule:
            APPROVED, RESTRICTED или BLOCKED; сущность наследует статус своего
            бренда), counterparty_risk_level (LOW, MEDIUM или HIGH; HIGH, пока
            по вашему собственному скринингу контрагента выставлен флаг),
            counterparty_jurisdiction (страна VASP контрагента),
            counterparty_responsiveness (RESPONSIVE, UNRESPONSIVE или UNKNOWN),
            subject_days_since_previous_transaction, tags, а также
            custom_values.<key> для любого ключа, переданного в
            custom_properties при создании транзакции. Поля с кодами стран
            принимают ISO-2 или ISO-3; обе стороны нормализуются до ISO-3 перед
            сравнением.
        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: >-
            Оператор сравнения. in/not_in проверяют принадлежность (значение
            может быть списком или отдельным скалярным значением).
            contains/not_contains представляют собой нечувствительные к регистру
            проверки подстроки для строкового значения. contains_any принимает
            список строк и срабатывает, если любая из них является
            нечувствительной к регистру подстрокой значения поля. regex
            сопоставляет шаблон значения с полем. fuzzy_match сравнивает со
            строковым значением с требуемым порогом `score` (0-100).
            gt/gte/lt/lte никогда не срабатывают, если одна из сторон
            отсутствует. exists/is_not_empty/is_not_null (псевдонимы) и
            not_exists/is_empty/is_null (псевдонимы) являются проверками
            наличия, которые игнорируют `value`.
        value:
          description: >-
            Значение для сравнения. Его формат зависит от оператора и
            value_type; опустите его для операторов проверки наличия. Для всех
            остальных операторов требуется значение, отличное от `null` или
            пустого списка, иначе правило будет отклонено с ошибкой `400`. Для
            `contains_any` требуется список строк, а для `contains`,
            `not_contains` и `regex` требуется одна строка.
        value_type:
          type: string
          enum:
            - list
            - field
            - relative_date
          description: >-
            Необязательная интерпретация значения. `list`: значение является
            UUID списка, и элементы списка становятся значением для сравнения.
            `field`: значение является путём к другому полю, сравниваемое с
            другим полем. `relative_date`: значение является объектом
            относительной даты, например {"direction": "past", "unit": "days",
            "amount": 30}.
        score:
          type: number
          minimum: 0
          maximum: 100
          description: >-
            Обязательно, когда operator имеет значение fuzzy_match: порог
            сходства от 0 до 100.
        group_index:
          type: integer
          description: >-
            Необязательная групповая логика. Если какое-либо условие содержит
            group_index, условия с одинаковым индексом образуют группу, а
            групповая оценка заменяет evaluation_mode.
        group_logic:
          type: string
          enum:
            - AND
            - OR
          default: AND
          description: Как объединяются условия ВНУТРИ группы.
        groups_logic:
          type: string
          enum:
            - AND
            - OR
          default: OR
          description: >-
            Как объединяются результаты групп МЕЖДУ группами. Считывается из
            первого условия.
      description: >-
        Условие считывает только оцениваемую транзакцию: оно никогда не
        фильтрует окно агрегации.
    TransactionRuleAggregation:
      type: object
      required:
        - value
      properties:
        metric:
          type: string
          enum:
            - count
            - sum
            - max
            - min
            - avg
            - distinct_count
          default: count
          description: >-
            Как агрегируются подходящие исторические транзакции. unique_count
            принимается как псевдоним distinct_count.
        field:
          type: string
          default: amount
          description: >-
            Поле, агрегированное с помощью sum/max/min/avg/distinct_count.
            Игнорируется для count.
        operator:
          type: string
          enum:
            - eq
            - ne
            - gt
            - gte
            - lt
            - lte
          default: eq
          description: Сравнение, применяемое к вычисленной метрике.
        value:
          type: number
          description: Порог, с которым сравнивается вычисленная метрика.
        window:
          type: string
          pattern: ^\d+(m|h|d)$
          default: 1d
          description: >-
            Окно ретроспективного анализа, заканчивающееся на txn_date
            транзакции: <N>m (МИНУТЫ, не месяцы), <N>h (часы) или <N>d (дни),
            например 30m, 24h, 7d, 30d.
        filters:
          type: object
          additionalProperties: true
          description: >-
            Ограничивает круг исторических транзакций для агрегации. Ключи
            представляют собой пути к полям из каталога полей условий; значение
            "__current__" разрешается в значение того же поля оцениваемой
            транзакции (например, {"subject_vendor_data": "__current__"}
            ограничивает окно тем же субъектом), а значение в виде списка
            означает принадлежность к множеству. Записи без группируемого
            значения никогда не объединяются в одну группу: если в оцениваемой
            транзакции нет значения для поля "__current__" (нет контрагента, нет
            цифрового отпечатка устройства), агрегация не срабатывает независимо
            от её оператора. Фильтры сравнивают ТОЛЬКО по равенству или
            принадлежности к множеству: фильтров lt/gte нет, поэтому диапазон
            вроде «исторические транзакции менее 10 000» здесь выразить нельзя.
            Задайте диапазон в метрике (метрика max с оператором lt оставляет в
            окне только транзакции ниже порога).
      description: >-
        Проверка скорости операций (velocity check) по историческим транзакциям
        приложения в пределах окна. Каждая запись агрегации должна совпадать для
        срабатывания правила, независимо от evaluation_mode. Агрегация
        ограничивает только окно; оцениваемая транзакция ограничивается областью
        (scope) и условиями, поэтому дублируйте direction, currency или
        transaction_type в обеих частях, когда правило их предусматривает.
    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: >-
        Одно действие правила. Правило может содержать несколько действий; все
        они применяются одновременно при срабатывании правила. Правила в режиме
        TEST фиксируют, что они бы сделали, не применяя ни одного действия.
    TransactionRuleActionAddScore:
      type: object
      required:
        - type
        - value
      properties:
        type:
          type: string
          enum:
            - add_score
        value:
          type: integer
          description: >-
            Баллы, добавленные к оценке риска транзакции. Могут быть
            отрицательными.
      description: >-
        Добавьте баллы к совокупной оценке риска транзакции; итоговое значение
        определяет статус с учётом заданных приложением порогов проверки и
        отклонения.
    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.
        workflow_id:
          type: string
          format: uuid
          description: >-
            ОБЯЗАТЕЛЬНО, если значение равно AWAITING_USER: сценарий
            верификации, который субъект должен пройти. Ключ псевдонима:
            remediation_workflow_id. Didit создаёт размещённую сессию для
            устранения проблемы для субъекта при срабатывании правила.
      description: >-
        Напрямую устанавливает статус транзакции. DECLINED всегда имеет
        приоритет среди сработавших правил.
    TransactionRuleActionAddTags:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - add_tags
        tag_uuid:
          type: string
          format: uuid
          description: Существующий тег приложения, который нужно прикрепить.
        tag_name:
          type: string
          description: >-
            Имя тега для прикрепления; создается при первом использовании
            (сохраняется в верхнем регистре). Укажите tag_uuid или tag_name.
        tag_color:
          type: string
          description: >-
            Шестнадцатеричный цвет (hex), используемый, когда tag_name создаёт
            новый тег, например #007AFE.
      description: Прикрепить тег приложения к совпавшей транзакции.
    TransactionRuleActionAddNote:
      type: object
      required:
        - type
        - note
      properties:
        type:
          type: string
          enum:
            - add_note
        note:
          type: string
          description: >-
            Текст заметки, прикреплённой к транзакции (автор: Rule Engine).
            Ключ-алиас: значение.
      description: Прикрепить автоматическую заметку аналитика к совпавшей транзакции.
    TransactionRuleActionAddToList:
      type: object
      required:
        - type
        - list_id
      properties:
        type:
          type: string
          enum:
            - add_to_list
        list_id:
          type: string
          format: uuid
          description: Список, в который нужно добавить vendor_data субъекта.
      description: >-
        Добавьте vendor_data субъекта в список блокировки, список разрешений или
        пользовательский список.
    TransactionRuleActionOpenCase:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - open_case
        blueprint:
          type: string
          format: uuid
          description: >-
            UUID шаблона кейса; по умолчанию используется шаблон по умолчанию
            для приложения.
        grouping:
          type: string
          enum:
            - by_applicant
            - by_rule_and_applicant
          description: >-
            Объединяются ли повторные совпадения в один кейс на заявителя или в
            один кейс на комбинацию правила и заявителя.
        attach_matched_transaction:
          type: boolean
          description: Прикрепить совпавшую транзакцию к кейсу.
      description: >-
        Открыть кейс расследования (или добавить в существующий). Применяется
        только первое действие open_case в правиле.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        API-ключ вашего приложения из раздела «Разработчикам» -> «API-ключи» в
        Business Console. Основной ключ имеет полный доступ. Именованный ключ
        может иметь ограниченную область действия: без доступа, чтение или
        запись для каждого ресурса, ограничение определенными сценариями или
        одобренными сессиями, списком IP-адресов и сроком действия. 401
        означает, что ключ неверен, отозван или его срок действия истек; 403
        означает, что ключ не был передан, у ключа нет доступа к этому ресурсу
        или действию, либо запрос поступил с адреса вне его списка IP-адресов;
        404 на маршруте сессии означает, что сессия не входит в сценарии или
        статусы ключа. Ключ без доступа к медиа получает URL изображений, видео
        и PDF как null, а ключ без прав на запись сессий получает ссылки на
        сессии и токены как null. См. https://docs.didit.me/console/api-keys.

````

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