Langsung ke konten utama
PATCH
curl

Otorisasi

x-api-key
string
header
wajib

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.

Parameter Path

transaction_id
string<uuid>
wajib

UUID transaksi yang stabil dari Didit yang memiliki transfer tersebut.

Body

application/json

Sediakan tepat salah satu dari: payment_txn_id (finish), action=cancel, action=resend, action=update_compliance_email dengan compliance_email, action=update_originator_wallet dengan wallet_address, atau action=beneficiary_vasp dengan beneficiary_vasp.

payment_txn_id
string

Hash transaksi on-chain. Mengharuskan transfer berupa transfer keluar dengan status COMPLETED.

action
enum<string>

"cancel" membatalkan transfer non-terminal. "resend" menjalankan ulang perutean untuk transfer keluar yang tertahan di COUNTERPARTY_VASP_NOT_FOUND, COUNTERPARTY_VASP_NOT_REACHABLE, atau NOT_ENOUGH_COUNTERPARTY_DATA. "update_compliance_email" mengganti email kepatuhan yang menjadi tujuan permintaan, pada transfer keluar di salah satu dari tiga status tersebut; kirim "resend" setelahnya. "update_originator_wallet" mencatat dompet tempat dana sebenarnya keluar (wallet_address, memo). "beneficiary_vasp" menentukan sendiri VASP pihak lawan (memerlukan beneficiary_vasp) untuk transfer keluar di salah satu status tersebut: transfer akan dirutekan ke VASP tersebut dan dikirim lagi.

Opsi yang tersedia:
cancel,
resend,
update_compliance_email,
update_originator_wallet,
beneficiary_vasp
compliance_email
string<email>

Wajib diisi dengan action: update_compliance_email. Disimpan sebagai beneficiary_data.counterparty_vasp_email transfer ini: data ini hanya milik transfer ini dan tidak dimasukkan ke entri direktori atau daftar kontak mana pun.

Maximum string length: 254
wallet_address
string

Dengan action: update_originator_wallet: dompet asal dana keluar. Ketika input UTXO transfer diketahui, dompet tersebut harus merupakan salah satunya.

Maximum string length: 128
memo
string

Dengan action: update_originator_wallet: memo atau tag dompet pada jaringan memo. Opsional.

Maximum string length: 256
beneficiary_vasp
string<uuid>

Wajib diisi dengan action=beneficiary_vasp: id dari VASP direktori, dari GET /v3/travel-rule/vasps/. Pilihan Anda lebih diutamakan daripada setiap langkah penemuan otomatis, yang tidak akan pernah menimpanya.

Respons

Transfer yang diperbarui. Setelah update_compliance_email, statusnya tidak berubah dan mempertahankan reason: email_undeliverable hingga resend berikutnya.

Objek transfer lengkap yang dikembalikan oleh endpoint konfirmasi kepemilikan dan penyelesaian/pembatalan. Selama kepemilikan dompet transfer masuk belum dikonfirmasi, originator_data dan beneficiary_data pihak lawan akan dikembalikan dalam kondisi disamarkan (huruf pertama dari setiap kata dipertahankan; dompet, blockchain, dan perutean VASP tetap dapat dibaca) dan data_masked bernilai true.

uuid
string<uuid>
status
enum<string>
Opsi yang tersedia:
AWAITING_COUNTERPARTY,
ON_HOLD,
COMPLETED,
FINISHED,
CANCELLED,
EXPIRED,
COUNTERPARTY_MISMATCHED_DATA,
COUNTERPARTY_VASP_NOT_FOUND,
COUNTERPARTY_VASP_NOT_REACHABLE,
UNCONFIRMED_OWNERSHIP,
COUNTERPARTY_VASP_GENERAL_DECLINE,
NOT_ENOUGH_COUNTERPARTY_DATA,
NOT_APPLICABLE
direction
enum<string>
Opsi yang tersedia:
INBOUND,
OUTBOUND
rail
enum<string> | null

Jalur yang digunakan untuk merutekan transfer, atau null ketika tidak ada jalur yang dipilih (misalnya di bawah ambang batas, dompet pihak lawan swakelola, registrasi setelah deposit, atau tidak ada pihak lawan yang dapat dijangkau). INTERNAL berarti kedua belah pihak adalah aplikasi Didit; EMAIL berarti pihak lawan dijangkau melalui tautan pengambilan yang dikirim lewat email. TEST_VASP berarti Test VASP Didit merespons transfer sandbox. Melalui GTR, VERIFYVASP, dan SYGNA, Didit membaca jawaban pihak lawan dari respons jaringan atau dengan melakukan polling setiap 5 menit. TRUST hanya mengirim, sehingga transfer TRUST tetap berstatus AWAITING_COUNTERPARTY hingga kedaluwarsa. Jalur jaringan hanya digunakan ketika Anda telah menghubungkan keanggotaan Anda sendiri untuk jaringan tersebut. Jalur dipilih setelah pembuatan transaksi menghasilkan respons, sehingga nilainya null dalam respons tersebut.

Opsi yang tersedia:
INTERNAL,
TRP,
GTR,
TRUST,
VERIFYVASP,
SYGNA,
EMAIL,
TEST_VASP,
null
protocol
string | null
ivms_version
string
Contoh:

"ivms101.2023"

required
boolean
ownership_confirmed
boolean | null
deadline_at
string<date-time> | null
timeline
object[]
counterparty_vasp
object | null
originator_data
object

Pihak pengirim. Untuk transfer masuk, nilai pihak lawan disamarkan sampai kepemilikan dikonfirmasi.

beneficiary_data
object

Pihak penerima. Untuk transfer masuk, nilai pihak lawan disamarkan hingga kepemilikan dikonfirmasi.

name_match
object · null · null

Perbandingan nama yang menentukan transfer, atau null hingga perbandingan dijalankan. Saat para pihak disamarkan, dan pada salinan pertukaran INTERNAL milik pelanggan lain, transfer_name, compared_name, matched_names, dan mismatched_names disembunyikan. score dan matched bisa tidak sejalan: matched mengikuti tingkat ketatnya, sedangkan score adalah kesamaan dari kedua nama lengkap tersebut.

data_match
object | null

Perbandingan kolom demi kolom antara data pihak transfer dan apa yang diketahui pihak lain tentang pemegang dompet. Ini menyebutkan kolom dan hasil, tidak pernah nilai, sehingga tetap dapat dibaca sementara data pihak lawan disamarkan. Bernilai null sampai perbandingan dijalankan.

mismatched_fields
string[]

Pintasan untuk data_match.mismatched_fields. Kosong jika tidak ada perbedaan.

data_unmasked
object | null

Catatan audit saat data pihak lawan dibuka penyamarannya. Bernilai null selama data masih disamarkan, dan untuk transfer keluar.

data_masked
boolean

True selama data pribadi pihak lawan disamarkan dalam respons ini.

created_at
string<date-time>
delivery
object | null

Status pesan terbaru yang harus dikirimkan transfer ini ke pihak lain. Bernilai null jika transfer tidak pernah diharuskan mengirimkannya (misalnya di bawah threshold_amount, dompet swakelola yang dideklarasikan, atau registrasi sunrise).

discovery
object[]

Cara Didit mencari pihak lawan, satu entri per langkah yang dijalankan. Kosong jika tidak ada penemuan yang dijalankan, misalnya pada transfer masuk.

reason
string

Alasan transfer COUNTERPARTY_VASP_NOT_FOUND atau COUNTERPARTY_VASP_NOT_REACHABLE tertahan; "" untuk status lainnya. Pengiriman yang gagal menentukannya terlebih dahulu, hanya pada COUNTERPARTY_VASP_NOT_REACHABLE: email_undeliverable (penyedia email menolak email kepatuhan dan tidak ada alamat tersisa untuk dicoba: saat dikirim, pada pengingat, atau sebagai pantulan permanen yang dilaporkan kemudian) atau delivery_failed (jalur pengiriman gagal total: jalur jaringan menolak pesan atau kehabisan percobaan coba lagi, host identitas TRP tidak menjawab, atau host TRP pihak lawan tidak menerima permintaan informasi). Jika tidak, jejak discovery yang menentukannya: awaiting_end_user (tidak ada langkah yang menyebutkan pihak lawan yang dapat dijangkau Didit), directory_match_no_route (suatu langkah menyebutkan VASP direktori yang tidak memiliki rute), picked_member_without_proven_wallet (pengguna akhir memilih pelanggan Didit yang belum membuktikan kendali atas dompet), atau no_directory_match saat jejak tidak memberikan alasan lain. Pengiriman ulang akan memajukan transfer, sehingga alasannya dihapus. Lihat Mengapa transfer tertahan.

next_actions
object[]

Apa yang melanjutkan transfer; [] untuk status apa pun selain COUNTERPARTY_VASP_NOT_FOUND atau COUNTERPARTY_VASP_NOT_REACHABLE. email_undeliverable menawarkan update_compliance_email, lalu resend. delivery_failed menawarkan resend. Alasan penemuan menawarkan select_counterparty_vasp, declare_self_hosted, add_vasp_hint, dan resend.

chain_details
object

Bagaimana rantai transfer menamai kedua dompetnya, ketika melibatkan lebih dari satu alamat yang membayar satu sama lain. Kosong ({}) untuk transfer rantai akun (EVM, Solana, Tron), di mana kedua alamat tersebut adalah dompetnya. Pencocokan, perutean, dan buku alamat membaca dompet dari sini terlebih dahulu.

Terakhir diubah pada 7 November 2026