Back to App Store

Didit

Didit · io.pilot.didit
One API for identity and fraud — KYC, liveness, face match, AML, and more, with a no-broker key you mint in one call..
Security Live on catalogue
Install
pilotctl appstore install io.pilot.didit
v1.0.0
Version
40
Methods
8.9 MB
Size
shareable
Sandbox
macOS · Linux
Platforms

About Didit

Didit is one API for identity and fraud — KYC/ID verification, liveness, face match, AML screening, proof of address, database validation, and email/phone OTP, wrapped as a single Pilot app. It fronts Didit's full platform: hosted verification sessions, reusable workflows, users, billing, blocklists, questionnaires, and webhooks — 40 methods in all.

Your own key, minted in one call — no email, no code

The hard part of using an identity provider is usually onboarding: signing up, confirming an email code, and wiring the key. This app removes all of it. didit.signup takes no arguments and returns a working key:

  • It signs a keyless request (your Pilot identity) to Pilot's Didit broker. The broker provisions a mailbox on Pilot infrastructure, registers a Didit account, reads Didit's one-time email code server-side, verifies it, and hands back your account's api_key.
  • The adapter caches {email, api_key} to $APP/secrets.json. From then on every other method sends your key as x-api-key automatically — you never see an inbox, a code, or the key unless you ask (didit.account).
  • Idempotent: the broker mints at most one Didit account per Pilot identity, so a repeat call — or a fresh install on another machine — returns the *same* account. The account is entirely yours: verifications bill to your Didit balance (top up with didit.billing_topup), and Pilot adds no markup. Each account includes Didit's 500 free full-KYC checks/month; account creation, management, sessions CRUD, users, billing, blocklists, questionnaires and webhooks are all free — you pay only per verification you run.

The fast path

1. didit.signup {} → your key is cached (one call, ~5s, no email). 2. didit.create_workflow {workflow_label:"KYC", features:[{feature:"OCR"},{feature:"LIVENESS"},{feature:"FACE_MATCH"}]} → get uuid. 3. didit.create_session {workflow_id, vendor_data:"user-123"} → send the user to the returned url. 4. didit.get_decision {session_id} (or a webhook) → read the Approved/Declined result and extracted data.

didit.account returns your provisioned email + key any time.

What each area does

  • Sessions — hosted flows where the user completes verification at a Didit URL, so you never handle document images: create_session, get_decision, list_sessions, update_session_status (approve/decline/resubmit), delete_session, batch_delete_sessions, share_session / import_session (B2B KYC reuse), list_reviews, create_review.
  • Workflows — templates built from an ordered features array (OCR, LIVENESS, FACE_MATCH, AML, PROOF_OF_ADDRESS, PHONE_VERIFICATION, EMAIL_VERIFICATION, DATABASE_VALIDATION, IP_ANALYSIS, AGE_ESTIMATION, NFC, QUESTIONNAIRE, KYB_*), each with an optional per-feature config: create_workflow, list_workflows, get_workflow, update_workflow, delete_workflow.
  • Standalone checks (JSON, no session)aml (sanctions/PEP/adverse-media, $0.20), database_validation (gov sources, from $0.05).
  • Contactemail_send/email_check ($0.03) and phone_send/phone_check (from $0.03) OTP verification.
  • Billingbilling_balance, billing_topup (Stripe checkout URL).
  • Governanceblocklist_* (auto-flag repeat faces/docs/phones/emails), questionnaire_* (custom forms), users_* (people grouped by your vendor_data), get_webhook/update_webhook (set + rotate the HMAC secret programmatically).

Pricing

Pay-per-check on your Didit balance — no Pilot markup. See the full rate card in didit.help. Highlights: full KYC bundle $0.33/check (first 500/month free), ID verification $0.15, passive liveness $0.10, face match $0.05, face search free, AML $0.20, PoA $0.20, email/phone from $0.03. Image-upload APIs (direct ID scan, liveness, face match, face search, age estimation, PoA) run through the hosted session flow rather than as direct methods.

Notes

  • The adapter dials exactly two hosts: Pilot's broker (broker.pilotprotocol.network) for the one-call didit.signup, and Didit (verification.didit.me) for every operational call with your cached key. It holds no shared secret; the broker signs you in, then steps out of the data path.
  • Plain request/response REST — no websockets, no async jobs. Rate limits: ~600 session-creates/min, 300/min per other method; the account OTP register is 5/IP/hour.
  • Errors surface verbatim: 401 (run didit.signup first), 403 (top up credits), 429 (back off).

Methods · 40

didit.signup
Get your own Didit API key in ONE call — no email, no code, no human step. This signs a keyless request to Pilot's Didit broker, which provisions a mailbox on Pilot infrastructure, registers a Didit account, reads the emailed one-time code server-side, verifies it, and returns your account's api_key. The adapter caches {email, api_key} to $APP/secrets.json, and from then on EVERY other didit.* method authenticates automatically (x-api-key) — you never handle the key or an inbox. Idempotent: the broker mints at most one account per Pilot identity, so a repeat call (or a fresh install) returns the SAME account. Run this ONCE before any other method. FREE — account creation costs nothing; you pay only per verification you run, and each account includes Didit's 500 free full-KYC checks/month. The account (email + key) is retrievable any time via didit.account. Takes no arguments.
didit.account
Retrieve your cached Didit account — the email the broker provisioned for you and your api_key — plus a signed_up flag. Local, instant, FREE (reads $APP/secrets.json; no backend call). Use it to confirm you're signed up or to read your key. If signed_up is false, call didit.signup first.
didit.billing_balance
Check your remaining Didit credit balance (and auto-refill settings). FREE. Returns {balance, auto_refill_enabled, auto_refill_amount, auto_refill_threshold}. Verifications draw down this balance; check it before a batch of checks.
didit.billing_topup
Add credit to your Didit balance. FREE call — returns a Stripe checkout URL (checkout_session_url) to present to the user; the charge happens on Stripe, not through Pilot.
didit.create_workflow
Create a verification workflow — the reusable template that defines which checks a hosted session runs, in order. FREE to create; you're billed per feature only when a session actually runs it. Returns {uuid} — pass it as workflow_id to didit.create_session. The v3 API takes a `features` ARRAY (in the order users complete them); each item is {feature, config?} where feature is one of OCR, NFC, LIVENESS, FACE_MATCH, PROOF_OF_ADDRESS, QUESTIONNAIRE, DOCUMENT_AI, PHONE_VERIFICATION, EMAIL_VERIFICATION, DATABASE_VALIDATION, AML, IP_ANALYSIS, AGE_ESTIMATION, KYB_REGISTRY, KYB_DOCUMENTS, KYB_KEY_PEOPLE. Example: [{"feature":"OCR"},{"feature":"LIVENESS","config":{"face_liveness_method":"PASSIVE"}},{"feature":"FACE_MATCH"}]. The API uses a strict field whitelist — any undeclared key (e.g. workflow_type) is a 400. Max 50 workflows per account.
didit.list_workflows
List your verification workflows with their features and total_price. FREE.
didit.get_workflow
Get one workflow by id. FREE.
didit.update_workflow
Update a workflow (partial — send only the fields to change; same field set as create_workflow, e.g. a replacement `features` array, workflow_label, status, is_default). FREE.
didit.delete_workflow
Delete a workflow. FREE. Existing sessions are unaffected. Returns 204.
didit.create_session
Start a hosted verification session for a user and get a URL to send them to. This is Didit's recommended path for ID/liveness/face-match/AML/PoA/etc. — the user completes everything at the hosted URL, so you never handle document images yourself. COST is the sum of the features the workflow enables (e.g. a full KYC bundle ≈ $0.33/check; 500 full-KYC checks/month are free), charged to your Didit balance when the session runs. Returns {session_id, session_token, url, status}. Poll didit.get_decision or set a webhook for the result. Nested objects (contact_details, expected_details) are passed as JSON objects.
didit.get_decision
Get the full decision and extracted data for a session — status plus id_verifications, liveness_checks, face_matches, aml_screenings, phone/email verifications, poa_verifications, database_validations, ip_analyses, and reviews. FREE (reading results). Image URLs in the response expire after 60 minutes. Statuses: Not Started | In Progress | In Review | Approved | Declined | Abandoned | Expired | Resubmitted.
didit.list_sessions
List/filter your sessions (paginated). FREE.
didit.update_session_status
Manually override a session's status (approve/decline/resubmit) — the programmatic-review action. FREE. For Resubmitted, pass nodes_to_resubmit; the session must be Declined, In Review, or Abandoned.
didit.delete_session
Permanently delete a session and all its data. FREE. Returns 204.
didit.batch_delete_sessions
Delete many sessions at once by number (or all). FREE.
didit.share_session
Generate a share_token so a partner can import a finished session (B2B KYC reuse). FREE. Works only for finished sessions.
didit.import_session
Import a session shared by a partner via its share_token. FREE.
didit.list_reviews
List the manual-review activity for a session (status changes, notes). FREE.
didit.create_review
Add a manual review decision to a session (Approved/Declined/In Review). FREE.
didit.aml
Screen a person or company against sanctions, PEP, and adverse-media watchlists (standalone, no session). COST $0.20/check on your Didit balance. Returns matches with scores and categories.
didit.database_validation
Cross-check identity fields against government / authoritative databases (standalone). COST from $0.05/check (1x1, single source) to $0.30 (2x2, two-source cross-validation); varies by country/source. Covers 1,000+ sources across 18+ countries.
didit.email_send
Send a one-time verification code to an email address. Part of email verification ($0.03 per completed verification, charged to your Didit balance).
didit.email_check
Verify the email OTP the user received. Completes an email verification ($0.03).
didit.phone_send
Send a one-time code by SMS / WhatsApp / Telegram. Part of phone verification (from $0.03 per completed verification, varies by channel).
didit.phone_check
Verify the phone OTP the user received. Completes a phone verification (from $0.03).
didit.blocklist_add
Add a session's face/document/phone/email to your blocklist so future matches auto-flag (FACE_IN_BLOCKLIST, etc.). FREE.
didit.blocklist_remove
Remove items from your blocklist. FREE.
didit.blocklist_list
List your blocklisted items. FREE.
didit.create_questionnaire
Create a custom form (7 element types) to attach to a questionnaire_verification workflow. FREE.
didit.list_questionnaires
List your questionnaires. FREE.
didit.get_questionnaire
Get one questionnaire. FREE.
didit.update_questionnaire
Update a questionnaire (partial). FREE.
didit.delete_questionnaire
Delete a questionnaire. FREE. Returns 204.
didit.list_users
List verified individuals (grouped by vendor_data) with status and session counts. FREE.
didit.get_user
Get one user by your vendor_data. FREE.
didit.update_user
Update a user's display name / manual status / metadata. FREE.
didit.batch_delete_users
Delete many users by vendor_data (or all). FREE.
didit.get_webhook
Get your webhook configuration (url, version, HMAC secret_shared_key, capture_method). FREE.
didit.update_webhook
Set/rotate your webhook config programmatically — no console needed. FREE.
didit.help
Discovery: every method with params, latency, and the per-endpoint pricing rate card.

What’s New

v1.0.0 Latest
  • Initial release — the full Didit identity platform over one byo HTTPS app: 39 methods + didit.help.
  • One-call broker signup: didit.signup {} mints and caches a per-user Didit API key with no email and no code (Pilot's broker runs the signup and reads the OTP server-side); didit.account retrieves it; ops stay direct to Didit.
  • KYC/ID, liveness, face match, AML, proof-of-address, database validation, email/phone OTP, hosted sessions, workflows, billing, blocklist, questionnaires, users, webhooks — per-endpoint pricing in didit.help.

Platform Compatibility

macOS Apple Silicon
4.7 MBSupported
macOS Intel
5.0 MBSupported
Linux arm64
4.5 MBSupported
Linux amd64
4.9 MBSupported
You might also like

More in Security