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

# Daftar Catatan Transaksi API

> Ambil catatan transaksi yang dipantau di Didit, terbaru dulu: catatan API, peninjau, aturan, dan perubahan status, dengan paging limit dan offset.



Prompt API Daftar Catatan Transaksi
        Salin prompt ke papan klip



      
      

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



      
      

Tempel ke

Catatan adalah linimasa analis untuk sebuah transaksi: daftar yang sama dengan yang dilihat peninjau di bawah **Catatan** pada [detail transaksi](https://docs.didit.me/id/transaction-monitoring/console.md#detail-transaksi) di Console. Tambahkan catatan Anda sendiri dengan [Buat catatan transaksi](https://docs.didit.me/id/management-api/transactions/create-note.md), dan ambil transaksi itu sendiri, termasuk `activities`-nya, dengan [Dapatkan transaksi](https://docs.didit.me/id/management-api/transactions/get.md).Catatan dengan `actor_name` yang diisi `Rule Engine` berasal dari Didit: [tindakan](https://docs.didit.me/id/transaction-monitoring/rules.md#tindakan) `add_note` dari sebuah aturan, atau masalah saat membuat sesi verifikasi tindakan pengguna untuk transaksi dengan status `AWAITING_USER` (sesi tidak dapat dibuat, atau Didit beralih ke alur kerja lain).


## OpenAPI

````yaml id/openapi-25.json GET /v3/transactions/{transaction_id}/notes/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API Verifikasi Identitas. Lakukan autentikasi dengan header x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/transactions/{transaction_id}/notes/:
    get:
      tags:
        - Transactions
      summary: Daftar catatan transaksi
      description: >-
        Mencantumkan daftar catatan pada satu transaksi yang dipantau, yang
        terbaru lebih dahulu (`created_at` menurun): catatan yang Anda tambahkan
        melalui API, catatan dan perubahan status yang dibuat peninjau di
        Konsol, serta catatan yang ditambahkan Didit secara otomatis (tindakan
        `add_note` aturan, atau masalah saat membuat sesi verifikasi tindakan
        pengguna), yang memuat `actor_name` `Rule Engine`. `metadata` membedakan
        jenis-jenis catatan.


        Dipaginasi dengan `limit` dan `offset`. `count` bersifat persis hingga
        100 dan dibatasi pada 100 di atasnya, jadi ikuti `next` hingga bernilai
        `null` alih-alih menghitung halaman dari `count`. Ini adalah operasi
        baca tanpa efek samping.


        Kunci API dengan pembatasan cakupan memerlukan `transactions: read`;
        kunci yang terbatas pada beberapa alur kerja atau sesi yang disetujui
        tidak dapat memanggil endpoint ini. Peninjau melihat daftar yang sama di
        bawah **Notes** pada [detail
        transaksi](https://docs.didit.me/id/transaction-monitoring/console#detail-transaksi).
      operationId: list_transaction_notes
      parameters:
        - name: transaction_id
          in: path
          required: true
          description: >-
            UUID transaksi Didit: `uuid` yang dikembalikan oleh `POST
            /v3/transactions/` dan `GET /v3/transactions/`. `txn_id` Anda
            sendiri tidak diterima.
          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: >-
            Jumlah catatan per halaman. Default-nya 50. Nilai yang bukan
            bilangan bulat positif akan kembali ke 50; nilai di atas 1000000
            mengembalikan `400`.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            maximum: 1000000
            minimum: 0
            default: 0
          description: >-
            Posisi berbasis nol dari catatan pertama yang dikembalikan.
            Sebaiknya ikuti `next`. Nilai yang bukan bilangan bulat akan kembali
            ke 0; nilai di atas 1000000 mengembalikan `400`.
      responses:
        '200':
          description: Satu halaman catatan, yang terbaru lebih dulu.
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - next
                  - previous
                  - results
                properties:
                  count:
                    type: integer
                    description: >-
                      Jumlah catatan pada transaksi: tepat hingga 100, dibatasi
                      maksimal 100 di atasnya. Ikuti `next` alih-alih menghitung
                      halaman darinya.
                  next:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      URL absolut halaman berikutnya, atau `null` di halaman
                      terakhir.
                  previous:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      URL absolut halaman sebelumnya, atau `null` di halaman
                      pertama.
                  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` atau `offset` berada di atas 1000000. Bagian body adalah
            array JSON berisi pesan, bukan objek.
          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: >-
            Kunci API telah kedaluwarsa. Hanya kunci yang dibuat dengan tanggal
            kedaluwarsa yang dapat kedaluwarsa; setelah tanggal tersebut, setiap
            permintaan dengannya menghasilkan respons `401`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            Permintaan tidak diizinkan. Kunci yang tidak ada akan mendapatkan
            pesan umum; kunci yang salah, dicabut, atau kedaluwarsa akan
            mendapatkan `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: >-
            Tidak ada transaksi dengan UUID ini di aplikasi tersebut (tidak
            pernah dibuat, dihapus, atau dimiliki oleh aplikasi lain).
            `transaction_id` yang bukan UUID tidak mencapai API: permintaan ini
            mengembalikan halaman HTML `404`, bukan body JSON ini.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Not found:
                  value:
                    detail: No Transaction matches the given query.
        '429':
          description: >-
            Lebih dari 600 permintaan GET per menit dengan kunci API ini. Tunggu
            selama jumlah detik di `Retry-After`, lalu coba lagi.
          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: Detik hingga jendela satu menit saat ini direset.
              schema:
                type: integer
                example: 23
            X-RateLimit-Limit:
              description: Permintaan yang diizinkan per menit dalam anggaran ini.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Permintaan tersisa dalam jendela saat ini.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Waktu Unix saat jendela direset.
              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: Satu catatan pada linimasa peninjauan transaksi yang dipantau.
      required:
        - uuid
        - note
        - actor_email
        - actor_name
        - metadata
        - created_at
      properties:
        uuid:
          type: string
          format: uuid
          description: Pengidentifikasi catatan.
        note:
          type: string
          description: Isi catatan teks biasa.
        actor_email:
          type: string
          format: email
          nullable: true
          description: >-
            Email pengguna Console yang menulis catatan atau mengubah status.
            `null` untuk catatan yang dibuat dengan kunci API dan untuk catatan
            yang ditambahkan Didit secara otomatis.
        actor_name:
          type: string
          nullable: true
          description: >-
            Nama tampilan pengguna Console (email mereka jika mereka tidak
            memiliki nama). `Rule Engine` pada catatan yang ditambahkan Didit
            secara otomatis. `null` untuk catatan yang dibuat dengan kunci API.
        metadata:
          type: object
          description: >-
            Membedakan jenis catatan. Catatan yang ditulis melalui API atau
            Konsol memuat `mentioned_emails`. Perubahan status yang dilakukan di
            Konsol membawa `type: status_change` beserta `previous_status`,
            `new_status`, `reason_code`, dan `reason_label`. Catatan yang
            ditambahkan Didit membawa `source`: `rule_action` (dengan
            `rule_uuid`) untuk tindakan `add_note` aturan, atau
            `remediation_session` untuk masalah pembuatan sesi verifikasi
            tindakan pengguna.
          properties:
            mentioned_emails:
              type: array
              items:
                type: string
                format: email
              description: >-
                Anggota organisasi yang disebutkan, ditulis dalam huruf kecil
                dan dideduplikasi. Kosong jika tidak ada yang disebutkan.
            type:
              type: string
              enum:
                - status_change
              description: >-
                Hadir pada catatan yang merekam perubahan status yang dibuat di
                Console.
            previous_status:
              type: string
              enum:
                - APPROVED
                - IN_REVIEW
                - DECLINED
                - AWAITING_USER
              description: Status sebelum perubahan.
            new_status:
              type: string
              enum:
                - APPROVED
                - IN_REVIEW
                - DECLINED
                - AWAITING_USER
              description: Status setelah perubahan.
            reason_code:
              type: string
              nullable: true
              description: Kode alasan yang diberikan bersama perubahan.
            reason_label:
              type: string
              nullable: true
              description: Label alasan yang diberikan bersama perubahan.
            source:
              type: string
              enum:
                - rule_action
                - remediation_session
              description: Hadir pada catatan yang ditambahkan Didit secara otomatis.
            rule_uuid:
              type: string
              format: uuid
              description: >-
                Aturan yang tindakan `add_note`-nya menulis catatan tersebut
                (dengan `source: rule_action`).
        created_at:
          type: string
          format: date-time
          description: Waktu catatan disimpan.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Kunci API aplikasi Anda, dari Developers -> API keys di Business
        Console. Kunci utama memiliki akses penuh. Kunci bernama dapat diberi
        cakupan: none, read, atau write per sumber daya, dibatasi pada beberapa
        alur kerja atau pada sesi yang disetujui, pada daftar alamat IP, dan
        pada tanggal kedaluwarsa. 401 berarti kuncinya salah, dicabut, atau
        kedaluwarsa; 403 berarti tidak ada kunci yang dikirimkan, kunci tidak
        memiliki akses ke sumber daya atau tindakan ini, atau permintaan datang
        dari alamat di luar daftar IP-nya; 404 pada rute sesi berarti sesi
        berada di luar alur kerja atau status kunci tersebut. Kunci tanpa akses
        media menerima URL gambar, video, dan PDF sebagai null, dan kunci tanpa
        izin tulis sesi menerima tautan sesi dan token sebagai null. Lihat
        https://docs.didit.me/console/api-keys.

````

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