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

# Tambah Kontak Pihak Lawan API - Jalur Email Travel Rule

> Tambahkan alamat kepatuhan privat untuk VASP pihak lawan. Jalur email Travel Rule Didit mengirim ke kontak Anda dulu, sebelum kontak platform.



Tambahkan Prompt API Kontak Pihak Lawan
        Salin prompt ke papan klip



      
      

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



      
      

Tempel ke



## OpenAPI

````yaml id/openapi-25.json POST /v3/travel-rule/counterparty-contacts/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API Verifikasi Identitas. Lakukan autentikasi dengan header x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/travel-rule/counterparty-contacts/:
    post:
      tags:
        - Travel Rule
      summary: Tambahkan kontak pihak lawan
      description: >-
        Menambahkan alamat kepatuhan privat untuk satu entri direktori. Hanya
        aplikasi Anda yang melihat dan menggunakannya, dan rel EMAIL menulis ke
        alamat tersebut sebelum kontak platform apa pun. Menambahkan alamat yang
        sudah dimiliki entri tersebut di antara kontak Anda sendiri akan
        mengembalikan kontak tersebut.
      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: Kontak telah ditambahkan.
          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: >-
            Kolom tidak ada atau tidak valid, atau tidak ada entri direktori
            yang memiliki id ini.
          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"}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.travel_rule.counterparty_contacts.create(
                counterparty="0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91",
                email="compliance@counterparty.example",
                name="Compliance desk",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            const result = await didit.travelRule.counterpartyContacts.create({
              counterparty: "0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91",
              email: "compliance@counterparty.example",
              name: "Compliance desk",
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.TravelRule.CounterpartyContacts.Create(ctx, didit.TravelRuleCounterpartyContactCreate{\n\tCounterparty: \"0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91\",\n\tEmail:        \"compliance@counterparty.example\",\n\tName:         didit.String(\"Compliance desk\"),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;

            import me.didit.types.TravelRuleCounterpartyContactCreate;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.travelRule().counterpartyContacts().create(TravelRuleCounterpartyContactCreate.builder()
                    .counterparty("0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91")
                    .email("compliance@counterparty.example")
                    .name("Compliance desk")
                    .build());
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            $result = $didit->travelRule->counterpartyContacts->create([
                'counterparty' => '0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91',
                'email' => 'compliance@counterparty.example',
                'name' => 'Compliance desk',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.travel_rule.counterparty_contacts.create(
              counterparty: "0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91",
              email: "compliance@counterparty.example",
              name: "Compliance desk"
            )
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await
            client.TravelRule.CounterpartyContacts.CreateAsync(new
            TravelRuleCounterpartyContactCreate

            {
                Counterparty = "0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91",
                Email = "compliance@counterparty.example",
                Name = "Compliance desk",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    TravelRuleCounterpartyContactCreate:
      type: object
      required:
        - counterparty
        - email
      properties:
        counterparty:
          type: string
          format: uuid
          description: Nilai `id` entri direktori.
        email:
          type: string
          format: email
          maxLength: 254
        name:
          type: string
          description: Label opsional.
          maxLength: 255
    TravelRuleCounterpartyContact:
      type: object
      description: >-
        Alamat kepatuhan yang dikirimi pesan oleh rel EMAIL untuk satu entri
        direktori.
      properties:
        uuid:
          type: string
          format: uuid
        counterparty:
          type: string
          format: uuid
          description: >-
            Nilai `id` entri direktori, sebagaimana ditampilkan oleh GET
            /v3/travel-rule/vasps/.
        counterparty_name:
          type: string
        email:
          type: string
          format: email
        name:
          type: string
          description: Label opsional, misalnya nama tim.
        source:
          type: string
          enum:
            - staff
            - application
            - learned
          description: >-
            staff: dikurasi oleh Didit. learned: alamat di salah satu domain
            milik VASP yang menjawab permintaan melalui tautan responsnya.
            application: ditambahkan oleh aplikasi Anda.
        scope:
          type: string
          enum:
            - platform
            - application
          description: >-
            platform: dikurasi oleh Didit atau dipelajari dari jawaban
            terverifikasi, digunakan untuk setiap pelanggan Didit, hanya dapat
            dibaca oleh Anda. application: privat untuk aplikasi Anda.
        created_by:
          type: string
          description: >-
            Kosong untuk kontak platform dan untuk kontak yang ditambahkan oleh
            kunci API.
        verified_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Kapan alamat ini terakhir kali menjawab permintaan melalui tautan
            responsnya.
        is_invalid:
          type: boolean
          description: >-
            true setelah alamat mengalami bounce atau mengajukan komplain; jalur
            EMAIL akan melewatinya.
        invalid_reason:
          type: string
          enum:
            - ''
            - hard_bounce
            - soft_bounce
            - spam_complaint
            - suppressed
        invalid_detail:
          type: string
          description: Alasan dari server email penerima, jika ada.
        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: >-
        Kunci API aplikasi Anda, dari Developers -> API keys di Business
        Console. Kunci utama memiliki akses penuh. Kunci bernama dapat diberi
        cakupan: none, read, atau write per sumber daya, dibatasi pada beberapa
        alur kerja atau pada sesi yang disetujui, pada daftar alamat IP, dan
        pada tanggal kedaluwarsa. 401 berarti kuncinya salah, dicabut, atau
        kedaluwarsa; 403 berarti tidak ada kunci yang dikirimkan, kunci tidak
        memiliki akses ke sumber daya atau tindakan ini, atau permintaan datang
        dari alamat di luar daftar IP-nya; 404 pada rute sesi berarti sesi
        berada di luar alur kerja atau status kunci tersebut. Kunci tanpa akses
        media menerima URL gambar, video, dan PDF sebagai null, dan kunci tanpa
        izin tulis sesi menerima tautan sesi dan token sebagai null. Lihat
        https://docs.didit.me/console/api-keys.

````

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