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

# Add a Counterparty Contact

> Add a private compliance address for a counterparty VASP. The Travel Rule email rail writes to your own contacts before any platform contact.



Add a Counterparty Contact API Prompt
        Copy prompt to clipboard



      
      

\<pre>

\`Add a private compliance address for a Travel Rule counterparty VASP, so Didit's EMAIL rail writes to it.

Endpoint:
POST https://verification.didit.me/v3/travel-rule/counterparty-contacts/

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

Example call:
curl -X POST "https://verification.didit.me/v3/travel-rule/counterparty-contacts/" \
-H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"counterparty": "0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91", "email": "compliance@counterparty.example", "name": "Compliance desk"}'

Body:
\- counterparty (required) - the directory entry id from GET /v3/travel-rule/vasps/.
\- email (required) - the compliance address, up to 254 characters.
\- name (optional) - a label, for example the team name, up to 255 characters.

What happens:
\- 201 with the contact (scope application). Only my application sees and uses it, and a Travel Rule email to that counterparty goes to my own contacts first, then to platform contacts.
\- Adding an address the entry already has among my own contacts returns that contact (201), unchanged.
\- 400 when a field is missing or invalid, for example {"counterparty": ["No directory entry with this id."]} or {"email": ["Enter a valid email address."]}.

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

\</pre>



      
      

Paste into



## OpenAPI

````yaml POST /v3/travel-rule/counterparty-contacts/
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/counterparty-contacts/:
    post:
      tags:
        - Travel Rule
      summary: Add a counterparty contact
      description: >-
        Adds a private compliance address for one directory entry. Only your
        application sees and uses it, and the EMAIL rail writes to it before any
        platform contact. Adding an address the entry already has among your own
        contacts returns that contact.
      operationId: createTravelRuleCounterpartyContact
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TravelRuleCounterpartyContactCreate'
            example:
              counterparty: 0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91
              email: compliance@counterparty.example
              name: Compliance desk
      responses:
        '201':
          description: The contact was added.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TravelRuleCounterpartyContact'
              example:
                uuid: 6c1f9b8e-2d4a-4f7e-8b3c-5a9d0e1f2a3b
                counterparty: 0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91
                counterparty_name: Example Counterparty VASP
                email: compliance@counterparty.example
                name: Compliance desk
                source: application
                scope: application
                created_by: ''
                verified_at: null
                is_invalid: false
                invalid_reason: ''
                invalid_detail: ''
                invalid_at: null
                created_at: '2026-10-19T09:00:00Z'
        '400':
          description: A field is missing or invalid, or no directory entry has this id.
          content:
            application/json:
              example:
                counterparty:
                  - No directory entry with this id.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X POST
            https://verification.didit.me/v3/travel-rule/counterparty-contacts/
            \
              -H 'x-api-key: YOUR_API_KEY' -H 'Content-Type: application/json' \
              -d '{"counterparty": "0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91", "email": "compliance@counterparty.example", "name": "Compliance desk"}'
components:
  schemas:
    TravelRuleCounterpartyContactCreate:
      type: object
      required:
        - counterparty
        - email
      properties:
        counterparty:
          type: string
          format: uuid
          description: The directory entry's `id`.
        email:
          type: string
          format: email
          maxLength: 254
        name:
          type: string
          description: Optional label.
          maxLength: 255
    TravelRuleCounterpartyContact:
      type: object
      description: A compliance address the EMAIL rail writes to for one directory entry.
      properties:
        uuid:
          type: string
          format: uuid
        counterparty:
          type: string
          format: uuid
          description: The directory entry's `id`, as GET /v3/travel-rule/vasps/ shows it.
        counterparty_name:
          type: string
        email:
          type: string
          format: email
        name:
          type: string
          description: Optional label, for example the team name.
        source:
          type: string
          enum:
            - staff
            - application
            - learned
          description: >-
            staff: curated by Didit. learned: an address at one of the VASP's
            own domains that answered a request through its response link.
            application: added by your application.
        scope:
          type: string
          enum:
            - platform
            - application
          description: >-
            platform: curated by Didit or learned from a verified answer, used
            for every Didit customer, read-only for you. application: private to
            your application.
        created_by:
          type: string
          description: Empty for platform contacts and for contacts an API key added.
        verified_at:
          type: string
          format: date-time
          nullable: true
          description: When this address last answered a request through its response link.
        is_invalid:
          type: boolean
          description: >-
            true once the address bounced or complained; the EMAIL rail skips
            it.
        invalid_reason:
          type: string
          enum:
            - ''
            - hard_bounce
            - soft_bounce
            - spam_complaint
            - suppressed
        invalid_detail:
          type: string
          description: The receiving mail server's reason, when it gave one.
        invalid_at:
          type: string
          format: date-time
          nullable: true
        created_at:
          type: string
          format: date-time
  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.