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

# Responder en Pickup Portal (API): correo Travel Rule

> Con Didit, responde al VASP cliente de una transferencia Travel Rule por correo desde el enlace de recogida, con adjuntos opcionales.

Prompt de la API para responder en el Pickup Portal
Copiar el prompt al portapapeles

<pre>
  \`Write back to the customer VASP of an EMAIL-rail Travel Rule transfer from the pickup link.

  Endpoint:
  POST [https://verification.didit.me/v3/travel-rule/pickup/\{token}/messages/](https://verification.didit.me/v3/travel-rule/pickup/\{token}/messages/)

  Authentication:
  None - the one-time pickup link token is the credential.

  Request body (JSON, or multipart/form-data with files): the same fields as the transaction's messages endpoint (kind, body, requested\_documents, reply\_to, files). Attachments must be PDF, PNG, JPEG or WebP.

  Failure modes:

  * 400 - invalid body, a file type that is not accepted, 100 messages reached, or reply\_to is not a message of this transfer.
  * 404 - unknown token.
  * 410 - the pickup link expired or the transfer is closed.

  Full guide: /transaction-monitoring/travel-rule#messages-and-document-requests.\`
</pre>

Pegar en


## OpenAPI

````yaml es/openapi-25.json POST /v3/travel-rule/pickup/{token}/messages/
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/pickup/{token}/messages/:
    post:
      tags:
        - Travel Rule
      summary: Responder en el portal de recogida
      description: >-
        Público, sin autenticación. La VASP contraparte responde en una
        transferencia por el canal EMAIL. El cuerpo es el mismo que el de los
        mensajes de la transacción; los adjuntos deben ser PDF, PNG, JPEG o
        WebP. El token es la autenticación.
      operationId: createTravelRulePickupMessage
      parameters:
        - name: token
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TravelRuleMessageCreateRequest'
            example:
              kind: MESSAGE
              body: Attached is the proof of address of the wallet holder.
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/TravelRuleMessageCreateRequest'
      responses:
        '201':
          description: El mensaje almacenado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TravelRuleMessage'
        '400':
          description: >-
            Cuerpo no válido, un tipo o tamaño de archivo no aceptado, más de
            100 mensajes en la transferencia o un `reply_to` que no es un
            mensaje de esta transferencia.
          content:
            application/json:
              schema:
                type: object
              example:
                requested_documents:
                  - Name at least one document the counterparty should send.
        '404':
          description: Token desconocido.
        '410':
          description: El enlace de recogida ha expirado o la transferencia está cerrada.
      security:
        - {}
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X POST
            https://verification.didit.me/v3/travel-rule/pickup/{token}/messages/
            \
              -H 'Content-Type: application/json' \
              -d '{"kind": "MESSAGE", "body": "Attached is the proof of address of the wallet holder."}'
components:
  schemas:
    TravelRuleMessageCreateRequest:
      type: object
      description: >-
        Envíalo como JSON, o como multipart/form-data con los archivos adjuntos
        en `files`.
      properties:
        kind:
          type: string
          enum:
            - MESSAGE
            - DOCUMENT_REQUEST
          default: MESSAGE
        body:
          type: string
          maxLength: 5000
          description: Obligatorio para un MESSAGE salvo que se adjunte un archivo.
        requested_documents:
          type: array
          items:
            type: string
            maxLength: 255
          maxItems: 10
          description: >-
            Obligatorio (al menos uno) para un DOCUMENT_REQUEST, y solo se
            permite ahí.
        reply_to:
          type: string
          format: uuid
          nullable: true
          description: >-
            Un mensaje de la misma transferencia. Una respuesta que incluye un
            documento atiende la solicitud de documento a la que responde.
        files:
          type: array
          items:
            type: string
            format: binary
          maxItems: 5
          description: Solo multipart. Hasta 5 archivos de 10 MB cada uno.
    TravelRuleMessage:
      type: object
      properties:
        id:
          type: string
          format: uuid
        kind:
          type: string
          enum:
            - MESSAGE
            - DOCUMENT_REQUEST
        direction:
          type: string
          enum:
            - INBOUND
            - OUTBOUND
          description: >-
            `OUTBOUND` es lo que envió el propio lado de quien lee. En el portal
            de recogida, la dirección se considera desde el lado de la
            contraparte.
        author:
          type: string
          description: >-
            Quién lo escribió en su propio lado: el correo electrónico de un
            usuario de la consola o la etiqueta de una clave de API, o el nombre
            del otro VASP.
        body:
          type: string
        requested_documents:
          type: array
          items:
            type: string
          description: Qué pide un DOCUMENT_REQUEST, en palabras del solicitante.
        reply_to:
          type: string
          format: uuid
          nullable: true
        fulfilled_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Se establece en un DOCUMENT_REQUEST cuando una respuesta a esa
            solicitud incluye un documento.
        attachment:
          $ref: '#/components/schemas/TravelRuleMessageAttachment'
        created_at:
          type: string
          format: date-time
    TravelRuleMessageAttachment:
      type: object
      nullable: true
      description: >-
        El documento adjunto a un mensaje, almacenado como cualquier otro
        documento de transacción.
      properties:
        uuid:
          type: string
          format: uuid
        label:
          type: string
          nullable: true
        note:
          type: string
          nullable: true
        uploaded_by:
          type: string
          nullable: true
          description: >-
            Quién lo adjuntó. En el portal de recogida, un archivo que enviaste
            muestra el nombre de tu VASP, nunca la persona ni la clave de API
            que hay detrás.
        created_at:
          type: string
          format: date-time
        files:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                format: uuid
              file_url:
                type: string
                nullable: true
                description: URL de descarga de validez limitada.
              original_filename:
                type: string
              file_size:
                type: integer

````

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