Lewati ke konten utama
Didit Raih $7,5 Juta untuk Membangun Infrastruktur Identitas dan Fraud
Didit
KYC yang dapat digunakan ulang · eIDAS 2 UE

Verifikasi sekali. Gunakan kembali di mana saja.

Jalankan satu KYC seharga $0.33. Pengguna terverifikasi membagikan verifikasi Didit itu ke aplikasi lain yang memakai Didit, dengan pengungkapan selektif dan gratis di setiap penggunaan ulang. Lima eID nasional sudah aktif, dan penerimaan EUDI Wallet segera hadir.

Didukung oleh
Y CombinatorRobinhood Ventures
Firecrawl
Slash
Crnogorski Telekom
UCSF Neuroscape
Bit2Me

Dipercaya oleh 3.000+ organisasi di seluruh dunia.

Manfaat identitas yang dapat digunakan kembali

Identitas di saku pengguna. Gratis untuk semua yang menerimanya.

Setiap KYC Didit bisa dibagikan sebagai verifikasi KYC Reusable yang ditandatangani ke aplikasi lain yang didukung Didit. Setiap platform penerima bisa membacanya secara gratis. Satu verifikasi, untuk setiap bisnis yang menerima Didit. Mulai gratis.

Cara kerjanya

Dari pendaftaran hingga pengguna terverifikasi dalam empat langkah.

Langkah 01 / 04

Buat alur kerja

Pilih pemeriksaan yang Anda inginkan, ID, liveness, face match, sanksi, alamat, usia, telepon, email, pertanyaan kustom. Seret ke dalam alur di dashboard, atau kirim alur yang sama ke API kami. Buat cabang berdasarkan kondisi, jalankan A/B test, tanpa perlu coding.

Dibangun untuk identitas yang dapat digunakan kembali · Harga seperti infrastruktur

Satu KYC. Setiap platform setelahnya, gratis.

Identitas yang dapat digunakan kembali yang sebenarnya bukanlah satu fitur, melainkan sebuah sistem. Penerbitan, penyimpanan, presentasi, selective disclosure, refresh, pencabutan. Semua dalam satu sesi /v3/.
01 · Verifikasi sekali

Satu KYC. Satu kredensial diterbitkan.

Pertama kali, pengguna menjalankan paket standar $0.33: dokumen identitas, passive liveness, pencocokan wajah, serta analisis perangkat dan IP. Setelah selesai, Didit menandatangani verifikasi agar pengguna dapat membagikannya ke aplikasi lain yang memakai Didit.
Modul Verifikasi Pengguna
02 · Pengungkapan selektif

Ungkapkan hanya yang dibutuhkan verifikator.

Buktikan usia di atas 18 tanpa mengungkapkan tanggal lahir. Buktikan negara tanpa mengungkapkan alamat. Aplikasi penerima hanya membaca kolom yang diminta, ditandatangani oleh Didit.
Modul KYC yang Dapat Digunakan Kembali
03 · eID nasional

Lima eID nasional, aktif hari ini.

MitID, BankID Swedia, Finnish Trust Network, Smart-ID, dan Mobile-ID sudah aktif dalam alur kerja yang sama. Pengguna tanpa eID memakai jalur dokumen dengan pembacaan chip NFC, liveness, dan pencocokan wajah. Penerimaan EUDI Wallet segera hadir.
Verifikasi eID
04 · Penerbit · Pemegang · Verifikator

Tiga peran. Satu kredensial.

Penerbit menandatangani kredensial setelah KYC. Pengguna menyimpannya di wallet mereka. Verifikator memvalidasi tanda tangan penerbit hanya pada bidang yang diungkapkan. Segitiga kepercayaan verifiable-credential standar.
Keamanan & Kepatuhan
05 · Kredensial selalu baru

Kredensial selalu baru, otomatis.

AML berkelanjutan memeriksa ulang pengguna setiap hari. Kedaluwarsa dokumen, perubahan nama, sanksi, semuanya muncul di kredensial secara otomatis. Kredensial yang kedaluwarsa ditolak saat presentasi.
Modul AML Screening
06 · Gratis untuk penerima

Gratis untuk setiap platform penerima.

Penerbitan sudah termasuk dalam setiap KYC. Penyimpanan wallet ada di perangkat pengguna. Presentasi, pengungkapan selektif, dan validasi tanda tangan semuanya gratis, selamanya. Refresh AML berkelanjutan seharga $0.07 per pengguna per tahun untuk akun bervolume tinggi.
Modul KYC yang Dapat Digunakan Kembali
Integrasikan

Dua panggilan. Satu verifikasi, dibagikan.

Bagikan sesi yang sudah selesai dari satu aplikasi Didit dan impor di aplikasi lain. Pihak penerima membaca keputusan lengkap tanpa meminta orang tersebut melakukan verifikasi lagi.
POST /v3/session/{id}/share/Bagikan
curl -X POST https://verification.didit.me/v3/session/$SESSION_ID/share/ \
  -H "x-api-key: $DIDIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "for_application_id": "<receiving-application-id>",
    "ttl_in_seconds": 3600
  }'
200OK{ "share_token": "eyJ…" }
Berlaku untuk sesi yang sudah selesai. Hanya aplikasi yang Anda sebutkan yang dapat menukarkan token.docs →
POST /v3/session/import-shared/Impor
curl -X POST https://verification.didit.me/v3/session/import-shared/ \
  -H "x-api-key: $RECEIVING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "share_token": "<share-token>",
    "trust_review": false,
    "workflow_id": "<receiving-workflow-uuid>",
    "vendor_data": "user-42"
  }'
201Dibuat{ "shared_from_session": "…" }
Mengembalikan keputusan lengkap dengan id sesi baru. Atur trust_review ke false untuk mengirimnya ke In Review.docs →
Integrasi siap agen

Selesaikan alur identitas yang bisa dipakai ulang dalam satu prompt.

Tempel ke Claude Code, Cursor, Codex, Devin, Aider, atau Replit Agent. Isi stack Anda. Agen membangun alur kerja, sesi, panggilan berbagi dan impor, serta webhook bertanda tangan.
didit-integration-prompt.md
# Didit Reusable KYC: verify a person once, share the finished session with another application

You are adding Reusable KYC to my_stack. A person completes one identity
verification; the finished session is then shared with a second Didit
application, which imports the full decision without running the checks
again. Every URL, header and enum value below is canonical. Do not paraphrase
or "improve" them.

## 0. What exists, and what does not
- Reuse is server to server, between two Didit applications: the source
  application mints a share token for a finished session, the receiving
  application redeems it. Both sides use their own x-api-key.
- There is NO reusable_identity object on the webhook or the decision, NO
  metadata.request_fields or other selective-disclosure parameter, NO
  workflow setting that "accepts" a credential, and NO revocation event. Do
  not invent them. metadata on a session is free-form JSON that Didit echoes
  back, nothing more. The receiving application gets the whole decision.
- This is not an EU Digital Identity (EUDI) Wallet integration. Didit does
  not issue or accept EUDI Wallet credentials through these calls.

## 1. Provision
- Sign up: https://business.didit.me
- Source application: its API key. Receiving application: its API key and its
  application id (a UUID: shown in the console, and sent as application_id
  on every webhook that application receives). They are different
  applications; sharing a session with the application that owns it is
  refused.

## 2. Create the workflow for the first verification
POST https://verification.didit.me/v3/workflows/
  -H "x-api-key: <source-api-key>"
  -H "Content-Type: application/json"

{
  "workflow_label": "KYC onboarding",
  "features": [
    { "feature": "OCR" },
    { "feature": "LIVENESS" },
    { "feature": "FACE_MATCH" },
    { "feature": "IP_ANALYSIS" }
  ]
}

OCR is the ID Verification feature (uppercase, strict: ID_VERIFICATION is
rejected). Add { "feature": "AML" } for sanctions and PEP screening; it is
priced separately. Response: 201. The workflow id is uuid (workflow_id carries
the same value) and features comes back as one string, "OCR + LIVENESS + ...".
Create the workflow once and keep the id: every call makes a new one.
Prices: https://didit.me/pricing

## 3. Create a session
POST https://verification.didit.me/v3/session/
  -H "x-api-key: <source-api-key>"
  -H "Content-Type: application/json"
  -d '{ "workflow_id": "<uuid from step 2>", "vendor_data": "<your user id>" }'

Response: 201 with session_id, session_token, url and status "Not Started".
Redirect the user to url (hosted flow) or open it in the Web, iOS, Android,
React Native or Flutter SDK. The field is named url on this response.
One unfinished session exists per workflow_id and vendor_data pair: calling
create again with the same pair answers 201 again with that same session.
Optional: callback, a URL the user's browser is sent back to when the flow
ends. It is a browser redirect, not a webhook: never trust its query string.

## 4. Webhook
Register a destination in the console (API & Webhooks), or over the API:

POST https://verification.didit.me/v3/webhook/destinations/
  -H "x-api-key: <your-api-key>"
  -H "Content-Type: application/json"
  -d '{
    "label": "Verification webhooks",
    "url": "https://<your-public-host>/webhooks/didit",
    "webhook_version": "v3",
    "subscribed_events": ["status.updated", "data.updated"]
  }'

label, url and subscribed_events are required. url must be a public HTTPS
address: Didit does not deliver to localhost or private addresses. Response:
201 with uuid and secret_shared_key. Store secret_shared_key as the webhook
secret (DIDIT_WEBHOOK_SECRET); it is unique to this destination. Remove a
destination with DELETE /v3/webhook/destinations/{uuid}/ (204).

What arrives:
  - webhook_type is "status.updated" (the session changed status) or
    "data.updated" (verification data was corrected after the fact)
  - a destination receives the events of every session of the application,
    so filter on workflow_id or vendor_data when several flows share it
  - creating a session already sends status.updated with status
    "Not Started". The decision key is present only when status is Approved,
    Declined, In Review or Abandoned.

Verify every delivery:

  Header:      X-Signature-V2 (not X-Signature, not X-Signature-Simple)
  Algorithm:   HMAC-SHA256, hex digest, over the canonical JSON of the payload
               (Python json.dumps(sort_keys=True, separators=(",", ":"),
               ensure_ascii=False) after whole-valued floats become ints).
               Never hash the raw request bytes under this header: that is
               the older X-Signature.
  Freshness:   the signed body field timestamp is the dispatch time (Unix
               seconds). Reject when abs(now - timestamp) > 300 seconds, and
               reject when the X-Timestamp header does not equal it.
  Idempotency: event_id is the same on every retry of one event, so store it
               and skip a delivery you already processed. One session can
               still send the same status under two event ids, and the
               console's Try Webhook test deliveries carry no event_id, so
               also make the handler safe to run twice for one
               (session_id, status, webhook_type).
  Compare:     constant-time (crypto.timingSafeEqual)

Reference handler (Express). Keep the verification lines as written.
The handler is a fragment. Put this above it and app.listen(process.env.PORT)
below it. It needs Express and Node 21 or newer (an older Node rejects
every delivery). It expects a JSON body: answer 400 yourself if you accept
anything else on this route, and refuse to start without the secret.

const express = require("express");
const app = express();
const SECRET = process.env.DIDIT_WEBHOOK_SECRET; // secret_shared_key of the destination

// Your endpoint receives a signed payload
const crypto = require("node:crypto"); // ESM: import crypto from "node:crypto"
// X-Signature-V2 = HMAC over the canonical JSON, never the raw bytes. Match the sender byte for
// byte: keys sorted by code point, integers digit for digit, floats in Python's repr.
class Num { constructor(src) { this.src = src; } } // a number as written on the wire, not a double
const num = (s) => { if (/^-?\d+$/.test(s)) return BigInt(s).toString(); const n = +s; // ints stay exact
  if (Number.isInteger(n)) return BigInt(n).toString(); const [m, e] = n.toExponential().split("e"); // 27.0 -> 27
  return +e >= -4 ? String(n) : `${m}e-${String(-e).padStart(2, "0")}`; }; // 1e-05, not 0.00001
const byCodePoint = (a, b) => Buffer.compare(Buffer.from(a), Buffer.from(b)); // UTF-8 order = Python's
const canon = (v) => Array.isArray(v) ? `[${v.map(canon)}]` : v instanceof Num ? num(v.src)
  : v && typeof v === "object" ? `{${Object.keys(v).sort(byCodePoint).map((k) => `${JSON.stringify(k)}:${canon(v[k])}`)}}`
  : JSON.stringify(v);
// Read the body as text: express.json() would round 1000000000000000129 to a double first.
// Register this route ABOVE any global app.use(express.json()): the first parser to run
// consumes the stream, and a body it already parsed has lost the digits the signature covers.
app.post("/webhooks/didit", express.text({ type: "application/json" }), (req, res) => {
  const exact = JSON.parse(req.body, (k, v, c) => typeof v === "number" ? new Num(c.source) : v); // Node 21+
  const body = JSON.parse(req.body);
  const mac = crypto.createHmac("sha256", SECRET).update(canon(exact), "utf8").digest("hex");
  const sig = Buffer.from(String(req.headers["x-signature-v2"] ?? ""));
  // Freshness comes from the signed body timestamp; the header alone is unsigned and replayable.
  const ts = body.timestamp, fresh = String(ts) === req.headers["x-timestamp"]
    && Math.abs(Date.now() / 1000 - ts) <= 300;
  if (!fresh || sig.length !== mac.length
    || !crypto.timingSafeEqual(sig, Buffer.from(mac))) return res.sendStatus(401);
  const { session_id, status, webhook_type, vendor_data, decision } = body;
  // decision is present on Approved, Declined, In Review and Abandoned.
  res.sendStatus(200);
});

Status values (exact strings): Not Started, In Progress, Approved, Declined,
In Review, Resubmitted, Expired, Abandoned, Kyc Expired. Awaiting User only
appears on business verification sessions.

## 5. Read the decision
The same V3 decision reaches you two ways:
  - webhook body: body.decision.id_verifications[]
  - GET https://verification.didit.me/v3/session/{session_id}/decision/
      -H "x-api-key: <your-api-key>"
    This response IS the decision object. Read id_verifications at the top
    level: there is no decision wrapper here.
Until the user finishes the ID step, status is "Not Started" or "In Progress"
and id_verifications is null, not an empty array. Guard for it.
The other feature results sit next to it as plural arrays: liveness_checks[],
face_matches[], ip_analyses[], aml_screenings[]. shared_from_session is null
on a session the person completed here.

## 6. Share the finished session (source application)
Only a session whose status is Approved, Declined or In Review can be shared.

POST https://verification.didit.me/v3/session/{session_id}/share/
  -H "x-api-key: <source-api-key>"
  -H "Content-Type: application/json"
  -d '{ "for_application_id": "<receiving application id>", "ttl_in_seconds": 3600 }'

Response: 200 with share_token, for_application_id and session_kind ("user").
ttl_in_seconds: 60 to 86400, default 3600. Each call mints a new token; a
token cannot be revoked, it only expires. Send it to the receiving
application's backend, never to a browser.

## 7. Import it (receiving application)
POST https://verification.didit.me/v3/session/import-shared/
  -H "x-api-key: <receiving-api-key>"
  -H "Content-Type: application/json"
  -d '{
    "share_token": "<share_token from step 6>",
    "trust_review": false,
    "workflow_id": "<a workflow id of the receiving application>",
    "vendor_data": "<user id on the receiving side>"
  }'

share_token, trust_review and workflow_id are required. trust_review true
keeps the source status (Approved stays Approved); false puts the imported
session In Review so the receiving team decides. Response: 201 with the same
decision shape as step 5, a new session_id, and shared_from_session pointing
at the source session.

## 8. Errors to handle
The message is under detail for some errors and under the field name
(for_application_id, share_token) for others: read both.
  - share, 400: "Cannot share a session with the same application."
  - share, 400: "Target application does not exist."
  - share, 400: "Only finished sessions ("Approved", "Declined", "In Review")
    can be shared."
  - import, 400 on share_token: "Invalid share token.", "Share token has
    expired.", "This token is not valid for this application."
  - import, 400: share_token, trust_review or workflow_id missing
  - import, 403: "This session has already been shared with your
    application." Mint a new token.
  - import, 404: "Workflow does not exist for this application."

## 9. Hard rules
  - base URL for v3 endpoints: verification.didit.me
  - auth header: x-api-key, one key per application
  - feature enum: OCR, LIVENESS, FACE_MATCH, IP_ANALYSIS, AML (uppercase)
  - result path: decision.id_verifications[] in the webhook body and
    id_verifications[] on the GET decision response
  - webhook: X-Signature-V2 plus X-Timestamp, canonical JSON, freshness from
    the signed body timestamp

## 10. Verify your integration
Sandbox (an application in sandbox mode: nothing is billed).
https://docs.didit.me/integration/sandbox-testing
  - create the workflow, create a session, and read its decision: expect 201,
    201 with url, and 200 with status "Not Started"
  - to get a finished session without a person, call
    POST https://verification.didit.me/v3/session/{session_id}/simulate/ with
    your x-api-key and { "new_status": "Approved" }. It sets the status and
    sends the webhook; the feature arrays stay null.
  - share that session. With no second application yet, send a random UUID
    as for_application_id and expect the 400 "Target application does not
    exist.": that proves the call is wired. A full share and import needs
    the second application's id and API key; do not fake that step.
  - assert the webhook accepts a correctly signed payload and rejects a wrong
    X-Signature-V2, a changed body, and a payload whose signed timestamp is
    older than 300 seconds, even when X-Timestamp is refreshed

Docs:
  - https://docs.didit.me/core-technology/reusable-kyc/overview
  - https://docs.didit.me/sessions-api/create-session
  - https://docs.didit.me/sessions-api/retrieve-session
  - https://docs.didit.me/integration/webhooks
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.
Baca dossier keamanan & kepatuhan
SOC 2 · Type II — AICPA · 2026
SOC 2 · Type I — AICPA · 2026
ISO/IEC 27001 — Keamanan informasi · 2026
Sandbox keuangan UE — Tesoro · SEPBLAC · BdE
FIDO Alliance — Anggota asosiasi · 2026
iBeta Level 1 PAD — NIST / NIAP · 2026
GDPR — EU 2016/679
HIPAA — 45 CFR §160 · §164
DORA — EU 2022/2554
MiCA — EU 2023/1114
Panduan EBA untuk onboarding jarak jauh — EBA/GL/2022/15
AMLD6 · eIDAS 2.0 — Selaras dengan UE secara desain
Jugendschutz geprüft — FSM · JMStV §4(2) · 2026

Angka bukti

Angka bukti
  • $0.33
    Per verifikasi pertama, satu-satunya saat pengguna membayar bundel KYC Didit.
  • Free
    Di setiap platform penerima. Setiap penggunaan ulang, setiap presentasi, setiap pengungkapan selektif.
  • 27
    Negara anggota Uni Eropa. Masing-masing wajib menyediakan EUDI Wallet paling lambat 24 Desember 2026, dan penerimaan EUDI Wallet di Didit segera hadir.
  • 5
    eID nasional yang sudah aktif hari ini: MitID, BankID Sweden, Finnish Trust Network, Smart-ID, dan Mobile-ID.
Tiga tingkatan, satu daftar harga

Mulai gratis. Bayar sesuai pemakaian. Skalakan ke Enterprise.

500 verifikasi gratis setiap bulan, selamanya. Setelah itu, bayar hanya saat modul berjalan. Kontrak khusus, data residency, dan service level agreement (SLA) tersedia untuk Enterprise.

Gratis

$0/ bulan · tanpa kartu

Untuk membangun, menguji, dan pengguna pertamamu.

Semua yang kamu butuhkan untuk memulai:
  • 500 verifikasi KYC lengkap setiap bulan
  • ID, liveness, face match, device & IP
  • 200+ sinyal fraud, blocklist, duplikat
  • KYC yang bisa digunakan kembali di seluruh jaringan Didit
  • Workflow builder, case management, SDK
  • Dukungan AI Agen AI dalam konsol, dokumentasi, dan komunitas.
Paling populer

Bayar sesuai pemakaian

$0.33per KYC lengkap

25+ modul, harga transparan. Diskon volume otomatis.

Semua fitur di Gratis, ditambah:
  • AML screening dan monitoring mulai dari $0.07
  • Harga registri bisnis berdasarkan negara dan tier data
  • Transaction monitoring $0.02 per transaksi
  • Wallet screening $0.15 per pemeriksaan
  • White-label flow dengan brand-mu sendiri
  • Dukungan AI Agen AI dalam konsol, dokumentasi, dan komunitas.

Enterprise

Kustomkontrak tahunan

Untuk volume besar dan program teregulasi.

Semua fitur di Bayar sesuai pemakaian, ditambah:
  • Kontrak tahunan, harga volume terikat
  • Ketentuan hukum khusus dan SLA uptime 99,99%
  • Data residency, retensi, tinjauan keamanan
  • Manual reviewer sesuai permintaan
  • Ketentuan reseller dan white-label
  • Dukungan prioritas dari tim kami Channel Slack bersama 24/7, manajer kesuksesan khusus.

Diskon volume berlaku otomatis seiring peningkatan penggunaan — tanpa negosiasi, tanpa sales call.

FAQ

Pertanyaan umum

Apa itu Didit?

Didit adalah infrastruktur untuk identitas dan fraud, platform yang kami impikan ada saat kami membangun produk sendiri: terbuka, fleksibel, dan ramah developer, sehingga berfungsi sebagai bagian nyata dari stack Anda, bukan kotak hitam yang harus Anda integrasikan secara terpisah.

Satu API mencakup verifikasi individu (KYC, know your customer), verifikasi bisnis (KYB, know your business), penyaringan dompet kripto (KYT, know your transaction), dan pemantauan transaksi secara real-time, pada stack yang dibangun agar:

  • Cepat, p99 di bawah 2 detik pada setiap sesi
  • Andal, dalam produksi dengan 3.000+ perusahaan di 220+ negara
  • Aman, SOC 2 Tipe 1 & Tipe 2, ISO 27001, GDPR-native, dan secara resmi diakui oleh regulator keuangan Spanyol lebih aman daripada memverifikasi seseorang secara langsung

Jejak di baliknya: 14.000+ jenis dokumen dalam 48+ bahasa, 1.000+ sumber data, dan 200+ sinyal fraud pada setiap sesi. Infrastruktur Didit belajar secara dinamis dari setiap sesi dan menjadi lebih baik setiap hari.

Apa itu eIDAS 2.0, dalam bahasa sederhana?

eIDAS 2.0, singkatan dari electronic IDentification, Authentication and trust Services, adalah pembaruan aturan identitas UE tahun 2024. Perubahan utamanya adalah European Digital Identity Wallet (sering disingkat EUDI Wallet): aplikasi smartphone yang berhak dimiliki setiap warga negara dan penduduk UE pada akhir tahun 2026.

Dompet ini menyimpan kredensial yang dapat diverifikasi, SIM digital, pengesahan identitas terverifikasi, ijazah akademik, yang diterbitkan oleh pihak tepercaya dan disajikan kepada pihak yang mengandalkan dengan bukti kriptografi, opsional dengan pengungkapan selektif (buktikan Anda berusia di atas 18 tahun tanpa mengungkapkan tanggal lahir lengkap Anda).

Bagi bisnis, eIDAS 2.0 adalah tentang menerima kredensial yang disajikan dompet dan menerbitkan kredensial yang dibawa pengguna Anda.

Siapa yang harus menerima EUDI Wallet, dan kapan?

Apa yang diatur dalam Peraturan (EU) 2024/1183 (eIDAS 2):

  • Negara Anggota masing-masing harus menawarkan setidaknya satu European Digital Identity Wallet (EUDI Wallet) paling lambat 24 Desember 2026.
  • Pihak pengandal non-pemerintah yang secara hukum atau kontraktual diwajibkan menggunakan autentikasi pengguna yang kuat untuk identifikasi online harus menerima EUDI Wallet atas permintaan pengguna paling lambat 24 Desember 2027 (Pasal 5f(2)). Usaha mikro dan kecil dikecualikan.
  • Platform online yang sangat besar yang memerlukan autentikasi pengguna juga harus menerima EUDI Wallet atas permintaan sukarela pengguna (Pasal 5f(3)). Teks tersebut tidak menetapkan tanggal terpisah untuk kewajiban ini.

Bisnis lain dapat menerima dompet secara sukarela. Penerimaan EUDI Wallet Didit akan segera hadir: baca apa yang dibutuhkan bisnis untuk menerima EUDI Wallet.

Seberapa cepat verifikasi untuk pengguna akhir saya?

Proses lengkapnya biasanya memakan waktu kurang dari 30 detik dari awal hingga akhir, ambil ID, foto dokumen, foto selfie, selesai. Ini yang tercepat di pasar. Penyedia KYC lama biasanya membutuhkan lebih dari 90 detik untuk alur yang sama.

Di sisi backend, Didit mengembalikan hasilnya dalam kurang dari dua detik pada p99, diukur dari saat pengguna selesai selfie hingga webhook Anda terpicu. Pengambilan gambar di perangkat seluler dioptimalkan untuk ponsel dan jaringan lambat: kompresi gambar progresif, pemuatan SDK yang lazy, dan hand-off satu ketukan dari desktop ke ponsel melalui kode QR jika pengguna memulai dari web.

Bagaimana identitas yang dapat digunakan kembali berbeda dari login terfederasi (Masuk dengan Apple, Google)?

Federated login membuktikan akun ada di penyedia identitas, bisnis penerima mendapatkan alamat email dan mungkin nama. Itu bukan identitas berstandar regulasi.

Reusable identity membawa:

  • Verifikasi tingkat dokumen pemerintah (paspor, kartu identitas nasional dipindai dan di-OCR)
  • Tautan biometrik ke manusia yang menunjukkan kredensial (selfie dicocokkan dengan foto dokumen)
  • Pengecekan liveness yang mendeteksi deepfake, topeng, serangan replay
  • Status AML yang disaring terhadap sanksi, PEP, dan daftar media yang merugikan
  • Atetasi yang ditandatangani dari penyedia teregulasi, dengan stempel waktu, dan jejak yang dapat diverifikasi

Verifikator mendapatkan kenyamanan regulasi yang sama seperti jika menjalankan KYC sendiri, tanpa biaya, friksi, dan penurunan konversi.

Apa yang terjadi jika pengguna gagal, meninggalkan, atau kedaluwarsa?

Setiap sesi berakhir pada salah satu dari tujuh status yang jelas, sehingga kode Anda selalu tahu apa yang harus dilakukan:

  • Approved, setiap pemeriksaan berhasil. Lanjutkan pengguna.
  • Declined, satu atau lebih pemeriksaan gagal. Anda dapat mengizinkan pengguna untuk mengirim ulang langkah spesifik yang gagal (misalnya, mengambil ulang swafoto) tanpa menjalankan kembali seluruh alur.
  • In Review, ditandai untuk tinjauan kepatuhan. Buka kasus di konsol, lihat setiap sinyal, putuskan setuju atau tolak.
  • In Progress, pengguna sedang dalam proses.
  • Not Started, tautan terkirim, pengguna belum membukanya. Kirim pengingat jika terlalu lama.
  • Abandoned, pengguna membuka tautan tetapi tidak selesai tepat waktu. Libatkan kembali atau kedaluwarsa.
  • Expired, tautan sesi sudah kedaluwarsa. Buat sesi baru.

Webhook yang ditandatangani akan aktif pada setiap perubahan status, sehingga basis data Anda selalu sinkron. Sesi yang ditinggalkan dan ditolak gratis.

Di mana data pelanggan saya berada dan bagaimana data tersebut dilindungi?

Data produksi diproses dan disimpan di Uni Eropa secara default, di Amazon Web Services. Kontrak enterprise dapat meminta wilayah alternatif untuk yurisdiksi yang regulatornya mewajibkan hal tersebut.

Enkripsi di mana-mana. AES-256 saat tidak aktif di setiap database, object store, dan backup. Transport Layer Security 1.3 saat transit pada setiap panggilan API, webhook, dan sesi Business Console. Data biometrik dienkripsi di bawah Customer Master Key terpisah.

Retensi ada dalam kendali Anda. Retensi default adalah tidak terbatas (unlimited) kecuali Anda mengonfigurasi lebih pendek, antara 30 hari hingga 10 tahun per aplikasi, dan Anda dapat menghapus sesi individual kapan saja dari dashboard atau API.

Sertifikasi: SOC 2 Tipe 1 & Tipe 2, ISO/IEC 27001:2022, iBeta Level 1 PAD, dan pengesahan publik dari Tesoro / SEPBLAC / CNMV Spanyol bahwa verifikasi identitas jarak jauh Didit lebih aman daripada memverifikasi seseorang secara langsung. Laporan lengkap di /security-compliance.

Apakah Didit patuh untuk industri saya?

Didit secara default mematuhi regulator yang penting bagi infrastruktur identitas:

  • GDPR + UK GDPR, pemisahan peran pengendali dan prosesor data, Perjanjian Pemrosesan Data lengkap dipublikasikan, otoritas pengawas utama ditunjuk (AEPD Spanyol).
  • AMLD6 + EU AML Single Rulebook, 1.300+ daftar sanksi, orang yang populer secara politik (PEP), dan pemberitaan negatif disaring secara real time.
  • eIDAS 2.0, lima eID nasional aktif hari ini (MitID, BankID Swedia, Finnish Trust Network, Smart-ID, Mobile-ID); penerimaan EUDI Wallet segera hadir.
  • MiCA (Markets in Crypto-Assets), siap untuk on-ramp kripto (pintu masuk fiat ke kripto), bursa, dan kustodian.
  • DORA, Digital Operational Resilience Act, ketahanan operasional layanan keuangan UE.
  • BIPA, CUBI, Washington HB 1493, CCPA / CPRA, privasi biometrik AS (Illinois, Texas, Washington) dan privasi konsumen California.
  • UK Online Safety Act, kewajiban pembatasan usia dan keselamatan anak.
  • FATF Travel Rule, data pengirim dan penerima pada transfer kripto, interoperabel dengan IVMS-101.

Memo terperinci, setiap sertifikat, setiap surat regulator: /security-compliance.

Seberapa cepat saya dapat mengintegrasikan dan mulai memverifikasi pengguna?
  • 60 detik ke akun sandbox di business.didit.me, tanpa kartu kredit.
  • 5 menit untuk verifikasi yang berfungsi melalui Claude Code, Cursor, atau agen pengkodean apa pun melalui server Model Context Protocol (MCP) kami.
  • Satu akhir pekan untuk integrasi siap produksi dengan verifikasi webhook yang ditandatangani, percobaan ulang, dan alur remediasi ketika pengguna ditolak.

Tiga jalur integrasi, pilih mana saja yang sesuai dengan tumpukan Anda:

  • Sematkan secara native dengan Web, iOS, Android, React Native, atau Flutter SDK kami.
  • Arahkan ulang pengguna ke halaman verifikasi yang di-hosting, tanpa SDK.
  • Kirim tautan melalui email, SMS, WhatsApp, atau saluran apa pun, tanpa pekerjaan front-end.

Dasbor yang sama, penagihan yang sama, harga bayar-per-sukses yang sama untuk ketiganya. Panduan langkah demi langkah di docs.didit.me/integration/integration-prompt.

Bagaimana cerita privasi di bawah GDPR?

Identitas yang dapat digunakan kembali adalah peningkatan privasi pada tumpukan KYC lama:

  • Pengungkapan selektif sudah terpasang, verifikator hanya melihat bidang yang diperlukan, bukan dokumen yang mendasarinya
  • Tidak ada registri pusat, kredensial berada di dompet pengguna, bukan di buku besar milik Didit tentang siapa-menyajikan-apa-kepada-siapa
  • Persetujuan per-presentasi, pengguna menyetujui setiap pengungkapan secara eksplisit
  • Penyimpanan penduduk UE, paket bukti sisi penerbit tetap berada di pusat data UE; dompet itu sendiri ada di perangkat pengguna
  • Hak untuk dilupakan, ketika pengguna mencabut kredensial, platform penerima harus menghapusnya dari catatannya di bawah GDPR; API pencabutan per-platform Didit membuat ini menjadi satu panggilan

Dasar hukum untuk pemrosesan di sisi penerima adalah kepentingan yang sah di bawah GDPR, pengguna secara eksplisit telah menyajikan kredensial untuk mengakses layanan. Perjanjian Pemrosesan Data (DPA) standar Didit mencakup hubungan pengontrol bersama.

Bagaimana jika pengguna mengubah dokumen identitasnya atau pindah negara?

Tiga jenis pemicu:

  • Pembaruan dokumen (paspor kedaluwarsa, kartu identitas nasional baru diterbitkan) → pengguna menjalankan refresh ringan; verifikasi diterbitkan ulang dengan sidik jari dokumen baru
  • Perubahan identitas yang signifikan (nama legal baru, perubahan penanda gender, perubahan negara tempat tinggal) → verifikasi ulang penuh seharga $0.33; kredensial lama dicabut dan yang baru diterbitkan
  • Perubahan status AML (pengguna yang sebelumnya bersih menjadi PEP atau masuk daftar sanksi) → pemantauan berkelanjutan Didit secara otomatis menandai perubahan, bidang AML kredensial diperbarui, dan setiap platform penerima melihat status yang diperbarui pada presentasi berikutnya

Platform penerima tidak perlu mengejar pengguna untuk pembaruan, kredensial membawa sinyal kesegarannya sendiri, dan kredensial yang kedaluwarsa ditolak pada saat presentasi.

Bukti apa yang dilihat regulator untuk verifikasi yang digunakan kembali?

Verifikator (platform penerima) mendapatkan paket bukti per-presentasi yang sama dengan yang didapatkan verifikator asli, ditambah rantai penerbitan:

  • Bukti KYC asli, pemindaian dokumen, kesamaan biometrik, hit AML, sinyal risiko perangkat + IP, stempel waktu yang ditandatangani
  • Rantai penerbitan, platform bertenaga Didit mana yang menerbitkan kredensial, kapan, pada alur kerja mana
  • Log presentasi, kapan pengguna ini menyajikan ke platform Anda, bidang mana yang mereka ungkapkan, putusan verifikator Anda
  • Status AML saat ini, diperbarui setiap hari oleh pemantauan berkelanjutan Didit
  • Tanda tangan HMAC SHA-256 pada setiap bidang, sehingga rantai-penahanan dapat dibuktikan

Didit adalah satu-satunya platform KYC dengan pengesahan resmi pemerintah negara anggota UE, Departemen Keuangan Spanyol, Banco de España, dan SEPBLAC bersama-sama mengesahkan layanan tersebut sebagai lebih aman daripada verifikasi langsung. Pengesahan tersebut berlaku untuk setiap presentasi yang digunakan kembali.

Infrastruktur untuk identitas dan fraud.

Satu API untuk KYC, KYB, Transaction Monitoring, dan Wallet Screening. Integrasi dalam 5 menit.

Minta AI untuk merangkum halaman ini