Didit menukarkan data Aturan Perjalanan dan menyaring dompet pihak lawan pada panggilan transaksi /v3/ yang sama. Payload IVMS-101, $0.17 per transfer terkelola, 500 verifikasi gratis setiap bulan.
Dipercaya oleh 2.000+ organisasi di seluruh dunia.
Apa yang diwajibkan Aturan Perjalanan
Kirim identitas. Saring dompet. Panggilan yang sama.
Setiap VASP yang diatur berutang kedua bagian pada setiap transfer — paket IVMS-101
untuk VASP pihak lawan, penyaringan risiko on-chain untuk dirinya sendiri. Didit mengirimkannya
sebagai satu panggilan API Transaksi: $0.17 terkelola, $0.04 dengan Bring Your Own
Key pada penyedia dompet. 500 verifikasi gratis setiap bulan.
Cara kerjanya
Dari pendaftaran hingga pengguna terverifikasi dalam empat langkah.
Langkah 01
Buat alur kerja
Pilih pemeriksaan yang Anda inginkan — ID, keaktifan, pencocokan wajah, sanksi, alamat, usia, telepon, email, pertanyaan khusus. Seret ke dalam alur di dasbor, atau posting alur yang sama ke API kami. Buat cabang berdasarkan kondisi, jalankan tes A/B, tidak perlu kode.
Langkah 02
Integrasikan
Sematkan secara native dengan SDK Web, iOS, Android, React Native, atau Flutter kami. Arahkan ke halaman yang di-hosting. Atau cukup kirim tautan kepada pengguna Anda — melalui email, SMS, WhatsApp, di mana saja. Pilih yang sesuai dengan tumpukan Anda.
Langkah 03
Pengguna melalui alur
Didit meng-host kamera, isyarat pencahayaan, serah terima seluler, dan aksesibilitas. Saat pengguna dalam alur, kami menilai 200+ sinyal penipuan secara real time dan memverifikasi setiap bidang terhadap sumber data otoritatif. Hasil dalam waktu kurang dari dua detik.
Langkah 04
Anda menerima hasilnya
Webhook yang ditandatangani secara real-time menjaga database Anda tetap sinkron saat pengguna disetujui, ditolak, atau dikirim untuk ditinjau. Lakukan polling API sesuai permintaan. Atau buka konsol untuk memeriksa setiap sesi, setiap sinyal, dan mengelola kasus sesuai keinginan Anda.
Dibangun untuk Aturan Perjalanan · Harga seperti infrastruktur
Satu panggilan. Paket IVMS-101 + pemeriksaan dompet. $0.17.
Transfer kripto yang diatur bukanlah satu pemeriksaan — ini adalah resep. Alihkan setiap modul per alur kerja, tukar penyedia layar dompet Anda sendiri melalui Bring Your Own Key untuk turun menjadi $0.04 per transfer.
Bidang originator dan penerima diisi dari KYC yang terverifikasi. Diformat otomatis ke InterVASP Messaging Standard 101 — skema yang dibaca oleh setiap protokol Aturan Perjalanan utama.
EU TFR (tanpa minimum), US FinCEN ($3,000), UK FCA (£1,000), MAS (SGD 1,500), FINMA (CHF 1,000), VARA (AED 3,500). Satu alur kerja per yurisdiksi; beralih melalui metadata sesi.
Satu alur kerja per yurisdiksi; beralih melalui metadata sesi.
03 · Interoperabilitas protokol
Setiap protokol Travel Rule. Satu kontrak.
TRP, Sumsub Travel Rule, Notabene, Veriscope, OpenVASP, Shyft — semuanya dapat dijangkau melalui payload IVMS-101 yang sama. Pilih satu jaringan atau terima semua; satu kontrak, satu faktur.
Tidak ada VASP pihak lawan untuk bertukar — Didit mengumpulkan identitas penerima dari pengguna, menjalankan tantangan tanda bukti kontrol di atas ambang batas uji tuntas yang ditingkatkan UE, menyaring dompet tujuan, menyimpan catatan format IVMS.
Tantangan tanda bukti kontrol untuk uji tuntas yang ditingkatkan.
05 · Layar dompet di samping aturan
Travel Rule + penyaringan dompet. Panggilan yang sama.
$0.02 dasar pemantauan transaksi + $0.15 Penyaringan Dompet terkelola = $0.17 per transfer. Dengan Bring Your Own Key pada penyedia dompet, penyaringan dompet turun menjadi $0.02 — total $0.04.
$0.02 dasar + $0.15 layar dompet terkelola$0.04 dengan BYOK
06 · Paket bukti per transfer
Satu paket per transfer. Masuk ke audit.
Payload IVMS-101, putusan layar dompet, atribusi VASP pihak lawan, stempel waktu HMAC yang ditandatangani. Disimpan di UE. Disimpan 5 tahun secara default; dapat diperpanjang sesuai panduan pengawas.
Paket IVMS-101 + penyaringan dompet berjalan di sisi server. Tidak ada panggilan kedua.dokumen →
Integrasi siap agen
Kirim alur Travel Rule dalam satu perintah.
Tempelkan ke Claude Code, Cursor, Codex, Devin, Aider, atau Replit Agent. Isi tumpukan Anda. Agen membangun alur kerja, mengisi bidang IVMS dari sesi KYC, menjalankan penyaringan dompet, dan menghubungkan webhook.
didit-integration-prompt.md
You are integrating Didit into a Virtual Asset Service Provider (VASP) / Crypto-Asset Service Provider (CASP) to satisfy the Travel Rule on every crypto transfer. Two obligations:
1. Verify the user (KYC) — identity, liveness, face match, device + IP, AML. The originator data on every outbound transfer comes from this verified profile.
2. Submit each transfer with originator + beneficiary fields (IVMS-101) AND screen the counterparty wallet — one /v3/transactions/ call.
Bundle pricing (verified live 2026-05-16):
- User Verification (KYC) bundle: $0.33 per user (Sessions API)
- Transactions API call: $0.02 base + $0.15 managed wallet screen = $0.17 per managed transfer
- With Bring Your Own Key (BYOK) on the wallet provider: $0.04 per transfer ($0.02 + $0.02)
- First 500 verifications free every month, forever
PRE-REQUISITES
- Production API key from https://business.didit.me (sandbox key in 60 seconds, no credit card).
- Webhook endpoint with HMAC SHA-256 verification of the X-Signature-V2 header.
HMAC-SHA256 verification MUST run against the raw body bytes (the raw payload as Didit sent it) BEFORE any JSON parsing — re-serialising the parsed body changes whitespace and key order, which invalidates the signature. - A workflow_id from the no-code Workflow Builder with ID Verification + Passive Liveness + Face Match 1:1 + Device & IP Analysis + AML Screening.
- Transaction Monitoring + Wallet Screening enabled in the Business Console (Transactions > Settings).
STEP 1 — Verify the user with the Sessions API (one-time onboarding)
POST https://verification.didit.me/v3/session/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body:
{
"workflow_id": "<wf id with KYC + AML modules>",
"vendor_data": "<your user id>",
"callback": "https://<your-app>/casp/onboard/callback",
"metadata": {
"purpose": "casp_onboarding"
}
}
Response: 201 Created with the hosted session URL. Sub-2-second median verdict on completion.
STEP 2 — Read the signed webhook on KYC completion
Status enum (exact case): Approved | Declined | In Review | Resubmitted | Expired | Not Finished | Kyc Expired | Abandoned.
Verify the X-Signature-V2 header BEFORE reading the body.
Capture the user's full name, date of birth, address, and any registered identity-document number from the decision payload. These fields populate the IVMS-101 originator block on every subsequent transfer.
STEP 3 — Submit every transfer with IVMS-101 + wallet screen in one call
POST https://verification.didit.me/v3/transactions/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body (required fields verified live 2026-05-16):
{
"transaction_id": "<your internal transfer reference>",
"transaction_category": "finance",
"include_crypto_screening": true,
"transaction_details": {
"direction": "OUTBOUND",
"amount": "0.45",
"currency": "ETH",
"currency_kind": "crypto",
"action_type": "transfer"
},
"subject": {
"entity_type": "individual",
"vendor_data": "<your user id>",
"full_name": "<originator name from KYC>",
"address": "<originator address from KYC>",
"dob": "<originator dob from KYC, YYYY-MM-DD>"
},
"counterparty": {
"entity_type": "individual",
"full_name": "<beneficiary name>",
"address": "<beneficiary address if known>",
"payment_method": {
"method_type": "crypto_wallet",
"account_id": "<counterparty wallet address>"
}
}
}
REQUIRED fields the API rejects if missing:
- subject.vendor_data + subject.full_name
- counterparty.full_name
- transaction_details.direction + currency + currency_kind + amount
- counterparty.payment_method.account_id (the wallet address)
Didit packages the subject + counterparty fields into an IVMS-101 payload, hands them off to the connected Travel Rule protocol (TRP / Sumsub TR / Notabene / Veriscope), runs Wallet Screening on the counterparty address server-side, and returns one verdict.
Response shape (excerpted from a real successful 201):
{
"uuid": "<server transaction uuid>",
"txn_id": "<your transaction_id echoed back>",
"status": "APPROVED",
"score": 0,
"severity": null,
"travel_rule": { "status": "EXCHANGED", "protocol": "<network>", "ivms_packet_id": "<id>" },
"props": {
"wallet_risk_score": 0,
"sanctions_hit": false,
"aml_provider": "<provider slug>",
"aml_screening_type": "WALLET_SCREENING",
"aml_screening_status": "COMPLETED"
},
"cost_breakdown": {
"total_price": 0.17,
"items": [
{ "usage_type": "transaction_aml_monitoring", "price": 0.15 },
{ "usage_type": "transaction_monitoring", "price": 0.02 }
]
}
}
Transaction status enum (exact case, UPPER_SNAKE_CASE): APPROVED | IN_REVIEW | DECLINED | AWAITING_USER.
Wallet-screen severity (UPPER): LOW | MEDIUM | HIGH | CRITICAL | UNKNOWN.
Branch logic:
APPROVED → release the crypto.
IN_REVIEW → hold the transfer, route to analyst queue.
DECLINED → refuse the transfer, log the IVMS attempt for the audit.
AWAITING_USER → redirect the user to the remediation URL on the response.
STEP 4 — Inbound transfers: ingest the counterparty's IVMS packet
When you RECEIVE a transfer from another VASP:
- The connected Travel Rule protocol delivers the originator IVMS data to you BEFORE the on-chain transfer settles.
- Submit it via the same POST /v3/transactions/ with direction: "INBOUND" and the originator fields on subject and your own beneficiary on counterparty.
- Wallet Screening runs on the originator wallet (subject.payment_method.account_id).
- Verdict drives whether to credit the user.
STEP 5 — Self-hosted (unhosted) wallet transfers
For transfers TO a self-hosted wallet (no counterparty VASP to exchange with):
- Collect the beneficiary identity from the user via a custom questionnaire ($0.10).
- Above local enhanced-due-diligence thresholds, prompt the user to sign a short message with the beneficiary wallet's private key as proof of control.
- Submit the transaction with the captured beneficiary fields + wallet address.
- Didit still runs Wallet Screening on the destination and stores the IVMS-format record for the audit.
STEP 6 — Continuous AML on the user is automatic
Every approved user is re-screened daily against 1,300+ sanctions, PEP, and adverse-media lists. There is NO separate endpoint to call. When a previously-clean user crosses an AML threshold, the session status updates and a signed webhook fires.
WEBHOOK EVENT NAMES
- Sessions: status changes flow through the standard session webhook.
- Transactions: transaction.created · transaction.updated · transaction.status.changed · transaction.alert.generated.
Verify X-Signature-V2 on every payload.
CONSTRAINTS
- Session statuses Title Case With Spaces; transaction statuses UPPER_SNAKE_CASE. Don't mix.
- EU Transfer of Funds Regulation has NO de minimis threshold for crypto — every transfer carries originator + beneficiary data.
- US Travel Rule kicks in at $3,000; UK at £1,000; Singapore at SGD 1,500; Switzerland at CHF 1,000. Apply per-workflow.
- Default record retention is 5 years post-transfer per most AML regimes; extensible per supervisor guidance.
- Wallet Screening MUST run BEFORE the crypto leaves — a post-transfer screen is useful for audit but useless for blocking.
Read the docs:
- https://docs.didit.me/transaction-monitoring/overview
- https://docs.didit.me/transaction-monitoring/transactions
- https://docs.didit.me/transaction-monitoring/aml-screening
- https://docs.didit.me/sessions-api/create-session
- https://docs.didit.me/integration/webhooks
Start free at https://business.didit.me — sandbox key in 60 seconds, 500 verifications free every month, no credit card.
Butuh lebih banyak konteks? Lihat dokumen modul lengkapnya.docs.didit.me →
Sesuai dengan desain
Buka negara baru dalam satu klik. Kami melakukan pekerjaan sulit.
Kami membuka anak perusahaan lokal, mengamankan lisensi, menjalankan tes penetrasi, mendapatkan sertifikasi, dan menyelaraskan dengan setiap peraturan baru. Untuk mengirim verifikasi di negara baru, cukup aktifkan tombol. 220+ negara aktif, diaudit dan diuji penetrasi setiap kuartal — satu-satunya penyedia identitas yang secara resmi disebut oleh pemerintah negara anggota UE lebih aman daripada verifikasi langsung.
Per transfer terkelola — Basis Pemantauan Transaksi + Penyaringan Dompet.
0+
Sanksi, Tokoh Politik Penting (PEP), dan daftar media yang merugikan disaring pada setiap pengguna.
0+
Protokol Travel Rule yang dapat dioperasikan pada payload IVMS-101 yang sama — TRP, Sumsub TR, Notabene, Veriscope, OpenVASP, Shyft.
0
Verifikasi gratis setiap bulan, di setiap akun.
Tiga tingkatan, satu daftar harga
Mulai gratis. Bayar sesuai penggunaan. Skala ke Enterprise.
500 verifikasi gratis setiap bulan, selamanya. Bayar sesuai penggunaan untuk produksi. Kontrak khusus, residensi data, dan SLA (Service Level Agreements) di Enterprise.
Gratis
Gratis
$0 / bulan. Tidak perlu kartu kredit.
Paket KYC gratis (Verifikasi ID + Keaktifan Pasif + Pencocokan Wajah + Analisis Perangkat & IP) — 500 / bulan, setiap bulan
Pengguna yang Diblokir
Deteksi Duplikat
200+ sinyal penipuan di setiap sesi
KYC yang dapat digunakan kembali di seluruh jaringan Didit
Platform Manajemen Kasus
Pembuat Alur Kerja
Dokumen publik, sandbox, SDK, server MCP (Model Context Protocol)