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.

Use these config fields inside each item of the features array for POST /v3/workflows/ and PATCH /v3/workflows/{settings_uuid}/.
{
  "workflow_label": "Standard KYC",
  "features": [
    {
      "feature": "OCR",
      "config": {
        "documents_allowed": {
          "USA": {
            "DL": {
              "enabled": 1
            }
          }
        }
      }
    }
  ]
}
The v3 workflow API builds a linear node-based workflow from the ordered features array. Send features in the exact execution order.

Validation rules

  • OCR defaults to all supported countries and document types when config.documents_allowed is omitted, null, or {}. If you send a custom documents_allowed object, it must contain at least one valid country and one enabled document type.
  • QUESTIONNAIRE requires config.questionnaire_uuid.
  • KYB_DOCUMENTS requires config.kyb_required_document_groups.
  • FACE_MATCH must come after OCR in simple workflow requests.
  • NFC, DATABASE_VALIDATION, and person AML require OCR when they appear in the same workflow.
  • KYB sub-features such as KYB_DOCUMENTS and KYB_KEY_PEOPLE require KYB_REGISTRY earlier in the workflow.
  • Action fields use DECLINE, REVIEW, or NO_ACTION unless the field below says it is restricted.
  • Score and threshold fields are numbers from 0 to 100 unless a narrower range is listed.

Common status rules

Every feature supports an optional status_rules array. Use it to override the feature status when a field condition matches.
{
  "status_rules": [
    {
      "field": "kyc.issuing_state",
      "operator": "in",
      "value": ["VEN", "IRN"],
      "status": "In Review",
      "value_type": "literal"
    }
  ]
}
FieldTypeDescription
fieldstringField path to check, such as kyc.issuing_state or kyc.document_type.
operatorstringOne of equals, not_equals, greater_than, greater_than_or_equals, less_than, less_than_or_equals, contains, not_contains, in, not_in, is_empty, is_not_empty, regex.
valueanyComparison value. Omit or send null for operators that do not need a value.
statusstringOne of Approved, Declined, In Review, or No Action.
value_typestringOptional. literal by default. Use field to compare against another field or list to resolve a Didit list UUID at runtime.

OCR / ID Verification

Feature value: OCR.
Config fieldTypeDescription
documents_allowedobjectOptional. Omit it, send null, or send {} to allow every supported country and document type. Send an ISO3 country code to document type config only when you want to restrict allowed documents. At least one custom document must have enabled: 1. Document types include P, ID, DL, RP, HIC, and other country-supported values.
document_blur_fields_by_countryobjectISO3 country code to blur field names to redact on document images.
image_capture_methods_allowedstring[]Allowed capture methods. Values include CAMERA_SCAN and UPLOAD.
duplicated_user_actionactionAction for a duplicated user.
is_age_restrictions_enabledbooleanEnables minimum and maximum age checks.
age_restrictions_by_countryobjectISO3 country code to an age config with minimum_age, optional maximum_age, and optional states.
minimum_ageintegerGlobal minimum age, 1 to 120.
minimum_age_actionactionAction when the user is below minimum_age.
maximum_ageintegerGlobal maximum age, 1 to 120.
maximum_age_actionactionAction when the user is above maximum_age.
expiration_date_not_detected_actionactionAction when the document expiration date is missing.
invalid_code_actionactionAction when a barcode or machine-readable code is invalid.
invalid_mrz_actionactionAction when the MRZ is invalid.
inconsistent_data_actionactionAction when extracted document fields conflict.
invalid_validation_actionactionAction when document validation fails.
expected_details_mismatch_actionactionAction when expected user details do not match the document.
portrait_replacement_actionactionAction when portrait replacement is detected.
printed_copy_actionactionAction when the document appears to be a printed copy.
screen_capture_actionactionAction when the document appears to be captured from a screen.
image_too_blurry_actionactionAction for blurry document images.
image_too_dark_actionactionAction for dark document images.
image_too_bright_actionactionAction for overexposed document images.
unparsed_address_actionactionAction when the document address cannot be parsed.
document_or_personal_number_format_mismatch_actionactionAction when document or personal number format does not match the expected pattern.
is_document_selfie_portrait_match_enabledbooleanEnables document portrait to selfie comparison.
document_selfie_portrait_match_decline_thresholdintegerDecline threshold for document portrait to selfie match.
document_selfie_portrait_match_review_thresholdintegerReview threshold for document portrait to selfie match.
id_verification_name_match_score_thresholdintegerName match threshold across multiple ID verifications.
id_verification_max_retry_attemptsintegerRetry limit for ID verification, 2 to 5.
status_rulesarrayOptional custom status rules.
Example:
{
  "feature": "OCR",
  "config": {
    "documents_allowed": {
      "USA": {
        "DL": {
          "enabled": 1
        }
      }
    },
    "duplicated_user_action": "REVIEW",
    "image_capture_methods_allowed": ["CAMERA_SCAN", "UPLOAD"]
  }
}

NFC / ePassport

Feature value: NFC.
Config fieldTypeDescription
allow_nfc_skipbooleanAllows users to skip NFC when their document supports chip reading.
skip_nfc_actionactionAction when the user skips NFC.
unverified_chip_actionactionAction when chip verification fails.
status_rulesarrayOptional custom status rules.

Liveness

Feature value: LIVENESS.
Config fieldTypeDescription
face_liveness_methodstringOne of ACTIVE_3D, FLASHING, or PASSIVE.
face_liveness_modestringLiveness mode override.
face_liveness_flash_modestringFlash liveness mode override.
face_liveness_score_decline_thresholdintegerDecline threshold.
face_liveness_score_review_thresholdintegerReview threshold.
face_liveness_possible_duplicated_face_actionactionAction when the face may be duplicated.
face_liveness_multiple_faces_actionactionAction when multiple faces are detected.
race_map_similarity_thresholdsobjectPer-demographic similarity thresholds.
face_privacy_mode_enabledbooleanEnables privacy mode for face assets.
face_quality_review_thresholdintegerReview threshold for face image quality.
face_quality_decline_thresholdintegerDecline threshold for face image quality. Must be less than or equal to the review threshold.
face_luminance_min_thresholdintegerMinimum luminance threshold. Must be lower than face_luminance_max_threshold.
face_luminance_min_actionactionAction when luminance is too low.
face_luminance_max_thresholdintegerMaximum luminance threshold.
face_luminance_max_actionactionAction when luminance is too high.
status_rulesarrayOptional custom status rules.

Face Match

Feature value: FACE_MATCH.
Config fieldTypeDescription
face_match_score_decline_thresholdintegerDecline threshold.
face_match_score_review_thresholdintegerReview threshold.
status_rulesarrayOptional custom status rules.

Age Estimation

Feature value: AGE_ESTIMATION.
Config fieldTypeDescription
enable_id_verification_fallbackbooleanRuns ID Verification when age estimation lands in the borderline range.
minimum_age_thresholdintegerMinimum accepted age, 1 to 100.
borderline_minimum_age_thresholdintegerLower bound for the borderline range, 1 to 100.
borderline_maximum_age_thresholdintegerUpper bound for the borderline range, 1 to 100.
face_liveness_methodstringOne of ACTIVE_3D, FLASHING, or PASSIVE.
face_liveness_score_decline_thresholdnumberDecline threshold for the liveness check used by age estimation.
face_liveness_score_review_thresholdnumberReview threshold for the liveness check used by age estimation.
face_liveness_possible_duplicated_face_actionactionAction when the face may be duplicated.
face_liveness_multiple_faces_actionactionAction when multiple faces are detected.
face_privacy_mode_enabledbooleanEnables privacy mode for face assets.
face_quality_review_thresholdintegerReview threshold for face quality.
face_quality_decline_thresholdintegerDecline threshold for face quality.
face_luminance_min_thresholdintegerMinimum luminance threshold.
face_luminance_min_actionactionAction when luminance is too low.
face_luminance_max_thresholdintegerMaximum luminance threshold.
face_luminance_max_actionactionAction when luminance is too high.
status_rulesarrayOptional custom status rules.

Phone Verification

Feature value: PHONE_VERIFICATION.
Config fieldTypeDescription
code_sizeintegerOTP size, 4 to 8.
phone_max_retriesintegerMaximum send retries, 1 to 5.
phone_max_check_attemptsintegerMaximum OTP check attempts, 1 to 5.
phone_verification_countriesobjectISO2 country code to channel config. Example: { "US": { "sms": { "enabled": true } } }.
disposable_number_actionactionAction for disposable numbers.
voip_number_actionactionAction for VoIP numbers.
duplicated_phone_number_actionactionAction for duplicated phone numbers.
phone_shared_device_modebooleanAllows shared-device phone verification mode.
status_rulesarrayOptional custom status rules.
Phone Verification is disabled until the organization completes its first top-up.

Email Verification

Feature value: EMAIL_VERIFICATION.
Config fieldTypeDescription
email_code_sizeintegerOTP size, 4 to 8.
email_max_retriesintegerMaximum send retries, 1 to 5.
email_max_check_attemptsintegerMaximum OTP check attempts, 1 to 5.
email_alphanumeric_codebooleanUses alphanumeric email codes.
breached_email_actionactionAction for breached emails.
disposable_email_actionactionAction for disposable emails.
duplicated_email_actionactionAction for duplicated emails.
only_corporate_emails_allowedbooleanRejects non-corporate email addresses.
status_rulesarrayOptional custom status rules.

Database Validation

Feature value: DATABASE_VALIDATION.
Config fieldTypeDescription
database_validation_countriesobjectISO3 country code to { "services": ["service_id"] }. Use service IDs from the Database Validation catalog.
database_validation_partial_match_actionactionAction when database validation returns a partial match.
database_validation_no_match_actionactionAction when database validation returns no match.
status_rulesarrayOptional custom status rules.
Example:
{
  "feature": "DATABASE_VALIDATION",
  "config": {
    "database_validation_countries": {
      "ESP": {
        "services": ["SERVICE_ID_FROM_CATALOG"]
      }
    },
    "database_validation_no_match_action": "REVIEW"
  }
}

AML

Feature value: AML. For KYC person screening, use these fields:
Config fieldTypeDescription
is_aml_ongoing_monitoring_enabledbooleanEnables ongoing AML monitoring.
aml_score_approve_thresholdintegerApprove threshold.
aml_score_review_thresholdintegerReview threshold.
aml_match_score_thresholdintegerMatch score threshold for possible matches.
aml_name_weightintegerName weight. If any AML weight is provided, name, DOB, and country weights must sum to 100.
aml_dob_weightintegerDate of birth weight.
aml_country_weightintegerCountry weight.
status_rulesarrayOptional custom status rules.
For KYB company screening, use these fields:
Config fieldTypeDescription
kyb_score_approve_thresholdintegerCompany AML approve threshold.
kyb_score_review_thresholdintegerCompany AML review threshold.
kyb_enable_ongoing_monitoringbooleanEnables KYB ongoing AML monitoring.
kyb_company_aml_match_score_thresholdintegerCompany AML match score threshold.
kyb_company_aml_name_weightintegerCompany name weight. Company AML weights must sum to 100 when provided.
kyb_company_aml_dob_weightintegerIncorporation date or DOB weight.
kyb_company_aml_country_weightintegerCountry weight.

IP Analysis

Feature value: IP_ANALYSIS.
Config fieldTypeDescription
ip_mismatch_actionactionAction when IP geolocation does not match expected data.
vpn_detection_actionactionAction when VPN or proxy usage is detected.
expected_ip_mismatch_actionactionAction when the IP does not match the expected IP.
duplicated_ip_actionactionAction when the IP is reused suspiciously.
duplicated_device_actionactionAction when the device fingerprint is reused suspiciously.
status_rulesarrayOptional custom status rules.

Proof of Address

Feature value: PROOF_OF_ADDRESS.
Config fieldTypeDescription
poa_documents_allowedobjectISO3 country code to POA document type config. At least one valid document type should be enabled.
poa_languages_allowedobjectISO 639-1 language code to 0 or 1. At least one language should be enabled.
poa_name_or_address_mismatch_actionactionAction when the name or address does not match expected data.
poa_document_issues_actionactionAction when the document has quality or extraction issues.
poa_max_attempts_exceeded_actionrestricted actionAction when the user exceeds retry attempts. Use DECLINE or REVIEW.
poa_document_authenticity_actionrestricted actionAction when authenticity checks fail. Use DECLINE or REVIEW.
poa_unsupported_document_type_actionactionAction when the document type is unsupported.
poa_unsupported_language_actionactionAction when the document language is unsupported.
poa_issuer_not_identified_actionactionAction when the document issuer is not identified.
poa_issue_date_not_detected_actionactionAction when the issue date is missing.
poa_unparsable_or_invalid_address_actionactionAction when the address is invalid or cannot be parsed.
poa_name_match_score_thresholdintegerName match threshold.
poa_max_retry_attemptsintegerRetry limit, 2 to 5.
status_rulesarrayOptional custom status rules.

Questionnaire

Feature value: QUESTIONNAIRE.
Config fieldTypeDescription
questionnaire_uuidUUIDRequired. Use the questionnaire_id returned by POST /v3/questionnaires/.
review_questionnaire_manuallybooleanSends questionnaire responses to manual review.
status_rulesarrayOptional custom status rules. You can target questionnaire.answers.<question_id> fields.

KYB Registry

Feature value: KYB_REGISTRY.
Config fieldTypeDescription
kyb_accepted_countriesobjectISO3 country allow-list for business registry lookup.
kyb_manual_company_actionactionAction when the company requires manual handling.
status_rulesarrayOptional custom status rules.

KYB Documents

Feature value: KYB_DOCUMENTS.
Config fieldTypeDescription
kyb_required_document_groupsobject or arrayRequired. Required KYB document groups.
kyb_document_subtype_configobjectPer-document subtype enablement and age configuration.
kyb_document_tampering_actionrestricted actionAction when tampering is detected. Use DECLINE or REVIEW.
kyb_document_critical_mismatch_actionrestricted actionAction for critical document mismatches. Use DECLINE or REVIEW.
kyb_document_non_critical_mismatch_actionactionAction for non-critical document mismatches.
kyb_document_age_actionactionAction when document age rules fail.
kyb_document_max_retry_attemptsintegerRetry limit for KYB documents.
kyb_document_max_attempts_exceeded_actionrestricted actionAction when max attempts are exceeded. Use DECLINE or REVIEW.
status_rulesarrayOptional custom status rules.

KYB Key People

Feature value: KYB_KEY_PEOPLE.
Config fieldTypeDescription
kyb_ubo_ownership_thresholdintegerUBO ownership threshold, 0 to 100.
kyb_shareholder_ownership_thresholdintegerShareholder ownership threshold, 0 to 100. It cannot be higher than kyb_ubo_ownership_threshold.
kyb_require_ubo_kycbooleanRequires UBOs to complete a person verification workflow.
kyb_ubo_verification_workflowUUIDRequired when kyb_require_ubo_kyc is true. Must reference a non-KYB workflow in the same application.
kyb_require_officer_kycbooleanRequires officers to complete person verification.
kyb_shareholder_verification_workflowUUIDPerson verification workflow for shareholders.
kyb_officer_verification_workflowUUIDPerson verification workflow for officers.
kyb_require_corporate_ubo_kybbooleanRequires corporate UBOs to complete KYB.
kyb_corporate_ubo_verification_workflowUUIDRequired when kyb_require_corporate_ubo_kyb is true. Must reference a KYB workflow in the same application.
kyb_reject_if_ubo_rejectedbooleanRejects the business when a required UBO verification is rejected.
kyb_wait_for_all_ubosbooleanWaits for all required UBO verifications before deciding the KYB session.
kyb_role_configobject or arrayPer-role configuration. Each required KYC role must include a verification_workflow.
kyb_reuse_verified_individualsbooleanReuses already verified individuals when possible.
kyb_notify_parties_by_emailbooleanSends email notifications to invited key people.
status_rulesarrayOptional custom status rules.