Autentikasi Biometrik ($0.10) ditambah Analisis Perangkat & IP ($0.03) menghadirkan dua faktor SCA kelas PSD3 dalam satu prompt. Tahan phishing. Pengganti drop-in untuk SMS one-time-password.
Dipercaya oleh 2.000+ organisasi di seluruh dunia.
Kenapa SMS OTP akan pensiun
Anti-SIM-swap. Anti-phishing. $0.13 per autentikasi.
PSD3 akan menghapus SMS one-time-password sebagai faktor Strong Customer Authentication.
SCA biometrik terikat perangkat dari Didit bisa memblokir SIM-swap, phishing real-time,
dan intersepsi SS7, dengan biaya $0.13 per otentikasi, verifikasi kurang dari dua detik,
dan siap untuk dynamic-linking. Gratis 500 verifikasi setiap bulan.
Cara kerjanya
Dari pendaftaran sampai pengguna terverifikasi dalam empat langkah.
Langkah 01
Buat workflow-nya
Pilih pemeriksaan yang kamu mau, ID, liveness, face match, sanksi, alamat, usia, telepon, email, pertanyaan kustom. Seret ke dalam alur di dashboard, atau post alur yang sama ke API kami. Buat cabang berdasarkan kondisi, jalankan A/B test, tanpa perlu coding.
Langkah 02
Integrasikan
Integrasikan secara native dengan SDK Web, iOS, Android, React Native, atau Flutter kami. Redirect ke halaman yang di-host. Atau cukup kirim link ke pengguna, via email, SMS, WhatsApp, di mana saja. Pilih yang paling cocok dengan stack kamu.
Langkah 03
Pengguna melewati alur
Didit mengelola kamera, isyarat pencahayaan, hand-off mobile, dan aksesibilitas. Saat pengguna dalam alur, kami menilai 200+ sinyal fraud secara real time dan memverifikasi setiap field terhadap sumber data otoritatif. Hasilnya kurang dari dua detik.
Langkah 04
Kamu menerima hasilnya
Webhook terenkripsi real-time menjaga database kamu tetap sinkron saat pengguna disetujui, ditolak, atau dikirim untuk ditinjau. Poll API sesuai permintaan. Atau buka konsol untuk memeriksa setiap sesi, setiap sinyal, dan kelola kasus sesuai keinginanmu.
Dibuat untuk SCA · Harga seperti infrastruktur
Dua faktor. Satu prompt. $0.13 per otentikasi.
Strong Customer Authentication yang sesungguhnya bukan cuma satu pemeriksaan, ini adalah resep. Atur pengecualian per workflow. Tingkatkan ke hardware key berdasarkan sinyal risiko. Tanpa perlu redeploy.
Inherence (Passive Liveness + Face Match 1:1) ditambah possession (perangkat terikat pengguna). Standar PSD3 secara default. Faktor pengetahuan (PIN, password) opsional dan dapat dikonfigurasi per workflow.
Inherence (Passive Liveness + Face Match) plus possession (device-bound biometric approval).
PSD3-grade SCA in one prompt.
02 · Dynamic linking
Satu persetujuan. Terikat pada jumlah + penerima.
Untuk pembayaran, tantangan otentikasi menyematkan jumlah dan penerima yang tepat. Pengguna melihatnya langsung di prompt biometrik. Setiap upaya perusakan akan membatalkan persetujuan, sudah terintegrasi dalam PSR.
The user sees this amount + payee in the biometric prompt itself.
03 · Kenapa SMS OTP akan pensiun
Desain anti-phishing.
SIM-swap fraud, real-time phishing kits, intersepsi SS7, semuanya bisa mengalahkan SMS one-time-password. Biometrik terikat perangkat dengan origin binding memblokir setiap serangan umum yang disoroti oleh European Banking Authority dalam opini SCA 2024 mereka.
Transaksi jarak jauh bernilai rendah di bawah EUR 30, point-of-sale tanpa kontak di bawah EUR 50, transaksi berulang yang identik, penerima terpercaya, tingkatan Transaction Risk Analysis. Semua bisa diedit di Workflow Builder tanpa kode.
Edit thresholds in the no-code Workflow Builder. No redeploy.
05 · 200+ sinyal per otentikasi
200+ sinyal di setiap otentikasi.
Device fingerprint, IP geolocation, deteksi VPN / proxy / datacenter, flag perangkat baru, behavioural drift. Otomatis tingkatkan ke hardware key saat risiko melewati ambang batas yang kamu tentukan.
201Dibuatwebhook mengulang jumlah + penerima untuk verifikasi
Integrasi siap agen
Kirim alur PSD3 SCA dalam satu prompt.
Tempel ke Claude Code, Cursor, Codex, Devin, Aider, atau Replit Agent. Isi stack Anda. Agent akan membangun workflow, menghubungkan dynamic linking, memasang SDK, dan mengirimkan Strong Customer Authentication yang berfungsi dalam lima menit.
didit-integration-prompt.md
You are integrating Didit's Strong Customer Authentication into a payment service provider, bank, EMI, or wallet to satisfy PSD3 / the Payment Services Regulation (PSR). Two factors in one prompt:
1. Inherence — Biometric Authentication: Passive Liveness + Face Match 1:1 against the user's previously-enrolled KYC selfie.
2. Possession — Device & IP Analysis: 200+ real-time fraud signals binding the auth to the user's known device.
Pricing (verified live 2026-05-16):
- Biometric Authentication: $0.10 per auth
- Device & IP Analysis: $0.03 per auth
- Total: $0.13 per Strong Customer Authentication
- First 500 verifications free every month, forever
- Re-uses the enrolled selfie from the original KYC — no re-enrolment
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.
- A workflow_id from the no-code Workflow Builder configured as a Biometric Authentication workflow (Passive Liveness + Face Match 1:1 + Device & IP Analysis).
- The user has previously completed a Didit KYC (the same enrolled selfie backs every subsequent auth).
STEP 1 — Open an authentication session
POST https://verification.didit.me/v3/session/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body (for login auth):
{
"workflow_id": "<wf id for SCA biometric auth>",
"vendor_data": "<your user id>",
"callback": "https://<your-app>/auth/callback",
"metadata": {
"purpose": "login",
"session_id": "<your front-end session id>"
},
"portrait_image": "<base64 JPEG of the user's KYC enrolment selfie, ≤ 1 MB — REQUIRED for SCA's inherence factor; OMIT only if the workflow is liveness-only>"
}
Body (for payment with dynamic linking):
{
"workflow_id": "<wf id for SCA biometric auth>",
"vendor_data": "<your user id>",
"callback": "https://<your-app>/payment/callback",
"metadata": {
"purpose": "payment",
"amount": "247.50",
"currency": "EUR",
"payee_account": "ES9121000418450200051332",
"payee_name": "<merchant or recipient>",
"transaction_reference": "<your internal transaction id>"
},
"portrait_image": "<base64 JPEG of the user's KYC enrolment selfie, ≤ 1 MB — REQUIRED for SCA's inherence factor>"
}
Response: 201 Created with the hosted session URL. Push the URL to the user via deep-link / push notification / in-app sheet.
STEP 2 — User completes the biometric auth
The user sees one prompt on their phone (or via the Didit SDK in your native app). Three things happen on the same screen:
1. The amount + payee are displayed (dynamic linking — the user explicitly approves THIS amount to THIS payee for payments).
2. Passive Liveness defeats screen replay, printed photo, mask, deepfake.
3. Face Match 1:1 matches the new selfie against the enrolled KYC selfie.
Device & IP Analysis runs server-side on the session. Sub-2-second median verdict.
STEP 3 — Read the signed webhook on the auth verdict
Didit POSTs to your callback. Session statuses (Title Case With Spaces):
Body (excerpted):
{
"session_id": "<uuid>",
"vendor_data": "<your user id>",
"status": "Approved",
"liveness": { "status": "Approved" },
"face": { "status": "Approved", "similarity_score": 0.94 },
"ip_analysis": { "status": "Approved", "vpn_detected": false, "datacenter_ip": false },
"metadata_echo": {
"amount": "247.50",
"payee_account": "ES9121000418450200051332"
}
}
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 — HMAC SHA-256 of the raw bytes with your webhook secret.
For payments, verify that metadata_echo.amount and metadata_echo.payee_account match the values you passed in. If they do not, REJECT the payment — it's a dynamic-linking violation.
STEP 4 — Branch on verdict
Approved → unlock the action (login, payment, account change).
In Review → hold the action, route to manual review queue.
Declined → block, log the attempt, surface a friendly "try again" to the user.
Resubmitted → the user re-submitted after a soft fail (poor lighting, occlusion); proceed if the latest status is Approved.
STEP 5 — Retrieve the full decision later
GET https://verification.didit.me/v3/session/{sessionId}/decision/
Headers:
x-api-key: <your api key>
Returns the full payload: liveness verdict (iBeta Level 1 anti-spoof certified), Face Match similarity score, device fingerprint, IP geolocation, VPN / proxy / datacenter flags, 200+ fraud-signal score, dynamic-linking echo, HMAC signature.
Use this for the audit-trail surface a regulator examines on Strong Customer Authentication coverage.
STEP 6 — Step up on risk
When Device & IP Analysis surfaces a high-risk signal (new device + high-value payment, VPN/proxy on a login, geolocation jump), your workflow can step up to:
- A separate hardware-key challenge (FIDO2 / WebAuthn)
- A trusted-beneficiary whitelist confirmation
- A manual-review hold
Encode the step-up policy in the no-code Workflow Builder — no redeploy required.
WEBHOOK EVENT NAMES
- Sessions: status changes flow through the standard session webhook.
Verify X-Signature-V2 on every payload.
CONSTRAINTS
- Session statuses use Title Case With Spaces. Never UPPER_SNAKE_CASE on a session.
- Dynamic linking is REQUIRED for payments — pass amount + payee in metadata, verify the echo on the webhook.
- The enrolled selfie that backs every SCA is the one captured during the user's original KYC — no separate enrolment step.
- PSD3 / PSR exemptions (low-value remote < EUR 30, contactless point-of-sale < EUR 50, recurring identical, trusted beneficiary, Transaction Risk Analysis tiers) are configured per workflow in the Business Console.
- Default record retention is 5 years per the EU AML and payments rules.
Read the docs:
- https://docs.didit.me/sessions-api/create-session
- https://docs.didit.me/sessions-api/retrieve-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.
Dirancang untuk kepatuhan
Buka negara baru dengan satu klik. Kami yang mengerjakan bagian sulitnya.
Kami membuka anak perusahaan lokal, mengamankan lisensi, menjalankan pengujian penetrasi, mendapatkan sertifikasi, dan menyelaraskan dengan setiap regulasi baru. Untuk meluncurkan verifikasi di negara baru, cukup aktifkan tombol. 220+ negara sudah aktif, diaudit dan diuji penetrasi setiap kuartal, satu-satunya penyedia identitas yang secara formal disebut oleh pemerintah negara anggota Uni Eropa lebih aman daripada verifikasi langsung.
Per Strong Customer Authentication, Autentikasi Biometrik + Analisis Perangkat & IP.
<0s
Verifikasi autentikasi end-to-end per sesi, di Android entry-level.
0+
Sinyal fraud real-time dievaluasi di setiap autentikasi, VPN, datacenter, geolocation drift, device drift.
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. Pay-as-you-go untuk produksi. Kontrak kustom, data residency, dan SLA (Service Level Agreements) untuk Enterprise.
Gratis
Gratis
$0 / bulan. Tidak perlu kartu kredit.
Paket KYC gratis (Verifikasi ID + Passive Liveness + Face Match + Analisis Perangkat & IP), 500 / bulan, setiap bulan
User yang masuk daftar hitam
Deteksi Duplikat
200+ sinyal fraud di setiap sesi
KYC yang dapat digunakan kembali di seluruh jaringan Didit
Platform Manajemen Kasus
Workflow Builder
Dokumentasi publik, sandbox, SDK, server MCP (Model Context Protocol)