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

# Atualizar regra de Monitorização de transações via API

> Ajuste uma regra KYT pela API da Didit: limiares, condições, ações ou modo (TEST, ACTIVE, DISABLED). Predefinições só aceitam o modo.



Prompt da API para atualizar regra
        Copiar o prompt para a área de transferência



      
      

\<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>



      
      

Colar em



## OpenAPI

````yaml pt/openapi-25.json PATCH /v3/transactions/rules/{rule_uuid}/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de Verificação de identidade. Autentique-se com o cabeçalho 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: O uuid da regra a partir de list ou create.
    patch:
      tags:
        - Transactions
      summary: Atualizar regra
      description: >-
        Atualize parcialmente uma regra. As regras personalizadas aceitam todos
        os campos de configuração. As regras da biblioteca (PRESET) aceitam
        apenas `mode` - utilize-o para ativar, desativar ou mudar uma
        predefinição para TEST; qualquer outro campo devolve 400, pois a Didit
        mantém as regras da biblioteca e aplica as respetivas atualizações
        automaticamente. Para alterar as condições de uma regra da biblioteca,
        crie uma cópia personalizada com `POST /v3/transactions/rules/`
        utilizando a definição da regra da biblioteca, `metadata.based_on` (a
        chave da biblioteca) e `metadata.based_on_rule_uuid`; em seguida,
        desative a regra da biblioteca com `mode: DISABLED` para que uma
        transação não gere alertas duplicados. Uma cópia instalada de uma regra
        da biblioteca retida está desativada: definir o seu `mode` para qualquer
        valor diferente de `DISABLED` devolve 400 ("This library rule cannot run
        yet: its conditions read data the rules engine cannot evaluate.").
      operationId: updateTransactionRule
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionRuleUpdateRequest'
            example:
              mode: ACTIVE
      responses:
        '200':
          description: A regra atualizada.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRuleDetail'
        '400':
          description: >-
            Erro de validação, um campo que não seja de modo numa regra da
            biblioteca ou um modo diferente de DISABLED numa regra da biblioteca
            retida.
          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: >-
            Nome da regra. Exclusivo por aplicação entre regras não eliminadas;
            duplicados devolvem 400.
        description:
          type: string
          nullable: true
        category:
          type: string
          description: >-
            Tema de risco utilizado para agrupamento e relatórios, por exemplo
            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 avalia em produção. TEST avalia e regista as execuções das
            regras, mas nunca altera a pontuação ou o estado - o modo inicial
            recomendado. DISABLED é ignorado.
        evaluation_mode:
          type: string
          enum:
            - ALL
            - ANY
          default: ALL
          description: >-
            Se todas as condições têm de corresponder (ALL) ou pelo menos uma
            (ANY). Ignorado quando as condições utilizam 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: Metadados de formato livre armazenados na regra.
      description: >-
        Atualização parcial. Regras personalizadas aceitam todos os campos;
        regras da biblioteca (PRESET) aceitam apenas mode - qualquer outra coisa
        devolve 400.
    TransactionRuleDetail:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        title:
          type: string
          description: >-
            Nome da regra. Exclusivo por aplicação entre regras não eliminadas;
            duplicados devolvem 400.
        description:
          type: string
          nullable: true
        category:
          type: string
          description: >-
            Tema de risco utilizado para agrupamento e relatórios, por exemplo
            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 avalia em produção. TEST avalia e regista as execuções das
            regras, mas nunca altera a pontuação ou o estado - o modo inicial
            recomendado. DISABLED é ignorado.
        evaluation_mode:
          type: string
          enum:
            - ALL
            - ANY
          default: ALL
          description: >-
            Se todas as condições têm de corresponder (ALL) ou pelo menos uma
            (ANY). Ignorado quando as condições utilizam 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: Metadados de formato livre armazenados na regra.
        severity:
          type: string
          enum:
            - UNKNOWN
            - LOW
            - MEDIUM
            - HIGH
            - CRITICAL
          nullable: true
          description: >-
            Nível de gravidade informativo definido pelas regras da biblioteca;
            não configurável em regras personalizadas.
        source:
          type: string
          enum:
            - PRESET
            - CUSTOM
          description: >-
            As regras PRESET vêm da biblioteca (instalar/desinstalar, edições
            apenas de modo); as regras CUSTOM são inteiramente suas.
        library_key:
          type: string
          nullable: true
          description: >-
            Identificador estável da biblioteca; null para regras
            personalizadas.
        latest_triggered_at:
          type: string
          format: date-time
          nullable: true
        run_count:
          type: integer
          description: Quantas transações corresponderam a esta regra.
        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: >-
            Restringir a tipos de transação, p. ex., finance, kyc, travel_rule,
            user_event. Vazio ou em falta = sem restrição.
        directions:
          type: array
          items:
            type: string
            enum:
              - INBOUND
              - OUTBOUND
          description: >-
            Restringir a direções de transação (não sensível a
            maiúsculas/minúsculas na escrita).
        action_types:
          type: array
          items:
            type: string
          description: >-
            Restringir aos seus valores de action_type, p. ex., withdrawal,
            deposit.
      description: >-
        A que transações a regra se aplica. Apenas estas três chaves são
        aceites.
    TransactionRuleCondition:
      type: object
      required:
        - field
        - operator
      properties:
        field:
          type: string
          description: >-
            Caminho do campo da transação a avaliar. Campos principais: amount,
            currency, direction, action_type, score, severity, transaction_type,
            payment_details, preferred_currency_amount (recorre a
            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 (e os equivalentes
            counterparty_payment_method_*), travel_rule_status,
            travel_rule_required, travel_rule_obligations_count,
            counterparty_dd_status (a sua decisão sobre a contraparte da Travel
            Rule: APPROVED, RESTRICTED ou BLOCKED, seguindo a entidade da
            respetiva marca), counterparty_risk_level (LOW, MEDIUM ou HIGH; HIGH
            enquanto a sua própria triagem da contraparte estiver sinalizada),
            counterparty_jurisdiction (o país do VASP da contraparte),
            counterparty_responsiveness (RESPONSIVE, UNRESPONSIVE ou UNKNOWN),
            subject_days_since_previous_transaction, tags e custom_values.<key>
            para qualquer chave enviada em custom_properties na criação da
            transação. Os campos de código de país aceitam ISO-2 ou ISO-3; ambos
            os lados são normalizados para ISO-3 antes da comparação.
        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: >-
            Operador de comparação. in/not_in testam a pertença (o valor pode
            ser uma lista ou um escalar individual). contains/not_contains são
            verificações de substring que não diferenciam maiúsculas de
            minúsculas face a um valor de texto. contains_any aceita uma lista
            de strings e obtém correspondência se alguma for uma substring
            (insensível a maiúsculas e minúsculas) do valor do campo. regex
            compara o padrão do valor com o campo. fuzzy_match compara com a
            string do valor com o limiar de `score` exigido (0-100).
            gt/gte/lt/lte nunca encontram correspondência se qualquer um dos
            lados estiver em falta. exists/is_not_empty/is_not_null (aliases) e
            not_exists/is_empty/is_null (aliases) são verificações de presença
            que ignoram `value`.
        value:
          description: >-
            Valor de comparação. O seu formato depende do operador e de
            value_type; omita-o para os operadores de verificação de presença.
            Todos os outros operadores requerem um valor que não seja `null` nem
            uma lista vazia, caso contrário a regra é rejeitada com `400`.
            `contains_any` requer uma lista de strings, e `contains`,
            `not_contains` e `regex` requerem uma única string.
        value_type:
          type: string
          enum:
            - list
            - field
            - relative_date
          description: >-
            Interpretação de valor opcional. `list`: o valor é um UUID de Lista
            e as entradas da lista tornam-se o valor de comparação. `field`: o
            valor é outro caminho de campo, comparado campo a campo.
            `relative_date`: o valor é um objeto de data relativa, por ex.,
            {"direction": "past", "unit": "days", "amount": 30}.
        score:
          type: number
          minimum: 0
          maximum: 100
          description: >-
            Obrigatório quando o operador for fuzzy_match: o limiar de
            semelhança de 0-100.
        group_index:
          type: integer
          description: >-
            Lógica agrupada opcional. Quando qualquer condição inclui
            group_index, as condições que partilham um índice formam um grupo e
            a avaliação agrupada substitui evaluation_mode.
        group_logic:
          type: string
          enum:
            - AND
            - OR
          default: AND
          description: Como as condições se combinam DENTRO de um grupo.
        groups_logic:
          type: string
          enum:
            - AND
            - OR
          default: OR
          description: >-
            Como os resultados dos grupos se combinam ENTRE grupos. Lido a
            partir da primeira condição.
      description: >-
        Uma condição lê apenas a transação a ser avaliada - nunca filtra a
        janela de agregação.
    TransactionRuleAggregation:
      type: object
      required:
        - value
      properties:
        metric:
          type: string
          enum:
            - count
            - sum
            - max
            - min
            - avg
            - distinct_count
          default: count
          description: >-
            Como as transações históricas correspondentes são agregadas.
            unique_count é aceite como um alias de distinct_count.
        field:
          type: string
          default: amount
          description: >-
            Campo agregado por sum/max/min/avg/distinct_count. Ignorado para
            count.
        operator:
          type: string
          enum:
            - eq
            - ne
            - gt
            - gte
            - lt
            - lte
          default: eq
          description: Comparação aplicada à métrica calculada.
        value:
          type: number
          description: Limiar com o qual a métrica calculada é comparada.
        window:
          type: string
          pattern: ^\d+(m|h|d)$
          default: 1d
          description: >-
            Janela de retrospetiva que termina na txn_date da transação: <N>m
            (MINUTOS, não meses), <N>h (horas) ou <N>d (dias), por exemplo 30m,
            24h, 7d, 30d.
        filters:
          type: object
          additionalProperties: true
          description: >-
            Restringe quais transações históricas são agregadas. As chaves são
            caminhos de campos do catálogo de campos de condição; um valor de
            "__current__" resolve para o valor do mesmo campo na transação que
            está a ser avaliada (por ex., {"subject_vendor_data": "__current__"}
            restringe a janela ao mesmo sujeito), e um valor de lista significa
            pertença. Registos sem o valor agrupado nunca são agrupados: quando
            a transação que está a ser avaliada não tem valor para um campo
            "__current__" (sem contraparte, sem impressão digital do
            dispositivo), a agregação não corresponde, qualquer que seja o seu
            operador. Os filtros comparam APENAS por igualdade ou pertença - não
            existe filtro lt/gte, pelo que um intervalo como "transações
            históricas inferiores a 10 000" não pode ser expresso aqui. Em vez
            disso, coloque o intervalo na métrica (uma métrica max com operador
            lt mantém todas as transações na janela abaixo do limiar).
      description: >-
        Verificação de velocidade sobre as transações históricas da aplicação
        dentro da janela. Cada entrada de agregação tem de corresponder para que
        a regra corresponda, independentemente do evaluation_mode. Uma agregação
        restringe apenas a janela; a transação avaliada é restringida pelo
        âmbito e pelas condições, por isso repita direction, currency ou
        transaction_type em ambas as metades quando a regra os prevê.
    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: >-
        Uma ação de regra. Uma regra pode conter várias; todas são aplicadas em
        conjunto quando houver correspondência. As regras no modo TEST registam
        o que teriam feito sem aplicar qualquer ação.
    TransactionRuleActionAddScore:
      type: object
      required:
        - type
        - value
      properties:
        type:
          type: string
          enum:
            - add_score
        value:
          type: integer
          description: >-
            Pontos adicionados à pontuação de risco da transação. Podem ser
            negativos.
      description: >-
        Adicione pontos à pontuação de risco cumulativa da transação; o total
        decide o estado através dos limiares de revisão/recusa da aplicação.
    TransactionRuleActionChangeStatus:
      type: object
      required:
        - type
        - value
      properties:
        type:
          type: string
          enum:
            - change_status
        value:
          type: string
          enum:
            - APPROVED
            - IN_REVIEW
            - DECLINED
            - AWAITING_USER
          description: >-
            Estado a definir imediatamente, independentemente da pontuação.
            Chave de alias: status.
        workflow_id:
          type: string
          format: uuid
          description: >-
            OBRIGATÓRIO quando o valor é AWAITING_USER: o fluxo de verificação
            que o sujeito deve concluir. Chave alternativa:
            remediation_workflow_id. A Didit cria uma sessão de remediação
            alojada para o sujeito quando a regra é acionada.
      description: >-
        Definir diretamente o estado da transação. DECLINED tem sempre
        prioridade entre as regras correspondentes.
    TransactionRuleActionAddTags:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - add_tags
        tag_uuid:
          type: string
          format: uuid
          description: Etiqueta da aplicação existente a associar.
        tag_name:
          type: string
          description: >-
            Nome da etiqueta a associar; criada na primeira utilização (guardada
            em maiúsculas). Forneça tag_uuid ou tag_name.
        tag_color:
          type: string
          description: >-
            Cor hexadecimal utilizada quando tag_name cria uma nova etiqueta,
            ex.: #007AFE.
      description: Anexar uma etiqueta da aplicação à transação correspondida.
    TransactionRuleActionAddNote:
      type: object
      required:
        - type
        - note
      properties:
        type:
          type: string
          enum:
            - add_note
        note:
          type: string
          description: >-
            Texto da nota anexado à transação (autor: Rule Engine). Chave do
            alias: valor.
      description: Anexar uma nota de analista automatizada à transação correspondida.
    TransactionRuleActionAddToList:
      type: object
      required:
        - type
        - list_id
      properties:
        type:
          type: string
          enum:
            - add_to_list
        list_id:
          type: string
          format: uuid
          description: Lista à qual adicionar os vendor_data do sujeito.
      description: >-
        Adicione o vendor_data do sujeito a uma lista de bloqueio, lista de
        permissões ou lista personalizada.
    TransactionRuleActionOpenCase:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - open_case
        blueprint:
          type: string
          format: uuid
          description: >-
            UUID do blueprint do caso; assume por predefinição o blueprint
            predefinido da aplicação.
        grouping:
          type: string
          enum:
            - by_applicant
            - by_rule_and_applicant
          description: >-
            Se as correspondências repetidas são agrupadas num único caso por
            requerente ou um por regra+requerente.
        attach_matched_transaction:
          type: boolean
          description: Anexar a transação correspondida ao caso.
      description: >-
        Abrir um caso de investigação (ou adicionar a um caso existente). Apenas
        a primeira ação open_case numa regra é aplicada.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        A chave de API da sua aplicação, a partir de Programadores -> Chaves de
        API na Business Console. A chave principal tem acesso total. Uma chave
        nomeada pode ter o âmbito definido: nenhum, leitura ou escrita por
        recurso, limitada a alguns fluxos ou a sessões aprovadas, a uma lista de
        endereços IP e a uma data de validade. 401 significa que a chave está
        incorreta, revogada ou expirada; 403 significa que nenhuma chave foi
        enviada, que a chave não tem acesso a este recurso ou ação, ou que o
        pedido veio de um endereço fora da sua lista de IP; 404 numa rota de
        sessão significa que a sessão está fora dos fluxos ou estados da chave.
        Uma chave sem acesso a multimédia recebe URLs de imagens, vídeos e PDFs
        como nulos, e uma chave sem permissão de escrita em sessões recebe
        ligações de sessão e tokens como nulos. Consulte
        https://docs.didit.me/console/api-keys.

````

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