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

# Lister les dépôts Travel Rule non appariés via l'API

> Listez les dépôts entrants en attente des données Travel Rule du VASP émetteur, pour les associer au message envoyé par la contrepartie avec Didit.



Prompt de l'API de liste des dépôts Travel Rule non rapprochés
        Copier le prompt dans le presse-papiers



      
      

\<pre>

\`List the inbound deposits of my application that still wait for the originating VASP's Travel Rule data.

Endpoint:
GET https://verification.didit.me/v3/travel-rule/unmatched/

Authentication:
Use the x-api-key header with my Didit API key. A scoped API key needs the transactions privilege.

Which deposits it returns:
\- Inbound transfers whose status is AWAITING_COUNTERPARTY, NOT_ENOUGH_COUNTERPARTY_DATA or COUNTERPARTY_VASP_NOT_FOUND.
\- Only deposits with no received Travel Rule message paired to them and nobody matched by hand.

Query parameters (all optional): the same filters as GET /v3/travel-rule/transfers/ (direction, status, rail, kind, currency, start_date, end_date, counterparty), plus limit (default 50) and offset.

What to read from each row:
\- The same fields as a row of GET /v3/travel-rule/transfers/: id, transaction_id, txn_id, kind, direction, status, rail, asset, amount, originator_vasp, beneficiary_vasp, wallets, memos, matched_transaction_id, deadline_at, created_at.
\- transaction_id is the deposit to pass as {transaction_uuid} to POST /v3/travel-rule/unmatched/{transaction_uuid}/match/.

Failure modes:
\- 400 - a filter value is not valid, for example {"status": ["Unknown value(s): awaiting."]}.
\- 401 - invalid API key.
\- 403 - the key lacks the transactions privilege.

Full guide: /transaction-monitoring/travel-rule.`

\</pre>



      
      

Coller dans

## Quand l'utiliserUn dépôt entrant peut atteindre votre portefeuille avant que les données Travel Rule du VASP d'origine n'arrivent chez Didit.
Tant que ces données n'arrivent pas, le dépôt reste en attente.
Listez les dépôts en attente pour trouver ceux que vous devez traiter.Lorsque les données sont arrivées sous la forme d'un message reçu distinct, associez les deux avec [Rapprocher un dépôt non rapproché](https://docs.didit.me/fr/management-api/travel-rule/match-unmatched-deposit.md).## Requête```bash theme={null}
curl "https://verification.didit.me/v3/travel-rule/unmatched/" \
  -H "x-api-key: YOUR_API_KEY"
```## Remarques- Les lignes et les filtres sont les mêmes que dans [Lister les transferts Travel Rule](https://docs.didit.me/fr/management-api/travel-rule/list-transfers.md), du plus récent au plus ancien.
- Un dépôt quitte la liste lorsqu'un message reçu lui est associé, lorsque vous le rapprochez manuellement, ou lorsque son statut évolue.
- La liste est vide pour les applications qui n'ont pas de transferts Travel Rule.## Pages associées- [Rapprocher un dépôt non rapproché](https://docs.didit.me/fr/management-api/travel-rule/match-unmatched-deposit.md)
- [Travel Rule](https://docs.didit.me/fr/transaction-monitoring/travel-rule.md)


## OpenAPI

````yaml fr/openapi-25.json GET /v3/travel-rule/unmatched/
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/travel-rule/unmatched/:
    get:
      tags:
        - Travel Rule
      summary: Lister les dépôts Travel Rule sans correspondance
      description: >-
        Dépôts entrants toujours en attente des données Travel Rule du VASP
        d'origine : leur transfert est à l'état `AWAITING_COUNTERPARTY`,
        `NOT_ENOUGH_COUNTERPARTY_DATA` ou `COUNTERPARTY_VASP_NOT_FOUND`, aucun
        message reçu ne leur est associé, et personne ne les a mis en
        correspondance manuellement. Les lignes et les filtres sont les mêmes
        que dans `GET /v3/travel-rule/transfers/`, les plus récents en premier,
        paginés avec `limit` (50 par défaut) et `offset`. Associez un dépôt au
        message envoyé par le VASP d'origine avec `POST
        /v3/travel-rule/unmatched/{transaction_uuid}/match/`.
      operationId: listUnmatchedTravelRuleDeposits
      parameters:
        - name: direction
          in: query
          required: false
          schema:
            type: string
          description: >-
            INBOUND, OUTBOUND, ou les deux séparés par une virgule. Sensible à
            la casse.
        - name: status
          in: query
          required: false
          schema:
            type: string
          description: Un ou plusieurs statuts de transfert, séparés par des virgules.
        - name: rail
          in: query
          required: false
          schema:
            type: string
          description: >-
            Un ou plusieurs parmi INTERNAL, TRP, GTR, TRUST, VERIFYVASP, SYGNA,
            EMAIL, TEST_VASP, séparés par des virgules.
        - name: kind
          in: query
          required: false
          schema:
            type: string
          description: withdrawal, deposit ou message, séparés par des virgules.
        - name: currency
          in: query
          required: false
          schema:
            type: string
          description: La devise de la transaction, insensible à la casse.
        - name: start_date
          in: query
          required: false
          schema:
            type: string
            format: date
          description: Transferts créés à cette date ou après (UTC), YYYY-MM-DD.
        - name: end_date
          in: query
          required: false
          schema:
            type: string
            format: date
          description: Transferts créés à cette date ou avant (UTC), YYYY-MM-DD.
        - name: counterparty
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: >-
            L'`id` d'une entrée d'annuaire ou d'un membre du réseau Didit
            provenant de GET /v3/travel-rule/vasps/ : vos transferts avec cette
            contrepartie. Une valeur qui n'est pas un identifiant valide renvoie
            une réponse 400.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 1000000
          description: Taille de page, 50 par défaut.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
            maximum: 1000000
          description: Lignes à ignorer.
      responses:
        '200':
          description: Une page de dépôts non appariés.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                  next:
                    type: string
                    nullable: true
                  previous:
                    type: string
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/TravelRuleTransferRow'
              example:
                count: 1
                next: null
                previous: null
                results:
                  - id: 7d3a1c55-0b9e-4d52-8a3c-1f6e2b9d4a08
                    transaction_id: c41f9b2e-5a8d-4e0c-9f17-3b6d8a2e5c91
                    txn_id: dep-2026-10-20-0007
                    txn_date: '2026-10-19T08:41:12Z'
                    kind: deposit
                    direction: INBOUND
                    status: AWAITING_COUNTERPARTY
                    rail: TRP
                    asset: ETH
                    amount: '1.25'
                    originator_vasp: ''
                    beneficiary_vasp: Example Counterparty VASP
                    originator_wallet: '0x77ccff0cc624a53cd8b8d8703ced826710211ec7'
                    beneficiary_wallet: '0xede2d7e4f5b097e6391ab6bbcf2f47a53f4778cb'
                    originator_memo: ''
                    beneficiary_memo: ''
                    originator_wallet_type: vasp
                    beneficiary_wallet_type: vasp
                    matched_transaction_id: null
                    deadline_at: null
                    created_at: '2026-10-19T08:41:13Z'
        '400':
          description: Une valeur de filtre n'est pas valide.
          content:
            application/json:
              example:
                start_date:
                  - Use the YYYY-MM-DD format.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            for item in client.travel_rule.unmatched_deposits.list():
                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.travelRule.unmatchedDeposits.list())
            {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\niter := client.TravelRule.UnmatchedDeposits.ListAutoPaging(ctx, didit.TravelRuleUnmatchedDepositsListParams{})\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.travelRule().unmatchedDeposits().list()) {
                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->travelRule->unmatchedDeposits->list() as $item) {
                print_r($item->toArray());
            }
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            didit.travel_rule.unmatched_deposits.list.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.TravelRule.UnmatchedDeposits.ListAsync())

            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    TravelRuleTransferRow:
      type: object
      description: >-
        Un transfert Travel Rule tel que la liste des transferts l'affiche :
        noms des VASP, portefeuilles et mémos uniquement, jamais les données
        personnelles du donneur d'ordre ou du bénéficiaire.
      properties:
        id:
          type: string
          format: uuid
          description: L'identifiant du transfert.
        transaction_id:
          type: string
          format: uuid
          description: La transaction Didit à laquelle appartient le transfert.
        txn_id:
          type: string
          nullable: true
          description: >-
            Votre propre identifiant pour la transaction. Les transferts que
            Didit enregistre pour vous, comme un transfert entrant Didit Test
            VASP, en portent un généré automatiquement.
        txn_date:
          type: string
          format: date-time
        kind:
          type: string
          enum:
            - withdrawal
            - deposit
            - message
          description: "withdrawal\_: sortant. message\_: un transfert entrant qu'un canal a créé à partir du message d'une contrepartie (une demande TRP, la partie entrante INTERNAL, ou un message GTR, VerifyVASP ou Sygna Bridge). deposit\_: tout autre transfert entrant."
        direction:
          type: string
          enum:
            - INBOUND
            - OUTBOUND
        status:
          type: string
          enum:
            - AWAITING_COUNTERPARTY
            - ON_HOLD
            - COMPLETED
            - FINISHED
            - CANCELLED
            - EXPIRED
            - COUNTERPARTY_MISMATCHED_DATA
            - COUNTERPARTY_VASP_NOT_FOUND
            - COUNTERPARTY_VASP_NOT_REACHABLE
            - UNCONFIRMED_OWNERSHIP
            - COUNTERPARTY_VASP_GENERAL_DECLINE
            - NOT_ENOUGH_COUNTERPARTY_DATA
            - NOT_APPLICABLE
        reason:
          type: string
          description: >-
            Raison pour laquelle un transfert `COUNTERPARTY_VASP_NOT_FOUND` ou
            `COUNTERPARTY_VASP_NOT_REACHABLE` est bloqué, identique à la valeur
            `reason` du transfert lui-même, afin que la liste permette de
            distinguer un e-mail de conformité rejeté d'une contrepartie sans
            routage sans avoir à ouvrir chaque transfert. `""` pour tout autre
            statut. Voir [Pourquoi un transfert est
            bloqué](/fr/transaction-monitoring/travel-rule#pourquoi-un-transfert-est-bloqué).
        rail:
          type: string
          nullable: true
          enum:
            - INTERNAL
            - TRP
            - GTR
            - TRUST
            - VERIFYVASP
            - SYGNA
            - EMAIL
            - TEST_VASP
            - null
        asset:
          type: string
          description: La devise de la transaction.
        amount:
          type: string
          description: Le montant sous forme décimale simple, par exemple "1.25".
        originator_vasp:
          type: string
          description: >-
            Sortant : la dénomination sociale de votre VASP. Entrant : le nom de
            la contrepartie, issu de son entrée dans l'annuaire, du membre du
            réseau Didit, de l'expéditeur TRP, du VASP de test Didit ou du nom
            déclaré par le transfert. Vide si aucun n'est connu.
        beneficiary_vasp:
          type: string
          description: >-
            Sortant : le nom de la contrepartie, déterminé de la même façon.
            Entrant : la dénomination sociale de votre VASP.
        originator_wallet:
          type: string
        beneficiary_wallet:
          type: string
        originator_memo:
          type: string
          description: >-
            Mémo ou balise de destination, vide sur les blockchains qui n'en ont
            pas.
        beneficiary_memo:
          type: string
        originator_wallet_type:
          type: string
          enum:
            - vasp
            - self_hosted
            - own
          description: >-
            vasp, self_hosted (déclaré non hébergé) ou own (un portefeuille que
            votre carnet d'adresses enregistre comme le vôtre). Votre propre
            côté est toujours vasp.
        beneficiary_wallet_type:
          type: string
          enum:
            - vasp
            - self_hosted
            - own
        matched_transaction_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            L'autre contrepartie d'un dépôt que vous avez associé manuellement à
            un transfert annoncé.
        deadline_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Date et heure auxquelles le transfert expire s'il est toujours en
            attente de sa contrepartie. Défini sur chaque transfert créé avec
            `POST /v3/transactions/` nécessitant un échange, sortant ou entrant.
            Vaut null en dessous du seuil, sur un paiement Lightning auquel la
            Travel Rule ne s'applique pas, et sur les transferts entrants que
            Didit crée lorsqu'une contrepartie vous contacte (une demande TRP
            entrante, un message réseau ou la branche entrante INTERNAL).
        created_at:
          type: string
          format: date-time
  responses:
    Unauthorized:
      description: Non autorisé
      content:
        application/json:
          examples:
            Invalid API Key:
              summary: Clé API non valide
              value:
                detail: Invalid API Key.
    Forbidden:
      description: Interdit
      content:
        application/json:
          examples:
            No Permission:
              summary: Aucune autorisation
              value:
                detail: You do not have permission to perform this action.
            Not Enough Credits:
              summary: Crédits insuffisants
              value:
                error: >-
                  You don't have enough credits to perform this request. Please
                  top up at https://business.didit.me
  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.