> ## 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 de liste des notes de transaction

> Didit : listez les notes d'une transaction surveillée, les plus récentes d'abord (API, réviseurs, règles, statuts), avec pagination limit et offset.



Prompt de l'API List Transaction Notes
        Copier le prompt dans le presse-papiers



      
      

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



      
      

Coller dans

Les notes constituent la chronologie d'analyse d'une transaction : la même liste que celle que voient les réviseurs sous **Notes** dans le [détail de la transaction](https://docs.didit.me/fr/transaction-monitoring/console.md#détail-d’une-transaction) de la Console. Ajoutez vos propres notes avec [Créer une note de transaction](https://docs.didit.me/fr/management-api/transactions/create-note.md), et consultez la transaction elle-même, y compris ses `activities`, avec [Récupérer une transaction](https://docs.didit.me/fr/management-api/transactions/get.md).Les notes dont `actor_name` vaut `Rule Engine` proviennent de Didit : une [action](https://docs.didit.me/fr/transaction-monitoring/rules.md#actions) `add_note` d'une règle, ou un problème lors de la création de la session de vérification de l'action utilisateur pour une transaction au statut `AWAITING_USER` (la session n'a pas pu être créée, ou Didit a basculé vers un autre workflow).


## OpenAPI

````yaml fr/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 vérification d'identité. Authentifiez-vous avec l'en-tête x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/transactions/{transaction_id}/notes/:
    get:
      tags:
        - Transactions
      summary: Lister les notes de transaction
      description: >-
        Lister les notes associées à une transaction surveillée, de la plus
        récente à la plus ancienne (`created_at` décroissant) : les notes que
        vous ajoutez via l'API, les notes et changements de statut effectués par
        les réviseurs dans la Console, ainsi que les notes que Didit ajoute
        automatiquement (action `add_note` d'une règle, ou problème lors de la
        création de la session de vérification de l'action utilisateur), qui
        portent le `actor_name` `Rule Engine`. `metadata` permet de distinguer
        les types de notes.


        La réponse est paginée avec `limit` et `offset`. `count` est exact
        jusqu'à 100 et plafonné à 100 au-delà, suivez donc `next` jusqu'à ce
        qu'il soit `null` au lieu de calculer les pages à partir de `count`. Il
        s'agit d'une lecture sans effet secondaire.


        Une clé API restreinte nécessite `transactions: read` ; une clé limitée
        à certains workflows ou aux sessions approuvées ne peut pas appeler cet
        endpoint. Les réviseurs voient la même liste sous **Notes** dans le
        [détail de la
        transaction](https://docs.didit.me/fr/transaction-monitoring/console#détail-d’une-transaction).
      operationId: list_transaction_notes
      parameters:
        - name: transaction_id
          in: path
          required: true
          description: "UUID de transaction Didit\_: le `uuid` renvoyé par `POST /v3/transactions/` et `GET /v3/transactions/`. Votre propre `txn_id` n'est pas accepté."
          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 par page. La valeur par défaut est 50. Une valeur
            qui n'est pas un entier positif revient à 50 ; une valeur supérieure
            à 1000000 renvoie `400`.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            maximum: 1000000
            minimum: 0
            default: 0
          description: >-
            Position de départ (base zéro) de la première note à retourner.
            Privilégiez l'utilisation de `next`. Une valeur qui n'est pas un
            nombre entier revient par défaut à 0 ; une valeur supérieure à
            1000000 retourne `400`.
      responses:
        '200':
          description: Une page de notes, les plus récentes en premier.
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - next
                  - previous
                  - results
                properties:
                  count:
                    type: integer
                    description: >-
                      Nombre de notes sur la transaction : exact jusqu'à 100,
                      plafonné à 100 au-delà. Suivez `next` au lieu de calculer
                      les pages à partir de cette valeur.
                  next:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      URL absolue de la page suivante, ou `null` sur la dernière
                      page.
                  previous:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      URL absolue de la page précédente, ou `null` sur la
                      première page.
                  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` ou `offset` est supérieur à 1000000. Le corps est un tableau
            JSON de messages, pas un objet.
          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 clé API a expiré. Seule une clé créée avec une date d'expiration
            peut expirer ; après cette date, chaque requête effectuée avec
            celle-ci renvoie `401`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            La requête n'est pas autorisée. Une clé manquante reçoit le message
            générique ; une clé erronée, révoquée ou expirée reçoit `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: >-
            Aucune transaction avec cet UUID n'existe dans l'application (jamais
            créée, supprimée ou détenue par une autre application). Un
            `transaction_id` qui n'est pas un UUID n'atteint pas l'API : il
            renvoie une page HTML `404` au lieu de ce corps JSON.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Not found:
                  value:
                    detail: No Transaction matches the given query.
        '429':
          description: >-
            Plus de 600 requêtes GET par minute avec cette clé API. Attendez le
            nombre de secondes indiqué dans `Retry-After`, puis réessayez.
          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: >-
                Secondes avant la réinitialisation de la fenêtre actuelle d'une
                minute.
              schema:
                type: integer
                example: 23
            X-RateLimit-Limit:
              description: Requêtes autorisées par minute dans ce budget.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requêtes restantes dans la fenêtre actuelle.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Temps Unix auquel la fenêtre se réinitialise.
              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: Une note dans la chronologie d'examen d'une transaction surveillée.
      required:
        - uuid
        - note
        - actor_email
        - actor_name
        - metadata
        - created_at
      properties:
        uuid:
          type: string
          format: uuid
          description: Identifiant de la note.
        note:
          type: string
          description: Corps de la note en texte brut.
        actor_email:
          type: string
          format: email
          nullable: true
          description: >-
            E-mail de l'utilisateur de la Console ayant rédigé la note ou
            modifié le statut. `null` pour les notes créées avec une clé API et
            pour les notes ajoutées automatiquement par Didit.
        actor_name:
          type: string
          nullable: true
          description: >-
            Nom d'affichage de l'utilisateur de la Console (son e-mail lorsqu'il
            n'a pas de nom). `Rule Engine` pour les notes ajoutées
            automatiquement par Didit. `null` pour les notes créées avec une clé
            API.
        metadata:
          type: object
          description: >-
            Distingue les types de notes. Les notes rédigées via l'API ou la
            Console contiennent `mentioned_emails`. Un changement de statut
            effectué dans la Console contient `type: status_change` avec
            `previous_status`, `new_status`, `reason_code` et `reason_label`.
            Les notes ajoutées par Didit contiennent `source` : `rule_action`
            (avec `rule_uuid`) pour l'action `add_note` d'une règle, ou
            `remediation_session` pour un problème de création de la session de
            vérification d'action utilisateur.
          properties:
            mentioned_emails:
              type: array
              items:
                type: string
                format: email
              description: >-
                Membres de l'organisation mentionnés, en minuscules et
                dédupliqués. Vide si personne n'a été mentionné.
            type:
              type: string
              enum:
                - status_change
              description: >-
                Présent sur les notes enregistrant un changement de statut
                effectué dans la Console.
            previous_status:
              type: string
              enum:
                - APPROVED
                - IN_REVIEW
                - DECLINED
                - AWAITING_USER
              description: Statut avant la modification.
            new_status:
              type: string
              enum:
                - APPROVED
                - IN_REVIEW
                - DECLINED
                - AWAITING_USER
              description: Statut après la modification.
            reason_code:
              type: string
              nullable: true
              description: Code du motif indiqué lors de la modification.
            reason_label:
              type: string
              nullable: true
              description: Libellé du motif indiqué lors de la modification.
            source:
              type: string
              enum:
                - rule_action
                - remediation_session
              description: Présent sur les notes ajoutées automatiquement par Didit.
            rule_uuid:
              type: string
              format: uuid
              description: >-
                Règle dont l'action `add_note` a rédigé la note (avec `source:
                rule_action`).
        created_at:
          type: string
          format: date-time
          description: Moment où la note a été enregistrée.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clé API de votre application, issue de Développeurs -> Clés API dans
        la Business Console. La clé principale dispose d'un accès complet. Une
        clé nommée peut être restreinte : aucun, lecture ou écriture par
        ressource, limitée à certains workflows ou aux sessions approuvées, à
        une liste d'adresses IP et à une date d'expiration. 401 signifie que la
        clé est incorrecte, révoquée ou expirée ; 403 signifie qu'aucune clé n'a
        été envoyée, que la clé n'a pas accès à cette ressource ou action, ou
        que la requête provient d'une adresse hors de sa liste d'IP ; 404 sur
        une route de session signifie que la session est hors des workflows ou
        des statuts de la clé. Une clé sans accès aux médias reçoit les URL
        d'images, de vidéos et de PDF à null, et une clé sans accès en écriture
        aux sessions reçoit les liens et tokens de session à null. Voir
        https://docs.didit.me/console/api-keys.

````

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