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

# Travel Rule: API widget di selezione controparte VASP

> Endpoint pubblico con token: l'utente sceglie il VASP di destinazione non trovato da Didit; il trasferimento Travel Rule viene instradato lì.



Prompt API per la selezione del VASP nel widget
        Copia il prompt negli appunti



      
      

\<pre>

\`Record the destination VASP an end user picked in the wallet widget, for an outbound Travel Rule transfer whose counterparty discovery could not name.

Endpoint:
POST https://verification.didit.me/v3/travel-rule/widget/{token}/vasps/

Authentication:
None - the widget token in the URL path is the credential. Treat the token as a secret.

Body:
\{"vasp": "id from GET /v3/travel-rule/widget/{token}/vasps/"}

What happens:
\- The transfer is routed to that VASP and sent again. Automatic discovery never overrides the pick.
\- Allowed only for an outbound transfer in COUNTERPARTY_VASP_NOT_FOUND, COUNTERPARTY_VASP_NOT_REACHABLE, or NOT_ENOUGH_COUNTERPARTY_DATA.

What to read from the response:
\- transfer_status - the transfer status after the pick.
\- counterparty_vasp - the name of the VASP that was picked.

Failure modes:
\- 400 - vasp is missing, or no live directory entry has that id.
\- 404 - unknown token.
\- 409 - the widget session is not linked to a transfer, or the transfer is not in a status that accepts a counterparty.
\- 410 - the session expired.

Full guide: /transaction-monitoring/travel-rule#counterparty-discovery.`

\</pre>



      
      

Incolla in



## OpenAPI

````yaml it/openapi-25.json POST /v3/travel-rule/widget/{token}/vasps/
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/widget/{token}/vasps/:
    post:
      tags:
        - Travel Rule
      summary: Scegli il VASP di controparte nel widget del wallet
      description: >-
        Endpoint pubblico di scrittura associato al token di sessione del
        widget, nessuna chiave API richiesta: l'utente finale ha scelto il VASP
        di destinazione che l'individuazione automatica non è riuscita a
        identificare. È accettato solo per un trasferimento in uscita con stato
        COUNTERPARTY_VASP_NOT_FOUND, COUNTERPARTY_VASP_NOT_REACHABLE o
        NOT_ENOUGH_COUNTERPARTY_DATA. Il trasferimento viene instradato verso
        quel VASP e inviato di nuovo; l'individuazione automatica non
        sovrascrive mai la scelta effettuata.
      operationId: selectTravelRuleWidgetVasp
      parameters:
        - name: token
          in: path
          required: true
          description: >-
            Token di sessione opaco restituito quando la sessione del widget è
            stata creata.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - vasp
              properties:
                vasp:
                  type: string
                  format: uuid
                  description: >-
                    L'`id` di un VASP proveniente da `GET
                    /v3/travel-rule/widget/{token}/vasps/`.
            example:
              vasp: 9f1c2b34-5d6e-4f70-8a91-b2c3d4e5f607
      responses:
        '200':
          description: >-
            La scelta è stata registrata e il trasferimento viene inviato di
            nuovo.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                  transfer_status:
                    type: string
                    description: Lo stato del trasferimento dopo la selezione.
                  counterparty_vasp:
                    type: string
                    description: Il nome del VASP scelto dall'utente finale.
              example:
                detail: Counterparty VASP selected; the transfer is being resent.
                transfer_status: AWAITING_COUNTERPARTY
                counterparty_vasp: Northwind Exchange
        '400':
          description: >-
            `vasp` è mancante oppure nessuna voce attiva nella directory ha
            quell'id.
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    type: string
              example:
                vasp:
                  - No directory entry has this id.
        '404':
          description: Token sconosciuto.
        '409':
          description: >-
            La sessione del widget non è collegata a un trasferimento Travel
            Rule, oppure il trasferimento non è in uscita in uno stato che
            accetta una controparte.
        '410':
          description: La sessione è scaduta.
      security:
        - {}
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X POST
            https://verification.didit.me/v3/travel-rule/widget/{token}/vasps/ \
              -H 'Content-Type: application/json' \
              -d '{"vasp": "9f1c2b34-5d6e-4f70-8a91-b2c3d4e5f607"}'

````

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