> ## 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 Pengaturan Travel Rule: Aktifkan & Konfigurasi

> Aktifkan Travel Rule di Didit dan konfigurasi profil VASP, kebijakan negosiasi, metode bukti, serta opt-out jaringan dengan pembaruan parsial.



Prompt API untuk Memperbarui Pengaturan Travel Rule
        Salin prompt ke papan klip



      
      

\<pre>

\`Enable Travel Rule and configure the application's VASP profile and negotiation policy.

Endpoint:
PUT https://verification.didit.me/v3/travel-rule/settings/

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

Behavior:
\- PUT is a PARTIAL update - send only the fields you want to change.
\- Setting is_enabled: true requires a non-blank legal_name (already stored, or in the same request) - otherwise 400.

Example call:
curl -X PUT "https://verification.didit.me/v3/travel-rule/settings/" \
-H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{
"is_enabled": true,
"legal_name": "Origin CASP SL",
"jurisdiction": "EU",
"name_matching_strictness": "DEFAULT",
"confirmation_timeout_hours": 48,
"timeout_outcome": "HOLD",
"is_discoverable": true
}'

Writable fields:
\- is_enabled, legal_name, lei, jurisdiction (up to 8 chars, default "EU"), compliance_email, is_discoverable.
\- Changing compliance_email makes it unconfirmed until someone opens the link POST /v3/travel-rule/settings/compliance-email/confirmation/ emails to it; the Didit network lists the profile only with a confirmed address.
\- name_matching_strictness: NONE | STRICT | CONTAINS | DEFAULT | FUZZY.
\- ownership_validation_mode: FULL | SIMPLIFIED | AUTOMATED (default AUTOMATED), and simplified_validation_threshold (decimal, default 0): below it SIMPLIFIED accepts a self-declaration.
\- data_sharing_fields: {"individual": [...], "company": [...]} - the fields sent about your users (name, wallet_address, address, national_id, customer_identification, date_of_birth, place_of_birth; companies use the first five). name and wallet_address are always sent. Merged per entity type.
\- matching_rules: {"individual": {name, date_of_birth, address, account}, "company": {name, address, account}}, each NONE | STRICT | CONTAINS | DEFAULT | FUZZY. A field left out keeps its default.
\- confirmation_timeout_hours (min 1, default 48), timeout_outcome (HOLD | REJECT | PROCEED), inbound_auto_accept (default true).
\- threshold_amount - decimal string, default "0.00" (every transfer in scope, matching the EU TFR).
Didit compares it with the amount converted to the application's default currency (or the amount_in_default_currency you send), and a transfer below it becomes NOT_APPLICABLE with nothing exchanged.
A transfer whose amount cannot be converted stays in scope.
\- allow_self_declaration, allow_screenshot_proof - which fallback proof methods the wallet-ownership widget offers (both default true).
\- auto_wallet_verification - auto-mint a wallet-ownership widget session when a transfer needs end-user proof (default true).
\- vasp_attribution_enabled - resolve unroutable destination wallets through blockchain analytics (default true).
\- disabled_networks - array of GTR | TRUST | VERIFYVASP | SYGNA to opt out of Didit's platform memberships.
It only affects platform membership, which Didit does not offer on any network yet (Didit is onboarding as a provider), so today it has no routing effect.
Networks you connected your own membership for (console Marketplace) are never affected.
\- counterparty_screening_enabled - opt in to sanctions and adverse-media screening of counterparty VASPs (default false).
Each screening is billed at the Company AML Screening price; with it on, Didit screens the counterparty an outbound exchange reaches when the exchange starts, reusing a screening younger than 30 days.
\- sunrise_policy - HOLD | REJECT | PROCEED, or "" (default) to follow timeout_outcome: what an expired transfer does when the counterparty is a directory entry in a jurisdiction listed in sunrise_jurisdictions.
\- non_responsive_policy - HOLD | REJECT | PROCEED, or "" (default) to follow timeout_outcome: what an expired transfer does when the counterparty is a directory entry whose responsiveness is UNRESPONSIVE.
sunrise_policy applies first when both fit.

Read-only fields (returned, never written): networks, travel_address, didit_network, sunrise_jurisdictions.

Network rails today:
\- A network rail (GTR, TRUST, VerifyVASP, Sygna) routes only through your own membership connected in Marketplace.
\- networks.<name>.mode reports own, off or unavailable; production does not report didit yet.
\- With your own membership, Didit reads the counterparty's answer over GTR, VerifyVASP and Sygna from the network's response or by polling it every 5 minutes. TRUST only sends: a transfer sent over it stays AWAITING_COUNTERPARTY until it expires (then timeout_outcome applies).
If the message cannot be delivered, the transfer moves to COUNTERPARTY_VASP_NOT_REACHABLE instead.

Failure modes:
\- 400 - is_enabled without a legal_name, invalid enum value (including a disabled_networks entry, or a sunrise_policy or non_responsive_policy other than HOLD, REJECT, PROCEED or empty), invalid compliance_email, negative threshold_amount, confirmation_timeout_hours below 1, an unknown field in matching_rules, or a data_sharing_fields choice that cannot meet your jurisdiction's originator obligations (EU TFR or FATF Recommendation 16).
\- 403 - missing x-api-key (a wrong, revoked or expired key gets 401).

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

\</pre>



      
      

Tempel ke



## OpenAPI

````yaml id/openapi-25.json PUT /v3/travel-rule/settings/
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/settings/:
    put:
      tags:
        - Travel Rule
      summary: Perbarui pengaturan Travel Rule
      description: >-
        Upsert pengaturan Travel Rule dan profil VASP aplikasi. Pembaruan
        parsial — hanya kirim kolom yang ingin Anda ubah. Menyetel `is_enabled:
        true` memerlukan `legal_name` yang tidak kosong (sudah disimpan atau
        disertakan dalam permintaan yang sama), jika tidak, akan mengembalikan
        400.
      operationId: updateTravelRuleSettings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TravelRuleSettingsUpdate'
            example:
              is_enabled: true
              legal_name: Origin CASP SL
              jurisdiction: EU
              name_matching_strictness: DEFAULT
              confirmation_timeout_hours: 48
              timeout_outcome: HOLD
              is_discoverable: true
      responses:
        '200':
          description: >-
            Pengaturan dan profil yang diperbarui, dalam format yang sama
            seperti GET.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TravelRuleSettingsDetail'
        '400':
          description: >-
            Kesalahan validasi, misalnya mengaktifkan tanpa legal_name,
            sunrise_policy atau non_responsive_policy selain HOLD, REJECT,
            PROCEED atau kosong, kolom yang tidak dikenal di `matching_rules`,
            atau pilihan `data_sharing_fields` yang tidak dapat memenuhi
            kewajiban pengirim dari rezim yurisdiksi Anda (kesalahan dikunci
            berdasarkan jenis entitas di bawah `data_sharing_fields`).
          content:
            application/json:
              schema:
                type: object
              example:
                legal_name:
                  - legal_name is required to enable travel rule.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X PUT https://verification.didit.me/v3/travel-rule/settings/ \
              -H 'x-api-key: YOUR_API_KEY' -H 'Content-Type: application/json' \
              -d '{"is_enabled": true, "legal_name": "Origin CASP SL", "jurisdiction": "EU"}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.travel_rule.update_settings(
                is_enabled=True,
                legal_name="Origin CASP SL",
                jurisdiction="EU",
                name_matching_strictness="DEFAULT",
                confirmation_timeout_hours=48,
                timeout_outcome="HOLD",
                is_discoverable=True,
            )
            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.updateSettings({
              is_enabled: true,
              legal_name: "Origin CASP SL",
              jurisdiction: "EU",
              name_matching_strictness: "DEFAULT",
              confirmation_timeout_hours: 48,
              timeout_outcome: "HOLD",
              is_discoverable: true,
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.TravelRule.UpdateSettings(ctx, didit.TravelRuleSettingsUpdate{\n\tIsEnabled:                didit.Bool(true),\n\tLegalName:                didit.String(\"Origin CASP SL\"),\n\tJurisdiction:             didit.String(\"EU\"),\n\tNameMatchingStrictness:   didit.Some(didit.TravelRuleSettingsUpdateNameMatchingStrictness(\"DEFAULT\")),\n\tConfirmationTimeoutHours: didit.Int(48),\n\tTimeoutOutcome:           didit.Some(didit.TravelRuleSettingsUpdateTimeoutOutcome(\"HOLD\")),\n\tIsDiscoverable:           didit.Bool(true),\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.TravelRuleSettingsUpdate;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.travelRule().updateSettings(TravelRuleSettingsUpdate.builder()
                    .isEnabled(true)
                    .legalName("Origin CASP SL")
                    .jurisdiction("EU")
                    .nameMatchingStrictness(TravelRuleSettingsUpdate.NameMatchingStrictness.of("DEFAULT"))
                    .confirmationTimeoutHours(48L)
                    .timeoutOutcome(TravelRuleSettingsUpdate.TimeoutOutcome.of("HOLD"))
                    .isDiscoverable(true)
                    .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->updateSettings([
                'is_enabled' => true,
                'legal_name' => 'Origin CASP SL',
                'jurisdiction' => 'EU',
                'name_matching_strictness' => 'DEFAULT',
                'confirmation_timeout_hours' => 48,
                'timeout_outcome' => 'HOLD',
                'is_discoverable' => true,
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.travel_rule.update_settings(
              is_enabled: true,
              legal_name: "Origin CASP SL",
              jurisdiction: "EU",
              name_matching_strictness: "DEFAULT",
              confirmation_timeout_hours: 48,
              timeout_outcome: "HOLD",
              is_discoverable: true
            )
            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.UpdateSettingsAsync(new
            TravelRuleSettingsUpdate

            {
                IsEnabled = true,
                LegalName = "Origin CASP SL",
                Jurisdiction = "EU",
                NameMatchingStrictness = new TravelRuleSettingsUpdateNameMatchingStrictness("DEFAULT"),
                ConfirmationTimeoutHours = 48,
                TimeoutOutcome = new TravelRuleSettingsUpdateTimeoutOutcome("HOLD"),
                IsDiscoverable = true,
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    TravelRuleSettingsUpdate:
      type: object
      properties:
        is_enabled:
          type: boolean
        legal_name:
          type: string
          maxLength: 255
        lei:
          type: string
          maxLength: 20
        jurisdiction:
          type: string
          maxLength: 8
        name_matching_strictness:
          type: string
          enum:
            - NONE
            - STRICT
            - CONTAINS
            - DEFAULT
            - FUZZY
          description: >-
            `CONTAINS` menerima satu nama yang semua katanya muncul pada nama
            lainnya.
        confirmation_timeout_hours:
          type: integer
          minimum: 1
        timeout_outcome:
          type: string
          enum:
            - HOLD
            - REJECT
            - PROCEED
        compliance_email:
          type: string
          format: email
          description: >-
            Email kontak kepatuhan untuk profil VASP Anda. Jaringan Didit
            mencantumkan profil Anda hanya setelah alamat ini dikonfirmasi
            melalui tautan yang dikirimkan melalui email (POST
            /v3/travel-rule/settings/compliance-email/confirmation/);
            mengubahnya memerlukan konfirmasi baru.
        is_discoverable:
          type: boolean
          description: >-
            Menentukan apakah profil VASP Anda dapat dicantumkan dalam jaringan
            Didit: ditemukan di GET /v3/travel-rule/vasps/ oleh pelanggan Didit
            lainnya dan dijangkau di rail INTERNAL. Pencantuman juga memerlukan
            aplikasi produksi, Travel Rule aktif, nama resmi, dan email
            kepatuhan yang dikonfirmasi; didit_network menyatakan mana yang
            belum lengkap. Nilai defaultnya adalah true.
        threshold_amount:
          type: string
          description: >-
            String desimal, nol atau lebih besar, dalam mata uang default
            aplikasi Anda. Jumlah transfer minimum yang memicu pertukaran
            terkelola.
        ownership_validation_mode:
          type: string
          enum:
            - FULL
            - SIMPLIFIED
            - AUTOMATED
          description: Lihat kolom respons dengan nama yang sama.
        simplified_validation_threshold:
          type: string
          description: String desimal, 0 atau lebih.
        data_sharing_fields:
          allOf:
            - $ref: '#/components/schemas/TravelRuleDataSharingFields'
          description: >-
            Digabungkan per jenis entitas: jenis entitas yang Anda lewatkan akan
            mempertahankan pilihan saat ininya. Pilihan yang tidak dapat
            memenuhi kewajiban pengirim dari rezim `jurisdiction` Anda (EU TFR
            atau FATF Recommendation 16), termasuk daftar kosong, akan ditolak
            dengan `400`.
        matching_rules:
          allOf:
            - $ref: '#/components/schemas/TravelRuleMatchingRules'
          description: >-
            Digabungkan per jenis entitas, dan per kolom di dalamnya. Kolom yang
            tidak dibandingkan oleh jenis entitas tersebut (misalnya
            `date_of_birth` untuk `company`) akan ditolak dengan `400`.
        inbound_auto_accept:
          type: boolean
        allow_self_declaration:
          type: boolean
        allow_screenshot_proof:
          type: boolean
          description: >-
            Jika true, widget kepemilikan dompet menawarkan unggahan tangkapan
            layar sebagai metode bukti kepemilikan. Defaultnya true.
        auto_wallet_verification:
          type: boolean
        vasp_attribution_enabled:
          type: boolean
        counterparty_screening_enabled:
          type: boolean
          description: >-
            Skrining sanksi dan media negatif opsional (opt-in) untuk VASP pihak
            lawan, ditagihkan per skrining sesuai harga Skrining AML Perusahaan.
            Saat aktif, Didit menyaring pihak lawan yang dijangkau oleh bursa
            pengirim (menggunakan kembali skrining yang berusia kurang dari 30
            hari) dan Anda dapat menyaringnya dengan POST
            /v3/travel-rule/vasps/{vasp_id}/screening/. Default false: tidak ada
            yang diskrining atau ditagihkan.
        sunrise_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            HOLD, REJECT, PROCEED, atau kosong untuk mengikuti timeout_outcome.
            Lihat kolom respons dengan nama yang sama.
        non_responsive_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            HOLD, REJECT, PROCEED, atau kosong untuk mengikuti timeout_outcome.
            Lihat kolom respons dengan nama yang sama.
        disabled_networks:
          type: array
          items:
            type: string
            enum:
              - GTR
              - TRUST
              - VERIFYVASP
              - SYGNA
          description: >-
            Jaringan memilih keluar dari keanggotaan platform. Tidak
            menonaktifkan keanggotaan Anda sendiri yang terhubung atau
            menyediakan jaringan yang tidak tersedia.
          default: []
      description: Semua kolom bersifat opsional; PUT menerapkan pembaruan parsial.
    TravelRuleSettingsDetail:
      type: object
      properties:
        is_enabled:
          type: boolean
          description: >-
            Apakah alur negosiasi Travel Rule terkelola aktif untuk transaksi
            `travelRule` keluar pada aplikasi ini.
        jurisdiction:
          type: string
          maxLength: 8
          description: >-
            Kode yurisdiksi operasional VASP Anda. Default `"EU"`. Didit
            memetakannya ke rezim yang dicantumkan pada transaksi Travel Rule
            Anda sebagai `travel_rule_regime` (misalnya `EU` atau kode anggota
            UE menjadi `eu`), yang dapat dijadikan acuan oleh aturan transaksi.
            Pelanggan Didit lainnya melihatnya sebagai yurisdiksi Anda di
            direktori VASP setelah jaringan Didit menampilkan profil Anda.
        name_matching_strictness:
          type: string
          enum:
            - NONE
            - STRICT
            - CONTAINS
            - DEFAULT
            - FUZZY
          description: >-
            Seberapa ketat nama penerima harus cocok sebelum transfer dapat
            mencapai COMPLETED. `CONTAINS` menerima nama yang semua katanya
            muncul di nama lainnya.
        confirmation_timeout_hours:
          type: integer
          minimum: 1
          description: >-
            Jumlah jam transfer AWAITING_COUNTERPARTY dapat tetap belum
            dikonfirmasi sebelum sweeper berkala membuatnya kedaluwarsa. Default
            48.
        timeout_outcome:
          type: string
          enum:
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            Hal yang terjadi pada transaksi dasar saat transfer kedaluwarsa.
            Bawaan: HOLD. sunrise_policy dan non_responsive_policy diutamakan
            jika berlaku dan telah diatur.
        threshold_amount:
          type: string
          description: >-
            String desimal, dalam mata uang default aplikasi Anda. Jumlah
            transfer minimum yang memicu pertukaran terkelola; transfer di bawah
            jumlah tersebut langsung diselesaikan menjadi NOT_APPLICABLE. Didit
            membandingkan jumlah transaksi yang dikonversi ke mata uang default
            Anda, atau `amount_in_default_currency` yang Anda kirim; jika tidak
            ada jumlah terkonversi yang tersedia, ambang batas tidak berlaku.
            Default-nya adalah "0.00" (EU TFR tidak menerapkan jumlah minimum).
        ownership_validation_mode:
          type: string
          enum:
            - FULL
            - SIMPLIFIED
            - AUTOMATED
          description: >-
            Seberapa banyak bukti yang diperlukan untuk kepemilikan dompet.
            `FULL` selalu memerlukan bukti (pesan bertanda tangan, deposit uji
            coba, atau tangkapan layar yang ditinjau), tidak pernah hanya dari
            pernyataan pengguna akhir. `SIMPLIFIED` menerima deklarasi mandiri
            di bawah `simplified_validation_threshold` dan bukti di atasnya.
            `AUTOMATED` memungkinkan buku alamat dan bukti sebelumnya menjawab
            sendiri, termasuk deklarasi mandiri selama `allow_self_declaration`
            bernilai true. Default `AUTOMATED`.
        simplified_validation_threshold:
          type: string
          description: >-
            String desimal, default "0.00". Dalam mode `SIMPLIFIED`, transfer di
            bawah jumlah ini (dalam mata uang ambang batas) menerima deklarasi
            mandiri. Transfer tanpa jumlah dalam mata uang tersebut dihitung
            sebagai di atasnya.
        data_sharing_fields:
          $ref: '#/components/schemas/TravelRuleDataSharingFields'
        matching_rules:
          $ref: '#/components/schemas/TravelRuleMatchingRules'
        legal_name:
          type: string
          description: >-
            Nama resmi VASP Anda. Wajib diisi (tidak boleh kosong) untuk
            menetapkan is_enabled ke true.
        lei:
          type: string
          description: Legal Entity Identifier Anda, ditampilkan di direktori VASP.
        compliance_email:
          type: string
          format: email
          description: >-
            Email kontak kepatuhan untuk profil VASP Anda. Jaringan Didit
            mencantumkan profil Anda hanya setelah alamat ini dikonfirmasi
            melalui tautan yang dikirimkan melalui email (POST
            /v3/travel-rule/settings/compliance-email/confirmation/);
            mengubahnya memerlukan konfirmasi baru.
        is_discoverable:
          type: boolean
          description: >-
            Menentukan apakah profil VASP Anda dapat dicantumkan dalam jaringan
            Didit: ditemukan di GET /v3/travel-rule/vasps/ oleh pelanggan Didit
            lainnya dan dijangkau di rail INTERNAL. Pencantuman juga memerlukan
            aplikasi produksi, Travel Rule aktif, nama resmi, dan email
            kepatuhan yang dikonfirmasi; didit_network menyatakan mana yang
            belum lengkap. Nilai defaultnya adalah true.
        inbound_auto_accept:
          type: boolean
          description: >-
            Jika true, inquiry TRP masuk yang dompet penerimanya merupakan entri
            buku alamat terverifikasi dengan nama yang cocok akan disetujui
            secara otomatis. Jika false, inquiry tersebut menunggu dalam status
            ON_HOLD agar Anda menyetujui atau menolaknya dengan endpoint
            kepemilikan. Transfer rail INTERNAL dan transfer setelah deposit
            tidak terpengaruh. Defaultnya true.
        allow_self_declaration:
          type: boolean
          description: >-
            Jika true, widget kepemilikan dompet menawarkan deklarasi mandiri
            sebagai metode bukti cadangan. Defaultnya true.
        allow_screenshot_proof:
          type: boolean
          description: >-
            Jika true, widget kepemilikan dompet menawarkan unggahan tangkapan
            layar sebagai metode bukti kepemilikan. Defaultnya true.
        auto_wallet_verification:
          type: boolean
          description: >-
            Jika true, mengirimkan transfer keluar Travel Rule yang memerlukan
            bukti kontrol dompet oleh pengguna akhir akan secara otomatis
            membuat sesi widget kepemilikan dompet yang terikat pada transaksi
            dan menampilkannya di blok action_required transaksi tersebut.
            Defaultnya true.
        vasp_attribution_enabled:
          type: boolean
          description: >-
            Jika true, transfer keluar Travel Rule yang tidak dapat dirutekan
            oleh rail mana pun diatribusikan melalui analitik blockchain: dompet
            tujuan diidentifikasi ke VASP pemiliknya, entitas tersebut dicatat
            pada transfer dan di direktori VASP, dan rail dijalankan kembali
            satu kali dengan nama yang diatribusikan. Defaultnya true.
        counterparty_screening_enabled:
          type: boolean
          description: >-
            Skrining sanksi dan media negatif opsional (opt-in) untuk VASP pihak
            lawan, ditagihkan per skrining sesuai harga Skrining AML Perusahaan.
            Saat aktif, Didit menyaring pihak lawan yang dijangkau oleh bursa
            pengirim (menggunakan kembali skrining yang berusia kurang dari 30
            hari) dan Anda dapat menyaringnya dengan POST
            /v3/travel-rule/vasps/{vasp_id}/screening/. Default false: tidak ada
            yang diskrining atau ditagihkan.
        sunrise_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            Tindakan yang diambil terhadap transaksi saat transfer kedaluwarsa
            jika pihak lawan adalah entri direktori di yurisdiksi dalam
            sunrise_jurisdictions, yang belum menegakkan Travel Rule: HOLD
            memindahkannya ke peninjauan, REJECT menolaknya, PROCEED membiarkan
            statusnya tidak berubah. Kosong (default) mengikuti timeout_outcome.
            Berlaku sebelum non_responsive_policy.
        sunrise_jurisdictions:
          type: array
          items:
            type: string
          readOnly: true
          description: >-
            Hanya-baca. Negara-negara (ISO 3166 alpha-2) yang diperlakukan Didit
            berada dalam periode sunrise Travel Rule, tempat sunrise_policy
            berlaku. Saat ini CO, KH, dan VN. Yurisdiksi lainnya, serta
            yurisdiksi yang kosong atau tidak dikenal, mengikuti
            timeout_outcome.
        non_responsive_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            Tindakan yang diambil terhadap transaksi saat transfer kedaluwarsa
            jika pihak lawan adalah entri direktori yang tingkat responsifnya
            UNRESPONSIVE: HOLD, REJECT, atau PROCEED, seperti halnya
            timeout_outcome. Kosong (default) mengikuti timeout_outcome.
            sunrise_policy berlaku terlebih dahulu jika keduanya sesuai.
        travel_address:
          type: string
          description: >-
            Hanya-baca. Travel Address milik VASP Anda sendiri - endpoint
            pertanyaan TRP masuk yang telah dienkode yang digunakan VASP lain
            untuk menghubungi Anda. Kosong selama `is_enabled` bernilai false.
        disabled_networks:
          type: array
          items:
            type: string
            enum:
              - GTR
              - TRUST
              - VERIFYVASP
              - SYGNA
          description: >-
            Jaringan memilih keluar dari keanggotaan platform. Tidak
            menonaktifkan keanggotaan Anda sendiri yang terhubung atau
            menyediakan jaringan yang tidak tersedia.
          default: []
        networks:
          type: object
          readOnly: true
          description: >-
            Per jaringan, bagaimana aplikasi ini akan mengirim dan mengapa
            aplikasi ini tidak dapat mengirim. Tidak ada jaringan, termasuk GTR,
            yang disertakan secara default: jaringan dapat dijangkau melalui
            keanggotaan terhubung Anda sendiri, atau melalui keanggotaan Didit
            setelah keanggotaan Didit di jaringan tersebut aktif dan partisipan
            Anda sendiri di dalamnya aktif. Bukan pemeriksaan status atau
            pengiriman langsung.
          properties:
            gtr:
              $ref: '#/components/schemas/TravelRuleNetworkState'
            trust:
              $ref: '#/components/schemas/TravelRuleNetworkState'
            verifyvasp:
              $ref: '#/components/schemas/TravelRuleNetworkState'
            sygna:
              $ref: '#/components/schemas/TravelRuleNetworkState'
        didit_network:
          type: object
          readOnly: true
          description: >-
            Apakah jaringan Didit mencantumkan profil VASP Anda, sehingga
            pelanggan Didit lainnya dapat menemukannya di direktori dan
            menghubunginya melalui jalur INTERNAL, serta setiap ketentuan yang
            belum terpenuhi.
          properties:
            listed:
              type: boolean
            missing:
              type: array
              items:
                type: string
                enum:
                  - travel_rule_off
                  - sandbox_application
                  - not_discoverable
                  - legal_name_missing
                  - compliance_email_missing
                  - compliance_email_unconfirmed
                  - excluded_by_staff
                  - internal_organization
              description: >-
                Kosong saat tercantum. compliance_email_unconfirmed: kirim
                konfirmasi dengan POST
                /v3/travel-rule/settings/compliance-email/confirmation/ dan buka
                tautan yang dikirim melalui email. excluded_by_staff: Didit
                menandai aplikasi sebagai uji coba, demo, atau internal.
            compliance_email_confirmed:
              type: boolean
              description: >-
                Apakah compliance_email saat ini telah dikonfirmasi melalui
                tautan yang dikirimkan melalui email.
    TravelRuleDataSharingFields:
      type: object
      description: >-
        Kolom yang dikirimkan Didit ke VASP pihak lawan tentang pengguna Anda
        sendiri, per jenis entitas. `name` dan `wallet_address` selalu dikirim,
        apa pun isi daftarnya. Jenis entitas yang tidak pernah Anda pilih
        membagikan setiap kolom. Daftar kosong juga merupakan pilihan: daftar
        ini hanya membagikan nama dan dompet.
      properties:
        individual:
          type: array
          items:
            type: string
            enum:
              - name
              - wallet_address
              - address
              - national_id
              - customer_identification
              - date_of_birth
              - place_of_birth
          description: Kolom yang dibagikan tentang individu.
        company:
          type: array
          items:
            type: string
            enum:
              - name
              - wallet_address
              - address
              - national_id
              - customer_identification
          description: Kolom yang dibagikan tentang badan hukum.
    TravelRuleMatchingRules:
      type: object
      description: >-
        Seberapa ketat setiap kolom data pihak lawan dibandingkan dengan data
        yang Anda miliki, per tipe entitas. Kolom yang Anda lewatkan akan tetap
        menggunakan nilai default-nya. `NONE` melewati perbandingan, `STRICT`
        memerlukan kata-kata yang persis sama, `CONTAINS` menerima satu nilai
        yang semua katanya muncul di nilai lainnya, `DEFAULT` adalah pencocokan
        subset standar, dan `FUZZY` menerima ejaan yang mirip (dan, untuk
        tanggal lahir, hari dan bulan yang tertukar).
      properties:
        individual:
          type: object
          description: Aturan untuk orang pribadi.
          properties:
            name:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 'Default: mengikuti `name_matching_strictness`.'
            date_of_birth:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: Default `NONE`.
            address:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: Default `NONE`.
            account:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: >-
                Dompet yang digunakan untuk merutekan pertukaran. Default
                `STRICT`.
        company:
          type: object
          description: Aturan untuk badan hukum.
          properties:
            name:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 'Default: mengikuti `name_matching_strictness`.'
            address:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: Default `NONE`.
            account:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: >-
                Dompet yang digunakan untuk merutekan pertukaran. Default
                `STRICT`.
    TravelRuleNetworkState:
      type: object
      description: >-
        Cara pesan Travel Rule pada satu jaringan akan dikirim untuk aplikasi
        ini, dan alasan pesan tersebut tidak dapat dikirim. Status konfigurasi,
        bukan pemeriksaan status atau pengiriman secara langsung.
      properties:
        rail:
          type: string
          enum:
            - GTR
            - TRUST
            - VERIFYVASP
            - SYGNA
        mode:
          type: string
          enum:
            - own
            - didit
            - 'off'
            - unavailable
          description: >-
            own: keanggotaan terhubung milik aplikasi digunakan; didit:
            keanggotaan Didit membawa aplikasi sebagai partisipan aktifnya
            sendiri; off: perutean platform dinonaktifkan di disabled_networks
            tanpa keanggotaan sendiri; unavailable: belum ada yang dapat
            mengirim di jaringan ini (lihat state dan reason).
        state:
          type: string
          enum:
            - own_membership
            - live_through_didit
            - 'off'
            - didit_onboarding
            - questionnaire_needed
            - questionnaire_in_review
            - request_access
            - request_sent
            - unavailable
            - error
          description: >-
            own_membership: keanggotaan terhubung milik Anda yang mengirim;
            live_through_didit: partisipan Anda sendiri pada keanggotaan Didit
            yang mengirim; off: Anda menonaktifkan perutean platform;
            didit_onboarding: keanggotaan Didit sendiri di jaringan ini belum
            aktif, sehingga belum dapat membawa siapa pun; questionnaire_needed
            / questionnaire_in_review: kuesioner uji tuntas harus dikirimkan
            atau sedang ditinjau oleh Didit; request_access: kuesioner
            disetujui, minta akses ke jaringan; request_sent: partisipan Anda
            sedang dalam proses onboarding; unavailable: lihat reason; error:
            lihat reason.
        reason:
          type: string
          enum:
            - own_membership_connected
            - platform_network_switched_off
            - own_membership_only
            - sandbox_application
            - didit_membership_not_live
            - participant_suspended
            - participant_rejected
            - questionnaire_not_submitted
            - questionnaire_submitted
            - questionnaire_changes_requested
            - questionnaire_rejected
            - participant_not_requested
            - participant_active
            - participant_key_missing
            - participant_key_unresolved
            - provisioning_failed
            - questionnaire_pending
            - submitted_to_network
          description: >-
            Detail status yang dapat dibaca mesin. own_membership_only: Didit
            tidak memiliki aplikasi di jaringan ini (TRUST), hubungkan
            keanggotaan Anda sendiri; sandbox_application: transfer sandbox
            tidak pernah mencapai jaringan; provisioning_failed: jaringan
            menolak registrasi, last_error partisipan menjelaskan alasannya dan
            permintaan ke jaringan lagi akan mencoba kembali.
        platform_available:
          type: boolean
          description: >-
            Menentukan apakah keanggotaan Didit sendiri di jaringan ini telah
            dikonfigurasi; bukan pemeriksaan status langsung.
        connected:
          type: boolean
          description: >-
            Menentukan apakah keanggotaan pelanggan yang terhubung ada.
            Kredensial divalidasi secara lokal; validasi jaringan terjadi pada
            pertukaran langsung.
        participant:
          $ref: '#/components/schemas/TravelRuleNetworkParticipantSummary'
        vasps_reachable:
          type: integer
          description: VASP direktori yang dapat dijangkau di jaringan ini.
        routed_30d:
          type: integer
          description: >-
            Transfer milik aplikasi ini yang dilakukan pada jaringan ini dalam
            30 hari terakhir.
    TravelRuleNetworkParticipantSummary:
      type: object
      nullable: true
      description: >-
        Partisipan milik aplikasi ini pada jaringan tersebut, atau null jika
        tidak ada.
      properties:
        mode:
          type: string
          enum:
            - platform
            - own
          description: >-
            platform: dibawa oleh keanggotaan Didit; own: di-onboard di bawah
            keanggotaan aplikasi itu sendiri.
        status:
          type: string
          enum:
            - not_requested
            - questionnaire_pending
            - submitted_to_network
            - active
            - suspended
            - rejected
          description: >-
            not_requested: tidak pernah diminta, atau jaringan menolak
            permintaan pertama (lihat last_error); questionnaire_pending:
            menunggu kuesioner uji tuntas disetujui; submitted_to_network:
            diserahkan ke proses onboarding jaringan; active: jaringan
            memberikan kode partisipan tersendiri untuk aplikasi ini; suspended
            / rejected: Didit menangguhkan atau menolaknya.
        participant_code:
          type: string
          description: >-
            Kode yang diberikan jaringan untuk aplikasi ini (untuk GTR, kode
            VASP-nya). Pesan keluar memuat kode ini, bukan kode milik Didit.
        requested_at:
          type: string
          format: date-time
          nullable: true
        activated_at:
          type: string
          format: date-time
          nullable: true
        last_error:
          type: string
          description: Jawaban jaringan saat menolak pendaftaran; kosong jika tidak.
  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.