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

> Список заметок к транзакции в Didit от новых к старым: API-заметки, заметки проверяющих, правил и смены статуса. Пагинация через limit и offset.



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



      
      

\<pre>

\`List the notes on one Didit monitored transaction through the Management API.

Endpoint:
GET https://verification.didit.me/v3/transactions/{transaction_id}/notes/

Authentication:
Use the x-api-key header with my Didit API key. A scoped key needs transactions: read. Keys limited to specific workflows or to approved sessions cannot call this endpoint.

Goal:
\- Read the review timeline of a transaction (my own API notes, Console reviewer notes, and the notes Didit adds automatically) so I can show it in my back-office or sync it to my case tool.

Path parameter:
\- transaction_id: the Didit transaction uuid returned by POST /v3/transactions/ or GET /v3/transactions/. Not my own txn_id.

Behavior:
\- Notes come back newest first (created_at descending).
\- Paginated with limit (default 50) and offset. count is exact up to 100 and capped at 100 above that, so keep following next until it is null instead of computing pages from count.
\- metadata tells the note types apart: mentioned_emails on notes written through the API or the Console; type "status_change" with previous_status, new_status, reason_code and reason_label when a reviewer changed the status in the Console; source "rule_action" (with rule_uuid) or "remediation_session" on notes Didit adds automatically, which carry actor_name "Rule Engine".

Example call:
curl -X GET "https://verification.didit.me/v3/transactions/{transaction_id}/notes/?limit=50" \
-H "x-api-key: YOUR_API_KEY"

What to read from the response:
\- results[].uuid, note, created_at: the note itself.
\- results[].actor_email and actor_name: the Console user who wrote it. Both are null for notes created with an API key.
\- results[].metadata: mentions and the note type (see Behavior).
\- next: URL of the next page, null on the last page.

Failure modes:
\- 400: limit or offset above 1000000.
\- 401: the API key has expired.
\- 403: missing API key (a wrong, revoked or expired key gets 401) ({"detail": "You do not have permission to perform this action."}), a scoped key without transactions: read, a key with workflow or status limits, or a request from outside the key's IP allowlist.
\- 404: no transaction with this uuid in my application ({"detail": "No Transaction matches the given query."}).
\- 429: more than 600 GET requests per minute with this key; wait Retry-After seconds and retry.

Side effects: none. This is a pure read.

For the full integration shape, see /integration/integration-prompt.`

\</pre>



      
      

Вставьте в

Примечания представляют собой хронологию транзакции для аналитика: тот же список, который проверяющие видят в разделе **Примечания** на [странице деталей транзакции](https://docs.didit.me/ru/transaction-monitoring/console.md#детали-транзакции) в Console. Добавляйте свои примечания с помощью [Создать примечание к транзакции](https://docs.didit.me/ru/management-api/transactions/create-note.md), а саму транзакцию, включая её `activities`, получайте с помощью [Получить транзакцию](https://docs.didit.me/ru/management-api/transactions/get.md).Примечания с `actor_name`, равным `Rule Engine`, создаёт Didit: либо [действие](https://docs.didit.me/ru/transaction-monitoring/rules.md#действия) `add_note` правила, либо проблема при создании сессии верификации действия пользователя для транзакции в статусе `AWAITING_USER` (сессию не удалось создать или Didit перешёл на другой сценарий).


## OpenAPI

````yaml ru/openapi-25.json GET /v3/transactions/{transaction_id}/notes/
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/{transaction_id}/notes/:
    get:
      tags:
        - Transactions
      summary: Получить список заметок к транзакции
      description: >-
        Получить список заметок по одной отслеживаемой транзакции, начиная с
        самых новых (по убыванию `created_at`): заметки, добавленные вами через
        API, заметки и изменения статуса, внесённые проверяющими в консоли, а
        также заметки, добавленные Didit автоматически (действие правила
        `add_note` или проблема при создании сессии верификации действия
        пользователя) с `actor_name` `Rule Engine`. Поле `metadata` позволяет
        различать типы заметок.


        Пагинация с помощью `limit` и `offset`. Значение `count` является точным
        до 100 и ограничено 100 при больших значениях, поэтому следуйте по
        ссылке `next`, пока она не станет `null`, вместо вычисления страниц на
        основе `count`. Этот запрос на чтение не вызывает побочных эффектов.


        Для API-ключа с ограниченным доступом требуется разрешение
        `transactions: read`; ключ, ограниченный определёнными сценариями или
        одобренными сессиями, не может вызывать этот endpoint. Проверяющие видят
        этот же список в разделе **Заметки** на странице [деталей
        транзакции](https://docs.didit.me/ru/transaction-monitoring/console#детали-транзакции).
      operationId: list_transaction_notes
      parameters:
        - name: transaction_id
          in: path
          required: true
          description: >-
            UUID транзакции Didit: значение `uuid`, возвращаемое методами `POST
            /v3/transactions/` и `GET /v3/transactions/`. Собственный `txn_id`
            не принимается.
          schema:
            type: string
            format: uuid
          example: abcdef12-3456-7890-abcd-ef1234567890
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 50
            minimum: 1
            maximum: 1000000
          description: >-
            Количество заметок на страницу. По умолчанию 50. Если значение не
            является положительным целым числом, используется 50; при значении
            выше 1000000 возвращается `400`.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            maximum: 1000000
            minimum: 0
            default: 0
          description: >-
            Позиция первой возвращаемой заметки, начиная с нуля. Рекомендуется
            переходить по ссылке `next`. Значение, не являющееся целым
            неотрицательным числом, сбрасывается на 0; значение больше 1000000
            возвращает `400`.
      responses:
        '200':
          description: Страница заметок, начиная с самых новых.
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - next
                  - previous
                  - results
                properties:
                  count:
                    type: integer
                    description: >-
                      Количество заметок к транзакции: точное значение до 100, с
                      ограничением 100 выше этого порога. Переходите по `next`
                      вместо вычисления страниц на основе этого значения.
                  next:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      Абсолютный URL следующей страницы или `null` на последней
                      странице.
                  previous:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      Абсолютный URL предыдущей страницы или `null` на первой
                      странице.
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/TransactionNote'
              examples:
                API, Console and rule notes:
                  value:
                    count: 3
                    next: null
                    previous: null
                    results:
                      - uuid: c1111111-2222-4333-8444-555555555555
                        note: Customer confirmed the withdrawal by phone.
                        actor_email: null
                        actor_name: null
                        metadata:
                          mentioned_emails:
                            - analyst@example.com
                        created_at: '2026-10-16T10:05:12.481203Z'
                      - uuid: c2222222-3333-4444-8555-666666666666
                        note: >-
                          Status changed from IN_REVIEW to APPROVED. Reason:
                          Source of funds verified
                        actor_email: reviewer@example.com
                        actor_name: Alex Reviewer
                        metadata:
                          type: status_change
                          previous_status: IN_REVIEW
                          new_status: APPROVED
                          reason_code: SOF_VERIFIED
                          reason_label: Source of funds verified
                        created_at: '2026-10-15T17:22:40.103911Z'
                      - uuid: c3333333-4444-4555-8666-777777777777
                        note: >-
                          Large withdrawal to a new wallet: check the source of
                          funds.
                        actor_email: null
                        actor_name: Rule Engine
                        metadata:
                          rule_uuid: d1111111-2222-4333-8444-555555555555
                          source: rule_action
                        created_at: '2026-10-15T08:42:12.004518Z'
                No notes yet:
                  value:
                    count: 0
                    next: null
                    previous: null
                    results: []
        '400':
          description: >-
            `limit` или `offset` превышает 1000000. Тело ответа представляет
            собой JSON-массив сообщений, а не объект.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              examples:
                Limit too large:
                  value:
                    - limit must not exceed 1000000.
                Offset too large:
                  value:
                    - offset must not exceed 1000000.
        '401':
          description: >-
            Срок действия API-ключа истёк. Истечь может только ключ, созданный
            со сроком действия; после этой даты каждый запрос с ним возвращает
            `401`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            Запрос запрещён. При отсутствии ключа возвращается стандартное
            сообщение; при неверном, отозванном или истёкшем ключе возвращается
            `401`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Missing or invalid key:
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without transactions read:
                  value:
                    detail: This API key has no read access to transactions.
                Key limited to workflows or approved sessions:
                  value:
                    detail: >-
                      This API key only reaches sessions inside its workflow or
                      status limits, so it can't use this endpoint.
                Outside the key's IP list:
                  value:
                    detail: This API key can't be used from this IP address.
        '404':
          description: >-
            Транзакция с этим UUID не существует в приложении (никогда не
            создавалась, удалена или принадлежит другому приложению). Значение
            `transaction_id`, не являющееся UUID, не доходит до API: вместо
            этого возвращается HTML-страница `404`, а не это JSON-тело.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Not found:
                  value:
                    detail: No Transaction matches the given query.
        '429':
          description: >-
            Более 600 GET-запросов в минуту с этим API-ключом. Подождите
            указанное в `Retry-After` количество секунд, затем повторите
            попытку.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Throttled:
                  value:
                    detail: >-
                      GET request rate limit exceeded. You can make up to 600
                      requests per minute.
          headers:
            Retry-After:
              description: Количество секунд до сброса текущего минутного окна.
              schema:
                type: integer
                example: 23
            X-RateLimit-Limit:
              description: Количество разрешённых запросов в минуту в рамках этого бюджета.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Количество оставшихся запросов в текущем окне.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Unix-время, когда окно сбрасывается.
              schema:
                type: integer
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/transactions/abcdef12-3456-7890-abcd-ef1234567890/notes/?limit=50'
            \
              -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.notes.list(
                "abcdef12-3456-7890-abcd-ef1234567890",
            ):
                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.notes.list("abcdef12-3456-7890-abcd-ef1234567890"))
            {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\niter := client.Transactions.Notes.ListAutoPaging(ctx, \"abcdef12-3456-7890-abcd-ef1234567890\", didit.TransactionsNotesListParams{})\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().notes().list("abcdef12-3456-7890-abcd-ef1234567890"))
            {
                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->notes->list('abcdef12-3456-7890-abcd-ef1234567890')
            as $item) {
                print_r($item->toArray());
            }
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            didit.transactions.notes.list("abcdef12-3456-7890-abcd-ef1234567890").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.Notes.ListAsync("abcdef12-3456-7890-abcd-ef1234567890"))

            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    TransactionNote:
      type: object
      description: Одна заметка в хронологии проверки отслеживаемой транзакции.
      required:
        - uuid
        - note
        - actor_email
        - actor_name
        - metadata
        - created_at
      properties:
        uuid:
          type: string
          format: uuid
          description: Идентификатор заметки.
        note:
          type: string
          description: Текст обычной заметки.
        actor_email:
          type: string
          format: email
          nullable: true
          description: >-
            Электронная почта пользователя Console, оставившего заметку или
            изменившего статус. `null` для заметок, созданных с помощью
            API-ключа, и заметок, добавляемых Didit автоматически.
        actor_name:
          type: string
          nullable: true
          description: >-
            Отображаемое имя пользователя Console (его email, если имя не
            указано). `Rule Engine` для заметок, которые Didit добавляет
            автоматически. `null` для заметок, созданных с помощью API-ключа.
        metadata:
          type: object
          description: >-
            Различает типы заметок. Заметки, добавленные через API или консоль,
            содержат `mentioned_emails`. Изменение статуса, сделанное в консоли,
            содержит `type: status_change` с `previous_status`, `new_status`,
            `reason_code` и `reason_label`. Заметки, добавленные Didit, содержат
            `source`: `rule_action` (с `rule_uuid`) для действия правила
            `add_note` или `remediation_session` для проблемы при создании
            сессии верификации по действию пользователя.
          properties:
            mentioned_emails:
              type: array
              items:
                type: string
                format: email
              description: >-
                Упомянутые участники организации в нижнем регистре с удалением
                дубликатов. Пусто, если никто не был упомянут.
            type:
              type: string
              enum:
                - status_change
              description: >-
                Присутствует в заметках, фиксирующих изменение статуса,
                сделанное в Консоли.
            previous_status:
              type: string
              enum:
                - APPROVED
                - IN_REVIEW
                - DECLINED
                - AWAITING_USER
              description: Статус до изменения.
            new_status:
              type: string
              enum:
                - APPROVED
                - IN_REVIEW
                - DECLINED
                - AWAITING_USER
              description: Статус после изменения.
            reason_code:
              type: string
              nullable: true
              description: Код причины, указанный при изменении.
            reason_label:
              type: string
              nullable: true
              description: Метка причины, указанная при изменении.
            source:
              type: string
              enum:
                - rule_action
                - remediation_session
              description: Присутствует в заметках, которые Didit добавляет автоматически.
            rule_uuid:
              type: string
              format: uuid
              description: >-
                Правило, чьё действие `add_note` создало заметку (с `source:
                rule_action`).
        created_at:
          type: string
          format: date-time
          description: Время сохранения заметки.
  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.