무료
월 $0. 신용카드 정보가 필요 없습니다.
- 무료 KYC 번들 (신분증 확인 + 패시브 라이브니스 + 얼굴 매칭 + 기기 및 IP 분석), 매월 500건 제공
- 차단된 사용자
- 중복 감지
- 모든 세션에서 200개 이상의 사기 신호 감지
- Didit 네트워크 전반에 걸쳐 재사용 가능한 KYC
- 사례 관리 플랫폼
- 워크플로 빌더
- 공개 문서, 샌드박스, SDK, MCP(Model Context Protocol) 서버
- 커뮤니티 지원


전 세계 2,000개 이상의 기관에서 신뢰합니다.

거버넌스의 의무
한 사람이 수백 개의 지갑, 이메일 주소 또는 임시 전화번호를 만들 수 있습니다. 그렇다고 해서 그 사람이 수백 명의 다른 사람이라는 증거는 되지 않습니다. Didit은 투표를 실제 얼굴 및 실제 문서와 연결하며, Face Search 1:N (무료) 기능으로 동일 인물이 다시 시도하는 것을 감지합니다. 매월 500회 무료 인증을 제공합니다.
ID, 생체 인식, 얼굴 매칭, 제재 목록, 주소, 연령, 전화번호, 이메일, 맞춤 질문 등 원하는 검사를 선택하세요. 대시보드에서 플로우로 드래그하거나, 동일한 플로우를 API에 게시할 수 있습니다. 조건에 따라 분기하거나 A/B 테스트를 실행할 수 있으며, 코드가 필요 없습니다.
Web, iOS, Android, React Native 또는 Flutter SDK를 사용하여 네이티브로 임베드하세요. 호스팅된 페이지로 리디렉션하거나, 이메일, SMS, WhatsApp 등 어디든 사용자에게 링크를 보내기만 하면 됩니다. 스택에 맞는 방식을 선택하세요.
Didit은 카메라, 조명 안내, 모바일 핸드오프 및 접근성을 호스팅합니다. 사용자가 플로우를 진행하는 동안, 200개 이상의 사기 신호를 실시간으로 분석하고 모든 필드를 신뢰할 수 있는 데이터 소스와 대조하여 확인합니다. 2초 이내에 결과가 나옵니다.
실시간 서명된 웹훅은 사용자가 승인, 거부 또는 검토 대상으로 지정되는 즉시 데이터베이스를 동기화합니다. 필요에 따라 API를 폴링하거나, 콘솔을 열어 모든 세션, 모든 신호를 검사하고 케이스를 직접 관리할 수 있습니다.
Didit · 고유 유권자
투표자 · 3/4단계
안면 확인 vs 코호트
Didit · 얼굴 검색 1:N
Didit · 개인정보 보호 계약
플랫폼 확인
Didit 보유 (암호화됨)
Didit · 재사용 가능한 KYC
Didit · 유권자 자격
Didit · 투표 무결성
$ curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-d '{
"workflow_id": "wf_voter_enrol",
"vendor_data": "voter-12871",
"metadata": { "cohort_id": "round-2026-05" }
}'{ 호스팅된 세션 URL을 반환합니다. 완료 시 2초 미만의 판정. }$ curl https://verification.didit.me/v3/session/$SID/decision/ \
-H "x-api-key: $DIDIT_API_KEY"
# Returns:
{
"status": "Approved",
"face_search": { "matches": [] }
}{ status 승인됨 · 거부됨 · 검토 중 · 재제출됨 · 만료됨 }You are integrating Didit anti-Sybil identity into a voting / governance / survey / airdrop / quadratic-funding platform. The recipe ensures each real human can be counted exactly once — no duplicates, no bots, no farmed accounts.
Two pillars:
1. Verify the voter is a real human with a real identity. ONE call to POST /v3/session/ with ID Verification + Liveness + Face Match.
2. Check the voter has not already been enrolled in this cohort. Face Search 1:N runs the voter's face against every previously-enrolled voter and returns a similarity score. Above threshold → duplicate, block.
Cost:
- Voter Know Your Customer (KYC) bundle: $0.33 per voter (Sessions API)
- Face Search 1:N: free (included)
- Re-vote / next round with Reusable KYC: free (the user proves uniqueness without re-doing KYC)
- First 500 verifications free every month, forever
PRE-REQUISITES
- Production API key from https://business.didit.me (sandbox key in 60s, no card).
- Webhook endpoint with HMAC SHA-256 verification using the X-Signature-V2 header and your webhook secret.
- A workflow_id from the Workflow Builder that bundles ID Verification + Passive Liveness + Face Match 1:1 + Face Search 1:N + your jurisdiction rules (age, country, sanctions).
STEP 1 — Enrol the voter with the Sessions API
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 + Face Search 1:N>",
"vendor_data": "<your voter id, max 256 chars>",
"callback": "https://<your-app>/vote/enrolment/callback",
"metadata": {
"purpose": "vote_enrolment",
"cohort_id": "<your election / round / airdrop id>"
}
}
Response: 201 Created with the hosted session URL. Redirect the voter to it. Sub-2-second median verdict on completion.
STEP 2 — Read the signed webhook on enrolment completion
Didit POSTs to your callback. Session statuses are Title Case With Spaces:
Body (excerpted):
{
"session_id": "<uuid>",
"vendor_data": "<your voter id>",
"status": "Approved",
"id_verification": { "status": "Approved" },
"liveness": { "status": "Approved" },
"face": { "status": "Approved", "similarity_score": 0.94 },
"face_search": { "status": "Approved", "matches": [] }
}
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.
STEP 3 — Block duplicates
When face_search.matches is non-empty AND the top match's similarity is above your threshold (typical: 0.85), DO NOT add the voter to the cohort. The voter has likely been enrolled already, possibly under a different document or alias.
Recommended handling:
similarity ≥ 0.95 → block automatically, log the match
similarity 0.85–0.95 → route to manual review
similarity < 0.85 → enrol normally
STEP 4 — Privacy-preserving storage
The platform stores ONLY:
- voter_pid (pseudonymous identifier — a UUID, NOT the raw document number)
- unique (boolean)
- age_band (e.g. "18+", "25-34") — never the raw birth date unless your eligibility rule needs it
- region (e.g. "EU", "ES") — never the raw address
Documents, biometrics, and full names stay inside Didit, encrypted at rest. Default retention 5 years post-relationship; configurable per workflow.
STEP 5 — Read the decision on demand
GET https://verification.didit.me/v3/session/{sessionId}/decision/
Headers:
x-api-key: <your api key>
Returns the full decision JSON. Use this when the tally service needs to confirm a voter is still eligible at vote time.
STEP 6 — Reusable KYC for subsequent rounds
Once a voter is verified, the next vote / round / airdrop can reuse the verification at no extra cost. The user proves uniqueness with a selfie only — no document re-capture. Same workflow, different cohort id.
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 (Approved, In Review). Don't transform them.
- Face Search 1:N is scoped to YOUR cohort by default — Didit doesn't share faces across customers.
- Always check the duplicate score BEFORE recording the ballot, never after.
- The platform never sees the raw ID document or the raw face template — only the verdict and the pseudonymous PID.
- Default record retention is 5 years post-relationship per the EU AML package; extend per your governing body's 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
- https://docs.didit.me/core-technology/reusable-kyc/overview
Start free at https://business.didit.me — sandbox key in 60 seconds, 500 verifications free every month, no credit card.월 $0. 신용카드 정보가 필요 없습니다.
사용한 만큼만 지불하세요. 25개 이상의 모듈. 모듈별 공개 가격, 월 최소 요금 없음.
맞춤형 MSA 및 SLA. 대규모 볼륨 및 규제 프로그램에 적합합니다.
무료로 시작 → 확인 실행 시에만 지불 → 맞춤형 계약, SLA 또는 데이터 상주를 위해 엔터프라이즈 잠금 해제.
Didit은 신원 및 사기 방지를 위한 인프라입니다. 우리가 직접 제품을 만들 때 있었으면 했던 플랫폼으로, 개방적이고 유연하며 개발자 친화적이어서 블랙박스처럼 통합하는 대신 스택의 실제 구성 요소로 작동합니다.
하나의 API로 사람 인증(KYC, 고객 알기), 기업 인증(KYB, 기업 알기), 암호화폐 지갑 심사(KYT, 거래 알기), 그리고 실시간 거래 모니터링을 지원합니다. 이 모든 것은 다음을 위해 구축된 스택에서 이루어집니다:
기반 기술: 48개 이상의 언어로 14,000개 이상의 문서 유형, 1,000개 이상의 데이터 소스, 그리고 모든 세션에서 200개 이상의 사기 신호를 처리합니다. Didit 인프라는 모든 세션에서 동적으로 학습하며 매일 개선됩니다.
시빌 공격은 한 사람이 여러 지갑, 이메일 주소, 일회용 전화 또는 가짜 신분증을 만들어 여러 사람인 척 가장하여, 각 계정을 한 표, 한 항목, 한 공유로 계산하는 시스템을 조작하는 행위입니다.
이는 투표나 희소성이 중요한 모든 곳에서 나타납니다:
유일하고 지속적인 방어책은 각 투표를 실제 사람에게 연결하는 것입니다. 이 솔루션이 바로 그것을 제공합니다.
그것들은 자원의 통제권을 증명할 뿐, 신체의 통제권을 증명하지 못합니다.
얼굴과 정부 발행 신분증은 더 어렵습니다. 한 사람당 정확히 하나의 얼굴이 있고, 국가당 한 얼굴당 하나의 유효한 정부 신분증이 있습니다. 대규모 위조는 지갑을 만드는 것보다 훨씬 더 많은 비용이 듭니다.
전체 프로세스는 일반적으로 처음부터 끝까지 30초 미만이 소요됩니다. 신분증을 들고, 문서를 촬영하고, 셀카를 찍으면 완료됩니다. 이는 시장에서 가장 빠른 속도입니다. 기존 KYC 제공업체는 동일한 프로세스에 90초 이상이 소요되는 경우가 많습니다.
백엔드에서는 사용자가 셀카를 완료한 시점부터 웹훅이 실행되는 시점까지 p99 기준 2초 미만으로 결과를 반환합니다. 모바일 캡처는 느린 휴대폰과 느린 네트워크에 최적화되어 있습니다: 점진적 이미지 압축, 지연된 SDK 로드, 그리고 사용자가 웹에서 시작하는 경우 QR 코드를 통해 데스크톱에서 휴대폰으로 한 번의 탭으로 전환하는 기능이 제공됩니다.
유권자가 등록하면 Didit은 개인 정보 보호를 위한 얼굴 템플릿(이미지가 아닌 벡터)을 생성하고, 이를 해당 코호트의 다른 모든 유권자 템플릿과 비교합니다. 결과는 0에서 1까지의 유사성 점수를 가진 일치 목록입니다.
일반적인 정책:
코호트는 귀하의 데이터셋에 한정됩니다. Didit은 고객 간에 얼굴을 공유하지 않습니다. 템플릿은 저장 시 암호화되며, 투표 플랫폼에 노출되지 않으며, 사용자가 등록 시 동의한 개인 정보 보호 정책에 따릅니다.
모든 세션은 7가지 명확한 상태 중 하나로 종료되므로, 귀하의 코드는 항상 무엇을 해야 할지 알 수 있습니다:
Approved, 모든 검사를 통과했습니다. 사용자를 다음 단계로 진행하세요.Declined, 하나 이상의 검사에 실패했습니다. 전체 흐름을 다시 실행하지 않고도 사용자가 특정 실패 단계(예: 셀카 다시 찍기)를 재제출하도록 허용할 수 있습니다.In Review, 규정 준수 검토를 위해 플래그가 지정되었습니다. 콘솔에서 케이스를 열고 모든 신호를 확인한 후 승인 또는 거부를 결정하세요.In Progress, 사용자가 진행 중입니다.Not Started, 링크가 전송되었지만 사용자가 아직 열지 않았습니다. 너무 오래 방치되면 알림을 보내세요.Abandoned, 사용자가 링크를 열었지만 제시간에 완료하지 못했습니다. 다시 참여시키거나 만료시키세요.Expired, 세션 링크가 만료되었습니다. 새 세션을 생성하세요.모든 상태 변경 시 서명된 웹훅이 실행되므로, 귀하의 데이터베이스는 항상 동기화 상태를 유지합니다. 중단되거나 거부된 세션은 무료입니다.
프로덕션 데이터는 기본적으로 유럽 연합의 Amazon Web Services에 의해 처리 및 저장됩니다. 엔터프라이즈 계약은 규제 기관의 요구 사항에 따라 다른 지역을 요청할 수 있습니다.
모든 곳에서 암호화됩니다. 모든 데이터베이스, 객체 저장소 및 백업에 대해 저장 시 AES-256 암호화가 적용됩니다. 모든 API 호출, 웹훅 및 비즈니스 콘솔 세션에서 전송 중 TLS 1.3이 적용됩니다. 생체 인식 데이터는 별도의 고객 마스터 키로 암호화됩니다.
데이터 보존은 귀하가 제어합니다. 기본 보존 기간은 무기한(무제한)이며, 귀하가 더 짧은 기간(애플리케이션당 30일에서 10년 사이)으로 구성하지 않는 한 유지됩니다. 또한 대시보드 또는 API를 통해 언제든지 개별 세션을 삭제할 수 있습니다.
인증: SOC 2 Type 1 (Type 2 감사 진행 중), ISO/IEC 27001:2022, iBeta Level 1 PAD, 그리고 스페인 Tesoro / SEPBLAC / CNMV로부터 Didit의 원격 신원 확인이 대면 확인보다 안전하다는 공개 인증을 받았습니다. 전체 보고서는 /security-compliance에서 확인할 수 있습니다.
Didit은 신원 인프라에 중요한 규제 기관에 대해 기본적으로 규정을 준수합니다:
자세한 메모, 모든 인증서, 모든 규제 기관 서한: /security-compliance.
세 가지 통합 경로, 스택에 맞는 것을 선택하세요:
동일한 대시보드, 동일한 청구, 세 가지 모두에 대해 성공당 동일한 가격이 적용됩니다. 단계별 가이드는 docs.didit.me/integration/integration-prompt에서 확인할 수 있습니다.
아니요. 유권자가 Didit에 의해 한 번 인증되면, 재사용 가능한 KYC(무료, 포함)를 통해 셀카만으로 후속 라운드에서 고유성을 증명할 수 있습니다. 문서를 다시 캡처할 필요가 없습니다.
실제 적용:
자격 증명은 eIDAS2(EU의 디지털 신원 규정)에 맞춰 모든 Didit 기반 플랫폼에서 이식 가능합니다. 유권자가 자격 증명을 소유하며, 필요할 때 다시 제시하므로 귀하는 다시 비용을 지불할 필요가 없습니다.
모든 등록은 감사 로그 또는 DAO의 투명성 포털로 내보낼 수 있는 서명된 영수증을 생성합니다:
session_id, 등록을 위한 Didit의 검증 가능한 식별자voter_pid, 귀하의 가명 유권자 IDverdict, Approved, Declined, In Review 등 (상태 열거형: Approved, Declined, In Review, Resubmitted, Expired, Not Finished, Kyc Expired, Abandoned)cohort_id, 라운드/선거/에어드롭 IDsignature, 페이로드의 X-Signature-V2 HMAC SHA-256 (귀하의 웹훅 시크릿 사용)timestamp온체인 증명(사용하는 경우)과 결합하면 "이 실제 사람이 등록했다"부터 "이 투표가 이루어졌다"까지 변조 방지 추적을 할 수 있습니다. 기본 보존 기간은 5년이며, 귀하의 관리 기관 규칙에 따라 연장 가능합니다.
4단계, 오후 한나절이면 충분합니다:
business.didit.me에서 샌드박스를 엽니다, 60초 안에 샌드박스 키를 받을 수 있으며 신용카드는 필요 없습니다.POST /v3/session/을 연결하여 유권자를 등록하고, 서명된 웹훅을 연결하여 결과를 수신합니다.status: Approved이고 face_search.matches가 비어 있거나(또는 귀하의 임계값 미만) 될 때까지 투표를 차단합니다.Didit MCP(Model Context Protocol) 서버는 무료로 포함됩니다. 위의 통합 프롬프트를 Claude Code, Cursor, Codex, Replit Agent, Devin 또는 Aider에 붙여넣으면 에이전트가 라이브 /v3/ API에 대해 전체 스캐폴딩을 수행합니다.