> ## 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 selección de VASP del widget: Travel Rule

> Endpoint público de Didit con token donde el usuario final elige el VASP de destino no identificado y la transferencia Travel Rule se enruta a él.



Prompt de la API de selección del VASP en el widget
        Copiar el prompt al portapapeles



      
      

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



      
      

Pegar en



## OpenAPI

````yaml es/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 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/widget/{token}/vasps/:
    post:
      tags:
        - Travel Rule
      summary: Elige el VASP de la contraparte en el widget de wallet
      description: >-
        Endpoint público de escritura identificado por el token de sesión del
        widget; no requiere clave de API: el usuario final eligió el VASP de
        destino que el descubrimiento automático no pudo identificar. Solo lo
        acepta una transferencia saliente en COUNTERPARTY_VASP_NOT_FOUND,
        COUNTERPARTY_VASP_NOT_REACHABLE o NOT_ENOUGH_COUNTERPARTY_DATA. La
        transferencia se enruta a ese VASP y se vuelve a enviar; el
        descubrimiento automático nunca anula la elección.
      operationId: selectTravelRuleWidgetVasp
      parameters:
        - name: token
          in: path
          required: true
          description: >-
            Token de sesión opaco devuelto cuando se generó la sesión del
            widget.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - vasp
              properties:
                vasp:
                  type: string
                  format: uuid
                  description: >-
                    El `id` de un VASP de `GET
                    /v3/travel-rule/widget/{token}/vasps/`.
            example:
              vasp: 9f1c2b34-5d6e-4f70-8a91-b2c3d4e5f607
      responses:
        '200':
          description: >-
            La selección se registró y la transferencia se está enviando de
            nuevo.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                  transfer_status:
                    type: string
                    description: El estado de la transferencia después de la selección.
                  counterparty_vasp:
                    type: string
                    description: El nombre del VASP que eligió el usuario final.
              example:
                detail: Counterparty VASP selected; the transfer is being resent.
                transfer_status: AWAITING_COUNTERPARTY
                counterparty_vasp: Northwind Exchange
        '400':
          description: Falta `vasp` o ninguna entrada activa del directorio tiene ese id.
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    type: string
              example:
                vasp:
                  - No directory entry has this id.
        '404':
          description: Token desconocido.
        '409':
          description: >-
            La sesión del widget no está vinculada a una transferencia de Travel
            Rule, o la transferencia no es una transferencia saliente en un
            estado que acepte una contraparte.
        '410':
          description: La sesión expiró.
      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.