Kategori transaksi
Setiap transaksi memilikitransaction_category yang menentukan bagaimana aturan dan analitik menangani transaksi tersebut:
Detail transaksi
Objektransaction_details memuat data keuangan:
Subjek dan pihak lawan
Setiap transaksi memiliki subjek (wajib) dan pihak lawan (opsional). Keduanya menggunakan model pihak yang sama:
Didit menurunkan
country_code pihak dari address.country ketika address berupa objek. Ketika address berupa string, country_code dikembalikan sebagai null pada pihak tersebut.
Ketika vendor_data cocok dengan pengguna atau bisnis yang sudah ada, Didit secara otomatis menautkan transaksi ke profil entitas tersebut, sehingga memungkinkan evaluasi aturan lintas sesi dan pemeriksaan frekuensi transaksi.
Dalam respons, kedua pihak dikembalikan dalam array parties dengan peran APPLICANT dan COUNTERPARTY.
Metode pembayaran
Lampirkanpayment_method ke setiap pihak untuk menjelaskan instrumen di sisi tersebut:
Pada transaksi
travelRule, metode pembayaran pihak lawan dengan method_type: "unhosted_wallet" (alias type) menyatakan dompet pihak lawan sebagai dompet swakelola.
Ketika Travel Rule diaktifkan dan jumlahnya, dalam mata uang default aplikasi Anda, tidak berada di bawah threshold_amount, transfer langsung masuk ke UNCONFIRMED_OWNERSHIP dan alur pembuktian kepemilikan, lihat Dompet swakelola yang dideklarasikan.
Untuk transaksi kripto, sertakan alamat di account_id dan atur currency_kind ke crypto agar skrining blockchain dapat berjalan otomatis. Arah transaksi menentukan dompet mana yang diskrining: skrining inbound pra-transfer menggunakan dompet pengirim di counterparty.payment_method.account_id; skrining outbound menggunakan dompet tujuan di counterparty.payment_method.account_id. Jika Anda mengirim hash blockchain di transaction_details.payment_reference_id, skrining transaksi inbound memerlukan alamat deposit layanan Anda di subject.payment_method.account_id, sedangkan skrining transaksi outbound memerlukan dompet tujuan di counterparty.payment_method.account_id.
Penggantian skrining kripto
Gunakaninclude_crypto_screening di tingkat atas permintaan untuk mengganti default yang dikonfigurasi di Transactions > Settings pada Console:
Konteks perangkat
Sertakan informasi perangkat pada subjek (dan secara opsional pada pihak lawan) agar aturan intelijen perangkat dapat berjalan. Kolom permintaan adalahdevice_context pada setiap pihak. Alias camelCase device juga diterima dan merupakan format pengiriman yang digunakan SDK. Respons mengembalikannya sebagai device pada setiap pihak dalam array parties.
browser_family dan platform tidak diturunkan dari user_agent. Keduanya harus dikirim sebagai kunci tingkat atas yang eksplisit di dalam device_context agar aturan intelijen perangkat dapat aktif. Jika Anda menggunakan SDK Didit, kedua kolom ini dikumpulkan secara otomatis.userAgent, browserFamily, browserVersion, osFamily, osVersion, acceptLang, sessionId, sessionAgeMs. Sub-objek network_context menerima alias ip / countryCode3 / lat / lon, dan blok ipInfo tingkat atas juga digabungkan ke dalam network_context.
Konteks perangkat memungkinkan aturan seperti deteksi multi-akun (fingerprint yang sama pada subjek yang berbeda), deteksi kombinasi browser baru dan IP baru, transfer bernilai tinggi dengan usia sesi yang rendah, serta penilaian risiko berbasis lokasi.
Properti khusus
Tambahkan pasangan kunci-nilai tambahan apa pun dalam objekcustom_properties. Aturan dapat merujuk kolom ini dalam kondisinya. Fitur ini berguna untuk meneruskan konteks khusus bisnis, seperti kategori produk, ID merchant, atau saluran.
custom_values.<key>. Misalnya, payload di atas cocok dengan custom_values.product_category eq "electronics". Di pembuat aturan Console, kunci yang muncul pada transaksi yang baru diterima akan tampil di pemilih kolom kondisi di bawah Properti khusus. Masukkan properti kustom dalam grup yang sama memungkinkan Anda mengetik kunci apa pun secara manual (peka huruf besar/kecil). Lihat Aturan & penilaian untuk detailnya.
Contoh permintaan
Respons
API mengembalikan transaksi yang dibuat beserta hasil evaluasi awalnya:
Lihat Referensi API untuk skema permintaan dan respons lengkap, serta referensi skema respons untuk penelusuran payload beranotasi.
Tetapkan transaksi ke peninjau
Tetapkan transaksi yang ditahan kepada anggota aplikasi Anda, atau batalkan penugasannya, dengan kunci API yang memiliki izinwrite:transactions.
Setiap perubahan dicatat di linimasa transaksi sebagai TRANSACTION_ASSIGNED.
Kedua panggilan menerima
assignee_email, yaitu email anggota aplikasi yang telah masuk ke Didit.
Kirim null atau string kosong untuk membatalkan penugasan.
Panggilan massal juga menerima transaction_ids, yaitu daftar 1 hingga 500 UUID transaksi.
uuid, transaction_number, assignee, dan changed (false jika transaksi sudah ditugaskan kepada anggota ini), atau 404 jika transaksi tidak ada di aplikasi.
Panggilan massal mengembalikan transactions (satu entri seperti di atas), updated_count, dan not_found_transaction_ids.
Filter daftar transaksi dengan assignee, yaitu daftar yang dipisahkan koma di mana nilai apa pun cocok: me, unassigned, rules (diputuskan oleh aturan saja, tanpa melibatkan peninjau), atau email anggota.
Idempotensi
txn_id (transaction_id yang Anda kirim) unik untuk setiap aplikasi.
Mengirim ulang transaction_id yang sudah ada akan mengembalikan 400 dengan A transaction with this transaction_id already exists. pada kolom transaction_id, dan dua permintaan identik yang berjalan bersamaan akan membuat permintaan kedua menerima 409.
Kedua respons tersebut tidak mengembalikan transaksi yang sudah ada.
Untuk mencoba ulang dengan aman, perlakukan 400 atau 409 untuk transaction_id duplikat sebagai “sudah dibuat” dan cari transaksi yang sudah ada, alih-alih mengirim ulang: baca transaksinya dengan GET /v3/transactions/{uuid}/ menggunakan uuid dari respons pertama, atau gunakan transaction_id (uuid Didit) yang dibawa oleh webhook transaction.created di samping txn_id Anda.
Selalu hasilkan txn_id di sisi Anda (misalnya ID DB transaksi Anda sendiri, UUID, atau hash deterministik).
Pengisian data historis
Teruskantxn_date yang berisi tanggal di masa lalu untuk mengimpor transaksi historis. Aturan tetap dievaluasi secara default. Gunakan impor CSV di konsol dengan mode dry-ingest jika Anda ingin melewati evaluasi aturan selama pemuatan data historis dalam jumlah besar. Lihat panduan integrasi.
Langkah berikutnya
Aturan & penilaian
Cara transaksi yang dikirim dievaluasi terhadap aturan.
Skema respons
Payload respons lengkap dengan anotasi.
Skrining kripto
Skrining otomatis dompet dan transaksi untuk transaksi kripto.
Travel Rule
Lampirkan data kepatuhan Travel Rule ke transfer aset virtual.
Pengayaan IP
Konteks yang berasal dari IP tersedia untuk aturan.
Referensi API
Skema permintaan lengkap untuk endpoint Create Transaction.