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

# Llistar notes de transaccions de l'API

> Llista les notes d'una transacció monitoritzada a Didit, de la més recent a la més antiga, amb paginació per límit i offset.



Prompt de l'API per llistar les notes de transacció
        Copia el prompt al porta-retalls



      
      

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



      
      

Enganxa a

Les notes són la cronologia de l'analista d'una transacció: la mateixa llista que els revisors veuen sota **Notes** al [detall de la transacció](https://docs.didit.me/ca/transaction-monitoring/console.md#detall-de-la-transacció) de la Console. Afegeix-hi les teves amb [Crear nota de transacció](https://docs.didit.me/ca/management-api/transactions/create-note.md), i consulta la transacció en si, incloses les seves `activities`, amb [Obtenir transacció](https://docs.didit.me/ca/management-api/transactions/get.md).Les notes amb `actor_name` definit com a `Rule Engine` provenen de Didit: una [acció](https://docs.didit.me/ca/transaction-monitoring/rules.md#accions) `add_note` d'una regla, o un problema en crear la sessió de verificació de l'acció de l'usuari per a una transacció en estat `AWAITING_USER` (no s'ha pogut crear la sessió o Didit ha recorregut a un altre flux de treball).


## OpenAPI

````yaml ca/openapi-25.json GET /v3/transactions/{transaction_id}/notes/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de verificació d'identitat. Autentica't amb la capçalera x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/transactions/{transaction_id}/notes/:
    get:
      tags:
        - Transactions
      summary: Llista les notes de la transacció
      description: >-
        Llista les notes d'una transacció monitorada, començant per la més
        recent (`created_at` descendent): notes que afegeixes a través de l'API,
        notes i canvis d'estat que fan els revisors a la consola, i notes que
        Didit afegeix automàticament (l'acció `add_note` d'una regla, o un
        problema en crear la sessió de verificació d'acció de l'usuari), que
        porten l'`actor_name` `Rule Engine`. `metadata` distingeix els tipus de
        nota.


        Paginat amb `limit` i `offset`. `count` és exacte fins a 100 i es limita
        a 100 per sobre d'aquest valor, així que segueix `next` fins que sigui
        `null` en lloc de calcular les pàgines a partir de `count`. Aquesta és
        una lectura sense efectes secundaris.


        Una clau d'API amb abast restringit necessita `transactions: read`; una
        clau limitada a alguns fluxos de treball o a sessions aprovades no pot
        cridar aquest endpoint. Els revisors veuen la mateixa llista a **Notes**
        al [detall de la
        transacció](https://docs.didit.me/ca/transaction-monitoring/console#detall-de-la-transacció).
      operationId: list_transaction_notes
      parameters:
        - name: transaction_id
          in: path
          required: true
          description: >-
            UUID de transacció de Didit: el `uuid` retornat per `POST
            /v3/transactions/` i `GET /v3/transactions/`. No s'accepta el teu
            propi `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: >-
            Nombre de notes per pàgina. Per defecte és 50. Un valor que no sigui
            un enter positiu torna a 50; un valor superior a 1000000 retorna
            `400`.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            maximum: 1000000
            minimum: 0
            default: 0
          description: >-
            Posició basada en zero de la primera nota a retornar. És preferible
            seguir `next`. Un valor que no sigui un nombre enter torna a 0 per
            defecte; un valor superior a 1000000 retorna `400`.
      responses:
        '200':
          description: Una pàgina de notes, les més recents primer.
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - next
                  - previous
                  - results
                properties:
                  count:
                    type: integer
                    description: >-
                      Nombre de notes a la transacció: exacte fins a 100,
                      limitat a 100 per sobre d'aquest valor. Segueix `next` en
                      comptes de calcular pàgines a partir d'aquest valor.
                  next:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      URL absoluta de la pàgina següent, o `null` a l'última
                      pàgina.
                  previous:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      URL absoluta de la pàgina anterior, o `null` a la primera
                      pàgina.
                  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` supera 1000000. El cos és una matriu JSON de
            missatges, no un objecte.
          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 clau d'API ha caducat. Només pot caducar una clau creada amb data
            de caducitat; després d'aquesta data, cada sol·licitud que s'hi faci
            rep una resposta `401`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            La sol·licitud no està permesa. Si falta la clau, es rep el missatge
            genèric; una clau incorrecta, revocada o caducada rep un `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: >-
            No existeix cap transacció amb aquest UUID a l'aplicació (no s'ha
            creat mai, s'ha suprimit o pertany a una altra aplicació). Un
            `transaction_id` que no sigui un UUID no arriba a l'API: retorna una
            pàgina HTML `404` en lloc d'aquest cos JSON.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Not found:
                  value:
                    detail: No Transaction matches the given query.
        '429':
          description: >-
            Més de 600 sol·licituds GET per minut amb aquesta clau d'API. Espera
            el nombre de segons indicat a `Retry-After` i torna-ho a provar.
          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: Segons fins que es restableixi la finestra actual d'un minut.
              schema:
                type: integer
                example: 23
            X-RateLimit-Limit:
              description: Sol·licituds permeses per minut en aquest pressupost.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Sol·licituds restants a la finestra actual.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Temps Unix en què es reinicia la finestra.
              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 a la línia temporal de revisió d'una transacció monitorada.
      required:
        - uuid
        - note
        - actor_email
        - actor_name
        - metadata
        - created_at
      properties:
        uuid:
          type: string
          format: uuid
          description: Identificador de la nota.
        note:
          type: string
          description: Cos de la nota en text pla.
        actor_email:
          type: string
          format: email
          nullable: true
          description: >-
            Correu electrònic de l'usuari de la Console que ha escrit la nota o
            ha canviat l'estat. `null` per a notes creades amb una clau d'API i
            per a notes que Didit afegeix automàticament.
        actor_name:
          type: string
          nullable: true
          description: >-
            Nom visible de l'usuari de la consola (el seu correu electrònic quan
            no té nom). `Rule Engine` en les notes que Didit afegeix
            automàticament. `null` per a notes creades amb una clau d'API.
        metadata:
          type: object
          description: >-
            Distingeix els tipus de notes. Les notes escrites a través de l'API
            o de la consola porten `mentioned_emails`. Un canvi d'estat fet a la
            consola porta `type: status_change` amb `previous_status`,
            `new_status`, `reason_code` i `reason_label`. Les notes que Didit
            afegeix porten `source`: `rule_action` (amb `rule_uuid`) per a
            l'acció `add_note` d'una regla, o `remediation_session` per a un
            problema en crear la sessió de verificació per a l'acció de
            l'usuari.
          properties:
            mentioned_emails:
              type: array
              items:
                type: string
                format: email
              description: >-
                Membres de l'organització esmentats, en minúscules i sense
                duplicats. Buit si no s'ha esmentat ningú.
            type:
              type: string
              enum:
                - status_change
              description: >-
                Present en notes que registren un canvi d'estat fet a la
                consola.
            previous_status:
              type: string
              enum:
                - APPROVED
                - IN_REVIEW
                - DECLINED
                - AWAITING_USER
              description: Estat abans del canvi.
            new_status:
              type: string
              enum:
                - APPROVED
                - IN_REVIEW
                - DECLINED
                - AWAITING_USER
              description: Estat després del canvi.
            reason_code:
              type: string
              nullable: true
              description: Codi de motiu facilitat amb el canvi.
            reason_label:
              type: string
              nullable: true
              description: Etiqueta de motiu facilitada amb el canvi.
            source:
              type: string
              enum:
                - rule_action
                - remediation_session
              description: Present en notes que Didit afegeix automàticament.
            rule_uuid:
              type: string
              format: uuid
              description: >-
                Regla l'acció `add_note` de la qual ha escrit la nota (amb
                `source: rule_action`).
        created_at:
          type: string
          format: date-time
          description: Quan es va desar la nota.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clau d'API de la teva aplicació, des de Developers -> API keys a la
        Business Console. La clau primària té accés complet. Una clau amb nom
        pot tenir l'abast limitat: cap, lectura o escriptura per recurs,
        limitada a determinats fluxos de treball o a sessions aprovades, a una
        llista d'adreces IP i a una data de caducitat. 401 significa que la clau
        és incorrecta, revocada o caducada; 403 significa que no s'ha enviat cap
        clau, que la clau no té accés a aquest recurs o acció, o que la
        sol·licitud prové d'una adreça fora de la seva llista d'IP; 404 en una
        ruta de sessió significa que la sessió està fora dels fluxos de treball
        o estats de la clau. Una clau sense accés a fitxers multimèdia rep els
        URL d'imatge, vídeo i PDF com a null, i una clau sense permís
        d'escriptura de sessions rep els enllaços de sessió i els tokens com a
        null. Consulta https://docs.didit.me/console/api-keys.

````

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