Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.didit.me/llms.txt

Use this file to discover all available pages before exploring further.

The Business Console lets your team bulk-manage User entities without writing code. Two flows are supported: CSV import (create or update users at scale) and CSV export (extract the user table for external tooling).
Bulk import/export is a console-only feature. There is no public API endpoint for CSV imports — use POST /v3/users/create/ in a loop if you need programmatic bulk creation.

Import users from CSV

When to use it

  • Day-one migration from another KYC vendor — bring your existing user roster over.
  • Provider face migration — attach trusted face images to the imported User profiles after the rows are created.
  • Bulk onboarding of a partner’s customer list.
  • Metadata backfill — update tags, tier, or internal identifiers on many users at once.

Template columns

Download the template from Users → Import → Download template. Columns:
ColumnRequiredDescription
vendor_dataYesYour identifier for the user. Must be unique per application.
display_nameNoHuman-readable name shown in the console.
full_nameNoLegal name. Will be overwritten by verified session data.
emailNoKnown contact email.
phoneNoKnown contact phone (E.164 format).
countryNoISO 3166-1 alpha-3 country code.
statusNoACTIVE, FLAGGED, or BLOCKED. Defaults to ACTIVE.
tagsNoComma-separated tags.
metadata_jsonNoStringified JSON for custom metadata.

Running the import

1

Upload the CSV

Navigate to Users → Import → Upload CSV and select your file.
2

Review the preview

The console validates each row. Invalid rows are highlighted with error reasons (e.g. duplicate vendor_data, invalid country code).
3

Start the import

Didit processes the rows asynchronously. You can close the tab — progress is tracked in Users → Import history.
4

Review results

When the import finishes, the history view shows counts of created, updated, and skipped rows, plus a downloadable error report.

Update vs create

  • If a vendor_data does not exist, a new User is created.
  • If a vendor_data already exists, the row updates the existing User (profile fields and metadata).
  • Aggregate counters and verified fields (full_name, date_of_birth from approved sessions) are never overwritten by imports.

Import faces after user creation

CSV import creates or updates the User row. It does not include face images in the CSV. To bring over face biometrics from another provider, upload each face after the target User exists:
1

Create or import the User

Use the console CSV import, or call POST /v3/users/create/ in a loop.
2

Read didit_internal_id

Fetch the User with GET /v3/users/{vendor_data}/. The response includes didit_internal_id.
curl -X POST https://verification.didit.me/v3/organization/$ORGANIZATION_ID/application/$APPLICATION_ID/vendor-users/by-id/$DIDIT_INTERNAL_ID/faces/upload/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image": "<base64-encoded-jpg-or-png>",
    "comment": "Imported from previous KYC provider"
  }'
The face must be a valid image, max 2 MB decoded, and contain a detectable face. Didit stores it on the profile and indexes it for duplicate detection and face search. It is not added to a face blocklist unless you separately use the Upload face to list endpoint.

Export users to CSV

When to use it

  • Compliance audits — deliver the full user table to auditors.
  • Data warehouse sync — periodic dump into your BI tooling.
  • SAR / regulator requests — extract filtered subsets of users.

Running an export

  1. Navigate to Users → Export.
  2. Apply filters (status, country, date range, search).
  3. Choose columns (the default is every field; you can drop columns you don’t need).
  4. Submit. Didit generates the export asynchronously and emails a signed download link to the requesting operator.
Exports include only data your role is allowed to read. COMPLIANCE_OFFICER and above can export the full table; DEVELOPER and READER roles have restricted exports.

Performance characteristics

OperationTypical scaleNotes
ImportUp to 100,000 rowsLarger files are chunked server-side; progress is polled by the UI
ExportUp to 1,000,000 rowsLarger exports are streamed to S3 and delivered via signed URL

Audit trail

Every import and export is logged in the audit log:
  • The operator who triggered it.
  • Row counts (imports) / filter snapshot (exports).
  • Timestamps and success/failure state.

Next steps

Create user API

Programmatic creation for scripted imports.

Upload user face

Attach imported face images to User profiles.

Data retention

How long imported data persists.

Audit logs

Review import/export history.