Перейти к основному содержимому
Didit привлёк $7,5 млн на инфраструктуру для идентификации и борьбы с мошенничеством
Didit
Многоразовый KYC · eIDAS 2 в ЕС

Проверка один раз. Используйте где угодно.

Один KYC за $0.33. Проверенный пользователь делится этой проверкой Didit с любым другим приложением на Didit, с выборочным раскрытием данных и бесплатно при каждом повторном использовании. Пять национальных eID уже работают, а прием кошелька EUDI появится скоро.

При поддержке
Y CombinatorRobinhood Ventures
Firecrawl
Slash
Crnogorski Telekom
UCSF Neuroscape
Bit2Me

Нам доверяют более 3000 организаций по всему миру.

Что дает многоразовый идентификатор

Идентификация в кармане пользователя. Бесплатно для всех, кто ее принимает.

Каждая KYC-проверка Didit может быть передана как подписанная многоразовая KYC-верификация другим приложениям на базе Didit. Каждая принимающая платформа считывает ее бесплатно. Одна верификация для любого бизнеса, который принимает Didit. Начните бесплатно.

Как это работает

От регистрации до верифицированного пользователя за четыре шага.

Шаг 01 / 04

Создайте рабочий процесс

Выберите нужные проверки, ID, liveness, сравнение лиц, санкции, адрес, возраст, телефон, email, пользовательские вопросы. Перетащите их в рабочий процесс на дашборде или отправьте тот же процесс в наш API. Разветвляйте по условиям, проводите A/B-тесты, код не требуется.

Создано для многоразовых идентификаторов · Цена как у инфраструктуры

Один KYC. Каждая последующая платформа бесплатно.

Настоящий многоразовый идентификатор, это не одна функция, а целая система. Выпуск, хранение, предъявление, выборочное раскрытие, обновление, отзыв. Все в рамках одной сессии /v3/.
01 · Верификация один раз

Один KYC. Одно выпущенное удостоверение.

В первый раз пользователь проходит стандартный пакет за $0.33: документ, пассивная проверка живости, сравнение лица, анализ устройства и IP. По завершении Didit подписывает проверку, чтобы пользователь мог поделиться ею с другими приложениями на Didit.
Модуль верификации пользователей
02 · Выборочное раскрытие данных

Раскрывайте только то, что нужно верификатору.

Подтвердите возраст старше 18 лет, не раскрывая дату рождения. Подтвердите страну, не раскрывая адрес. Принимающее приложение считывает только те поля, которые запрашивает, с подписью Didit.
Модуль многоразового KYC
03 · Национальные eID

Пять национальных eID уже работают.

MitID, BankID Швеция, Finnish Trust Network, Smart-ID и Mobile-ID уже работают в одном и том же процессе. Пользователи без eID проходят проверку документа со считыванием NFC-чипа, проверка живости и сравнением лица. Прием кошелька EUDI появится скоро.
eID-верификация
04 · Эмитент · Владелец · Верификатор

Три роли. Одно удостоверение.

Эмитент подписывает учетные данные после KYC. Пользователь хранит их в своем кошельке. Верификатор проверяет подпись эмитента только по раскрытым полям. Стандартный треугольник доверия верифицируемых учетных данных.
Безопасность и соответствие требованиям
05 · Актуальность данных

Актуальность данных автоматически.

Непрерывный AML-мониторинг ежедневно перепроверяет пользователя. Истечение срока действия документа, изменение имени, попадание в санкционные списки, все это автоматически отражается в учетных данных. Устаревшие учетные данные отклоняются при предъявлении.
Модуль AML-проверки
06 · Бесплатное получение

Бесплатно для каждой принимающей платформы.

Выпуск учетных данных включен в каждый KYC. Хранение в кошельке осуществляется на устройстве пользователя. Представление, выборочное раскрытие и проверка подписи бесплатны навсегда. Непрерывное обновление AML-данных стоит $0.07 за пользователя в год для аккаунтов с большим объемом операций.
Модуль многоразового KYC
Интегрируйте

Два вызова. Одна проверка на двоих.

Поделитесь завершённой сессией из одного приложения Didit и импортируйте её в другое. Принимающая сторона читает полное решение и не просит человека проходить проверку заново.
POST /v3/session/{id}/share/Поделиться
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…" }
Работает с завершённой сессией. Использовать токен может только указанное вами приложение.документация →
POST /v3/session/import-shared/Импорт
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"
  }'
201Создано{ "shared_from_session": "…" }
Возвращает полное решение с новым идентификатором сессии. Укажите trust_review: false, чтобы отправить её в In Review.документация →
Интеграция, готовая для агентов

Запустите флоу многоразовой идентификации с помощью одного промпта.

Вставьте в Claude Code, Cursor, Codex, Devin, Aider или Replit Agent. Укажите свой стек. Агент создаст рабочий процесс, сессию, вызовы для передачи и импорта и подписанный вебхук.
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
Нужен дополнительный контекст? Смотрите полную документацию модуля.docs.didit.me →
Соответствие по умолчанию

Откройте новую страну в один клик. Мы берем на себя сложную работу.

Мы открываем местные дочерние компании, получаем лицензии, проводим пентесты, получаем сертификаты и адаптируемся к каждому новому регулированию. Чтобы запустить верификацию в новой стране, просто переключите тумблер. Более 220 стран в работе, ежеквартальные аудиты и пентесты, единственный провайдер идентификации, который правительство страны-члена ЕС официально назвало более безопасным, чем личная верификация.
Читать досье по безопасности и соответствию
SOC 2 · Type II — AICPA · 2026
SOC 2 · Type I — AICPA · 2026
ISO/IEC 27001 — Информационная безопасность · 2026
Финансовая песочница ЕС — Tesoro · SEPBLAC · BdE
FIDO Alliance — Ассоциированный член · 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
Рекомендации EBA по удаленному онбордингу — EBA/GL/2022/15
AMLD6 · eIDAS 2.0 — Соответствие нормам ЕС по умолчанию
Jugendschutz geprüft — FSM · JMStV §4(2) · 2026

Цифры подтверждений

Цифры подтверждений
  • $0.33
    За первую верификацию, единственный раз, когда пользователь платит за пакет KYC от Didit.
  • Free
    На каждой принимающей платформе. Каждое повторное использование, каждое предъявление, каждое выборочное раскрытие.
  • 27
    Государства-члены ЕС. Каждое должно предложить EUDI Wallet до 24 декабря 2026 года, а прием кошелька EUDI в Didit появится скоро.
  • 5
    Национальные eID, доступные сегодня: MitID, BankID Sweden, Finnish Trust Network, Smart-ID и Mobile-ID.
Три тарифа, один прайс-лист

Начните бесплатно. Платите по мере использования. Масштабируйтесь до Enterprise.

500 бесплатных верификаций каждый месяц, навсегда. Затем платите только за фактически использованные модули. Для тарифа Enterprise доступны индивидуальные контракты, размещение данных и соглашения об уровне обслуживания (SLA).

Бесплатно

$0/ месяц · без карты

Для разработки, тестирования и первых пользователей.

Всё, что нужно для старта:
  • 500 полных KYC-проверок ежемесячно
  • Проверка ID, Liveness, Face Match, устройства и IP
  • Более 200 сигналов мошенничества, чёрный список, дубликаты
  • Повторное использование KYC в сети Didit
  • Конструктор рабочих процессов, управление кейсами, SDK
  • AI-поддержка AI-агент в консоли, документация и сообщество.
Самый популярный

Платите по мере использования

$0.33за полный KYC

Более 25 модулей с открытыми ценами. Автоматические скидки за объём.

Всё, что есть в Бесплатно, а также:
  • AML-проверка и мониторинг от $0.07
  • Цены на проверку компаний по странам и уровням данных
  • Мониторинг транзакций по $0.02 за каждую
  • Скрининг кошельков по $0.15 за проверку
  • White-label решение под вашим брендом
  • AI-поддержка AI-агент в консоли, документация и сообщество.

Enterprise

Индивидуальногодовой контракт

Для больших объёмов и регулируемых программ.

Всё, что есть в Платите по мере использования, а также:
  • Годовые контракты, ценообразование по объёму
  • Индивидуальные юридические условия и SLA 99.99% аптайма
  • Размещение и хранение данных, аудит безопасности
  • Ручные проверки по запросу
  • Условия для реселлеров и white-label
  • Приоритетная поддержка с участием человека Круглосуточный общий канал в Slack, персональный менеджер по работе с клиентами.

Скидки за объём применяются автоматически по мере роста использования — никаких переговоров, никаких звонков от продаж.

FAQ

Частые вопросы

Что такое Didit?

Didit — это инфраструктура для идентификации и борьбы с мошенничеством, платформа, которую мы сами хотели бы иметь, когда создавали продукты: открытая, гибкая и удобная для разработчиков. Она становится полноценной частью вашего стека, а не "черным ящиком", который приходится обходить.

Единый API позволяет проверять физических лиц (KYC, знай своего клиента), юридических лиц (KYB, знай свой бизнес), проверять криптокошельки (KYT, знай свою транзакцию) и отслеживать транзакции в реальном времени. Наша инфраструктура создана, чтобы быть:

  • Быстрой: p99 менее 2 секунд для каждой сессии
  • Надежной: используется в работе более 3000 компаний в более чем 220 странах
  • Безопасной: соответствует SOC 2 Type 1 & Type 2, ISO 27001, GDPR-native, а также официально признана финансовым регулятором Испании более безопасной, чем личная верификация

В основе платформы: более 14 000 типов документов на 48+ языках, более 1000 источников данных и более 200 сигналов мошенничества для каждой сессии. Инфраструктура Didit динамически обучается с каждой сессией и становится лучше с каждым днем.

Что такое eIDAS 2.0, простыми словами?

eIDAS 2.0, сокращение от electronic IDentification, Authentication and trust Services, это обновление правил идентификации ЕС от 2024 года. Главное изменение, это Европейский цифровой кошелёк идентификации (часто сокращаемый до EUDI Wallet): приложение для смартфона, на которое каждый гражданин и резидент ЕС будет иметь право к концу 2026 года.

Кошелёк хранит верифицируемые учётные данные, цифровые водительские права, подтверждение верифицированной личности, академический диплом, выданные доверенными сторонами и предъявляемые зависимым сторонам с криптографическим доказательством, опционально с выборочным раскрытием (докажите, что вам больше 18 лет, не раскрывая полную дату рождения).

Для бизнеса eIDAS 2.0 означает как приём учётных данных, предъявляемых кошельком, так и выдачу учётных данных, которые носят ваши пользователи.

Кто и когда должен принимать EUDI Wallet?

Что устанавливает Регламент (ЕС) 2024/1183 (eIDAS 2):

  • Государства-члены должны предложить как минимум один Европейский цифровой кошелек (EUDI Wallet) к 24 декабря 2026 года.
  • Частные доверяющие стороны, которые по закону или договору обязаны использовать строгую аутентификацию пользователя для онлайн-идентификации, должны принимать EUDI Wallet по запросу пользователя к 24 декабря 2027 года (Статья 5f(2)). Микро- и малые предприятия освобождены.
  • Очень крупные онлайн-платформы, требующие аутентификации пользователя, также должны принимать EUDI Wallet по добровольному запросу пользователя (Статья 5f(3)). В тексте не указана отдельная дата для этой обязанности.

Другие предприятия могут принимать кошелек добровольно. Поддержка EUDI Wallet в Didit появится в ближайшее время: прочитайте что нужно бизнесу для принятия EUDI Wallet.

Насколько быстро происходит верификация для конечного пользователя?

Полный процесс обычно занимает менее 30 секунд от начала до конца, взять документ, сфотографировать его, сделать селфи, готово. Это самый быстрый показатель на рынке. Устаревшие KYC-провайдеры обычно тратят более 90 секунд на тот же процесс.

На бэкенде Didit возвращает результат менее чем за две секунды (p99), от момента завершения селфи пользователем до срабатывания вашего вебхука. Мобильный захват оптимизирован для медленных телефонов и сетей: прогрессивное сжатие изображений, отложенная загрузка SDK и передача в одно касание с десктопа на телефон через QR-код, если пользователь начал работу в вебе.

Чем многоразовая идентификация отличается от федеративной авторизации (Вход с Apple, Google)?

Федеративная авторизация подтверждает существование аккаунта у провайдера идентификации, бизнес получает адрес электронной почты и, возможно, имя. Это не идентификация регуляторного уровня.

Многоразовая идентификация включает:

  • Проверку государственного документа (сканирование и OCR паспорта или национального удостоверения личности)
  • Биометрическую привязку к человеку, предъявляющему документ (селфи, сопоставленное с портретом на документе)
  • Проверку живости, которая выявляет дипфейки, маски, атаки повторного воспроизведения
  • Статус AML, проверенный по спискам санкций, PEP и негативных упоминаний в СМИ
  • Подписанное подтверждение от регулируемого провайдера, с отметкой времени и проверяемым следом

Проверяющая сторона получает ту же регуляторную уверенность, что и при проведении собственного KYC, но без затрат, сложностей и снижения конверсии.

Что происходит, если пользователь не проходит проверку, прерывает её или срок действия истекает?

Каждая сессия получает один из семи понятных статусов, поэтому ваш код всегда знает, что делать:

  • Approved, все проверки пройдены. Переведите пользователя дальше.
  • Declined, одна или несколько проверок не пройдены. Вы можете разрешить пользователю повторно отправить конкретный неудавшийся шаг (например, повторно сделать селфи), не перезапуская весь процесс.
  • In Review, помечено для проверки комплаенс-отделом. Откройте кейс в консоли, просмотрите все сигналы, примите решение об одобрении или отклонении.
  • In Progress, пользователь находится в процессе прохождения.
  • Not Started, ссылка отправлена, пользователь ещё не открыл её. Отправьте напоминание, если она долго остаётся без внимания.
  • Abandoned, пользователь открыл ссылку, но не завершил процесс вовремя. Повторно вовлеките или аннулируйте.
  • Expired, срок действия ссылки на сессию истёк. Создайте новую сессию.

Подписанный вебхук срабатывает при каждом изменении статуса, поэтому ваша база данных всегда остаётся синхронизированной. Отменённые и отклонённые сессии бесплатны.

Где хранятся данные моих клиентов и как они защищены?

Производственные данные по умолчанию обрабатываются и хранятся в Европейском Союзе на Amazon Web Services. Для корпоративных клиентов возможен запрос на использование альтернативных регионов, если этого требуют регуляторы соответствующих юрисдикций.

Шифрование повсюду. AES-256 для данных в состоянии покоя во всех базах данных, объектных хранилищах и резервных копиях. Transport Layer Security 1.3 для данных в движении при каждом вызове API, вебхуке и сессии Business Console. Биометрические данные шифруются отдельным ключом Customer Master Key.

Вы сами контролируете срок хранения. По умолчанию срок хранения бессрочный (неограниченный), если вы не настроите более короткий — от 30 дней до 10 лет для каждого приложения. Вы можете удалить любую отдельную сессию в любое время из дашборда или через API.

Сертификаты: SOC 2 Type 1 & Type 2, ISO/IEC 27001:2022, iBeta Level 1 PAD, а также публичное подтверждение от Tesoro / SEPBLAC / CNMV Испании о том, что удаленная верификация личности Didit безопаснее, чем личная верификация. Полный отчет доступен по ссылке /security-compliance.

Соответствует ли Didit требованиям моей отрасли?

Didit по умолчанию соответствует требованиям регуляторов, важных для инфраструктуры идентификации:

  • GDPR + UK GDPR, разделение ролей контролера и обработчика данных, опубликовано полное соглашение об обработке данных, указан ведущий надзорный орган (AEPD, Испания).
  • AMLD6 + EU AML Single Rulebook, более 1300 списков санкций, политически значимых лиц и негативных упоминаний в СМИ проверяются в реальном времени.
  • eIDAS 2.0, пять национальных eID уже работают (MitID, BankID Швеция, Finnish Trust Network, Smart-ID, Mobile-ID); прием EUDI Wallet скоро.
  • MiCA (Markets in Crypto-Assets), готовность для сервисов покупки криптовалюты за фиат (on-ramp), бирж и кастодианов.
  • DORA, Digital Operational Resilience Act, операционная устойчивость финансовых услуг ЕС.
  • BIPA, CUBI, Washington HB 1493, CCPA / CPRA, конфиденциальность биометрических данных в США (Иллинойс, Техас, Вашингтон) и конфиденциальность потребителей в Калифорнии.
  • UK Online Safety Act, обязательства по возрастным ограничениям и безопасности детей.
  • FATF Travel Rule, данные об отправителе и получателе криптопереводов, совместимость с IVMS-101.

Подробное описание, все сертификаты, все письма регуляторов: /security-compliance.

Как быстро я могу интегрировать и начать верифицировать пользователей?
  • 60 секунд до аккаунта в песочнице на business.didit.me, без кредитной карты.
  • 5 минут до работающей верификации через Claude Code, Cursor или любого другого кодирующего агента через наш сервер Model Context Protocol (MCP).
  • Выходные до готовой к продакшену интеграции с верификацией через подписанный вебхук, повторными попытками и процессом исправления ошибок, когда пользователь отклоняется.

Три пути интеграции, выберите тот, который подходит вашему стеку:

  • Встройте нативно с помощью наших SDK для Web, iOS, Android, React Native или Flutter.
  • Перенаправьте пользователя на размещённую страницу верификации, без SDK.
  • Отправьте ссылку по электронной почте, SMS, WhatsApp или любому другому каналу, без фронтенд-работы.

Одна и та же панель управления, один и тот же биллинг, одна и та же цена за успешную верификацию для всех трёх. Пошаговое руководство на docs.didit.me/integration/integration-prompt.

Как обстоят дела с конфиденциальностью в рамках GDPR?

Многоразовая идентификация, это улучшение конфиденциальности по сравнению с устаревшим стеком KYC:

  • Встроено избирательное раскрытие, проверяющая сторона видит только необходимые поля, а не сам документ.
  • Отсутствие центрального реестра, учётные данные хранятся в кошельке пользователя, а не в реестре Didit о том, кто кому что предъявил.
  • Согласие на каждое предъявление, пользователь явно одобряет каждое раскрытие.
  • Хранение данных в ЕС, пакет доказательств со стороны эмитента остаётся в центрах обработки данных ЕС; сам кошелёк находится на устройстве пользователя.
  • Право на забвение, когда пользователь отзывает учётные данные, принимающая платформа должна удалить их из своих записей в соответствии с GDPR; API отзыва Didit для каждой платформы делает это одним вызовом.

Юридическим основанием для обработки данных на принимающей стороне является законный интерес в соответствии с GDPR, пользователь явно предъявил учётные данные для доступа к услуге. Стандартное Соглашение об обработке данных (DPA) Didit охватывает отношения совместного контроллера.

Что, если пользователь меняет свой документ, удостоверяющий личность, или переезжает в другую страну?

Три типа триггеров:

  • Обновление документа (истечение срока действия паспорта, выдача нового национального удостоверения личности) → пользователь повторно проходит легкое обновление; верификация перевыпускается с новым отпечатком документа
  • Существенное изменение личности (новое юридическое имя, изменение гендерного маркера, изменение страны проживания) → полная повторная верификация за $0.33; старые учетные данные отзываются и выдаются новые
  • Изменение статуса AML (ранее «чистый» пользователь становится PEP или попадает в санкционный список) → непрерывный мониторинг Didit автоматически фиксирует изменение, поле AML учетных данных обновляется, и каждая принимающая платформа видит обновленный статус при следующем предъявлении

Принимающей платформе никогда не придется запрашивать у пользователя обновления, учетные данные несут свой собственный сигнал актуальности, а устаревшие учетные данные отклоняются при предъявлении.

Какие доказательства видит регулятор при повторной верификации?

Верификатор (принимающая платформа) получает тот же пакет доказательств для каждого предъявления, что и первоначальный верификатор, плюс цепочку выдачи:

  • Оригинальные доказательства KYC, скан документа, биометрическое сходство, совпадения AML, сигналы риска устройства + IP, подписанные временные метки.
  • Цепочка выдачи, какая платформа на базе Didit выдала учётные данные, когда, по какому рабочему процессу.
  • Журнал предъявлений, когда этот пользователь предъявил данные вашей платформе, какие поля он раскрыл, вердикт вашего верификатора.
  • Текущий статус AML, ежедневно обновляется непрерывным мониторингом Didit.
  • Подпись HMAC SHA-256 на каждом поле, что доказывает цепочку хранения.

Didit, единственная платформа KYC с официальным подтверждением от правительства страны-члена ЕС, Казначейство Испании, Banco de España и SEPBLAC совместно подтвердили, что услуга безопаснее, чем личная верификация. Это подтверждение распространяется на каждое повторное предъявление.

Инфраструктура для идентификации и борьбы с мошенничеством.

Единый API для KYC, KYB, мониторинга транзакций и проверки кошельков. Интеграция за 5 минут.

Попросите ИИ кратко изложить эту страницу