@didit-protocol/sdk-node 1.0.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -209,77 +209,6 @@ declare abstract class APIResource {
209
209
  constructor(client: APIClient);
210
210
  }
211
211
 
212
- /** All fields are optional. Sending an empty body creates an application with a default name. */
213
- interface AccountApplicationsCreateParams {
214
- /** Application display name. Defaults to `"<organization name> App"`. */
215
- name?: string;
216
- /** Website or app URL associated with this application. */
217
- website_url?: string;
218
- /** Allowed redirect URIs for OAuth-style and verification redirect flows. */
219
- redirect_uris?: string[];
220
- /** Terms of service URL shown in the verification flow. */
221
- terms_url?: string;
222
- /** Privacy policy URL shown in the verification flow. */
223
- privacy_url?: string;
224
- /** Internal description for the application (not shown to end users). */
225
- description?: string;
226
- }
227
- interface AccountApplicationsListParams {
228
- /** Number of applications per page. Defaults to 50. */
229
- limit?: number;
230
- /** Number of applications to skip before the page starts. Defaults to 0. */
231
- offset?: number;
232
- }
233
- /** PATCH body for application metadata. Send only the fields you want to change; omitted fields are preserved. `uuid`, `client_id`, and `api_key` cannot be updated. `products` is read-only: a `products` key in the body is ignored. */
234
- interface AccountApplicationsUpdateParams {
235
- /** Application display name. */
236
- name?: string;
237
- /** Website or app URL associated with this application. */
238
- website_url?: string;
239
- /** Allowed redirect URIs for OAuth-style and verification redirect flows. */
240
- redirect_uris?: string[];
241
- /** Terms of service URL shown in the verification flow. */
242
- terms_url?: string;
243
- /** Privacy policy URL shown in the verification flow. */
244
- privacy_url?: string;
245
- /** Internal description for the application. */
246
- description?: string;
247
- }
248
- interface AccountLoginParams {
249
- email: string;
250
- password: string;
251
- }
252
- interface AccountOrganizationsListParams {
253
- /** Page size. Defaults to 50. */
254
- limit?: number;
255
- /** Zero-based offset of the first result. */
256
- offset?: number;
257
- }
258
- interface AccountRegisterParams {
259
- /** Any valid email address (personal, work, alias). Used as the unique account identifier. */
260
- email: string;
261
- /** Minimum 8 characters. Must contain at least one uppercase letter (`A-Z`), one lowercase letter (`a-z`), one digit (`0-9`), and one special character from `!@#$%^&*()_+-=[]{}|;:,.<>?`. Validation reports one failed rule at a time. */
262
- password: string;
263
- }
264
- interface AccountResendOtpParams {
265
- /** Email of the pending (unverified) account. */
266
- email: string;
267
- /** Password chosen at registration. */
268
- password: string;
269
- }
270
- interface AccountResendOtpResponse {
271
- /** Always `A new verification code has been sent to your email.` */
272
- message: string;
273
- /** The address the code was sent to, normalized: lowercased, with any `+tag` removed from the local part (`Dev+test@Example.com` becomes `dev@example.com`). */
274
- email: string;
275
- }
276
- interface AccountVerifyEmailParams {
277
- /** Email used during `POST /programmatic/register/`. */
278
- email: string;
279
- /** 6-character alphanumeric code from the verification email. Codes expire 10 minutes after the most recent code was sent. */
280
- code: string;
281
- }
282
-
283
212
  /** How current the AML datasets were when a screening ran. Dates are never estimated. */
284
213
  interface AMLDatasetFreshness {
285
214
  /** When Didit read the dataset catalog this freshness comes from. */
@@ -507,7 +436,7 @@ interface AMLScreening {
507
436
  warnings?: AMLScreeningWarnings[];
508
437
  }
509
438
  interface AMLScreeningHits {
510
- /** Unique identifier of the match */
439
+ /** Didit's stable identifier for the hit: `hit_` followed by 24 hexadecimal characters. The same matched entity keeps the same `id` when the subject is screened again. Pass it as `hit_id` to the AML hit review endpoints. */
511
440
  id?: string;
512
441
  /** Source URL for the match */
513
442
  url?: string;
@@ -523,8 +452,8 @@ interface AMLScreeningHits {
523
452
  target?: boolean | null;
524
453
  /** Caption or title of the match */
525
454
  caption?: string;
526
- /** List of dataset categories where the match was found. Indicates whether the entity appeared in PEP lists (with level), sanctions databases, adverse media, warnings/regulatory enforcement, or other compliance datasets. */
527
- datasets?: ("PEP" | "PEP Level 1" | "PEP Level 2" | "PEP Level 3" | "PEP Level 4" | "Sanctions" | "Adverse Media" | "Warnings and Regulatory Enforcement" | "Fitness and Probity" | "SIP" | "SIE" | "Insolvency" | (string & {}))[];
455
+ /** List of dataset categories where the match was found. Indicates whether the entity appeared in PEP lists (with level), sanctions databases, adverse media, warnings/regulatory enforcement, or other compliance datasets. `Other Lists` when the entity's source states none of these categories. */
456
+ datasets?: ("PEP" | "PEP Level 1" | "PEP Level 2" | "PEP Level 3" | "PEP Level 4" | "Sanctions" | "Adverse Media" | "Warnings and Regulatory Enforcement" | "Fitness and Probity" | "SIP" | "SIE" | "Insolvency" | "Other Lists" | (string & {}))[];
528
457
  /** Additional features of the match */
529
458
  features?: Record<string, unknown> | null;
530
459
  /** RCA name if applicable */
@@ -746,6 +675,8 @@ interface AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetails {
746
675
  interface AMLScreeningRun {
747
676
  /** Identifier of this screening run. */
748
677
  uuid: string;
678
+ /** The monitoring run this screening belongs to. Every verification screened in the same run shares it. */
679
+ run_id: string;
749
680
  /** When this subject's re-screen finished. Results are ordered by it, newest first. */
750
681
  completed_at: Date;
751
682
  /** When the monitoring batch this re-screen belongs to started. */
@@ -762,6 +693,10 @@ interface AMLScreeningRun {
762
693
  score: number | null;
763
694
  /** Number of hits this run left the check in. */
764
695
  total_hits: number | null;
696
+ /** Number of hits this run found that the check did not have before it. `0` when nothing new was found; `null` when the run failed or was recorded before this count existed. */
697
+ new_hits: number | null;
698
+ /** Number of entities this run screened for the verification: `1` when the subject was screened, `0` when the run failed. */
699
+ entities_screened: number;
765
700
  /** Dataset freshness behind this run, or `null` when no dates were available. */
766
701
  dataset_freshness: AMLDatasetFreshness | null;
767
702
  }
@@ -773,7 +708,7 @@ interface AMLScreeningScreenedData {
773
708
  }
774
709
  interface AMLScreeningWarnings {
775
710
  /** The feature that generated this warning. The value identifies the feature block the warning belongs to. Within an AML screening this is typically `AML`, but the enum above is authoritative across all feature warnings on the decision payload. */
776
- feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | (string & {});
711
+ feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | "GEOLOCATION" | "SIGNATURE" | (string & {});
777
712
  risk?: string;
778
713
  additional_data?: Record<string, unknown> | null;
779
714
  log_type?: string;
@@ -815,7 +750,7 @@ interface AddressValidationResultAddress {
815
750
  /** ISO 3166-1 alpha-2 country code. */
816
751
  country?: string | null;
817
752
  }
818
- /** Full application record. `uuid`, `client_id`, and `api_key` never change after creation. */
753
+ /** Full application record. `uuid`, `client_id`, and `api_key` never change after creation. `data_location` doesn't either, except once on the live application created with your organization, before it is used (see the update request). */
819
754
  interface Application {
820
755
  /** Application UUID. Use as `{app_id}` in subsequent calls. */
821
756
  uuid?: string;
@@ -836,6 +771,8 @@ interface Application {
836
771
  /** Internal description for the application (not shown to end users). */
837
772
  description?: string | null;
838
773
  created_at?: Date;
774
+ /** Where the application's verification data is stored and processed, chosen when the application is created. `eu` is the European Union (Ireland), the default. `au` (Australia, Sydney) and `mx` (Mexico) are coming soon: a request that names them answers 400 `This data location is not available yet.` An organization's Sandbox application is always in the European Union. */
775
+ data_location?: ApplicationDataLocation;
839
776
  /** The application's products. Always all three, in this order: `identity`, `transactions`, `authentication`. A new application has `identity` enabled with every module on, and `transactions` and `authentication` disabled. Read-only: a `products` key in a create or update body is ignored. */
840
777
  products?: ApplicationProduct[];
841
778
  }
@@ -1040,6 +977,33 @@ interface ApplicationAnalyticsSummary {
1040
977
  resubmission_time_series: ApplicationAnalyticsResubmissionPoint[];
1041
978
  original_status_time_series: ApplicationAnalyticsOriginalStatusPoint[];
1042
979
  }
980
+ /** Today's verifications by local hour against the same weekday last week. */
981
+ interface ApplicationAnalyticsToday {
982
+ /** The IANA time zone the day and its hours are in. */
983
+ time_zone: string;
984
+ /** Today in that time zone. */
985
+ date: string;
986
+ /** The local hour it is now. */
987
+ current_hour: number;
988
+ /** The comparison day: the same weekday one week before. */
989
+ previous_date: string;
990
+ /** Verifications created today, per local hour from 00:00. The hours still to come are 0. */
991
+ hours: number[];
992
+ /** Verifications created on the comparison day, per local hour from 00:00. */
993
+ previous_hours: number[];
994
+ /** Verifications created today so far. */
995
+ total: number;
996
+ /** Verifications created on the comparison day up to the same local time. */
997
+ previous_total_so_far: number;
998
+ /** Of today's verifications, how many are approved, waiting in review and declined now. The rest are not finished yet. */
999
+ outcomes: ApplicationAnalyticsTodayOutcomes;
1000
+ }
1001
+ /** Of today's verifications, how many are approved, waiting in review and declined now. The rest are not finished yet. */
1002
+ interface ApplicationAnalyticsTodayOutcomes {
1003
+ approved: number;
1004
+ in_review: number;
1005
+ declined: number;
1006
+ }
1043
1007
  interface ApplicationAnalyticsVerificationTimePoint {
1044
1008
  /** Period key: `YYYY-MM-DD` for a day, the Monday of a week, or `YYYY-MM` for a month, following `grouping_mode`. */
1045
1009
  date?: string;
@@ -1162,7 +1126,11 @@ interface ApplicationCredentialsSummary {
1162
1126
  client_id?: string;
1163
1127
  /** Use this as `x-api-key` on every verification API call. New keys start with `sk_live_` (live application) or `sk_test_` (sandbox application), followed by 43 URL-safe characters (letters, digits, `-` and `_`). Keys created before this format have no prefix and keep working unchanged. */
1164
1128
  api_key?: string;
1129
+ /** Where the application's verification data is stored and processed, chosen when the application is created. `eu` is the European Union (Ireland), the default. `au` (Australia, Sydney) and `mx` (Mexico) are coming soon: a request that names them answers 400 `This data location is not available yet.` An organization's Sandbox application is always in the European Union. */
1130
+ data_location?: ApplicationDataLocation;
1165
1131
  }
1132
+ /** Where the application's verification data is stored and processed, chosen when the application is created. `eu` is the European Union (Ireland), the default. `au` (Australia, Sydney) and `mx` (Mexico) are coming soon: a request that names them answers 400 `This data location is not available yet.` An organization's Sandbox application is always in the European Union. */
1133
+ type ApplicationDataLocation = "eu" | "au" | "mx" | (string & {});
1166
1134
  /** One product of an application and its state. Read-only: the application endpoints return it and ignore it in a request body. */
1167
1135
  interface ApplicationProduct {
1168
1136
  /** `identity` (Identity verification), `transactions` (Transaction monitoring) or `authentication` (Authentication). */
@@ -1429,6 +1397,13 @@ interface BankVerificationResultRoute {
1429
1397
  /** The data the connection asked for, for example `ownership` or `balances`. */
1430
1398
  requested_scopes?: string[];
1431
1399
  }
1400
+ /** When the live biometric data of this session is deleted. */
1401
+ interface BiometricRetention {
1402
+ /** Codes of the US states whose biometric rules set a deletion limit for this person (`US` when the state is unknown). Empty when none applies. */
1403
+ jurisdictions: string[];
1404
+ /** The date the live biometric data (face images and templates) of this session is deleted, from your application's retention setting and, where one applies, the legal limit for the person's jurisdiction. `null` when no date applies yet. */
1405
+ deletes_at: Date | null;
1406
+ }
1432
1407
  /** One blocklisted face, identity document, phone number or email address of a verification session. Fields that do not apply to the item's `type` are `null`. */
1433
1408
  interface BlocklistedItem {
1434
1409
  /** What was blocklisted. */
@@ -2432,6 +2407,14 @@ type DigitalIdWalletApiEudiWalletVerificationStartCountryEnum = "AUT" | "BEL" |
2432
2407
  type DigitalIdWalletApiFranceconnectWalletVerificationStartCountryEnum = "FRA" | (string & {});
2433
2408
  /** * `FIN` - FIN */
2434
2409
  type DigitalIdWalletApiFtnWalletVerificationStartCountryEnum = "FIN" | (string & {});
2410
+ /**
2411
+ * * `USA` - USA
2412
+ * * `GBR` - GBR
2413
+ * * `BRA` - BRA
2414
+ * * `SGP` - SGP
2415
+ * * `TWN` - TWN
2416
+ */
2417
+ type DigitalIdWalletApiGoogleWalletWalletVerificationStartCountryEnum = "USA" | "GBR" | "BRA" | "SGP" | "TWN" | (string & {});
2435
2418
  /** * `BRA` - BRA */
2436
2419
  type DigitalIdWalletApiGovbrWalletVerificationStartCountryEnum = "BRA" | (string & {});
2437
2420
  /** * `EST` - EST */
@@ -2441,8 +2424,9 @@ type DigitalIdWalletApiIdinWalletVerificationStartCountryEnum = "NLD" | (string
2441
2424
  /**
2442
2425
  * * `redirect` - redirect
2443
2426
  * * `in_app` - in_app
2427
+ * * `digital_credentials` - digital_credentials
2444
2428
  */
2445
- type DigitalIdWalletApiInteractionEnum = "redirect" | "in_app" | (string & {});
2429
+ type DigitalIdWalletApiInteractionEnum = "redirect" | "in_app" | "digital_credentials" | (string & {});
2446
2430
  /**
2447
2431
  * * `BEL` - BEL
2448
2432
  * * `LUX` - LUX
@@ -2484,6 +2468,7 @@ interface DigitalIdWalletApiWalletCatalogEntry {
2484
2468
  /**
2485
2469
  * * `redirect` - redirect
2486
2470
  * * `in_app` - in_app
2471
+ * * `digital_credentials` - digital_credentials
2487
2472
  */
2488
2473
  interaction: DigitalIdWalletApiInteractionEnum;
2489
2474
  required_fields: string[];
@@ -2493,6 +2478,12 @@ interface DigitalIdWalletApiWalletCatalogEntry {
2493
2478
  interface DigitalIdWalletApiWalletCatalogResponse {
2494
2479
  wallets: DigitalIdWalletApiWalletCatalogEntry[];
2495
2480
  }
2481
+ interface DigitalIdWalletApiWalletDigitalCredentialsRequest {
2482
+ /** openid4vp-v1-signed. */
2483
+ protocol: string;
2484
+ /** Pass as is: navigator.credentials.get({digital: request}) in the browser, or JSON.stringify(request) as GetDigitalCredentialOption's requestJson on Android. Signed by Didit for your application. */
2485
+ request: Record<string, unknown>;
2486
+ }
2496
2487
  interface DigitalIdWalletApiWalletIdentity {
2497
2488
  full_name: string | null;
2498
2489
  first_name: string | null;
@@ -2505,14 +2496,17 @@ interface DigitalIdWalletApiWalletIdentity {
2505
2496
  }
2506
2497
  interface DigitalIdWalletApiWalletNextAction {
2507
2498
  /**
2508
- * redirect: send the user's browser to url. confirm_in_app: show verification_code to the user, who checks it matches the code in their wallet app and confirms there; then poll.
2499
+ * redirect: send the user's browser to url. confirm_in_app: show verification_code to the user, who checks it matches the code in their wallet app and confirms there; then poll. request_digital_credential: in a user gesture on the origin you started with, ask the wallet with digital_credentials.request, then send what it returns to POST .../verifications/{request_id}/response/.
2509
2500
  *
2510
2501
  * * `redirect` - redirect
2511
2502
  * * `confirm_in_app` - confirm_in_app
2503
+ * * `request_digital_credential` - request_digital_credential
2512
2504
  */
2513
2505
  type: DigitalIdWalletApiWalletNextActionTypeEnum;
2514
2506
  /** redirect only: where the user signs in with the wallet. */
2515
2507
  url?: string;
2508
+ /** request_digital_credential only: the request to hand to the wallet. */
2509
+ digital_credentials?: DigitalIdWalletApiWalletDigitalCredentialsRequest;
2516
2510
  /** confirm_in_app only: the 4-digit comparison code the wallet app shows too. */
2517
2511
  verification_code?: string;
2518
2512
  /** confirm_in_app only: how often to call POST .../verifications/{request_id}/poll/ for prompt feedback. Didit also polls pending sign-ins in the background, so the webhook reports the outcome even when you do not poll. */
@@ -2521,8 +2515,9 @@ interface DigitalIdWalletApiWalletNextAction {
2521
2515
  /**
2522
2516
  * * `redirect` - redirect
2523
2517
  * * `confirm_in_app` - confirm_in_app
2518
+ * * `request_digital_credential` - request_digital_credential
2524
2519
  */
2525
- type DigitalIdWalletApiWalletNextActionTypeEnum = "redirect" | "confirm_in_app" | (string & {});
2520
+ type DigitalIdWalletApiWalletNextActionTypeEnum = "redirect" | "confirm_in_app" | "request_digital_credential" | (string & {});
2526
2521
  /** One standalone wallet verification, as every wallet endpoint answers it. */
2527
2522
  interface DigitalIdWalletApiWalletVerificationResponse {
2528
2523
  request_id: string;
@@ -2612,8 +2607,20 @@ interface EmailIntelligence {
2612
2607
  is_breached?: boolean | null;
2613
2608
  /** Number of known breaches containing the address. */
2614
2609
  no_of_breaches?: number | null;
2615
- /** Machine-readable codes explaining the score. Values can grow over time, so do not reject unknown codes. */
2616
- reason_codes?: string[];
2610
+ /** Signals that explain the score, each with a stable Didit code, a direction, a message and an impact level. New codes can appear over time, so do not reject unknown codes. */
2611
+ reason_codes?: EmailIntelligenceReasonCodes[];
2612
+ }
2613
+ interface EmailIntelligenceReasonCodes {
2614
+ /** Stable Didit identifier of the signal, for example `IR-5AC67A32`. Opaque: group and filter on it, do not parse it. */
2615
+ code?: string;
2616
+ /** For a risk flag (for example `voip`, `leaked`, `disposable`, `spam_trap`), its value: a boolean, a level or a date. Null for a scored reason code. */
2617
+ value?: unknown;
2618
+ /** Whether the signal raised the risk or added trust. */
2619
+ direction?: "risk" | "trust" | (string & {});
2620
+ /** Human-readable explanation of the signal, in English. */
2621
+ message?: string;
2622
+ /** How strongly the signal moved the score, for example `low`, `medium` or `high`. */
2623
+ impact_level?: string | null;
2617
2624
  }
2618
2625
  /** Another session of your application that used the same email address with a different `vendor_data`. */
2619
2626
  interface EmailMatchItem {
@@ -2778,6 +2785,8 @@ interface EmailVerificationCheckResponseEmail {
2778
2785
  matches?: EmailVerificationCheckResponseEmailMatches[];
2779
2786
  /** Social footprint of the email address: the online platforms it is registered on. Present only when `enable_social` was set and the check completed. Every count may be null when no data was returned for it. `profiles_registered: 0` means the platforms were checked and the email address was found on none of them - a valid, billable answer and a common synthetic-identity signal. */
2780
2787
  email_social?: EmailSocialFootprint | null;
2788
+ /** Email intelligence signals. Present only when `enable_enrichment` was `true` on the check. */
2789
+ email_intelligence?: EmailIntelligence;
2781
2790
  }
2782
2791
  interface EmailVerificationCheckResponseEmailBreaches {
2783
2792
  /** Breach identifier. */
@@ -3220,6 +3229,206 @@ type FraudStatusEnum = "planned" | "completed" | "skipped" | "failed" | (string
3220
3229
  * * `external_id` - External Id
3221
3230
  */
3222
3231
  type FraudTypeEnum = "email" | "phone" | "national_id" | "tax_number" | "passport_number" | "driving_licence_number" | "residence_permit_number" | "voter_id" | "external_id" | (string & {});
3232
+ /** One attempt of a Location verification step: the same keys as `geolocation_checks[]` except `warnings`, plus when Didit received it. */
3233
+ interface GeolocationAttempt {
3234
+ /** Workflow node that produced this result, so a workflow with two Location verification steps stays readable. */
3235
+ node_id?: string | null;
3236
+ /** Feature-level status of this Location verification step, resolved from its warnings. Independent of the session `status`. */
3237
+ status?: "Not Finished" | "Approved" | "Declined" | "In Review" | "Resub Requested" | (string & {});
3238
+ /** What happened on this attempt. */
3239
+ outcome?: "verified" | "low_accuracy" | "accuracy_undetermined" | "stale" | "approximate" | "denied" | "restricted" | "unavailable" | "timeout" | "mock_detected" | "outside_geofence" | "in_blocked_area" | "anonymizer_detected" | "skipped" | "replay_rejected" | "unsupported_client" | (string & {}) | null;
3240
+ /** What the operating system or browser granted. `not_requested` means the step uses the connection's IP location only, so the person is never asked for a permission. */
3241
+ permission?: "granted_precise" | "granted_approximate" | "denied" | "restricted" | "unavailable" | "timeout" | "dismissed" | "not_requested" | (string & {}) | null;
3242
+ /** WGS84 latitude of the fix. `null` when there is no fix. */
3243
+ latitude?: number | null;
3244
+ /** WGS84 longitude of the fix. `null` when there is no fix. */
3245
+ longitude?: number | null;
3246
+ /** Radius of uncertainty in metres, at the confidence level in `accuracy_confidence`. */
3247
+ accuracy_m?: number | null;
3248
+ /** Confidence level the platform attaches to `accuracy_m`: `p95` (browsers), `p68` (Android) or `unspecified` (iOS). */
3249
+ accuracy_confidence?: "p95" | "p68" | "unspecified" | (string & {}) | null;
3250
+ /** When the device took the fix, by its own clock. */
3251
+ measured_at?: Date | null;
3252
+ /** Seconds between the device taking the fix and Didit receiving it. */
3253
+ age_seconds?: number | null;
3254
+ /** Where the fix came from, when the platform says. `ip` means the position is the connection's IP location. */
3255
+ source?: "gps" | "fused" | "network" | "wifi" | "cell" | "browser" | "unknown" | "ip" | (string & {}) | null;
3256
+ /** The client that produced the fix. */
3257
+ platform?: "web" | "ios" | "android" | "react_native" | "flutter" | (string & {}) | null;
3258
+ /** Version of the SDK that produced the fix. */
3259
+ sdk_version?: string | null;
3260
+ /** `true` when the device says the fix came from a mock location provider or simulation software. `null` when the platform does not report it (browsers cannot tell); `null` is not `false`. */
3261
+ is_mock?: boolean | null;
3262
+ /** iOS only: `true` when the fix came from an external accessory. `null` elsewhere. */
3263
+ produced_by_accessory?: boolean | null;
3264
+ /** Whether device attestation backs the fix. `unsupported` is what browsers report, because the web has no attestation mechanism; it is not a failure. */
3265
+ integrity?: "attested" | "not_attested" | "failed" | "unsupported" | "not_determined" | (string & {});
3266
+ /** ISO 3166-1 alpha-2 country the fix is in. */
3267
+ country_code?: string | null;
3268
+ /** ISO 3166-2 subdivision the fix is in. */
3269
+ region_code?: string | null;
3270
+ /** Nearest populated place, a label for reviewers. */
3271
+ city?: string | null;
3272
+ /** Result of the country and area rules of the step. */
3273
+ geofence?: GeolocationAttemptGeofence;
3274
+ /** `true` when `geofence.result` is `inside`, `false` when `outside`, `null` otherwise. */
3275
+ inside_geofence?: boolean | null;
3276
+ /** Which position the area result was judged from: the `device` fix, or the connection's `ip` location. */
3277
+ geofence_basis?: "device" | "ip" | (string & {}) | null;
3278
+ /** Ids of the configured allowed areas the position is inside. */
3279
+ inside_areas?: string[];
3280
+ /** Ids of the configured blocked areas the position is in. */
3281
+ blocked_areas?: string[];
3282
+ /** Where the step takes the position from, as configured: the device checked against the IP location, the device only, or the IP location only. */
3283
+ position_source?: "device_and_ip" | "device_only" | "ip_only" | (string & {}) | null;
3284
+ /** What the connection and device look like, each `true`, `false` or `null` when the source cannot tell. */
3285
+ anonymizers?: GeolocationAttemptAnonymizers | null;
3286
+ /** Distance to the session's IP location after both uncertainty radii are subtracted; `0` when they overlap. */
3287
+ ip_distance_km?: number | null;
3288
+ /** Combined radius that was subtracted: the IP location's radius plus this fix's accuracy. */
3289
+ ip_distance_uncertainty_km?: number | null;
3290
+ /** Whether `ip_distance_km` is within the distance configured on the step. `null` when either side is unknown. */
3291
+ ip_consistent?: boolean | null;
3292
+ /** Distance to the geocoded address on the ID document or proof of address. `null` when no address is on file. */
3293
+ document_distance_km?: number | null;
3294
+ /** Whether the step's travel tolerance excused the distance from the address. `null` when tolerance is off. */
3295
+ travel_excused?: boolean | null;
3296
+ /** On the final attempt: this check plus the same person's earlier mismatches in a row. */
3297
+ consecutive_mismatches?: number | null;
3298
+ /** Number of this attempt within the node, starting at 1. */
3299
+ attempts?: number;
3300
+ /** The consent the person gave before the system prompt, recorded with the wording version and language they saw. */
3301
+ consent?: GeolocationAttemptConsent | null;
3302
+ /** When Didit received the attempt. */
3303
+ received_at?: Date | null;
3304
+ created_at?: Date;
3305
+ }
3306
+ /** What the connection and device look like, each `true`, `false` or `null` when the source cannot tell. */
3307
+ interface GeolocationAttemptAnonymizers {
3308
+ vpn?: boolean | null;
3309
+ proxy?: boolean | null;
3310
+ tor?: boolean | null;
3311
+ spoofing?: boolean | null;
3312
+ emulator?: boolean | null;
3313
+ }
3314
+ /** The consent the person gave before the system prompt, recorded with the wording version and language they saw. */
3315
+ interface GeolocationAttemptConsent {
3316
+ accepted_at?: Date;
3317
+ version?: string | null;
3318
+ locale?: string | null;
3319
+ }
3320
+ /** Result of the country and area rules of the step. */
3321
+ interface GeolocationAttemptGeofence {
3322
+ /** Whether the step applies any country or area rule. */
3323
+ enabled?: boolean;
3324
+ /** Where the position sits relative to the rules. `undetermined` means the accuracy circle straddles the border or the position resolved to no country; it is not evidence of being outside. */
3325
+ result?: "inside" | "outside" | "undetermined" | (string & {}) | null;
3326
+ }
3327
+ /** One Location verification result, the accepted attempt of one workflow node. Measurement, uncertainty and authenticity are separate keys, so a precise unattested fix reads differently from an imprecise attested one. */
3328
+ interface GeolocationCheck {
3329
+ /** Workflow node that produced this result, so a workflow with two Location verification steps stays readable. */
3330
+ node_id?: string | null;
3331
+ /** Feature-level status of this Location verification step, resolved from its warnings. Independent of the session `status`. */
3332
+ status?: "Not Finished" | "Approved" | "Declined" | "In Review" | "Resub Requested" | (string & {});
3333
+ /** What happened on this attempt. */
3334
+ outcome?: "verified" | "low_accuracy" | "accuracy_undetermined" | "stale" | "approximate" | "denied" | "restricted" | "unavailable" | "timeout" | "mock_detected" | "outside_geofence" | "in_blocked_area" | "anonymizer_detected" | "skipped" | "replay_rejected" | "unsupported_client" | (string & {}) | null;
3335
+ /** What the operating system or browser granted. `not_requested` means the step uses the connection's IP location only, so the person is never asked for a permission. */
3336
+ permission?: "granted_precise" | "granted_approximate" | "denied" | "restricted" | "unavailable" | "timeout" | "dismissed" | "not_requested" | (string & {}) | null;
3337
+ /** WGS84 latitude of the fix. `null` when there is no fix. */
3338
+ latitude?: number | null;
3339
+ /** WGS84 longitude of the fix. `null` when there is no fix. */
3340
+ longitude?: number | null;
3341
+ /** Radius of uncertainty in metres, at the confidence level in `accuracy_confidence`. */
3342
+ accuracy_m?: number | null;
3343
+ /** Confidence level the platform attaches to `accuracy_m`: `p95` (browsers), `p68` (Android) or `unspecified` (iOS). */
3344
+ accuracy_confidence?: "p95" | "p68" | "unspecified" | (string & {}) | null;
3345
+ /** When the device took the fix, by its own clock. */
3346
+ measured_at?: Date | null;
3347
+ /** Seconds between the device taking the fix and Didit receiving it. */
3348
+ age_seconds?: number | null;
3349
+ /** Where the fix came from, when the platform says. `ip` means the position is the connection's IP location. */
3350
+ source?: "gps" | "fused" | "network" | "wifi" | "cell" | "browser" | "unknown" | "ip" | (string & {}) | null;
3351
+ /** The client that produced the fix. */
3352
+ platform?: "web" | "ios" | "android" | "react_native" | "flutter" | (string & {}) | null;
3353
+ /** Version of the SDK that produced the fix. */
3354
+ sdk_version?: string | null;
3355
+ /** `true` when the device says the fix came from a mock location provider or simulation software. `null` when the platform does not report it (browsers cannot tell); `null` is not `false`. */
3356
+ is_mock?: boolean | null;
3357
+ /** iOS only: `true` when the fix came from an external accessory. `null` elsewhere. */
3358
+ produced_by_accessory?: boolean | null;
3359
+ /** Whether device attestation backs the fix. `unsupported` is what browsers report, because the web has no attestation mechanism; it is not a failure. */
3360
+ integrity?: "attested" | "not_attested" | "failed" | "unsupported" | "not_determined" | (string & {});
3361
+ /** ISO 3166-1 alpha-2 country the fix is in. */
3362
+ country_code?: string | null;
3363
+ /** ISO 3166-2 subdivision the fix is in. */
3364
+ region_code?: string | null;
3365
+ /** Nearest populated place, a label for reviewers. */
3366
+ city?: string | null;
3367
+ /** Result of the country and area rules of the step. */
3368
+ geofence?: GeolocationCheckGeofence;
3369
+ /** `true` when `geofence.result` is `inside`, `false` when `outside`, `null` otherwise. */
3370
+ inside_geofence?: boolean | null;
3371
+ /** Which position the area result was judged from: the `device` fix, or the connection's `ip` location. */
3372
+ geofence_basis?: "device" | "ip" | (string & {}) | null;
3373
+ /** Ids of the configured allowed areas the position is inside. */
3374
+ inside_areas?: string[];
3375
+ /** Ids of the configured blocked areas the position is in. */
3376
+ blocked_areas?: string[];
3377
+ /** Where the step takes the position from, as configured: the device checked against the IP location, the device only, or the IP location only. */
3378
+ position_source?: "device_and_ip" | "device_only" | "ip_only" | (string & {}) | null;
3379
+ /** What the connection and device look like, each `true`, `false` or `null` when the source cannot tell. */
3380
+ anonymizers?: GeolocationCheckAnonymizers | null;
3381
+ /** Distance to the session's IP location after both uncertainty radii are subtracted; `0` when they overlap. */
3382
+ ip_distance_km?: number | null;
3383
+ /** Combined radius that was subtracted: the IP location's radius plus this fix's accuracy. */
3384
+ ip_distance_uncertainty_km?: number | null;
3385
+ /** Whether `ip_distance_km` is within the distance configured on the step. `null` when either side is unknown. */
3386
+ ip_consistent?: boolean | null;
3387
+ /** Distance to the geocoded address on the ID document or proof of address. `null` when no address is on file. */
3388
+ document_distance_km?: number | null;
3389
+ /** Whether the step's travel tolerance excused the distance from the address. `null` when tolerance is off. */
3390
+ travel_excused?: boolean | null;
3391
+ /** On the final attempt: this check plus the same person's earlier mismatches in a row. */
3392
+ consecutive_mismatches?: number | null;
3393
+ /** Number of this attempt within the node, starting at 1. */
3394
+ attempts?: number;
3395
+ /** The consent the person gave before the system prompt, recorded with the wording version and language they saw. */
3396
+ consent?: GeolocationCheckConsent | null;
3397
+ /** Warnings this Location verification step raised, with `feature` set to `GEOLOCATION`. Warning codes start with `LOCATION_`. */
3398
+ warnings?: GeolocationCheckWarnings[];
3399
+ }
3400
+ /** What the connection and device look like, each `true`, `false` or `null` when the source cannot tell. */
3401
+ interface GeolocationCheckAnonymizers {
3402
+ vpn?: boolean | null;
3403
+ proxy?: boolean | null;
3404
+ tor?: boolean | null;
3405
+ spoofing?: boolean | null;
3406
+ emulator?: boolean | null;
3407
+ }
3408
+ /** The consent the person gave before the system prompt, recorded with the wording version and language they saw. */
3409
+ interface GeolocationCheckConsent {
3410
+ accepted_at?: Date;
3411
+ version?: string | null;
3412
+ locale?: string | null;
3413
+ }
3414
+ /** Result of the country and area rules of the step. */
3415
+ interface GeolocationCheckGeofence {
3416
+ /** Whether the step applies any country or area rule. */
3417
+ enabled?: boolean;
3418
+ /** Where the position sits relative to the rules. `undetermined` means the accuracy circle straddles the border or the position resolved to no country; it is not evidence of being outside. */
3419
+ result?: "inside" | "outside" | "undetermined" | (string & {}) | null;
3420
+ }
3421
+ interface GeolocationCheckWarnings {
3422
+ /** The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload. */
3423
+ feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | "GEOLOCATION" | "SIGNATURE" | (string & {});
3424
+ risk?: string;
3425
+ additional_data?: Record<string, unknown> | null;
3426
+ log_type?: string;
3427
+ short_description?: string;
3428
+ long_description?: string;
3429
+ /** The workflow graph node ID that generated this warning */
3430
+ node_id?: string;
3431
+ }
3223
3432
  interface IPRiskResponse {
3224
3433
  /** Id of the API session created for this request. Store it with `vendor_data` if you need to correlate the result with later webhooks or console activity. */
3225
3434
  request_id: string;
@@ -3561,6 +3770,50 @@ interface KYBKeyPeoplePartyVerificationWorkflowFeatures {
3561
3770
  /** Feature status, `Not Finished` until it runs. */
3562
3771
  status: string;
3563
3772
  }
3773
+ /** The cap table the registry proved, as it stood when the ownership tier was delivered: direct `shareholders` and `beneficial_owners`. Null when the registry proved no ownership. It never carries the registry source's own rows; read `company.beneficial_owners` and `company.ownership` for the current record. */
3774
+ interface KYBOwnershipStructure {
3775
+ shareholders: KYBOwnershipStructureOwner[];
3776
+ beneficial_owners: KYBOwnershipStructureOwner[];
3777
+ }
3778
+ /** One owner of the ownership snapshot: the same registry identity and stake as `company.beneficial_owners[]`, and its canonical `shareholding`. */
3779
+ interface KYBOwnershipStructureOwner {
3780
+ /** Owner name as the registry states it. */
3781
+ name: string | null;
3782
+ /** Given name, for a natural person, when the registry states it. */
3783
+ first_name: string | null;
3784
+ /** Family name, for a natural person, when the registry states it. */
3785
+ last_name: string | null;
3786
+ /** Date of birth (ISO 8601) when the registry publishes it. */
3787
+ date_of_birth: string | null;
3788
+ /** Country of birth when the registry publishes it. */
3789
+ country_of_birth: string | null;
3790
+ /** Company name, for a corporate owner. */
3791
+ company_name: string | null;
3792
+ /** Registration number, for a corporate owner. */
3793
+ registration_number: string | null;
3794
+ /** Whether the owner is a natural person or a company. */
3795
+ entity_type: "person" | "company" | (string & {}) | null;
3796
+ /** Nationality when the registry states it. */
3797
+ nationality: string | null;
3798
+ /** The owner's title or role as the registry prints it. */
3799
+ designation: string | null;
3800
+ /** `shareholder` for a direct holder, `ubo` for a beneficial owner. */
3801
+ roles: string[];
3802
+ /** Lower bound of the stake, in percent (equal to the upper bound for an exact stake). */
3803
+ ownership_min_shares: string | null;
3804
+ /** Upper bound of the stake, in percent. */
3805
+ ownership_max_shares: string | null;
3806
+ /** Lower bound of the voting rights, in percent. */
3807
+ voting_min_shares: string | null;
3808
+ /** Upper bound of the voting rights, in percent. */
3809
+ voting_max_shares: string | null;
3810
+ /** Date the holding or appointment started (ISO 8601). */
3811
+ appointment_date: string | null;
3812
+ /** False for a former owner. */
3813
+ is_active: boolean | null;
3814
+ /** What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`. */
3815
+ shareholding: KYBRegistryShareholding | null;
3816
+ }
3564
3817
  /** An address the registry states, in the same shape for every country and registry source. Every key is always present; a part the registry does not publish is null. */
3565
3818
  interface KYBRegistryAddress {
3566
3819
  /** Address type in lower case: `registered` for the registered office; other types as the registry names them (for example `postal`, `office`). `null` when the registry does not say what the address is. */
@@ -3580,6 +3833,86 @@ interface KYBRegistryAddress {
3580
3833
  /** The registry's own label for the address, when it gives one. */
3581
3834
  description: string | null;
3582
3835
  }
3836
+ /** Didit's normalized registry detail for the company: the ownership outcome (`ownership_error`, `section_errors`, `ubo_resolution`, `lite_enrichment`), the corrections made with update-data, and registry facts that have no field of their own. It never carries the registry source's own record. Every key is optional and present only when the company has a value for it; new keys may be added. Read the canonical fields (`addresses`, `industries`, `ownership`, `beneficial_owners[].shareholding`) for anything they cover. */
3837
+ interface KYBRegistryData {
3838
+ /** Company name as corrected in the console. */
3839
+ company_name?: string;
3840
+ /** Registration number as the registry or a console correction states it. */
3841
+ registration_number?: string;
3842
+ /** Country of the registration as the registry or a console correction states it. */
3843
+ country_code?: string;
3844
+ /** Region or state of the registration. */
3845
+ region?: string;
3846
+ /** Incorporation date (ISO 8601). */
3847
+ incorporation_date?: string;
3848
+ /** Registration date (ISO 8601) when the registry states one apart from the incorporation date. */
3849
+ registration_date?: string;
3850
+ /** Dissolution date (ISO 8601) when the registry states one. */
3851
+ dissolution_date?: string;
3852
+ /** Tax identification number. */
3853
+ tax_number?: string;
3854
+ /** VAT number. */
3855
+ vat_number?: string;
3856
+ /** Legal address as corrected in the console. */
3857
+ legal_address?: string;
3858
+ /** Registered address as the registry states it. */
3859
+ registered_address?: string;
3860
+ /** Legal form. */
3861
+ company_type?: string;
3862
+ /** Company status at the registry. */
3863
+ registry_status?: string;
3864
+ /** Verification status. */
3865
+ verification_status?: string;
3866
+ /** Other names the company trades or traded under. */
3867
+ alternative_names?: string;
3868
+ /** Activity description. */
3869
+ nature_of_business?: string;
3870
+ /** Registered capital as printed. */
3871
+ registered_capital?: string;
3872
+ /** Registered capital amount, as a decimal string. */
3873
+ registered_capital_amount?: string;
3874
+ /** Registered capital currency (ISO 4217). */
3875
+ registered_capital_currency?: string;
3876
+ /** Website. */
3877
+ website?: string;
3878
+ /** Contact email. */
3879
+ email?: string;
3880
+ /** Contact phone. */
3881
+ phone?: string;
3882
+ /** Legal Entity Identifier (LEI). */
3883
+ legal_entity_identifier?: string;
3884
+ /** Place of registration. */
3885
+ location_of_registration?: string;
3886
+ /** Governance scheme when the registry exposes it. */
3887
+ control_scheme?: string;
3888
+ /** Why a requested ownership tier was not delivered, in the same codes as `ownership.unavailable_reason`. `no_owners_on_record` (the registry answered and names no owner) and `ownership_section_unavailable` (the registry did not return the ownership section) are different findings. */
3889
+ ownership_error?: "no_owners_on_record" | "no_natural_person_owner" | "ownership_section_unavailable" | "company_not_found" | "ambiguous_company_match" | "missing_registration_number" | "entity_type_not_covered" | "provider_unavailable" | "other" | (string & {});
3890
+ /** Sections the registry did not return, keyed by section (`officers`, `shareholders`, `group_structure`). A section listed here was never delivered: an empty list next to it says nothing about the company. */
3891
+ section_errors?: Record<string, KYBRegistrySectionError>;
3892
+ /** How the UBO tier walked the ownership chain above the company. */
3893
+ ubo_resolution?: KYBRegistryUboResolution;
3894
+ /** Blank Lite profile fields another of the country's registry sources filled. The source is not named. */
3895
+ lite_enrichment?: KYBRegistryLiteEnrichment;
3896
+ /** The register's own fields for the company, keyed as the register names them, as plain values (legacy records). Only fields reviewed as registry facts are included. */
3897
+ registry_metadata?: Record<string, string | number | boolean>;
3898
+ /** The official registers the record was read from (legacy records). Other sources are not named. */
3899
+ registry_sources?: KYBRegistrySource[];
3900
+ /** Names the company was registered under before (legacy records). */
3901
+ previous_names?: string[];
3902
+ /** Parent companies the registry names (legacy records). */
3903
+ parent_companies?: string[];
3904
+ /** How many filings the registry offers for the company (legacy records). */
3905
+ documents_available?: number;
3906
+ }
3907
+ /** A company of the corporate group, by its registry identity. */
3908
+ interface KYBRegistryGroupCompany {
3909
+ /** Company name. */
3910
+ name: string | null;
3911
+ /** Country of registration. */
3912
+ country_code: string | null;
3913
+ /** Registration number. */
3914
+ registration_number: string | null;
3915
+ }
3583
3916
  /** An activity the registry classifies the company under, in the same shape for every country and registry source. */
3584
3917
  interface KYBRegistryIndustry {
3585
3918
  /** Activity code as the registry prints it (for example `73110`). */
@@ -3591,6 +3924,13 @@ interface KYBRegistryIndustry {
3591
3924
  /** True for the company's main activity. Exactly one entry is primary when the list is not empty. */
3592
3925
  is_primary: boolean;
3593
3926
  }
3927
+ /** Blank Lite profile fields another of the country's registry sources filled. The source is not named. */
3928
+ interface KYBRegistryLiteEnrichment {
3929
+ /** The company fields that were filled. */
3930
+ fields: string[];
3931
+ /** How many officers or owners were added. */
3932
+ people_added: number;
3933
+ }
3594
3934
  /** The outcome of the ownership (Shareholders / UBO) tier, in the same shape for every country and registry source. */
3595
3935
  interface KYBRegistryOwnership {
3596
3936
  /** `delivered` when the registry published ownership; `not_held` when the ownership registry answered and does not list the company at all (see `unavailable_reason`); `unavailable` when it did not serve the ownership data for any other reason (see `unavailable_reason`); `pending` while the registry is still fetching it; `not_requested` for the Basic tier. */
@@ -3643,6 +3983,11 @@ interface KYBRegistrySearchResultsPagination {
3643
3983
  page?: number;
3644
3984
  per_page?: number;
3645
3985
  }
3986
+ /** A section the registry did not return. */
3987
+ interface KYBRegistrySectionError {
3988
+ /** The status the registry answered for the section. */
3989
+ status_code: number | null;
3990
+ }
3646
3991
  /** What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`. */
3647
3992
  interface KYBRegistryShareholding {
3648
3993
  /** Share class or type as the registry names it. */
@@ -3658,6 +4003,28 @@ interface KYBRegistryShareholding {
3658
4003
  /** Exact stake in percent, to four decimal places. */
3659
4004
  percentage: number | null;
3660
4005
  }
4006
+ /** An official register the record was read from. Only official government registers, regulators and the official identifier system are named; any other source is left out. */
4007
+ interface KYBRegistrySource {
4008
+ /** Register name, for example `UK Companies House`. */
4009
+ name: string;
4010
+ /** Always `official`. */
4011
+ source_type: "official" | (string & {});
4012
+ }
4013
+ /** How the UBO tier walked the ownership chain above the company. */
4014
+ interface KYBRegistryUboResolution {
4015
+ /** Corporate parents from the ultimate parent down to the company. */
4016
+ parent_chain: KYBRegistryGroupCompany[];
4017
+ /** Companies directly below the company in its corporate group. */
4018
+ subsidiaries: KYBRegistryGroupCompany[];
4019
+ /** Parts of the chain the registry could not resolve (the same entries as `ownership.unresolved`). */
4020
+ unresolved: KYBRegistryUboResolutionUnresolved[];
4021
+ }
4022
+ interface KYBRegistryUboResolutionUnresolved {
4023
+ /** Why, for example `no_group_structure_on_record`, `selected_company_not_in_group_structure` or `section_error`. */
4024
+ reason: string;
4025
+ /** The section concerned, for example `group_structure`. */
4026
+ section: string | null;
4027
+ }
3661
4028
  interface LoginResponse {
3662
4029
  /** RS256-signed JWT. Use as `Authorization: Bearer <token>` for Account Management endpoints. */
3663
4030
  access_token?: string;
@@ -4663,8 +5030,20 @@ interface PhoneIntelligence {
4663
5030
  is_recently_ported?: boolean | null;
4664
5031
  /** Line classification reported by the lookup (e.g., `mobile`). */
4665
5032
  carrier_type?: string | null;
4666
- /** Machine-readable codes explaining the score. Values can grow over time, so do not reject unknown codes. */
4667
- reason_codes?: string[];
5033
+ /** Signals that explain the score, each with a stable Didit code, a direction, a message and an impact level. New codes can appear over time, so do not reject unknown codes. */
5034
+ reason_codes?: PhoneIntelligenceReasonCodes[];
5035
+ }
5036
+ interface PhoneIntelligenceReasonCodes {
5037
+ /** Stable Didit identifier of the signal, for example `IR-5AC67A32`. Opaque: group and filter on it, do not parse it. */
5038
+ code?: string;
5039
+ /** For a risk flag (for example `voip`, `leaked`, `disposable`, `spam_trap`), its value: a boolean, a level or a date. Null for a scored reason code. */
5040
+ value?: unknown;
5041
+ /** Whether the signal raised the risk or added trust. */
5042
+ direction?: "risk" | "trust" | (string & {});
5043
+ /** Human-readable explanation of the signal, in English. */
5044
+ message?: string;
5045
+ /** How strongly the signal moved the score, for example `low`, `medium` or `high`. */
5046
+ impact_level?: string | null;
4668
5047
  }
4669
5048
  /** Another session of your application that used the same phone number with a different `vendor_data`. */
4670
5049
  interface PhoneMatchItem {
@@ -4834,6 +5213,8 @@ interface PhoneVerificationCheckResponsePhone {
4834
5213
  matches?: PhoneVerificationCheckResponsePhoneMatches[];
4835
5214
  /** Social footprint of the phone number: the online platforms it is registered on. Present only when `enable_social` was set and the check completed. Every count may be null when no data was returned for it. `profiles_registered: 0` means the platforms were checked and the phone number was found on none of them - a valid, billable answer and a common synthetic-identity signal. */
4836
5215
  phone_social?: PhoneSocialFootprint | null;
5216
+ /** Phone intelligence signals. Present only when `enable_enrichment` was `true` on the check. */
5217
+ phone_intelligence?: PhoneIntelligence;
4837
5218
  }
4838
5219
  /** Current network serving the number, from the carrier lookup run at finalization. */
4839
5220
  interface PhoneVerificationCheckResponsePhoneCarrier {
@@ -5050,7 +5431,7 @@ interface ReviewItem {
5050
5431
  new_value?: Record<string, unknown> | null;
5051
5432
  /** Names of the fields modified by this activity (e.g. `["status"]`). Empty for comments and for entries added via `POST …/reviews/`. */
5052
5433
  changed_fields?: string[];
5053
- /** Extra context for system-generated entries. Console detail-page views carry `{"system_event": "DETAIL_VIEWED", "detail_type": "verification"}` so they can be filtered out of notification logic. `null` for ordinary entries. */
5434
+ /** Extra context for system-generated entries. Console detail-page views carry `{"system_event": "DETAIL_VIEWED", "detail_type": "verification"}` so they can be filtered out of notification logic. A `COMMENT` its author edited in the Console carries `edited_at`, the ISO 8601 time of the last edit (`comment` and `mentioned_emails` then hold the edited text and its mentions). `null` for ordinary entries. */
5054
5435
  metadata?: Record<string, unknown> | null;
5055
5436
  /** When the entry was written, ISO 8601 UTC. */
5056
5437
  created_at?: Date;
@@ -5181,15 +5562,23 @@ interface SessionDecision {
5181
5562
  session_kind?: "user" | "business" | (string & {});
5182
5563
  /** For a session cloned with `POST /v3/session/import-shared/`: the `session_id` of the original session in the source application. `null` for every other session. Omitted when `include=events` is passed. */
5183
5564
  shared_from_session?: string | null;
5565
+ /** `session_number` of the source session when this session was imported from another application of your organization. `null` otherwise. */
5566
+ shared_from_session_number?: number | null;
5184
5567
  /** The number of the session. */
5185
5568
  session_number?: number | null;
5186
5569
  /** The URL of the session. */
5187
5570
  session_url?: string | null;
5188
5571
  /** Overall lifecycle status of the session - the rolled-up workflow result. Terminal values are `Approved`, `Declined`, `In Review`, `Expired`, `Kyc Expired`, and `Abandoned`; `Not Started`, `In Progress`, `Awaiting User`, and `Resubmitted` indicate the session is still moving through the workflow. */
5189
5572
  status?: "Not Started" | "In Progress" | "Awaiting User" | "In Review" | "Approved" | "Declined" | "Resubmitted" | "Expired" | "Kyc Expired" | "Abandoned" | (string & {});
5573
+ /** Present when a reviewer set `status` by hand. `null` when the status is the automatic one. Use it to tell a manual approval from an automatic one. */
5574
+ status_override?: SessionDecisionStatusOverride | null;
5575
+ /** How the status was reached: who set it and which warnings did. */
5576
+ decision_trace?: SessionDecisionDecisionTrace;
5577
+ /** A summary of other records linked to the session. `null` when there is nothing to show, and for workflows that declare an age assurance standard. */
5578
+ linked_records?: SessionDecisionLinkedRecords | null;
5190
5579
  /** Stable identifier of the workflow group that produced this session. Workflows are versioned - this value identifies the workflow itself, not the specific version. */
5191
5580
  workflow_id?: string | null;
5192
- /** List of verification features configured for this session, as display names: `ID_VERIFICATION`, `NFC`, `LIVENESS`, `FACE_MATCH`, `POA`, `PHONE`, `EMAIL_VERIFICATION`, `AML`, `IP_ANALYSIS`, `DATABASE_VALIDATION`, `QUESTIONNAIRE`, `AGE_ESTIMATION`, `FACE_SEARCH` (Business Verification sessions use the KYB feature set: `KYB_REGISTRY`, `KYB_DOCUMENTS`, `KYB_KEY_PEOPLE`, `AML`, `PHONE`, `EMAIL_VERIFICATION`, `IP_ANALYSIS`, `QUESTIONNAIRE`). With `include=events` each entry becomes an object `{feature, node_id}` instead of a plain string, and the email feature is renamed: it appears as `EMAIL` in events mode instead of the `EMAIL_VERIFICATION` used here. */
5581
+ /** List of verification features configured for this session, as display names: `ID_VERIFICATION`, `NFC`, `LIVENESS`, `FACE_MATCH`, `POA`, `PHONE`, `EMAIL_VERIFICATION`, `AML`, `IP_ANALYSIS`, `DATABASE_VALIDATION`, `QUESTIONNAIRE`, `AGE_ESTIMATION`, `FACE_SEARCH`, `GEOLOCATION` (Location verification) (Business Verification sessions use the KYB feature set: `KYB_REGISTRY`, `KYB_DOCUMENTS`, `KYB_KEY_PEOPLE`, `AML`, `PHONE`, `EMAIL_VERIFICATION`, `IP_ANALYSIS`, `QUESTIONNAIRE`). With `include=events` each entry becomes an object `{feature, node_id}` instead of a plain string, and the email feature is renamed: it appears as `EMAIL` in events mode instead of the `EMAIL_VERIFICATION` used here. */
5193
5582
  features?: string[];
5194
5583
  /** The vendor data of the session. */
5195
5584
  vendor_data?: string | null;
@@ -5221,14 +5610,18 @@ interface SessionDecision {
5221
5610
  document_ai_documents?: SessionDecisionDocumentAiDocuments[] | null;
5222
5611
  /** **Array of questionnaire response reports** - always a JSON array, never a singular `questionnaire` object. `null` until at least one questionnaire step has produced data. Each item is the full report, including `node_id`, the questionnaire metadata, sections with form elements, and the user's answers. */
5223
5612
  questionnaire_responses?: SessionDecisionQuestionnaireResponses[] | null;
5224
- /** Bank Verification results, one item per Bank Verification step, for User and Business Verification. `null` until a step produces one. Each item's `method` says how the account was verified: `open_banking` (bank sign-in) or `account_lookup` (account check), or a `statement` or `microdeposits` fallback, and `none` when the person continued without a bank before any attempt was evaluated (`continued_without_bank`). See [Bank verification methods](/core-technology/bank-verification/verification-methods). */
5613
+ /** Bank Verification results, one item per Bank Verification step, for User and Business Verification. `null` until a step produces one. Each item's `method` says how the account was verified: `open_banking` (bank sign-in) or `account_lookup` (account check), or a `statement` or `microdeposits` fallback, and `none` when the person continued without a bank before any attempt was evaluated (`continued_without_bank`). See [Bank verification methods](/core-technology/bank-verification/verification-methods). Bank Verification is not enabled in production yet, so this stays `null` on production sessions until it is. */
5225
5614
  bank_verifications?: BankVerificationResult[] | null;
5226
- /** Electronic Signature results, one item per signer and signature step, for User and Business Verification. Present only when the workflow has an Electronic Signature step; an empty array until a signer reaches it. See the [Electronic Signature report](/core-technology/electronic-signature/report-electronic-signature). */
5615
+ /** E-signature results, one item per signer and signature step, for User and Business Verification. Present only when the workflow has an E-signature step; an empty array until a signer reaches it. See the [E-signature report](/core-technology/electronic-signature/report-electronic-signature). */
5227
5616
  signatures?: SignatureResult[];
5228
5617
  /** **Array of AML screening reports** - always a JSON array, never a singular `aml` object. `null` until at least one AML step has produced data. Each item is the full report, including `node_id`, feature-level `status`, `total_hits`, `entity_type`, `hits[]`, `score`, `screened_data`, `is_ongoing_monitoring_enabled`, and `warnings[]`. */
5229
5618
  aml_screenings?: AMLScreening[] | null;
5230
5619
  /** **Array of Device & IP Analysis reports** - always a JSON array, never a singular `ip_analysis` object. `null` until at least one IP-analysis step has produced data. Each item is the full report, including `node_id`, feature-level `status`, IP and geolocation data, device fingerprint, and `warnings[]`. Entries with duplicate `(node_id, ip_address, device_fingerprint)` are deduplicated server-side. */
5231
5620
  ip_analyses?: SessionDecisionIpAnalyses[] | null;
5621
+ /** **Array of Location verification results**, one per Location verification step: that step's accepted attempt. `null` until a Location verification step has produced data. Earlier attempts of the same step are in `geolocation_attempts`. */
5622
+ geolocation_checks?: GeolocationCheck[] | null;
5623
+ /** Every attempt of every Location verification step of this session, oldest first. Attempts that a resubmission replaced are left out. A workflow that withholds `geolocation_checks` through its response attributes withholds this list too. */
5624
+ geolocation_attempts?: GeolocationAttempt[] | null;
5232
5625
  /**
5233
5626
  * **Array of Database Validation reports** - always a JSON array, never a singular `database_validation` object. `null` until at least one DB validation step has produced data. Each item is the full report, including `node_id`, feature-level `status`, `screened_data`, the per-service `validations[]` (each with its registry `source_data`), and `warnings[]`. The `screened_data` and `source_data` fields vary by country:
5234
5627
  *
@@ -5269,7 +5662,15 @@ interface SessionDecision {
5269
5662
  * **VEN (Venezuela)**: screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, gender, date_of_birth, document_type}
5270
5663
  */
5271
5664
  database_validations?: SessionDecisionDatabaseValidations[] | null;
5665
+ /** Why a configured database validation produced no result, as `{code, message}` plus context fields. Present only when `database_validations` is `null` for a workflow that has the step, so you can tell "the registry agreed" from "nothing ran". `null` otherwise. */
5666
+ database_validation_not_performed_reason?: SessionDecisionDatabaseValidationNotPerformedReason | null;
5272
5667
  reviews?: SessionDecisionReviews[];
5668
+ /** The Console reviewer the session is assigned to, or `null` when nobody holds it. */
5669
+ assignee?: SessionDecisionAssignee | null;
5670
+ /** When the session started waiting for review. `null` unless the session is `In Review` and your application sets a review deadline. */
5671
+ waiting_since?: Date | null;
5672
+ /** When the review is due. `null` unless the session is `In Review` and your application sets a review deadline. */
5673
+ sla_due_at?: Date | null;
5273
5674
  /** Timestamp at which the session was created (ISO 8601, UTC). */
5274
5675
  created_at?: Date;
5275
5676
  /** Timestamp at which this session is scheduled to expire. Set on User Verification (KYC) sessions when an expiration was configured at creation time (or once `Approved` status triggers KYC expiry computation). `null` for sessions without a configured expiration, and for kinds that do not use expiry (e.g. Business Verification (KYB) sessions that never received an `expires_at`). */
@@ -5282,12 +5683,27 @@ interface SessionDecision {
5282
5683
  document_verifications?: SessionDecisionDocumentVerifications[] | null;
5283
5684
  /** Whether the session was created by a live application (`live`) or a sandbox application (`sandbox`). Sandbox sessions are free, fully simulated, and never bill credits. */
5284
5685
  environment?: "live" | "sandbox" | (string & {});
5686
+ /** The sandbox scenario the session was created with. `null` for live sessions and for sandbox sessions created without one. */
5687
+ sandbox_scenario?: string | null;
5285
5688
  /** Returned only with `include=resubmissions`, for user and business sessions. One entry per resubmission request, oldest first. Each entry carries the results the resubmitted steps returned before the request, so earlier submissions stay readable. Deleting the session deletes every submission. */
5286
5689
  resubmissions?: SessionDecisionResubmissions[];
5287
5690
  /** Whether the session required explicit biometric consent before a face capture, why, and the evidence of the answer. User Verification (KYC) sessions only; the same object is in the `decision` of session webhooks. `null` when the session was never evaluated, for example a workflow without a face capture. Fields with no recorded value are `null`. A native SDK below 4.10.0, or one that does not report its version, cannot show the consent step: its face captures run as before, and a session that required consent then reports `status: "pending"` with `reason: "BIOMETRIC_CONSENT_UNSUPPORTED_SDK"`. See [Biometric consent](/getting-started/biometric-consent). */
5288
5691
  biometric_consent?: SessionDecisionBiometricConsent | null;
5289
5692
  /** The item's latest Investigator review, or null when it never had one. Carried by the V3 session and business session decision (and so by `status.updated` webhooks). */
5290
5693
  investigator?: InvestigatorBlock | null;
5694
+ /** When the live biometric data of this session is deleted. */
5695
+ biometric_retention?: BiometricRetention;
5696
+ /** The result of a Fraud Check API call. `null` for every other session. */
5697
+ fraud_check?: Record<string, unknown> | null;
5698
+ /** Expiring URL of the full-session recording. Returned only when your organization records full-session video. */
5699
+ full_session_video?: string | null;
5700
+ /** When the full-session recording was made. Returned only when your organization records full-session video. */
5701
+ full_session_video_recorded_at?: Date | null;
5702
+ }
5703
+ /** The Console reviewer the session is assigned to, or `null` when nobody holds it. */
5704
+ interface SessionDecisionAssignee {
5705
+ email?: string;
5706
+ assigned_at?: Date | null;
5291
5707
  }
5292
5708
  /** Whether the session required explicit biometric consent before a face capture, why, and the evidence of the answer. User Verification (KYC) sessions only; the same object is in the `decision` of session webhooks. `null` when the session was never evaluated, for example a workflow without a face capture. Fields with no recorded value are `null`. A native SDK below 4.10.0, or one that does not report its version, cannot show the consent step: its face captures run as before, and a session that required consent then reports `status: "pending"` with `reason: "BIOMETRIC_CONSENT_UNSUPPORTED_SDK"`. See [Biometric consent](/getting-started/biometric-consent). */
5293
5709
  interface SessionDecisionBiometricConsent {
@@ -5357,6 +5773,14 @@ interface SessionDecisionContactDetails {
5357
5773
  /** Phone number of the user in E.164 format if available (e.g., +14155552671). `null` when only an email was supplied at session creation. Note: This field returns the original phone number provided during session creation. If the number was invalid, it may not be in E.164 format. */
5358
5774
  phone?: string | null;
5359
5775
  }
5776
+ /** Why a configured database validation produced no result, as `{code, message}` plus context fields. Present only when `database_validations` is `null` for a workflow that has the step, so you can tell "the registry agreed" from "nothing ran". `null` otherwise. */
5777
+ interface SessionDecisionDatabaseValidationNotPerformedReason {
5778
+ /** Stable machine-readable reason. */
5779
+ code?: string;
5780
+ /** Human-readable explanation. */
5781
+ message?: string;
5782
+ [key: string]: unknown;
5783
+ }
5360
5784
  interface SessionDecisionDatabaseValidations {
5361
5785
  /** Unique identifier for this database validation step in the workflow graph. */
5362
5786
  node_id?: string;
@@ -5424,7 +5848,7 @@ interface SessionDecisionDatabaseValidationsValidationsValidation {
5424
5848
  }
5425
5849
  interface SessionDecisionDatabaseValidationsWarnings {
5426
5850
  /** The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload. */
5427
- feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | (string & {});
5851
+ feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | "GEOLOCATION" | "SIGNATURE" | (string & {});
5428
5852
  risk?: string;
5429
5853
  additional_data?: Record<string, unknown> | null;
5430
5854
  log_type?: string;
@@ -5433,6 +5857,39 @@ interface SessionDecisionDatabaseValidationsWarnings {
5433
5857
  /** The workflow graph node ID that generated this warning */
5434
5858
  node_id?: string;
5435
5859
  }
5860
+ /** How the status was reached: who set it and which warnings did. */
5861
+ interface SessionDecisionDecisionTrace {
5862
+ /** The session status. */
5863
+ status?: string;
5864
+ /** Who set the status. `null` while the session is not decided. */
5865
+ decided_by?: "manual" | "automatic" | "investigator" | (string & {}) | null;
5866
+ decided_at?: Date | null;
5867
+ /** What the platform's own checks conclude, which differs from `status` after a manual decision. */
5868
+ automatic_status?: string | null;
5869
+ /** The workflow status node that ended the session, when one did. */
5870
+ terminal_node_id?: string | null;
5871
+ /** The reviewer behind a manual decision. */
5872
+ actor?: SessionDecisionDecisionTraceActor | null;
5873
+ /** Warnings per `log_type` (`error`, `warning`, `information`) and `total`. */
5874
+ warning_counts?: Record<string, number>;
5875
+ /** The warnings that set a `Declined` or `In Review` status. */
5876
+ status_warnings?: SessionDecisionDecisionTraceStatusWarnings[];
5877
+ }
5878
+ /** The reviewer behind a manual decision. */
5879
+ interface SessionDecisionDecisionTraceActor {
5880
+ user?: string | null;
5881
+ actor_type?: string | null;
5882
+ }
5883
+ interface SessionDecisionDecisionTraceStatusWarnings {
5884
+ risk?: string;
5885
+ feature?: string | null;
5886
+ node_id?: string | null;
5887
+ log_type?: string | null;
5888
+ check_status?: string | null;
5889
+ /** The payload list the warning came from, for example `id_verifications`. */
5890
+ source?: string;
5891
+ short_description?: string | null;
5892
+ }
5436
5893
  /** Document AI results grouped by workflow node. */
5437
5894
  interface SessionDecisionDocumentAiDocuments {
5438
5895
  /** Aggregate Document AI status for this node, rolled up from its `items[]`. */
@@ -5612,6 +6069,10 @@ interface SessionDecisionEmailVerifications {
5612
6069
  lifecycle?: SessionDecisionEmailVerificationsLifecycle[];
5613
6070
  /** Matches found for this email address. Each match has a `source`: `session` (another verification session in your application matched on the same email, returned with `session_id`/`session_number`/`vendor_data`/`verification_date`) or `list_entry` (the email is on an org-managed allow/block list - see `/management-api/lists/overview`). Cross-session matches use different `vendor_data` and are capped at 5. */
5614
6071
  matches?: SessionDecisionEmailVerificationsMatches[];
6072
+ /** Email intelligence signals. Present only when the email intelligence add-on ran for this address. */
6073
+ email_intelligence?: EmailIntelligence;
6074
+ /** Social footprint of the address. Present only when the social footprint add-on ran for this address. */
6075
+ email_social?: EmailSocialFootprint | null;
5615
6076
  }
5616
6077
  interface SessionDecisionEmailVerificationsBreaches {
5617
6078
  /** Name of the breach */
@@ -5658,7 +6119,7 @@ interface SessionDecisionEmailVerificationsMatches {
5658
6119
  }
5659
6120
  interface SessionDecisionEmailVerificationsWarnings {
5660
6121
  /** The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload. */
5661
- feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | (string & {});
6122
+ feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | "GEOLOCATION" | "SIGNATURE" | (string & {});
5662
6123
  risk?: string;
5663
6124
  additional_data?: Record<string, unknown> | null;
5664
6125
  log_type?: string;
@@ -5716,10 +6177,36 @@ interface SessionDecisionFaceMatches {
5716
6177
  target_image?: string;
5717
6178
  /** Face match verification warnings */
5718
6179
  warnings?: SessionDecisionFaceMatchesWarnings[];
6180
+ /** Whether the eyes, mouth and face are covered in the captured image. Returned by `GET /v3/session/{sessionId}/decision/` only; it is not part of webhook payloads. `null` when no coverage reading exists. */
6181
+ face_coverage?: SessionDecisionFaceMatchesFaceCoverage | null;
6182
+ }
6183
+ /** Whether the eyes, mouth and face are covered in the captured image. Returned by `GET /v3/session/{sessionId}/decision/` only; it is not part of webhook payloads. `null` when no coverage reading exists. */
6184
+ interface SessionDecisionFaceMatchesFaceCoverage {
6185
+ eyes?: SessionDecisionFaceMatchesFaceCoverageEyes;
6186
+ mouth?: SessionDecisionFaceMatchesFaceCoverageMouth;
6187
+ face?: SessionDecisionFaceMatchesFaceCoverageFace;
6188
+ }
6189
+ interface SessionDecisionFaceMatchesFaceCoverageEyes {
6190
+ covered?: boolean | null;
6191
+ /** `false` means the reading is shadow evidence only and no warning acts on it. */
6192
+ calibrated?: boolean | null;
6193
+ visibility_score?: number | null;
6194
+ }
6195
+ interface SessionDecisionFaceMatchesFaceCoverageFace {
6196
+ covered?: boolean | null;
6197
+ /** `false` means the reading is shadow evidence only and no warning acts on it. */
6198
+ calibrated?: boolean | null;
6199
+ visibility_score?: number | null;
6200
+ }
6201
+ interface SessionDecisionFaceMatchesFaceCoverageMouth {
6202
+ covered?: boolean | null;
6203
+ /** `false` means the reading is shadow evidence only and no warning acts on it. */
6204
+ calibrated?: boolean | null;
6205
+ visibility_score?: number | null;
5719
6206
  }
5720
6207
  interface SessionDecisionFaceMatchesWarnings {
5721
6208
  /** The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload. */
5722
- feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | (string & {});
6209
+ feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | "GEOLOCATION" | "SIGNATURE" | (string & {});
5723
6210
  risk?: string;
5724
6211
  additional_data?: Record<string, unknown> | null;
5725
6212
  log_type?: string;
@@ -5738,7 +6225,7 @@ interface SessionDecisionIdVerifications {
5738
6225
  assurance?: "documentary" | "data_match" | "cryptographic" | (string & {});
5739
6226
  /** Catalog wallet id when `verification_method` is `wallet` (`mitid`, `bankid_se`, `itsme`, ...). `null` otherwise. */
5740
6227
  wallet_provider?: string | null;
5741
- /** Why a non-document method ended the ID step. Set on the declined report when a lookup or a wallet sign-in failed and the country's fallback switch was `decline`. `null` otherwise. */
6228
+ /** Why a non-document method did not end the ID step. Set when a lookup or a wallet sign-in failed: on the document verification the user continued with when the country's fallback switch was `fallback_to_document` (`action` is `fallback_to_document`), or on the declined report when it was `decline`. `null` otherwise. */
5742
6229
  fallback_from?: SessionDecisionIdVerificationsFallbackFrom | null;
5743
6230
  /** Registry evidence. Present only when `verification_method` is `id_lookup`; `null` otherwise. */
5744
6231
  id_lookup?: SessionDecisionIdVerificationsIdLookup | null;
@@ -5828,6 +6315,12 @@ interface SessionDecisionIdVerifications {
5828
6315
  document_liveness?: SessionDecisionIdVerificationsDocumentLiveness | null;
5829
6316
  /** Address Validation of the address printed on this document: whether it exists and its normalised form, as the document read it (a later correction of `address` does not run it again). Present when this ID verification step enabled the Address Validation add-on; `null` otherwise. */
5830
6317
  address_validation?: AddressValidationResult | null;
6318
+ /** Region or state of the document's issuing country where the document identifies one. */
6319
+ region?: string | null;
6320
+ /** Snapshot of the data extracted from the document that the person was shown to review, kept next to the confirmed values so you can compare what was read with what the person confirmed. `null` when the person was not asked to review. */
6321
+ extracted_data?: Record<string, unknown> | null;
6322
+ /** Data read from the document's barcodes. Empty when the document has none or none was read. */
6323
+ barcodes?: Record<string, unknown>[];
5831
6324
  }
5832
6325
  /** Quality metrics for the back document image. Same structure as front_image_quality_score. */
5833
6326
  interface SessionDecisionIdVerificationsBackImageQualityScore {
@@ -5957,14 +6450,14 @@ interface SessionDecisionIdVerificationsExtraFields {
5957
6450
  place_of_birth_latin?: string;
5958
6451
  [key: string]: unknown;
5959
6452
  }
5960
- /** Why a non-document method ended the ID step. Set on the declined report when a lookup or a wallet sign-in failed and the country's fallback switch was `decline`. `null` otherwise. */
6453
+ /** Why a non-document method did not end the ID step. Set when a lookup or a wallet sign-in failed: on the document verification the user continued with when the country's fallback switch was `fallback_to_document` (`action` is `fallback_to_document`), or on the declined report when it was `decline`. `null` otherwise. */
5961
6454
  interface SessionDecisionIdVerificationsFallbackFrom {
5962
6455
  /** The method that failed. */
5963
6456
  method?: "id_lookup" | "wallet" | (string & {});
5964
6457
  /** The outcome that ended it, e.g. `no_match`, `provider_error`, `cancelled`, `timeout`. */
5965
6458
  reason?: string;
5966
- /** The configured action that was taken, e.g. `decline`. */
5967
- action?: string;
6459
+ /** The configured action that was taken: `fallback_to_document` or `decline`. */
6460
+ action?: "fallback_to_document" | "decline" | (string & {});
5968
6461
  }
5969
6462
  /** Quality metrics for the front document image. Each sub-score ranges from 0 to 100. */
5970
6463
  interface SessionDecisionIdVerificationsFrontImageQualityScore {
@@ -6154,7 +6647,7 @@ interface SessionDecisionIdVerificationsWalletVerification {
6154
6647
  }
6155
6648
  interface SessionDecisionIdVerificationsWarnings {
6156
6649
  /** The feature that generated this warning (e.g., `ID_VERIFICATION`, `NFC`, `LIVENESS`). The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module, but the enum above is authoritative across all feature warnings on the decision payload. */
6157
- feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | (string & {});
6650
+ feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | "GEOLOCATION" | "SIGNATURE" | (string & {});
6158
6651
  risk?: string;
6159
6652
  /** Additional contextual data about the warning */
6160
6653
  additional_data?: Record<string, unknown> | null;
@@ -6217,6 +6710,20 @@ interface SessionDecisionIpAnalyses {
6217
6710
  warnings?: SessionDecisionIpAnalysesWarnings[];
6218
6711
  /** Cross-session matches found for this entry's IP address or device identity. Every match is another verification session in your application (`source` is always `session`) that shares the same value, always belonging to a different vendor user / `vendor_data` than the current session, capped at 5 per collector (`device_fingerprint` sums two independently capped collectors, so up to 10 entries are possible). Every item carries `match_source`, `confidence`, `match_mode`, `device_info` and `location_info`; the keys `recovery_similarity`, `tls_ja4_corroborated` and `recovery_gate_reason` are present only when `match_source` is `recovered_high`. */
6219
6712
  matches?: SessionDecisionIpAnalysesMatches[];
6713
+ browser_version?: string | null;
6714
+ os_version?: string | null;
6715
+ /** The browser's user agent string. */
6716
+ user_agent?: string | null;
6717
+ /** The `Accept-Language` header the browser sent. */
6718
+ accept_language?: string | null;
6719
+ /** Identifier of the browsing session the verification ran in. */
6720
+ session_identifier?: string | null;
6721
+ /** Age of that browsing session in milliseconds when the step ran. */
6722
+ session_age_ms?: number | null;
6723
+ /** Accuracy radius, in metres, of the coordinates the device reported. */
6724
+ coords_accuracy?: number | null;
6725
+ /** Raw device signals collected for the step. */
6726
+ raw_device_data?: Record<string, unknown> | null;
6220
6727
  }
6221
6728
  /** Location extracted from the ID document address plus distances (km) to the IP geolocation and the POA document address. `location` is `null` when no document address could be geocoded. */
6222
6729
  interface SessionDecisionIpAnalysesIdDocument {
@@ -6313,7 +6820,7 @@ interface SessionDecisionIpAnalysesPoaDocumentLocation {
6313
6820
  }
6314
6821
  interface SessionDecisionIpAnalysesWarnings {
6315
6822
  /** The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload. */
6316
- feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | (string & {});
6823
+ feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | "GEOLOCATION" | "SIGNATURE" | (string & {});
6317
6824
  risk?: string;
6318
6825
  additional_data?: Record<string, unknown> | null;
6319
6826
  log_type?: string;
@@ -6557,6 +7064,41 @@ interface SessionDecisionKeyPeopleChecksUboKycSummary {
6557
7064
  flagged?: number;
6558
7065
  pending?: number;
6559
7066
  }
7067
+ /** A summary of other records linked to the session. `null` when there is nothing to show, and for workflows that declare an age assurance standard. */
7068
+ interface SessionDecisionLinkedRecords {
7069
+ /** Other people whose face matched one of this session's face searches. */
7070
+ same_face?: SessionDecisionLinkedRecordsSameFace | null;
7071
+ earlier_verifications?: SessionDecisionLinkedRecordsEarlierVerifications | null;
7072
+ networks?: SessionDecisionLinkedRecordsNetworks | null;
7073
+ }
7074
+ interface SessionDecisionLinkedRecordsEarlierVerifications {
7075
+ count?: number;
7076
+ vendor_user_id?: string | null;
7077
+ }
7078
+ interface SessionDecisionLinkedRecordsNetworks {
7079
+ count?: number;
7080
+ open?: number;
7081
+ dismissed?: number;
7082
+ items?: SessionDecisionLinkedRecordsNetworksItems[];
7083
+ }
7084
+ interface SessionDecisionLinkedRecordsNetworksItems {
7085
+ network_id?: string;
7086
+ display_number?: number | null;
7087
+ name?: string;
7088
+ status?: string;
7089
+ risk_score?: number | null;
7090
+ }
7091
+ /** Other people whose face matched one of this session's face searches. */
7092
+ interface SessionDecisionLinkedRecordsSameFace {
7093
+ count?: number;
7094
+ best_match?: SessionDecisionLinkedRecordsSameFaceBestMatch | null;
7095
+ }
7096
+ interface SessionDecisionLinkedRecordsSameFaceBestMatch {
7097
+ session_id?: string | null;
7098
+ session_number?: number | null;
7099
+ vendor_user_id?: string | null;
7100
+ similarity_percentage?: number | null;
7101
+ }
6560
7102
  /** One liveness report - the full report for a single liveness pass. */
6561
7103
  interface SessionDecisionLivenessChecks {
6562
7104
  /** Workflow graph node id of the liveness step that produced this report. */
@@ -6618,7 +7160,7 @@ interface SessionDecisionLivenessChecksMatchesUserDetails {
6618
7160
  }
6619
7161
  interface SessionDecisionLivenessChecksWarnings {
6620
7162
  /** The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload. */
6621
- feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | (string & {});
7163
+ feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | "GEOLOCATION" | "SIGNATURE" | (string & {});
6622
7164
  risk?: string;
6623
7165
  additional_data?: Record<string, unknown> | null;
6624
7166
  log_type?: string;
@@ -6737,7 +7279,7 @@ interface SessionDecisionNfcVerificationsJpkiCertificates {
6737
7279
  }
6738
7280
  interface SessionDecisionNfcVerificationsWarnings {
6739
7281
  /** The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload. */
6740
- feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | (string & {});
7282
+ feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | "GEOLOCATION" | "SIGNATURE" | (string & {});
6741
7283
  risk?: string;
6742
7284
  additional_data?: Record<string, unknown> | null;
6743
7285
  log_type?: string;
@@ -6778,6 +7320,10 @@ interface SessionDecisionPhoneVerifications {
6778
7320
  warnings?: SessionDecisionPhoneVerificationsWarnings[];
6779
7321
  /** Matches found for this phone number. Each match has a `source`: `session` (another verification session in your application matched on the same number, returned with `session_id`/`session_number`/`vendor_data`/`verification_date`) or `list_entry` (the number is on an org-managed allow/block list - see `/management-api/lists/overview`). Cross-session matches use different `vendor_data` and are capped at 5. */
6780
7322
  matches?: SessionDecisionPhoneVerificationsMatches[];
7323
+ /** Phone intelligence signals. Present only when the phone intelligence add-on ran for this number. */
7324
+ phone_intelligence?: PhoneIntelligence;
7325
+ /** Social footprint of the number. Present only when the social footprint add-on ran for this number. */
7326
+ phone_social?: PhoneSocialFootprint | null;
6781
7327
  }
6782
7328
  interface SessionDecisionPhoneVerificationsCarrier {
6783
7329
  /** Name of the phone carrier */
@@ -6814,7 +7360,7 @@ interface SessionDecisionPhoneVerificationsMatches {
6814
7360
  }
6815
7361
  interface SessionDecisionPhoneVerificationsWarnings {
6816
7362
  /** The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload. */
6817
- feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | (string & {});
7363
+ feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | "GEOLOCATION" | "SIGNATURE" | (string & {});
6818
7364
  risk?: string;
6819
7365
  additional_data?: Record<string, unknown> | null;
6820
7366
  log_type?: string;
@@ -6965,7 +7511,7 @@ interface SessionDecisionPoaVerificationsPoaParsedAddressDocumentLocation {
6965
7511
  }
6966
7512
  interface SessionDecisionPoaVerificationsWarnings {
6967
7513
  /** The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload. */
6968
- feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | (string & {});
7514
+ feature?: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACEMATCH" | "PROOF_OF_ADDRESS" | "PHONE" | "EMAIL" | "AML" | "LOCATION" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_REGISTRY" | "KYB_DOCUMENTS" | "KYB_KEY_PEOPLE" | "GEOLOCATION" | "SIGNATURE" | (string & {});
6969
7515
  risk?: string;
6970
7516
  additional_data?: Record<string, unknown> | null;
6971
7517
  log_type?: string;
@@ -7054,8 +7600,8 @@ interface SessionDecisionRegistryChecks {
7054
7600
  data_resolved?: boolean;
7055
7601
  /** Full registry payload for the company (registry record merged with any user-provided or console-edited data). */
7056
7602
  company?: SessionDecisionRegistryChecksCompany;
7057
- /** Raw ownership snapshot kept for reviewers; its shape differs by registry source and is not a stable contract. Read `company.beneficial_owners` and `company.ownership` instead. */
7058
- ownership_structure?: Record<string, unknown>;
7603
+ /** The cap table the registry proved, as it stood when the ownership tier was delivered: direct `shareholders` and `beneficial_owners`. Null when the registry proved no ownership. It never carries the registry source's own rows; read `company.beneficial_owners` and `company.ownership` for the current record. */
7604
+ ownership_structure?: KYBOwnershipStructure | null;
7059
7605
  warnings?: Record<string, unknown>[];
7060
7606
  }
7061
7607
  /** Full registry payload for the company (registry record merged with any user-provided or console-edited data). */
@@ -7115,8 +7661,8 @@ interface SessionDecisionRegistryChecksCompany {
7115
7661
  industries?: KYBRegistryIndustry[] | null;
7116
7662
  /** Registry filing dates, when available. Annual returns and general meetings use last_annual_return_date and last_agm_date; they are distinct from financial accounts. */
7117
7663
  accounts?: Record<string, unknown> | null;
7118
- /** Raw record returned by the registry source, kept for reviewers. Its shape differs by country and source and is not a stable contract: read the canonical fields (`addresses`, `industries`, `ownership`, `beneficial_owners[].shareholding`) instead. */
7119
- registry_data?: Record<string, unknown>;
7664
+ /** Didit's normalized registry detail for the company: the ownership outcome (`ownership_error`, `section_errors`, `ubo_resolution`, `lite_enrichment`), the corrections made with update-data, and registry facts that have no field of their own. It never carries the registry source's own record. Every key is optional and present only when the company has a value for it; new keys may be added. Read the canonical fields (`addresses`, `industries`, `ownership`, `beneficial_owners[].shareholding`) for anything they cover. */
7665
+ registry_data?: KYBRegistryData | null;
7120
7666
  /** Data confirmed or edited by the end user. */
7121
7667
  user_provided_data?: Record<string, unknown>;
7122
7668
  confirmed_by_user_at?: Date | null;
@@ -7130,6 +7676,8 @@ interface SessionDecisionRegistryChecksCompany {
7130
7676
  registry_tier_delivered?: string | null;
7131
7677
  /** `not_requested`, `pending`, `delivered`, `not_held` or `unavailable`. Also in `ownership.status`. */
7132
7678
  registry_ownership_status?: string | null;
7679
+ /** The latest registry monitor for the company, or `null` when none exists. */
7680
+ registry_monitoring?: SessionDecisionRegistryChecksCompanyRegistryMonitoring | null;
7133
7681
  }
7134
7682
  interface SessionDecisionRegistryChecksCompanyBeneficialOwners {
7135
7683
  uuid?: string;
@@ -7187,6 +7735,20 @@ interface SessionDecisionRegistryChecksCompanyOfficers {
7187
7735
  /** Registry-reported birth month. Null when only the year is known. */
7188
7736
  date_of_birth_month?: number | null;
7189
7737
  }
7738
+ /** The latest registry monitor for the company, or `null` when none exists. */
7739
+ interface SessionDecisionRegistryChecksCompanyRegistryMonitoring {
7740
+ uuid?: string;
7741
+ status?: string;
7742
+ unavailable_reason?: string | null;
7743
+ enrolled_at?: Date | null;
7744
+ cancelled_at?: Date | null;
7745
+ last_bill_date?: string | null;
7746
+ next_bill_date?: string | null;
7747
+ last_event_at?: Date | null;
7748
+ events_count?: number;
7749
+ /** The company fields the monitor watches. */
7750
+ watched_fields?: unknown;
7751
+ }
7190
7752
  interface SessionDecisionResubmissions {
7191
7753
  /** 1 for the first resubmission of the session, 2 for the second, and so on. */
7192
7754
  number?: number;
@@ -7220,6 +7782,12 @@ interface SessionDecisionReviews {
7220
7782
  comment?: string;
7221
7783
  created_at?: Date;
7222
7784
  }
7785
+ /** Present when a reviewer set `status` by hand. `null` when the status is the automatic one. Use it to tell a manual approval from an automatic one. */
7786
+ interface SessionDecisionStatusOverride {
7787
+ overridden_at?: Date | null;
7788
+ /** The status the platform's own checks conclude. */
7789
+ automatic_status?: string | null;
7790
+ }
7223
7791
  /** A bulk session deletion running in the background: progress and counts per outcome, never which sessions it deleted. */
7224
7792
  interface SessionDeletionJob {
7225
7793
  /** Poll `GET /v3/sessions/delete/{job_id}/` with this id. */
@@ -7283,6 +7851,29 @@ interface SessionEvent {
7283
7851
  /** When the event happened, as a Unix timestamp in milliseconds. Results are ordered by it. */
7284
7852
  sent_at: number;
7285
7853
  }
7854
+ /** One ZIP with every file of a session, in original quality. */
7855
+ interface SessionFilesExport {
7856
+ /** ID of the export. Pass it to `GET /v3/session/{sessionId}/files-export/{exportId}/`. */
7857
+ export_id: string;
7858
+ /** The session the files are from. */
7859
+ session_id: string;
7860
+ /** `PENDING` and `PROCESSING` while the ZIP is prepared, `READY` once it can be downloaded, `FAILED` when it could not be prepared (request a new export), `EXPIRED` once the ZIP was deleted. */
7861
+ status: "PENDING" | "PROCESSING" | "READY" | "FAILED" | "EXPIRED" | (string & {});
7862
+ /** Files in the ZIP. Set only while `status` is `READY`. */
7863
+ file_count: number | null;
7864
+ /** Size of the ZIP in bytes. Set only while `status` is `READY`. */
7865
+ size_bytes: number | null;
7866
+ /** Signed URL of the ZIP, valid for a short time. Set only while `status` is `READY`; read the export again for a new one. */
7867
+ download_url: string | null;
7868
+ /** When the ZIP is deleted, 24 hours after it was ready. Set only while `status` is `READY`. */
7869
+ expires_at: Date | null;
7870
+ /** Why the export failed, when `status` is `FAILED`. */
7871
+ error: string | null;
7872
+ /** When the export was requested. */
7873
+ created_at: Date;
7874
+ /** When the ZIP was ready or the export failed. */
7875
+ completed_at: Date | null;
7876
+ }
7286
7877
  interface SessionImportError {
7287
7878
  uuid: string;
7288
7879
  row_number: number;
@@ -7461,7 +8052,7 @@ interface SignatureFieldValidation {
7461
8052
  /** Shown to the signer instead of the default error. */
7462
8053
  message?: string | null;
7463
8054
  }
7464
- /** One signer's result for one Electronic Signature step. See the [Electronic Signature report](/core-technology/electronic-signature/report-electronic-signature). */
8055
+ /** One signer's result for one E-signature step. See the [E-signature report](/core-technology/electronic-signature/report-electronic-signature). */
7465
8056
  interface SignatureResult {
7466
8057
  /** Pass it as `signature_id` to download this signer's evidence or validate their signature. */
7467
8058
  id?: string;
@@ -7471,17 +8062,19 @@ interface SignatureResult {
7471
8062
  status?: "intro" | "review" | "code" | "signing" | "signed" | "declined" | (string & {});
7472
8063
  /** The step's outcome. A warning sets it through its rule; custom status rules apply after. */
7473
8064
  verdict?: "Not Finished" | "Approved" | "In Review" | "Declined" | (string & {});
7474
- /** `aes`. `qes` (Qualified Electronic Signature, QES) is coming soon. */
7475
- level?: "aes" | "qes" | (string & {});
7476
- format?: "pades" | (string & {});
7477
- /** `PAdES-B-LT` once signed. */
8065
+ /** `simple` (default) or `aes`. `qes` (Qualified Electronic Signature, QES) is an add-on that is not available yet. */
8066
+ level?: "simple" | "aes" | "qes" | (string & {});
8067
+ /** `pdf` for a Simple signature, `pades` for Advanced (AES). */
8068
+ format?: "pdf" | "pades" | (string & {});
8069
+ /** `PAdES-B-LT` once an Advanced (AES) signature is signed, otherwise null. */
7478
8070
  profile?: string | null;
7479
8071
  signer?: SignatureResultSigner;
8072
+ /** The verified identity the signature relies on. Empty for a Simple signature with no verified identity. */
7480
8073
  identity_used?: SignatureResultIdentityUsed;
7481
- /** The certificate the documents were signed with. `null` until signed. */
8074
+ /** The certificate the documents were signed with. `null` until signed, and always `null` for a Simple signature. */
7482
8075
  certificate?: SignatureResultCertificate | null;
7483
8076
  confirmation?: SignatureResultConfirmation;
7484
- /** The trusted timestamp in the signature. `null` until signed. */
8077
+ /** The RFC 3161 timestamp in the signature, issued by Didit. `null` until signed, and always `null` for a Simple signature. */
7485
8078
  timestamp?: SignatureResultTimestamp | null;
7486
8079
  documents?: SignatureResultDocuments[];
7487
8080
  /** The signature and initials the signer adopted for signature and initials fields. `null` until the signer adopts one. */
@@ -7490,7 +8083,7 @@ interface SignatureResult {
7490
8083
  electronic_signature_consent_at?: Date | null;
7491
8084
  /** Path of the evidence PDF, once signed. See [Download the signature evidence](/sessions-api/electronic-signature/download-evidence). */
7492
8085
  evidence_file?: string | null;
7493
- /** Warnings raised for this signer. See [Electronic Signature warnings](/core-technology/electronic-signature/warnings-electronic-signature). */
8086
+ /** Warnings raised for this signer. See [E-signature warnings](/core-technology/electronic-signature/warnings-electronic-signature). */
7494
8087
  warnings?: SignatureResultWarnings[];
7495
8088
  /** The last cryptographic check of the signed documents. `null` until the documents are signed. If Didit can't confirm the outcome of signing, it's `{"valid": null, "reason": "signature_provider_outcome_unknown", "checked_at": ...}` and `status` stays `signing`: treat it as not signed. */
7496
8089
  validation?: SignatureResultValidation | null;
@@ -7515,7 +8108,7 @@ interface SignatureResultAdoptedSignature {
7515
8108
  font?: string | null;
7516
8109
  adopted_at?: Date;
7517
8110
  }
7518
- /** The certificate the documents were signed with. `null` until signed. */
8111
+ /** The certificate the documents were signed with. `null` until signed, and always `null` for a Simple signature. */
7519
8112
  interface SignatureResultCertificate {
7520
8113
  issuer?: string;
7521
8114
  issued_to?: string;
@@ -7525,7 +8118,8 @@ interface SignatureResultCertificate {
7525
8118
  valid_until?: Date;
7526
8119
  }
7527
8120
  interface SignatureResultConfirmation {
7528
- channel?: "email" | "sms" | (string & {});
8121
+ /** `null` for a Simple signature, which has no code. */
8122
+ channel?: "email" | "sms" | (string & {}) | null;
7529
8123
  /** The masked contact the code went to. */
7530
8124
  destination?: string | null;
7531
8125
  confirmed_at?: Date | null;
@@ -7578,6 +8172,7 @@ interface SignatureResultDocumentsConversion {
7578
8172
  /** Version of the converter that produced the PDF. */
7579
8173
  converter?: string;
7580
8174
  }
8175
+ /** The verified identity the signature relies on. Empty for a Simple signature with no verified identity. */
7581
8176
  interface SignatureResultIdentityUsed {
7582
8177
  session_id?: string;
7583
8178
  kyc_id?: string | null;
@@ -7586,7 +8181,7 @@ interface SignatureResultIdentityUsed {
7586
8181
  expected_name?: string | null;
7587
8182
  }
7588
8183
  interface SignatureResultSigner {
7589
- /** Verified name. */
8184
+ /** The signer's name. Verified (from the approved ID verification or the session) except at the Simple level without a verified session name, where it is the name the signer typed and is not verified. */
7590
8185
  name?: string | null;
7591
8186
  capacity?: "self" | "company" | (string & {});
7592
8187
  company?: string | null;
@@ -7597,7 +8192,7 @@ interface SignatureResultSigner {
7597
8192
  /** The KYC session that verified the signer. */
7598
8193
  identity_session_id?: string;
7599
8194
  }
7600
- /** The trusted timestamp in the signature. `null` until signed. */
8195
+ /** The RFC 3161 timestamp in the signature, issued by Didit. `null` until signed, and always `null` for a Simple signature. */
7601
8196
  interface SignatureResultTimestamp {
7602
8197
  time?: Date;
7603
8198
  /** Always `false` for AES. */
@@ -7625,12 +8220,12 @@ interface SignatureResultValidationDocuments {
7625
8220
  revoked?: boolean;
7626
8221
  /** EU Trusted List check. For AES: `{"status": "not_applicable", "reason": "aes_not_qualified"}`. */
7627
8222
  trusted_list?: SignatureResultValidationDocumentsTrustedList;
7628
- /** The certificate the documents were signed with. `null` until signed. */
8223
+ /** The certificate the documents were signed with. `null` until signed, and always `null` for a Simple signature. */
7629
8224
  certificate?: SignatureResultValidationDocumentsCertificate | null;
7630
- /** The trusted timestamp in the signature. `null` until signed. */
8225
+ /** The RFC 3161 timestamp in the signature, issued by Didit. `null` until signed, and always `null` for a Simple signature. */
7631
8226
  timestamp?: SignatureResultValidationDocumentsTimestamp | null;
7632
8227
  }
7633
- /** The certificate the documents were signed with. `null` until signed. */
8228
+ /** The certificate the documents were signed with. `null` until signed, and always `null` for a Simple signature. */
7634
8229
  interface SignatureResultValidationDocumentsCertificate {
7635
8230
  issuer?: string;
7636
8231
  issued_to?: string;
@@ -7639,7 +8234,7 @@ interface SignatureResultValidationDocumentsCertificate {
7639
8234
  valid_from?: Date;
7640
8235
  valid_until?: Date;
7641
8236
  }
7642
- /** The trusted timestamp in the signature. `null` until signed. */
8237
+ /** The RFC 3161 timestamp in the signature, issued by Didit. `null` until signed, and always `null` for a Simple signature. */
7643
8238
  interface SignatureResultValidationDocumentsTimestamp {
7644
8239
  time?: Date;
7645
8240
  /** Always `false` for AES. */
@@ -7694,7 +8289,7 @@ interface SimpleQuestionnaireElementValidation {
7694
8289
  interface SimpleWorkflowFeature {
7695
8290
  /** Feature to run. Use the uppercase values shown here. */
7696
8291
  feature: "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" | "SIGNATURE" | (string & {});
7697
- /** Feature-specific settings. For `QUESTIONNAIRE`, include `questionnaire_uuid` with the `questionnaire_id` returned by the questionnaire create endpoint. For `OCR`, `methods` selects which ID Verification methods each country may use (document capture, non-doc lookup against a government or other authoritative source, and digital identity wallets); omit it and every country is document capture only. For `SIGNATURE`, see [Electronic Signature settings](/management-api/workflows/feature-configs#electronic-signature): `signature_level` accepts `aes` only for now, and workflow documents and their fields are managed in the console, so through the API send documents and fields per session with `signature_documents_source: "session"`. */
8292
+ /** Feature-specific settings. For `QUESTIONNAIRE`, include `questionnaire_uuid` with the `questionnaire_id` returned by the questionnaire create endpoint. For `SIGNATURE`, a workflow that goes live needs a document to sign: set `signature_documents_source` to `session` or `both` so each session can bring its own, or send `status: "draft"` and add the documents before you publish. `signature_level: "aes"` is refused with `aes_not_available` while `signature_availability.aes` is `false` on the workflow. For `OCR`, `methods` selects which ID Verification methods each country may use (document capture, non-doc lookup against a government or other authoritative source, and digital identity wallets); omit it and every country is document capture only. For `SIGNATURE`, see [E-signature settings](/management-api/workflows/feature-configs#e-signature): `signature_level` accepts `simple` (the default, no ID verification, email or phone needed) and `aes` for now, and workflow documents and their fields are managed in the console, so through the API send documents and fields per session with `signature_documents_source: "session"`. */
7698
8293
  config?: Record<string, unknown>;
7699
8294
  /** Optional internal label for this workflow node. */
7700
8295
  label?: string;
@@ -7789,7 +8384,7 @@ interface TransactionDetail {
7789
8384
  documents?: TransactionDetailDocuments[];
7790
8385
  /** Activity log entries (creation, notes, manual reviews, status changes). */
7791
8386
  activities?: TransactionDetailActivities[];
7792
- /** Alerts raised by rules and providers. */
8387
+ /** Always empty today. An open alert is a transaction with status `IN_REVIEW` or `AWAITING_USER`. */
7793
8388
  alerts?: TransactionDetailAlerts[];
7794
8389
  /** Per-rule execution results - which rule fired, with what score impact. */
7795
8390
  rule_runs?: TransactionDetailRuleRuns[];
@@ -8077,7 +8672,7 @@ interface TransactionRuleAggregation {
8077
8672
  value: number;
8078
8673
  /** Look-back window ending at the transaction's txn_date: <N>m (MINUTES, not months), <N>h (hours) or <N>d (days), e.g. 30m, 24h, 7d, 30d. */
8079
8674
  window?: string;
8080
- /** Narrows which historical transactions are aggregated. Keys are field paths from the condition field catalog; a value of "__current__" resolves to the same field's value on the transaction being evaluated (e.g. {"subject_vendor_data": "__current__"} scopes the window to the same subject), and a list value means membership. Filters compare by equality or membership ONLY - there is no lt/gte filter, so a range such as "historical transactions under 10,000" cannot be expressed here. Put the range on the metric instead (metric max with operator lt keeps every transaction in the window below the threshold). */
8675
+ /** Narrows which historical transactions are aggregated. Keys are field paths from the condition field catalog; a value of "__current__" resolves to the same field's value on the transaction being evaluated (e.g. {"subject_vendor_data": "__current__"} scopes the window to the same subject), and a list value means membership. Records without the grouped value are never grouped together: when the transaction being evaluated has no value for a "__current__" field (no counterparty, no device fingerprint), the aggregation does not match, whatever its operator. Filters compare by equality or membership ONLY - there is no lt/gte filter, so a range such as "historical transactions under 10,000" cannot be expressed here. Put the range on the metric instead (metric max with operator lt keeps every transaction in the window below the threshold). */
8081
8676
  filters?: Record<string, unknown>;
8082
8677
  }
8083
8678
  interface TransactionRuleBacktestResult {
@@ -8095,7 +8690,7 @@ interface TransactionRuleCondition {
8095
8690
  field: string;
8096
8691
  /** Comparison operator. in/not_in test membership (value may be a list or a single scalar). contains/not_contains are case-insensitive substring checks against a string value. contains_any takes a list of strings and matches when any is a case-insensitive substring of the field value. regex matches the value pattern against the field. fuzzy_match compares against the value string with the required `score` threshold (0-100). gt/gte/lt/lte never match when either side is missing. exists/is_not_empty/is_not_null (aliases) and not_exists/is_empty/is_null (aliases) are presence checks that ignore `value`. */
8097
8692
  operator: "eq" | "ne" | "gt" | "gte" | "lt" | "lte" | "in" | "not_in" | "contains" | "not_contains" | "contains_any" | "regex" | "fuzzy_match" | "exists" | "is_not_empty" | "is_not_null" | "not_exists" | "is_empty" | "is_null" | (string & {});
8098
- /** Comparison value. Its shape depends on the operator and value_type; omit for the presence-check operators. */
8693
+ /** Comparison value. Its shape depends on the operator and value_type; omit it for the presence-check operators. Every other operator needs a value that is not `null` or an empty list, otherwise the rule is refused with `400`. `contains_any` needs a list of strings, and `contains`, `not_contains` and `regex` need a single string. */
8099
8694
  value?: unknown;
8100
8695
  /** Optional value interpretation. `list`: value is a List UUID and the list's entries become the comparison value. `field`: value is another field path, compared field-to-field. `relative_date`: value is a relative-date object, e.g. {"direction": "past", "unit": "days", "amount": 30}. */
8101
8696
  value_type?: "list" | "field" | "relative_date" | (string & {});
@@ -8553,6 +9148,12 @@ interface TravelRuleInboundResponse {
8553
9148
  /** Full transfer object returned by the ownership-confirmation and finish/cancel endpoints. While an inbound transfer's wallet ownership is unconfirmed, the counterparty's `originator_data` and `beneficiary_data` come back masked (the first letter of each word is kept; the wallet, chain and VASP routing stay readable) and `data_masked` is true. */
8554
9149
  travel_rule?: TravelRuleTransferDetail;
8555
9150
  }
9151
+ interface TravelRuleManualMatchResponse {
9152
+ /** One Travel Rule transfer as the transfers list shows it: VASP names, wallets and memos only, never the originator or beneficiary person data. */
9153
+ deposit: TravelRuleTransferRow;
9154
+ /** One Travel Rule transfer as the transfers list shows it: VASP names, wallets and memos only, never the originator or beneficiary person data. */
9155
+ message: TravelRuleTransferRow;
9156
+ }
8556
9157
  /** How strictly each field of the counterparty's data is compared with what you hold, per entity type. A field you leave out keeps its default. `NONE` skips the comparison, `STRICT` needs exactly the same words, `CONTAINS` accepts one value whose words all appear in the other, `DEFAULT` is the standard subset match, and `FUZZY` accepts close spellings (and, for dates of birth, a swapped day and month). */
8557
9158
  interface TravelRuleMatchingRules {
8558
9159
  /** Rules for a natural person. */
@@ -9246,6 +9847,16 @@ interface UserSessionListItem {
9246
9847
  email_address: UserSessionListItemEmailAddress | null;
9247
9848
  /** Compact per-feature extras. Only features that produced data appear as keys; `null` when no feature produced extras. Fields excluded by the workflow's response-attributes configuration are omitted. */
9248
9849
  additional_details: UserSessionListItemAdditionalDetails | null;
9850
+ /** The Console reviewer the session is assigned to, or `null` when nobody holds it. */
9851
+ assignee?: UserSessionListItemAssignee | null;
9852
+ /** When the session started waiting for review. `null` unless the session is `In Review`. */
9853
+ waiting_since?: Date | null;
9854
+ /** When the review is due, from the review deadline set for your application in the Console. `null` unless the session is `In Review` and a deadline is set. */
9855
+ sla_due_at?: Date | null;
9856
+ /** Up to a few of the session's most important warnings, for a quick triage view. The full list is in the decision. */
9857
+ top_warnings?: UserSessionListItemTopWarnings[];
9858
+ /** Number of warnings on the session. */
9859
+ warnings_count?: number;
9249
9860
  }
9250
9861
  /** Compact per-feature extras. Only features that produced data appear as keys; `null` when no feature produced extras. Fields excluded by the workflow's response-attributes configuration are omitted. */
9251
9862
  interface UserSessionListItemAdditionalDetails {
@@ -9324,6 +9935,11 @@ interface UserSessionListItemAdditionalDetailsPoa {
9324
9935
  address?: string;
9325
9936
  name_on_document?: string;
9326
9937
  }
9938
+ /** The Console reviewer the session is assigned to, or `null` when nobody holds it. */
9939
+ interface UserSessionListItemAssignee {
9940
+ email?: string;
9941
+ assigned_at?: Date | null;
9942
+ }
9327
9943
  /** Email associated with the session: the verified email when email verification ran, otherwise the contact email provided at session creation. `null` when neither exists. */
9328
9944
  interface UserSessionListItemEmailAddress {
9329
9945
  email: string;
@@ -9332,7 +9948,7 @@ interface UserSessionListItemEmailAddress {
9332
9948
  }
9333
9949
  interface UserSessionListItemFeatures {
9334
9950
  /** Verification feature identifier. */
9335
- feature: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACE_MATCH" | "POA" | "QUESTIONNAIRE" | "EMAIL_VERIFICATION" | "PHONE" | "AML" | "IP_ANALYSIS" | "AGE_ESTIMATION" | "DATABASE_VALIDATION" | (string & {});
9951
+ feature: "ID_VERIFICATION" | "NFC" | "LIVENESS" | "FACE_MATCH" | "POA" | "QUESTIONNAIRE" | "EMAIL_VERIFICATION" | "PHONE" | "AML" | "IP_ANALYSIS" | "AGE_ESTIMATION" | "DATABASE_VALIDATION" | "GEOLOCATION" | (string & {});
9336
9952
  /** Status of this feature. `Not Finished` until the step completes. */
9337
9953
  status: "Not Finished" | "Approved" | "Declined" | "In Review" | "Resub Requested" | (string & {});
9338
9954
  }
@@ -9343,6 +9959,15 @@ interface UserSessionListItemPhoneNumber {
9343
9959
  /** `true` only when the phone-verification feature approved this number. */
9344
9960
  is_verified: boolean;
9345
9961
  }
9962
+ interface UserSessionListItemTopWarnings {
9963
+ /** Warning code, for example `FACE_MATCH_LOW_SIMILARITY`. */
9964
+ risk?: string;
9965
+ /** The feature that raised it. */
9966
+ feature?: string;
9967
+ /** `error` or `warning`; `null` for a legacy entry. */
9968
+ log_type?: string | null;
9969
+ short_description?: string;
9970
+ }
9346
9971
  /** A VASP of the directory or a member of the Didit network, with the routes your application has to it. A customer is a member of the Didit network only while its application is live, its Travel Rule is on, its profile is discoverable, has a legal name and a confirmed compliance email, and Didit has not marked the application as a test, demo or internal one. Each row also carries the shared due-diligence assessment (dd_score, risk_level, responsiveness, essential_checks) and your application's own decision, entity screening and questionnaires, which no other customer sees. */
9347
9972
  interface VaspDirectoryEntry {
9348
9973
  /** The entry's id, for GET /v3/travel-rule/vasps/{vasp_id}/. */
@@ -9757,6 +10382,8 @@ interface WebhookConfig {
9757
10382
  allowed_return_hosts: string[];
9758
10383
  /** Every webhook destination of the application, oldest first, each with its signing secret. Read only here: manage destinations with the `/v3/webhook/destinations/` endpoints. */
9759
10384
  endpoints: WebhookConfigDestination[];
10385
+ /** Origins (for example `https://app.example.com`; `http` only for `localhost`) the hosted verification flow may be embedded in and may send the user back to with a session callback. Server-to-server calls are not affected. An empty list means no restriction. Didit stores each origin in lower case without a default port. An invalid entry fails with `400` on `allowed_domains`. */
10386
+ allowed_domains?: string[];
9760
10387
  }
9761
10388
  interface WebhookConfigAvailableEvents {
9762
10389
  /** Supported webhook event name. Use these exact strings in `subscribed_events`; unsupported values are rejected. */
@@ -9826,7 +10453,7 @@ interface WebhookDestinationDeliveryDetail {
9826
10453
  request_body: string;
9827
10454
  }
9828
10455
  /** Supported webhook event name. Use these exact strings in `subscribed_events`; unsupported values are rejected. */
9829
- type WebhookEventType = "status.updated" | "data.updated" | "user.status.updated" | "user.data.updated" | "business.status.updated" | "business.data.updated" | "activity.created" | "transaction.created" | "transaction.status.updated" | "travel_rule.status.updated" | "workflow.compliance_changed" | "auth.signup" | "auth.login" | "auth.login_failed" | "auth.password_reset_requested" | "auth.password_reset_completed" | "auth.mfa_changed" | "auth.new_device" | "auth.account_locked" | "investigator.report.ready" | "investigator.decision.automated" | "investigator.decision.overridden" | "investigator.decision.contested" | "investigator.question.raised" | "investigator.automation.paused" | "investigator.rfi.answered" | "investigator.rfi.overdue" | "investigator.drift.detected" | "investigator.sla.breached" | "investigator.qa.failed" | "investigator.external.report.ready" | (string & {});
10456
+ type WebhookEventType = "status.updated" | "data.updated" | "user.status.updated" | "user.data.updated" | "business.status.updated" | "business.data.updated" | "activity.created" | "transaction.created" | "transaction.status.updated" | "travel_rule.status.updated" | "workflow.compliance_changed" | "transaction_rule_suggestions.created" | "auth.signup" | "auth.login" | "auth.login_failed" | "auth.password_reset_requested" | "auth.password_reset_completed" | "auth.mfa_changed" | "auth.new_device" | "auth.account_locked" | "investigator.report.ready" | "investigator.decision.automated" | "investigator.decision.overridden" | "investigator.decision.contested" | "investigator.question.raised" | "investigator.automation.paused" | "investigator.rfi.answered" | "investigator.rfi.overdue" | "investigator.drift.detected" | "investigator.sla.breached" | "investigator.qa.failed" | "investigator.external.report.ready" | (string & {});
9830
10457
  /** Event filter for this webhook destination. Didit delivers only webhooks whose event type exactly matches one of these values - there is no wildcard subscription. When sent, the list must contain at least one valid event (an explicit `[]` is rejected with 400); a destination whose list is empty (field omitted at create) receives nothing. On update the list is replaced wholesale, never merged. */
9831
10458
  type WebhookSubscribedEvents = WebhookEventType[];
9832
10459
  /** The fields below are typed; the object also carries every other column of the workflow configuration (feature toggles, thresholds, warning actions, allowed documents, callbacks) as additional properties. Fields that do not apply to the `workflow_type` are `null`. */
@@ -9879,6 +10506,8 @@ interface WorkflowDetail {
9879
10506
  kyb_role_settings?: Record<string, unknown>[];
9880
10507
  created_at?: Date;
9881
10508
  updated_at?: Date;
10509
+ /** Which E-signature levels can sign right now. Check it before you set `signature_level`. Returned on `kyc`, `kyb` and graph workflows. */
10510
+ signature_availability?: WorkflowDetailSignatureAvailability;
9882
10511
  /** Whether a simple KYC or KYB workflow runs Bank verification. It runs after the contact steps (and Location verification) and before database validation, AML and IP analysis. Bank verification is not generally available yet: turning it on is refused wherever it is not enabled. */
9883
10512
  is_bank_verification_enabled?: boolean;
9884
10513
  /** Bank verification settings of a simple workflow, with the same keys a `BANK_VERIFICATION` node takes (for example `bank_countries` and `bank_method_order`). Unknown keys are dropped. Every key is optional and an absent key keeps its default, so `{}` means all defaults. See [Bank verification settings](/management-api/workflows/feature-configs#bank-verification). */
@@ -9889,6 +10518,15 @@ interface WorkflowDetail {
9889
10518
  geolocation_config?: Record<string, unknown>;
9890
10519
  [key: string]: unknown;
9891
10520
  }
10521
+ /** Which E-signature levels can sign right now. Check it before you set `signature_level`. Returned on `kyc`, `kyb` and graph workflows. */
10522
+ interface WorkflowDetailSignatureAvailability {
10523
+ /** Simple is always available. */
10524
+ simple?: boolean;
10525
+ /** Whether Advanced (AES) can sign now. While it is `false`, saving a new step at `signature_level: "aes"` is refused with `aes_not_available`. */
10526
+ aes?: boolean;
10527
+ /** Whether Qualified (QES) can sign now. It is `false` until a qualified provider is connected. */
10528
+ qes?: boolean;
10529
+ }
9892
10530
  /** One workflow version in the list view. */
9893
10531
  interface WorkflowListItem {
9894
10532
  /** Per-version UUID. Use as `{settings_uuid}` for get/update/delete, and as `workflow_id` when creating sessions. */
@@ -9941,43 +10579,118 @@ interface WorkflowListItemCreatedBy {
9941
10579
  type?: "user" | "api_key" | (string & {});
9942
10580
  }
9943
10581
 
9944
- /** `account.applications` */
9945
- declare class AccountApplications extends APIResource {
9946
- /**
9947
- * Create Application
9948
- *
9949
- * Create an application inside an organization. The response includes `api_key`; persist it now (recoverable via GET). Requires owner/admin JWT.
9950
- *
9951
- * `POST /organizations/me/{org_id}/applications/`
9952
- *
9953
- * @param orgId UUID of the organization. Look it up with `GET /organizations/me/`.
9954
- */
9955
- create(orgId: string, params?: AccountApplicationsCreateParams, options?: RequestOptions): APIPromise<Application>;
9956
- /**
9957
- * List the organization's applications
9958
- *
9959
- * List the organization's applications, 50 per page by default. Use this to discover `app_id` values when recovering credentials from a new machine, then call `GET /organizations/me/{org_id}/applications/{app_id}/` for the API key. Requires an owner or admin Bearer token.
9960
- *
9961
- * `GET /organizations/me/{org_id}/applications/`
9962
- *
9963
- * @param orgId UUID of the organization. Look it up with `GET /organizations/me/`.
9964
- */
9965
- list(orgId: string, params?: AccountApplicationsListParams, options?: RequestOptions): PagePromise<PaginatedApplicationList, Application>;
9966
- /**
9967
- * Get Application Credentials
9968
- *
9969
- * Read one application's full record including `client_id` and `api_key`. Use this to recover a lost `api_key`.
9970
- *
9971
- * `GET /organizations/me/{org_id}/applications/{app_id}/`
9972
- *
9973
- * @param orgId UUID of the organization that owns the application.
9974
- * @param appId UUID of the application whose credentials you want to read.
9975
- */
9976
- retrieve(orgId: string, appId: string, options?: RequestOptions): APIPromise<Application>;
9977
- /**
9978
- * Update Application
10582
+ /** All fields are optional. Sending an empty body creates an application with a default name, in the European Union. */
10583
+ interface AccountApplicationsCreateParams {
10584
+ /** Application display name. Defaults to `"<organization name> App"`. */
10585
+ name?: string;
10586
+ /** Website or app URL associated with this application. */
10587
+ website_url?: string;
10588
+ /** Allowed redirect URIs for OAuth-style and verification redirect flows. */
10589
+ redirect_uris?: string[];
10590
+ /** Terms of service URL shown in the verification flow. */
10591
+ terms_url?: string;
10592
+ /** Privacy policy URL shown in the verification flow. */
10593
+ privacy_url?: string;
10594
+ /** Internal description for the application (not shown to end users). */
10595
+ description?: string;
10596
+ /** Where the application's verification data is stored and processed, chosen when the application is created. `eu` is the European Union (Ireland), the default. `au` (Australia, Sydney) and `mx` (Mexico) are coming soon: a request that names them answers 400 `This data location is not available yet.` An organization's Sandbox application is always in the European Union. */
10597
+ data_location?: ApplicationDataLocation;
10598
+ }
10599
+ interface AccountApplicationsListParams {
10600
+ /** Number of applications per page. Defaults to 50. */
10601
+ limit?: number;
10602
+ /** Number of applications to skip before the page starts. Defaults to 0. */
10603
+ offset?: number;
10604
+ }
10605
+ /** PATCH body for application metadata. Send only the fields you want to change; omitted fields are preserved. `uuid`, `client_id`, and `api_key` cannot be updated. `products` is read-only: a `products` key in the body is ignored. `data_location` can't be changed after the application is created: naming the location it already has is accepted, and any other location answers 400. The one exception is the live application created with your organization: the first update that names a `data_location` chooses it, once, while no API key of the application has been used and it has no verification session. */
10606
+ interface AccountApplicationsUpdateParams {
10607
+ /** Application display name. */
10608
+ name?: string;
10609
+ /** Website or app URL associated with this application. */
10610
+ website_url?: string;
10611
+ /** Allowed redirect URIs for OAuth-style and verification redirect flows. */
10612
+ redirect_uris?: string[];
10613
+ /** Terms of service URL shown in the verification flow. */
10614
+ terms_url?: string;
10615
+ /** Privacy policy URL shown in the verification flow. */
10616
+ privacy_url?: string;
10617
+ /** Internal description for the application. */
10618
+ description?: string;
10619
+ /** Where the application's verification data is stored and processed, chosen when the application is created. `eu` is the European Union (Ireland), the default. `au` (Australia, Sydney) and `mx` (Mexico) are coming soon: a request that names them answers 400 `This data location is not available yet.` An organization's Sandbox application is always in the European Union. */
10620
+ data_location?: ApplicationDataLocation;
10621
+ }
10622
+ interface AccountLoginParams {
10623
+ email: string;
10624
+ password: string;
10625
+ }
10626
+ interface AccountOrganizationsListParams {
10627
+ /** Page size. Defaults to 50. */
10628
+ limit?: number;
10629
+ /** Zero-based offset of the first result. */
10630
+ offset?: number;
10631
+ }
10632
+ interface AccountRegisterParams {
10633
+ /** Any valid email address (personal, work, alias). Used as the unique account identifier. */
10634
+ email: string;
10635
+ /** Minimum 8 characters. Must contain at least one uppercase letter (`A-Z`), one lowercase letter (`a-z`), one digit (`0-9`), and one special character from `!@#$%^&*()_+-=[]{}|;:,.<>?`. Validation reports one failed rule at a time. */
10636
+ password: string;
10637
+ }
10638
+ interface AccountResendOtpParams {
10639
+ /** Email of the pending (unverified) account. */
10640
+ email: string;
10641
+ /** Password chosen at registration. */
10642
+ password: string;
10643
+ }
10644
+ interface AccountResendOtpResponse {
10645
+ /** Always `A new verification code has been sent to your email.` */
10646
+ message: string;
10647
+ /** The address the code was sent to, normalized: lowercased, with any `+tag` removed from the local part (`Dev+test@Example.com` becomes `dev@example.com`). */
10648
+ email: string;
10649
+ }
10650
+ interface AccountVerifyEmailParams {
10651
+ /** Email used during `POST /programmatic/register/`. */
10652
+ email: string;
10653
+ /** 6-character alphanumeric code from the verification email. Codes expire 10 minutes after the most recent code was sent. */
10654
+ code: string;
10655
+ }
10656
+
10657
+ /** `account.applications` */
10658
+ declare class AccountApplications extends APIResource {
10659
+ /**
10660
+ * Create Application
10661
+ *
10662
+ * Create an application inside an organization, in the data location you choose (`data_location`, the European Union by default; it can't be changed afterwards). The response includes `api_key`; persist it now (recoverable via GET). Requires owner/admin JWT.
10663
+ *
10664
+ * `POST /organizations/me/{org_id}/applications/`
10665
+ *
10666
+ * @param orgId UUID of the organization. Look it up with `GET /organizations/me/`.
10667
+ */
10668
+ create(orgId: string, params?: AccountApplicationsCreateParams, options?: RequestOptions): APIPromise<Application>;
10669
+ /**
10670
+ * List the organization's applications
10671
+ *
10672
+ * List the organization's applications, 50 per page by default. Use this to discover `app_id` values when recovering credentials from a new machine, then call `GET /organizations/me/{org_id}/applications/{app_id}/` for the API key. Requires an owner or admin Bearer token.
10673
+ *
10674
+ * `GET /organizations/me/{org_id}/applications/`
10675
+ *
10676
+ * @param orgId UUID of the organization. Look it up with `GET /organizations/me/`.
10677
+ */
10678
+ list(orgId: string, params?: AccountApplicationsListParams, options?: RequestOptions): PagePromise<PaginatedApplicationList, Application>;
10679
+ /**
10680
+ * Get Application Credentials
10681
+ *
10682
+ * Read one application's full record including `client_id` and `api_key`. Use this to recover a lost `api_key`.
10683
+ *
10684
+ * `GET /organizations/me/{org_id}/applications/{app_id}/`
10685
+ *
10686
+ * @param orgId UUID of the organization that owns the application.
10687
+ * @param appId UUID of the application whose credentials you want to read.
10688
+ */
10689
+ retrieve(orgId: string, appId: string, options?: RequestOptions): APIPromise<Application>;
10690
+ /**
10691
+ * Update Application
9979
10692
  *
9980
- * Update application metadata (name, URLs, redirect URIs). `api_key` and `client_id` are never rotated. `products` is read-only: a `products` key in the body is ignored. Requires owner/admin JWT.
10693
+ * Update application metadata (name, URLs, redirect URIs). `api_key` and `client_id` are never rotated. `products` is read-only: a `products` key in the body is ignored. `data_location` can't be changed after the application is created, except once on the live application created with your organization, while it is unused (see the request body). Requires owner/admin JWT.
9981
10694
  *
9982
10695
  * `PATCH /organizations/me/{org_id}/applications/{app_id}/`
9983
10696
  *
@@ -10071,7 +10784,7 @@ declare class AddressValidation extends APIResource {
10071
10784
  *
10072
10785
  * **Authentication.** Send your application's API key in `x-api-key`. Missing or invalid credentials return `403` - this API never returns `401`.
10073
10786
  *
10074
- * **Rate limit.** Shared write budget of 300 requests per minute per API key across all POST/PATCH/DELETE endpoints.
10787
+ * **Rate limit.** Shared write budget of 300 requests per minute per API key across POST/PATCH/DELETE endpoints (transaction creates and event ingestion have a separate budget of 600).
10075
10788
  *
10076
10789
  * `POST /v3/address-validation/`
10077
10790
  */
@@ -10276,7 +10989,7 @@ interface AmlScreenResponseAml {
10276
10989
  }
10277
10990
  /** One screening hit. `match_score` (0–100) measures identity confidence - hits below `aml_match_score_threshold` are tagged `review_status: "False Positive"` and excluded from the risk assessment; hits at or above it are `"Unreviewed"` possible matches. `risk_score` (0–100) measures how risky the matched entity is and drives the top-level `aml.score`. */
10278
10991
  interface AmlScreenResponseAmlHits {
10279
- /** Stable identifier of the matched entity in the screening datasets. */
10992
+ /** Didit's stable identifier for the hit: `hit_` followed by 24 hexadecimal characters. The same matched entity keeps the same `id` when the subject is screened again. Pass it as `hit_id` to the AML hit review endpoints. */
10280
10993
  id?: string | null;
10281
10994
  /** Source URL for the matched entity, when available. */
10282
10995
  url?: string | null;
@@ -10291,8 +11004,8 @@ interface AmlScreenResponseAmlHits {
10291
11004
  target?: boolean | null;
10292
11005
  /** Display name of the matched entity. */
10293
11006
  caption?: string | null;
10294
- /** Datasets the entity appears in (e.g. `PEP`, `PEP Level 1`, sanctions list names). */
10295
- datasets?: string[] | null;
11007
+ /** Risk categories the entity is listed under: `PEP` (with its level, `PEP Level 1` to `PEP Level 4`), `Sanctions`, `Adverse Media`, `Warnings and Regulatory Enforcement`, `Fitness and Probity`, `SIP`, `SIE` or `Insolvency`. `Other Lists` when the entity's source states none of these categories. */
11008
+ datasets?: ("PEP" | "PEP Level 1" | "PEP Level 2" | "PEP Level 3" | "PEP Level 4" | "Sanctions" | "Adverse Media" | "Warnings and Regulatory Enforcement" | "Fitness and Probity" | "SIP" | "SIE" | "Insolvency" | "Other Lists" | (string & {}))[] | null;
10296
11009
  features?: Record<string, unknown> | null;
10297
11010
  /** Entity profile: `name`, `alias`, `notes`, `gender`, `birthDate`, `birthPlace`, `nationality`, `position`, and other biographical arrays (each nullable). */
10298
11011
  properties?: Record<string, unknown> | null;
@@ -10536,6 +11249,10 @@ interface AnalyticsRetrieveParams {
10536
11249
  /** Transaction widgets only: comma-separated action types (case-insensitive). */
10537
11250
  action_type?: string;
10538
11251
  }
11252
+ interface AnalyticsRetrieveTodayParams {
11253
+ /** IANA time zone whose midnight starts today, for example `Europe/Madrid` or `America/Mexico_City`. Omit it for UTC. */
11254
+ tz?: string;
11255
+ }
10539
11256
 
10540
11257
  /** `analytics` */
10541
11258
  declare class Analytics extends APIResource {
@@ -10551,6 +11268,16 @@ declare class Analytics extends APIResource {
10551
11268
  * `GET /v3/organization/{organization_id}/application/{application_id}/analytics/`
10552
11269
  */
10553
11270
  retrieve(params?: AnalyticsRetrieveParams, options?: RequestOptions): APIPromise<ApplicationAnalyticsSummary | ApplicationAnalyticsWidgetResponse>;
11271
+ /**
11272
+ * Get today's verifications by hour
11273
+ *
11274
+ * Today's user verification (KYC) sessions, from local midnight in `tz`, counted per local hour they were created in, next to the same hours of the same weekday one week before, and split by the outcome each one holds now: approved, in review or declined. This is the volume card of the Business Console's Home.
11275
+ *
11276
+ * `total` is today so far. `previous_total_so_far` counts the comparison day only up to the same local time, so a change between them compares the same part of both days. The hours still to come today are `0`. A day on which the clocks change has 23 or 25 hours: the missing hour stays `0` and the repeated hour holds both.
11277
+ *
11278
+ * `GET /v3/organization/{organization_id}/application/{application_id}/analytics/today/`
11279
+ */
11280
+ retrieveToday(params?: AnalyticsRetrieveTodayParams, options?: RequestOptions): APIPromise<ApplicationAnalyticsToday>;
10554
11281
  }
10555
11282
 
10556
11283
  interface BankAccountCheckParams {
@@ -10562,6 +11289,8 @@ interface BankAccountCheckParams {
10562
11289
  holder: BankAccountCheckHolder;
10563
11290
  /** Your own reference for this check, returned unchanged. */
10564
11291
  vendor_data?: string | null;
11292
+ /** Set to `true` when the account holder has explicitly consented to this check. Required in the countries whose account check needs that consent: without it the check is refused with a `400` whose `field` is `consent` and whose `reason` is `required`, and nothing is billed. Elsewhere it is optional, and Didit records it with the check's charge when you send it. */
11293
+ consent?: boolean;
10565
11294
  }
10566
11295
  /** The account the way its country writes it: an `iban`, or an `account_number` with the bank or branch code the country needs (`sort_code`, `routing_number`, `transit_institution`, `bsb`, `ifsc`, `bank_code` or `bic`). Mexico takes a `clabe` and Argentina a `cbu_cvu`, which already name the bank. A business account adds a `registration_id` where the country asks for one. Spaces, dashes and dots are ignored. Keys the country's check does not use are ignored; a key it needs and does not get is a `400` that names it. */
10567
11296
  interface BankAccountCheckParamsAccount {
@@ -10597,6 +11326,8 @@ declare class Bank extends APIResource {
10597
11326
  /**
10598
11327
  * Check a bank account
10599
11328
  *
11329
+ * **Not available in production yet.** Bank Verification is switched off in production, so until it is switched on this endpoint answers `404` with `bank_verification_not_available`. Do not build on it yet. The rest of this description is what the endpoint does once it is available.
11330
+ *
10600
11331
  * Check that a bank account belongs to the person or company you name, before you send money to it. No session and no sign-in: send the name and the account, read the result. It is the [account check](/core-technology/bank-verification/account-check) of the Bank Verification step, run from your backend.
10601
11332
  *
10602
11333
  * **What you send.** The account's `country` (ISO 3166-1 alpha-3), the `account` the way that country writes it, and the `holder` name: `full_name` for a person or `business_name` for a company. A business name checks a business account.
@@ -10607,7 +11338,7 @@ declare class Bank extends APIResource {
10607
11338
  *
10608
11339
  * **Every request is a new check.** There is no idempotency key and no endpoint to read a check back, so a retried request runs, and is billed, again. Store the response.
10609
11340
  *
10610
- * **Sandbox.** A sandbox key calls no bank and is charged nothing. The last 4 characters of the IBAN, else of the account number, choose the answer: `0001` a `close_match` with a `holder_name`, `0002` a `close_match` without one, `0003` and `0006` a `no_match`, `0004` `cannot_verify`, `0005` a `503` and `0009` a `400`. Any other ending is a `match`.
11341
+ * **Sandbox.** Where Bank Verification is available, a sandbox key calls no bank and is charged nothing. The last 4 characters of the IBAN, else of the account number, choose the answer: `0001` a `close_match` with a `holder_name`, `0002` a `close_match` without one, `0003` and `0006` a `no_match`, `0004` `cannot_verify`, `0005` a `503` and `0009` a `400`. Any other ending is a `match`.
10611
11342
  *
10612
11343
  * **API keys.** A scoped API key needs write access to sessions.
10613
11344
  *
@@ -10621,13 +11352,13 @@ interface BillingRetrieveBalanceResponse {
10621
11352
  balance: string;
10622
11353
  /** When `true`, Didit will automatically charge the saved payment method to add credits once the balance crosses `auto_refill_threshold`. Configured from Console → Billing. */
10623
11354
  auto_refill_enabled: boolean;
10624
- /** USD amount that will be charged and added to the balance on each auto-refill, at face value. Set from \$50 to \$10,000 in Console → Billing. `null` when auto-refill is disabled or unset. */
11355
+ /** USD amount that will be charged and added to the balance on each auto-refill, at face value. Set from \$50 to \$20,000 in Console → Billing. `null` when auto-refill is disabled or unset. */
10625
11356
  auto_refill_amount?: string | null;
10626
11357
  /** Trigger threshold in USD. Auto-refill fires when `balance` falls below this value. `null` when auto-refill is disabled or unset. */
10627
11358
  auto_refill_threshold?: string | null;
10628
11359
  }
10629
11360
  interface BillingTopUpParams {
10630
- /** Amount to charge, in USD. **Must be from 50 to 10,000.** The balance receives the same amount, with no discount or bonus. Tax is added automatically at checkout based on the customer's billing address. */
11361
+ /** Amount to charge, in USD. **Must be from 50 to 20,000.** The balance receives the same amount, with no discount or bonus. Tax is added automatically at checkout based on the customer's billing address. */
10631
11362
  amount_in_dollars: number;
10632
11363
  /** URL the hosted checkout redirects the customer to after a successful payment. Currently defaults to `https://console.didit.me`. Pass a working URL explicitly; the default host is unavailable. Append the literal placeholder `{CHECKOUT_SESSION_ID}` if you want the hosted checkout to substitute the session ID. */
10633
11364
  success_url?: string;
@@ -10654,7 +11385,7 @@ declare class Billing extends APIResource {
10654
11385
  /**
10655
11386
  * Top up credits
10656
11387
  *
10657
- * Add credits via a hosted Stripe Checkout session (**\$50 to \$10,000** per top-up). Top-ups are available on the Free, Growth and Scale plans, added at face value with no discount or bonus, and last 12 months; Enterprise annual contracts cannot top up. Redirect the customer to the returned `checkout_session_url`.
11388
+ * Add credits via a hosted Stripe Checkout session (**\$50 to \$20,000** per top-up). Top-ups are available on the Free, Growth and Scale plans, added at face value with no discount or bonus, and last 12 months; Enterprise annual contracts cannot top up. Redirect the customer to the returned `checkout_session_url`.
10658
11389
  *
10659
11390
  * `POST /v3/billing/top-up/`
10660
11391
  */
@@ -12610,6 +13341,38 @@ interface DatabaseValidationValidateParams {
12610
13341
  bvn?: string;
12611
13342
  /** Bank card number (CHN bank-card verification). */
12612
13343
  bank_card_number?: string;
13344
+ /** Company registration number as issued by the companies register: the CNPJ in Brazil (e.g. `11222333000181`), the registration number in South Africa (e.g. `1936/007721/06`). Required by the company registry and company directors services (`bra_company_registry`, `bra_company_directors`, `zaf_company_registry`, `zaf_company_directors`). */
13345
+ company_registration_number?: string;
13346
+ /** Registered company name, cross-checked against the register entry. Optional for `zaf_company_registry`. */
13347
+ company_name?: string;
13348
+ /** The person's initials as printed on the document. Required by `zaf_drivers_license`; accepted by `zaf_bank_account_holder`. */
13349
+ initials?: string;
13350
+ /** Driving licence number as printed on the card, for `zaf_drivers_license`. When omitted, `document_number` is used. */
13351
+ licence_number?: string;
13352
+ /** Refugee file number issued by South Africa's Department of Home Affairs. Required by `zaf_refugee`. */
13353
+ refugee_file_number?: string;
13354
+ /** Name of the bank that holds the account. Required by `zaf_bank_account_holder`. */
13355
+ bank_name?: string;
13356
+ /** Bank account number. Required by `zaf_bank_account_holder`; accepted by `zaf_fraud_prevention`. */
13357
+ bank_account_number?: string;
13358
+ /** Bank account type for `zaf_bank_account_holder`: `current`, `savings`, `transmission`, `subscriptionShare` or `notKnown`, case-insensitive. Any other value returns `400`. Omit it when you do not know the type: the account-type cross-check is then reported as not confirmed. */
13359
+ account_type?: string;
13360
+ /** Contact mobile number, for the services that cross-check contactability (`zaf_bank_account_holder`, `zaf_fraud_prevention`, `zaf_refugee`). */
13361
+ phone_number?: string;
13362
+ /** Base64-encoded right thumb fingerprint for `zaf_dha_fingerprint_match`, with `left_thumb` or on its own. */
13363
+ right_thumb?: string;
13364
+ /** Base64-encoded left thumb fingerprint for `zaf_dha_fingerprint_match`, with `right_thumb` or on its own. */
13365
+ left_thumb?: string;
13366
+ /** Minimum biometric score level for `zaf_criminal_face_screening`. Defaults to `3`. */
13367
+ score_level?: number;
13368
+ /** Maximum number of candidate matches `zaf_criminal_face_screening` returns. Defaults to `1`. */
13369
+ max_matches?: number;
13370
+ /** Vehicle register number. Required, with `vehicle_licence_plate` and `vin`, by `zaf_vehicle_ownership`. */
13371
+ vehicle_register_number?: string;
13372
+ /** Vehicle licence plate number. Required, with `vehicle_register_number` and `vin`, by `zaf_vehicle_ownership`. */
13373
+ vehicle_licence_plate?: string;
13374
+ /** Vehicle Identification Number (VIN or chassis number). Required, with `vehicle_register_number` and `vehicle_licence_plate`, by `zaf_vehicle_ownership`. */
13375
+ vin?: string;
12613
13376
  /** Social Security Number (USA). */
12614
13377
  ssn?: string;
12615
13378
  /** Phone number for phone-verification services. */
@@ -12869,6 +13632,14 @@ interface EmailCheckCodeParams {
12869
13632
  breached_email_action?: "NO_ACTION" | "DECLINE" | (string & {});
12870
13633
  /** What to do when the domain belongs to a disposable/temporary-mail provider (`email.is_disposable`). `DECLINE` flips the final `status` to `Declined`; `NO_ACTION` records the risk in `email.warnings`. */
12871
13634
  disposable_email_action?: "NO_ACTION" | "DECLINE" | (string & {});
13635
+ /** When `true`, also run email intelligence on the address: a risk score and its breach history. Billed as one `email_intelligence_api` unit per request ($0.05 at list price) in addition to this endpoint's own price. The request returns `403` when your balance cannot cover it. */
13636
+ enable_enrichment?: boolean;
13637
+ /** Action when the email intelligence risk score is above the threshold. `DECLINE` flips the final `status` to `Declined`; `NO_ACTION` records the signal without declining. Only takes effect when `enable_enrichment` is `true`. */
13638
+ email_intelligence_score_action?: "NO_ACTION" | "DECLINE" | (string & {});
13639
+ /** Action when the address appears in a recent known data breach. `DECLINE` flips the final `status` to `Declined`; `NO_ACTION` records the signal without declining. Only takes effect when `enable_enrichment` is `true`. */
13640
+ recent_email_breach_action?: "NO_ACTION" | "DECLINE" | (string & {});
13641
+ /** Action when the address appears in many known data breaches. `DECLINE` flips the final `status` to `Declined`; `NO_ACTION` records the signal without declining. Only takes effect when `enable_enrichment` is `true`. */
13642
+ frequent_email_breach_action?: "NO_ACTION" | "DECLINE" | (string & {});
12872
13643
  /** When true, also look up the social footprint of the address - the email, social, professional, e-commerce and entertainment platforms it is registered on. Billed as one `email_social` unit per request in addition to this endpoint's own price. */
12873
13644
  enable_social?: boolean;
12874
13645
  /** Action when the social footprint check finds the address registered on none of the platforms it covers. Only NO_ACTION and DECLINE are accepted on this endpoint; REVIEW is available on the workflow configuration key of the same name. */
@@ -12932,7 +13703,7 @@ declare class Email extends APIResource {
12932
13703
  *
12933
13704
  * **Authentication.** Send your application's API key in `x-api-key`. Missing or invalid credentials return `403` - this API never returns `401`.
12934
13705
  *
12935
- * **Rate limit.** Shared write budget of 300 requests per minute per API key across all POST/PATCH/DELETE endpoints.
13706
+ * **Rate limit.** Shared write budget of 300 requests per minute per API key across POST/PATCH/DELETE endpoints (transaction creates and event ingestion have a separate budget of 600).
12936
13707
  *
12937
13708
  * **Social footprint.** Set `enable_social` to `true` to add a `email_social` block: the online platforms this address is registered on, with per-category counts and any profile details available. `profiles_registered: 0` means the platforms were checked and the address was found on none of them - a valid, billable answer. The block is absent when the add-on was not requested or the check could not be completed, and it is not billed in that case. Billing adds one `email_social` unit per request on top of this endpoint's own price.
12938
13709
  *
@@ -13512,7 +14283,7 @@ interface IdVerificationVerifyResponseIdVerificationParsedAddressDocumentLocatio
13512
14283
  longitude?: number;
13513
14284
  }
13514
14285
  interface IdVerificationVerifyResponseIdVerificationWarnings {
13515
- /** Machine-readable risk code. Always-decline risks: `DOCUMENT_EXPIRED`, `MINIMUM_AGE_NOT_MET`, `PORTRAIT_IMAGE_NOT_DETECTED`, `SCREEN_CAPTURE_DETECTED`, `PRINTED_COPY_DETECTED`, `PORTRAIT_MANIPULATION_DETECTED`, `PUBLIC_DOCUMENT_IMAGE_DETECTED`, `INVALID_DATE`, `COULD_NOT_RECOGNIZE_DOCUMENT` (400-only, never a warning), `DOCUMENT_NUMBER_NOT_DETECTED`, `COULD_NOT_DETECT_DOCUMENT_TYPE`, `NAME_NOT_DETECTED`, `DATE_OF_BIRTH_NOT_DETECTED`. Governed by request options: `MRZ_NOT_DETECTED` / `MRZ_VALIDATION_FAILED` (`invalid_mrz_action`), `DATA_INCONSISTENT` / `MRZ_AND_DATA_EXTRACTED_FROM_OCR_NOT_SAME` / `DOCUMENT_NAME_DIFFERENT_FROM_OTHER_APPROVED_DOCUMENTS` (`inconsistent_data_action`), `EXPIRATION_DATE_NOT_DETECTED` (`expiration_date_not_detected_action`). Other risks (e.g. `POSSIBLE_DUPLICATED_USER`) are informational. `DOCUMENT_LIVENESS_NOT_COMPUTED` is raised when `perform_document_liveness=true` but the forgery check returned no usable score; it sets `status` to `In Review`. */
14286
+ /** Machine-readable risk code. Always-decline risks: `DOCUMENT_EXPIRED`, `MINIMUM_AGE_NOT_MET`, `PORTRAIT_IMAGE_NOT_DETECTED`, `SCREEN_CAPTURE_DETECTED`, `PRINTED_COPY_DETECTED`, `PORTRAIT_MANIPULATION_DETECTED`, `PUBLIC_DOCUMENT_IMAGE_DETECTED`, `INVALID_DATE`, `COULD_NOT_RECOGNIZE_DOCUMENT` (400-only, never a warning), `DOCUMENT_NUMBER_NOT_DETECTED`, `COULD_NOT_DETECT_DOCUMENT_TYPE`, `NAME_NOT_DETECTED`, `DATE_OF_BIRTH_NOT_DETECTED`. Governed by request options: `MRZ_NOT_DETECTED` / `MRZ_VALIDATION_FAILED` (`invalid_mrz_action`), `DATA_INCONSISTENT` / `MRZ_AND_DATA_EXTRACTED_FROM_OCR_NOT_SAME` / `DOCUMENT_NAME_DIFFERENT_FROM_OTHER_APPROVED_DOCUMENTS` (`inconsistent_data_action`), `EXPIRATION_DATE_NOT_DETECTED` (`expiration_date_not_detected_action`). Other risks (e.g. `POSSIBLE_DUPLICATED_USER`) are informational. `DOCUMENT_LIVENESS_NOT_COMPUTED` is raised when `perform_document_liveness=true` but the forgery check returned no usable score; it sets `status` to `In Review`. `COULD_NOT_DETECT_DOCUMENT_TYPE` is also returned when the front of the document does not match a known official document design with high confidence, for example an edited or computer-generated document, or a design that is not supported yet. */
13516
14287
  risk?: string;
13517
14288
  /** Feature that raised the warning. Always `ID_VERIFICATION` on this endpoint. */
13518
14289
  feature?: "ID_VERIFICATION" | (string & {});
@@ -13535,7 +14306,7 @@ declare class IdVerification extends APIResource {
13535
14306
  *
13536
14307
  * **How it works.** Send the document's `front_image` (required) and, for two-sided documents, the `back_image`. Upload uncropped photos with all four corners of the document visible - the service detects, aligns, and crops the document itself, so do not pre-crop. The document is classified automatically (you never declare the country or document type), the visual zone is read with OCR, and the MRZ and any barcodes are decoded. Cross-checks then validate dates, number formats, and MRZ check digits, and compare the visual zone against the MRZ. With `perform_document_liveness=true`, the images are additionally screened for screen replays, printed copies, and portrait manipulation.
13537
14308
  *
13538
- * **Decision logic.** `status` is `Approved` unless at least one warning resolves to a decline. Fraud and hard-failure risks always decline: `DOCUMENT_EXPIRED`, `SCREEN_CAPTURE_DETECTED`, `PRINTED_COPY_DETECTED`, `PORTRAIT_MANIPULATION_DETECTED`, `PUBLIC_DOCUMENT_IMAGE_DETECTED`, plus extraction failures (`NAME_NOT_DETECTED`, `DATE_OF_BIRTH_NOT_DETECTED`, `DOCUMENT_NUMBER_NOT_DETECTED`). (`PORTRAIT_IMAGE_NOT_DETECTED`, `COULD_NOT_DETECT_DOCUMENT_TYPE`, `INVALID_DATE`, and `MRZ_NOT_DETECTED` exist in workflow sessions but are never produced by this standalone endpoint.) Three risk groups are configurable per request via `invalid_mrz_action`, `inconsistent_data_action`, and `expiration_date_not_detected_action` (`DECLINE` or `NO_ACTION`). All other warnings (e.g. `POSSIBLE_DUPLICATED_USER`) are informational and never decline on their own. When `perform_document_liveness=true` (the default) and the forgery check returns no usable score - the provider failed, answered non-200, or answered HTTP 200 with `status="ERR"` - the call returns `200` with `status: "In Review"` and a `DOCUMENT_LIVENESS_NOT_COMPUTED` warning (`log_type: "warning"`) instead of `Approved`: a check that did not run is not evidence that the document is genuine. This escalation is not configurable and never overrides a `Declined`; with `perform_document_liveness=false` the check is skipped and the status follows the remaining warnings as before. A document that cannot be processed at all returns `400` with `{"error": "COULD_NOT_RECOGNIZE_DOCUMENT"}`; a readable but problematic document returns `200` with `status: "Declined"` - always inspect `id_verification.status` and `id_verification.warnings`, not just the HTTP code.
14309
+ * **Decision logic.** `status` is `Approved` unless at least one warning resolves to a decline. Fraud and hard-failure risks always decline: `DOCUMENT_EXPIRED`, `SCREEN_CAPTURE_DETECTED`, `PRINTED_COPY_DETECTED`, `PORTRAIT_MANIPULATION_DETECTED`, `PUBLIC_DOCUMENT_IMAGE_DETECTED`, plus extraction failures (`NAME_NOT_DETECTED`, `DATE_OF_BIRTH_NOT_DETECTED`, `DOCUMENT_NUMBER_NOT_DETECTED`). (`PORTRAIT_IMAGE_NOT_DETECTED`, `INVALID_DATE`, and `MRZ_NOT_DETECTED` exist in workflow sessions but are never produced by this standalone endpoint. `COULD_NOT_DETECT_DOCUMENT_TYPE` is returned here when the front image does not match a known official document design with high confidence, and declines the request.) Three risk groups are configurable per request via `invalid_mrz_action`, `inconsistent_data_action`, and `expiration_date_not_detected_action` (`DECLINE` or `NO_ACTION`). All other warnings (e.g. `POSSIBLE_DUPLICATED_USER`) are informational and never decline on their own. When `perform_document_liveness=true` (the default) and the forgery check returns no usable score - the provider failed, answered non-200, or answered HTTP 200 with `status="ERR"` - the call returns `200` with `status: "In Review"` and a `DOCUMENT_LIVENESS_NOT_COMPUTED` warning (`log_type: "warning"`) instead of `Approved`: a check that did not run is not evidence that the document is genuine. This escalation is not configurable and never overrides a `Declined`; with `perform_document_liveness=false` the check is skipped and the status follows the remaining warnings as before. A document that cannot be processed at all returns `400` with `{"error": "COULD_NOT_RECOGNIZE_DOCUMENT"}`; a readable but problematic document returns `200` with `status: "Declined"` - always inspect `id_verification.status` and `id_verification.warnings`, not just the HTTP code.
13539
14310
  *
13540
14311
  * **Billing.** Each `200` response consumes one ID Verification API credit (paid from your plan credit or top-up balance). When the organization's balance cannot cover the call, the endpoint returns `403` with the not-enough-credits error before any image processing.
13541
14312
  *
@@ -13871,6 +14642,27 @@ interface IdWalletsStartFtnParams {
13871
14642
  */
13872
14643
  device?: DigitalIdWalletApiDeviceEnum;
13873
14644
  }
14645
+ /** Start a Google Wallet verification (USA, GBR, BRA, SGP, TWN). */
14646
+ interface IdWalletsStartGoogleWalletParams {
14647
+ /** Your own reference for this verification (e.g. your user id). Returned in results and webhooks. */
14648
+ vendor_data?: string | null;
14649
+ /** Optional JSON object stored with the verification and returned in results and webhooks. */
14650
+ metadata?: Record<string, unknown> | null;
14651
+ /** Sandbox applications only: the simulated outcome - 'wallet_cancelled', 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none) verifies. Rejected on live applications. The full catalog is available at GET /v1/sandbox/scenarios/. */
14652
+ sandbox_scenario?: string;
14653
+ /**
14654
+ * ISO 3166-1 alpha-3 country of the Google Wallet identity.
14655
+ *
14656
+ * * `USA` - USA
14657
+ * * `GBR` - GBR
14658
+ * * `BRA` - BRA
14659
+ * * `SGP` - SGP
14660
+ * * `TWN` - TWN
14661
+ */
14662
+ country: DigitalIdWalletApiGoogleWalletWalletVerificationStartCountryEnum;
14663
+ /** Where your page or app will ask the wallet: the https origin of your page (its host must be in the application's allowed_return_hosts, or be its white-label domain), e.g. https://app.example.com, or android:apk-key-hash:<base64 SHA-256 of your app's signing certificate, no padding>. The wallet refuses the request anywhere else. */
14664
+ origin: string;
14665
+ }
13874
14666
  /** Start a gov.br verification (BRA). */
13875
14667
  interface IdWalletsStartGovbrParams {
13876
14668
  /** Your own reference for this verification (e.g. your user id). Returned in results and webhooks. */
@@ -14177,6 +14969,11 @@ interface IdWalletsStartVippsParams {
14177
14969
  */
14178
14970
  device?: DigitalIdWalletApiDeviceEnum;
14179
14971
  }
14972
+ /** What the wallet answered your page or app, for a ``request_digital_credential`` verification. */
14973
+ interface IdWalletsSubmitVerificationResponseParams {
14974
+ /** Exactly what the wallet returned: {protocol, data} of the DigitalCredential from navigator.credentials.get, or the parsed credentialJson of Android's DigitalCredential. Encrypted to Didit; do not alter it. */
14975
+ response: Record<string, unknown>;
14976
+ }
14180
14977
 
14181
14978
  /** `id_wallets` */
14182
14979
  declare class IdWallets extends APIResource {
@@ -14338,6 +15135,16 @@ declare class IdWallets extends APIResource {
14338
15135
  * Accepts `options.idempotencyKey` (header `Idempotency-Key`).
14339
15136
  */
14340
15137
  startFtn(params: IdWalletsStartFtnParams, options?: RequestOptions): APIPromise<DigitalIdWalletApiWalletVerificationResponse>;
15138
+ /**
15139
+ * Start Google Wallet verification
15140
+ *
15141
+ * Start a Google Wallet sign-in (Google Wallet (ID pass) and US state issuers (mobile driving licence); USA, GBR, BRA, SGP, TWN) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=request_digital_credential with a request Didit signed for your application, usable only from origin. In a user gesture there, pass next_action.digital_credentials.request to navigator.credentials.get({digital: ...}) (or to Android Credential Manager as GetDigitalCredentialOption requestJson), then POST what the wallet returns to /v3/id-verification/wallets/verifications/{request_id}/response/. The browser offers its own QR code when the wallet is on another device. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
15142
+ *
15143
+ * `POST /v3/id-verification/wallets/google-wallet/`
15144
+ *
15145
+ * Accepts `options.idempotencyKey` (header `Idempotency-Key`).
15146
+ */
15147
+ startGoogleWallet(params: IdWalletsStartGoogleWalletParams, options?: RequestOptions): APIPromise<DigitalIdWalletApiWalletVerificationResponse>;
14341
15148
  /**
14342
15149
  * Start gov.br verification
14343
15150
  *
@@ -14468,6 +15275,16 @@ declare class IdWallets extends APIResource {
14468
15275
  * Accepts `options.idempotencyKey` (header `Idempotency-Key`).
14469
15276
  */
14470
15277
  startVipps(params: IdWalletsStartVippsParams, options?: RequestOptions): APIPromise<DigitalIdWalletApiWalletVerificationResponse>;
15278
+ /**
15279
+ * Submit a wallet response
15280
+ *
15281
+ * Digital Credentials API wallets (Google Wallet): send what the wallet returned to your page or app for a verification whose next_action is request_digital_credential. Didit decrypts it, checks the issuer's signature against the trusted issuer roots, every returned value against its signed digest, and the device signature over your origin and this request, then decides the verification: verified (billed once) or declined with the error code. Single use: a second submit returns the decided verification.
15282
+ *
15283
+ * `POST /v3/id-verification/wallets/verifications/{request_id}/response/`
15284
+ *
15285
+ * @param requestId The request_id the start endpoint returned.
15286
+ */
15287
+ submitVerificationResponse(requestId: string, params: IdWalletsSubmitVerificationResponseParams, options?: RequestOptions): APIPromise<DigitalIdWalletApiWalletVerificationResponse>;
14471
15288
  }
14472
15289
 
14473
15290
  interface InvestigatorAcceptRunParams {
@@ -14759,7 +15576,7 @@ declare class Ip extends APIResource {
14759
15576
  *
14760
15577
  * **Authentication.** Send your application's API key in `x-api-key`. Missing or invalid credentials return `403` - this API never returns `401`.
14761
15578
  *
14762
- * **Rate limit.** Shared write budget of 300 requests per minute per API key across all POST/PATCH/DELETE endpoints.
15579
+ * **Rate limit.** Shared write budget of 300 requests per minute per API key across POST/PATCH/DELETE endpoints (transaction creates and event ingestion have a separate budget of 600).
14763
15580
  *
14764
15581
  * `POST /v3/ip/risk/`
14765
15582
  */
@@ -14767,7 +15584,7 @@ declare class Ip extends APIResource {
14767
15584
  }
14768
15585
 
14769
15586
  interface KybListShareholdersParams {
14770
- /** Candidate handle from `POST /v3/kyb/search/` (`kyb_registry.companies[].kyb_response_id`). Ephemeral - use it shortly after the search that produced it. */
15587
+ /** Candidate handle from `POST /v3/kyb/search/` (`kyb_registry.companies[].kyb_response_id`). Ephemeral: use it shortly after the search that produced it. Handles can be long, so store and send the value exactly as returned, without trimming or assuming a length. */
14771
15588
  kyb_response_id: string;
14772
15589
  /** Your identifier for this company; echoed back and stored with the business session. */
14773
15590
  vendor_data?: string;
@@ -14829,8 +15646,8 @@ interface KybListShareholdersResponse202KybRegistry {
14829
15646
  tax_number?: string | null;
14830
15647
  /** Registry-reported risk level, when available. */
14831
15648
  risk_level?: string | null;
14832
- /** Registry verification status, when available. */
14833
- verification_status?: string | null;
15649
+ /** Cross-jurisdiction verification status: `verified` when the registry status establishes standing (`active`), `failed` when it says the company is no longer standing (for example `dissolved`), otherwise `unknown`. `null` for a company that did not come from a registry and while a selection is still `pending`. */
15650
+ verification_status?: "verified" | "failed" | "unknown" | (string & {}) | null;
14834
15651
  /** Always `true` for this endpoint - the profile was retrieved from an official registry. */
14835
15652
  is_from_registry?: boolean;
14836
15653
  /** Registry fetch lifecycle. Mirrored by `data_resolved`. */
@@ -14877,8 +15694,8 @@ interface KybListShareholdersResponse202KybRegistry {
14877
15694
  industries?: KYBRegistryIndustry[] | null;
14878
15695
  /** Registry filing dates, when available. Annual returns and general meetings use last_annual_return_date and last_agm_date; they are distinct from financial accounts. */
14879
15696
  accounts?: Record<string, unknown> | null;
14880
- /** Raw record returned by the registry source, kept for reviewers. Its shape differs by country and source and is not a stable contract: read the canonical fields (`addresses`, `industries`, `ownership`, `beneficial_owners[].shareholding`) instead. */
14881
- registry_data?: Record<string, unknown>;
15697
+ /** Didit's normalized registry detail for the company: the ownership outcome (`ownership_error`, `section_errors`, `ubo_resolution`, `lite_enrichment`), the corrections made with update-data, and registry facts that have no field of their own. It never carries the registry source's own record. Every key is optional and present only when the company has a value for it; new keys may be added. Read the canonical fields (`addresses`, `industries`, `ownership`, `beneficial_owners[].shareholding`) for anything they cover. */
15698
+ registry_data?: KYBRegistryData | null;
14882
15699
  /** Always `null` on this endpoint (used by the hosted KYB flow when end users edit registry data). */
14883
15700
  user_provided_data?: Record<string, unknown> | null;
14884
15701
  /** Always `null` on this endpoint. */
@@ -14895,6 +15712,8 @@ interface KybListShareholdersResponse202KybRegistry {
14895
15712
  ownership?: KYBRegistryOwnership;
14896
15713
  /** The registry tier the workflow ordered: `basic`, `shareholders` or `ubo`. Also in `ownership.tier_requested`. */
14897
15714
  registry_tier?: string | null;
15715
+ /** The latest registry monitor for the company, or `null` when none exists. */
15716
+ registry_monitoring?: KybListShareholdersResponse202KybRegistryRegistryMonitoring | null;
14898
15717
  }
14899
15718
  interface KybListShareholdersResponse202KybRegistryBeneficialOwners {
14900
15719
  uuid?: string;
@@ -14960,6 +15779,20 @@ interface KybListShareholdersResponse202KybRegistryOfficers {
14960
15779
  /** Registry-reported birth month. Null when only the year is known. */
14961
15780
  date_of_birth_month?: number | null;
14962
15781
  }
15782
+ /** The latest registry monitor for the company, or `null` when none exists. */
15783
+ interface KybListShareholdersResponse202KybRegistryRegistryMonitoring {
15784
+ uuid?: string;
15785
+ status?: string;
15786
+ unavailable_reason?: string | null;
15787
+ enrolled_at?: Date | null;
15788
+ cancelled_at?: Date | null;
15789
+ last_bill_date?: string | null;
15790
+ next_bill_date?: string | null;
15791
+ last_event_at?: Date | null;
15792
+ events_count?: number;
15793
+ /** The company fields the monitor watches. */
15794
+ watched_fields?: unknown;
15795
+ }
14963
15796
  /** Full registry company profile. */
14964
15797
  interface KybListShareholdersResponseKybRegistry {
14965
15798
  /** Didit's id for this company record. */
@@ -14983,8 +15816,8 @@ interface KybListShareholdersResponseKybRegistry {
14983
15816
  tax_number?: string | null;
14984
15817
  /** Registry-reported risk level, when available. */
14985
15818
  risk_level?: string | null;
14986
- /** Registry verification status, when available. */
14987
- verification_status?: string | null;
15819
+ /** Cross-jurisdiction verification status: `verified` when the registry status establishes standing (`active`), `failed` when it says the company is no longer standing (for example `dissolved`), otherwise `unknown`. `null` for a company that did not come from a registry and while a selection is still `pending`. */
15820
+ verification_status?: "verified" | "failed" | "unknown" | (string & {}) | null;
14988
15821
  /** Always `true` for this endpoint - the profile was retrieved from an official registry. */
14989
15822
  is_from_registry?: boolean;
14990
15823
  /** Registry fetch lifecycle. Mirrored by `data_resolved`. */
@@ -15031,8 +15864,8 @@ interface KybListShareholdersResponseKybRegistry {
15031
15864
  industries?: KYBRegistryIndustry[] | null;
15032
15865
  /** Registry filing dates, when available. Annual returns and general meetings use last_annual_return_date and last_agm_date; they are distinct from financial accounts. */
15033
15866
  accounts?: Record<string, unknown> | null;
15034
- /** Raw record returned by the registry source, kept for reviewers. Its shape differs by country and source and is not a stable contract: read the canonical fields (`addresses`, `industries`, `ownership`, `beneficial_owners[].shareholding`) instead. */
15035
- registry_data?: Record<string, unknown>;
15867
+ /** Didit's normalized registry detail for the company: the ownership outcome (`ownership_error`, `section_errors`, `ubo_resolution`, `lite_enrichment`), the corrections made with update-data, and registry facts that have no field of their own. It never carries the registry source's own record. Every key is optional and present only when the company has a value for it; new keys may be added. Read the canonical fields (`addresses`, `industries`, `ownership`, `beneficial_owners[].shareholding`) for anything they cover. */
15868
+ registry_data?: KYBRegistryData | null;
15036
15869
  /** Always `null` on this endpoint (used by the hosted KYB flow when end users edit registry data). */
15037
15870
  user_provided_data?: Record<string, unknown> | null;
15038
15871
  /** Always `null` on this endpoint. */
@@ -15049,6 +15882,8 @@ interface KybListShareholdersResponseKybRegistry {
15049
15882
  ownership?: KYBRegistryOwnership;
15050
15883
  /** The registry tier the workflow ordered: `basic`, `shareholders` or `ubo`. Also in `ownership.tier_requested`. */
15051
15884
  registry_tier?: string | null;
15885
+ /** The latest registry monitor for the company, or `null` when none exists. */
15886
+ registry_monitoring?: KybListShareholdersResponseKybRegistryRegistryMonitoring | null;
15052
15887
  }
15053
15888
  interface KybListShareholdersResponseKybRegistryBeneficialOwners {
15054
15889
  uuid?: string;
@@ -15114,8 +15949,22 @@ interface KybListShareholdersResponseKybRegistryOfficers {
15114
15949
  /** Registry-reported birth month. Null when only the year is known. */
15115
15950
  date_of_birth_month?: number | null;
15116
15951
  }
15952
+ /** The latest registry monitor for the company, or `null` when none exists. */
15953
+ interface KybListShareholdersResponseKybRegistryRegistryMonitoring {
15954
+ uuid?: string;
15955
+ status?: string;
15956
+ unavailable_reason?: string | null;
15957
+ enrolled_at?: Date | null;
15958
+ cancelled_at?: Date | null;
15959
+ last_bill_date?: string | null;
15960
+ next_bill_date?: string | null;
15961
+ last_event_at?: Date | null;
15962
+ events_count?: number;
15963
+ /** The company fields the monitor watches. */
15964
+ watched_fields?: unknown;
15965
+ }
15117
15966
  interface KybListUbosParams {
15118
- /** Candidate handle from `POST /v3/kyb/search/` (`kyb_registry.companies[].kyb_response_id`). Ephemeral - use it shortly after the search that produced it. */
15967
+ /** Candidate handle from `POST /v3/kyb/search/` (`kyb_registry.companies[].kyb_response_id`). Ephemeral: use it shortly after the search that produced it. Handles can be long, so store and send the value exactly as returned, without trimming or assuming a length. */
15119
15968
  kyb_response_id: string;
15120
15969
  /** Your identifier for this company; echoed back and stored with the business session. */
15121
15970
  vendor_data?: string;
@@ -15177,8 +16026,8 @@ interface KybListUbosResponse202KybRegistry {
15177
16026
  tax_number?: string | null;
15178
16027
  /** Registry-reported risk level, when available. */
15179
16028
  risk_level?: string | null;
15180
- /** Registry verification status, when available. */
15181
- verification_status?: string | null;
16029
+ /** Cross-jurisdiction verification status: `verified` when the registry status establishes standing (`active`), `failed` when it says the company is no longer standing (for example `dissolved`), otherwise `unknown`. `null` for a company that did not come from a registry and while a selection is still `pending`. */
16030
+ verification_status?: "verified" | "failed" | "unknown" | (string & {}) | null;
15182
16031
  /** Always `true` for this endpoint - the profile was retrieved from an official registry. */
15183
16032
  is_from_registry?: boolean;
15184
16033
  /** Registry fetch lifecycle. Mirrored by `data_resolved`. */
@@ -15225,8 +16074,8 @@ interface KybListUbosResponse202KybRegistry {
15225
16074
  industries?: KYBRegistryIndustry[] | null;
15226
16075
  /** Registry filing dates, when available. Annual returns and general meetings use last_annual_return_date and last_agm_date; they are distinct from financial accounts. */
15227
16076
  accounts?: Record<string, unknown> | null;
15228
- /** Raw record returned by the registry source, kept for reviewers. Its shape differs by country and source and is not a stable contract: read the canonical fields (`addresses`, `industries`, `ownership`, `beneficial_owners[].shareholding`) instead. */
15229
- registry_data?: Record<string, unknown>;
16077
+ /** Didit's normalized registry detail for the company: the ownership outcome (`ownership_error`, `section_errors`, `ubo_resolution`, `lite_enrichment`), the corrections made with update-data, and registry facts that have no field of their own. It never carries the registry source's own record. Every key is optional and present only when the company has a value for it; new keys may be added. Read the canonical fields (`addresses`, `industries`, `ownership`, `beneficial_owners[].shareholding`) for anything they cover. */
16078
+ registry_data?: KYBRegistryData | null;
15230
16079
  /** Always `null` on this endpoint (used by the hosted KYB flow when end users edit registry data). */
15231
16080
  user_provided_data?: Record<string, unknown> | null;
15232
16081
  /** Always `null` on this endpoint. */
@@ -15243,6 +16092,8 @@ interface KybListUbosResponse202KybRegistry {
15243
16092
  ownership?: KYBRegistryOwnership;
15244
16093
  /** The registry tier the workflow ordered: `basic`, `shareholders` or `ubo`. Also in `ownership.tier_requested`. */
15245
16094
  registry_tier?: string | null;
16095
+ /** The latest registry monitor for the company, or `null` when none exists. */
16096
+ registry_monitoring?: KybListUbosResponse202KybRegistryRegistryMonitoring | null;
15246
16097
  }
15247
16098
  interface KybListUbosResponse202KybRegistryBeneficialOwners {
15248
16099
  uuid?: string;
@@ -15308,6 +16159,20 @@ interface KybListUbosResponse202KybRegistryOfficers {
15308
16159
  /** Registry-reported birth month. Null when only the year is known. */
15309
16160
  date_of_birth_month?: number | null;
15310
16161
  }
16162
+ /** The latest registry monitor for the company, or `null` when none exists. */
16163
+ interface KybListUbosResponse202KybRegistryRegistryMonitoring {
16164
+ uuid?: string;
16165
+ status?: string;
16166
+ unavailable_reason?: string | null;
16167
+ enrolled_at?: Date | null;
16168
+ cancelled_at?: Date | null;
16169
+ last_bill_date?: string | null;
16170
+ next_bill_date?: string | null;
16171
+ last_event_at?: Date | null;
16172
+ events_count?: number;
16173
+ /** The company fields the monitor watches. */
16174
+ watched_fields?: unknown;
16175
+ }
15311
16176
  /** Full registry company profile. */
15312
16177
  interface KybListUbosResponseKybRegistry {
15313
16178
  /** Didit's id for this company record. */
@@ -15331,8 +16196,8 @@ interface KybListUbosResponseKybRegistry {
15331
16196
  tax_number?: string | null;
15332
16197
  /** Registry-reported risk level, when available. */
15333
16198
  risk_level?: string | null;
15334
- /** Registry verification status, when available. */
15335
- verification_status?: string | null;
16199
+ /** Cross-jurisdiction verification status: `verified` when the registry status establishes standing (`active`), `failed` when it says the company is no longer standing (for example `dissolved`), otherwise `unknown`. `null` for a company that did not come from a registry and while a selection is still `pending`. */
16200
+ verification_status?: "verified" | "failed" | "unknown" | (string & {}) | null;
15336
16201
  /** Always `true` for this endpoint - the profile was retrieved from an official registry. */
15337
16202
  is_from_registry?: boolean;
15338
16203
  /** Registry fetch lifecycle. Mirrored by `data_resolved`. */
@@ -15379,8 +16244,8 @@ interface KybListUbosResponseKybRegistry {
15379
16244
  industries?: KYBRegistryIndustry[] | null;
15380
16245
  /** Registry filing dates, when available. Annual returns and general meetings use last_annual_return_date and last_agm_date; they are distinct from financial accounts. */
15381
16246
  accounts?: Record<string, unknown> | null;
15382
- /** Raw record returned by the registry source, kept for reviewers. Its shape differs by country and source and is not a stable contract: read the canonical fields (`addresses`, `industries`, `ownership`, `beneficial_owners[].shareholding`) instead. */
15383
- registry_data?: Record<string, unknown>;
16247
+ /** Didit's normalized registry detail for the company: the ownership outcome (`ownership_error`, `section_errors`, `ubo_resolution`, `lite_enrichment`), the corrections made with update-data, and registry facts that have no field of their own. It never carries the registry source's own record. Every key is optional and present only when the company has a value for it; new keys may be added. Read the canonical fields (`addresses`, `industries`, `ownership`, `beneficial_owners[].shareholding`) for anything they cover. */
16248
+ registry_data?: KYBRegistryData | null;
15384
16249
  /** Always `null` on this endpoint (used by the hosted KYB flow when end users edit registry data). */
15385
16250
  user_provided_data?: Record<string, unknown> | null;
15386
16251
  /** Always `null` on this endpoint. */
@@ -15397,6 +16262,8 @@ interface KybListUbosResponseKybRegistry {
15397
16262
  ownership?: KYBRegistryOwnership;
15398
16263
  /** The registry tier the workflow ordered: `basic`, `shareholders` or `ubo`. Also in `ownership.tier_requested`. */
15399
16264
  registry_tier?: string | null;
16265
+ /** The latest registry monitor for the company, or `null` when none exists. */
16266
+ registry_monitoring?: KybListUbosResponseKybRegistryRegistryMonitoring | null;
15400
16267
  }
15401
16268
  interface KybListUbosResponseKybRegistryBeneficialOwners {
15402
16269
  uuid?: string;
@@ -15462,6 +16329,20 @@ interface KybListUbosResponseKybRegistryOfficers {
15462
16329
  /** Registry-reported birth month. Null when only the year is known. */
15463
16330
  date_of_birth_month?: number | null;
15464
16331
  }
16332
+ /** The latest registry monitor for the company, or `null` when none exists. */
16333
+ interface KybListUbosResponseKybRegistryRegistryMonitoring {
16334
+ uuid?: string;
16335
+ status?: string;
16336
+ unavailable_reason?: string | null;
16337
+ enrolled_at?: Date | null;
16338
+ cancelled_at?: Date | null;
16339
+ last_bill_date?: string | null;
16340
+ next_bill_date?: string | null;
16341
+ last_event_at?: Date | null;
16342
+ events_count?: number;
16343
+ /** The company fields the monitor watches. */
16344
+ watched_fields?: unknown;
16345
+ }
15465
16346
  interface KybSearchParams {
15466
16347
  /** ISO 3166-1 alpha-2 code of the country whose company registry to search. For example, `GB`. Where company registries operate at state or province level, append the ISO 3166-2 subdivision code as `XX-YY`: `US-CA` searches the California registry. United States searches always require the subdivision - a bare `US` is rejected. Case-insensitive; normalized to upper case. */
15467
16348
  country_code: string;
@@ -15491,7 +16372,7 @@ interface KybSearchResponse {
15491
16372
  created_at?: Date;
15492
16373
  }
15493
16374
  interface KybSelectParams {
15494
- /** Candidate handle from `POST /v3/kyb/search/` (`kyb_registry.companies[].kyb_response_id`). Ephemeral - use it shortly after the search that produced it. */
16375
+ /** Candidate handle from `POST /v3/kyb/search/` (`kyb_registry.companies[].kyb_response_id`). Ephemeral: use it shortly after the search that produced it. Handles can be long, so store and send the value exactly as returned, without trimming or assuming a length. */
15495
16376
  kyb_response_id: string;
15496
16377
  /** Your identifier for this company; echoed back and stored with the business session. */
15497
16378
  vendor_data?: string;
@@ -15538,8 +16419,8 @@ interface KybSelectResponseKybRegistry {
15538
16419
  tax_number?: string | null;
15539
16420
  /** Registry-reported risk level, when available. */
15540
16421
  risk_level?: string | null;
15541
- /** Registry verification status, when available. */
15542
- verification_status?: string | null;
16422
+ /** Cross-jurisdiction verification status: `verified` when the registry status establishes standing (`active`), `failed` when it says the company is no longer standing (for example `dissolved`), otherwise `unknown`. `null` for a company that did not come from a registry and while a selection is still `pending`. */
16423
+ verification_status?: "verified" | "failed" | "unknown" | (string & {}) | null;
15543
16424
  /** Always `true` for this endpoint - the profile was retrieved from an official registry. */
15544
16425
  is_from_registry?: boolean;
15545
16426
  /** Registry fetch lifecycle. Mirrored by `data_resolved`. */
@@ -15586,8 +16467,8 @@ interface KybSelectResponseKybRegistry {
15586
16467
  industries?: KYBRegistryIndustry[] | null;
15587
16468
  /** Registry filing dates, when available. Annual returns and general meetings use last_annual_return_date and last_agm_date; they are distinct from financial accounts. */
15588
16469
  accounts?: Record<string, unknown> | null;
15589
- /** Raw record returned by the registry source, kept for reviewers. Its shape differs by country and source and is not a stable contract: read the canonical fields (`addresses`, `industries`, `ownership`, `beneficial_owners[].shareholding`) instead. */
15590
- registry_data?: Record<string, unknown>;
16470
+ /** Didit's normalized registry detail for the company: the ownership outcome (`ownership_error`, `section_errors`, `ubo_resolution`, `lite_enrichment`), the corrections made with update-data, and registry facts that have no field of their own. It never carries the registry source's own record. Every key is optional and present only when the company has a value for it; new keys may be added. Read the canonical fields (`addresses`, `industries`, `ownership`, `beneficial_owners[].shareholding`) for anything they cover. */
16471
+ registry_data?: KYBRegistryData | null;
15591
16472
  /** Always `null` on this endpoint (used by the hosted KYB flow when end users edit registry data). */
15592
16473
  user_provided_data?: Record<string, unknown> | null;
15593
16474
  /** Always `null` on this endpoint. */
@@ -15604,6 +16485,8 @@ interface KybSelectResponseKybRegistry {
15604
16485
  ownership?: KYBRegistryOwnership;
15605
16486
  /** The registry tier the workflow ordered: `basic`, `shareholders` or `ubo`. Also in `ownership.tier_requested`. */
15606
16487
  registry_tier?: string | null;
16488
+ /** The latest registry monitor for the company, or `null` when none exists. */
16489
+ registry_monitoring?: KybSelectResponseKybRegistryRegistryMonitoring | null;
15607
16490
  }
15608
16491
  interface KybSelectResponseKybRegistryBeneficialOwners {
15609
16492
  uuid?: string;
@@ -15669,6 +16552,20 @@ interface KybSelectResponseKybRegistryOfficers {
15669
16552
  /** Registry-reported birth month. Null when only the year is known. */
15670
16553
  date_of_birth_month?: number | null;
15671
16554
  }
16555
+ /** The latest registry monitor for the company, or `null` when none exists. */
16556
+ interface KybSelectResponseKybRegistryRegistryMonitoring {
16557
+ uuid?: string;
16558
+ status?: string;
16559
+ unavailable_reason?: string | null;
16560
+ enrolled_at?: Date | null;
16561
+ cancelled_at?: Date | null;
16562
+ last_bill_date?: string | null;
16563
+ next_bill_date?: string | null;
16564
+ last_event_at?: Date | null;
16565
+ events_count?: number;
16566
+ /** The company fields the monitor watches. */
16567
+ watched_fields?: unknown;
16568
+ }
15672
16569
 
15673
16570
  /** `kyb` */
15674
16571
  declare class Kyb extends APIResource {
@@ -15677,7 +16574,7 @@ declare class Kyb extends APIResource {
15677
16574
  *
15678
16575
  * Retrieve the Lite profile **plus the direct shareholders** (natural persons and corporate entities, with their ownership bands) of one candidate returned by `POST /v3/kyb/search/`.
15679
16576
  *
15680
- * **Pairing with search.** Pass the candidate's `kyb_response_id` exactly as returned by a search of the same application. The search runs on the Lite registry chain; when the country's ownership data lives at another registry Didit re-finds the company there by registration number, at no extra cost.
16577
+ * **Pairing with search.** Pass the candidate's `kyb_response_id` exactly as returned by a search of the same application. Search at the tier you intend to buy (`tier` on `POST /v3/kyb/search/`), because the search runs on the registry chain that serves that tier and an empty Lite search is not proof that the registry does not hold the company. When the country's ownership data lives at another registry, Didit re-finds the company there by registration number, at no extra cost.
15681
16578
  *
15682
16579
  * **Billing.** Billed at the country's Shareholders price - see [KYB registry pricing](/getting-started/kyb-registry-pricing). When the registry holds no shareholder record for the company (or the country offers no ownership data at all) the Lite profile is delivered and billed instead: read `registry_tier_delivered` and `registry_ownership_status`. The balance is checked against the Shareholders price before any registry call (`403` when short).
15683
16580
  *
@@ -15693,7 +16590,7 @@ declare class Kyb extends APIResource {
15693
16590
  *
15694
16591
  * Retrieve the Lite profile, the direct shareholders **and the ultimate beneficial owners** resolved through the ownership chain (`registry_data.ubo_resolution` carries the corporate parent chain) of one candidate returned by `POST /v3/kyb/search/`.
15695
16592
  *
15696
- * **Pairing with search.** Pass the candidate's `kyb_response_id` exactly as returned by a search of the same application. The search runs on the Lite registry chain; when the country's ownership data lives at another registry Didit re-finds the company there by registration number, at no extra cost.
16593
+ * **Pairing with search.** Pass the candidate's `kyb_response_id` exactly as returned by a search of the same application. Search at the tier you intend to buy (`tier` on `POST /v3/kyb/search/`), because the search runs on the registry chain that serves that tier and an empty Lite search is not proof that the registry does not hold the company. When the country's ownership data lives at another registry, Didit re-finds the company there by registration number, at no extra cost.
15697
16594
  *
15698
16595
  * **Billing.** Billed at the country's UBO price - see [KYB registry pricing](/getting-started/kyb-registry-pricing). The tier delivered is the highest the country and the registry can serve: Shareholders when the resolved report names no natural person as a beneficial owner, Lite when there is no ownership record at all; `registry_tier_delivered` names what was billed. The balance is checked against the UBO price before any registry call (`403` when short).
15699
16596
  *
@@ -16671,6 +17568,16 @@ interface PhoneCheckCodeParams {
16671
17568
  disposable_number_action?: "NO_ACTION" | "DECLINE" | (string & {});
16672
17569
  /** What to do when the carrier lookup reports a virtual line type - `voip`, `isp`, or `vpn` (`phone.is_virtual`). `DECLINE` flips the final `status` to `Declined`; `NO_ACTION` records the risk in `phone.warnings`. */
16673
17570
  voip_number_action?: "NO_ACTION" | "DECLINE" | (string & {});
17571
+ /** When `true`, also run phone intelligence on the number: a risk score, the line type, whether it was recently ported and a trust index. Billed as one `phone_intelligence_api` unit per request ($0.05 at list price) in addition to this endpoint's own price. The request returns `403` when your balance cannot cover it. */
17572
+ enable_enrichment?: boolean;
17573
+ /** Action when the phone intelligence risk score is above the threshold. `DECLINE` flips the final `status` to `Declined`; `NO_ACTION` records the signal without declining. Only takes effect when `enable_enrichment` is `true`. */
17574
+ phone_intelligence_score_action?: "NO_ACTION" | "DECLINE" | (string & {});
17575
+ /** Action when the number is a high-risk line type. `DECLINE` flips the final `status` to `Declined`; `NO_ACTION` records the signal without declining. Only takes effect when `enable_enrichment` is `true`. */
17576
+ phone_type_risk_action?: "NO_ACTION" | "DECLINE" | (string & {});
17577
+ /** Action when the number was ported to another carrier recently. `DECLINE` flips the final `status` to `Declined`; `NO_ACTION` records the signal without declining. Only takes effect when `enable_enrichment` is `true`. */
17578
+ recent_port_action?: "NO_ACTION" | "DECLINE" | (string & {});
17579
+ /** Action when the phone intelligence trust index is at or below the threshold. `DECLINE` flips the final `status` to `Declined`; `NO_ACTION` records the signal without declining. Only takes effect when `enable_enrichment` is `true`. */
17580
+ low_phone_trust_action?: "NO_ACTION" | "DECLINE" | (string & {});
16674
17581
  /** When true, also look up the social footprint of the number - the messaging, social, e-commerce and professional platforms it is registered on. Billed as one `phone_social` unit per request in addition to this endpoint's own price. */
16675
17582
  enable_social?: boolean;
16676
17583
  /** Action when the social footprint check finds the number registered on none of the platforms it covers. Only NO_ACTION and DECLINE are accepted on this endpoint; REVIEW is available on the workflow configuration key of the same name. */
@@ -16736,7 +17643,7 @@ declare class Phone extends APIResource {
16736
17643
  *
16737
17644
  * **Authentication.** Send your application's API key in `x-api-key`. Missing or invalid credentials return `403` - this API never returns `401`.
16738
17645
  *
16739
- * **Rate limit.** Shared write budget of 300 requests per minute per API key across all POST/PATCH/DELETE endpoints.
17646
+ * **Rate limit.** Shared write budget of 300 requests per minute per API key across POST/PATCH/DELETE endpoints (transaction creates and event ingestion have a separate budget of 600).
16740
17647
  *
16741
17648
  * **Social footprint.** Set `enable_social` to `true` to add a `phone_social` block: the online platforms this number is registered on, with per-category counts and any profile details available. `profiles_registered: 0` means the platforms were checked and the number was found on none of them - a valid, billable answer. The block is absent when the add-on was not requested or the check could not be completed, and it is not billed in that case. Billing adds one `phone_social` unit per request on top of this endpoint's own price.
16742
17649
  *
@@ -16804,7 +17711,7 @@ declare class Pricing extends APIResource {
16804
17711
  /**
16805
17712
  * Get bank verification prices (public, unauthenticated)
16806
17713
  *
16807
- * Returns the list price of each Bank Verification method in every country: bank sign-in with its balance and transactions add-ons, and the account check. Use it to quote a bank step before you build a workflow, or to show bank prices in your own product.
17714
+ * Returns the list price of each Bank Verification method in every country: bank sign-in with its balance and transactions add-ons, and the account check. Bank Verification is not enabled in production yet, so a bank step is refused on production workflows until it is; treat these prices as a list price, not as an offer you can buy today. Use it to quote a bank step before you build a workflow, or to show bank prices in your own product.
16808
17715
  *
16809
17716
  * Public: send no auth header. The response contains no organization data and is the same for every caller. It is cached publicly for one hour and carries an `ETag`, so send `If-None-Match` to get a `304 Not Modified` when nothing changed.
16810
17717
  *
@@ -17418,20 +18325,91 @@ interface SessionsBulkUpdateAmlHitStatusParams {
17418
18325
  node_id_query?: string;
17419
18326
  }
17420
18327
  interface SessionsBulkUpdateAmlHitStatusParamsHitUpdates {
18328
+ /** The `id` of the hit in the AML check's `hits` array (`hit_...`). A hit id returned in the earlier format is still accepted. */
17421
18329
  hit_id: string;
17422
18330
  review_status: "Unreviewed" | "Confirmed Match" | "False Positive" | "Inconclusive" | (string & {});
17423
18331
  }
17424
18332
  interface SessionsBulkUpdateAmlHitStatusResponse {
17425
18333
  /** `Updated {n} hit(s) successfully`, where `n` is the number of entries in `hit_updates`. */
17426
18334
  message: string;
17427
- /** The `hit_id` of every entry in `hit_updates`, in request order, including hits whose status did not change. */
18335
+ /** The `id` of the hit each entry in `hit_updates` names, as the session decision returns it, in request order, including hits whose status did not change. */
17428
18336
  updated_hits: string[];
17429
18337
  }
18338
+ interface SessionsCreateKybPartyDraftParams {
18339
+ /** Whether the party is an individual or a company. */
18340
+ entity_type: "person" | "company" | (string & {});
18341
+ /** Full name of a person. Send it, or `first_name` and `last_name`. */
18342
+ full_name?: string;
18343
+ first_name?: string;
18344
+ last_name?: string;
18345
+ /** Role the party holds. Interchangeable with `roles`; when both are sent they are merged. */
18346
+ role?: "director" | "non_executive_director" | "secretary" | "chairman" | "ubo" | "shareholder" | "representative" | "founder" | "legal_advisor" | "authorized_signatory" | "trustee" | "beneficiary" | "settlor" | "protector" | "company_officer" | "investor" | "other" | (string & {});
18347
+ /** Every role the party holds. A person needs at least one role (here or in `role`). */
18348
+ roles?: ("director" | "non_executive_director" | "secretary" | "chairman" | "ubo" | "shareholder" | "representative" | "founder" | "legal_advisor" | "authorized_signatory" | "trustee" | "beneficiary" | "settlor" | "protector" | "company_officer" | "investor" | "other" | (string & {}))[];
18349
+ /** Job title of a person. */
18350
+ position?: string;
18351
+ date_of_birth?: string | null;
18352
+ /** Name of a company party. Required when `entity_type` is `company`. */
18353
+ company_name?: string;
18354
+ /** Registration number of a company party. */
18355
+ registration_number?: string;
18356
+ /** Where the verification link is sent. Required when the party has to complete verification, which depends on the role settings and ownership thresholds of the workflow. */
18357
+ email?: string;
18358
+ /** Share of the company the party owns. */
18359
+ ownership_percent?: number | null;
18360
+ /** Nationality of a person, or country of incorporation of a company. Required for every party. */
18361
+ nationality: string;
18362
+ phone_number?: string;
18363
+ /** Workflow-defined extra fields. */
18364
+ custom_fields?: Record<string, unknown>;
18365
+ /** Ask to skip this party's verification. Honoured only when the party's role allows skipping in the workflow's Key People settings. */
18366
+ skip_verification?: boolean;
18367
+ /** Workflow node of the KYB step. Only needed when the workflow has more than one KYB node; by default Didit uses the session's own node. */
18368
+ node_id?: string;
18369
+ }
18370
+ interface SessionsCreateKybPartyDraftResponse {
18371
+ draft_id: string;
18372
+ created_at: Date;
18373
+ updated_at: Date;
18374
+ party: SessionsCreateKybPartyDraftResponseParty;
18375
+ }
18376
+ interface SessionsCreateKybPartyDraftResponseParty {
18377
+ /** Whether the party is an individual or a company. */
18378
+ entity_type: "person" | "company" | (string & {});
18379
+ /** Full name of a person. Send it, or `first_name` and `last_name`. */
18380
+ full_name?: string;
18381
+ first_name?: string;
18382
+ last_name?: string;
18383
+ /** Role the party holds. Interchangeable with `roles`; when both are sent they are merged. */
18384
+ role?: "director" | "non_executive_director" | "secretary" | "chairman" | "ubo" | "shareholder" | "representative" | "founder" | "legal_advisor" | "authorized_signatory" | "trustee" | "beneficiary" | "settlor" | "protector" | "company_officer" | "investor" | "other" | (string & {});
18385
+ /** Every role the party holds. A person needs at least one role (here or in `role`). */
18386
+ roles?: ("director" | "non_executive_director" | "secretary" | "chairman" | "ubo" | "shareholder" | "representative" | "founder" | "legal_advisor" | "authorized_signatory" | "trustee" | "beneficiary" | "settlor" | "protector" | "company_officer" | "investor" | "other" | (string & {}))[];
18387
+ /** Job title of a person. */
18388
+ position?: string;
18389
+ date_of_birth?: string | null;
18390
+ /** Name of a company party. Required when `entity_type` is `company`. */
18391
+ company_name?: string;
18392
+ /** Registration number of a company party. */
18393
+ registration_number?: string;
18394
+ /** Where the verification link is sent. Required when the party has to complete verification, which depends on the role settings and ownership thresholds of the workflow. */
18395
+ email?: string;
18396
+ /** Share of the company the party owns. */
18397
+ ownership_percent?: number | null;
18398
+ /** Nationality of a person, or country of incorporation of a company. Required for every party. */
18399
+ nationality: string;
18400
+ phone_number?: string;
18401
+ /** Workflow-defined extra fields. */
18402
+ custom_fields?: Record<string, unknown>;
18403
+ /** Ask to skip this party's verification. Honoured only when the party's role allows skipping in the workflow's Key People settings. */
18404
+ skip_verification?: boolean;
18405
+ }
17430
18406
  interface SessionsCreateParams {
17431
18407
  /** Stable identifier of the workflow that defines which verification steps the session will run. Workflows are created and managed in the [Workflows](/console/workflows) page of the Console. The `workflow_id` also implicitly selects whether the session is KYC or KYB. */
17432
18408
  workflow_id: string;
17433
18409
  /** A unique identifier for the user being verified, such as a UUID, email, or internal user ID. This field is used for: (1) **User grouping** - sessions with the same vendor_data are linked to the same user profile in the Users tab. (2) **Cross-session duplicate detection** - when checking for duplicated faces, documents, phone numbers, emails, IP addresses, or device fingerprints, sessions with the same vendor_data are treated as the same user and excluded from matches. Without vendor_data, every session is treated as a unique user and all potential duplicates are surfaced. We strongly recommend always providing a vendor_data to reduce noise in duplicate detection. */
17434
18410
  vendor_data?: string;
18411
+ /** Optional duplicate-detection realm inside your organization. Duplicate face checks compare this session only with other sessions that carry the same segment, so separate account bases (personal and business accounts, or one per B2B sub-client) do not flag a person who legitimately holds one account in each. Omit it to use the single default realm, which is what every session uses today. Blocklist and allowlist matching ignore this field. */
18412
+ multi_account_segment?: string;
17435
18413
  /** URL to redirect the user to after verification completes. Didit automatically appends `verificationSessionId` and `status` (Approved, Declined, In Review) as query parameters. Custom URL schemes (e.g. `myapp://`) are supported for mobile callbacks. If omitted, the workflow's default `callback_url` is used. When the application has allowed domains (`allowed_domains` on `PATCH /v3/webhook/`), an `http` or `https` callback must be on one of those origins (same scheme, host and port), otherwise the request fails with 400 on `callback`: `callback must be on one of the application's allowed domains: https://app.example.com`. Custom URL schemes are always accepted. */
17436
18414
  callback?: string;
17437
18415
  /** Determines which device should handle the redirect to the provided callback URL. Use `initiator` to redirect only the device that started the flow, `completer` for the device that finishes it, or `both` to allow either device to trigger the callback. If you ever notice the callback not triggering reliably, we recommend setting this value to `both`. */
@@ -17450,7 +18428,7 @@ interface SessionsCreateParams {
17450
18428
  portrait_image?: string;
17451
18429
  /** Sandbox-only scenario slug. Only accepted when the API key belongs to a sandbox-mode application; rejected on live applications. When set, the create flow expands the scenario's bundled magic values onto the session's input fields (contact_details, expected_details) so the mocked providers reproduce the scenario's outcome through the real workflow pipeline. See the scenario catalog at GET /v1/sandbox/scenarios/ or [Sandbox & Test Data](/integration/sandbox-testing). You can also arm (or re-arm) a scenario after create via POST /v3/session/{sessionId}/sandbox/arm/, as long as the session is still `Not Started`. For non-doc lookup, use `lookup_partial_match`, `lookup_no_match`, or `lookup_provider_error` to test the configured attempt budget and fallback. For identity wallets, use `wallet_cancelled`, `wallet_timeout`, or `wallet_provider_error`; `approve` simulates a verified wallet. All catalog wallets can be tested in sandbox, including schemes unavailable on live applications. Simulated attempts are not charged. */
17452
18430
  sandbox_scenario?: string;
17453
- /** Electronic Signature input for this session. `documents` are the documents to sign, for a workflow whose Electronic Signature step takes documents from the session (`signature_documents_source` `session` or `both`): up to 20 documents and 50 MB in total. `field_values` fills the fields whose `prefill` is `api.<key>`, on workflow and session documents alike. Creating a session again for the same `workflow_id` and `vendor_data` returns the pending session; if that call sends `sign`, its documents, fields and values must be identical to the first ones, and anything different returns `400` with `{"sign": "signature_document_changed"}`. See [Electronic signature documents](/sessions-api/create-session#electronic-signature-documents). */
18431
+ /** E-signature input for this session. `documents` are the documents to sign, for a workflow whose E-signature step takes documents from the session (`signature_documents_source` `session` or `both`): up to 20 documents and 50 MB in total. `field_values` fills the fields whose `prefill` is `api.<key>`, on workflow and session documents alike. Creating a session again for the same `workflow_id` and `vendor_data` returns the pending session; if that call sends `sign`, its documents, fields and values must be identical to the first ones, and anything different returns `400` with `{"sign": "signature_document_changed"}`. See [E-signature documents](/sessions-api/create-session#e-signature-documents). */
17454
18432
  sign?: SessionsCreateParamsSign;
17455
18433
  /** Where the person lives, when you know it: an ISO 3166-2 subdivision code (`US-IL`, `ES-M`) or a US state code or name (`IL`, `Illinois`). A state whose law requires explicit biometric consent (Illinois, Texas, Colorado) makes the verification flow ask for it before capturing a face, with trigger `declared_state`. An unrecognized value returns `400`. See [Biometric consent](/getting-started/biometric-consent). */
17456
18434
  user_state?: string;
@@ -17508,7 +18486,7 @@ interface SessionsCreateParamsExpectedDetails {
17508
18486
  /** Expected registration number of the business in the company registry. For example, `00445790`. Pre-fills the registration-number field of the registry search in Business Verification (KYB) workflows; when `company_name` is also provided, the registry lookup combines both identifiers. Ignored for KYC workflows. */
17509
18487
  registration_number?: string;
17510
18488
  }
17511
- /** Electronic Signature input for this session. `documents` are the documents to sign, for a workflow whose Electronic Signature step takes documents from the session (`signature_documents_source` `session` or `both`): up to 20 documents and 50 MB in total. `field_values` fills the fields whose `prefill` is `api.<key>`, on workflow and session documents alike. Creating a session again for the same `workflow_id` and `vendor_data` returns the pending session; if that call sends `sign`, its documents, fields and values must be identical to the first ones, and anything different returns `400` with `{"sign": "signature_document_changed"}`. See [Electronic signature documents](/sessions-api/create-session#electronic-signature-documents). */
18489
+ /** E-signature input for this session. `documents` are the documents to sign, for a workflow whose E-signature step takes documents from the session (`signature_documents_source` `session` or `both`): up to 20 documents and 50 MB in total. `field_values` fills the fields whose `prefill` is `api.<key>`, on workflow and session documents alike. Creating a session again for the same `workflow_id` and `vendor_data` returns the pending session; if that call sends `sign`, its documents, fields and values must be identical to the first ones, and anything different returns `400` with `{"sign": "signature_document_changed"}`. See [E-signature documents](/sessions-api/create-session#e-signature-documents). */
17512
18490
  interface SessionsCreateParamsSign {
17513
18491
  documents?: SessionSignDocument[];
17514
18492
  /** Values keyed by the `<key>` of each `api.<key>` pre-fill source: strings of 1 to 500 characters for `text` and `data` fields, booleans for a `checkbox`. `400` with `field_value_unknown` for a key no field uses, `field_value_missing` for a required field without its value, and `field_value_invalid` for a value that fails its field's validation. */
@@ -17538,6 +18516,10 @@ interface SessionsCreateResponse {
17538
18516
  /** Version number of the published workflow version the session was pinned to at creation. Didit resolves `workflow_id` to the workflow's latest published version when the session is created, and the session keeps running that version even if the workflow is republished later. */
17539
18517
  workflow_version: number;
17540
18518
  }
18519
+ interface SessionsDeleteKybPartyDraftParams {
18520
+ /** Workflow node of the KYB step. Only needed when the workflow has more than one KYB node; by default Didit uses the session's own node. */
18521
+ node_id?: string;
18522
+ }
17541
18523
  interface SessionsDeleteParams {
17542
18524
  /** Override the application's `face_retention_policy` for this deletion. `true` keeps one image-free face biometric template anchored to the session's User after the session is deleted; `false` deletes the face embedding with the session; omit or `null` to follow the application policy. Ignored for KYB sessions and for sessions without a face embedding. */
17543
18525
  retain_face_embeddings?: boolean | null;
@@ -17567,6 +18549,8 @@ interface SessionsDeleteResponse {
17567
18549
  interface SessionsExportAmlScreeningHistoryParams {
17568
18550
  /** Workflow graph node ID of the AML check. Needed only when the session ran more than one AML step; without it the most recent AML check is used. An unknown node returns `404`. */
17569
18551
  node_id?: string;
18552
+ /** A UTC calendar month as `YYYY-MM`. Only screenings completed in that month are returned; without it every month is returned. A malformed month returns `400`. */
18553
+ month?: string;
17570
18554
  }
17571
18555
  interface SessionsImportSharedParams {
17572
18556
  /** JWT share token issued by [`POST /v3/session/{sessionId}/share/`](/sessions-api/share-session). */
@@ -17685,6 +18669,8 @@ interface SessionsImportsStartParams {
17685
18669
  interface SessionsListAmlScreeningHistoryParams {
17686
18670
  /** Workflow graph node ID of the AML check. Needed only when the session ran more than one AML step; without it the most recent AML check is used. An unknown node returns `404`. */
17687
18671
  node_id?: string;
18672
+ /** A UTC calendar month as `YYYY-MM`. Only screenings completed in that month are returned; without it every month is returned. A malformed month returns `400`. */
18673
+ month?: string;
17688
18674
  /** Maximum number of screening runs per page. Defaults to 50. A value below 1 or a non-numeric value falls back to 50; a value above 1,000,000 returns `400`. */
17689
18675
  limit?: number;
17690
18676
  /** Number of results to skip before the first returned one. Defaults to 0; a negative or non-numeric value falls back to 0, a value above 1,000,000 returns `400`. Prefer following the `next` and `previous` URLs. */
@@ -17727,6 +18713,91 @@ interface SessionsListFeatureOverridesResponse {
17727
18713
  /** Every override of the session, newest first. */
17728
18714
  overrides: FeatureStatusOverride[];
17729
18715
  }
18716
+ interface SessionsListKybExtractedPartiesParams {
18717
+ /** Workflow node of the KYB step. Only needed when the workflow has more than one KYB node; by default Didit uses the session's own node. */
18718
+ node_id?: string;
18719
+ }
18720
+ interface SessionsListKybExtractedPartiesResponse {
18721
+ /** The shareholders and directors the uploaded documents name, merged per person. Nobody is labelled a UBO here: that is decided when the parties are submitted. */
18722
+ parties: SessionsListKybExtractedPartiesResponseParties[];
18723
+ /** Number of uploaded documents the list was read from. */
18724
+ document_count: number;
18725
+ node_id?: string | null;
18726
+ }
18727
+ interface SessionsListKybExtractedPartiesResponseParties {
18728
+ name?: string;
18729
+ entity_type?: "person" | "company" | (string & {});
18730
+ first_name?: string | null;
18731
+ last_name?: string | null;
18732
+ appointment_date?: string | null;
18733
+ designation?: string | null;
18734
+ roles?: SessionsListKybExtractedPartiesResponsePartiesRoles[];
18735
+ /** The uploaded documents that named this party. */
18736
+ documents?: SessionsListKybExtractedPartiesResponsePartiesDocuments[];
18737
+ }
18738
+ interface SessionsListKybExtractedPartiesResponsePartiesDocuments {
18739
+ document_uuid?: string;
18740
+ document_type?: string | null;
18741
+ document_subtype?: string | null;
18742
+ original_filename?: string | null;
18743
+ status?: string | null;
18744
+ }
18745
+ interface SessionsListKybExtractedPartiesResponsePartiesRoles {
18746
+ role?: "director" | "non_executive_director" | "secretary" | "chairman" | "ubo" | "shareholder" | "representative" | "founder" | "legal_advisor" | "authorized_signatory" | "trustee" | "beneficiary" | "settlor" | "protector" | "company_officer" | "investor" | "other" | (string & {});
18747
+ ownership_percent?: SessionsListKybExtractedPartiesResponsePartiesRolesOwnershipPercent;
18748
+ }
18749
+ interface SessionsListKybExtractedPartiesResponsePartiesRolesOwnershipPercent {
18750
+ /** The ownership figure exactly as the document states it, such as `25-50%`, `>50%` or `NO EXHIBE`. */
18751
+ text?: string | null;
18752
+ /** Lower number read out of `text`; null when it states none. */
18753
+ min?: number | null;
18754
+ /** Upper number read out of `text`; null when it states none. */
18755
+ max?: number | null;
18756
+ }
18757
+ interface SessionsListKybPartyDraftsParams {
18758
+ /** Workflow node of the KYB step. Only needed when the workflow has more than one KYB node; by default Didit uses the session's own node. */
18759
+ node_id?: string;
18760
+ }
18761
+ interface SessionsListKybPartyDraftsResponse {
18762
+ parties?: SessionsListKybPartyDraftsResponseParties[];
18763
+ node_id?: string | null;
18764
+ }
18765
+ interface SessionsListKybPartyDraftsResponseParties {
18766
+ draft_id: string;
18767
+ created_at: Date;
18768
+ updated_at: Date;
18769
+ party: SessionsListKybPartyDraftsResponsePartiesParty;
18770
+ }
18771
+ interface SessionsListKybPartyDraftsResponsePartiesParty {
18772
+ /** Whether the party is an individual or a company. */
18773
+ entity_type: "person" | "company" | (string & {});
18774
+ /** Full name of a person. Send it, or `first_name` and `last_name`. */
18775
+ full_name?: string;
18776
+ first_name?: string;
18777
+ last_name?: string;
18778
+ /** Role the party holds. Interchangeable with `roles`; when both are sent they are merged. */
18779
+ role?: "director" | "non_executive_director" | "secretary" | "chairman" | "ubo" | "shareholder" | "representative" | "founder" | "legal_advisor" | "authorized_signatory" | "trustee" | "beneficiary" | "settlor" | "protector" | "company_officer" | "investor" | "other" | (string & {});
18780
+ /** Every role the party holds. A person needs at least one role (here or in `role`). */
18781
+ roles?: ("director" | "non_executive_director" | "secretary" | "chairman" | "ubo" | "shareholder" | "representative" | "founder" | "legal_advisor" | "authorized_signatory" | "trustee" | "beneficiary" | "settlor" | "protector" | "company_officer" | "investor" | "other" | (string & {}))[];
18782
+ /** Job title of a person. */
18783
+ position?: string;
18784
+ date_of_birth?: string | null;
18785
+ /** Name of a company party. Required when `entity_type` is `company`. */
18786
+ company_name?: string;
18787
+ /** Registration number of a company party. */
18788
+ registration_number?: string;
18789
+ /** Where the verification link is sent. Required when the party has to complete verification, which depends on the role settings and ownership thresholds of the workflow. */
18790
+ email?: string;
18791
+ /** Share of the company the party owns. */
18792
+ ownership_percent?: number | null;
18793
+ /** Nationality of a person, or country of incorporation of a company. Required for every party. */
18794
+ nationality: string;
18795
+ phone_number?: string;
18796
+ /** Workflow-defined extra fields. */
18797
+ custom_fields?: Record<string, unknown>;
18798
+ /** Ask to skip this party's verification. Honoured only when the party's role allows skipping in the workflow's Key People settings. */
18799
+ skip_verification?: boolean;
18800
+ }
17730
18801
  interface SessionsListParams {
17731
18802
  /** Which kind of sessions to list: `user` (KYC only, default), `business` (KYB only), or `all` (both, concatenated - see the description for merged-pagination semantics). Matching is case-insensitive (`BUSINESS` works); any value other than a case variant of `user`/`business`/`all` returns `400`. */
17732
18803
  session_kind?: "user" | "business" | "all" | (string & {});
@@ -17746,6 +18817,12 @@ interface SessionsListParams {
17746
18817
  date_from?: string;
17747
18818
  /** Only sessions created up to this date (UTC), format `YYYY-MM-DD`. For KYC rows the entire day is included; for KYB rows the comparison is `created_at <= date_to` (midnight), so use the next day's date to include a full day of KYB sessions. */
17748
18819
  date_to?: string;
18820
+ /** Comma-separated tag ids (`tags` of your application). Returns the sessions that carry any of them. Ids that are not valid UUIDs are ignored, and when none is valid the list is empty. */
18821
+ tags?: string;
18822
+ /** ISO 8601 datetime. Returns the sessions whose status last changed at or after it. It filters on the time of the last status change, not on creation time. */
18823
+ decided_from?: string | Date;
18824
+ /** ISO 8601 datetime. Returns the sessions whose status last changed before it. Combine with `decided_from` for a half-open window. */
18825
+ decided_to?: string | Date;
17749
18826
  /** Comma-separated country filter. For KYC rows: ISO 3166-1 alpha-3 codes of the ID document's issuing state (e.g. `ESP,USA`), which may differ from nationality. For KYB rows: the registry company's country code. */
17750
18827
  country?: string;
17751
18828
  /** Comma-separated ID-document type codes verified in the session (KYC rows only): `P` (Passport), `ID` (Identity Card), `DL` (Driver's License), `RP` (Residence Permit), `SSC` (Social Security Card), `HIC` (Health Insurance Card), `WP` (Work Permit), `TC` (Tax Card), `VISA`, `PSC` (Public Service Card), `BC` (Birth Certificate), `OTHER`. Note the response field `document_type` contains the display name, not the code. */
@@ -17774,7 +18851,7 @@ interface SessionsListParams {
17774
18851
  organization_name?: string;
17775
18852
  }
17776
18853
  interface SessionsListResponse {
17777
- /** Number of sessions matching the filters. Exact for KYC rows; for KYB rows it is capped at 100 (use `next` to know whether more pages exist). For `session_kind=all` it is the sum of both kinds. */
18854
+ /** Number of sessions matching the filters: exact up to 100 and capped at 100 beyond that, so do not use it as a total. Use `next` to know whether more pages exist. For `session_kind=all` it is the sum of both kinds, each capped at 100. */
17778
18855
  count: number;
17779
18856
  /** Absolute URL of the next page, or `null` on the last page. */
17780
18857
  next: string | null;
@@ -17806,6 +18883,8 @@ interface SessionsPreviewDecisionEmailResponse {
17806
18883
  subject: string;
17807
18884
  /** The email's HTML exactly as it is sent, with its logo embedded as a data URL. Render it in a sandboxed frame, never directly in your application DOM. */
17808
18885
  html: string;
18886
+ /** The email's words as plain text, as the person's Messages thread keeps them, for a compact preview (the HTML stays the email the person receives). */
18887
+ text: string;
17809
18888
  /** The language the email is written in. English (`en`) when the `email_language` you asked for is not offered. */
17810
18889
  language: string;
17811
18890
  /** Whether confirming the change with `send_email: true` sends this email. `false` when `not_sent_reason` is set. */
@@ -17827,7 +18906,7 @@ interface SessionsPreviewResubmissionParamsNodesToResubmit {
17827
18906
  /** Node identifier as it appears in the session's workflow definition (for example `feature_ocr`, `feature_liveness`). */
17828
18907
  node_id: string;
17829
18908
  /** Feature type of the node. The aliases `ID_VERIFICATION`, `POA`, `PHONE`, and `EMAIL` are normalized server-side to `OCR`, `PROOF_OF_ADDRESS`, `PHONE_VERIFICATION`, and `EMAIL_VERIFICATION`. `KYB_REGISTRY`, `KYB_KEY_PEOPLE`, and `KYB` pass schema validation but are always rejected with the business-rule `400` shown in the examples. */
17830
- feature: "OCR" | "OCR_BACK" | "NFC" | "AML" | "FACE" | "LIVENESS" | "FACE_MATCH" | "IP_ANALYSIS" | "AGE_ESTIMATION" | "PROOF_OF_ADDRESS" | "PHONE_VERIFICATION" | "EMAIL_VERIFICATION" | "FACE_SEARCH" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_DOCUMENTS" | "ID_VERIFICATION" | "POA" | "PHONE" | "EMAIL" | "KYB_REGISTRY" | "KYB_KEY_PEOPLE" | "KYB" | (string & {});
18909
+ feature: "OCR" | "OCR_BACK" | "NFC" | "AML" | "FACE" | "LIVENESS" | "FACE_MATCH" | "IP_ANALYSIS" | "AGE_ESTIMATION" | "PROOF_OF_ADDRESS" | "PHONE_VERIFICATION" | "EMAIL_VERIFICATION" | "FACE_SEARCH" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_DOCUMENTS" | "ID_VERIFICATION" | "POA" | "PHONE" | "EMAIL" | "KYB_REGISTRY" | "KYB_KEY_PEOPLE" | "KYB" | "GEOLOCATION" | (string & {});
17831
18910
  }
17832
18911
  interface SessionsPreviewResubmissionResponse {
17833
18912
  /** The address the email goes to. An empty string when no address is known for the person: then no email can be sent and `preview_token` is empty too. Pass it as `email_address` when you confirm. */
@@ -17846,6 +18925,8 @@ interface SessionsPreviewResubmissionResponse {
17846
18925
  subject: string;
17847
18926
  /** The email's HTML exactly as it is sent, with its logo embedded as a data URL. Render it in a sandboxed frame, never directly in your application DOM. */
17848
18927
  html: string;
18928
+ /** The email's words as plain text, as the person's Messages thread keeps them, for a compact preview (the HTML stays the email the person receives). */
18929
+ text: string;
17849
18930
  /** The language the email is written in. English (`en`) when the `email_language` you asked for is not offered. */
17850
18931
  language: string;
17851
18932
  /** Whether confirming the change with `send_email: true` sends this email. `false` when `not_sent_reason` is set. */
@@ -17862,7 +18943,7 @@ interface SessionsPreviewResubmissionResponseNodesToResubmit {
17862
18943
  /** Node identifier as it appears in the session's workflow definition (for example `feature_ocr`, `feature_liveness`). */
17863
18944
  node_id: string;
17864
18945
  /** Feature type of the node. The aliases `ID_VERIFICATION`, `POA`, `PHONE`, and `EMAIL` are normalized server-side to `OCR`, `PROOF_OF_ADDRESS`, `PHONE_VERIFICATION`, and `EMAIL_VERIFICATION`. `KYB_REGISTRY`, `KYB_KEY_PEOPLE`, and `KYB` pass schema validation but are always rejected with the business-rule `400` shown in the examples. */
17865
- feature: "OCR" | "OCR_BACK" | "NFC" | "AML" | "FACE" | "LIVENESS" | "FACE_MATCH" | "IP_ANALYSIS" | "AGE_ESTIMATION" | "PROOF_OF_ADDRESS" | "PHONE_VERIFICATION" | "EMAIL_VERIFICATION" | "FACE_SEARCH" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_DOCUMENTS" | "ID_VERIFICATION" | "POA" | "PHONE" | "EMAIL" | "KYB_REGISTRY" | "KYB_KEY_PEOPLE" | "KYB" | (string & {});
18946
+ feature: "OCR" | "OCR_BACK" | "NFC" | "AML" | "FACE" | "LIVENESS" | "FACE_MATCH" | "IP_ANALYSIS" | "AGE_ESTIMATION" | "PROOF_OF_ADDRESS" | "PHONE_VERIFICATION" | "EMAIL_VERIFICATION" | "FACE_SEARCH" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_DOCUMENTS" | "ID_VERIFICATION" | "POA" | "PHONE" | "EMAIL" | "KYB_REGISTRY" | "KYB_KEY_PEOPLE" | "KYB" | "GEOLOCATION" | (string & {});
17866
18947
  }
17867
18948
  interface SessionsRetrieveDecisionParams {
17868
18949
  /** Comma-separated list of extra payload sections. Supported values: `events` and `resubmissions`, alone or together (`events,resubmissions`). When `include=events` is passed, the response additionally contains the session event timeline (`events`, including the `WORKFLOW_BRANCH_EVALUATED` / `WORKFLOW_STATUS_NODE_REACHED` routing events described on the Retrieve Session page), the full activity log (`activity_reviews`), blocklist flags (`blocklisted`), a per-session `cost_breakdown`, workflow metadata (`workflow_type`, `workflow_version`, `workflow_version_id`, and `workflow_terminal_node_id` - the last recorded workflow status node that set a session status, or `null` if none has been recorded; historical provenance that is not cleared by manual approvals, declines or resubmissions, and is replaced by a later workflow status node), and session metadata (`api_service` - string or `null`, set only for standalone-API sessions; `session_type` - `API`, `HOSTED`, or `MIGRATED`; `has_device_nfc_support` - boolean). Two fields change relative to the plain shape: the top-level `session_kind` discriminator is **omitted** (the events shape only exists for user sessions), and the `features` array switches from plain strings to `{feature, node_id}` objects - where the email feature is reported as `EMAIL` instead of `EMAIL_VERIFICATION`. This expanded shape is primarily used by the Didit Console; most API integrations should omit the parameter. **KYB limitation:** `include=events` only applies to user (KYC) sessions. Business sessions (`session_kind = "business"`) always return the standard business decision shape - `events`, `activity_reviews`, `blocklisted`, `cost_breakdown` and the extra `workflow_*`/session metadata are never returned for business sessions, and their `features` array stays a plain string array. With `include=resubmissions` (user and business sessions alike) the response also contains `resubmissions`: one entry per resubmission request, oldest first, each with `number`, `created_at`, `previous_status`, `nodes`, `reasons`, `requested_by` and `results` (what the resubmitted steps returned before the request, under the same keys and in the same shape as the current results). Each `cost_breakdown` item carries `usage_type`, `price`, `details` and `created_at`: a resubmitted step that runs again is billed as a new item. */
@@ -17942,8 +19023,27 @@ interface SessionsSimulateParams {
17942
19023
  /** `true` sends exactly the webhooks a real status change sends to the sandbox application's destinations: `status.updated`, plus the `user.status.updated` / `user.data.updated` (or `business.status.updated` / `business.data.updated`) events the change causes, for destinations subscribed to them. `false` changes the status without logging or sending any webhook: the missed-webhook recovery never re-sends that decision, the console still updates live, and the next status change of the session sends webhooks as usual. */
17943
19024
  send_webhooks?: boolean;
17944
19025
  }
19026
+ interface SessionsSubmitKybPartiesParams {
19027
+ /** Locale used to translate the response of the step the session advances to. */
19028
+ locale?: string;
19029
+ /** Workflow node of the KYB step. Only needed when the workflow has more than one KYB node; by default Didit uses the session's own node. */
19030
+ node_id?: string;
19031
+ }
19032
+ interface SessionsSubmitKybPartiesResponse {
19033
+ valid?: boolean;
19034
+ /** Step the session is on. */
19035
+ next_step?: string | null;
19036
+ /** Status of the business session. */
19037
+ status?: string;
19038
+ /** `true` when this call declared the parties and advanced the session. */
19039
+ advanced?: boolean;
19040
+ /** `true` when the parties had been declared by an earlier call. */
19041
+ already_submitted?: boolean;
19042
+ kyb_key_people_status?: string;
19043
+ parties?: KYBKeyPeopleParty[];
19044
+ }
17945
19045
  interface SessionsUpdateAmlHitStatusParams {
17946
- /** The `id` of the hit in the AML check's `hits` array. */
19046
+ /** The `id` of the hit in the AML check's `hits` array (`hit_...`). A hit id returned in the earlier format is still accepted. */
17947
19047
  hit_id: string;
17948
19048
  /** The new review status for the hit. */
17949
19049
  review_status: "Unreviewed" | "Confirmed Match" | "False Positive" | "Inconclusive" | (string & {});
@@ -17955,7 +19055,7 @@ interface SessionsUpdateAmlHitStatusParams {
17955
19055
  interface SessionsUpdateAmlHitStatusResponse {
17956
19056
  /** Always `Hit status updated successfully`. */
17957
19057
  message: string;
17958
- /** The updated hit, with surrounding whitespace removed. */
19058
+ /** The `id` of the updated hit, as the session decision returns it, also when the request named the hit by an id in the earlier format. */
17959
19059
  hit_id: string;
17960
19060
  /** The review status now stored on the hit. */
17961
19061
  review_status: "Unreviewed" | "Confirmed Match" | "False Positive" | "Inconclusive" | (string & {});
@@ -18238,8 +19338,8 @@ interface SessionsUpdateKybCompanyDataResponse {
18238
19338
  industries?: Record<string, unknown>[] | null;
18239
19339
  /** Registry filing dates, when available. Annual returns and general meetings use last_annual_return_date and last_agm_date; they are distinct from financial accounts. */
18240
19340
  accounts?: Record<string, unknown> | null;
18241
- /** Raw registry payload snapshot. Every key you PATCH is merged into this map (dates serialized as ISO strings), so the "extracted from registry" view reflects operator corrections. */
18242
- registry_data?: Record<string, unknown> | null;
19341
+ /** Didit's normalized registry detail for the company: the ownership outcome (`ownership_error`, `section_errors`, `ubo_resolution`, `lite_enrichment`), the corrections made with update-data, and registry facts that have no field of their own. It never carries the registry source's own record. Every key is optional and present only when the company has a value for it; new keys may be added. Read the canonical fields (`addresses`, `industries`, `ownership`, `beneficial_owners[].shareholding`) for anything they cover. */
19342
+ registry_data?: KYBRegistryData | null;
18243
19343
  /** What the end user typed during the hosted registry-confirmation step. Never modified by this endpoint. */
18244
19344
  user_provided_data?: Record<string, unknown> | null;
18245
19345
  /** When the end user confirmed the company data in the hosted flow. */
@@ -18249,6 +19349,75 @@ interface SessionsUpdateKybCompanyDataResponse {
18249
19349
  /** `true` while the end user can still edit the registry-sourced data in the hosted flow (registry-sourced and not yet confirmed). */
18250
19350
  is_editable?: boolean;
18251
19351
  }
19352
+ /** Any subset of the party fields. The edit is merged into the stored draft and the merged party is validated as a whole, so a draft that could be submitted before an edit can still be submitted after it. */
19353
+ interface SessionsUpdateKybPartyDraftParams {
19354
+ /** Whether the party is an individual or a company. */
19355
+ entity_type?: "person" | "company" | (string & {});
19356
+ /** Full name of a person. Send it, or `first_name` and `last_name`. */
19357
+ full_name?: string;
19358
+ first_name?: string;
19359
+ last_name?: string;
19360
+ /** Role the party holds. Interchangeable with `roles`; when both are sent they are merged. */
19361
+ role?: "director" | "non_executive_director" | "secretary" | "chairman" | "ubo" | "shareholder" | "representative" | "founder" | "legal_advisor" | "authorized_signatory" | "trustee" | "beneficiary" | "settlor" | "protector" | "company_officer" | "investor" | "other" | (string & {});
19362
+ /** Every role the party holds. A person needs at least one role (here or in `role`). */
19363
+ roles?: ("director" | "non_executive_director" | "secretary" | "chairman" | "ubo" | "shareholder" | "representative" | "founder" | "legal_advisor" | "authorized_signatory" | "trustee" | "beneficiary" | "settlor" | "protector" | "company_officer" | "investor" | "other" | (string & {}))[];
19364
+ /** Job title of a person. */
19365
+ position?: string;
19366
+ date_of_birth?: string | null;
19367
+ /** Name of a company party. Required when `entity_type` is `company`. */
19368
+ company_name?: string;
19369
+ /** Registration number of a company party. */
19370
+ registration_number?: string;
19371
+ /** Where the verification link is sent. Required when the party has to complete verification, which depends on the role settings and ownership thresholds of the workflow. */
19372
+ email?: string;
19373
+ /** Share of the company the party owns. */
19374
+ ownership_percent?: number | null;
19375
+ /** Nationality of a person, or country of incorporation of a company. Required for every party. */
19376
+ nationality?: string;
19377
+ phone_number?: string;
19378
+ /** Workflow-defined extra fields. */
19379
+ custom_fields?: Record<string, unknown>;
19380
+ /** Ask to skip this party's verification. Honoured only when the party's role allows skipping in the workflow's Key People settings. */
19381
+ skip_verification?: boolean;
19382
+ /** Workflow node of the KYB step. Only needed when the workflow has more than one KYB node; by default Didit uses the session's own node. */
19383
+ node_id?: string;
19384
+ }
19385
+ interface SessionsUpdateKybPartyDraftResponse {
19386
+ draft_id: string;
19387
+ created_at: Date;
19388
+ updated_at: Date;
19389
+ party: SessionsUpdateKybPartyDraftResponseParty;
19390
+ }
19391
+ interface SessionsUpdateKybPartyDraftResponseParty {
19392
+ /** Whether the party is an individual or a company. */
19393
+ entity_type: "person" | "company" | (string & {});
19394
+ /** Full name of a person. Send it, or `first_name` and `last_name`. */
19395
+ full_name?: string;
19396
+ first_name?: string;
19397
+ last_name?: string;
19398
+ /** Role the party holds. Interchangeable with `roles`; when both are sent they are merged. */
19399
+ role?: "director" | "non_executive_director" | "secretary" | "chairman" | "ubo" | "shareholder" | "representative" | "founder" | "legal_advisor" | "authorized_signatory" | "trustee" | "beneficiary" | "settlor" | "protector" | "company_officer" | "investor" | "other" | (string & {});
19400
+ /** Every role the party holds. A person needs at least one role (here or in `role`). */
19401
+ roles?: ("director" | "non_executive_director" | "secretary" | "chairman" | "ubo" | "shareholder" | "representative" | "founder" | "legal_advisor" | "authorized_signatory" | "trustee" | "beneficiary" | "settlor" | "protector" | "company_officer" | "investor" | "other" | (string & {}))[];
19402
+ /** Job title of a person. */
19403
+ position?: string;
19404
+ date_of_birth?: string | null;
19405
+ /** Name of a company party. Required when `entity_type` is `company`. */
19406
+ company_name?: string;
19407
+ /** Registration number of a company party. */
19408
+ registration_number?: string;
19409
+ /** Where the verification link is sent. Required when the party has to complete verification, which depends on the role settings and ownership thresholds of the workflow. */
19410
+ email?: string;
19411
+ /** Share of the company the party owns. */
19412
+ ownership_percent?: number | null;
19413
+ /** Nationality of a person, or country of incorporation of a company. Required for every party. */
19414
+ nationality: string;
19415
+ phone_number?: string;
19416
+ /** Workflow-defined extra fields. */
19417
+ custom_fields?: Record<string, unknown>;
19418
+ /** Ask to skip this party's verification. Honoured only when the party's role allows skipping in the workflow's Key People settings. */
19419
+ skip_verification?: boolean;
19420
+ }
18252
19421
  interface SessionsUpdateKybPartyParams {
18253
19422
  /** `true` exempts the party from verification so the Key People check can settle without it; `false` puts it back in scope. */
18254
19423
  is_skipped: boolean;
@@ -18367,12 +19536,34 @@ interface SessionsUpdateStatusParamsNodesToResubmit {
18367
19536
  /** Node identifier as it appears in the session's workflow definition (for example `feature_ocr`, `feature_liveness`). */
18368
19537
  node_id: string;
18369
19538
  /** Feature type of the node. The aliases `ID_VERIFICATION`, `POA`, `PHONE`, and `EMAIL` are normalized server-side to `OCR`, `PROOF_OF_ADDRESS`, `PHONE_VERIFICATION`, and `EMAIL_VERIFICATION`. `KYB_REGISTRY`, `KYB_KEY_PEOPLE`, and `KYB` pass schema validation but are always rejected with the business-rule `400` shown in the examples. */
18370
- feature: "OCR" | "OCR_BACK" | "NFC" | "AML" | "FACE" | "LIVENESS" | "FACE_MATCH" | "IP_ANALYSIS" | "AGE_ESTIMATION" | "PROOF_OF_ADDRESS" | "PHONE_VERIFICATION" | "EMAIL_VERIFICATION" | "FACE_SEARCH" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_DOCUMENTS" | "ID_VERIFICATION" | "POA" | "PHONE" | "EMAIL" | "KYB_REGISTRY" | "KYB_KEY_PEOPLE" | "KYB" | (string & {});
19539
+ feature: "OCR" | "OCR_BACK" | "NFC" | "AML" | "FACE" | "LIVENESS" | "FACE_MATCH" | "IP_ANALYSIS" | "AGE_ESTIMATION" | "PROOF_OF_ADDRESS" | "PHONE_VERIFICATION" | "EMAIL_VERIFICATION" | "FACE_SEARCH" | "DATABASE_VALIDATION" | "QUESTIONNAIRE" | "DOCUMENT_AI" | "KYB_DOCUMENTS" | "ID_VERIFICATION" | "POA" | "PHONE" | "EMAIL" | "KYB_REGISTRY" | "KYB_KEY_PEOPLE" | "KYB" | "GEOLOCATION" | (string & {});
18371
19540
  }
18372
19541
  interface SessionsUpdateStatusResponse {
18373
19542
  /** UUID of the updated session. */
18374
19543
  session_id?: string;
18375
19544
  }
19545
+ interface SessionsUploadKybDocumentsParams {
19546
+ /** Files to upload: JPG, JPEG, PNG, TIFF, WEBP, PDF or ZIP archives of them. PDFs up to 50 MB, photos up to 6 MB before compression. */
19547
+ documents: Uploadable[];
19548
+ /** One entry per file in `documents`, in the same order: the password of a protected PDF, empty for any other file. */
19549
+ document_passwords?: string[];
19550
+ /** Required document group this upload answers. */
19551
+ document_group?: "LEGAL_PRESENCE" | "COMPANY_DETAILS" | "OWNERSHIP_STRUCTURE" | "REPRESENTATIVES_AUTHORIZATION" | (string & {});
19552
+ /** Locale used to translate the response of the next step. */
19553
+ locale?: string;
19554
+ /** Workflow node of the KYB step. Only needed when the workflow has more than one KYB node; by default Didit uses the session's own node. */
19555
+ node_id?: string;
19556
+ }
19557
+ interface SessionsUploadKybDocumentsResponse {
19558
+ valid?: boolean;
19559
+ /** Step the session is on after the upload. */
19560
+ next_step?: string | null;
19561
+ /** Status of the company check. */
19562
+ kyb_status?: string;
19563
+ /** Result per uploaded document and the uploads left. */
19564
+ document_answer?: Record<string, unknown>;
19565
+ [key: string]: unknown;
19566
+ }
18376
19567
 
18377
19568
  /** `sessions.imports` */
18378
19569
  declare class SessionsImports extends APIResource {
@@ -18397,7 +19588,7 @@ declare class SessionsImports extends APIResource {
18397
19588
  /**
18398
19589
  * Create a verification import job
18399
19590
  *
18400
- * Create an asynchronous import job for historical User Verification sessions, Business Verification sessions, transaction monitoring records, or workflow custom status rules. Set `source=provider` to migrate from another provider: Didit reads Sumsub, Onfido, Persona and ComplyCube with your read-only key, reads Veriff, iDenfy and MetaMap records by the IDs you upload in `file`, and imports an export file in Didit's format for the other providers. Record IDs are namespaced by provider (`sumsub:<id>`) so a re-run skips everything already in Didit. Imports are disabled by default and must be enabled per organization by Didit.
19591
+ * Create an asynchronous import job for historical User Verification sessions, Business Verification sessions, transaction monitoring records, or workflow custom status rules. Set `source=provider` to migrate from another provider: Didit reads Sumsub, Onfido, Persona and ComplyCube with your read-only key, reads Veriff, iDenfy and MetaMap records by the IDs you upload in `file`, and imports an export file in Didit's format for the other providers. Record IDs are namespaced by provider (`sumsub:<id>`) so a re-run skips everything already in Didit, and a record imported through a file with the provider's bare ID is recognised too, in both directions, so moving between a file import and a provider migration never imports a record twice. An application can run up to 4 import jobs at once; a job interrupted by a deploy or a worker restart continues from its last imported row by itself. Imports are disabled by default and must be enabled per organization by Didit.
18401
19592
  *
18402
19593
  * `POST /v3/session/imports/`
18403
19594
  */
@@ -18531,28 +19722,28 @@ declare class SessionsSignatures extends APIResource {
18531
19722
  /**
18532
19723
  * Download a signed document
18533
19724
  *
18534
- * Download the signed PDF of one document of an Electronic Signature step. Use the `signed_file` path of `signatures[].documents[]` in the decision. The PDF holds the document the signer was shown with their field values stamped, the evidence page (unless `signature_evidence_page` is off) and the PAdES signature with its timestamp. Didit checks the file against `sha256_signed` before returning it.
19725
+ * Download the signed PDF of one document of an E-signature step. Use the `signed_file` path of `signatures[].documents[]` in the decision. The PDF holds the document the signer was shown with their field values stamped and the evidence page (unless `signature_evidence_page` is off). An Advanced (AES) PDF also carries the PAdES signature with its timestamp; a Simple PDF has no digital signature, seal or timestamp. Didit checks the file against `sha256_signed` before returning it.
18535
19726
  *
18536
- * Works for User Verification (KYC) and Business Verification (KYB) sessions. Needs `read:sessions`; your API key works. See the [Electronic Signature report](/core-technology/electronic-signature/report-electronic-signature#download-the-signed-documents).
19727
+ * Works for User Verification (KYC) and Business Verification (KYB) sessions. Needs `read:sessions`; your API key works. See the [E-signature report](/core-technology/electronic-signature/report-electronic-signature#download-the-signed-documents).
18537
19728
  *
18538
19729
  * `GET /v3/session/{sessionId}/signatures/{nodeId}/documents/{documentId}/file/`
18539
19730
  *
18540
19731
  * @param sessionId The User Verification (KYC) or Business Verification (KYB) session.
18541
- * @param nodeId The Electronic Signature step: `node_id` of the item in `signatures[]`.
19732
+ * @param nodeId The E-signature step: `node_id` of the item in `signatures[]`.
18542
19733
  * @param documentId `id` of the document in `signatures[].documents[]`.
18543
19734
  */
18544
19735
  downloadDocument(sessionId: string, nodeId: string, documentId: string, options?: RequestOptions): APIPromise<Blob>;
18545
19736
  /**
18546
19737
  * Download the signature evidence
18547
19738
  *
18548
- * Download a signer's evidence PDF: the level and format, the signer and their verified identity session, the code confirmation, the IP address, each document with its original SHA-256 and field values, the certificate, the timestamp and the SHA-256 of every signed file. Use the `evidence_file` path of the signer's item in `signatures[]`.
19739
+ * Download a signer's evidence PDF: the level and format, the signer, the IP address, each document with its original SHA-256 and field values and the SHA-256 of every signed file, plus, for an Advanced (AES) signature, the verified identity session, the code confirmation, the certificate and the timestamp. Use the `evidence_file` path of the signer's item in `signatures[]`.
18549
19740
  *
18550
19741
  * Always pass `signature_id` when a Business Verification step has several signers: without it, the route picks one of the step's signers. Needs `read:sessions`; your API key works.
18551
19742
  *
18552
19743
  * `GET /v3/session/{sessionId}/signatures/{nodeId}/evidence/`
18553
19744
  *
18554
19745
  * @param sessionId The User Verification (KYC) or Business Verification (KYB) session.
18555
- * @param nodeId The Electronic Signature step: `node_id` of the item in `signatures[]`.
19746
+ * @param nodeId The E-signature step: `node_id` of the item in `signatures[]`.
18556
19747
  */
18557
19748
  downloadEvidence(sessionId: string, nodeId: string, params?: SessionsSignaturesDownloadEvidenceParams, options?: RequestOptions): APIPromise<Blob>;
18558
19749
  /**
@@ -18563,21 +19754,21 @@ declare class SessionsSignatures extends APIResource {
18563
19754
  * `GET /v3/session/{sessionId}/signatures/{nodeId}/fields/{fieldId}/image/`
18564
19755
  *
18565
19756
  * @param sessionId The User Verification (KYC) or Business Verification (KYB) session.
18566
- * @param nodeId The Electronic Signature step: `node_id` of the item in `signatures[]`.
19757
+ * @param nodeId The E-signature step: `node_id` of the item in `signatures[]`.
18567
19758
  * @param fieldId The field on this signer's copy, as in the field's `image_url`.
18568
19759
  */
18569
19760
  downloadFieldImage(sessionId: string, nodeId: string, fieldId: string, options?: RequestOptions): APIPromise<Blob>;
18570
19761
  /**
18571
19762
  * Validate signatures again
18572
19763
  *
18573
- * Re-check the signed documents of an Electronic Signature step. Didit re-reads every signed PDF, checks its SHA-256 and validates the PAdES signature, the certificate, the revocation data and the timestamp, then saves the result in each signer's `validation` and returns the updated items. Nothing is signed again. Send `signature_id` to check one signer; without it, every signer of the step is checked, and the call fails if any of them hasn't signed.
19764
+ * Re-check the signed documents of an E-signature step. Didit re-reads every signed PDF, checks its SHA-256 and, for an Advanced (AES) signature, validates the PAdES signature, the certificate, the revocation data and the timestamp (a Simple signature has no digital signature, so only the file integrity is checked), then saves the result in each signer's `validation` and returns the updated items. Nothing is signed again. Send `signature_id` to check one signer; without it, every signer of the step is checked, and the call fails if any of them hasn't signed.
18574
19765
  *
18575
19766
  * Needs `write:sessions`; your API key works. In the console it's the **Validate again** button.
18576
19767
  *
18577
19768
  * `POST /v3/session/{sessionId}/signatures/{nodeId}/validate/`
18578
19769
  *
18579
19770
  * @param sessionId The User Verification (KYC) or Business Verification (KYB) session.
18580
- * @param nodeId The Electronic Signature step: `node_id` of the item in `signatures[]`.
19771
+ * @param nodeId The E-signature step: `node_id` of the item in `signatures[]`.
18581
19772
  */
18582
19773
  validate(sessionId: string, nodeId: string, params?: SessionsSignaturesValidateParams, options?: RequestOptions): APIPromise<SessionsSignaturesValidateResponse>;
18583
19774
  }
@@ -18715,6 +19906,16 @@ declare class Sessions extends APIResource {
18715
19906
  * `POST /v3/session/`
18716
19907
  */
18717
19908
  create(params: SessionsCreateParams, options?: RequestOptions): APIPromise<SessionsCreateResponse>;
19909
+ /**
19910
+ * Create a KYB party draft
19911
+ *
19912
+ * Add a party (a person or a company) to the list you are preparing for this KYB session. The same fields and rules as the hosted Key People screen apply: a person needs `full_name` or `first_name` and `last_name`, at least one role and a nationality; a company needs `company_name` and the country of incorporation in `nationality`. Nothing is declared or billed until `POST /v3/session/{sessionId}/kyb/parties/submit/`. Requires `write:businesses`.
19913
+ *
19914
+ * `POST /v3/session/{sessionId}/kyb/parties/drafts/`
19915
+ *
19916
+ * @param sessionId UUID of the Business Verification (KYB) session. It must belong to the application of the API key.
19917
+ */
19918
+ createKybPartyDraft(sessionId: string, params: SessionsCreateKybPartyDraftParams, options?: RequestOptions): APIPromise<SessionsCreateKybPartyDraftResponse>;
18718
19919
  /**
18719
19920
  * Delete a verification session (KYC or KYB)
18720
19921
  *
@@ -18722,7 +19923,7 @@ declare class Sessions extends APIResource {
18722
19923
  *
18723
19924
  * **What is deleted:**
18724
19925
  * - The session and every verification attempt it holds, including results that a resubmission replaced: the decision, extracted data, all related feature records (ID verification, face, liveness, face match, AML, registry checks, IP analysis, and so on), its reviews and its activity log.
18725
- * - All stored files owned by the session: document front/back photos (full, cropped, and privacy-blurred variants), document-capture videos, portrait crops, NFC chip portrait and signature images, face reference images, liveness videos, face-match source/target images, Proof of Address documents, and any extra uploaded files (KYC); uploaded company documents and extra files (KYB). Electronic Signature documents, signed PDFs, evidence PDFs and signature images (KYC and KYB): their download paths stop working. Previously issued media URLs (`https://<media-host>/...`) stop resolving.
19926
+ * - All stored files owned by the session: document front/back photos (full, cropped, and privacy-blurred variants), document-capture videos, portrait crops, NFC chip portrait and signature images, face reference images, liveness videos, face-match source/target images, Proof of Address documents, and any extra uploaded files (KYC); uploaded company documents and extra files (KYB). E-signature documents, signed PDFs, evidence PDFs and signature images (KYC and KYB): their download paths stop working. Previously issued media URLs (`https://<media-host>/...`) stop resolving.
18726
19927
  * - The session's face data. Its face embedding is deleted too, unless you choose to keep an image-free template (see **Face biometric data**).
18727
19928
  * - Webhook deliveries still queued for the session, and their retries. Webhooks already delivered are not affected.
18728
19929
  * - For a Business Verification (KYB) session: the verifications it created for its key people (KYC) and its corporate owners (KYB), recursively, reported as `deleted_child_verifications`. A verification it only links to, such as an existing approved KYC it reused, is not deleted.
@@ -18754,16 +19955,39 @@ declare class Sessions extends APIResource {
18754
19955
  * @param sessionId UUID (`session_id`) of the User Verification (KYC) or Business Verification (KYB) session to delete, as returned when the session was created. Must be a canonical hyphenated UUID - a non-UUID value does not match the route and returns `404`.
18755
19956
  */
18756
19957
  delete(sessionId: string, params?: SessionsDeleteParams, options?: RequestOptions): APIPromise<SessionsDeleteResponse>;
19958
+ /**
19959
+ * Delete a KYB party draft
19960
+ *
19961
+ * Drop one party draft. Declared parties are not affected. Requires `write:businesses`.
19962
+ *
19963
+ * `DELETE /v3/session/{sessionId}/kyb/parties/drafts/{draftId}/`
19964
+ *
19965
+ * @param sessionId UUID of the Business Verification (KYB) session. It must belong to the application of the API key.
19966
+ * @param draftId UUID of the party draft (`draft_id` returned when it was created).
19967
+ */
19968
+ deleteKybPartyDraft(sessionId: string, draftId: string, params?: SessionsDeleteKybPartyDraftParams, options?: RequestOptions): APIPromise<void>;
18757
19969
  /**
18758
19970
  * Export AML screening history as CSV
18759
19971
  *
18760
- * Download the same ongoing-monitoring history as `GET /v3/session/{sessionId}/aml-screening-history/` as a CSV file, one line per completed re-screen, newest first, ready to hand to an auditor. The file is streamed whole (no pagination) and starts with a header line; an empty cell means unknown, dataset dates are never estimated, and a value that would start a spreadsheet formula is prefixed with an apostrophe. Works for KYC and KYB session IDs; pass `node_id` when the session ran more than one AML step. Errors are returned as JSON, not CSV. A scoped API key needs `decisions: read` and `media: read`: the response is a file, so a key without `media: read` gets `403`.
19972
+ * Download the same ongoing-monitoring history as `GET /v3/session/{sessionId}/aml-screening-history/` as a CSV file, one line per completed re-screen, newest first, ready to hand to an auditor. The file is streamed whole (no pagination) and starts with a header line; an empty cell means unknown, dataset dates are never estimated, and a value that would start a spreadsheet formula is prefixed with an apostrophe. Works for KYC and KYB session IDs; pass `node_id` when the session ran more than one AML step. Pass `month` to export one calendar month. Errors are returned as JSON, not CSV. A scoped API key needs `decisions: read` and `media: read`: the response is a file, so a key without `media: read` gets `403`.
18761
19973
  *
18762
19974
  * `GET /v3/session/{sessionId}/aml-screening-history/export/`
18763
19975
  *
18764
19976
  * @param sessionId UUID of the verification session (the `session_id` returned by `POST /v3/session/`). Accepts both User Verification (KYC) and Business Verification (KYB) session IDs: the server resolves the ID across both session types. Must be a well-formed UUID; a malformed value does not match the route and returns an HTML `404`.
18765
19977
  */
18766
19978
  exportAmlScreeningHistory(sessionId: string, params?: SessionsExportAmlScreeningHistoryParams, options?: RequestOptions): APIPromise<Blob>;
19979
+ /**
19980
+ * Export every file of a session
19981
+ *
19982
+ * Start preparing one ZIP with every image, video and document of a User Verification (KYC) or Business Verification (KYB) session, in original quality: the files are stored in the ZIP as they were captured, never recompressed. Answers `202` with the export; read it with `GET /v3/session/{sessionId}/files-export/{exportId}/` until `status` is `READY`, then download `download_url`. While an export of the same session is still being prepared, that export is returned instead of a new one.
19983
+ *
19984
+ * The ZIP is deleted 24 hours after it is ready, and at once when the session is deleted. A deleted session cannot be exported. Every export and every download link handed out is written to the session's audit log. A scoped API key needs `media: read` and `decisions: read`; a console user needs the privilege to read sessions.
19985
+ *
19986
+ * `POST /v3/session/{sessionId}/files-export/`
19987
+ *
19988
+ * @param sessionId UUID of the verification session (the `session_id` returned by `POST /v3/session/`). Accepts both User Verification (KYC) and Business Verification (KYB) session IDs. A deleted session returns `404`.
19989
+ */
19990
+ exportFiles(sessionId: string, options?: RequestOptions): APIPromise<SessionFilesExport>;
18767
19991
  /**
18768
19992
  * Download a PDF report for a verification session
18769
19993
  *
@@ -18796,6 +20020,17 @@ declare class Sessions extends APIResource {
18796
20020
  * @param sessionId UUID of the User Verification (KYC) or Business Verification (KYB) session to render - the `session_id` returned by `POST /v3/session/`. The same path works for both session kinds; use the `Content-Disposition` filename on the response to tell which report type you received. **Must be a well-formed, lowercase UUID.** The route only matches valid UUIDs, so a malformed value is rejected by the URL router before any application code runs and the response is a `404` **HTML** page rather than the JSON `{"detail": ...}` envelope shown below. The route's UUID converter only matches the canonical lowercase form - uppercase-hex UUIDs are rejected with the HTML 404.
18797
20021
  */
18798
20022
  generatePdf(sessionId: string, options?: RequestOptions): APIPromise<Blob>;
20023
+ /**
20024
+ * Get a session files export
20025
+ *
20026
+ * Progress of an export started with `POST /v3/session/{sessionId}/files-export/`. Once `status` is `READY`, `download_url` is a signed URL of the ZIP that stays valid for a short time; read the export again for a new one until `expires_at`. Each read that hands out a download link is written to the session's audit log. An export of a deleted session returns `404`.
20027
+ *
20028
+ * `GET /v3/session/{sessionId}/files-export/{exportId}/`
20029
+ *
20030
+ * @param sessionId UUID of the verification session (the `session_id` returned by `POST /v3/session/`). Accepts both User Verification (KYC) and Business Verification (KYB) session IDs. A deleted session returns `404`.
20031
+ * @param exportId The `export_id` returned by `POST /v3/session/{sessionId}/files-export/`.
20032
+ */
20033
+ getFilesExport(sessionId: string, exportId: string, options?: RequestOptions): APIPromise<SessionFilesExport>;
18799
20034
  /**
18800
20035
  * Redeem a share token to clone a verification session into your application
18801
20036
  *
@@ -18834,7 +20069,7 @@ declare class Sessions extends APIResource {
18834
20069
  /**
18835
20070
  * List AML screening history
18836
20071
  *
18837
- * List every completed ongoing-monitoring re-screen of a session's AML check, newest first by `completed_at`, including the runs where nothing changed: alerts, activity entries and webhooks fire only when a result moves, so this history is the evidence that a clean subject was still being screened. Works for KYC and KYB session IDs; pass `node_id` when the session ran more than one AML step. Only ongoing-monitoring re-screens are listed (the first screening is part of the session decision) and runs from before this history existed are not reconstructed, so a session without ongoing monitoring returns an empty list. `count` is exact up to 100 and capped at 100 above that, so follow `next` until it is `null`. A scoped API key needs `decisions: read`; see [Continuous AML monitoring](https://docs.didit.me/core-technology/aml-screening/continuous-monitoring-aml-screening).
20072
+ * List every completed ongoing-monitoring re-screen of a session's AML check, newest first by `completed_at`, including the runs where nothing changed: alerts, activity entries and webhooks fire only when a result moves, so this history is the evidence that a clean subject was still being screened. Works for KYC and KYB session IDs; pass `node_id` when the session ran more than one AML step. Only ongoing-monitoring re-screens are listed (the first screening is part of the session decision) and runs from before this history existed are not reconstructed, so a session without ongoing monitoring returns an empty list. `count` is exact up to 100 and capped at 100 above that, so follow `next` until it is `null`. Pass `month` to read one calendar month at a time. A scoped API key needs `decisions: read`; see [Continuous AML monitoring](https://docs.didit.me/core-technology/aml-screening/continuous-monitoring-aml-screening).
18838
20073
  *
18839
20074
  * `GET /v3/session/{sessionId}/aml-screening-history/`
18840
20075
  *
@@ -18865,6 +20100,26 @@ declare class Sessions extends APIResource {
18865
20100
  * @param sessionId UUID of the verification session. Accepts both user (KYC) and business (KYB) session IDs.
18866
20101
  */
18867
20102
  listFeatureOverrides(sessionId: string, options?: RequestOptions): APIPromise<SessionsListFeatureOverridesResponse>;
20103
+ /**
20104
+ * List the parties named by the uploaded documents
20105
+ *
20106
+ * Return the shareholders and directors that the documents uploaded to this KYB session name, merged per person and attributed to the documents that named them. Show them to your applicant to confirm, then declare them with the party draft endpoints. A range stays a range: `ownership_percent.text` keeps the verbatim figure and `min` / `max` the numbers read from it. Nobody is labelled a UBO here; that is decided when the parties are submitted, from the role settings and ownership thresholds of the workflow. The same list is in the session decision as `document_verifications[].extracted_parties`. Requires `read:businesses` or `read:sessions`.
20107
+ *
20108
+ * `GET /v3/session/{sessionId}/kyb/extracted-parties/`
20109
+ *
20110
+ * @param sessionId UUID of the Business Verification (KYB) session. It must belong to the application of the API key.
20111
+ */
20112
+ listKybExtractedParties(sessionId: string, params?: SessionsListKybExtractedPartiesParams, options?: RequestOptions): APIPromise<SessionsListKybExtractedPartiesResponse>;
20113
+ /**
20114
+ * List the KYB party drafts
20115
+ *
20116
+ * List the parties you are preparing for this KYB session, oldest first. A draft is not a declared party: it does not appear in the decision or the console and creates no verification session until you submit it with `POST /v3/session/{sessionId}/kyb/parties/submit/`. Requires `write:businesses`.
20117
+ *
20118
+ * `GET /v3/session/{sessionId}/kyb/parties/drafts/`
20119
+ *
20120
+ * @param sessionId UUID of the Business Verification (KYB) session. It must belong to the application of the API key.
20121
+ */
20122
+ listKybPartyDrafts(sessionId: string, params?: SessionsListKybPartyDraftsParams, options?: RequestOptions): APIPromise<SessionsListKybPartyDraftsResponse>;
18868
20123
  /**
18869
20124
  * List networks for a session
18870
20125
  *
@@ -18923,7 +20178,7 @@ declare class Sessions extends APIResource {
18923
20178
  *
18924
20179
  * Retrieve the complete decision report for a verification session - the rolled-up session `status` plus one report per verification feature the workflow executed. This is the canonical read endpoint for both User Verification (KYC) and Business Verification (KYB) sessions: the same path serves both, and the top-level `session_kind` discriminator tells you which shape you received (`"user"` or `"business"`).
18925
20180
  *
18926
- * **Every feature report is a plural array.** V3 workflows are graphs that can run the same feature more than once, so each block (`id_verifications`, `nfc_verifications`, `liveness_checks`, `face_matches`, `poa_verifications`, `document_ai_documents`, `phone_verifications`, `email_verifications`, `aml_screenings`, `ip_analyses`, `database_validations`, `questionnaire_responses`) is a JSON array whose items each carry a `node_id` identifying the workflow graph node that produced them. Read NFC as `response.nfc_verifications[0]` - never as a singular `nfc` field. A block is `null` until the workflow has run that feature at least once; features the workflow does not include never appear with data. Electronic Signature results are in `signatures`, which is present only when the workflow has an Electronic Signature step.
20181
+ * **Every feature report is a plural array.** V3 workflows are graphs that can run the same feature more than once, so each block (`id_verifications`, `nfc_verifications`, `liveness_checks`, `face_matches`, `poa_verifications`, `document_ai_documents`, `phone_verifications`, `email_verifications`, `aml_screenings`, `ip_analyses`, `database_validations`, `questionnaire_responses`) is a JSON array whose items each carry a `node_id` identifying the workflow graph node that produced them. Read NFC as `response.nfc_verifications[0]` - never as a singular `nfc` field. A block is `null` until the workflow has run that feature at least once; features the workflow does not include never appear with data. E-signature results are in `signatures`, which is present only when the workflow has an E-signature step.
18927
20182
  *
18928
20183
  * **When to call.** The recommended pattern is event-driven: wait for the `status.updated` webhook that fires when the session reaches a decision (`Approved`, `Declined`, `In Review`), then call this endpoint once to fetch the full report. Polling also works - the endpoint can be called at any point in the session lifecycle and returns the data produced so far - but webhook-then-fetch is cheaper and faster. Media URLs in the response (document images, videos, PDFs) are short-lived presigned links: fetch them promptly or re-request the decision to get fresh ones, and do not persist them as long-term references.
18929
20184
  *
@@ -18978,10 +20233,20 @@ declare class Sessions extends APIResource {
18978
20233
  * @param sessionId UUID of the sandbox verification session. Accepts both user (KYC) and business (KYB) session IDs.
18979
20234
  */
18980
20235
  simulate(sessionId: string, params?: SessionsSimulateParams, options?: RequestOptions): APIPromise<SandboxSimulateResponse>;
20236
+ /**
20237
+ * Submit the KYB party drafts
20238
+ *
20239
+ * Declare the stored drafts as the company's key people. This is the hosted Key People step under your API key: Didit decides from the role settings and ownership thresholds of the workflow which parties must be verified, creates one individual KYC session (or a KYB sub-session for a corporate owner) for each of them, sends the emails the workflow asks for, and advances the session. Each child session is billed like in the hosted flow. The drafts are consumed. Repeating the call after a successful submit changes nothing and answers `200` with `already_submitted: true` and the parties that already exist. The session must be on the Key People step. Send each person's `kyc_session_url` to them, or embed it. Requires `write:businesses`.
20240
+ *
20241
+ * `POST /v3/session/{sessionId}/kyb/parties/submit/`
20242
+ *
20243
+ * @param sessionId UUID of the Business Verification (KYB) session. It must belong to the application of the API key.
20244
+ */
20245
+ submitKybParties(sessionId: string, params?: SessionsSubmitKybPartiesParams, options?: RequestOptions): APIPromise<SessionsSubmitKybPartiesResponse>;
18981
20246
  /**
18982
20247
  * Update an AML hit review status
18983
20248
  *
18984
- * Set the review status of a **single AML hit** (a potential sanction / PEP / watchlist / adverse-media match) returned by AML screening, without changing the overall session decision. Identify the hit by its `hit_id` (the `id` of an entry in the AML check's `hits` array - see the session decision).
20249
+ * Set the review status of a **single AML hit** (a potential sanction / PEP / watchlist / adverse-media match) returned by AML screening, without changing the overall session decision. Identify the hit by its `hit_id` (the `id` of an entry in the AML check's `hits` array - see the session decision). A hit id returned in the earlier format is still accepted; the response always names the hit by its current `id`.
18985
20250
  *
18986
20251
  * `review_status` is one of `Unreviewed`, `Confirmed Match`, `False Positive`, or `Inconclusive`. Reviewer decisions are preserved across ongoing-monitoring updates, so a hit you mark `False Positive` stays that way when the provider re-screens.
18987
20252
  *
@@ -19094,6 +20359,17 @@ declare class Sessions extends APIResource {
19094
20359
  * @param partyUuid UUID of the Key People party to update (`key_people_checks[].submitted.parties[].uuid` on the business session decision). Must belong to the session referenced by `sessionId`.
19095
20360
  */
19096
20361
  updateKybParty(sessionId: string, partyUuid: string, params: SessionsUpdateKybPartyParams, options?: RequestOptions): APIPromise<SessionsUpdateKybPartyResponse>;
20362
+ /**
20363
+ * Edit a KYB party draft
20364
+ *
20365
+ * Change fields of one party draft. The edit is merged into the stored draft and the merged party is validated as a whole, so an edit that would leave the party incomplete is rejected. Changing `first_name` or `last_name` replaces the stored full name. Requires `write:businesses`.
20366
+ *
20367
+ * `PATCH /v3/session/{sessionId}/kyb/parties/drafts/{draftId}/`
20368
+ *
20369
+ * @param sessionId UUID of the Business Verification (KYB) session. It must belong to the application of the API key.
20370
+ * @param draftId UUID of the party draft (`draft_id` returned when it was created).
20371
+ */
20372
+ updateKybPartyDraft(sessionId: string, draftId: string, params?: SessionsUpdateKybPartyDraftParams, options?: RequestOptions): APIPromise<SessionsUpdateKybPartyDraftResponse>;
19097
20373
  /**
19098
20374
  * Update Proof of Address data extracted from the POA document on a verification session
19099
20375
  *
@@ -19132,6 +20408,16 @@ declare class Sessions extends APIResource {
19132
20408
  * @param sessionId UUID of the verification session to update. Accepts both user (KYC) and business (KYB) session IDs - the service resolves the ID across both session types.
19133
20409
  */
19134
20410
  updateStatus(sessionId: string, params: SessionsUpdateStatusParams, options?: RequestOptions): APIPromise<SessionsUpdateStatusResponse>;
20411
+ /**
20412
+ * Upload KYB documents to a session
20413
+ *
20414
+ * Upload one or more corporate documents (articles of incorporation, shareholder register, certificate of incorporation, ...) to the KYB Documents step of a Business Verification session, from your own server instead of the hosted page. Didit runs the hosted pipeline: compression, OCR, tampering and cross-document checks, document grouping, and advances the session when the required document groups are satisfied. The step costs one flat fee however many files you send. The session must be open and on the KYB Documents step, and the company chosen at the registry step must exist. Read the people the documents name with `GET /v3/session/{sessionId}/kyb/extracted-parties/`. Requires `write:businesses`.
20415
+ *
20416
+ * `POST /v3/session/{sessionId}/kyb/documents/`
20417
+ *
20418
+ * @param sessionId UUID of the Business Verification (KYB) session. It must belong to the application of the API key.
20419
+ */
20420
+ uploadKybDocuments(sessionId: string, params: SessionsUploadKybDocumentsParams, options?: RequestOptions): APIPromise<SessionsUploadKybDocumentsResponse>;
19135
20421
  }
19136
20422
 
19137
20423
  interface TransactionsBatchDeleteParamsAllTransactions {
@@ -19334,13 +20620,13 @@ interface TransactionsCreateParamsSubjectPaymentMethod {
19334
20620
  interface TransactionsCreateParamsTransactionDetails {
19335
20621
  /** Direction of the transaction relative to the subject. Case-insensitive; `in`/`out` are accepted as aliases. Echoed back uppercase (`INBOUND`/`OUTBOUND`). */
19336
20622
  direction: "inbound" | "outbound" | "in" | "out" | (string & {});
19337
- /** Transaction amount (up to 18 decimal places). Send it as a decimal string (e.g. `"0.123456789012345678"`) when exact precision matters: a JSON number is parsed as a binary float first, so digits beyond about 15 significant digits are rounded before the amount is stored. */
20623
+ /** Transaction amount (up to 18 decimal places). Send it as a decimal string (e.g. `"0.123456789012345678"`) when exact precision matters: a JSON number is parsed as a binary float first, so digits beyond about 15 significant digits are rounded before the amount is stored. Must be zero or greater: the direction carries the sign, and a negative amount returns `400`. */
19338
20624
  amount: number;
19339
20625
  /** Currency code. Any ISO 4217 alphabetic code is accepted (e.g. `EUR`, `USD`, `NGN`), as is a crypto asset symbol (e.g. `BTC`). Prefer a currently-circulating code. Not every accepted code has an exchange rate: when none is available for the code (for example the ISO accounting unit `XSU`, or a crypto symbol Didit does not price), automatic conversion fails and `preferred_currency_amount` is returned null unless the request supplied a pre-converted `amount_in_default_currency`. */
19340
20626
  currency: string;
19341
20627
  /** Whether the currency is `fiat` or `crypto`. */
19342
20628
  currency_kind?: string;
19343
- /** Pre-converted amount in the default currency. If omitted, automatic FX conversion is attempted. */
20629
+ /** Pre-converted amount in the default currency. If omitted, automatic FX conversion is attempted. Must be zero or greater. */
19344
20630
  amount_in_default_currency?: number | null;
19345
20631
  /** The default currency code for the converted amount. Any currently-circulating ISO 4217 code. */
19346
20632
  default_currency?: string;
@@ -19355,7 +20641,7 @@ interface TransactionsCreateParamsTransactionDetails {
19355
20641
  }
19356
20642
  /** Crypto network selection, separate from currency (the asset symbol). Recording a custom token symbol does not guarantee transaction-hash coverage for its contract. */
19357
20643
  interface TransactionsCreateParamsTransactionDetailsCryptoParams {
19358
- /** Actual network used for screening. Managed screening supports BTC, ETH, LTC, XRP, BCH, DOGE, TRX, SOL, MATIC, BNB, BASE (Base), OP (Optimism) and ARB (Arbitrum One). Always specify this for multi-network tokens. When it is missing for USDT, USDC or ETH sent with a 0x transaction hash, Didit looks the hash up on Ethereum, BNB Chain, Polygon, Base, Arbitrum and Optimism and screens it on the network where it is found; if no network has it, the transaction is not screened and custom_values.aml_screening_status is FAILED with the reason in custom_values.aml_screening_error. When it is missing for USDT or USDC screened by wallet (no transaction hash), a Tron address is screened on Tron, a Solana address on Solana, and a 0x address on the first of those six networks where it has sent a transaction or holds the token, or on Ethereum when it is active on none of them. Connected-provider coverage varies; LIGHTNING requires a supported connected provider. */
20644
+ /** Actual network used for screening. Managed screening supports BTC, ETH, LTC, XRP, BCH, DOGE, TRX, SOL, MATIC, BNB, BASE (Base), OP (Optimism), ARB (Arbitrum One), AVAX (Avalanche C-Chain), ADA (Cardano), XLM (Stellar) and HBAR (Hedera). Common network names are accepted too, for example POLYGON or POL for MATIC, BSC for BNB and TRON for TRX. Always specify this for multi-network tokens. When it is missing for USDT, USDC or ETH sent with a 0x transaction hash, Didit looks the hash up on Ethereum, BNB Chain, Polygon, Base, Arbitrum and Optimism and screens it on the network where it is found; if no network has it, the transaction is not screened and custom_values.aml_screening_status is FAILED with the reason in custom_values.aml_screening_error. When it is missing for USDT or USDC screened by wallet (no transaction hash), a Tron address is screened on Tron, a Solana address on Solana, and a 0x address on the first of those six networks where it has sent a transaction or holds the token, or on Ethereum when it is active on none of them. Connected-provider coverage varies; LIGHTNING requires a supported connected provider. */
19359
20645
  crypto_chain?: string;
19360
20646
  }
19361
20647
  /** Travel Rule data. When Travel Rule is enabled and transaction_category is travel_rule, Didit runs the exchange itself: it ignores status, protocol, required and obligations_count, and uses originator_data, beneficiary_data and metadata. Otherwise Didit stores these values as a passive Travel Rule record. While Travel Rule is on, an outbound transfer at or above your threshold must carry what its regime requires (EU TFR or FATF Recommendation 16), checked on the sides you send: a missing field answers 400 under `travel_rule_details.originator_data` or `travel_rule_details.beneficiary_data`, for example "EU TFR requires the originator name." */
@@ -19400,6 +20686,8 @@ interface TransactionsListParams {
19400
20686
  offset?: number;
19401
20687
  /** Return only transactions whose Travel Rule transfer is in this exact status (for example `ON_HOLD` or `AWAITING_COUNTERPARTY`). `count` follows this filter; `total_transactions` still counts every transaction in the application. */
19402
20688
  travel_rule_status?: string;
20689
+ /** Comma-separated; a transaction matches when it meets any value. `unassigned` is what nobody holds yet, `rules` is what the rules decided on their own without a reviewer, and a member email matches the reviewer assigned to it. `me` is the signed-in Console reviewer, so an API key sending `me` gets `400`. */
20690
+ assignee?: string;
19403
20691
  }
19404
20692
  interface TransactionsListRelatedParams {
19405
20693
  /** Number of transactions per page. Defaults to 50. A value that is not a positive integer falls back to 50; a value above 1000000 returns `400`. */
@@ -19709,7 +20997,7 @@ declare class TransactionsRules extends APIResource {
19709
20997
  /**
19710
20998
  * Create rule
19711
20999
  *
19712
- * Create a CUSTOM transaction-monitoring rule. Titles are unique per application (duplicate -> 400). A `change_status` action targeting `AWAITING_USER` must carry `workflow_id`. Rules created in ACTIVE mode apply to new transactions immediately - the recommended workflow is create in TEST mode, backtest, then switch mode to ACTIVE.
21000
+ * Create a CUSTOM transaction-monitoring rule. Titles are unique per application (duplicate -> 400). A `change_status` action targeting `AWAITING_USER` must carry `workflow_id`. Rules created in ACTIVE mode apply to new transactions immediately - the recommended workflow is create in TEST mode, backtest, then switch mode to ACTIVE. To change a library rule, create it as a copy: send the library rule's definition with `metadata.based_on` (its library key) and `metadata.based_on_rule_uuid`.
19713
21001
  *
19714
21002
  * `POST /v3/transactions/rules/`
19715
21003
  */
@@ -19769,7 +21057,7 @@ declare class TransactionsRules extends APIResource {
19769
21057
  /**
19770
21058
  * Update rule
19771
21059
  *
19772
- * Partially update a rule. Custom rules accept every configuration field. Library (PRESET) rules accept only `mode` - use it to activate, disable, or switch a preset to TEST; any other field returns 400. An installed copy of a withheld library rule is switched off: setting its `mode` to anything but `DISABLED` answers 400 ("This library rule cannot run yet: its conditions read data the rules engine cannot evaluate.").
21060
+ * Partially update a rule. Custom rules accept every configuration field. Library (PRESET) rules accept only `mode` - use it to activate, disable, or switch a preset to TEST; any other field returns 400, because Didit maintains library rules and applies their updates automatically. To change a library rule's conditions, create a custom copy with `POST /v3/transactions/rules/` using the library rule's definition and `metadata.based_on` (the library key) and `metadata.based_on_rule_uuid`, then switch the library rule off with `mode: DISABLED` so a transaction does not alert twice. An installed copy of a withheld library rule is switched off: setting its `mode` to anything but `DISABLED` answers 400 ("This library rule cannot run yet: its conditions read data the rules engine cannot evaluate.").
19773
21061
  *
19774
21062
  * `PATCH /v3/transactions/rules/{rule_uuid}/`
19775
21063
  *
@@ -20098,6 +21386,38 @@ interface TravelRuleTransfersListResponse {
20098
21386
  previous?: string | null;
20099
21387
  results?: TravelRuleTransferRow[];
20100
21388
  }
21389
+ interface TravelRuleUnmatchedDepositsListParams {
21390
+ /** INBOUND, OUTBOUND, or both comma-separated. Case-sensitive. */
21391
+ direction?: string;
21392
+ /** One or more transfer statuses, comma-separated. */
21393
+ status?: string;
21394
+ /** One or more of INTERNAL, TRP, GTR, TRUST, VERIFYVASP, SYGNA, EMAIL, TEST_VASP, comma-separated. */
21395
+ rail?: string;
21396
+ /** withdrawal, deposit or message, comma-separated. */
21397
+ kind?: string;
21398
+ /** The transaction's currency, case-insensitive. */
21399
+ currency?: string;
21400
+ /** Transfers created on or after this day (UTC), YYYY-MM-DD. */
21401
+ start_date?: string;
21402
+ /** Transfers created on or before this day (UTC), YYYY-MM-DD. */
21403
+ end_date?: string;
21404
+ /** The `id` of a directory entry or Didit network member from GET /v3/travel-rule/vasps/: your transfers with that counterparty. A value that is not a valid id answers 400. */
21405
+ counterparty?: string;
21406
+ /** Page size, default 50. */
21407
+ limit?: number;
21408
+ /** Rows to skip. */
21409
+ offset?: number;
21410
+ }
21411
+ interface TravelRuleUnmatchedDepositsListResponse {
21412
+ count?: number;
21413
+ next?: string | null;
21414
+ previous?: string | null;
21415
+ results?: TravelRuleTransferRow[];
21416
+ }
21417
+ interface TravelRuleUnmatchedDepositsMatchParams {
21418
+ /** The `transaction_id` of the received Travel Rule message (a row with `kind: message`). */
21419
+ transaction_id: string;
21420
+ }
20101
21421
  /** All fields optional; PUT applies a partial update. */
20102
21422
  interface TravelRuleUpdateSettingsParams {
20103
21423
  is_enabled?: boolean;
@@ -20292,6 +21612,27 @@ declare class TravelRuleTransfers extends APIResource {
20292
21612
  */
20293
21613
  list(params?: TravelRuleTransfersListParams, options?: RequestOptions): PagePromise<TravelRuleTransfersListResponse, TravelRuleTransferRow>;
20294
21614
  }
21615
+ /** `travel_rule.unmatched_deposits` */
21616
+ declare class TravelRuleUnmatchedDeposits extends APIResource {
21617
+ /**
21618
+ * List unmatched Travel Rule deposits
21619
+ *
21620
+ * Inbound deposits that are still waiting for the originating VASP's Travel Rule data: their transfer is `AWAITING_COUNTERPARTY`, `NOT_ENOUGH_COUNTERPARTY_DATA` or `COUNTERPARTY_VASP_NOT_FOUND`, no received message is paired with them, and nobody matched them by hand. The rows and the filters are the same as in `GET /v3/travel-rule/transfers/`, newest first, paginated with `limit` (default 50) and `offset`. Pair a deposit with the message the originating VASP sent with `POST /v3/travel-rule/unmatched/{transaction_uuid}/match/`.
21621
+ *
21622
+ * `GET /v3/travel-rule/unmatched/`
21623
+ */
21624
+ list(params?: TravelRuleUnmatchedDepositsListParams, options?: RequestOptions): PagePromise<TravelRuleUnmatchedDepositsListResponse, TravelRuleTransferRow>;
21625
+ /**
21626
+ * Match a Travel Rule deposit to a received message
21627
+ *
21628
+ * Pair an inbound deposit that is still waiting for originator data with the Travel Rule message the originating VASP sent for it. The deposit takes the message's originator data, counterparty VASP and rail, and both transfers record the match on their timelines. `transaction_uuid` is the deposit's `transaction_id` from `GET /v3/travel-rule/unmatched/`. `transaction_id` in the body is the received message's `transaction_id`, from a row of `GET /v3/travel-rule/transfers/?kind=message`; the transfer's own `id` is not found. The message must be for the same asset as the deposit. A deposit or message deleted from the Console answers `404`; one that has already moved on (matched, or no longer waiting) answers `409`.
21629
+ *
21630
+ * `POST /v3/travel-rule/unmatched/{transaction_uuid}/match/`
21631
+ *
21632
+ * @param transactionUuid The `transaction_id` of the unmatched deposit.
21633
+ */
21634
+ match(transactionUuid: string, params: TravelRuleUnmatchedDepositsMatchParams, options?: RequestOptions): APIPromise<TravelRuleManualMatchResponse>;
21635
+ }
20295
21636
  /** `travel_rule.wallet_addresses` */
20296
21637
  declare class TravelRuleWalletAddresses extends APIResource {
20297
21638
  /**
@@ -20416,6 +21757,7 @@ declare class TravelRule extends APIResource {
20416
21757
  readonly counterpartyContacts: TravelRuleCounterpartyContacts;
20417
21758
  readonly networks: TravelRuleNetworks;
20418
21759
  readonly transfers: TravelRuleTransfers;
21760
+ readonly unmatchedDeposits: TravelRuleUnmatchedDeposits;
20419
21761
  readonly walletAddresses: TravelRuleWalletAddresses;
20420
21762
  readonly walletProofs: TravelRuleWalletProofs;
20421
21763
  readonly workspace: TravelRuleWorkspaceResource;
@@ -20557,6 +21899,10 @@ interface UsersBatchDeleteParams {
20557
21899
  didit_internal_id_list?: string[];
20558
21900
  /** If `true`, deletes every user in the application. */
20559
21901
  delete_all?: boolean;
21902
+ /** Your explicit choice to keep one image-free biometric template of each deleted person for duplicate detection, for `face_retention_days`. Everything else about the person is deleted. Omit it, or send `false`, to delete the templates with the users. When `true`, `face_retention_days` is required. */
21903
+ retain_face_embeddings?: boolean;
21904
+ /** Number of days the image-free biometric template is kept when `retain_face_embeddings` is `true`. Required with it, and rejected without it with a `400` on `face_retention_days`. */
21905
+ face_retention_days?: number;
20560
21906
  }
20561
21907
  interface UsersBatchDeleteResponse {
20562
21908
  /** Number of users deleted (excludes vendor_data values that didn't match anything). */
@@ -20796,7 +22142,7 @@ declare class Users extends APIResource {
20796
22142
  *
20797
22143
  * **Permanently delete** users: the user records are removed permanently. For everyday blocking prefer [Update User Status](#patch-/v3/users/-vendor_data-/update-status/) with `BLOCKED`. Select users with `vendor_data_list`, with `didit_internal_id_list`, or with both at once; or pass `delete_all: true`. This endpoint never narrows `delete_all` with filters. The Console's People filters are refused with a `400` (see the `400` response), so a narrowed intent does not turn into a full wipe. Two exceptions: `filter_has_approved_sessions` and `filter_has_declined_sessions` are not refused and not applied, so with `delete_all: true` they still delete every user; do not send them.
20798
22144
  *
20799
- * **Biometric templates:** every image-free biometric template retained for these users after session deletion (see `/v3/biometric-templates/`) is purged before the user is deleted, so the person stops matching in duplicate detection and Face Search. If a template cannot be purged because a biometric store is unavailable, the call returns `503`, no user in the request is deleted, and repeating the request finishes the job.
22145
+ * **Biometric templates:** unless you set `retain_face_embeddings` to `true`, every image-free biometric template retained for these users after session deletion (see `/v3/biometric-templates/`) is purged before the user is deleted, so the person stops matching in duplicate detection and Face Search. With `retain_face_embeddings: true` and `face_retention_days`, you choose to keep one image-free biometric template per person for that many days, and nothing else about the person is kept. If a template cannot be purged because a biometric store is unavailable, the call returns `503`, no user in the request is deleted, and repeating the request finishes the job.
20800
22146
  *
20801
22147
  * **Filed regulatory reports:** if the selected data is in a finalized regulatory report, the whole request is refused with `409` and nothing is deleted. The body uses `code: in_filed_report` and names each report with `uuid`, `report_number`, `report_type` and `case_uuid`. Delete the reports, then repeat the request.
20802
22148
  *
@@ -20934,8 +22280,8 @@ declare class Users extends APIResource {
20934
22280
  interface WalletScreeningScreenParams {
20935
22281
  /** The crypto address or network identifier to screen. Must match the selected network (e.g. a `0x`-prefixed 40-hex-char address for EVM chains). Alias: `address`. */
20936
22282
  wallet_address: string;
20937
- /** Network identifier. Managed screening supports BTC, ETH, LTC, XRP, BCH, DOGE, TRX, SOL, MATIC, BNB, BASE (Base), OP (Optimism), and ARB (Arbitrum One). USDT and USDC are legacy Ethereum aliases, not multi-network searches. Connected-provider coverage varies. LIGHTNING requires a supported connected provider. CELO (Celo), MODE (Mode) and PLUME (Plume) are screened through a connected TRM Labs account; managed screening answers 400 for them. Alias: `currency`. */
20938
- blockchain: "BTC" | "LIGHTNING" | "ETH" | "LTC" | "XRP" | "BCH" | "DOGE" | "TRX" | "SOL" | "MATIC" | "BNB" | "USDT" | "USDC" | "BASE" | "OP" | "ARB" | "CELO" | "MODE" | "PLUME" | (string & {});
22283
+ /** Optional network identifier. When omitted, the network is read from the address format: `bc1`, `1` and `3` addresses are Bitcoin (BTC), `T` addresses are Tron (TRX) and base58 public keys are Solana (SOL). A `0x` address is valid on every EVM network, so omitting `blockchain` for it answers 422 with the candidate networks in `candidate_chains`. Managed screening supports BTC, ETH, LTC, XRP, BCH, DOGE, TRX, SOL, MATIC, BNB, BASE (Base), OP (Optimism), ARB (Arbitrum One), AVAX (Avalanche C-Chain), ADA (Cardano), XLM (Stellar) and HBAR (Hedera). USDT and USDC are legacy Ethereum aliases, not multi-network searches. Connected-provider coverage varies. LIGHTNING requires a supported connected provider. CELO (Celo), MODE (Mode) and PLUME (Plume) are screened through a connected TRM Labs account; managed screening answers 400 for them. Alias: `currency`. */
22284
+ blockchain?: "BTC" | "LIGHTNING" | "ETH" | "LTC" | "XRP" | "BCH" | "DOGE" | "TRX" | "SOL" | "MATIC" | "BNB" | "USDT" | "USDC" | "BASE" | "OP" | "ARB" | "AVAX" | "ADA" | "XLM" | "HBAR" | "CELO" | "MODE" | "PLUME" | (string & {});
20939
22285
  /** Optional. Whether the address is being screened as an inbound (deposit) or outbound (withdrawal) counterparty. Accepts `inbound`, `outbound`, `deposit`, or `withdrawal`. Defaults to a neutral pre-transfer screen when omitted. This is passed to the provider as context only; it does not change the returned `risk_score`, `severity`, or the `source_of_funds`/`destination_of_funds` breakdowns, which are always both returned regardless of `direction`. Changing or omitting `direction` therefore does not require re-screening an address. */
20940
22286
  direction?: "inbound" | "outbound" | "deposit" | "withdrawal" | (string & {});
20941
22287
  }
@@ -21255,6 +22601,8 @@ interface WebhooksUpdateConfigParams {
21255
22601
  biometric_consent_mode?: "auto" | "always" | "never" | (string & {});
21256
22602
  /** Replaces the whole list of Digital ID wallet return hosts. Bare hostnames only, such as `shop.example.com`: no scheme, port, path or wildcard. Values are lowercased and duplicates are dropped. Send `[]` to clear the list. */
21257
22603
  allowed_return_hosts?: string[];
22604
+ /** Replaces the whole list of allowed origins. Origins (for example `https://app.example.com`; `http` only for `localhost`) the hosted verification flow may be embedded in and may send the user back to with a session callback. Server-to-server calls are not affected. An empty list means no restriction. Didit stores each origin in lower case without a default port. An invalid entry fails with `400` on `allowed_domains`. Send `[]` to remove the restriction. */
22605
+ allowed_domains?: string[];
21258
22606
  }
21259
22607
 
21260
22608
  /** Which header authenticated a delivery. */
@@ -21931,7 +23279,7 @@ declare class TokenVerificationError extends DiditError {
21931
23279
  constructor(reason: TokenVerificationReason, message: string);
21932
23280
  }
21933
23281
 
21934
- declare const VERSION = "1.0.1";
23282
+ declare const VERSION = "2.1.0";
21935
23283
 
21936
23284
  /**
21937
23285
  * The canonical JSON of a parsed webhook body: the text `X-Signature-V2` signs
@@ -22404,5 +23752,5 @@ declare function createState(): Promise<string>;
22404
23752
  */
22405
23753
  declare function createNonce(): Promise<string>;
22406
23754
 
22407
- export { APIConnectionError, APIPromise, APIResponseValidationError, APIStatusError, APITimeoutError, Account, AccountApplications, AccountOrganizations, AddressValidation, AgeEstimation, Aml, AmlMonitoring, Analytics, Authentication, AuthenticationError, BadRequestError, Bank, Billing, BiometricTemplates, Blocklist, BusinessSessions, Businesses, Cases, CasesBlueprints, CasesChecklist, CasesLinks, CasesNotes, CasesRegulatoryReports, CasesRequests, CasesRoutingRules, CasesTeams, ConfigurationError, ConflictError, Customization, DEFAULT_ACCOUNT_BASE_URL, DEFAULT_BASE_URL, DEFAULT_MAX_RETRIES, DEFAULT_TIMEOUT, DEFAULT_WEBHOOK_TOLERANCE, DatabaseValidation, Didit, DiditError, DiditResources, DocumentAi, Email, FaceMatch, FaceSearch, FraudChecks, IdVerification, IdWallets, InternalServerError, Investigator, Ip, Kyb, Lists, ListsEntries, MonitoringEvents, Networks, NetworksNotes, NotFoundError, PagePromise, PassiveLiveness, PermissionDeniedError, Phone, Pricing, ProofOfAddress, Questionnaires, RateLimitError, RegulatoryReports, ReportTemplates, Sessions, SessionsImports, SessionsReviews, SessionsSignatures, SessionsWebhooks, TokenVerificationError, Transactions, TransactionsNotes, TransactionsRules, TransactionsTravelRule, TravelRule, TravelRuleCounterpartyContacts, TravelRuleNetworks, TravelRuleTransfers, TravelRuleWalletAddresses, TravelRuleWalletProofs, TravelRuleWorkspaceResource, UnprocessableEntityError, Users, VERSION, WalletScreening, WebhookVerificationError, Webhooks, WebhooksDestinations, Workflows, canonicalJson, createNonce, createPkce, createState, Didit as default, fileFromPath, parsePublishableKey, toFile, verifyWebhook, verifyWebhookParsed, webhooks };
22408
- export type { AMLDatasetFreshness, AMLDatasetFreshnessSources, AMLDatasetSourceFreshness, AMLMonitoringJob, AMLMonitoringJobEstimate, AMLMonitoringJobOutcomes, AMLMonitoringJobResults, AMLMonitoringToggleResult, AMLMonitoringToggleResultVariant1, AMLMonitoringToggleResultVariant2, AMLMonitoringToggleResultVariant2Estimate, AMLMonitoringToggleResultVariant2Outcomes, AMLMonitoringToggleResultVariant2Results, AMLScreening, AMLScreeningHits, AMLScreeningHitsAdverseMediaDetails, AMLScreeningHitsAdverseMediaMatches, AMLScreeningHitsLinkedEntities, AMLScreeningHitsPepMatches, AMLScreeningHitsProperties, AMLScreeningHitsRiskView, AMLScreeningHitsRiskViewCategories, AMLScreeningHitsRiskViewCountries, AMLScreeningHitsRiskViewCrimes, AMLScreeningHitsSanctionMatches, AMLScreeningHitsScoreBreakdown, AMLScreeningHitsWarningMatches, AMLScreeningHitsWarningMatchesAdditionalData, AMLScreeningHitsWarningMatchesAdditionalDataData, AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetails, AMLScreeningRun, AMLScreeningScreenedData, AMLScreeningWarnings, AccessTokenClaims, AccountApplicationsCreateParams, AccountApplicationsListParams, AccountApplicationsUpdateParams, AccountLoginParams, AccountOrganizationsListParams, AccountRegisterParams, AccountResendOtpParams, AccountResendOtpResponse, AccountVerifyEmailParams, ActivityCreatedEvent, ActorClaim, AddressValidationResponse, AddressValidationResult, AddressValidationResultAddress, AddressValidationValidateParams, AgeEstimationEstimateParams, AgeEstimationEstimateResponse, AgeEstimationEstimateResponseAgeEstimation, AgeEstimationEstimateResponseAgeEstimationUserImage, AgeEstimationEstimateResponseAgeEstimationUserImageEntities, AgeEstimationEstimateResponseAgeEstimationWarnings, AmlMonitoringRetrieveJobResponse, AmlMonitoringRetrieveJobResponseOutcomes, AmlMonitoringRetrieveJobResponseResults, AmlRetrieveDatasetFreshnessResponse, AmlScreenParams, AmlScreenResponse, AmlScreenResponseAml, AmlScreenResponseAmlHits, AmlScreenResponseAmlHitsAdverseMediaMatches, AmlScreenResponseAmlHitsLinkedEntities, AmlScreenResponseAmlHitsPepMatches, AmlScreenResponseAmlHitsScoreBreakdown, AmlScreenResponseAmlScreenedData, AmlScreenResponseAmlWarnings, Amount, AnalyticsRetrieveParams, Application, ApplicationAnalyticsCountryCount, ApplicationAnalyticsDataPoint, ApplicationAnalyticsDemographicPoint, ApplicationAnalyticsDemographicStats, ApplicationAnalyticsDemographicStatsAgeDistribution, ApplicationAnalyticsDeviceDetails, ApplicationAnalyticsDeviceDetailsBrowsers, ApplicationAnalyticsDeviceDetailsDeviceModels, ApplicationAnalyticsDeviceDetailsOperatingSystems, ApplicationAnalyticsDevicePoint, ApplicationAnalyticsLocationStats, ApplicationAnalyticsLocationStatsCities, ApplicationAnalyticsLocationStatsConversionByCountry, ApplicationAnalyticsOriginalStatusPoint, ApplicationAnalyticsOriginalStatusStats, ApplicationAnalyticsRequestBreakdown, ApplicationAnalyticsResubmissionPoint, ApplicationAnalyticsResubmissionStats, ApplicationAnalyticsSummary, ApplicationAnalyticsVerificationTimePoint, ApplicationAnalyticsVerificationTimeStats, ApplicationAnalyticsVerificationTimeStatsPerFeatureValue, ApplicationAnalyticsVerificationTimeStatsPerSubStepValueValue, ApplicationAnalyticsWarningStats, ApplicationAnalyticsWarningStatsValue, ApplicationAnalyticsWarningStatsValueRisksValue, ApplicationAnalyticsWidget, ApplicationAnalyticsWidgetResponse, ApplicationAnalyticsWidgetSearch, ApplicationAnalyticsWidgetThresholds, ApplicationAnalyticsWorkflowFunnel, ApplicationAnalyticsWorkflowFunnelValue, ApplicationAnalyticsWorkflowFunnelValueStepsValue, ApplicationCredentialsSummary, ApplicationProduct, Audience, AuthenticationOptions, AuthenticationSession, BankAccountCheckBusinessHolder, BankAccountCheckHolder, BankAccountCheckParams, BankAccountCheckParamsAccount, BankAccountCheckPersonHolder, BankAccountCheckPricing, BankAccountCheckResponse, BankSignInPricing, BankSignInPricingAddOns, BankStatementUploadPricing, BankVerificationPricing, BankVerificationPricingCountry, BankVerificationPricingMethods, BankVerificationResult, BankVerificationResultAccount, BankVerificationResultBilling, BankVerificationResultConnection, BankVerificationResultContinuation, BankVerificationResultFinancialData, BankVerificationResultOwnership, BankVerificationResultRoute, BillingRetrieveBalanceResponse, BillingTopUpParams, BillingTopUpResponse, BiometricTemplatesBatchDeleteParams, BiometricTemplatesBatchDeleteResponse, BiometricTemplatesBatchDeleteResponseResults, BiometricTemplatesCountParams, BiometricTemplatesCountResponse, BiometricTemplatesDeleteResponse, BiometricTemplatesListParams, BiometricTemplatesListResponse, BiometricTemplatesListResponseResults, BiometricTemplatesRetrieveResponse, BlocklistAddParams, BlocklistAddResponse, BlocklistListParams, BlocklistListResponse, BlocklistRemoveParams, BlocklistRemoveResponse, BlocklistedItem, BrandingCustomization, BusinessDataUpdatedEvent, BusinessDetailItem, BusinessDetailItemFeaturesList, BusinessDetailItemTags, BusinessListItem, BusinessListItemFeaturesList, BusinessListItemTags, BusinessSessionListItem, BusinessStatusUpdatedEvent, BusinessesBatchDeleteParams, BusinessesBatchDeleteResponse, BusinessesCreateParams, BusinessesListParams, BusinessesListResponse, BusinessesSetAmlMonitoringParams, BusinessesSetOngoingMonitoringParams, BusinessesSetSessionOngoingMonitoringParams, BusinessesUpdateParams, BusinessesUpdateStatusParams, CaseActionActionEnum, CaseActionCaseActionReceipt, CaseActionCaseActionReceiptPage, CaseActionCaseEntityActionResult, CaseActionEntityTypeEnum, CaseActionStatusEnum, CaseAssignee, CaseBlueprintDetail, CaseBlueprintDetailContentConfig, CaseBlueprintDetailContentConfigAmlControl, CaseBlueprintDetailContentConfigChecklist, CaseBlueprintDetailContentConfigChecklistItems, CaseBlueprintDetailContentConfigFinancial, CaseBlueprintDetailContentConfigIdentity, CaseBlueprintDetailContentConfigReporting, CaseBlueprintDetailContentConfigVerifications, CaseBlueprintDetailCreationSources, CaseBlueprintDetailReceivesEscalationFrom, CaseBlueprintListItem, CaseBlueprintPresetInstallResult, CaseBlueprintSummary, CaseBulkUpdateResult, CaseBulkUpdateResultFailures, CaseChecker, CaseChecklistItem, CaseCollaborationCaseNote, CaseCollaborationCaseNoteReply, CaseCollaborationPaginatedCaseNoteList, CaseContentConfig, CaseContentConfigAmlControl, CaseContentConfigChecklist, CaseContentConfigChecklistItems, CaseContentConfigFinancial, CaseContentConfigIdentity, CaseContentConfigReporting, CaseContentConfigVerifications, CaseDetail, CaseDetailPendingResolution, CaseDuplicateCaseDuplicate, CaseDuplicateCaseDuplicatePage, CaseDuplicateCaseFraudSourceContextRequest, CaseDuplicateCaseLinkCreateRequest, CaseDuplicateCaseSubjectInputRequest, CaseDuplicateEntityTypeEnum, CaseDuplicatePriorityEnum, CaseDuplicateStatusEnum, CaseDuplicateTypeEnum, CaseEvent, CaseLink, CaseListItem, CaseListItemPendingResolution, CaseNote, CaseNoteAttachments, CasePublicationAssignmentMethodEnum, CasePublicationCaseBlueprint, CasePublicationPaginatedPolicyRevisionList, CasePublicationPolicyDraft, CasePublicationPolicyDraftResponse, CasePublicationPolicyRevision, CaseReviewTeam, CaseReviewTeamMember, CaseReviewTeamMemberParam, CaseRoutingCondition, CaseRoutingPreview, CaseRoutingPreviewCandidates, CaseRoutingPreviewMatchedRules, CaseRoutingRule, CaseRoutingRuleCreate, CaseSubject, CaseTeamSummary, CasesApplyEntityActionParams, CasesAssignParams, CasesBlueprintsCreateParams, CasesBlueprintsDiscardDraftParams, CasesBlueprintsInstallPresetsParams, CasesBlueprintsListHistoryParams, CasesBlueprintsListParams, CasesBlueprintsListPresetsResponse, CasesBlueprintsListPresetsResponseResults, CasesBlueprintsListResponse, CasesBlueprintsPublishParams, CasesBlueprintsSaveDraftParams, CasesBlueprintsUpdateParams, CasesBulkAssignParams, CasesBulkUpdateStatusParams, CasesChecklistToggleItemParams, CasesCreateParams, CasesCreateParamsSubject, CasesFindDuplicatesParams, CasesLinksCreateParams, CasesListActionReceiptsParams, CasesListEventsParams, CasesListEventsResponse, CasesListParams, CasesListResponse, CasesListReviewersResponse, CasesListReviewersResponseResults, CasesNotesCreateAttachmentUploadParams, CasesNotesCreateAttachmentUploadResponse, CasesNotesCreateParams, CasesNotesListParams, CasesNotesRetrieveAttachmentUrlParams, CasesNotesRetrieveAttachmentUrlResponse, CasesNotesUpdateParams, CasesPrintResponse, CasesRegulatoryReportsCreateParams, CasesRegulatoryReportsCreateParamsNarrative, CasesRegulatoryReportsListParams, CasesRejectResolutionParams, CasesRequestsCreateParams, CasesRequestsListParams, CasesRequestsPreviewParams, CasesRequestsRemindResponse, CasesResolveParams, CasesRetrieveStatisticsParams, CasesRetrieveStatisticsResponse, CasesRetrieveStatisticsResponseQueue, CasesRetrieveStatisticsResponseSeries, CasesRetrieveStatisticsResponseTables, CasesRetrieveStatisticsResponseTablesBlueprint, CasesRetrieveStatisticsResponseTablesOfficer, CasesRetrieveStatisticsResponseTablesSource, CasesRetrieveStatisticsResponseTablesStatus, CasesRetrieveStatisticsResponseTotals, CasesRoutingRulesCreateParams, CasesRoutingRulesDiscardDraftParams, CasesRoutingRulesListHistoryParams, CasesRoutingRulesListParams, CasesRoutingRulesListResponse, CasesRoutingRulesPreviewParams, CasesRoutingRulesPublishParams, CasesRoutingRulesSaveDraftParams, CasesRoutingRulesUpdateParams, CasesTeamsCreateParams, CasesTeamsListParams, CasesTeamsListResponse, CasesTeamsUpdateParams, CasesTransferParams, CasesUpdateParams, ClientOptions, ComplianceList, ComplianceListEntry, ComplianceListEntryMetadata, CreateStepUpParams, CustomerMessagingCaseRequest, CustomerMessagingCaseRequestContact, CustomerMessagingCaseRequestOptions, CustomerMessagingCaseRequestPreviewResponse, CustomerMessagingLanguageEnum, CustomerMessagingLanguagesEnum, CustomerMessagingPaginatedCaseRequestList, CustomerMessagingPurposeEnum, CustomerMessagingPurposesEnum, CustomizationUpdateParams, DatabaseValidationValidateParams, DatabaseValidationValidateParamsAddressVariant1, DatabaseValidationValidateResponse, DatabaseValidationValidateResponseDatabaseValidation, DatabaseValidationValidateResponseDatabaseValidationErrors, DatabaseValidationValidateResponseDatabaseValidationValidationsVariant1, DatabaseValidationValidateResponseDatabaseValidationWarnings, DigitalIdWalletApiAudkenniWalletVerificationStartCountryEnum, DigitalIdWalletApiConnectidWalletVerificationStartCountryEnum, DigitalIdWalletApiCountry520Enum, DigitalIdWalletApiCountryAfcEnum, DigitalIdWalletApiCountryE2dEnum, DigitalIdWalletApiCountryEe9Enum, DigitalIdWalletApiDeviceEnum, DigitalIdWalletApiDiiaWalletVerificationStartCountryEnum, DigitalIdWalletApiEparakstsMobileWalletVerificationStartCountryEnum, DigitalIdWalletApiEudiWalletVerificationStartCountryEnum, DigitalIdWalletApiFranceconnectWalletVerificationStartCountryEnum, DigitalIdWalletApiFtnWalletVerificationStartCountryEnum, DigitalIdWalletApiGovbrWalletVerificationStartCountryEnum, DigitalIdWalletApiIdcardEeWalletVerificationStartCountryEnum, DigitalIdWalletApiIdinWalletVerificationStartCountryEnum, DigitalIdWalletApiInteractionEnum, DigitalIdWalletApiItsmeWalletVerificationStartCountryEnum, DigitalIdWalletApiMitidWalletVerificationStartCountryEnum, DigitalIdWalletApiMobileIdWalletVerificationStartCountryEnum, DigitalIdWalletApiPersonalausweisWalletVerificationStartCountryEnum, DigitalIdWalletApiSmartIdWalletVerificationStartCountryEnum, DigitalIdWalletApiUaePassWalletVerificationStartCountryEnum, DigitalIdWalletApiWallet, DigitalIdWalletApiWalletCatalogEntry, DigitalIdWalletApiWalletCatalogResponse, DigitalIdWalletApiWalletIdentity, DigitalIdWalletApiWalletNextAction, DigitalIdWalletApiWalletNextActionTypeEnum, DigitalIdWalletApiWalletVerificationResponse, DigitalIdWalletApiWalletVerificationResult, DigitalIdWalletApiWalletVerificationResultOutcomeEnum, DocumentAIDetectedCode, DocumentAiAnalyzeParams, DocumentAiAnalyzeResponse, DocumentAiAnalyzeResponseDocumentAi, DocumentAiAnalyzeResponseDocumentAiFields, DocumentAiAnalyzeResponseDocumentAiWarnings, EmailAssessRiskParams, EmailCheckCodeParams, EmailIntelligence, EmailMatchItem, EmailRiskResponse, EmailRiskResponseEmail, EmailRiskResponseEmailBreaches, EmailSendCodeParams, EmailSendCodeParamsOptions, EmailSendCodeParamsSignals, EmailSocialFootprint, EmailVerificationCheckResponse, EmailVerificationCheckResponseEmail, EmailVerificationCheckResponseEmailBreaches, EmailVerificationCheckResponseEmailLifecycle, EmailVerificationCheckResponseEmailMatches, EmailVerificationCheckResponseEmailWarnings, EmailVerificationSendResponse, EntityNetworkMembership, EntityNetworkMembershipList, ExchangeCodeParams, FaceMatchCompareParams, FaceMatchCompareResponse, FaceMatchCompareResponseFaceMatch, FaceMatchCompareResponseFaceMatchRefImage, FaceMatchCompareResponseFaceMatchRefImageEntities, FaceMatchCompareResponseFaceMatchUserImage, FaceMatchCompareResponseFaceMatchUserImageEntities, FaceMatchCompareResponseFaceMatchWarnings, FaceSearchSearchParams, FaceSearchSearchResponse, FaceSearchSearchResponseFaceSearch, FaceSearchSearchResponseFaceSearchMatches, FaceSearchSearchResponseFaceSearchMatchesUserDetails, FaceSearchSearchResponseFaceSearchUserImage, FaceSearchSearchResponseFaceSearchUserImageEntities, FaceSearchSearchResponseFaceSearchWarnings, FeatureStatusOverride, FeatureStatusOverrideRequestedBy, Fetch, FileData, FileUpload, FraudAvailabilityEnum, FraudBandEnum, FraudCheckAttributesRequest, FraudCheckContextRequest, FraudCheckIdentifierRequest, FraudCheckIdentityRelationship, FraudCheckInput, FraudCheckModuleReport, FraudCheckModuleSelectionRequest, FraudCheckPlan, FraudCheckPlannedModule, FraudCheckResponse, FraudCheckRisk, FraudCheckSubjectRequest, FraudChecksCreateParams, FraudChecksPlanParams, FraudDimensionEnum, FraudExcludeEnum, FraudNextActionEnum, FraudProcessingStatusEnum, FraudRecommendationEnum, FraudResultEnum, FraudStatusEnum, FraudTypeEnum, IPRiskResponse, IPRiskResponseIp, IdTokenClaims, IdVerificationVerifyParams, IdVerificationVerifyResponse, IdVerificationVerifyResponseIdVerification, IdVerificationVerifyResponseIdVerificationBackImageQualityScore, IdVerificationVerifyResponseIdVerificationBarcodes, IdVerificationVerifyResponseIdVerificationFrontImageQualityScore, IdVerificationVerifyResponseIdVerificationMrz, IdVerificationVerifyResponseIdVerificationParsedAddress, IdVerificationVerifyResponseIdVerificationParsedAddressDocumentLocation, IdVerificationVerifyResponseIdVerificationWarnings, IdWalletsStartAudkenniParams, IdWalletsStartBankidCzParams, IdWalletsStartBankidNoParams, IdWalletsStartBankidSeParams, IdWalletsStartBuypassParams, IdWalletsStartConnectidParams, IdWalletsStartDiiaParams, IdWalletsStartEparakstsMobileParams, IdWalletsStartEudiParams, IdWalletsStartFranceconnectParams, IdWalletsStartFrejaidParams, IdWalletsStartFtnParams, IdWalletsStartGovbrParams, IdWalletsStartGovukWalletParams, IdWalletsStartIdcardEeParams, IdWalletsStartIdinParams, IdWalletsStartItsmeParams, IdWalletsStartMitidParams, IdWalletsStartMobileIdParams, IdWalletsStartMojeidParams, IdWalletsStartOneidParams, IdWalletsStartPersonalausweisParams, IdWalletsStartSmartIdParams, IdWalletsStartUaePassParams, IdWalletsStartVippsParams, ImportJobSummary, ImportJobSummaryFaceTemplates, ImportJobSummaryProgress, ImportJobSummaryStartedBy, ImportProvider, ImportProviderCredentialFields, InvestigatorAcceptRunParams, InvestigatorBatchAcceptResponse, InvestigatorBatchAcceptResponseResults, InvestigatorBatchAcceptRunsParams, InvestigatorBlock, InvestigatorDecision, InvestigatorDecisionOriginalOutcome, InvestigatorDecisionOverrides, InvestigatorExportActivityParams, InvestigatorListActivityParams, InvestigatorListActivityResponse, InvestigatorListGuardrailsResponse, InvestigatorListGuardrailsResponseResults, InvestigatorListQueueParams, InvestigatorListQueueResponse, InvestigatorOverrideRunParams, InvestigatorQueueRow, InvestigatorRetrieveDashboardParams, InvestigatorRetrieveDashboardResponse, InvestigatorRetrievePerformanceParams, InvestigatorRetrievePerformanceResponse, InvestigatorRetrieveSummaryParams, InvestigatorRetrieveSummaryResponse, InvestigatorRetrieveTransactionResponse, InvestigatorRunDetail, InvestigatorSettings, InvestigatorSettingsSpendLimit, InvestigatorUpdateSettingsParams, IpAssessRiskParams, KYBKeyPeopleParty, KYBKeyPeoplePartyRoles, KYBKeyPeoplePartyVerificationWorkflowFeatures, KYBRegistryAddress, KYBRegistryIndustry, KYBRegistryOwnership, KYBRegistryOwnershipUnresolved, KYBRegistrySearchResults, KYBRegistrySearchResultsCompanies, KYBRegistrySearchResultsPagination, KYBRegistryShareholding, KnownWebhookEvent, KybListShareholdersParams, KybListShareholdersResponse, KybListShareholdersResponse202, KybListShareholdersResponse202KybRegistry, KybListShareholdersResponse202KybRegistryBeneficialOwners, KybListShareholdersResponse202KybRegistryOfficers, KybListShareholdersResponseKybRegistry, KybListShareholdersResponseKybRegistryBeneficialOwners, KybListShareholdersResponseKybRegistryOfficers, KybListUbosParams, KybListUbosResponse, KybListUbosResponse202, KybListUbosResponse202KybRegistry, KybListUbosResponse202KybRegistryBeneficialOwners, KybListUbosResponse202KybRegistryOfficers, KybListUbosResponseKybRegistry, KybListUbosResponseKybRegistryBeneficialOwners, KybListUbosResponseKybRegistryOfficers, KybRegistrySearchResolvedEvent, KybSearchParams, KybSearchResponse, KybSelectParams, KybSelectResponse, KybSelectResponseKybRegistry, KybSelectResponseKybRegistryBeneficialOwners, KybSelectResponseKybRegistryOfficers, ListsCreateParams, ListsEntriesCreateParams, ListsEntriesCreateParamsMetadata, ListsEntriesListParams, ListsEntriesListResponse, ListsEntriesUploadFaceParams, ListsListParams, ListsListResponse, ListsUpdateParams, ListsUpdateResponse, LogLevel, Logger, LoginResponse, MonitoringEvent, MonitoringEventCreateRequest, MonitoringEventCreateRequestBusiness, MonitoringEventCreateRequestDeviceContext, MonitoringEventCreateRequestDeviceContextNetworkContext, MonitoringEventCreateRequestSession, MonitoringEventCreateRequestSubject, MonitoringEventCreateRequestTransactionContext, MonitoringEventDetail, MonitoringEventDetailIpEnrichment, MonitoringEventDetailSubjectProfile, MonitoringEventIngestResult, MonitoringEventIngestResultRuleMatches, MonitoringEventPage, MonitoringEventRuleRun, MonitoringEventsCreateBatchParams, MonitoringEventsCreateBatchResponse, MonitoringEventsCreateBatchResponseResults, MonitoringEventsCreateBatchResponseResultsRuleMatches, MonitoringEventsCreateParams, MonitoringEventsCreateParamsBusiness, MonitoringEventsCreateParamsDeviceContext, MonitoringEventsCreateParamsDeviceContextNetworkContext, MonitoringEventsCreateParamsSession, MonitoringEventsCreateParamsSubject, MonitoringEventsCreateParamsTransactionContext, MonitoringEventsCreateSdkTokenParams, MonitoringEventsCreateSdkTokenResponse, MonitoringEventsListParams, MonitoringEventsRetrieveEnrichmentMetricsParams, MonitoringEventsRetrieveEnrichmentMetricsResponse, MonitoringEventsRetrieveSubjectTimelineParams, NetworkDetail, NetworkDetailResponse, NetworkGraph, NetworkGraphEdge, NetworkGraphMetrics, NetworkGraphNode, NetworkListCounts, NetworkListCountsFacets, NetworkListCountsFacetsAssignee, NetworkListCountsFacetsAssigneeUsers, NetworkListCountsFacetsLastActivityDays, NetworkListCountsFacetsMinSize, NetworkListCountsFacetsPriority, NetworkListCountsFacetsRiskMin, NetworkListCountsFacetsSignalTypes, NetworkListCountsScopes, NetworkListCountsViews, NetworkListItem, NetworkMap, NetworkMapPoints, NetworkMember, NetworkMemberProvenance, NetworkNodeTag, NetworkNote, NetworkOutcomes, NetworkPatternScore, NetworkRiskDisplay, NetworkSignal, NetworkTag, NetworkTimeline, NetworkTimelineAccount, NetworkTimelineAmount, NetworkTimelineAttempt, NetworkTimelineCaseLinked, NetworkTimelineDeclineReason, NetworkTimelineDevice, NetworkTimelineEvent, NetworkTimelineIP, NetworkTimelineLogin, NetworkTimelineNoteAdded, NetworkTimelinePage, NetworkTimelineRoute, NetworkTimelineRuleHit, NetworkTimelineSourceRef, NetworkTimelineTransaction, NetworkTypedTimelineEvent, NetworksAddTagParams, NetworksListMembersResponse, NetworksListParams, NetworksListResponse, NetworksListResponseKpis, NetworksListSignalsResponse, NetworksNotesCreateParams, NetworksNotesListParams, NetworksNotesListResponse, NetworksRemoveTagParams, NetworksRetrieveGraphParams, NetworksRetrieveTimelineParams, OngoingMonitoringJob, OngoingMonitoringJobEstimate, OngoingMonitoringJobOutcomes, OngoingMonitoringToggleResult, OngoingMonitoringToggleResultVariant1, Organization, OrganizationClaim, OrganizationRole, OrganizationSummary, Page, PageMethods, PageResponse, PaginatedApplicationList, PaginatedOrganizationList, PassiveLivenessCheckParams, PassiveLivenessCheckResponse, PassiveLivenessCheckResponseLiveness, PassiveLivenessCheckResponseLivenessUserImage, PassiveLivenessCheckResponseLivenessUserImageEntities, PassiveLivenessCheckResponseLivenessWarnings, PhoneAssessRiskParams, PhoneCheckCodeParams, PhoneIntelligence, PhoneMatchItem, PhoneRiskResponse, PhoneRiskResponsePhone, PhoneRiskResponsePhoneCarrier, PhoneSendCodeParams, PhoneSendCodeParamsOptions, PhoneSendCodeParamsSignals, PhoneSocialFootprint, PhoneVerificationCheckResponse, PhoneVerificationCheckResponsePhone, PhoneVerificationCheckResponsePhoneCarrier, PhoneVerificationCheckResponsePhoneLifecycle, PhoneVerificationCheckResponsePhoneMatches, PhoneVerificationCheckResponsePhoneWarnings, PhoneVerificationSendResponse, PkcePair, ProofOfAddressVerifyParams, ProofOfAddressVerifyResponse, ProofOfAddressVerifyResponsePoa, ProofOfAddressVerifyResponsePoaExtraFields, ProofOfAddressVerifyResponsePoaPoaParsedAddress, ProofOfAddressVerifyResponsePoaPoaParsedAddressDocumentLocation, ProofOfAddressVerifyResponsePoaWarnings, PublishableKey, PublishableKeyEnvironment, QuestionnaireDetail, QuestionnaireListItem, QuestionnairesCreateParams, QuestionnairesListParams, QuestionnairesListResponse, QuestionnairesUpdateParams, RegisterResponse, RegulatoryReportDetail, RegulatoryReportDetailNarrative, RegulatoryReportDetailValidationErrors, RegulatoryReportList, RegulatoryReportsCreateParams, RegulatoryReportsCreateParamsNarrative, RegulatoryReportsDeleteParams, RegulatoryReportsListParams, RegulatoryReportsRetrieveDownloadUrlParams, RegulatoryReportsRetrieveDownloadUrlResponse, RegulatoryReportsUpdateParams, RegulatoryReportsUpdateParamsNarrative, RegulatoryReportsValidateResponse, RegulatoryReportsValidateResponseErrors, ReportTemplateDetail, ReportTemplatesCreateParams, ReportTemplatesListParams, ReportTemplatesListResponse, ReportTemplatesUpdateParams, RequestOptions, ReviewItem, RiskLifecycleEvent, RiskSignals, RiskWarning, RoutingPublicationCaseRoutingRule, RoutingPublicationFieldEnum, RoutingPublicationOperatorEnum, RoutingPublicationPaginatedPolicyRevisionList, RoutingPublicationPolicyDraft, RoutingPublicationPolicyDraftResponse, RoutingPublicationPolicyRevision, RoutingPublicationRoutingCondition, SandboxSimulateResponse, SessionCustomRole, SessionDataUpdatedEvent, SessionDecision, SessionDecisionBiometricConsent, SessionDecisionContactDetails, SessionDecisionDatabaseValidations, SessionDecisionDatabaseValidationsErrors, SessionDecisionDatabaseValidationsScreenedData, SessionDecisionDatabaseValidationsValidations, SessionDecisionDatabaseValidationsValidationsValidation, SessionDecisionDatabaseValidationsWarnings, SessionDecisionDocumentAiDocuments, SessionDecisionDocumentAiDocumentsItems, SessionDecisionDocumentAiDocumentsItemsFields, SessionDecisionDocumentVerifications, SessionDecisionDocumentVerificationsGroupsValue, SessionDecisionDocumentVerificationsItems, SessionDecisionDocumentVerificationsItemsDocumentMetadata, SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulation, SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulationManipulatedRegions, SessionDecisionEmailVerifications, SessionDecisionEmailVerificationsBreaches, SessionDecisionEmailVerificationsLifecycle, SessionDecisionEmailVerificationsLifecycleDetails, SessionDecisionEmailVerificationsMatches, SessionDecisionEmailVerificationsWarnings, SessionDecisionExpectedDetails, SessionDecisionFaceMatches, SessionDecisionFaceMatchesWarnings, SessionDecisionIdVerifications, SessionDecisionIdVerificationsBackImageQualityScore, SessionDecisionIdVerificationsDocumentLiveness, SessionDecisionIdVerificationsDocumentLivenessPortraitReplace, SessionDecisionIdVerificationsDocumentLivenessPrintedCopy, SessionDecisionIdVerificationsDocumentLivenessScreenReplay, SessionDecisionIdVerificationsDocumentSelfieFaceMatches, SessionDecisionIdVerificationsDocumentSelfieFaceMatchesUserDetails, SessionDecisionIdVerificationsExtraFields, SessionDecisionIdVerificationsFallbackFrom, SessionDecisionIdVerificationsFrontImageQualityScore, SessionDecisionIdVerificationsIdLookup, SessionDecisionIdVerificationsIdLookupComparison, SessionDecisionIdVerificationsMatches, SessionDecisionIdVerificationsMatchesUserDetails, SessionDecisionIdVerificationsMrz, SessionDecisionIdVerificationsParsedAddress, SessionDecisionIdVerificationsParsedAddressDocumentLocation, SessionDecisionIdVerificationsParsedAddressRawResults, SessionDecisionIdVerificationsParsedAddressRawResultsAddressComponents, SessionDecisionIdVerificationsParsedAddressRawResultsGeometry, SessionDecisionIdVerificationsParsedAddressRawResultsGeometryLocation, SessionDecisionIdVerificationsParsedAddressRawResultsGeometryViewport, SessionDecisionIdVerificationsParsedAddressRawResultsGeometryViewportNortheast, SessionDecisionIdVerificationsParsedAddressRawResultsGeometryViewportSouthwest, SessionDecisionIdVerificationsParsedAddressRawResultsNavigationPoints, SessionDecisionIdVerificationsParsedAddressRawResultsNavigationPointsLocation, SessionDecisionIdVerificationsWalletVerification, SessionDecisionIdVerificationsWarnings, SessionDecisionIpAnalyses, SessionDecisionIpAnalysesIdDocument, SessionDecisionIpAnalysesIdDocumentLocation, SessionDecisionIpAnalysesIp, SessionDecisionIpAnalysesIpLocation, SessionDecisionIpAnalysesMatches, SessionDecisionIpAnalysesMatchesDeviceInfo, SessionDecisionIpAnalysesMatchesLocationInfo, SessionDecisionIpAnalysesPoaDocument, SessionDecisionIpAnalysesPoaDocumentLocation, SessionDecisionIpAnalysesWarnings, SessionDecisionKeyPeopleChecks, SessionDecisionKeyPeopleChecksRegistry, SessionDecisionKeyPeopleChecksRegistryBeneficialOwners, SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKycAmlCategories, SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeatures, SessionDecisionKeyPeopleChecksRegistryOfficers, SessionDecisionKeyPeopleChecksRegistryOfficersKycAmlCategories, SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeatures, SessionDecisionKeyPeopleChecksSubmitted, SessionDecisionKeyPeopleChecksSubmittedParties, SessionDecisionKeyPeopleChecksSubmittedPartiesRoles, SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeatures, SessionDecisionKeyPeopleChecksUboKycSummary, SessionDecisionLivenessChecks, SessionDecisionLivenessChecksMatches, SessionDecisionLivenessChecksMatchesUserDetails, SessionDecisionLivenessChecksWarnings, SessionDecisionNfcVerifications, SessionDecisionNfcVerificationsAuthenticity, SessionDecisionNfcVerificationsCertificateSummary, SessionDecisionNfcVerificationsChipData, SessionDecisionNfcVerificationsJpki, SessionDecisionNfcVerificationsJpkiAttributes, SessionDecisionNfcVerificationsJpkiCertificates, SessionDecisionNfcVerificationsWarnings, SessionDecisionPhoneVerifications, SessionDecisionPhoneVerificationsCarrier, SessionDecisionPhoneVerificationsLifecycle, SessionDecisionPhoneVerificationsLifecycleDetails, SessionDecisionPhoneVerificationsMatches, SessionDecisionPhoneVerificationsWarnings, SessionDecisionPoaVerifications, SessionDecisionPoaVerificationsDocumentMetadata, SessionDecisionPoaVerificationsDocumentMetadataOverlayManipulation, SessionDecisionPoaVerificationsDocumentMetadataOverlayManipulationManipulatedRegions, SessionDecisionPoaVerificationsExtraFields, SessionDecisionPoaVerificationsPoaParsedAddress, SessionDecisionPoaVerificationsPoaParsedAddressDocumentLocation, SessionDecisionPoaVerificationsWarnings, SessionDecisionQuestionnaireResponses, SessionDecisionQuestionnaireResponsesSections, SessionDecisionQuestionnaireResponsesSectionsItems, SessionDecisionQuestionnaireResponsesSectionsItemsAnswer, SessionDecisionQuestionnaireResponsesSectionsItemsChoices, SessionDecisionRegistryChecks, SessionDecisionRegistryChecksCompany, SessionDecisionRegistryChecksCompanyBeneficialOwners, SessionDecisionRegistryChecksCompanyOfficers, SessionDecisionResubmissions, SessionDecisionResubmissionsNodes, SessionDecisionResubmissionsRequestedBy, SessionDecisionReviews, SessionDeletionJob, SessionDeletionJobOutcomes, SessionEvent, SessionImportError, SessionImportJob, SessionOrganization, SessionSignDocument, SessionStatusUpdatedEvent, SessionWebhookDelivery, SessionsAddImagesParams, SessionsAddImagesResponse, SessionsBatchDeleteParams, SessionsBatchDeleteResponse, SessionsBatchDeleteResponseResults, SessionsBulkUpdateAmlHitStatusParams, SessionsBulkUpdateAmlHitStatusParamsHitUpdates, SessionsBulkUpdateAmlHitStatusResponse, SessionsCreateParams, SessionsCreateParamsBiometricConsent, SessionsCreateParamsContactDetails, SessionsCreateParamsExpectedDetails, SessionsCreateParamsSign, SessionsCreateResponse, SessionsDeleteParams, SessionsDeleteResponse, SessionsExportAmlScreeningHistoryParams, SessionsImportSharedParams, SessionsImportsCheckProviderParams, SessionsImportsCheckProviderParamsOptions, SessionsImportsCheckProviderResponse, SessionsImportsCreateParams, SessionsImportsCreateParamsOptions, SessionsImportsListActiveJobsResponse, SessionsImportsListErrorsParams, SessionsImportsListErrorsResponse, SessionsImportsListJobsParams, SessionsImportsListJobsResponse, SessionsImportsListJobsResponseCounts, SessionsImportsListProvidersResponse, SessionsImportsRetrieveTemplateParams, SessionsImportsRetryParams, SessionsImportsStartParams, SessionsListAmlScreeningHistoryParams, SessionsListAmlScreeningHistoryResponse, SessionsListEventsParams, SessionsListEventsResponse, SessionsListFeatureOverridesResponse, SessionsListParams, SessionsListResponse, SessionsPreviewDecisionEmailParams, SessionsPreviewDecisionEmailResponse, SessionsPreviewResubmissionParams, SessionsPreviewResubmissionParamsNodesToResubmit, SessionsPreviewResubmissionResponse, SessionsPreviewResubmissionResponseNodesToResubmit, SessionsRetrieveDecisionParams, SessionsReviewsCreateParams, SessionsReviewsCreateResponse, SessionsReviewsListParams, SessionsReviewsListResponse, SessionsShareParams, SessionsShareResponse, SessionsSignaturesDownloadEvidenceParams, SessionsSignaturesValidateParams, SessionsSignaturesValidateResponse, SessionsSimulateParams, SessionsUpdateAmlHitStatusParams, SessionsUpdateAmlHitStatusResponse, SessionsUpdateAmlStatusParams, SessionsUpdateAmlStatusResponse, SessionsUpdateDataParams, SessionsUpdateDataParamsParsedAddress, SessionsUpdateDataResponse, SessionsUpdateDataResponseParsedAddress, SessionsUpdateDocumentAiDataParams, SessionsUpdateDocumentAiDataResponse, SessionsUpdateFeatureStatusParams, SessionsUpdateFeatureStatusResponse, SessionsUpdateKybCompanyDataParams, SessionsUpdateKybCompanyDataResponse, SessionsUpdateKybPartyParams, SessionsUpdateKybPartyResponse, SessionsUpdatePoaDataParams, SessionsUpdatePoaDataParamsPoaParsedAddress, SessionsUpdatePoaDataResponse, SessionsUpdatePoaDataResponsePoaParsedAddress, SessionsUpdateStatusParams, SessionsUpdateStatusParamsNodesToResubmit, SessionsUpdateStatusResponse, SignatureField, SignatureFieldAnchor, SignatureFieldResult, SignatureFieldValidation, SignatureResult, SignatureResultAdoptedSignature, SignatureResultCertificate, SignatureResultConfirmation, SignatureResultDocuments, SignatureResultDocumentsConversion, SignatureResultIdentityUsed, SignatureResultSigner, SignatureResultTimestamp, SignatureResultValidation, SignatureResultValidationDocuments, SignatureResultValidationDocumentsCertificate, SignatureResultValidationDocumentsTimestamp, SignatureResultValidationDocumentsTrustedList, SignatureResultWarnings, SimpleQuestionnaireElement, SimpleQuestionnaireElementOptions, SimpleQuestionnaireElementValidation, SimpleWorkflowFeature, SocialFootprintCategorySummary, SocialFootprintPlatform, SocialFootprintProfile, StepUp, StepUpAction, StepUpMethod, StepUpNotRequired, StepUpRule, StepUpStatus, TokenClaims, TokenResponse, TokenVerificationReason, TransactionCreatedEvent, TransactionDetail, TransactionDetailActivities, TransactionDetailAlerts, TransactionDetailDocuments, TransactionDetailDocumentsFiles, TransactionDetailNetworkSnapshot, TransactionDetailParties, TransactionDetailPartiesDevice, TransactionDetailPartiesDeviceNetworkContext, TransactionDetailPaymentMethods, TransactionDetailProviderResults, TransactionDetailRemediation, TransactionDetailRuleRuns, TransactionDetailTags, TransactionNote, TransactionNoteMetadata, TransactionRuleAction, TransactionRuleActionAddNote, TransactionRuleActionAddScore, TransactionRuleActionAddTags, TransactionRuleActionAddToList, TransactionRuleActionChangeStatus, TransactionRuleActionOpenCase, TransactionRuleAggregation, TransactionRuleBacktestResult, TransactionRuleCondition, TransactionRuleDetail, TransactionRuleInstallResult, TransactionRuleLibraryEntry, TransactionRuleScope, TransactionStatusUpdatedEvent, TransactionSummary, TransactionSummaryTags, TransactionTravelRule, TransactionTravelRuleCounterpartyVasp, TransactionTravelRuleCounterpartyVaspDdScoreBreakdownValue, TransactionVerificationSessionAction, TransactionWalletOwnershipAction, TransactionsBatchDeleteParamsAllTransactions, TransactionsBatchDeleteParamsSelectedTransactions, TransactionsCreateParams, TransactionsCreateParamsCounterparty, TransactionsCreateParamsCounterpartyDeviceContext, TransactionsCreateParamsCounterpartyDeviceContextNetworkContext, TransactionsCreateParamsCounterpartyPaymentMethod, TransactionsCreateParamsNetworkSnapshot, TransactionsCreateParamsSubject, TransactionsCreateParamsSubjectAddress, TransactionsCreateParamsSubjectDeviceContext, TransactionsCreateParamsSubjectDeviceContextNetworkContext, TransactionsCreateParamsSubjectInstitutionDetails, TransactionsCreateParamsSubjectPaymentMethod, TransactionsCreateParamsTransactionDetails, TransactionsCreateParamsTransactionDetailsCryptoParams, TransactionsCreateParamsTravelRuleDetails, TransactionsCreateSdkTokenParams, TransactionsCreateSdkTokenResponse, TransactionsListParams, TransactionsListRelatedParams, TransactionsListRelatedResponse, TransactionsListResponse, TransactionsListResponseResults, TransactionsListResponseResultsTags, TransactionsNotesCreateParams, TransactionsNotesListParams, TransactionsNotesListResponse, TransactionsRulesBacktestParams, TransactionsRulesCreateParams, TransactionsRulesInstallLibraryParams, TransactionsRulesListLibraryParams, TransactionsRulesListLibraryResponse, TransactionsRulesListParams, TransactionsRulesListResponse, TransactionsRulesUninstallLibraryParams, TransactionsRulesUpdateParams, TransactionsTravelRuleConfirmOwnershipParams, TransactionsTravelRuleCreateMessageParams, TransactionsTravelRuleTriggerTestVaspInboundParams, TransactionsTravelRuleUpdateTransferParams, TravelRuleChainDetails, TravelRuleChainDetailsUtxo, TravelRuleChainSide, TravelRuleCounterpartyContact, TravelRuleCounterpartyContactsCreateParams, TravelRuleCounterpartyContactsListParams, TravelRuleCounterpartyContactsListResponse, TravelRuleCounterpartyDecision, TravelRuleCounterpartyDecisionInheritedFrom, TravelRuleCounterpartyDecisionResponse, TravelRuleCounterpartyQuestionnaire, TravelRuleCounterpartyQuestionnaireList, TravelRuleCounterpartyScreening, TravelRuleCounterpartyScreeningResult, TravelRuleCounterpartyScreeningStatus, TravelRuleCreateWidgetSessionParams, TravelRuleDataMatch, TravelRuleDataMatchFieldsValue, TravelRuleDataSharingFields, TravelRuleDataUnmasked, TravelRuleDelivery, TravelRuleDiscoveryStep, TravelRuleInboundResponse, TravelRuleListVaspsParams, TravelRuleListVaspsResponse, TravelRuleMatchingRules, TravelRuleMatchingRulesCompany, TravelRuleMatchingRulesIndividual, TravelRuleMessage, TravelRuleMessageAttachment, TravelRuleMessageAttachmentFiles, TravelRuleNameMatch, TravelRuleNetworkParticipant, TravelRuleNetworkParticipantHistory, TravelRuleNetworkParticipantSummary, TravelRuleNetworkQuestionnaire, TravelRuleNetworkQuestionnaireAnswers, TravelRuleNetworkQuestionnaireAnswersLicences, TravelRuleNetworkQuestionnaireHistory, TravelRuleNetworkState, TravelRuleNetworksOverview, TravelRuleNetworksOverviewNetworks, TravelRuleNetworksUpdateQuestionnaireParams, TravelRuleNetworksUpdateQuestionnaireParamsLicences, TravelRuleNextAction, TravelRuleRegisterInboundParams, TravelRuleRegisterInboundParamsOriginatingVasp, TravelRuleScreenVaspParams, TravelRuleSendComplianceEmailConfirmationResponse, TravelRuleSendVaspQuestionnaireParams, TravelRuleSettingsDetail, TravelRuleSettingsDetailDiditNetwork, TravelRuleSettingsDetailNetworks, TravelRuleStatusUpdatedEvent, TravelRuleTestVaspInboundResponse, TravelRuleTransferDetail, TravelRuleTransferDetailCounterpartyVasp, TravelRuleTransferDetailCounterpartyVaspDdScoreBreakdownValue, TravelRuleTransferDetailTimeline, TravelRuleTransferRow, TravelRuleTransfersListParams, TravelRuleTransfersListResponse, TravelRuleUpdateSettingsParams, TravelRuleUpdateVaspDecisionParams, TravelRuleUtxo, TravelRuleUtxoEntry, TravelRuleWalletAddressesBulkImportParams, TravelRuleWalletAddressesCreateParams, TravelRuleWalletAddressesListParams, TravelRuleWalletAddressesListResponse, TravelRuleWalletAddressesUpdateParams, TravelRuleWalletProofFailureReason, TravelRuleWalletProofReview, TravelRuleWalletProofsDecideParams, TravelRuleWalletProofsListParams, TravelRuleWalletProofsListResponse, TravelRuleWidgetSessionResponse, TravelRuleWorkspace, TravelRuleWorkspaceClaim, TravelRuleWorkspaceClaimParams, TravelRuleWorkspaceConfirmDomainParams, TravelRuleWorkspaceDomain, TravelRuleWorkspaceDomainCodeResponse, TravelRuleWorkspaceEnableBillingParams, TravelRuleWorkspaceTxtRecord, UnknownEvent, Uploadable, UserDataUpdatedEvent, UserDetailItem, UserDetailItemComments, UserDetailItemFeaturesList, UserDetailItemTags, UserDetailItemTagsTag, UserListItem, UserListItemFeaturesList, UserListItemTags, UserSessionListItem, UserSessionListItemAdditionalDetails, UserSessionListItemAdditionalDetailsAml, UserSessionListItemAdditionalDetailsAmlScreenedData, UserSessionListItemAdditionalDetailsDatabaseValidation, UserSessionListItemAdditionalDetailsEmailVerification, UserSessionListItemAdditionalDetailsFaceMatch, UserSessionListItemAdditionalDetailsLiveness, UserSessionListItemAdditionalDetailsPhoneVerification, UserSessionListItemAdditionalDetailsPoa, UserSessionListItemEmailAddress, UserSessionListItemFeatures, UserSessionListItemPhoneNumber, UserStatusUpdatedEvent, UsersBatchDeleteParams, UsersBatchDeleteResponse, UsersCreateParams, UsersCreateResponse, UsersCreateResponseComments, UsersCreateResponseFeaturesList, UsersCreateResponseTags, UsersCreateResponseTagsTag, UsersCreateResponseVerificationLink, UsersListParams, UsersListResponse, UsersSetAmlMonitoringParams, UsersSetOngoingMonitoringParams, UsersUpdateParams, UsersUpdateStatusParams, UsersUploadFaceParams, UsersUploadFaceResponse, VaspDirectoryEntry, VaspDirectoryEntryAliases, VaspDirectoryEntryContacts, VaspDirectoryEntryDdScoreBreakdownValue, VaspDirectoryEntryEntities, VaspDirectoryEntryEssentialChecks, VaspDirectoryEntryEssentialChecksChecks, VaspDirectoryEntryNetworks, VaspDirectoryEntryResponsiveness, VaspDirectoryEntryRoutes, VaspDirectoryEntryUmbrella, VerificationLevel, VerifiedClaims, VerifyAccessTokenOptions, VerifyEmailResponse, VerifyIdTokenOptions, VerifyWebhookOptions, VerifyWebhookParsedOptions, WalletAddressEntry, WalletAddressEntryUpdate, WalletAddressImportReport, WalletAddressImportReportRows, WalletScreeningResult, WalletScreeningResultCounterpartyConnections, WalletScreeningResultDestinationOfFunds, WalletScreeningResultRiskFactors, WalletScreeningResultSourceOfFunds, WalletScreeningScreenParams, WebhookConfig, WebhookConfigAvailableEvents, WebhookConfigDestination, WebhookDestinationDelivery, WebhookDestinationDeliveryDetail, WebhookEnvironment, WebhookEvent, WebhookEventBase, WebhookEventType, WebhookHeaders, WebhookSecret, WebhookSubscribedEvents, WebhookVerificationReason, WebhookVerifiedBy, WebhooksDestinationsCreateParams, WebhooksDestinationsCreateResponse, WebhooksDestinationsCreateResponseSummary, WebhooksDestinationsListDeliveriesParams, WebhooksDestinationsListDeliveriesResponse, WebhooksDestinationsListResponse, WebhooksDestinationsListResponseDailyPoints, WebhooksDestinationsRetrieveAnalyticsParams, WebhooksDestinationsRetrieveAnalyticsResponse, WebhooksDestinationsRetrieveAnalyticsResponsePoints, WebhooksDestinationsRetrieveAnalyticsResponseSummary, WebhooksDestinationsRetrieveResponse, WebhooksDestinationsRetrieveResponseSummary, WebhooksDestinationsUpdateParams, WebhooksDestinationsUpdateResponse, WebhooksDestinationsUpdateResponseSummary, WebhooksUpdateConfigParams, WithResponse, WorkflowComplianceChangedEvent, WorkflowDetail, WorkflowListItem, WorkflowListItemCreatedBy, WorkflowsCreateParams, WorkflowsListParams, WorkflowsListResponse, WorkflowsUpdateParams };
23755
+ export { APIConnectionError, APIPromise, APIResponseValidationError, APIStatusError, APITimeoutError, Account, AccountApplications, AccountOrganizations, AddressValidation, AgeEstimation, Aml, AmlMonitoring, Analytics, Authentication, AuthenticationError, BadRequestError, Bank, Billing, BiometricTemplates, Blocklist, BusinessSessions, Businesses, Cases, CasesBlueprints, CasesChecklist, CasesLinks, CasesNotes, CasesRegulatoryReports, CasesRequests, CasesRoutingRules, CasesTeams, ConfigurationError, ConflictError, Customization, DEFAULT_ACCOUNT_BASE_URL, DEFAULT_BASE_URL, DEFAULT_MAX_RETRIES, DEFAULT_TIMEOUT, DEFAULT_WEBHOOK_TOLERANCE, DatabaseValidation, Didit, DiditError, DiditResources, DocumentAi, Email, FaceMatch, FaceSearch, FraudChecks, IdVerification, IdWallets, InternalServerError, Investigator, Ip, Kyb, Lists, ListsEntries, MonitoringEvents, Networks, NetworksNotes, NotFoundError, PagePromise, PassiveLiveness, PermissionDeniedError, Phone, Pricing, ProofOfAddress, Questionnaires, RateLimitError, RegulatoryReports, ReportTemplates, Sessions, SessionsImports, SessionsReviews, SessionsSignatures, SessionsWebhooks, TokenVerificationError, Transactions, TransactionsNotes, TransactionsRules, TransactionsTravelRule, TravelRule, TravelRuleCounterpartyContacts, TravelRuleNetworks, TravelRuleTransfers, TravelRuleUnmatchedDeposits, TravelRuleWalletAddresses, TravelRuleWalletProofs, TravelRuleWorkspaceResource, UnprocessableEntityError, Users, VERSION, WalletScreening, WebhookVerificationError, Webhooks, WebhooksDestinations, Workflows, canonicalJson, createNonce, createPkce, createState, Didit as default, fileFromPath, parsePublishableKey, toFile, verifyWebhook, verifyWebhookParsed, webhooks };
23756
+ export type { AMLDatasetFreshness, AMLDatasetFreshnessSources, AMLDatasetSourceFreshness, AMLMonitoringJob, AMLMonitoringJobEstimate, AMLMonitoringJobOutcomes, AMLMonitoringJobResults, AMLMonitoringToggleResult, AMLMonitoringToggleResultVariant1, AMLMonitoringToggleResultVariant2, AMLMonitoringToggleResultVariant2Estimate, AMLMonitoringToggleResultVariant2Outcomes, AMLMonitoringToggleResultVariant2Results, AMLScreening, AMLScreeningHits, AMLScreeningHitsAdverseMediaDetails, AMLScreeningHitsAdverseMediaMatches, AMLScreeningHitsLinkedEntities, AMLScreeningHitsPepMatches, AMLScreeningHitsProperties, AMLScreeningHitsRiskView, AMLScreeningHitsRiskViewCategories, AMLScreeningHitsRiskViewCountries, AMLScreeningHitsRiskViewCrimes, AMLScreeningHitsSanctionMatches, AMLScreeningHitsScoreBreakdown, AMLScreeningHitsWarningMatches, AMLScreeningHitsWarningMatchesAdditionalData, AMLScreeningHitsWarningMatchesAdditionalDataData, AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetails, AMLScreeningRun, AMLScreeningScreenedData, AMLScreeningWarnings, AccessTokenClaims, AccountApplicationsCreateParams, AccountApplicationsListParams, AccountApplicationsUpdateParams, AccountLoginParams, AccountOrganizationsListParams, AccountRegisterParams, AccountResendOtpParams, AccountResendOtpResponse, AccountVerifyEmailParams, ActivityCreatedEvent, ActorClaim, AddressValidationResponse, AddressValidationResult, AddressValidationResultAddress, AddressValidationValidateParams, AgeEstimationEstimateParams, AgeEstimationEstimateResponse, AgeEstimationEstimateResponseAgeEstimation, AgeEstimationEstimateResponseAgeEstimationUserImage, AgeEstimationEstimateResponseAgeEstimationUserImageEntities, AgeEstimationEstimateResponseAgeEstimationWarnings, AmlMonitoringRetrieveJobResponse, AmlMonitoringRetrieveJobResponseOutcomes, AmlMonitoringRetrieveJobResponseResults, AmlRetrieveDatasetFreshnessResponse, AmlScreenParams, AmlScreenResponse, AmlScreenResponseAml, AmlScreenResponseAmlHits, AmlScreenResponseAmlHitsAdverseMediaMatches, AmlScreenResponseAmlHitsLinkedEntities, AmlScreenResponseAmlHitsPepMatches, AmlScreenResponseAmlHitsScoreBreakdown, AmlScreenResponseAmlScreenedData, AmlScreenResponseAmlWarnings, Amount, AnalyticsRetrieveParams, AnalyticsRetrieveTodayParams, Application, ApplicationAnalyticsCountryCount, ApplicationAnalyticsDataPoint, ApplicationAnalyticsDemographicPoint, ApplicationAnalyticsDemographicStats, ApplicationAnalyticsDemographicStatsAgeDistribution, ApplicationAnalyticsDeviceDetails, ApplicationAnalyticsDeviceDetailsBrowsers, ApplicationAnalyticsDeviceDetailsDeviceModels, ApplicationAnalyticsDeviceDetailsOperatingSystems, ApplicationAnalyticsDevicePoint, ApplicationAnalyticsLocationStats, ApplicationAnalyticsLocationStatsCities, ApplicationAnalyticsLocationStatsConversionByCountry, ApplicationAnalyticsOriginalStatusPoint, ApplicationAnalyticsOriginalStatusStats, ApplicationAnalyticsRequestBreakdown, ApplicationAnalyticsResubmissionPoint, ApplicationAnalyticsResubmissionStats, ApplicationAnalyticsSummary, ApplicationAnalyticsToday, ApplicationAnalyticsTodayOutcomes, ApplicationAnalyticsVerificationTimePoint, ApplicationAnalyticsVerificationTimeStats, ApplicationAnalyticsVerificationTimeStatsPerFeatureValue, ApplicationAnalyticsVerificationTimeStatsPerSubStepValueValue, ApplicationAnalyticsWarningStats, ApplicationAnalyticsWarningStatsValue, ApplicationAnalyticsWarningStatsValueRisksValue, ApplicationAnalyticsWidget, ApplicationAnalyticsWidgetResponse, ApplicationAnalyticsWidgetSearch, ApplicationAnalyticsWidgetThresholds, ApplicationAnalyticsWorkflowFunnel, ApplicationAnalyticsWorkflowFunnelValue, ApplicationAnalyticsWorkflowFunnelValueStepsValue, ApplicationCredentialsSummary, ApplicationDataLocation, ApplicationProduct, Audience, AuthenticationOptions, AuthenticationSession, BankAccountCheckBusinessHolder, BankAccountCheckHolder, BankAccountCheckParams, BankAccountCheckParamsAccount, BankAccountCheckPersonHolder, BankAccountCheckPricing, BankAccountCheckResponse, BankSignInPricing, BankSignInPricingAddOns, BankStatementUploadPricing, BankVerificationPricing, BankVerificationPricingCountry, BankVerificationPricingMethods, BankVerificationResult, BankVerificationResultAccount, BankVerificationResultBilling, BankVerificationResultConnection, BankVerificationResultContinuation, BankVerificationResultFinancialData, BankVerificationResultOwnership, BankVerificationResultRoute, BillingRetrieveBalanceResponse, BillingTopUpParams, BillingTopUpResponse, BiometricRetention, BiometricTemplatesBatchDeleteParams, BiometricTemplatesBatchDeleteResponse, BiometricTemplatesBatchDeleteResponseResults, BiometricTemplatesCountParams, BiometricTemplatesCountResponse, BiometricTemplatesDeleteResponse, BiometricTemplatesListParams, BiometricTemplatesListResponse, BiometricTemplatesListResponseResults, BiometricTemplatesRetrieveResponse, BlocklistAddParams, BlocklistAddResponse, BlocklistListParams, BlocklistListResponse, BlocklistRemoveParams, BlocklistRemoveResponse, BlocklistedItem, BrandingCustomization, BusinessDataUpdatedEvent, BusinessDetailItem, BusinessDetailItemFeaturesList, BusinessDetailItemTags, BusinessListItem, BusinessListItemFeaturesList, BusinessListItemTags, BusinessSessionListItem, BusinessStatusUpdatedEvent, BusinessesBatchDeleteParams, BusinessesBatchDeleteResponse, BusinessesCreateParams, BusinessesListParams, BusinessesListResponse, BusinessesSetAmlMonitoringParams, BusinessesSetOngoingMonitoringParams, BusinessesSetSessionOngoingMonitoringParams, BusinessesUpdateParams, BusinessesUpdateStatusParams, CaseActionActionEnum, CaseActionCaseActionReceipt, CaseActionCaseActionReceiptPage, CaseActionCaseEntityActionResult, CaseActionEntityTypeEnum, CaseActionStatusEnum, CaseAssignee, CaseBlueprintDetail, CaseBlueprintDetailContentConfig, CaseBlueprintDetailContentConfigAmlControl, CaseBlueprintDetailContentConfigChecklist, CaseBlueprintDetailContentConfigChecklistItems, CaseBlueprintDetailContentConfigFinancial, CaseBlueprintDetailContentConfigIdentity, CaseBlueprintDetailContentConfigReporting, CaseBlueprintDetailContentConfigVerifications, CaseBlueprintDetailCreationSources, CaseBlueprintDetailReceivesEscalationFrom, CaseBlueprintListItem, CaseBlueprintPresetInstallResult, CaseBlueprintSummary, CaseBulkUpdateResult, CaseBulkUpdateResultFailures, CaseChecker, CaseChecklistItem, CaseCollaborationCaseNote, CaseCollaborationCaseNoteReply, CaseCollaborationPaginatedCaseNoteList, CaseContentConfig, CaseContentConfigAmlControl, CaseContentConfigChecklist, CaseContentConfigChecklistItems, CaseContentConfigFinancial, CaseContentConfigIdentity, CaseContentConfigReporting, CaseContentConfigVerifications, CaseDetail, CaseDetailPendingResolution, CaseDuplicateCaseDuplicate, CaseDuplicateCaseDuplicatePage, CaseDuplicateCaseFraudSourceContextRequest, CaseDuplicateCaseLinkCreateRequest, CaseDuplicateCaseSubjectInputRequest, CaseDuplicateEntityTypeEnum, CaseDuplicatePriorityEnum, CaseDuplicateStatusEnum, CaseDuplicateTypeEnum, CaseEvent, CaseLink, CaseListItem, CaseListItemPendingResolution, CaseNote, CaseNoteAttachments, CasePublicationAssignmentMethodEnum, CasePublicationCaseBlueprint, CasePublicationPaginatedPolicyRevisionList, CasePublicationPolicyDraft, CasePublicationPolicyDraftResponse, CasePublicationPolicyRevision, CaseReviewTeam, CaseReviewTeamMember, CaseReviewTeamMemberParam, CaseRoutingCondition, CaseRoutingPreview, CaseRoutingPreviewCandidates, CaseRoutingPreviewMatchedRules, CaseRoutingRule, CaseRoutingRuleCreate, CaseSubject, CaseTeamSummary, CasesApplyEntityActionParams, CasesAssignParams, CasesBlueprintsCreateParams, CasesBlueprintsDiscardDraftParams, CasesBlueprintsInstallPresetsParams, CasesBlueprintsListHistoryParams, CasesBlueprintsListParams, CasesBlueprintsListPresetsResponse, CasesBlueprintsListPresetsResponseResults, CasesBlueprintsListResponse, CasesBlueprintsPublishParams, CasesBlueprintsSaveDraftParams, CasesBlueprintsUpdateParams, CasesBulkAssignParams, CasesBulkUpdateStatusParams, CasesChecklistToggleItemParams, CasesCreateParams, CasesCreateParamsSubject, CasesFindDuplicatesParams, CasesLinksCreateParams, CasesListActionReceiptsParams, CasesListEventsParams, CasesListEventsResponse, CasesListParams, CasesListResponse, CasesListReviewersResponse, CasesListReviewersResponseResults, CasesNotesCreateAttachmentUploadParams, CasesNotesCreateAttachmentUploadResponse, CasesNotesCreateParams, CasesNotesListParams, CasesNotesRetrieveAttachmentUrlParams, CasesNotesRetrieveAttachmentUrlResponse, CasesNotesUpdateParams, CasesPrintResponse, CasesRegulatoryReportsCreateParams, CasesRegulatoryReportsCreateParamsNarrative, CasesRegulatoryReportsListParams, CasesRejectResolutionParams, CasesRequestsCreateParams, CasesRequestsListParams, CasesRequestsPreviewParams, CasesRequestsRemindResponse, CasesResolveParams, CasesRetrieveStatisticsParams, CasesRetrieveStatisticsResponse, CasesRetrieveStatisticsResponseQueue, CasesRetrieveStatisticsResponseSeries, CasesRetrieveStatisticsResponseTables, CasesRetrieveStatisticsResponseTablesBlueprint, CasesRetrieveStatisticsResponseTablesOfficer, CasesRetrieveStatisticsResponseTablesSource, CasesRetrieveStatisticsResponseTablesStatus, CasesRetrieveStatisticsResponseTotals, CasesRoutingRulesCreateParams, CasesRoutingRulesDiscardDraftParams, CasesRoutingRulesListHistoryParams, CasesRoutingRulesListParams, CasesRoutingRulesListResponse, CasesRoutingRulesPreviewParams, CasesRoutingRulesPublishParams, CasesRoutingRulesSaveDraftParams, CasesRoutingRulesUpdateParams, CasesTeamsCreateParams, CasesTeamsListParams, CasesTeamsListResponse, CasesTeamsUpdateParams, CasesTransferParams, CasesUpdateParams, ClientOptions, ComplianceList, ComplianceListEntry, ComplianceListEntryMetadata, CreateStepUpParams, CustomerMessagingCaseRequest, CustomerMessagingCaseRequestContact, CustomerMessagingCaseRequestOptions, CustomerMessagingCaseRequestPreviewResponse, CustomerMessagingLanguageEnum, CustomerMessagingLanguagesEnum, CustomerMessagingPaginatedCaseRequestList, CustomerMessagingPurposeEnum, CustomerMessagingPurposesEnum, CustomizationUpdateParams, DatabaseValidationValidateParams, DatabaseValidationValidateParamsAddressVariant1, DatabaseValidationValidateResponse, DatabaseValidationValidateResponseDatabaseValidation, DatabaseValidationValidateResponseDatabaseValidationErrors, DatabaseValidationValidateResponseDatabaseValidationValidationsVariant1, DatabaseValidationValidateResponseDatabaseValidationWarnings, DigitalIdWalletApiAudkenniWalletVerificationStartCountryEnum, DigitalIdWalletApiConnectidWalletVerificationStartCountryEnum, DigitalIdWalletApiCountry520Enum, DigitalIdWalletApiCountryAfcEnum, DigitalIdWalletApiCountryE2dEnum, DigitalIdWalletApiCountryEe9Enum, DigitalIdWalletApiDeviceEnum, DigitalIdWalletApiDiiaWalletVerificationStartCountryEnum, DigitalIdWalletApiEparakstsMobileWalletVerificationStartCountryEnum, DigitalIdWalletApiEudiWalletVerificationStartCountryEnum, DigitalIdWalletApiFranceconnectWalletVerificationStartCountryEnum, DigitalIdWalletApiFtnWalletVerificationStartCountryEnum, DigitalIdWalletApiGoogleWalletWalletVerificationStartCountryEnum, DigitalIdWalletApiGovbrWalletVerificationStartCountryEnum, DigitalIdWalletApiIdcardEeWalletVerificationStartCountryEnum, DigitalIdWalletApiIdinWalletVerificationStartCountryEnum, DigitalIdWalletApiInteractionEnum, DigitalIdWalletApiItsmeWalletVerificationStartCountryEnum, DigitalIdWalletApiMitidWalletVerificationStartCountryEnum, DigitalIdWalletApiMobileIdWalletVerificationStartCountryEnum, DigitalIdWalletApiPersonalausweisWalletVerificationStartCountryEnum, DigitalIdWalletApiSmartIdWalletVerificationStartCountryEnum, DigitalIdWalletApiUaePassWalletVerificationStartCountryEnum, DigitalIdWalletApiWallet, DigitalIdWalletApiWalletCatalogEntry, DigitalIdWalletApiWalletCatalogResponse, DigitalIdWalletApiWalletDigitalCredentialsRequest, DigitalIdWalletApiWalletIdentity, DigitalIdWalletApiWalletNextAction, DigitalIdWalletApiWalletNextActionTypeEnum, DigitalIdWalletApiWalletVerificationResponse, DigitalIdWalletApiWalletVerificationResult, DigitalIdWalletApiWalletVerificationResultOutcomeEnum, DocumentAIDetectedCode, DocumentAiAnalyzeParams, DocumentAiAnalyzeResponse, DocumentAiAnalyzeResponseDocumentAi, DocumentAiAnalyzeResponseDocumentAiFields, DocumentAiAnalyzeResponseDocumentAiWarnings, EmailAssessRiskParams, EmailCheckCodeParams, EmailIntelligence, EmailIntelligenceReasonCodes, EmailMatchItem, EmailRiskResponse, EmailRiskResponseEmail, EmailRiskResponseEmailBreaches, EmailSendCodeParams, EmailSendCodeParamsOptions, EmailSendCodeParamsSignals, EmailSocialFootprint, EmailVerificationCheckResponse, EmailVerificationCheckResponseEmail, EmailVerificationCheckResponseEmailBreaches, EmailVerificationCheckResponseEmailLifecycle, EmailVerificationCheckResponseEmailMatches, EmailVerificationCheckResponseEmailWarnings, EmailVerificationSendResponse, EntityNetworkMembership, EntityNetworkMembershipList, ExchangeCodeParams, FaceMatchCompareParams, FaceMatchCompareResponse, FaceMatchCompareResponseFaceMatch, FaceMatchCompareResponseFaceMatchRefImage, FaceMatchCompareResponseFaceMatchRefImageEntities, FaceMatchCompareResponseFaceMatchUserImage, FaceMatchCompareResponseFaceMatchUserImageEntities, FaceMatchCompareResponseFaceMatchWarnings, FaceSearchSearchParams, FaceSearchSearchResponse, FaceSearchSearchResponseFaceSearch, FaceSearchSearchResponseFaceSearchMatches, FaceSearchSearchResponseFaceSearchMatchesUserDetails, FaceSearchSearchResponseFaceSearchUserImage, FaceSearchSearchResponseFaceSearchUserImageEntities, FaceSearchSearchResponseFaceSearchWarnings, FeatureStatusOverride, FeatureStatusOverrideRequestedBy, Fetch, FileData, FileUpload, FraudAvailabilityEnum, FraudBandEnum, FraudCheckAttributesRequest, FraudCheckContextRequest, FraudCheckIdentifierRequest, FraudCheckIdentityRelationship, FraudCheckInput, FraudCheckModuleReport, FraudCheckModuleSelectionRequest, FraudCheckPlan, FraudCheckPlannedModule, FraudCheckResponse, FraudCheckRisk, FraudCheckSubjectRequest, FraudChecksCreateParams, FraudChecksPlanParams, FraudDimensionEnum, FraudExcludeEnum, FraudNextActionEnum, FraudProcessingStatusEnum, FraudRecommendationEnum, FraudResultEnum, FraudStatusEnum, FraudTypeEnum, GeolocationAttempt, GeolocationAttemptAnonymizers, GeolocationAttemptConsent, GeolocationAttemptGeofence, GeolocationCheck, GeolocationCheckAnonymizers, GeolocationCheckConsent, GeolocationCheckGeofence, GeolocationCheckWarnings, IPRiskResponse, IPRiskResponseIp, IdTokenClaims, IdVerificationVerifyParams, IdVerificationVerifyResponse, IdVerificationVerifyResponseIdVerification, IdVerificationVerifyResponseIdVerificationBackImageQualityScore, IdVerificationVerifyResponseIdVerificationBarcodes, IdVerificationVerifyResponseIdVerificationFrontImageQualityScore, IdVerificationVerifyResponseIdVerificationMrz, IdVerificationVerifyResponseIdVerificationParsedAddress, IdVerificationVerifyResponseIdVerificationParsedAddressDocumentLocation, IdVerificationVerifyResponseIdVerificationWarnings, IdWalletsStartAudkenniParams, IdWalletsStartBankidCzParams, IdWalletsStartBankidNoParams, IdWalletsStartBankidSeParams, IdWalletsStartBuypassParams, IdWalletsStartConnectidParams, IdWalletsStartDiiaParams, IdWalletsStartEparakstsMobileParams, IdWalletsStartEudiParams, IdWalletsStartFranceconnectParams, IdWalletsStartFrejaidParams, IdWalletsStartFtnParams, IdWalletsStartGoogleWalletParams, IdWalletsStartGovbrParams, IdWalletsStartGovukWalletParams, IdWalletsStartIdcardEeParams, IdWalletsStartIdinParams, IdWalletsStartItsmeParams, IdWalletsStartMitidParams, IdWalletsStartMobileIdParams, IdWalletsStartMojeidParams, IdWalletsStartOneidParams, IdWalletsStartPersonalausweisParams, IdWalletsStartSmartIdParams, IdWalletsStartUaePassParams, IdWalletsStartVippsParams, IdWalletsSubmitVerificationResponseParams, ImportJobSummary, ImportJobSummaryFaceTemplates, ImportJobSummaryProgress, ImportJobSummaryStartedBy, ImportProvider, ImportProviderCredentialFields, InvestigatorAcceptRunParams, InvestigatorBatchAcceptResponse, InvestigatorBatchAcceptResponseResults, InvestigatorBatchAcceptRunsParams, InvestigatorBlock, InvestigatorDecision, InvestigatorDecisionOriginalOutcome, InvestigatorDecisionOverrides, InvestigatorExportActivityParams, InvestigatorListActivityParams, InvestigatorListActivityResponse, InvestigatorListGuardrailsResponse, InvestigatorListGuardrailsResponseResults, InvestigatorListQueueParams, InvestigatorListQueueResponse, InvestigatorOverrideRunParams, InvestigatorQueueRow, InvestigatorRetrieveDashboardParams, InvestigatorRetrieveDashboardResponse, InvestigatorRetrievePerformanceParams, InvestigatorRetrievePerformanceResponse, InvestigatorRetrieveSummaryParams, InvestigatorRetrieveSummaryResponse, InvestigatorRetrieveTransactionResponse, InvestigatorRunDetail, InvestigatorSettings, InvestigatorSettingsSpendLimit, InvestigatorUpdateSettingsParams, IpAssessRiskParams, KYBKeyPeopleParty, KYBKeyPeoplePartyRoles, KYBKeyPeoplePartyVerificationWorkflowFeatures, KYBOwnershipStructure, KYBOwnershipStructureOwner, KYBRegistryAddress, KYBRegistryData, KYBRegistryGroupCompany, KYBRegistryIndustry, KYBRegistryLiteEnrichment, KYBRegistryOwnership, KYBRegistryOwnershipUnresolved, KYBRegistrySearchResults, KYBRegistrySearchResultsCompanies, KYBRegistrySearchResultsPagination, KYBRegistrySectionError, KYBRegistryShareholding, KYBRegistrySource, KYBRegistryUboResolution, KYBRegistryUboResolutionUnresolved, KnownWebhookEvent, KybListShareholdersParams, KybListShareholdersResponse, KybListShareholdersResponse202, KybListShareholdersResponse202KybRegistry, KybListShareholdersResponse202KybRegistryBeneficialOwners, KybListShareholdersResponse202KybRegistryOfficers, KybListShareholdersResponse202KybRegistryRegistryMonitoring, KybListShareholdersResponseKybRegistry, KybListShareholdersResponseKybRegistryBeneficialOwners, KybListShareholdersResponseKybRegistryOfficers, KybListShareholdersResponseKybRegistryRegistryMonitoring, KybListUbosParams, KybListUbosResponse, KybListUbosResponse202, KybListUbosResponse202KybRegistry, KybListUbosResponse202KybRegistryBeneficialOwners, KybListUbosResponse202KybRegistryOfficers, KybListUbosResponse202KybRegistryRegistryMonitoring, KybListUbosResponseKybRegistry, KybListUbosResponseKybRegistryBeneficialOwners, KybListUbosResponseKybRegistryOfficers, KybListUbosResponseKybRegistryRegistryMonitoring, KybRegistrySearchResolvedEvent, KybSearchParams, KybSearchResponse, KybSelectParams, KybSelectResponse, KybSelectResponseKybRegistry, KybSelectResponseKybRegistryBeneficialOwners, KybSelectResponseKybRegistryOfficers, KybSelectResponseKybRegistryRegistryMonitoring, ListsCreateParams, ListsEntriesCreateParams, ListsEntriesCreateParamsMetadata, ListsEntriesListParams, ListsEntriesListResponse, ListsEntriesUploadFaceParams, ListsListParams, ListsListResponse, ListsUpdateParams, ListsUpdateResponse, LogLevel, Logger, LoginResponse, MonitoringEvent, MonitoringEventCreateRequest, MonitoringEventCreateRequestBusiness, MonitoringEventCreateRequestDeviceContext, MonitoringEventCreateRequestDeviceContextNetworkContext, MonitoringEventCreateRequestSession, MonitoringEventCreateRequestSubject, MonitoringEventCreateRequestTransactionContext, MonitoringEventDetail, MonitoringEventDetailIpEnrichment, MonitoringEventDetailSubjectProfile, MonitoringEventIngestResult, MonitoringEventIngestResultRuleMatches, MonitoringEventPage, MonitoringEventRuleRun, MonitoringEventsCreateBatchParams, MonitoringEventsCreateBatchResponse, MonitoringEventsCreateBatchResponseResults, MonitoringEventsCreateBatchResponseResultsRuleMatches, MonitoringEventsCreateParams, MonitoringEventsCreateParamsBusiness, MonitoringEventsCreateParamsDeviceContext, MonitoringEventsCreateParamsDeviceContextNetworkContext, MonitoringEventsCreateParamsSession, MonitoringEventsCreateParamsSubject, MonitoringEventsCreateParamsTransactionContext, MonitoringEventsCreateSdkTokenParams, MonitoringEventsCreateSdkTokenResponse, MonitoringEventsListParams, MonitoringEventsRetrieveEnrichmentMetricsParams, MonitoringEventsRetrieveEnrichmentMetricsResponse, MonitoringEventsRetrieveSubjectTimelineParams, NetworkDetail, NetworkDetailResponse, NetworkGraph, NetworkGraphEdge, NetworkGraphMetrics, NetworkGraphNode, NetworkListCounts, NetworkListCountsFacets, NetworkListCountsFacetsAssignee, NetworkListCountsFacetsAssigneeUsers, NetworkListCountsFacetsLastActivityDays, NetworkListCountsFacetsMinSize, NetworkListCountsFacetsPriority, NetworkListCountsFacetsRiskMin, NetworkListCountsFacetsSignalTypes, NetworkListCountsScopes, NetworkListCountsViews, NetworkListItem, NetworkMap, NetworkMapPoints, NetworkMember, NetworkMemberProvenance, NetworkNodeTag, NetworkNote, NetworkOutcomes, NetworkPatternScore, NetworkRiskDisplay, NetworkSignal, NetworkTag, NetworkTimeline, NetworkTimelineAccount, NetworkTimelineAmount, NetworkTimelineAttempt, NetworkTimelineCaseLinked, NetworkTimelineDeclineReason, NetworkTimelineDevice, NetworkTimelineEvent, NetworkTimelineIP, NetworkTimelineLogin, NetworkTimelineNoteAdded, NetworkTimelinePage, NetworkTimelineRoute, NetworkTimelineRuleHit, NetworkTimelineSourceRef, NetworkTimelineTransaction, NetworkTypedTimelineEvent, NetworksAddTagParams, NetworksListMembersResponse, NetworksListParams, NetworksListResponse, NetworksListResponseKpis, NetworksListSignalsResponse, NetworksNotesCreateParams, NetworksNotesListParams, NetworksNotesListResponse, NetworksRemoveTagParams, NetworksRetrieveGraphParams, NetworksRetrieveTimelineParams, OngoingMonitoringJob, OngoingMonitoringJobEstimate, OngoingMonitoringJobOutcomes, OngoingMonitoringToggleResult, OngoingMonitoringToggleResultVariant1, Organization, OrganizationClaim, OrganizationRole, OrganizationSummary, Page, PageMethods, PageResponse, PaginatedApplicationList, PaginatedOrganizationList, PassiveLivenessCheckParams, PassiveLivenessCheckResponse, PassiveLivenessCheckResponseLiveness, PassiveLivenessCheckResponseLivenessUserImage, PassiveLivenessCheckResponseLivenessUserImageEntities, PassiveLivenessCheckResponseLivenessWarnings, PhoneAssessRiskParams, PhoneCheckCodeParams, PhoneIntelligence, PhoneIntelligenceReasonCodes, PhoneMatchItem, PhoneRiskResponse, PhoneRiskResponsePhone, PhoneRiskResponsePhoneCarrier, PhoneSendCodeParams, PhoneSendCodeParamsOptions, PhoneSendCodeParamsSignals, PhoneSocialFootprint, PhoneVerificationCheckResponse, PhoneVerificationCheckResponsePhone, PhoneVerificationCheckResponsePhoneCarrier, PhoneVerificationCheckResponsePhoneLifecycle, PhoneVerificationCheckResponsePhoneMatches, PhoneVerificationCheckResponsePhoneWarnings, PhoneVerificationSendResponse, PkcePair, ProofOfAddressVerifyParams, ProofOfAddressVerifyResponse, ProofOfAddressVerifyResponsePoa, ProofOfAddressVerifyResponsePoaExtraFields, ProofOfAddressVerifyResponsePoaPoaParsedAddress, ProofOfAddressVerifyResponsePoaPoaParsedAddressDocumentLocation, ProofOfAddressVerifyResponsePoaWarnings, PublishableKey, PublishableKeyEnvironment, QuestionnaireDetail, QuestionnaireListItem, QuestionnairesCreateParams, QuestionnairesListParams, QuestionnairesListResponse, QuestionnairesUpdateParams, RegisterResponse, RegulatoryReportDetail, RegulatoryReportDetailNarrative, RegulatoryReportDetailValidationErrors, RegulatoryReportList, RegulatoryReportsCreateParams, RegulatoryReportsCreateParamsNarrative, RegulatoryReportsDeleteParams, RegulatoryReportsListParams, RegulatoryReportsRetrieveDownloadUrlParams, RegulatoryReportsRetrieveDownloadUrlResponse, RegulatoryReportsUpdateParams, RegulatoryReportsUpdateParamsNarrative, RegulatoryReportsValidateResponse, RegulatoryReportsValidateResponseErrors, ReportTemplateDetail, ReportTemplatesCreateParams, ReportTemplatesListParams, ReportTemplatesListResponse, ReportTemplatesUpdateParams, RequestOptions, ReviewItem, RiskLifecycleEvent, RiskSignals, RiskWarning, RoutingPublicationCaseRoutingRule, RoutingPublicationFieldEnum, RoutingPublicationOperatorEnum, RoutingPublicationPaginatedPolicyRevisionList, RoutingPublicationPolicyDraft, RoutingPublicationPolicyDraftResponse, RoutingPublicationPolicyRevision, RoutingPublicationRoutingCondition, SandboxSimulateResponse, SessionCustomRole, SessionDataUpdatedEvent, SessionDecision, SessionDecisionAssignee, SessionDecisionBiometricConsent, SessionDecisionContactDetails, SessionDecisionDatabaseValidationNotPerformedReason, SessionDecisionDatabaseValidations, SessionDecisionDatabaseValidationsErrors, SessionDecisionDatabaseValidationsScreenedData, SessionDecisionDatabaseValidationsValidations, SessionDecisionDatabaseValidationsValidationsValidation, SessionDecisionDatabaseValidationsWarnings, SessionDecisionDecisionTrace, SessionDecisionDecisionTraceActor, SessionDecisionDecisionTraceStatusWarnings, SessionDecisionDocumentAiDocuments, SessionDecisionDocumentAiDocumentsItems, SessionDecisionDocumentAiDocumentsItemsFields, SessionDecisionDocumentVerifications, SessionDecisionDocumentVerificationsGroupsValue, SessionDecisionDocumentVerificationsItems, SessionDecisionDocumentVerificationsItemsDocumentMetadata, SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulation, SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulationManipulatedRegions, SessionDecisionEmailVerifications, SessionDecisionEmailVerificationsBreaches, SessionDecisionEmailVerificationsLifecycle, SessionDecisionEmailVerificationsLifecycleDetails, SessionDecisionEmailVerificationsMatches, SessionDecisionEmailVerificationsWarnings, SessionDecisionExpectedDetails, SessionDecisionFaceMatches, SessionDecisionFaceMatchesFaceCoverage, SessionDecisionFaceMatchesFaceCoverageEyes, SessionDecisionFaceMatchesFaceCoverageFace, SessionDecisionFaceMatchesFaceCoverageMouth, SessionDecisionFaceMatchesWarnings, SessionDecisionIdVerifications, SessionDecisionIdVerificationsBackImageQualityScore, SessionDecisionIdVerificationsDocumentLiveness, SessionDecisionIdVerificationsDocumentLivenessPortraitReplace, SessionDecisionIdVerificationsDocumentLivenessPrintedCopy, SessionDecisionIdVerificationsDocumentLivenessScreenReplay, SessionDecisionIdVerificationsDocumentSelfieFaceMatches, SessionDecisionIdVerificationsDocumentSelfieFaceMatchesUserDetails, SessionDecisionIdVerificationsExtraFields, SessionDecisionIdVerificationsFallbackFrom, SessionDecisionIdVerificationsFrontImageQualityScore, SessionDecisionIdVerificationsIdLookup, SessionDecisionIdVerificationsIdLookupComparison, SessionDecisionIdVerificationsMatches, SessionDecisionIdVerificationsMatchesUserDetails, SessionDecisionIdVerificationsMrz, SessionDecisionIdVerificationsParsedAddress, SessionDecisionIdVerificationsParsedAddressDocumentLocation, SessionDecisionIdVerificationsParsedAddressRawResults, SessionDecisionIdVerificationsParsedAddressRawResultsAddressComponents, SessionDecisionIdVerificationsParsedAddressRawResultsGeometry, SessionDecisionIdVerificationsParsedAddressRawResultsGeometryLocation, SessionDecisionIdVerificationsParsedAddressRawResultsGeometryViewport, SessionDecisionIdVerificationsParsedAddressRawResultsGeometryViewportNortheast, SessionDecisionIdVerificationsParsedAddressRawResultsGeometryViewportSouthwest, SessionDecisionIdVerificationsParsedAddressRawResultsNavigationPoints, SessionDecisionIdVerificationsParsedAddressRawResultsNavigationPointsLocation, SessionDecisionIdVerificationsWalletVerification, SessionDecisionIdVerificationsWarnings, SessionDecisionIpAnalyses, SessionDecisionIpAnalysesIdDocument, SessionDecisionIpAnalysesIdDocumentLocation, SessionDecisionIpAnalysesIp, SessionDecisionIpAnalysesIpLocation, SessionDecisionIpAnalysesMatches, SessionDecisionIpAnalysesMatchesDeviceInfo, SessionDecisionIpAnalysesMatchesLocationInfo, SessionDecisionIpAnalysesPoaDocument, SessionDecisionIpAnalysesPoaDocumentLocation, SessionDecisionIpAnalysesWarnings, SessionDecisionKeyPeopleChecks, SessionDecisionKeyPeopleChecksRegistry, SessionDecisionKeyPeopleChecksRegistryBeneficialOwners, SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKycAmlCategories, SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeatures, SessionDecisionKeyPeopleChecksRegistryOfficers, SessionDecisionKeyPeopleChecksRegistryOfficersKycAmlCategories, SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeatures, SessionDecisionKeyPeopleChecksSubmitted, SessionDecisionKeyPeopleChecksSubmittedParties, SessionDecisionKeyPeopleChecksSubmittedPartiesRoles, SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeatures, SessionDecisionKeyPeopleChecksUboKycSummary, SessionDecisionLinkedRecords, SessionDecisionLinkedRecordsEarlierVerifications, SessionDecisionLinkedRecordsNetworks, SessionDecisionLinkedRecordsNetworksItems, SessionDecisionLinkedRecordsSameFace, SessionDecisionLinkedRecordsSameFaceBestMatch, SessionDecisionLivenessChecks, SessionDecisionLivenessChecksMatches, SessionDecisionLivenessChecksMatchesUserDetails, SessionDecisionLivenessChecksWarnings, SessionDecisionNfcVerifications, SessionDecisionNfcVerificationsAuthenticity, SessionDecisionNfcVerificationsCertificateSummary, SessionDecisionNfcVerificationsChipData, SessionDecisionNfcVerificationsJpki, SessionDecisionNfcVerificationsJpkiAttributes, SessionDecisionNfcVerificationsJpkiCertificates, SessionDecisionNfcVerificationsWarnings, SessionDecisionPhoneVerifications, SessionDecisionPhoneVerificationsCarrier, SessionDecisionPhoneVerificationsLifecycle, SessionDecisionPhoneVerificationsLifecycleDetails, SessionDecisionPhoneVerificationsMatches, SessionDecisionPhoneVerificationsWarnings, SessionDecisionPoaVerifications, SessionDecisionPoaVerificationsDocumentMetadata, SessionDecisionPoaVerificationsDocumentMetadataOverlayManipulation, SessionDecisionPoaVerificationsDocumentMetadataOverlayManipulationManipulatedRegions, SessionDecisionPoaVerificationsExtraFields, SessionDecisionPoaVerificationsPoaParsedAddress, SessionDecisionPoaVerificationsPoaParsedAddressDocumentLocation, SessionDecisionPoaVerificationsWarnings, SessionDecisionQuestionnaireResponses, SessionDecisionQuestionnaireResponsesSections, SessionDecisionQuestionnaireResponsesSectionsItems, SessionDecisionQuestionnaireResponsesSectionsItemsAnswer, SessionDecisionQuestionnaireResponsesSectionsItemsChoices, SessionDecisionRegistryChecks, SessionDecisionRegistryChecksCompany, SessionDecisionRegistryChecksCompanyBeneficialOwners, SessionDecisionRegistryChecksCompanyOfficers, SessionDecisionRegistryChecksCompanyRegistryMonitoring, SessionDecisionResubmissions, SessionDecisionResubmissionsNodes, SessionDecisionResubmissionsRequestedBy, SessionDecisionReviews, SessionDecisionStatusOverride, SessionDeletionJob, SessionDeletionJobOutcomes, SessionEvent, SessionFilesExport, SessionImportError, SessionImportJob, SessionOrganization, SessionSignDocument, SessionStatusUpdatedEvent, SessionWebhookDelivery, SessionsAddImagesParams, SessionsAddImagesResponse, SessionsBatchDeleteParams, SessionsBatchDeleteResponse, SessionsBatchDeleteResponseResults, SessionsBulkUpdateAmlHitStatusParams, SessionsBulkUpdateAmlHitStatusParamsHitUpdates, SessionsBulkUpdateAmlHitStatusResponse, SessionsCreateKybPartyDraftParams, SessionsCreateKybPartyDraftResponse, SessionsCreateKybPartyDraftResponseParty, SessionsCreateParams, SessionsCreateParamsBiometricConsent, SessionsCreateParamsContactDetails, SessionsCreateParamsExpectedDetails, SessionsCreateParamsSign, SessionsCreateResponse, SessionsDeleteKybPartyDraftParams, SessionsDeleteParams, SessionsDeleteResponse, SessionsExportAmlScreeningHistoryParams, SessionsImportSharedParams, SessionsImportsCheckProviderParams, SessionsImportsCheckProviderParamsOptions, SessionsImportsCheckProviderResponse, SessionsImportsCreateParams, SessionsImportsCreateParamsOptions, SessionsImportsListActiveJobsResponse, SessionsImportsListErrorsParams, SessionsImportsListErrorsResponse, SessionsImportsListJobsParams, SessionsImportsListJobsResponse, SessionsImportsListJobsResponseCounts, SessionsImportsListProvidersResponse, SessionsImportsRetrieveTemplateParams, SessionsImportsRetryParams, SessionsImportsStartParams, SessionsListAmlScreeningHistoryParams, SessionsListAmlScreeningHistoryResponse, SessionsListEventsParams, SessionsListEventsResponse, SessionsListFeatureOverridesResponse, SessionsListKybExtractedPartiesParams, SessionsListKybExtractedPartiesResponse, SessionsListKybExtractedPartiesResponseParties, SessionsListKybExtractedPartiesResponsePartiesDocuments, SessionsListKybExtractedPartiesResponsePartiesRoles, SessionsListKybExtractedPartiesResponsePartiesRolesOwnershipPercent, SessionsListKybPartyDraftsParams, SessionsListKybPartyDraftsResponse, SessionsListKybPartyDraftsResponseParties, SessionsListKybPartyDraftsResponsePartiesParty, SessionsListParams, SessionsListResponse, SessionsPreviewDecisionEmailParams, SessionsPreviewDecisionEmailResponse, SessionsPreviewResubmissionParams, SessionsPreviewResubmissionParamsNodesToResubmit, SessionsPreviewResubmissionResponse, SessionsPreviewResubmissionResponseNodesToResubmit, SessionsRetrieveDecisionParams, SessionsReviewsCreateParams, SessionsReviewsCreateResponse, SessionsReviewsListParams, SessionsReviewsListResponse, SessionsShareParams, SessionsShareResponse, SessionsSignaturesDownloadEvidenceParams, SessionsSignaturesValidateParams, SessionsSignaturesValidateResponse, SessionsSimulateParams, SessionsSubmitKybPartiesParams, SessionsSubmitKybPartiesResponse, SessionsUpdateAmlHitStatusParams, SessionsUpdateAmlHitStatusResponse, SessionsUpdateAmlStatusParams, SessionsUpdateAmlStatusResponse, SessionsUpdateDataParams, SessionsUpdateDataParamsParsedAddress, SessionsUpdateDataResponse, SessionsUpdateDataResponseParsedAddress, SessionsUpdateDocumentAiDataParams, SessionsUpdateDocumentAiDataResponse, SessionsUpdateFeatureStatusParams, SessionsUpdateFeatureStatusResponse, SessionsUpdateKybCompanyDataParams, SessionsUpdateKybCompanyDataResponse, SessionsUpdateKybPartyDraftParams, SessionsUpdateKybPartyDraftResponse, SessionsUpdateKybPartyDraftResponseParty, SessionsUpdateKybPartyParams, SessionsUpdateKybPartyResponse, SessionsUpdatePoaDataParams, SessionsUpdatePoaDataParamsPoaParsedAddress, SessionsUpdatePoaDataResponse, SessionsUpdatePoaDataResponsePoaParsedAddress, SessionsUpdateStatusParams, SessionsUpdateStatusParamsNodesToResubmit, SessionsUpdateStatusResponse, SessionsUploadKybDocumentsParams, SessionsUploadKybDocumentsResponse, SignatureField, SignatureFieldAnchor, SignatureFieldResult, SignatureFieldValidation, SignatureResult, SignatureResultAdoptedSignature, SignatureResultCertificate, SignatureResultConfirmation, SignatureResultDocuments, SignatureResultDocumentsConversion, SignatureResultIdentityUsed, SignatureResultSigner, SignatureResultTimestamp, SignatureResultValidation, SignatureResultValidationDocuments, SignatureResultValidationDocumentsCertificate, SignatureResultValidationDocumentsTimestamp, SignatureResultValidationDocumentsTrustedList, SignatureResultWarnings, SimpleQuestionnaireElement, SimpleQuestionnaireElementOptions, SimpleQuestionnaireElementValidation, SimpleWorkflowFeature, SocialFootprintCategorySummary, SocialFootprintPlatform, SocialFootprintProfile, StepUp, StepUpAction, StepUpMethod, StepUpNotRequired, StepUpRule, StepUpStatus, TokenClaims, TokenResponse, TokenVerificationReason, TransactionCreatedEvent, TransactionDetail, TransactionDetailActivities, TransactionDetailAlerts, TransactionDetailDocuments, TransactionDetailDocumentsFiles, TransactionDetailNetworkSnapshot, TransactionDetailParties, TransactionDetailPartiesDevice, TransactionDetailPartiesDeviceNetworkContext, TransactionDetailPaymentMethods, TransactionDetailProviderResults, TransactionDetailRemediation, TransactionDetailRuleRuns, TransactionDetailTags, TransactionNote, TransactionNoteMetadata, TransactionRuleAction, TransactionRuleActionAddNote, TransactionRuleActionAddScore, TransactionRuleActionAddTags, TransactionRuleActionAddToList, TransactionRuleActionChangeStatus, TransactionRuleActionOpenCase, TransactionRuleAggregation, TransactionRuleBacktestResult, TransactionRuleCondition, TransactionRuleDetail, TransactionRuleInstallResult, TransactionRuleLibraryEntry, TransactionRuleScope, TransactionStatusUpdatedEvent, TransactionSummary, TransactionSummaryTags, TransactionTravelRule, TransactionTravelRuleCounterpartyVasp, TransactionTravelRuleCounterpartyVaspDdScoreBreakdownValue, TransactionVerificationSessionAction, TransactionWalletOwnershipAction, TransactionsBatchDeleteParamsAllTransactions, TransactionsBatchDeleteParamsSelectedTransactions, TransactionsCreateParams, TransactionsCreateParamsCounterparty, TransactionsCreateParamsCounterpartyDeviceContext, TransactionsCreateParamsCounterpartyDeviceContextNetworkContext, TransactionsCreateParamsCounterpartyPaymentMethod, TransactionsCreateParamsNetworkSnapshot, TransactionsCreateParamsSubject, TransactionsCreateParamsSubjectAddress, TransactionsCreateParamsSubjectDeviceContext, TransactionsCreateParamsSubjectDeviceContextNetworkContext, TransactionsCreateParamsSubjectInstitutionDetails, TransactionsCreateParamsSubjectPaymentMethod, TransactionsCreateParamsTransactionDetails, TransactionsCreateParamsTransactionDetailsCryptoParams, TransactionsCreateParamsTravelRuleDetails, TransactionsCreateSdkTokenParams, TransactionsCreateSdkTokenResponse, TransactionsListParams, TransactionsListRelatedParams, TransactionsListRelatedResponse, TransactionsListResponse, TransactionsListResponseResults, TransactionsListResponseResultsTags, TransactionsNotesCreateParams, TransactionsNotesListParams, TransactionsNotesListResponse, TransactionsRulesBacktestParams, TransactionsRulesCreateParams, TransactionsRulesInstallLibraryParams, TransactionsRulesListLibraryParams, TransactionsRulesListLibraryResponse, TransactionsRulesListParams, TransactionsRulesListResponse, TransactionsRulesUninstallLibraryParams, TransactionsRulesUpdateParams, TransactionsTravelRuleConfirmOwnershipParams, TransactionsTravelRuleCreateMessageParams, TransactionsTravelRuleTriggerTestVaspInboundParams, TransactionsTravelRuleUpdateTransferParams, TravelRuleChainDetails, TravelRuleChainDetailsUtxo, TravelRuleChainSide, TravelRuleCounterpartyContact, TravelRuleCounterpartyContactsCreateParams, TravelRuleCounterpartyContactsListParams, TravelRuleCounterpartyContactsListResponse, TravelRuleCounterpartyDecision, TravelRuleCounterpartyDecisionInheritedFrom, TravelRuleCounterpartyDecisionResponse, TravelRuleCounterpartyQuestionnaire, TravelRuleCounterpartyQuestionnaireList, TravelRuleCounterpartyScreening, TravelRuleCounterpartyScreeningResult, TravelRuleCounterpartyScreeningStatus, TravelRuleCreateWidgetSessionParams, TravelRuleDataMatch, TravelRuleDataMatchFieldsValue, TravelRuleDataSharingFields, TravelRuleDataUnmasked, TravelRuleDelivery, TravelRuleDiscoveryStep, TravelRuleInboundResponse, TravelRuleListVaspsParams, TravelRuleListVaspsResponse, TravelRuleManualMatchResponse, TravelRuleMatchingRules, TravelRuleMatchingRulesCompany, TravelRuleMatchingRulesIndividual, TravelRuleMessage, TravelRuleMessageAttachment, TravelRuleMessageAttachmentFiles, TravelRuleNameMatch, TravelRuleNetworkParticipant, TravelRuleNetworkParticipantHistory, TravelRuleNetworkParticipantSummary, TravelRuleNetworkQuestionnaire, TravelRuleNetworkQuestionnaireAnswers, TravelRuleNetworkQuestionnaireAnswersLicences, TravelRuleNetworkQuestionnaireHistory, TravelRuleNetworkState, TravelRuleNetworksOverview, TravelRuleNetworksOverviewNetworks, TravelRuleNetworksUpdateQuestionnaireParams, TravelRuleNetworksUpdateQuestionnaireParamsLicences, TravelRuleNextAction, TravelRuleRegisterInboundParams, TravelRuleRegisterInboundParamsOriginatingVasp, TravelRuleScreenVaspParams, TravelRuleSendComplianceEmailConfirmationResponse, TravelRuleSendVaspQuestionnaireParams, TravelRuleSettingsDetail, TravelRuleSettingsDetailDiditNetwork, TravelRuleSettingsDetailNetworks, TravelRuleStatusUpdatedEvent, TravelRuleTestVaspInboundResponse, TravelRuleTransferDetail, TravelRuleTransferDetailCounterpartyVasp, TravelRuleTransferDetailCounterpartyVaspDdScoreBreakdownValue, TravelRuleTransferDetailTimeline, TravelRuleTransferRow, TravelRuleTransfersListParams, TravelRuleTransfersListResponse, TravelRuleUnmatchedDepositsListParams, TravelRuleUnmatchedDepositsListResponse, TravelRuleUnmatchedDepositsMatchParams, TravelRuleUpdateSettingsParams, TravelRuleUpdateVaspDecisionParams, TravelRuleUtxo, TravelRuleUtxoEntry, TravelRuleWalletAddressesBulkImportParams, TravelRuleWalletAddressesCreateParams, TravelRuleWalletAddressesListParams, TravelRuleWalletAddressesListResponse, TravelRuleWalletAddressesUpdateParams, TravelRuleWalletProofFailureReason, TravelRuleWalletProofReview, TravelRuleWalletProofsDecideParams, TravelRuleWalletProofsListParams, TravelRuleWalletProofsListResponse, TravelRuleWidgetSessionResponse, TravelRuleWorkspace, TravelRuleWorkspaceClaim, TravelRuleWorkspaceClaimParams, TravelRuleWorkspaceConfirmDomainParams, TravelRuleWorkspaceDomain, TravelRuleWorkspaceDomainCodeResponse, TravelRuleWorkspaceEnableBillingParams, TravelRuleWorkspaceTxtRecord, UnknownEvent, Uploadable, UserDataUpdatedEvent, UserDetailItem, UserDetailItemComments, UserDetailItemFeaturesList, UserDetailItemTags, UserDetailItemTagsTag, UserListItem, UserListItemFeaturesList, UserListItemTags, UserSessionListItem, UserSessionListItemAdditionalDetails, UserSessionListItemAdditionalDetailsAml, UserSessionListItemAdditionalDetailsAmlScreenedData, UserSessionListItemAdditionalDetailsDatabaseValidation, UserSessionListItemAdditionalDetailsEmailVerification, UserSessionListItemAdditionalDetailsFaceMatch, UserSessionListItemAdditionalDetailsLiveness, UserSessionListItemAdditionalDetailsPhoneVerification, UserSessionListItemAdditionalDetailsPoa, UserSessionListItemAssignee, UserSessionListItemEmailAddress, UserSessionListItemFeatures, UserSessionListItemPhoneNumber, UserSessionListItemTopWarnings, UserStatusUpdatedEvent, UsersBatchDeleteParams, UsersBatchDeleteResponse, UsersCreateParams, UsersCreateResponse, UsersCreateResponseComments, UsersCreateResponseFeaturesList, UsersCreateResponseTags, UsersCreateResponseTagsTag, UsersCreateResponseVerificationLink, UsersListParams, UsersListResponse, UsersSetAmlMonitoringParams, UsersSetOngoingMonitoringParams, UsersUpdateParams, UsersUpdateStatusParams, UsersUploadFaceParams, UsersUploadFaceResponse, VaspDirectoryEntry, VaspDirectoryEntryAliases, VaspDirectoryEntryContacts, VaspDirectoryEntryDdScoreBreakdownValue, VaspDirectoryEntryEntities, VaspDirectoryEntryEssentialChecks, VaspDirectoryEntryEssentialChecksChecks, VaspDirectoryEntryNetworks, VaspDirectoryEntryResponsiveness, VaspDirectoryEntryRoutes, VaspDirectoryEntryUmbrella, VerificationLevel, VerifiedClaims, VerifyAccessTokenOptions, VerifyEmailResponse, VerifyIdTokenOptions, VerifyWebhookOptions, VerifyWebhookParsedOptions, WalletAddressEntry, WalletAddressEntryUpdate, WalletAddressImportReport, WalletAddressImportReportRows, WalletScreeningResult, WalletScreeningResultCounterpartyConnections, WalletScreeningResultDestinationOfFunds, WalletScreeningResultRiskFactors, WalletScreeningResultSourceOfFunds, WalletScreeningScreenParams, WebhookConfig, WebhookConfigAvailableEvents, WebhookConfigDestination, WebhookDestinationDelivery, WebhookDestinationDeliveryDetail, WebhookEnvironment, WebhookEvent, WebhookEventBase, WebhookEventType, WebhookHeaders, WebhookSecret, WebhookSubscribedEvents, WebhookVerificationReason, WebhookVerifiedBy, WebhooksDestinationsCreateParams, WebhooksDestinationsCreateResponse, WebhooksDestinationsCreateResponseSummary, WebhooksDestinationsListDeliveriesParams, WebhooksDestinationsListDeliveriesResponse, WebhooksDestinationsListResponse, WebhooksDestinationsListResponseDailyPoints, WebhooksDestinationsRetrieveAnalyticsParams, WebhooksDestinationsRetrieveAnalyticsResponse, WebhooksDestinationsRetrieveAnalyticsResponsePoints, WebhooksDestinationsRetrieveAnalyticsResponseSummary, WebhooksDestinationsRetrieveResponse, WebhooksDestinationsRetrieveResponseSummary, WebhooksDestinationsUpdateParams, WebhooksDestinationsUpdateResponse, WebhooksDestinationsUpdateResponseSummary, WebhooksUpdateConfigParams, WithResponse, WorkflowComplianceChangedEvent, WorkflowDetail, WorkflowDetailSignatureAvailability, WorkflowListItem, WorkflowListItemCreatedBy, WorkflowsCreateParams, WorkflowsListParams, WorkflowsListResponse, WorkflowsUpdateParams };