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

# Questionari di due diligence VASP: elenco via API

> Con Didit, elenca i questionari di due diligence che la tua applicazione ha inviato a una VASP controparte Travel Rule, con stato e risposte.

Prompt API per l'elenco dei questionari VASP
Copia il prompt negli appunti

<pre>
  \`List the due-diligence questionnaires my application sent a Travel Rule counterparty VASP.

  Endpoint:
  GET [https://verification.didit.me/v3/travel-rule/vasps/\{vasp\_id}/questionnaires/](https://verification.didit.me/v3/travel-rule/vasps/\{vasp_id}/questionnaires/)

  Authentication:
  Use the x-api-key header with my Didit API key.

  vasp\_id is the id GET /v3/travel-rule/vasps/ returns for a directory entry or a Didit network member.

  What to read from the response:

  * questionnaires\[] - newest first, each {id, status, form_version, sent_to, sent_at, expires_at, answered_at, valid_until, current, answers}.
  * status - SENT (waiting for answers), ANSWERED, or EXPIRED (the link closed unanswered, a newer questionnaire replaced it, or the answers passed valid\_until).
  * expires\_at - the answer-by deadline, 30 days after sending.
  * valid\_until - the answers stay current for 365 days after answering. current is true while the questionnaire is ANSWERED and valid\_until has not passed.
  * form\_version - the version of Didit's standard questionnaire the answers belong to (currently 1).
  * answers - keyed by question id: legal\_name, licensing, jurisdictions, aml\_program, compliance\_officer, sanctions\_screening, transaction\_monitoring, travel\_rule, custody, ownership, record\_keeping, data\_protection. Empty until answered.

  The questionnaires and their answers are private to my application.

  Failure modes:

  * 404 - no directory entry or listed Didit network member has this id, or the id is my own VASP profile.

  Full guide: /transaction-monitoring/travel-rule#due-diligence-questionnaire.\`
</pre>

Incolla in


## OpenAPI

````yaml it/openapi-25.json GET /v3/travel-rule/vasps/{vasp_id}/questionnaires/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API di verifica dell'identità. Autenticati con l'intestazione x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/travel-rule/vasps/{vasp_id}/questionnaires/:
    get:
      tags:
        - Travel Rule
      summary: Elenca i questionari di due diligence con un VASP
      description: >-
        Ogni questionario di due diligence inviato dalla tua applicazione alla
        controparte, dal più recente al più vecchio, con il rispettivo stato e,
        una volta compilato, le risposte. Riservato alla tua applicazione.
      operationId: listTravelRuleVaspQuestionnaires
      parameters:
        - name: vasp_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: >-
            L'id di una riga di GET /v3/travel-rule/vasps/: una voce della
            directory o un membro della rete Didit.
      responses:
        '200':
          description: I tuoi questionari con questa controparte.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TravelRuleCounterpartyQuestionnaireList'
              example:
                questionnaires:
                  - id: 3f9e8d7c-6b5a-4c3d-9e2f-1a0b9c8d7e6f
                    status: SENT
                    form_version: '1'
                    sent_to: travelrule@counterparty.example
                    sent_at: '2026-10-14T10:00:00Z'
                    expires_at: '2026-11-13T10:00:00Z'
                    answered_at: null
                    valid_until: null
                    current: false
                    answers: {}
                  - id: 8b7a6c5d-4e3f-4a2b-9c1d-0e9f8a7b6c5d
                    status: ANSWERED
                    form_version: '1'
                    sent_to: travelrule@counterparty.example
                    sent_at: '2026-09-02T08:00:00Z'
                    expires_at: '2026-10-02T08:00:00Z'
                    answered_at: '2026-09-04T15:20:00Z'
                    valid_until: '2027-09-04T15:20:00Z'
                    current: true
                    answers:
                      legal_name: >-
                        Example Counterparty VASP, incorporated in the example
                        jurisdiction.
                      licensing: >-
                        Crypto-asset service provider authorised under MiCA by
                        its national regulator, licence active.
                      jurisdictions: EU and EEA. We do not serve the United States.
                      aml_program: >-
                        Written AML/CFT policy, annual independent review, last
                        completed in March 2026.
                      compliance_officer: >-
                        Head of Compliance, reachable at
                        compliance@counterparty.example.
                      sanctions_screening: >-
                        Customers at onboarding and daily; counterparties on
                        every transfer.
                      transaction_monitoring: >-
                        Rule-based monitoring with analyst review; suspicious
                        activity reports filed with the FIU.
                      travel_rule: >-
                        TRP and email; we answer requests within one business
                        day.
                      custody: >-
                        Segregated customer wallets held with a qualified
                        custodian, insured.
                      ownership: >-
                        No shareholder holds 25 percent or more; parent company
                        Example Holding Group.
                      record_keeping: >-
                        Five-year record-keeping for Travel Rule and transaction
                        data, as our regulator requires.
                      data_protection: Encrypted at rest and in transit, stored in the EU.
        '404':
          description: >-
            Nessuna voce della directory o membro elencato della rete Didit ha
            questo id. Il tuo profilo VASP non è mai una tua controparte.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              example:
                detail: No directory entry or Didit network member has this id.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            https://verification.didit.me/v3/travel-rule/vasps/{vasp_id}/questionnaires/
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.travel_rule.list_vasp_questionnaires(
                "11111111-2222-3333-4444-555555555555",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: >-
            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY.

            const didit = new Didit();


            const result = await
            didit.travelRule.listVaspQuestionnaires("11111111-2222-3333-4444-555555555555");

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.TravelRule.ListVASPQuestionnaires(ctx, \"11111111-2222-3333-4444-555555555555\")\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.travelRule().listVaspQuestionnaires("11111111-2222-3333-4444-555555555555");

            System.out.println(result);
        - lang: php
          label: PHP
          source: >-
            <?php


            require 'vendor/autoload.php';


            use Didit\DiditClient;


            // Reads DIDIT_API_KEY.

            $didit = new DiditClient();


            $result =
            $didit->travelRule->listVaspQuestionnaires('11111111-2222-3333-4444-555555555555');

            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            result =
            didit.travel_rule.list_vasp_questionnaires("11111111-2222-3333-4444-555555555555")

            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await
            client.TravelRule.ListVaspQuestionnairesAsync("11111111-2222-3333-4444-555555555555");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    TravelRuleCounterpartyQuestionnaireList:
      type: object
      properties:
        questionnaires:
          type: array
          items:
            $ref: '#/components/schemas/TravelRuleCounterpartyQuestionnaire'
          description: I più recenti per primi.
    TravelRuleCounterpartyQuestionnaire:
      type: object
      description: >-
        Un questionario di due diligence inviato dalla tua applicazione alla
        controparte: il questionario standard di Didit, inviato via email a un
        indirizzo di compliance registrato con un link di risposta monouso.
        Riservato alla tua applicazione.
      properties:
        id:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - SENT
            - ANSWERED
            - EXPIRED
          description: >-
            SENT: in attesa di risposte. ANSWERED: la controparte ha risposto a
            tutte le domande. EXPIRED: il link di risposta è stato chiuso senza
            risposta (il termine è scaduto oppure è stato sostituito da un
            questionario più recente), oppure le risposte hanno superato
            valid_until.
        form_version:
          type: string
          description: >-
            Versione del questionario standard di Didit a cui appartengono le
            risposte. Attualmente 1.
        sent_to:
          type: string
          format: email
        sent_at:
          type: string
          format: date-time
          nullable: true
        expires_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            La scadenza per la risposta, 30 giorni dopo l'invio. Il link smette
            di funzionare dopo tale termine.
        answered_at:
          type: string
          format: date-time
          nullable: true
        valid_until:
          type: string
          format: date-time
          nullable: true
          description: >-
            Periodo di validità delle risposte: 365 giorni dopo la risposta.
            Null fino a quando non viene fornita una risposta.
        current:
          type: boolean
          description: >-
            true mentre il questionario è ANSWERED e valid_until non è
            trascorso.
        answers:
          type: object
          additionalProperties:
            type: string
          description: >-
            Le risposte associate all'ID della domanda: legal_name, licensing,
            jurisdictions, aml_program, compliance_officer, sanctions_screening,
            transaction_monitoring, travel_rule, custody, ownership,
            record_keeping, data_protection. Ciascuna risposta può contenere
            fino a 2.000 caratteri. Vuote finché non viene fornita una risposta.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La chiave API della tua applicazione, da Developers -> API keys nella
        Business Console. La chiave primaria ha accesso completo. Una chiave con
        nome può avere un ambito definito: nessuno, lettura o scrittura per
        risorsa, limitata ad alcuni workflow o a sessioni approvate, a un elenco
        di indirizzi IP e a una data di scadenza. 401 indica che la chiave è
        errata, revocata o scaduta; 403 indica che non è stata inviata alcuna
        chiave, che la chiave non ha accesso a questa risorsa o azione, oppure
        che la richiesta proviene da un indirizzo non incluso nel suo elenco IP;
        404 su una route di sessione indica che la sessione non rientra nei
        workflow o negli stati previsti dalla chiave. Una chiave senza accesso
        ai media riceve gli URL di immagini, video e PDF come null, e una chiave
        senza permessi di scrittura sulle sessioni riceve link e token di
        sessione come null. Consulta https://docs.didit.me/console/api-keys.

````

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