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

# Submit Travel Rule Network Questionnaire API

> Send your saved network due-diligence questionnaire to Didit's review, the step before Didit carries you on a Travel Rule network.

Submit Network Questionnaire API Prompt
Copy prompt to clipboard

<pre>
  \`Send my saved network due-diligence questionnaire to Didit's review.

  Endpoint:
  POST [https://verification.didit.me/v3/travel-rule/networks/questionnaire/submit/](https://verification.didit.me/v3/travel-rule/networks/questionnaire/submit/)

  Authentication:
  Use the x-api-key header with my Didit API key. No request body: the saved answers are what Didit reviews.

  Behavior:

  * The saved answers must be complete: every field except lei and data\_protection\_contact\_email, and the three attestations true. Missing or invalid answers answer 400, keyed by field.
  * The status moves to submitted. Didit then approves it, asks for changes (edit and submit again) or rejects it.
  * Networks requested while the questionnaire was pending go to their onboarding once it is approved.
  * 409 when the questionnaire is already submitted or decided; 403 travel\_rule\_platform\_networks\_disabled until network access through Didit opens.

  Full guide: /transaction-monitoring/travel-rule.\`
</pre>

Paste into


## OpenAPI

````yaml POST /v3/travel-rule/networks/questionnaire/submit/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: Identity verification API. Authenticate with x-api-key header.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/travel-rule/networks/questionnaire/submit/:
    post:
      tags:
        - Travel Rule
      summary: Submit the network questionnaire
      description: >-
        Send the saved questionnaire to Didit's review. The saved answers must
        be complete: every field except lei and data_protection_contact_email,
        with the three attestations true. Didit approves it, asks for changes
        (edit and submit again) or rejects it. Networks you requested while it
        was pending are handed to their onboarding when it is approved.
      operationId: submitTravelRuleNetworkQuestionnaire
      responses:
        '200':
          description: The submitted questionnaire.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TravelRuleNetworkQuestionnaire'
        '400':
          description: The saved answers are incomplete or invalid, keyed by field.
        '401':
          description: Missing or invalid API key.
        '403':
          description: Network access through Didit's membership is not open yet.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                  code:
                    type: string
                    enum:
                      - travel_rule_platform_networks_disabled
        '409':
          description: >-
            The questionnaire is with Didit or decided: it can only change while
            draft or changes_requested.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                  code:
                    type: string
                    enum:
                      - travel_rule_questionnaire_not_editable
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X POST
            https://verification.didit.me/v3/travel-rule/networks/questionnaire/submit/
            \
              -H 'x-api-key: YOUR_API_KEY'
components:
  schemas:
    TravelRuleNetworkQuestionnaire:
      type: object
      properties:
        status:
          type: string
          enum:
            - draft
            - submitted
            - changes_requested
            - approved
            - rejected
          description: >-
            Answers can be saved while draft or changes_requested; submitted,
            approved and rejected are Didit's to move.
        answers:
          $ref: '#/components/schemas/TravelRuleNetworkQuestionnaireAnswers'
        submitted_at:
          type: string
          format: date-time
          nullable: true
        reviewed_at:
          type: string
          format: date-time
          nullable: true
        review_note:
          type: string
          description: Didit's note on its last decision, for example what to change.
        history:
          type: array
          readOnly: true
          description: Every status change, oldest first.
          items:
            type: object
            properties:
              at:
                type: string
                format: date-time
              from:
                type: string
              to:
                type: string
              note:
                type: string
                description: Review note or the network's answer, when there is one.
        updated_at:
          type: string
          format: date-time
          nullable: true
    TravelRuleNetworkQuestionnaireAnswers:
      type: object
      description: >-
        Didit's network due-diligence questionnaire. Saves are partial: a save
        keeps every answer it does not name. Submitting requires every field
        except lei and data_protection_contact_email, and the three attestations
        true.
      properties:
        legal_name:
          type: string
          maxLength: 255
        registration_number:
          type: string
          maxLength: 255
        incorporation_country:
          type: string
          minLength: 2
          maxLength: 2
          description: ISO 3166-1 alpha-2 country code.
        registered_address:
          type: string
          maxLength: 1000
        website:
          type: string
          format: uri
          maxLength: 500
        lei:
          type: string
          maxLength: 20
          description: Optional. A valid ISO 17442 LEI when given.
        licences:
          type: array
          minItems: 1
          items:
            type: object
            required:
              - regulator
              - jurisdiction
              - licence_type
              - licence_number
            properties:
              regulator:
                type: string
                maxLength: 255
              jurisdiction:
                type: string
                minLength: 2
                maxLength: 2
                description: ISO 3166-1 alpha-2 country code.
              licence_type:
                type: string
                maxLength: 255
              licence_number:
                type: string
                maxLength: 255
          description: Every licence or registration the VASP holds.
        operating_jurisdictions:
          type: array
          minItems: 1
          maxItems: 250
          items:
            type: string
            minLength: 2
            maxLength: 2
            description: ISO 3166-1 alpha-2 country code.
        compliance_officer_name:
          type: string
          maxLength: 255
        compliance_officer_email:
          type: string
          format: email
        aml_ctf_policy_attested:
          type: boolean
          description: Must be true to submit.
        sanctions_screening_attested:
          type: boolean
          description: Must be true to submit.
        data_protection_attested:
          type: boolean
          description: Must be true to submit.
        data_protection_contact_email:
          type: string
          format: email
          description: Optional.
        expected_monthly_transfers:
          type: integer
          minimum: 0
        expected_monthly_volume_usd:
          type: string
          format: decimal
          description: >-
            Expected monthly volume in USD, up to 2 decimal places. Returned as
            a string.
        assets:
          type: array
          minItems: 1
          maxItems: 200
          items:
            type: string
            maxLength: 32
          description: Asset tickers, stored upper-case, sorted and de-duplicated.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Your application's API key, from Developers -> API keys in the Business
        Console. The primary key has full access. A named key can be scoped:
        none, read or write per resource, limited to some workflows or to
        approved sessions, to a list of IP addresses, and to an expiry date. 401
        means the key is missing, wrong, revoked or expired; 403 means the key
        has no access to this resource or action, or the request came from an
        address outside its IP list; 404 on a session route means the session is
        outside the key's workflows or statuses. A key without media access
        receives image, video and PDF URLs as null, and a key without sessions
        write receives session links and tokens as null. See
        https://docs.didit.me/console/api-keys.

````

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