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

# Elenco delle note sulle transazioni API

> Didit elenca le note di una transazione monitorata, dalla più recente: note API, del revisore, delle regole e cambi di stato, con limit e offset.



Prompt API per l'elenco delle note di transazione
        Copia il prompt negli appunti



      
      

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



      
      

Incolla in

Le note sono la cronologia delle attività di analisi di una transazione: lo stesso elenco che i revisori vedono in **Note** nel [dettaglio della transazione](https://docs.didit.me/it/transaction-monitoring/console.md#dettaglio-della-transazione) della Console. Puoi aggiungerne di tue con [Crea nota di transazione](https://docs.didit.me/it/management-api/transactions/create-note.md) e leggere la transazione stessa, incluse le sue `activities`, con [Ottieni transazione](https://docs.didit.me/it/management-api/transactions/get.md).Le note con `actor_name` impostato su `Rule Engine` provengono da Didit: si tratta dell'[azione](https://docs.didit.me/it/transaction-monitoring/rules.md#azioni) `add_note` di una regola oppure di un problema nella creazione della sessione di verifica dell'azione dell'utente per una transazione in `AWAITING_USER` (la sessione non è stata creata oppure Didit è ricorso a un altro workflow).


## OpenAPI

````yaml it/openapi-25.json GET /v3/transactions/{transaction_id}/notes/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API di verifica dell'identità. Autenticati con l'intestazione x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/transactions/{transaction_id}/notes/:
    get:
      tags:
        - Transactions
      summary: Elenca le note della transazione
      description: >-
        Elenca le note su una transazione monitorata, dalla più recente
        (`created_at` decrescente): note che aggiungi tramite l'API, note e
        modifiche di stato effettuate dai revisori nella Console, e note
        aggiunte automaticamente da Didit (l'azione `add_note` di una regola, o
        un problema durante la creazione della sessione di verifica dell'azione
        dell'utente), che riportano `actor_name` `Rule Engine`. `metadata`
        distingue i tipi di nota.


        Paginato con `limit` e `offset`. `count` è esatto fino a 100 e limitato
        a 100 oltre tale valore, quindi segui `next` finché non diventa `null`
        invece di calcolare le pagine da `count`. Questa è una lettura senza
        effetti collaterali.


        Una chiave API con ambito limitato richiede `transactions: read`; una
        chiave limitata ad alcuni workflow o a sessioni approvate non può
        chiamare questo endpoint. I revisori vedono lo stesso elenco sotto
        **Notes** nel [dettaglio della
        transazione](https://docs.didit.me/it/transaction-monitoring/console#dettaglio-della-transazione).
      operationId: list_transaction_notes
      parameters:
        - name: transaction_id
          in: path
          required: true
          description: >-
            UUID della transazione Didit: l'`uuid` restituito da `POST
            /v3/transactions/` e `GET /v3/transactions/`. Il tuo `txn_id`
            personale non è accettato.
          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: >-
            Numero di note per pagina. Il valore predefinito è 50. Un valore che
            non sia un numero intero positivo reimposta il valore a 50; un
            valore superiore a 1000000 restituisce `400`.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            maximum: 1000000
            minimum: 0
            default: 0
          description: >-
            Posizione in base zero della prima nota da restituire. È preferibile
            seguire `next`. Un valore che non è un numero intero reimposta a 0;
            un valore superiore a 1000000 restituisce `400`.
      responses:
        '200':
          description: Una pagina di note, dalla più recente.
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - next
                  - previous
                  - results
                properties:
                  count:
                    type: integer
                    description: >-
                      Numero di note sulla transazione: esatto fino a 100,
                      limitato a 100 al di sopra. Segui `next` invece di
                      calcolare le pagine a partire da questo valore.
                  next:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      URL assoluto della pagina successiva, o `null` sull'ultima
                      pagina.
                  previous:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      URL assoluto della pagina precedente, o `null` sulla prima
                      pagina.
                  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` o `offset` è superiore a 1000000. Il corpo è un array JSON
            di messaggi, non un oggetto.
          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: >-
            La chiave API è scaduta. Solo una chiave creata con una data di
            scadenza può scadere; dopo tale data ogni richiesta inviata con essa
            risponde con `401`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            La richiesta non è consentita. Una chiave mancante riceve il
            messaggio generico; una chiave errata, revocata o scaduta riceve
            `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: >-
            Nessuna transazione con questo UUID esiste nell'applicazione (mai
            creata, eliminata o di proprietà di un'altra applicazione). Un
            `transaction_id` che non è un UUID non raggiunge l'API: restituisce
            una pagina HTML `404` invece di questo corpo JSON.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Not found:
                  value:
                    detail: No Transaction matches the given query.
        '429':
          description: >-
            Più di 600 richieste GET al minuto con questa chiave API. Attendi il
            numero di secondi indicato in `Retry-After`, quindi riprova.
          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: >-
                Secondi fino al ripristino della finestra temporale corrente di
                un minuto.
              schema:
                type: integer
                example: 23
            X-RateLimit-Limit:
              description: Richieste consentite al minuto per questo budget.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Richieste rimanenti nell'intervallo corrente.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Ora Unix in cui la finestra si azzera.
              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: Una nota sulla cronologia di revisione di una transazione monitorata.
      required:
        - uuid
        - note
        - actor_email
        - actor_name
        - metadata
        - created_at
      properties:
        uuid:
          type: string
          format: uuid
          description: Identificatore della nota.
        note:
          type: string
          description: Corpo della nota in testo normale.
        actor_email:
          type: string
          format: email
          nullable: true
          description: >-
            Email dell'utente della Console che ha scritto la nota o modificato
            lo stato. `null` per le note create con una chiave API e per le note
            aggiunte automaticamente da Didit.
        actor_name:
          type: string
          nullable: true
          description: >-
            Nome visualizzato dell'utente della Console (la sua email se non ha
            un nome). `Rule Engine` per le note aggiunte automaticamente da
            Didit. `null` per le note create con una chiave API.
        metadata:
          type: object
          description: >-
            Distingue le tipologie di note. Le note inserite tramite l'API o la
            Console includono `mentioned_emails`. Una modifica di stato
            effettuata nella Console include `type: status_change` con
            `previous_status`, `new_status`, `reason_code` e `reason_label`. Le
            note aggiunte da Didit contengono `source`: `rule_action` (con
            `rule_uuid`) per l'azione `add_note` di una regola, oppure
            `remediation_session` in caso di errore nella creazione della
            sessione di verifica dell'azione utente.
          properties:
            mentioned_emails:
              type: array
              items:
                type: string
                format: email
              description: >-
                Membri dell'organizzazione menzionati, in lettere minuscole e
                deduplicati. Vuoto se nessuno è stato menzionato.
            type:
              type: string
              enum:
                - status_change
              description: >-
                Presente sulle note che registrano una modifica di stato
                effettuata nella Console.
            previous_status:
              type: string
              enum:
                - APPROVED
                - IN_REVIEW
                - DECLINED
                - AWAITING_USER
              description: Stato prima della modifica.
            new_status:
              type: string
              enum:
                - APPROVED
                - IN_REVIEW
                - DECLINED
                - AWAITING_USER
              description: Stato dopo la modifica.
            reason_code:
              type: string
              nullable: true
              description: Codice del motivo specificato con la modifica.
            reason_label:
              type: string
              nullable: true
              description: Etichetta del motivo specificata con la modifica.
            source:
              type: string
              enum:
                - rule_action
                - remediation_session
              description: Presente sulle note aggiunte automaticamente da Didit.
            rule_uuid:
              type: string
              format: uuid
              description: >-
                Regola la cui azione `add_note` ha scritto la nota (con `source:
                rule_action`).
        created_at:
          type: string
          format: date-time
          description: Quando la nota è stata salvata.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La chiave API della tua applicazione, da Developers -> API keys nella
        Business Console. La chiave primaria ha accesso completo. Una chiave con
        nome può avere un ambito definito: nessuno, lettura o scrittura per
        risorsa, limitata ad alcuni workflow o a sessioni approvate, a un elenco
        di indirizzi IP e a una data di scadenza. 401 indica che la chiave è
        errata, revocata o scaduta; 403 indica che non è stata inviata alcuna
        chiave, che la chiave non ha accesso a questa risorsa o azione, oppure
        che la richiesta proviene da un indirizzo non incluso nel suo elenco IP;
        404 su una route di sessione indica che la sessione non rientra nei
        workflow o negli stati previsti dalla chiave. Una chiave senza accesso
        ai media riceve gli URL di immagini, video e PDF come null, e una chiave
        senza permessi di scrittura sulle sessioni riceve link e token di
        sessione come null. Consulta https://docs.didit.me/console/api-keys.

````

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