Ruka hadi maudhui makuu
Didit Yakusanya $7.5M Kujenga Miundombinu ya Utambulisho na Udanganyifu
Didit
KYC inayotumika tena · eIDAS 2 ya EU

Thibitisha mara moja. Tumia tena popote.

Endesha KYC moja ya $0.33. Mtumiaji aliyethibitishwa anashiriki uthibitisho huo wa Didit na programu nyingine yoyote inayotumia Didit, kwa ufichuzi teule na bure kila anapoutumia tena. eID tano za kitaifa ziko hai leo, na kukubali EUDI Wallet kunakuja hivi karibuni.

Inaungwa mkono na
Y CombinatorRobinhood Ventures
Firecrawl
Slash
Crnogorski Telekom
UCSF Neuroscape
Bit2Me

Inaaminika na mashirika 3,000+ duniani kote.

Kile ambacho utambulisho unaoweza kutumika tena hufungua

Kitambulisho kipo mfukoni mwa mtumiaji. Bure kwa kila anayekikubali.

Kila KYC ya Didit inaweza kushirikiwa kama uhakiki wa KYC unaoweza kutumika tena uliosainiwa na programu zingine zinazotumia Didit. Kila jukwaa linalopokea linaweza kuusoma bure. Uhakiki mmoja, biashara yoyote inayokubali Didit. Anza bure.

Jinsi inavyofanya kazi

Kutoka kujisajili hadi mtumiaji aliyethibitishwa kwa hatua nne.

Hatua 01 / 04

Unda mtiririko wa kazi

Chagua ukaguzi unaotaka, ID, liveness, kulinganisha uso, vikwazo, anwani, umri, simu, barua pepe, maswali maalum. Ziburute kwenye mtiririko kwenye dashibodi, au tuma mtiririko huo huo kwenye API yetu. Panga masharti, endesha majaribio ya A/B, hakuna msimbo unaohitajika.

Imejengwa kwa utambulisho unaoweza kutumika tena · Bei kama miundombinu

KYC moja. Kila jukwaa baada ya hapo, bure.

Utambulisho halisi unaoweza kutumika tena si kipengele kimoja, ni mfumo. Utoaji, ushikiliaji, uwasilishaji, ufichuzi teule, kuonyesha upya, kubatilisha. Yote chini ya /v3/ session moja.
01 · Thibitisha mara moja

KYC moja. Kitambulisho kimoja kimetolewa.

Mara ya kwanza, mtumiaji anapitia kifurushi cha kawaida cha $0.33: hati ya utambulisho, passive liveness, face match, na uchambuzi wa kifaa na IP. Ikikamilika, Didit inasaini uthibitisho ili mtumiaji aweze kuushiriki na programu nyingine zinazotumia Didit.
Moduli ya Uthibitishaji wa Mtumiaji
02 · Ufichuzi Teule

Fichua tu kile ambacho mthibitishaji anahitaji.

Thibitisha umri zaidi ya miaka 18 bila kufichua tarehe ya kuzaliwa. Thibitisha nchi bila kufichua anwani. Programu inayopokea inasoma tu sehemu inazoomba, zikiwa zimesainiwa na Didit.
Moduli ya KYC Inayoweza Kutumika Tena
03 · eID za kitaifa

eID tano za kitaifa, ziko hai leo.

MitID, BankID Uswidi, Finnish Trust Network, Smart-ID na Mobile-ID ziko hai ndani ya mtiririko mmoja. Watumiaji wasio na eID hupitia njia ya hati kwa kusoma chipu ya NFC, ukaguzi wa uhai na ulinganishaji wa uso. Kukubali EUDI Wallet kunakuja hivi karibuni.
Uhakiki wa eID
04 · Mtoaji · Mwenye · Mthibitishaji

Majukumu matatu. Kitambulisho kimoja.

Mtoaji husaini kitambulisho baada ya KYC. Mtumiaji hukishikilia kwenye wallet yake. Mthibitishaji huthibitisha saini ya mtoaji kwenye sehemu zilizofichuliwa pekee. Pembetatu ya uaminifu ya kitambulisho kinachoweza kuthibitishwa.
Usalama & Uzingatiaji
05 · Usasa wa Kitambulisho

Usasa wa kitambulisho, kiotomatiki.

AML inayoendelea huchunguza upya mtumiaji kila siku. Muda wa kuisha wa hati, mabadiliko ya jina, vikwazo vilivyopigwa, yote huonekana kwenye kitambulisho kiotomatiki. Vitambulisho vilivyopitwa na wakati hukataliwa wakati wa uwasilishaji.
Moduli ya Uchunguzi wa AML
06 · Bure kupokea

Bure kwa kila jukwaa linalopokea.

Utoaji umejumuishwa na kila KYC. Uhifadhi wa wallet uko kwenye kifaa cha mtumiaji. Uwasilishaji, ufichuzi teule, na uthibitishaji wa saini zote ni bure, milele. Usasishaji endelevu wa AML kwa $0.07 kwa kila mtumiaji kwa mwaka kwenye akaunti zenye matumizi makubwa.
Moduli ya KYC Inayoweza Kutumika Tena
Unganisha

Miito miwili. Uthibitishaji mmoja, unaoshirikiwa.

Shiriki kipindi kilichokamilika kutoka kwa programu moja ya Didit na ukiingize katika nyingine. Upande unaopokea husoma uamuzi kamili bila kumwomba mtu ajithibitishe tena.
POST /v3/session/{id}/share/Shiriki
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…" }
Hufanya kazi kwa kipindi kilichokamilika. Ni programu unayoitaja pekee inayoweza kutumia tokeni.nyaraka →
POST /v3/session/import-shared/Ingiza
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"
  }'
201Imeundwa{ "shared_from_session": "…" }
Hurejesha uamuzi kamili chini ya kitambulisho kipya cha kipindi. Weka trust_review kuwa false ili kukituma kwenye In Review.nyaraka →
Ujumuishaji tayari kwa agent

Tengeneza mtiririko wa kitambulisho kinachoweza kutumika tena kwa amri moja.

Bandika kwenye Claude Code, Cursor, Codex, Devin, Aider, au Replit Agent. Jaza stack yako. Wakala hujenga mtiririko wa kazi, kipindi, miito ya kushiriki na kuingiza, na webhook iliyotiwa saini.
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
Inatii kwa muundo

Fungua nchi mpya kwa kubofya mara moja. Tunafanya kazi ngumu.

Tunafungua kampuni tanzu za ndani, tunapata leseni, tunafanya majaribio ya kupenya, tunapata vyeti, na tunalingana na kila kanuni mpya. Ili kusafirisha uthibitishaji katika nchi mpya, geuza swichi. Nchi 220+ ziko hewani, zinakaguliwa na kupimwa kila robo mwaka, mtoa huduma pekee wa utambulisho ambaye serikali ya nchi mwanachama wa EU imemwita rasmi kuwa salama zaidi kuliko uthibitishaji wa ana kwa ana.
Soma faili ya usalama na utiifu
SOC 2 · Type II — AICPA · 2026
SOC 2 · Type I — AICPA · 2026
ISO/IEC 27001 — Usalama wa habari · 2026
EU financial sandbox — Tesoro · SEPBLAC · BdE
FIDO Alliance — Mwanachama Mshirika · 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
Miongozo ya EBA ya kuingiza wateja mtandaoni — EBA/GL/2022/15
AMLD6 · eIDAS 2.0 — EU-aligned kwa muundo
Jugendschutz geprüft — FSM · JMStV §4(2) · 2026

Namba za uthibitisho

Namba za uthibitisho
  • $0.33
    Kwa uthibitisho wa kwanza, mara pekee mtumiaji hulipia kifurushi cha Didit KYC.
  • Free
    Kwenye kila jukwaa linalopokea. Kila utumiaji upya, kila uwasilishaji, kila ufichuzi teule.
  • 27
    Nchi wanachama wa EU. Kila moja lazima itoe EUDI Wallet kufikia 24 Desemba 2026, na kukubali EUDI Wallet kwenye Didit kunakuja hivi karibuni.
  • 5
    eIDs za Kitaifa zinazotumika leo: MitID, BankID Sweden, Finnish Trust Network, Smart-ID na Mobile-ID.
Ngazi tatu, orodha moja ya bei

Anza bure. Lipa kadri unavyotumia. Kuza hadi Enterprise.

Uthibitishaji 500 bila malipo kila mwezi, milele. Kisha lipa tu moduli inapofanya kazi. Mikataba maalum, uhifadhi wa data, na makubaliano ya kiwango cha huduma (SLAs) kwenye Enterprise.

Bure

$0/ mwezi · hakuna kadi

Kwa ajili ya kuunda, kujaribu, na watumiaji wako wa kwanza.

Kila kitu unachohitaji kuanzia:
  • Uthibitishaji kamili wa KYC 500 kila mwezi
  • Kitambulisho, uhai, kulinganisha uso, kifaa & IP
  • Ishara za udanganyifu 200+, orodha nyeusi, marudio
  • KYC inayoweza kutumika tena kwenye mtandao wa Didit
  • Mjenzi wa mtiririko wa kazi, usimamizi wa kesi, SDKs
  • Usaidizi wa AI AI agent ndani ya console, docs, na jumuiya.
Maarufu zaidi

Lipa kadri unavyotumia

$0.33kwa KYC kamili

Moduli 25+, bei wazi. Punguzo la kiotomatiki kwa wingi.

Kila kitu kilichopo kwenye Bure, pamoja na:
  • Uchunguzi na ufuatiliaji wa AML kuanzia $0.07
  • Bei ya usajili wa biashara kulingana na nchi na ngazi ya data
  • Ufuatiliaji wa miamala kwa $0.02 kila moja
  • Uchunguzi wa pochi kwa $0.15 kwa kila ukaguzi
  • Mtiririko wa white-label chini ya chapa yako mwenyewe
  • Usaidizi wa AI AI agent ndani ya console, docs, na jumuiya.

Enterprise

Maalummkataba wa mwaka

Kwa kiasi kikubwa na programu zilizodhibitiwa.

Kila kitu kilichopo kwenye Lipa kadri unavyotumia, pamoja na:
  • Mikataba ya kila mwaka, bei ya kiasi kilichokubaliwa
  • Masharti maalum ya kisheria na SLA ya 99.99% ya muda wa kufanya kazi
  • Uhifadhi wa data, uhifadhi, ukaguzi wa usalama
  • Wakaguzi wa mikono kwa mahitaji
  • Masharti ya muuzaji na white-label
  • Usaidizi wa kipaumbele kutoka kwa binadamu Kituo cha Slack kinachoshirikiwa saa 24/7, meneja maalum wa mafanikio.

Punguzo la wingi hutumika kiotomatiki kadri matumizi yanavyoongezeka — hakuna mazungumzo, hakuna simu ya mauzo.

FAQ

Maswali ya kawaida

Didit ni nini?

Didit ni miundombinu ya utambulisho na udanganyifu, jukwaa ambalo tulitamani lingekuwepo tulipokuwa tukijenga bidhaa sisi wenyewe: wazi, rahisi, na rafiki kwa waendelezaji, ili lifanye kazi kama sehemu halisi ya stack yako badala ya sanduku jeusi unalounganisha.

API moja inashughulikia kuthibitisha watu (KYC, mjue mteja wako), kuthibitisha biashara (KYB, ijue biashara yako), kuchunguza pochi za crypto (KYT, ijue miamala yako), na kufuatilia miamala kwa wakati halisi, kwenye stack iliyojengwa kuwa:

  • Haraka, p99 chini ya sekunde 2 kwenye kila session
  • Inaaminika, inatumika na kampuni 3,000+ katika nchi 220+
  • Salama, SOC 2 Aina ya 1 & Aina ya 2, ISO 27001, GDPR-native, na kuthibitishwa rasmi na mdhibiti wa fedha wa Uhispania kuwa salama zaidi kuliko kumthibitisha mtu ana kwa ana

Miundombinu iliyo chini: aina 14,000+ za nyaraka katika lugha 48+, vyanzo vya data 1,000+, na ishara za udanganyifu 200+ kwenye kila session. Miundombinu ya Didit hujifunza kwa nguvu kutoka kila session na inaboresha kila siku.

eIDAS 2.0 ni nini, kwa lugha rahisi?

eIDAS 2.0, kifupi cha electronic IDentification, Authentication and trust Services, ni sasisho la 2024 la EU kwa kitabu chake cha sheria cha utambulisho. Mabadiliko makuu ni European Digital Identity Wallet (mara nyingi hufupishwa kama EUDI Wallet): programu ya simu mahiri ambayo kila raia na mkazi wa EU atastahili kuwa nayo kufikia mwisho wa 2026.

Pochi hiyo inashikilia hati zinazoweza kuthibitishwa, leseni ya udereva ya kidijitali, uthibitisho wa utambulisho uliothibitishwa, diploma ya kitaaluma, iliyotolewa na wahusika wanaoaminika na kuwasilishwa kwa wahusika wanaotegemea na ushahidi wa kriptografia, kwa hiari na ufichuzi teule (thibitisha kuwa una zaidi ya miaka 18 bila kufichua tarehe yako kamili ya kuzaliwa).

Kwa biashara, eIDAS 2.0 inahusu kukubali hati zinazowasilishwa na pochi na kutoa hati ambazo watumiaji wako wanabeba.

Nani anapaswa kukubali EUDI Wallet, na lini?

Kanuni (EU) 2024/1183 (eIDAS 2) inaeleza yafuatayo:

  • Nchi Wanachama lazima kila moja itoe angalau European Digital Identity Wallet (EUDI Wallet) moja ifikapo 24 Desemba 2026.
  • Watoa huduma binafsi ambao wanatakiwa kisheria au kimkataba kutumia uthibitishaji thabiti wa mtumiaji kwa utambulisho mtandaoni lazima wakubali EUDI Wallet kwa ombi la mtumiaji ifikapo 24 Desemba 2027 (Kifungu cha 5f(2)). Biashara ndogo sana na ndogo zimesamehewa.
  • Majukwaa makubwa sana ya mtandaoni yanayohitaji uthibitishaji wa mtumiaji lazima pia yakubali EUDI Wallet kwa ombi la hiari la mtumiaji (Kifungu cha 5f(3)). Nakala haijaweka tarehe tofauti kwa jukumu hili.

Biashara zingine zinaweza kukubali wallet kwa hiari. Kukubalika kwa EUDI Wallet ya Didit kunakuja hivi karibuni: soma nini biashara inahitaji kukubali EUDI Wallet.

Uthibitishaji unachukua muda gani kwa mtumiaji wangu wa mwisho?

Mchakato mzima kwa kawaida huchukua chini ya sekunde 30 kuanzia mwanzo hadi mwisho, chukua kitambulisho, piga picha hati, piga selfie, umemaliza. Huu ndio mchakato wa haraka zaidi sokoni. Watoa huduma wa zamani wa KYC kwa kawaida huchukua zaidi ya sekunde 90 kwa mchakato huo huo.

Kwa upande wa nyuma, Didit inarudisha matokeo kwa chini ya sekunde mbili kwa p99, ikipimwa kuanzia wakati mtumiaji anamaliza selfie hadi wakati webhook yako inapoanza. Upigaji picha wa simu umeboreshwa kwa simu za polepole na mitandao ya polepole: ukandamizaji wa picha unaoendelea, upakiaji wa polepole wa software development kit, na uhamishaji wa kugusa mara moja kutoka kompyuta hadi simu kupitia msimbo wa QR ikiwa mtumiaji anaanza kwenye wavuti.

Utambulisho unaoweza kutumika tena unatofautianaje na kuingia kwa pamoja (Ingia na Apple, Google)?

Kuingia kwa pamoja (Federated login) kunathibitisha akaunti ipo na mtoa huduma wa utambulisho, biashara inayopokea inapata anwani ya barua pepe na labda jina. Hiyo siyo utambulisho wa kiwango cha udhibiti.

Utambulisho unaoweza kutumika tena hubeba:

  • Uthibitishaji wa kiwango cha hati za serikali (pasipoti, kitambulisho cha kitaifa kilichochanganuliwa na OCR'd)
  • Kiungo cha kibayometriki kwa binadamu anayewasilisha kitambulisho (selfie iliyolinganishwa na picha ya hati)
  • Ukaguzi wa uhai unaonasa deepfakes, barakoa, mashambulizi ya kurudia
  • Hali ya AML iliyochunguzwa dhidi ya vikwazo, PEP, na orodha za habari mbaya
  • Uthibitisho uliotiwa saini kutoka kwa mtoa huduma anayedhibitiwa, uliowekwa muhuri wa muda, na njia inayoweza kuthibitishwa

Mthibitishaji anapata faraja sawa ya udhibiti ambayo angepata kutokana na kuendesha KYC yake mwenyewe, bila gharama, msuguano, na kushuka kwa ubadilishaji.

Nini hutokea ikiwa mtumiaji atashindwa, kuacha, au muda wake kuisha?

Kila kipindi huishia kwenye mojawapo ya hali saba zilizo wazi, hivyo code yako daima inajua nini cha kufanya:

  • Approved, kila ukaguzi umefaulu. Mpeleke mtumiaji mbele.
  • Declined, ukaguzi mmoja au zaidi umeshindwa. Unaweza kumruhusu mtumiaji kutuma tena hatua maalum iliyoshindwa (kwa mfano, kupiga selfie tena) bila kurudia mchakato mzima.
  • In Review, imewekewa alama kwa ukaguzi wa kufuata sheria. Fungua kesi kwenye console, angalia kila ishara, amua kuidhinisha au kukataa.
  • In Progress, mtumiaji yuko katikati ya mchakato.
  • Not Started, kiungo kimetumwa, mtumiaji bado hajafungua. Tuma ukumbusho ikiwa itakaa muda mrefu.
  • Abandoned, mtumiaji alifungua kiungo lakini hakumaliza kwa wakati. Mshirikishe tena au muda wake uishe.
  • Expired, muda wa kiungo cha kipindi umeisha. Unda kipindi kipya.

Webhook iliyotiwa saini huwashwa kwenye kila mabadiliko ya hali, hivyo database yako daima inabaki sawa. Vipindi vilivyoachwa na vilivyokataliwa ni bure.

Data ya mteja wangu inakaa wapi na inalindwaje?

Data ya uzalishaji inachakatwa na kuhifadhiwa katika Umoja wa Ulaya kwa chaguo-msingi, kwenye Amazon Web Services. Mikataba ya biashara inaweza kuomba maeneo mbadala kwa mamlaka ambazo wadhibiti wao wanahitaji.

Usimbaji fiche kila mahali. AES-256 ikiwa imetulia kwenye kila database, hifadhi ya vitu, na backup. Usalama wa Tabaka la Usafirishaji 1.3 ikiwa inasafirishwa kwenye kila API call, webhook, na session ya Business Console. Data ya kibayometriki imesimbwa kwa kutumia Customer Master Key tofauti.

Uhifadhi ni wako kudhibiti. Uhifadhi wa chaguo-msingi ni usio na kikomo (unlimited) isipokuwa ukisanidi muda mfupi zaidi, kati ya siku 30 na miaka 10 kwa kila programu, na unaweza kufuta session yoyote binafsi wakati wowote kutoka kwenye dashboard au API.

Vyeti: SOC 2 Aina ya 1 & Aina ya 2, ISO/IEC 27001:2022, iBeta Level 1 PAD, na uthibitisho wa umma kutoka Tesoro / SEPBLAC / CNMV ya Uhispania kwamba uthibitishaji wa utambulisho wa mbali wa Didit ni salama zaidi kuliko kumthibitisha mtu ana kwa ana. Ripoti kamili inapatikana kwenye /security-compliance.

Je, Didit inatii sheria kwa tasnia yangu?

Didit inatii kwa chaguo-msingi matakwa ya wadhibiti muhimu kwa miundombinu ya utambulisho:

  • GDPR + UK GDPR, mgawanyo wa majukumu kati ya mdhibiti wa data na mchakataji wa data, Mkataba kamili wa Uchakataji wa Data umechapishwa, mamlaka kuu ya usimamizi imetajwa (AEPD ya Uhispania).
  • AMLD6 + EU AML Single Rulebook, orodha 1,300+ za vikwazo, watu wenye nyadhifa za kisiasa (PEP) na habari hasi kwenye vyombo vya habari huchunguzwa kwa wakati halisi.
  • eIDAS 2.0, eID tano za kitaifa ziko hai leo (MitID, BankID Uswidi, Finnish Trust Network, Smart-ID, Mobile-ID); kukubali EUDI Wallet kunakuja hivi karibuni.
  • MiCA (Markets in Crypto-Assets), tayari kwa huduma za kununua crypto kwa fedha za kawaida (on-ramps), masoko ya kubadilishana na watunzaji wa mali.
  • DORA, Digital Operational Resilience Act, ustahimilivu wa uendeshaji wa huduma za kifedha za EU.
  • BIPA, CUBI, Washington HB 1493, CCPA / CPRA, faragha ya kibayometriki ya Marekani (Illinois, Texas, Washington) na faragha ya watumiaji ya California.
  • UK Online Safety Act, vizuizi vya umri na majukumu ya usalama wa watoto.
  • FATF Travel Rule, data ya mtumaji na mnufaika kwenye uhamishaji wa crypto, inaingiliana na IVMS-101.

Memo ya kina, kila cheti, kila barua ya mdhibiti: /security-compliance.

Ninaweza kuunganisha na kuanza kuthibitisha watumiaji haraka kiasi gani?
  • Sekunde 60 hadi akaunti ya sandbox kwenye business.didit.me, hakuna kadi ya mkopo.
  • Dakika 5 hadi uthibitishaji unaofanya kazi kupitia Claude Code, Cursor, au wakala yeyote wa kuandika code kupitia server yetu ya Model Context Protocol (MCP).
  • Wikiendi moja hadi muunganisho tayari kwa uzalishaji na uthibitishaji wa webhook uliotiwa saini, majaribio ya kurudia, na mtiririko wa kurekebisha wakati mtumiaji anakataliwa.

Njia tatu za kuunganisha, chagua inayofaa stack yako:

  • Pachika asili na Web, iOS, Android, React Native, au Flutter SDK yetu.
  • Elekeza upya mtumiaji kwenye ukurasa wa uthibitishaji uliopangishwa, hakuna SDK.
  • Tuma kiungo kwa barua pepe, SMS, WhatsApp, au chaneli yoyote, hakuna kazi ya front-end.

Dashibodi sawa, bili sawa, bei sawa ya kulipa kwa kila mafanikio kwa zote tatu. Mwongozo wa hatua kwa hatua unapatikana kwenye docs.didit.me/integration/integration-prompt.

Hadithi ya faragha ikoje chini ya GDPR?

Utambulisho unaoweza kutumika tena ni uboreshaji wa faragha kwenye stack ya zamani ya KYC:

  • Ufichuzi teule umejengwa ndani, mthibitishaji huona tu sehemu zinazohitajika, si hati halisi
  • Hakuna rejista kuu, kitambulisho huishi kwenye pochi ya mtumiaji, si kwenye daftari linalomilikiwa na Didit la nani aliyewasilisha nini kwa nani
  • Idhini ya kila uwasilishaji, mtumiaji anaidhinisha kila ufichuzi waziwazi
  • Hifadhi ya wakazi wa EU, kifurushi cha ushahidi cha upande wa mtoaji kinakaa katika vituo vya data vya EU; pochi yenyewe iko kwenye kifaa cha mtumiaji
  • Haki ya kusahaulika, mtumiaji anapofuta kitambulisho, jukwaa linalopokea lazima lifute kutoka kwenye rekodi zake chini ya GDPR; API ya Didit ya kufuta kwa kila jukwaa inafanya hili kuwa simu moja

Msingi wa kisheria wa kuchakata upande wa kupokea ni maslahi halali chini ya GDPR, mtumiaji amewasilisha waziwazi kitambulisho ili kufikia huduma. Mkataba wa kawaida wa Uchakataji Data (DPA) wa Didit unashughulikia uhusiano wa wadhibiti wa pamoja.

Je, ikiwa mtumiaji atabadilisha hati yake ya utambulisho au atahamia nchi?

Aina tatu za vichochezi:

  • Usasishaji wa hati (pasipoti inaisha muda wake, kitambulisho kipya cha kitaifa kimetolewa) → mtumiaji anarudia usasishaji mwepesi; uthibitishaji unatolewa tena na alama mpya ya hati
  • Mabadiliko muhimu ya utambulisho (jina jipya la kisheria, mabadiliko ya kiashiria cha jinsia, mabadiliko ya nchi ya makazi) → uthibitishaji kamili kwa $0.33; hati ya zamani inafutwa na mpya inatolewa
  • Mabadiliko ya hali ya AML (mtumiaji aliyekuwa safi hapo awali anakuwa PEP au anaingia kwenye orodha ya vikwazo) → ufuatiliaji endelevu wa Didit unaashiria mabadiliko kiotomatiki, sehemu ya AML ya hati inasasishwa, na kila jukwaa linalopokea linaona hali iliyosasishwa kwenye uwasilishaji unaofuata

Jukwaa linalopokea halihitaji kamwe kumfuatilia mtumiaji kwa masasisho, hati hubeba ishara yake ya usasa, na hati zilizopitwa na wakati zinakataliwa wakati wa uwasilishaji.

Ni ushahidi gani mdhibiti huona kwa uthibitishaji uliotumiwa tena?

Mthibitishaji (jukwaa linalopokea) anapata kifurushi kilekile cha ushahidi wa kila uwasilishaji ambacho mthibitishaji wa awali alipata, pamoja na mnyororo wa utoaji:

  • Ushahidi wa awali wa KYC, uchanganuzi wa hati, kufanana kwa kibayometriki, matukio ya AML, ishara za hatari za kifaa + IP, mihuri ya muda iliyotiwa saini
  • Mnyororo wa utoaji, jukwaa gani linalotumia Didit lilitoa kitambulisho, lini, kwenye mtiririko gani wa kazi
  • Logi ya uwasilishaji, lini mtumiaji huyu aliwasilisha kwenye jukwaa lako, ni sehemu gani alizofichua, uamuzi wa mthibitishaji wako
  • Hali ya sasa ya AML, inasasishwa kila siku na ufuatiliaji endelevu wa Didit
  • Saini ya HMAC SHA-256 kwenye kila sehemu, ili mnyororo wa ulinzi uweze kuthibitishwa

Didit ndiyo jukwaa pekee la KYC lenye uthibitisho rasmi wa serikali ya nchi mwanachama wa EU, Hazina ya Hispania, Banco de España, na SEPBLAC kwa pamoja zilishuhudia huduma hiyo kuwa salama zaidi kuliko uthibitishaji wa ana kwa ana. Uthibitisho huo unapanuka kwa kila uwasilishaji uliotumiwa tena.

Miundombinu ya utambulisho na udanganyifu.

API moja kwa KYC, KYB, Ufuatiliaji wa Miamala, na Uchunguzi wa Wallet. Unganisha ndani ya dakika 5.

Uliza AI ifupishe ukurasa huu