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

# Listar depósitos de Travel Rule sin emparejar: API

> Lista con Didit los depósitos entrantes que esperan los datos de Travel Rule del VASP ordenante para emparejarlos con el mensaje de la contraparte.



Prompt para la API de listado de depósitos de Travel Rule sin emparejar
        Copiar el prompt al portapapeles



      
      

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



      
      

Pegar en

## Cuándo usarloUn depósito entrante puede llegar a tu wallet antes de que los datos de Travel Rule del VASP ordenante lleguen a Didit.
Hasta que lleguen, el depósito queda en espera.
Enumera los depósitos en espera para encontrar los que necesitas resolver.Cuando los datos han llegado como un mensaje recibido aparte, empareja ambos con [Emparejar un depósito sin emparejar](https://docs.didit.me/es/management-api/travel-rule/match-unmatched-deposit.md).## Solicitud```bash theme={null}
curl "https://verification.didit.me/v3/travel-rule/unmatched/" \
  -H "x-api-key: YOUR_API_KEY"
```## Notas- Las filas y los filtros son los mismos que en [Listar transferencias de Travel Rule](https://docs.didit.me/es/management-api/travel-rule/list-transfers.md), de la más reciente a la más antigua.
- Un depósito sale de la lista cuando se empareja con él un mensaje recibido, cuando lo emparejas manualmente o cuando cambia de estado.
- La lista está vacía para las aplicaciones sin transferencias de Travel Rule.## Relacionado- [Emparejar un depósito sin emparejar](https://docs.didit.me/es/management-api/travel-rule/match-unmatched-deposit.md)
- [Travel Rule](https://docs.didit.me/es/transaction-monitoring/travel-rule.md)


## OpenAPI

````yaml es/openapi-25.json GET /v3/travel-rule/unmatched/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de verificación de identidad. Autentícate con el encabezado x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/travel-rule/unmatched/:
    get:
      tags:
        - Travel Rule
      summary: Listar depósitos de Travel Rule sin coincidencia
      description: >-
        Depósitos entrantes que siguen esperando los datos de Travel Rule del
        VASP ordenante: su transferencia está en `AWAITING_COUNTERPARTY`,
        `NOT_ENOUGH_COUNTERPARTY_DATA` o `COUNTERPARTY_VASP_NOT_FOUND`, no
        tienen ningún mensaje recibido emparejado y nadie los ha emparejado
        manualmente. Las filas y los filtros son los mismos que en `GET
        /v3/travel-rule/transfers/`, del más reciente al más antiguo, paginados
        con `limit` (50 de forma predeterminada) y `offset`. Empareja un
        depósito con el mensaje que envió el VASP ordenante mediante `POST
        /v3/travel-rule/unmatched/{transaction_uuid}/match/`.
      operationId: listUnmatchedTravelRuleDeposits
      parameters:
        - name: direction
          in: query
          required: false
          schema:
            type: string
          description: >-
            INBOUND, OUTBOUND o ambos separados por comas. Distingue mayúsculas
            y minúsculas.
        - name: status
          in: query
          required: false
          schema:
            type: string
          description: Uno o más estados de transferencia, separados por comas.
        - name: rail
          in: query
          required: false
          schema:
            type: string
          description: >-
            Uno o más de INTERNAL, TRP, GTR, TRUST, VERIFYVASP, SYGNA, EMAIL,
            TEST_VASP, separados por comas.
        - name: kind
          in: query
          required: false
          schema:
            type: string
          description: withdrawal, deposit o message, separados por comas.
        - name: currency
          in: query
          required: false
          schema:
            type: string
          description: >-
            La moneda de la transacción, sin distinguir mayúsculas de
            minúsculas.
        - name: start_date
          in: query
          required: false
          schema:
            type: string
            format: date
          description: Transferencias creadas en este día (UTC) o después, YYYY-MM-DD.
        - name: end_date
          in: query
          required: false
          schema:
            type: string
            format: date
          description: Transferencias creadas en este día (UTC) o antes, YYYY-MM-DD.
        - name: counterparty
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: >-
            El `id` de una entrada del directorio o de un miembro de la red de
            Didit de GET /v3/travel-rule/vasps/: tus transferencias con esa
            contraparte. Un valor que no es un id válido responde 400.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 1000000
          description: Tamaño de página; 50 de forma predeterminada.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
            maximum: 1000000
          description: Filas que se omiten.
      responses:
        '200':
          description: Una página de depósitos sin asociar.
          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: Un valor de filtro no es válido.
          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: >-
        Una transferencia de Travel Rule tal como la muestra la lista de
        transferencias: solo nombres de VASP, wallets y memos, nunca los datos
        personales del ordenante ni del beneficiario.
      properties:
        id:
          type: string
          format: uuid
          description: El id de la transferencia.
        transaction_id:
          type: string
          format: uuid
          description: La transacción de Didit a la que pertenece la transferencia.
        txn_id:
          type: string
          nullable: true
          description: >-
            Tu propio id para la transacción. Las transferencias que Didit
            registra por ti, como una transferencia entrante de Didit Test VASP,
            llevan uno generado.
        txn_date:
          type: string
          format: date-time
        kind:
          type: string
          enum:
            - withdrawal
            - deposit
            - message
          description: >-
            withdrawal: saliente. message: una transferencia entrante que un
            canal creó a partir del mensaje de una contraparte (una consulta
            TRP, el tramo entrante INTERNAL, o un mensaje de GTR, VerifyVASP o
            Sygna Bridge). deposit: cualquier otra transferencia entrante.
        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: >-
            Por qué está bloqueada una transferencia
            `COUNTERPARTY_VASP_NOT_FOUND` o `COUNTERPARTY_VASP_NOT_REACHABLE`;
            es el mismo valor que el `reason` de la propia transferencia, de
            modo que la lista distingue un correo de cumplimiento rebotado de
            una contraparte sin ruta sin abrir cada transferencia. `""` para
            cualquier otro estado. Consulta [Por qué está bloqueada una
            transferencia](/es/transaction-monitoring/travel-rule#por-qué-una-transferencia-está-bloqueada).
        rail:
          type: string
          nullable: true
          enum:
            - INTERNAL
            - TRP
            - GTR
            - TRUST
            - VERIFYVASP
            - SYGNA
            - EMAIL
            - TEST_VASP
            - null
        asset:
          type: string
          description: La moneda de la transacción.
        amount:
          type: string
          description: El importe como decimal simple, por ejemplo "1.25".
        originator_vasp:
          type: string
          description: >-
            Saliente: el nombre legal de tu VASP. Entrante: el nombre de la
            contraparte, tomado de su entrada en el directorio, del miembro de
            la red de Didit, del remitente TRP, del Didit Test VASP o del nombre
            declarado en la transferencia. Vacío cuando no se conoce ninguno.
        beneficiary_vasp:
          type: string
          description: >-
            Saliente: el nombre de la contraparte, determinado de la misma
            forma. Entrante: el nombre legal de tu VASP.
        originator_wallet:
          type: string
        beneficiary_wallet:
          type: string
        originator_memo:
          type: string
          description: Memo o etiqueta de destino; vacío en las cadenas que no lo usan.
        beneficiary_memo:
          type: string
        originator_wallet_type:
          type: string
          enum:
            - vasp
            - self_hosted
            - own
          description: >-
            vasp, self_hosted (declarada sin custodia) u own (una wallet que tu
            libreta de direcciones registra como tuya). Tu propio lado es
            siempre vasp.
        beneficiary_wallet_type:
          type: string
          enum:
            - vasp
            - self_hosted
            - own
        matched_transaction_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            La otra parte de un depósito que asociaste manualmente a una
            transferencia anunciada.
        deadline_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Cuándo expira la transferencia si sigue esperando a su contraparte.
            Se establece en cada transferencia que creas con `POST
            /v3/transactions/` que requiere un intercambio, saliente o entrante.
            Es null por debajo del umbral, en un pago Lightning al que no se
            aplica la Travel Rule y en las transferencias entrantes que Didit
            crea cuando una contraparte se pone en contacto contigo (una
            consulta TRP entrante, un mensaje de red o el tramo entrante
            INTERNAL).
        created_at:
          type: string
          format: date-time
  responses:
    Unauthorized:
      description: No autorizado
      content:
        application/json:
          examples:
            Invalid API Key:
              summary: Clave de API no válida
              value:
                detail: Invalid API Key.
    Forbidden:
      description: Prohibido
      content:
        application/json:
          examples:
            No Permission:
              summary: Sin permiso
              value:
                detail: You do not have permission to perform this action.
            Not Enough Credits:
              summary: Créditos insuficientes
              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 clave de API de tu aplicación, que encontrarás en Developers -> API
        keys en la Business Console. La clave principal tiene acceso completo.
        Una clave con nombre puede tener un alcance limitado: ninguno, lectura o
        escritura por recurso, limitada a algunos flujos o a sesiones aprobadas,
        a una lista de direcciones IP y a una fecha de caducidad. 401 significa
        que la clave es incorrecta, se revocó o expiró; 403 significa que no se
        envió ninguna clave, que la clave no tiene acceso a este recurso o
        acción, o que la solicitud provino de una dirección fuera de su lista de
        IP; 404 en una ruta de sesión significa que la sesión está fuera de los
        flujos o estados de la clave. Una clave sin acceso a contenido
        multimedia recibe las URL de imágenes, videos y PDF como null, y una
        clave sin permiso de escritura en sesiones recibe los enlaces y tokens
        de sesión como null. Consulta https://docs.didit.me/console/api-keys.

````

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