> ## 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 transactions liées

> Avec Didit, listez les autres transactions partageant un vendor_data avec une transaction surveillée, les plus récentes en premier, paginées.



Prompt de l'API Lister les transactions associées
        Copier le prompt dans le presse-papiers



      
      

\<pre>

\`List the transactions related to one Didit monitored transaction through the Management API.

Endpoint:
GET https://verification.didit.me/v3/transactions/{transaction_id}/related/

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:
\- See the other transactions that involve the same people or companies as this one (same applicant, or this transaction's counterparty appearing elsewhere) so I can review a transaction in context.

Path parameter:
\- transaction_id: the Didit transaction uuid, not my own txn_id.

Behavior:
\- A transaction is related when one of its parties, in any role, has the same vendor_data as one of this transaction's parties. Matching uses vendor_data only, within my application.
\- The transaction itself is never returned. Parties without vendor_data are ignored, so if none of this transaction's parties has a vendor_data the result is always empty.
\- Ordered by txn_date, newest first, then created_at.
\- 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.

Example call:
curl -X GET "https://verification.didit.me/v3/transactions/{transaction_id}/related/?limit=50" \
-H "x-api-key: YOUR_API_KEY"

What to read from the response:
\- results[].uuid: use it with GET /v3/transactions/{transaction_id}/ for the full detail.
\- results[].txn_id, status, score, severity, amount, currency, txn_date: the summary of each related transaction.
\- results[].subject_vendor_data and counterparty_vendor_data: which party links it to this transaction.
\- 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 transactions associées sont liées par le `vendor_data` que vous envoyez pour chaque partie lorsque vous [soumettez une transaction](https://docs.didit.me/fr/transaction-monitoring/transactions.md#sujet-et-contrepartie). Envoyez le même `vendor_data` pour une même personne ou entreprise à chaque fois, et cet endpoint renvoie son historique complet autour de n'importe quelle transaction : la même liste que celle que les réviseurs voient sous **Transactions associées** dans le [détail de la transaction](https://docs.didit.me/fr/transaction-monitoring/console.md#détail-d’une-transaction) de la Console.Chaque résultat a la même structure de résumé que [Lister les transactions](https://docs.didit.me/fr/management-api/transactions/list.md). Appelez [Obtenir une transaction](https://docs.didit.me/fr/management-api/transactions/get.md) avec l'`uuid` d'un résultat pour obtenir ses parties, ses alertes et ses exécutions de règles.


## OpenAPI

````yaml fr/openapi-25.json GET /v3/transactions/{transaction_id}/related/
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}/related/:
    get:
      tags:
        - Transactions
      summary: Lister les transactions associées
      description: >-
        Lister les autres transactions dans votre application qui impliquent les
        mêmes personnes ou entreprises que celle-ci. Une transaction est liée
        lorsque l'une de ses parties, quel que soit son rôle, possède le même
        `vendor_data` que l'une des parties de cette transaction. La transaction
        elle-même n'est jamais renvoyée, et les parties sans `vendor_data` sont
        ignorées : si aucune des parties de cette transaction n'en possède un,
        le résultat est toujours vide.


        Les résultats utilisent la structure résumée de `GET /v3/transactions/`,
        les plus récentes en premier (`txn_date`, puis `created_at`). Paginés
        avec `limit` et `offset` ; `count` est exact jusqu'à 100 et plafonné à
        100 au-delà, suivez donc `next` jusqu'à ce qu'il soit `null`.


        Une clé API restreinte nécessite `transactions: read` ; une clé limitée
        à certains workflows ou à des sessions approuvées ne peut pas appeler
        cet endpoint. Envoyez le même `vendor_data` pour la même personne ou
        entreprise sur chaque
        [transaction](https://docs.didit.me/fr/transaction-monitoring/transactions#sujet-et-contrepartie)
        pour rendre cette liste exhaustive.
      operationId: list_related_transactions
      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 transactions 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 transaction à
            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 transactions associées, les plus récentes en premier.
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - next
                  - previous
                  - results
                properties:
                  count:
                    type: integer
                    description: >-
                      Nombre de transactions associées : 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/TransactionSummary'
              examples:
                One related transaction:
                  value:
                    count: 1
                    next: null
                    previous: null
                    results:
                      - uuid: abcdef99-3456-4890-abcd-ef1234567890
                        transaction_number: 4087
                        txn_id: your-txn-2026-10-02-017
                        transaction_type: finance
                        action_type: deposit
                        status: APPROVED
                        source: LIVE
                        direction: INBOUND
                        amount: '250'
                        currency: EUR
                        currency_type: fiat
                        preferred_currency_amount: '270.08'
                        preferred_currency_code: USD
                        payment_details: Card top-up
                        txn_date: '2026-10-02T14:10:00Z'
                        created_at: '2026-10-02T14:10:03.512244Z'
                        score: 12
                        severity: LOW
                        decision_reason_code: null
                        decision_reason_label: null
                        tags: []
                        subject_name: Maria Garcia
                        subject_vendor_data: user-12345
                        subject_type: user
                        subject_uuid: e1111111-2222-4333-8444-555555555555
                        counterparty_name: null
                        counterparty_vendor_data: null
                        counterparty_country: null
                        subject_country: ESP
                        assigned_to_name: null
                        travel_rule_status: null
                        application_id: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
                        application_name: Production app
                        organization_id: 11111111-2222-3333-4444-555555555555
                        organization_name: Example Org
                No party has vendor_data:
                  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/related/?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.list_related(
                "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.listRelated("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.ListRelatedAutoPaging(ctx, \"abcdef12-3456-7890-abcd-ef1234567890\", didit.TransactionsListRelatedParams{})\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().listRelated("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->listRelated('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.list_related("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.ListRelatedAsync("abcdef12-3456-7890-abcd-ef1234567890"))

            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    TransactionSummary:
      type: object
      description: >-
        Résumé d'une transaction surveillée, au format indiqué par `GET
        /v3/transactions/`. Appelez `GET /v3/transactions/{transaction_id}/`
        avec `uuid` pour obtenir les parties, alertes et exécutions de règles.
      properties:
        uuid:
          type: string
          format: uuid
          description: >-
            UUID de transaction Didit. Utilisez-le comme `{transaction_id}` sur
            les endpoints de transaction.
        transaction_number:
          type: integer
          nullable: true
          description: Numéro séquentiel propre à l'application affiché dans la console.
        txn_id:
          type: string
          nullable: true
          description: >-
            Votre propre identifiant issu de l'appel de création. Unique par
            application.
        transaction_type:
          type: string
          description: >-
            Catégorie telle qu'enregistrée : `finance`, `kyc`, `travelRule`,
            `userPlatformEvent`, `gamblingBet`, `gamblingLimitChange`,
            `gamblingBonusChange` ou `auditTrailEvent`.
        action_type:
          type: string
          description: Sous-type au sein de la catégorie, par exemple `withdrawal`.
        status:
          type: string
          enum:
            - APPROVED
            - IN_REVIEW
            - DECLINED
            - AWAITING_USER
          description: Verdict actuel de la surveillance.
        source:
          type: string
          enum:
            - LIVE
            - IMPORTED
          description: >-
            `LIVE` pour les transactions soumises à la surveillance, `IMPORTED`
            pour les imports historiques.
        direction:
          type: string
          enum:
            - INBOUND
            - OUTBOUND
          description: Direction par rapport au sujet.
        amount:
          type: string
          description: >-
            Montant sous forme de chaîne décimale avec les zéros finaux
            supprimés (jusqu'à 18 décimales).
        currency:
          type: string
          description: Code devise ou symbole d'actif crypto de `amount`.
        currency_type:
          type: string
          nullable: true
          description: '`fiat` ou `crypto` lorsque cette information est connue.'
        preferred_currency_amount:
          type: string
          nullable: true
          description: >-
            `amount` converti dans la devise préférée de l'application,
            lorsqu'un taux était disponible.
        preferred_currency_code:
          type: string
          nullable: true
          description: Devise de `preferred_currency_amount`.
        payment_details:
          type: string
          nullable: true
          description: Référence de paiement en texte libre.
        txn_date:
          type: string
          format: date-time
          description: Date et heure auxquelles la transaction a eu lieu.
        created_at:
          type: string
          format: date-time
          description: Date et heure auxquelles Didit l'a enregistré.
        score:
          type: integer
          description: Score de risque. Plus il est élevé, plus le risque est grand.
        severity:
          type: string
          nullable: true
          enum:
            - UNKNOWN
            - LOW
            - MEDIUM
            - HIGH
            - CRITICAL
            - null
          description: Gravité du risque, `null` jusqu'à ce qu'un élément la définisse.
        decision_reason_code:
          type: string
          nullable: true
          description: Raison lisible par machine pour le `status` actuel.
        decision_reason_label:
          type: string
          nullable: true
          description: Libellé lisible par l'humain pour `decision_reason_code`.
        tags:
          type: array
          description: Tags sur la transaction.
          items:
            type: object
            properties:
              uuid:
                type: string
                format: uuid
              name:
                type: string
              color:
                type: string
                description: Couleur hexadécimale, par exemple `#F59E0B`.
              description:
                type: string
                nullable: true
              source:
                type: string
                enum:
                  - didit
                  - custom
                description: Tag prédéfini ou personnalisé Didit.
        subject_name:
          type: string
          nullable: true
          description: Nom complet de la partie `APPLICANT`.
        subject_vendor_data:
          type: string
          nullable: true
          description: Votre `vendor_data` pour le candidat.
        subject_type:
          type: string
          nullable: true
          enum:
            - user
            - business
            - null
          description: >-
            Indique si le candidat est lié à un utilisateur ou à une entreprise
            Didit ; `null` lorsqu'il n'est lié à aucun des deux.
        subject_uuid:
          type: string
          format: uuid
          nullable: true
          description: >-
            UUID de l'utilisateur ou de l'entreprise Didit auquel le candidat
            est lié.
        subject_country:
          type: string
          nullable: true
          description: Code pays du demandeur.
        counterparty_name:
          type: string
          nullable: true
          description: Nom complet de la partie `COUNTERPARTY`, le cas échéant.
        counterparty_vendor_data:
          type: string
          nullable: true
          description: Votre `vendor_data` pour la contrepartie.
        counterparty_country:
          type: string
          nullable: true
          description: Code pays de la contrepartie.
        assigned_to_name:
          type: string
          nullable: true
          description: Nom du réviseur de la Console assigné à la transaction.
        travel_rule_status:
          type: string
          nullable: true
          description: >-
            Statut du transfert Travel Rule de la transaction, ou `null`
            lorsqu'il n'en a aucun.
        application_id:
          type: string
          format: uuid
          description: Application à laquelle appartient la transaction.
        application_name:
          type: string
          nullable: true
          description: Nom de cette application.
        organization_id:
          type: string
          format: uuid
          description: Organisation propriétaire de l'application.
        organization_name:
          type: string
          nullable: true
          description: Nom de cette organisation.
  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.