> ## 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 Management APIで、モニタリング対象の取引のメモを新しい順に一覧取得します。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>



      
      

貼り付け先

メモは取引に関するアナリストのタイムラインで、Consoleの[取引詳細](https://docs.didit.me/ja/transaction-monitoring/console.md#取引の詳細)の**Notes**でレビュアーが確認するものと同じ一覧です。独自のメモは[取引メモの作成](https://docs.didit.me/ja/management-api/transactions/create-note.md)で追加でき、`activities`を含む取引そのものは[取引の取得](https://docs.didit.me/ja/management-api/transactions/get.md)で読み取れます。`actor_name`が`Rule Engine`に設定されたメモはDiditによって作成されたものです。ルールの`add_note`[アクション](https://docs.didit.me/ja/transaction-monitoring/rules.md#アクション)によるもの、または`AWAITING_USER`の取引に対するユーザーアクション認証セッションの作成で問題が発生した場合(セッションを作成できなかった場合、またはDiditが別のワークフローにフォールバックした場合)のものがあります。


## OpenAPI

````yaml ja/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: >-
        監視対象の1件の取引に付いたメモを新しい順(`created_at`の降順)に一覧表示します。対象となるのは、APIで追加したメモ、レビュアーがConsoleで追加したメモとステータス変更、Diditが自動で追加するメモ(ルールの`add_note`アクション、またはユーザーアクション検証セッションの作成時に発生した問題)です。自動で追加されたメモの`actor_name`は`Rule
        Engine`です。`metadata`でメモの種類を区別できます。


        `limit`と`offset`でページネーションします。`count`は100までは正確ですが、それを超えると100で頭打ちになるため、`count`からページ数を計算せず、`next`が`null`になるまでたどってください。これは副作用のない読み取り操作です。


        スコープ付きAPIキーには`transactions:
        read`が必要です。一部のワークフローまたは承認済みセッションに限定されたキーでは、このエンドポイントを呼び出せません。レビュアーは[取引の詳細](https://docs.didit.me/ja/transaction-monitoring/console#取引の詳細)の**Notes**で同じ一覧を確認できます。
      operationId: list_transaction_notes
      parameters:
        - name: transaction_id
          in: path
          required: true
          description: >-
            Diditの取引UUIDで、`POST /v3/transactions/`および`GET
            /v3/transactions/`が返す`uuid`です。独自の`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: 1ページあたりのメモの数。デフォルトは50です。正の整数でない値は50として扱われ、1000000を超える値は`400`を返します。
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            maximum: 1000000
            minimum: 0
            default: 0
          description: >-
            返す最初のメモの0始まりの位置です。`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を超える場合は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の取引がアプリケーションに存在しません(未作成、削除済み、または別のアプリケーションが所有)。UUIDではない`transaction_id`はAPIに到達せず、このJSONボディの代わりに`404`のHTMLページが返されます。
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Not found:
                  value:
                    detail: No Transaction matches the given query.
        '429':
          description: >-
            このAPIキーで1分あたり600件を超えるGETリクエストがありました。`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: 現在の1分間のウィンドウがリセットされるまでの秒数です。
              schema:
                type: integer
                example: 23
            X-RateLimit-Limit:
              description: この枠で1分あたりに許可されるリクエスト数。
              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: モニタリング対象取引のレビュータイムライン上のメモ1件。
      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ユーザーのメールアドレス。APIキーで作成されたメモおよびDiditが自動的に追加したメモの場合は`null`。
        actor_name:
          type: string
          nullable: true
          description: >-
            Consoleユーザーの表示名です（名前がない場合はメールアドレス）。Diditが自動的に追加するメモでは`Rule
            Engine`となります。APIキーで作成されたメモでは`null`です。
        metadata:
          type: object
          description: >-
            ノートの種類を区別します。APIまたはConsoleで作成されたノートには`mentioned_emails`が含まれます。Consoleで行われたステータス変更には、`type:
            status_change`と`previous_status`、`new_status`、`reason_code`、`reason_label`が含まれます。Diditが追加するノートには`source`が含まれ、ルールの`add_note`アクションによるものは`rule_action`(`rule_uuid`付き)、ユーザーアクション用の認証セッションの作成で問題が発生した場合は`remediation_session`となります。
          properties:
            mentioned_emails:
              type: array
              items:
                type: string
                format: email
              description: メンションされた組織メンバー（小文字化・重複排除済み）です。誰もメンションされていない場合は空です。
            type:
              type: string
              enum:
                - status_change
              description: Consoleで行われたステータス変更を記録するメモに含まれます。
            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キーです。Business ConsoleのDevelopers -> API
        keysで取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権（なし、読み取り、書き込み）、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください:
        https://docs.didit.me/console/api-keys

````

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