@didit-protocol/sdk-node 1.0.0 → 2.0.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.js CHANGED
@@ -278,7 +278,7 @@ function decodeDates(value, plan, named, depth = 0) {
278
278
  }
279
279
 
280
280
  // src/core/version.ts
281
- var VERSION = "1.0.0";
281
+ var VERSION = "2.0.0";
282
282
 
283
283
  // src/core/runtime.ts
284
284
  function processLike() {
@@ -1188,6 +1188,7 @@ var DATE_PLANS = {
1188
1188
  updated_at: 1
1189
1189
  }
1190
1190
  },
1191
+ BiometricRetention: { p: { deletes_at: 1 } },
1191
1192
  BiometricTemplatesListResponse: {
1192
1193
  p: { results: { i: { p: { retained_at: 1, expires_at: 1, purged_at: 1 } } } }
1193
1194
  },
@@ -1300,6 +1301,10 @@ var DATE_PLANS = {
1300
1301
  },
1301
1302
  FeatureStatusOverride: { p: { requested_at: 1, applied_at: 1, cancelled_at: 1 } },
1302
1303
  FraudCheckResponse: { p: { created_at: 1, completed_at: 1 } },
1304
+ GeolocationAttempt: {
1305
+ p: { measured_at: 1, consent: { p: { accepted_at: 1 } }, received_at: 1, created_at: 1 }
1306
+ },
1307
+ GeolocationCheck: { p: { measured_at: 1, consent: { p: { accepted_at: 1 } } } },
1303
1308
  IPRiskResponse: { p: { created_at: 1 } },
1304
1309
  IdVerificationVerifyResponse: { p: { created_at: 1 } },
1305
1310
  ImportJobSummary: { p: { resumes_at: 1, created_at: 1, started_at: 1, completed_at: 1 } },
@@ -1321,32 +1326,67 @@ var DATE_PLANS = {
1321
1326
  InvestigatorSettings: { p: { stage_changed_at: 1 } },
1322
1327
  KybListShareholdersResponse: {
1323
1328
  p: {
1324
- kyb_registry: { p: { vat_checked_at: 1, confirmed_by_user_at: 1, last_console_edit_at: 1 } },
1329
+ kyb_registry: {
1330
+ p: {
1331
+ vat_checked_at: 1,
1332
+ confirmed_by_user_at: 1,
1333
+ last_console_edit_at: 1,
1334
+ registry_monitoring: { p: { enrolled_at: 1, cancelled_at: 1, last_event_at: 1 } }
1335
+ }
1336
+ },
1325
1337
  created_at: 1
1326
1338
  }
1327
1339
  },
1328
1340
  KybListShareholdersResponse202: {
1329
1341
  p: {
1330
- kyb_registry: { p: { vat_checked_at: 1, confirmed_by_user_at: 1, last_console_edit_at: 1 } },
1342
+ kyb_registry: {
1343
+ p: {
1344
+ vat_checked_at: 1,
1345
+ confirmed_by_user_at: 1,
1346
+ last_console_edit_at: 1,
1347
+ registry_monitoring: { p: { enrolled_at: 1, cancelled_at: 1, last_event_at: 1 } }
1348
+ }
1349
+ },
1331
1350
  created_at: 1
1332
1351
  }
1333
1352
  },
1334
1353
  KybListUbosResponse: {
1335
1354
  p: {
1336
- kyb_registry: { p: { vat_checked_at: 1, confirmed_by_user_at: 1, last_console_edit_at: 1 } },
1355
+ kyb_registry: {
1356
+ p: {
1357
+ vat_checked_at: 1,
1358
+ confirmed_by_user_at: 1,
1359
+ last_console_edit_at: 1,
1360
+ registry_monitoring: { p: { enrolled_at: 1, cancelled_at: 1, last_event_at: 1 } }
1361
+ }
1362
+ },
1337
1363
  created_at: 1
1338
1364
  }
1339
1365
  },
1340
1366
  KybListUbosResponse202: {
1341
1367
  p: {
1342
- kyb_registry: { p: { vat_checked_at: 1, confirmed_by_user_at: 1, last_console_edit_at: 1 } },
1368
+ kyb_registry: {
1369
+ p: {
1370
+ vat_checked_at: 1,
1371
+ confirmed_by_user_at: 1,
1372
+ last_console_edit_at: 1,
1373
+ registry_monitoring: { p: { enrolled_at: 1, cancelled_at: 1, last_event_at: 1 } }
1374
+ }
1375
+ },
1343
1376
  created_at: 1
1344
1377
  }
1345
1378
  },
1346
1379
  KybSearchResponse: { p: { created_at: 1 } },
1347
1380
  KybSelectResponse: {
1348
1381
  p: {
1349
- kyb_registry: { p: { vat_checked_at: 1, confirmed_by_user_at: 1, last_console_edit_at: 1 } },
1382
+ kyb_registry: {
1383
+ p: {
1384
+ vat_checked_at: 1,
1385
+ confirmed_by_user_at: 1,
1386
+ last_console_edit_at: 1,
1387
+ registry_monitoring: { p: { enrolled_at: 1, cancelled_at: 1, last_event_at: 1 } }
1388
+ }
1389
+ },
1350
1390
  created_at: 1
1351
1391
  }
1352
1392
  },
@@ -1432,6 +1472,8 @@ var DATE_PLANS = {
1432
1472
  RoutingPublicationPolicyRevision: { p: { published_at: 1 } },
1433
1473
  SessionDecision: {
1434
1474
  p: {
1475
+ status_override: { p: { overridden_at: 1 } },
1476
+ decision_trace: { p: { decided_at: 1 } },
1435
1477
  id_verifications: {
1436
1478
  i: {
1437
1479
  p: {
@@ -1480,13 +1522,25 @@ var DATE_PLANS = {
1480
1522
  signatures: { i: "SignatureResult" },
1481
1523
  aml_screenings: { i: "AMLScreening" },
1482
1524
  ip_analyses: { i: { p: { matches: { i: { p: { verification_date: 1 } } } } } },
1525
+ geolocation_checks: { i: "GeolocationCheck" },
1526
+ geolocation_attempts: { i: "GeolocationAttempt" },
1483
1527
  reviews: { i: { p: { created_at: 1 } } },
1528
+ assignee: { p: { assigned_at: 1 } },
1529
+ waiting_since: 1,
1530
+ sla_due_at: 1,
1484
1531
  created_at: 1,
1485
1532
  expires_at: 1,
1486
1533
  registry_checks: {
1487
1534
  i: {
1488
1535
  p: {
1489
- company: { p: { vat_checked_at: 1, confirmed_by_user_at: 1, last_console_edit_at: 1 } }
1536
+ company: {
1537
+ p: {
1538
+ vat_checked_at: 1,
1539
+ confirmed_by_user_at: 1,
1540
+ last_console_edit_at: 1,
1541
+ registry_monitoring: { p: { enrolled_at: 1, cancelled_at: 1, last_event_at: 1 } }
1542
+ }
1543
+ }
1490
1544
  }
1491
1545
  }
1492
1546
  },
@@ -1505,11 +1559,14 @@ var DATE_PLANS = {
1505
1559
  document_verifications: { i: { p: { items: { i: { p: { created_at: 1 } } } } } },
1506
1560
  resubmissions: { i: { p: { created_at: 1 } } },
1507
1561
  biometric_consent: { p: { given_at: 1, declined_at: 1, face_data_deleted_at: 1 } },
1508
- investigator: "InvestigatorBlock"
1562
+ investigator: "InvestigatorBlock",
1563
+ biometric_retention: "BiometricRetention",
1564
+ full_session_video_recorded_at: 1
1509
1565
  }
1510
1566
  },
1511
1567
  SessionDeletionJob: { p: { created_at: 1, completed_at: 1 } },
1512
1568
  SessionEvent: { p: { created_at: 1 } },
1569
+ SessionFilesExport: { p: { expires_at: 1, created_at: 1, completed_at: 1 } },
1513
1570
  SessionImportError: { p: { created_at: 1 } },
1514
1571
  SessionImportJob: {
1515
1572
  p: {
@@ -1526,6 +1583,7 @@ var DATE_PLANS = {
1526
1583
  SessionsBatchDeleteResponse: {
1527
1584
  p: { results: { i: { p: { biometric_template_expires_at: 1 } } } }
1528
1585
  },
1586
+ SessionsCreateKybPartyDraftResponse: { p: { created_at: 1, updated_at: 1 } },
1529
1587
  SessionsDeleteResponse: { p: { biometric_template_expires_at: 1 } },
1530
1588
  SessionsImportsListActiveJobsResponse: { p: { results: { i: "ImportJobSummary" } } },
1531
1589
  SessionsImportsListErrorsResponse: { p: { results: { i: "SessionImportError" } } },
@@ -1535,7 +1593,23 @@ var DATE_PLANS = {
1535
1593
  SessionsListFeatureOverridesResponse: {
1536
1594
  p: { flow_finished_at: 1, overrides: { i: "FeatureStatusOverride" } }
1537
1595
  },
1538
- SessionsListResponse: { p: { results: { i: { p: { created_at: 1 } } } } },
1596
+ SessionsListKybPartyDraftsResponse: {
1597
+ p: { parties: { i: { p: { created_at: 1, updated_at: 1 } } } }
1598
+ },
1599
+ SessionsListResponse: {
1600
+ p: {
1601
+ results: {
1602
+ i: {
1603
+ p: {
1604
+ created_at: 1,
1605
+ assignee: { p: { assigned_at: 1 } },
1606
+ waiting_since: 1,
1607
+ sla_due_at: 1
1608
+ }
1609
+ }
1610
+ }
1611
+ }
1612
+ },
1539
1613
  SessionsReviewsCreateResponse: { p: { created_at: 1 } },
1540
1614
  SessionsReviewsListResponse: { p: { results: { i: "ReviewItem" } } },
1541
1615
  SessionsSignaturesValidateResponse: { p: { signatures: { i: "SignatureResult" } } },
@@ -1543,6 +1617,7 @@ var DATE_PLANS = {
1543
1617
  SessionsUpdateKybCompanyDataResponse: {
1544
1618
  p: { vat_checked_at: 1, confirmed_by_user_at: 1, last_console_edit_at: 1 }
1545
1619
  },
1620
+ SessionsUpdateKybPartyDraftResponse: { p: { created_at: 1, updated_at: 1 } },
1546
1621
  SignatureFieldResult: { p: { filled_at: 1 } },
1547
1622
  SignatureResult: {
1548
1623
  p: {
@@ -1629,6 +1704,9 @@ var DATE_PLANS = {
1629
1704
  TravelRuleDiscoveryStep: { p: { at: 1 } },
1630
1705
  TravelRuleInboundResponse: { p: { travel_rule: "TravelRuleTransferDetail" } },
1631
1706
  TravelRuleListVaspsResponse: { p: { results: { i: "VaspDirectoryEntry" } } },
1707
+ TravelRuleManualMatchResponse: {
1708
+ p: { deposit: "TravelRuleTransferRow", message: "TravelRuleTransferRow" }
1709
+ },
1632
1710
  TravelRuleMessage: {
1633
1711
  p: { fulfilled_at: 1, attachment: "TravelRuleMessageAttachment", created_at: 1 }
1634
1712
  },
@@ -1687,6 +1765,7 @@ var DATE_PLANS = {
1687
1765
  },
1688
1766
  TravelRuleTransferRow: { p: { txn_date: 1, deadline_at: 1, created_at: 1 } },
1689
1767
  TravelRuleTransfersListResponse: { p: { results: { i: "TravelRuleTransferRow" } } },
1768
+ TravelRuleUnmatchedDepositsListResponse: { p: { results: { i: "TravelRuleTransferRow" } } },
1690
1769
  TravelRuleWalletAddressesListResponse: { p: { results: { i: "WalletAddressEntry" } } },
1691
1770
  TravelRuleWalletProofReview: { p: { method_chosen_at: 1, decided_at: 1, created_at: 1 } },
1692
1771
  TravelRuleWalletProofsListResponse: { p: { results: { i: "TravelRuleWalletProofReview" } } },
@@ -1714,7 +1793,9 @@ var DATE_PLANS = {
1714
1793
  UserListItem: {
1715
1794
  p: { last_session_at: 1, first_session_at: 1, last_activity_at: 1, created_at: 1 }
1716
1795
  },
1717
- UserSessionListItem: { p: { created_at: 1 } },
1796
+ UserSessionListItem: {
1797
+ p: { created_at: 1, assignee: { p: { assigned_at: 1 } }, waiting_since: 1, sla_due_at: 1 }
1798
+ },
1718
1799
  UsersCreateResponse: {
1719
1800
  p: {
1720
1801
  last_session_at: 1,
@@ -1993,7 +2074,7 @@ var AddressValidation = class extends APIResource {
1993
2074
  *
1994
2075
  * **Authentication.** Send your application's API key in `x-api-key`. Missing or invalid credentials return `403` - this API never returns `401`.
1995
2076
  *
1996
- * **Rate limit.** Shared write budget of 300 requests per minute per API key across all POST/PATCH/DELETE endpoints.
2077
+ * **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).
1997
2078
  *
1998
2079
  * `POST /v3/address-validation/`
1999
2080
  */
@@ -2133,6 +2214,12 @@ var ANALYTICS_RETRIEVE = {
2133
2214
  "action_type"
2134
2215
  ]
2135
2216
  };
2217
+ var ANALYTICS_RETRIEVE_TODAY = {
2218
+ method: "GET",
2219
+ path: "/v3/organization/{organization_id}/application/{application_id}/analytics/today/",
2220
+ scope: "application",
2221
+ query: ["tz"]
2222
+ };
2136
2223
  var Analytics = class extends APIResource {
2137
2224
  /**
2138
2225
  * Get application analytics
@@ -2148,6 +2235,18 @@ var Analytics = class extends APIResource {
2148
2235
  retrieve(params = {}, options) {
2149
2236
  return this._client.request(ANALYTICS_RETRIEVE, [], params, options);
2150
2237
  }
2238
+ /**
2239
+ * Get today's verifications by hour
2240
+ *
2241
+ * 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.
2242
+ *
2243
+ * `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.
2244
+ *
2245
+ * `GET /v3/organization/{organization_id}/application/{application_id}/analytics/today/`
2246
+ */
2247
+ retrieveToday(params = {}, options) {
2248
+ return this._client.request(ANALYTICS_RETRIEVE_TODAY, [], params, options);
2249
+ }
2151
2250
  };
2152
2251
 
2153
2252
  // src/resources/bank.ts
@@ -2161,6 +2260,8 @@ var Bank = class extends APIResource {
2161
2260
  /**
2162
2261
  * Check a bank account
2163
2262
  *
2263
+ * **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.
2264
+ *
2164
2265
  * 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.
2165
2266
  *
2166
2267
  * **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.
@@ -2171,7 +2272,7 @@ var Bank = class extends APIResource {
2171
2272
  *
2172
2273
  * **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.
2173
2274
  *
2174
- * **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`.
2275
+ * **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`.
2175
2276
  *
2176
2277
  * **API keys.** A scoped API key needs write access to sessions.
2177
2278
  *
@@ -4043,7 +4144,7 @@ var Email = class extends APIResource {
4043
4144
  *
4044
4145
  * **Authentication.** Send your application's API key in `x-api-key`. Missing or invalid credentials return `403` - this API never returns `401`.
4045
4146
  *
4046
- * **Rate limit.** Shared write budget of 300 requests per minute per API key across all POST/PATCH/DELETE endpoints.
4147
+ * **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).
4047
4148
  *
4048
4149
  * **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.
4049
4150
  *
@@ -4255,7 +4356,7 @@ var IdVerification = class extends APIResource {
4255
4356
  *
4256
4357
  * **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.
4257
4358
  *
4258
- * **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.
4359
+ * **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.
4259
4360
  *
4260
4361
  * **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.
4261
4362
  *
@@ -4363,6 +4464,12 @@ var ID_WALLETS_START_FTN = {
4363
4464
  body: "json",
4364
4465
  dates: "DigitalIdWalletApiWalletVerificationResponse"
4365
4466
  };
4467
+ var ID_WALLETS_START_GOOGLE_WALLET = {
4468
+ method: "POST",
4469
+ path: "/v3/id-verification/wallets/google-wallet/",
4470
+ body: "json",
4471
+ dates: "DigitalIdWalletApiWalletVerificationResponse"
4472
+ };
4366
4473
  var ID_WALLETS_START_GOVBR = {
4367
4474
  method: "POST",
4368
4475
  path: "/v3/id-verification/wallets/govbr/",
@@ -4441,6 +4548,12 @@ var ID_WALLETS_START_VIPPS = {
4441
4548
  body: "json",
4442
4549
  dates: "DigitalIdWalletApiWalletVerificationResponse"
4443
4550
  };
4551
+ var ID_WALLETS_SUBMIT_VERIFICATION_RESPONSE = {
4552
+ method: "POST",
4553
+ path: "/v3/id-verification/wallets/verifications/{request_id}/response/",
4554
+ body: "json",
4555
+ dates: "DigitalIdWalletApiWalletVerificationResponse"
4556
+ };
4444
4557
  var IdWallets = class extends APIResource {
4445
4558
  /**
4446
4559
  * Cancel a wallet verification
@@ -4632,6 +4745,18 @@ var IdWallets = class extends APIResource {
4632
4745
  startFtn(params, options) {
4633
4746
  return this._client.request(ID_WALLETS_START_FTN, [], params, options);
4634
4747
  }
4748
+ /**
4749
+ * Start Google Wallet verification
4750
+ *
4751
+ * 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.
4752
+ *
4753
+ * `POST /v3/id-verification/wallets/google-wallet/`
4754
+ *
4755
+ * Accepts `options.idempotencyKey` (header `Idempotency-Key`).
4756
+ */
4757
+ startGoogleWallet(params, options) {
4758
+ return this._client.request(ID_WALLETS_START_GOOGLE_WALLET, [], params, options);
4759
+ }
4635
4760
  /**
4636
4761
  * Start gov.br verification
4637
4762
  *
@@ -4788,6 +4913,23 @@ var IdWallets = class extends APIResource {
4788
4913
  startVipps(params, options) {
4789
4914
  return this._client.request(ID_WALLETS_START_VIPPS, [], params, options);
4790
4915
  }
4916
+ /**
4917
+ * Submit a wallet response
4918
+ *
4919
+ * 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.
4920
+ *
4921
+ * `POST /v3/id-verification/wallets/verifications/{request_id}/response/`
4922
+ *
4923
+ * @param requestId The request_id the start endpoint returned.
4924
+ */
4925
+ submitVerificationResponse(requestId, params, options) {
4926
+ return this._client.request(
4927
+ ID_WALLETS_SUBMIT_VERIFICATION_RESPONSE,
4928
+ [requestId],
4929
+ params,
4930
+ options
4931
+ );
4932
+ }
4791
4933
  };
4792
4934
 
4793
4935
  // src/resources/investigator.ts
@@ -5056,7 +5198,7 @@ var Ip = class extends APIResource {
5056
5198
  *
5057
5199
  * **Authentication.** Send your application's API key in `x-api-key`. Missing or invalid credentials return `403` - this API never returns `401`.
5058
5200
  *
5059
- * **Rate limit.** Shared write budget of 300 requests per minute per API key across all POST/PATCH/DELETE endpoints.
5201
+ * **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).
5060
5202
  *
5061
5203
  * `POST /v3/ip/risk/`
5062
5204
  */
@@ -5072,7 +5214,14 @@ var KYB_LIST_SHAREHOLDERS = {
5072
5214
  body: "json",
5073
5215
  dates: {
5074
5216
  p: {
5075
- kyb_registry: { p: { vat_checked_at: 1, confirmed_by_user_at: 1, last_console_edit_at: 1 } },
5217
+ kyb_registry: {
5218
+ p: {
5219
+ vat_checked_at: 1,
5220
+ confirmed_by_user_at: 1,
5221
+ last_console_edit_at: 1,
5222
+ registry_monitoring: { p: { enrolled_at: 1, cancelled_at: 1, last_event_at: 1 } }
5223
+ }
5224
+ },
5076
5225
  created_at: 1
5077
5226
  }
5078
5227
  }
@@ -5083,7 +5232,14 @@ var KYB_LIST_UBOS = {
5083
5232
  body: "json",
5084
5233
  dates: {
5085
5234
  p: {
5086
- kyb_registry: { p: { vat_checked_at: 1, confirmed_by_user_at: 1, last_console_edit_at: 1 } },
5235
+ kyb_registry: {
5236
+ p: {
5237
+ vat_checked_at: 1,
5238
+ confirmed_by_user_at: 1,
5239
+ last_console_edit_at: 1,
5240
+ registry_monitoring: { p: { enrolled_at: 1, cancelled_at: 1, last_event_at: 1 } }
5241
+ }
5242
+ },
5087
5243
  created_at: 1
5088
5244
  }
5089
5245
  }
@@ -5100,7 +5256,14 @@ var KYB_SELECT = {
5100
5256
  body: "json",
5101
5257
  dates: {
5102
5258
  p: {
5103
- kyb_registry: { p: { vat_checked_at: 1, confirmed_by_user_at: 1, last_console_edit_at: 1 } },
5259
+ kyb_registry: {
5260
+ p: {
5261
+ vat_checked_at: 1,
5262
+ confirmed_by_user_at: 1,
5263
+ last_console_edit_at: 1,
5264
+ registry_monitoring: { p: { enrolled_at: 1, cancelled_at: 1, last_event_at: 1 } }
5265
+ }
5266
+ },
5104
5267
  created_at: 1
5105
5268
  }
5106
5269
  }
@@ -5111,7 +5274,7 @@ var Kyb = class extends APIResource {
5111
5274
  *
5112
5275
  * 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/`.
5113
5276
  *
5114
- * **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.
5277
+ * **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.
5115
5278
  *
5116
5279
  * **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).
5117
5280
  *
@@ -5129,7 +5292,7 @@ var Kyb = class extends APIResource {
5129
5292
  *
5130
5293
  * 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/`.
5131
5294
  *
5132
- * **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.
5295
+ * **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.
5133
5296
  *
5134
5297
  * **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).
5135
5298
  *
@@ -5869,7 +6032,7 @@ var Phone = class extends APIResource {
5869
6032
  *
5870
6033
  * **Authentication.** Send your application's API key in `x-api-key`. Missing or invalid credentials return `403` - this API never returns `401`.
5871
6034
  *
5872
- * **Rate limit.** Shared write budget of 300 requests per minute per API key across all POST/PATCH/DELETE endpoints.
6035
+ * **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).
5873
6036
  *
5874
6037
  * **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.
5875
6038
  *
@@ -5948,7 +6111,7 @@ var Pricing = class extends APIResource {
5948
6111
  /**
5949
6112
  * Get bank verification prices (public, unauthenticated)
5950
6113
  *
5951
- * 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.
6114
+ * 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.
5952
6115
  *
5953
6116
  * 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.
5954
6117
  *
@@ -6487,25 +6650,48 @@ var SESSIONS_CANCEL_FEATURE_OVERRIDE = {
6487
6650
  dates: "FeatureStatusOverride"
6488
6651
  };
6489
6652
  var SESSIONS_CREATE = { method: "POST", path: "/v3/session/", body: "json" };
6653
+ var SESSIONS_CREATE_KYB_PARTY_DRAFT = {
6654
+ method: "POST",
6655
+ path: "/v3/session/{sessionId}/kyb/parties/drafts/",
6656
+ query: ["node_id"],
6657
+ body: "json",
6658
+ dates: { p: { created_at: 1, updated_at: 1 } }
6659
+ };
6490
6660
  var SESSIONS_DELETE = {
6491
6661
  method: "DELETE",
6492
6662
  path: "/v3/session/{sessionId}/delete/",
6493
6663
  body: "json",
6494
6664
  dates: { p: { biometric_template_expires_at: 1 } }
6495
6665
  };
6666
+ var SESSIONS_DELETE_KYB_PARTY_DRAFT = {
6667
+ method: "DELETE",
6668
+ path: "/v3/session/{sessionId}/kyb/parties/drafts/{draftId}/",
6669
+ query: ["node_id"],
6670
+ response: "none"
6671
+ };
6496
6672
  var SESSIONS_EXPORT_AML_SCREENING_HISTORY = {
6497
6673
  method: "GET",
6498
6674
  path: "/v3/session/{sessionId}/aml-screening-history/export/",
6499
- query: ["node_id"],
6675
+ query: ["node_id", "month"],
6500
6676
  response: "binary",
6501
6677
  accept: "text/csv"
6502
6678
  };
6679
+ var SESSIONS_EXPORT_FILES = {
6680
+ method: "POST",
6681
+ path: "/v3/session/{sessionId}/files-export/",
6682
+ dates: "SessionFilesExport"
6683
+ };
6503
6684
  var SESSIONS_GENERATE_PDF = {
6504
6685
  method: "GET",
6505
6686
  path: "/v3/session/{sessionId}/generate-pdf/",
6506
6687
  response: "binary",
6507
6688
  accept: "application/pdf"
6508
6689
  };
6690
+ var SESSIONS_GET_FILES_EXPORT = {
6691
+ method: "GET",
6692
+ path: "/v3/session/{sessionId}/files-export/{exportId}/",
6693
+ dates: "SessionFilesExport"
6694
+ };
6509
6695
  var SESSIONS_IMPORT_SHARED = {
6510
6696
  method: "POST",
6511
6697
  path: "/v3/session/import-shared/",
@@ -6525,6 +6711,9 @@ var SESSIONS_LIST = {
6525
6711
  "workflow_id",
6526
6712
  "date_from",
6527
6713
  "date_to",
6714
+ "tags",
6715
+ "decided_from",
6716
+ "decided_to",
6528
6717
  "country",
6529
6718
  "document_type",
6530
6719
  "document_name",
@@ -6539,12 +6728,25 @@ var SESSIONS_LIST = {
6539
6728
  "euuid",
6540
6729
  "organization_name"
6541
6730
  ],
6542
- dates: { p: { results: { i: { p: { created_at: 1 } } } } }
6731
+ dates: {
6732
+ p: {
6733
+ results: {
6734
+ i: {
6735
+ p: {
6736
+ created_at: 1,
6737
+ assignee: { p: { assigned_at: 1 } },
6738
+ waiting_since: 1,
6739
+ sla_due_at: 1
6740
+ }
6741
+ }
6742
+ }
6743
+ }
6744
+ }
6543
6745
  };
6544
6746
  var SESSIONS_LIST_AML_SCREENING_HISTORY = {
6545
6747
  method: "GET",
6546
6748
  path: "/v3/session/{sessionId}/aml-screening-history/",
6547
- query: ["node_id", "limit", "offset", "ordering"],
6749
+ query: ["node_id", "month", "limit", "offset", "ordering"],
6548
6750
  dates: { p: { results: { i: "AMLScreeningRun" } } }
6549
6751
  };
6550
6752
  var SESSIONS_LIST_EVENTS = {
@@ -6558,6 +6760,17 @@ var SESSIONS_LIST_FEATURE_OVERRIDES = {
6558
6760
  path: "/v3/session/{sessionId}/features/overrides/",
6559
6761
  dates: { p: { flow_finished_at: 1, overrides: { i: "FeatureStatusOverride" } } }
6560
6762
  };
6763
+ var SESSIONS_LIST_KYB_EXTRACTED_PARTIES = {
6764
+ method: "GET",
6765
+ path: "/v3/session/{sessionId}/kyb/extracted-parties/",
6766
+ query: ["node_id"]
6767
+ };
6768
+ var SESSIONS_LIST_KYB_PARTY_DRAFTS = {
6769
+ method: "GET",
6770
+ path: "/v3/session/{sessionId}/kyb/parties/drafts/",
6771
+ query: ["node_id"],
6772
+ dates: { p: { parties: { i: { p: { created_at: 1, updated_at: 1 } } } } }
6773
+ };
6561
6774
  var SESSIONS_LIST_NETWORKS = {
6562
6775
  method: "GET",
6563
6776
  path: "/v3/organization/{organization_id}/application/{application_id}/sessions/{session_id}/networks/",
@@ -6599,6 +6812,12 @@ var SESSIONS_SIMULATE = {
6599
6812
  path: "/v3/session/{sessionId}/simulate/",
6600
6813
  body: "json"
6601
6814
  };
6815
+ var SESSIONS_SUBMIT_KYB_PARTIES = {
6816
+ method: "POST",
6817
+ path: "/v3/session/{sessionId}/kyb/parties/submit/",
6818
+ query: ["node_id"],
6819
+ body: "json"
6820
+ };
6602
6821
  var SESSIONS_UPDATE_AML_HIT_STATUS = {
6603
6822
  method: "PATCH",
6604
6823
  path: "/v3/session/{sessionId}/update-aml-hit-status/",
@@ -6639,6 +6858,13 @@ var SESSIONS_UPDATE_KYB_PARTY = {
6639
6858
  path: "/v3/session/{sessionId}/kyb/parties/{partyUuid}/",
6640
6859
  body: "json"
6641
6860
  };
6861
+ var SESSIONS_UPDATE_KYB_PARTY_DRAFT = {
6862
+ method: "PATCH",
6863
+ path: "/v3/session/{sessionId}/kyb/parties/drafts/{draftId}/",
6864
+ query: ["node_id"],
6865
+ body: "json",
6866
+ dates: { p: { created_at: 1, updated_at: 1 } }
6867
+ };
6642
6868
  var SESSIONS_UPDATE_POA_DATA = {
6643
6869
  method: "PATCH",
6644
6870
  path: "/v3/session/{sessionId}/update-poa-data/",
@@ -6650,6 +6876,13 @@ var SESSIONS_UPDATE_STATUS = {
6650
6876
  path: "/v3/session/{sessionId}/update-status/",
6651
6877
  body: "json"
6652
6878
  };
6879
+ var SESSIONS_UPLOAD_KYB_DOCUMENTS = {
6880
+ method: "POST",
6881
+ path: "/v3/session/{sessionId}/kyb/documents/",
6882
+ query: ["node_id"],
6883
+ body: "multipart",
6884
+ files: ["documents"]
6885
+ };
6653
6886
  var SessionsImports = class extends APIResource {
6654
6887
  /**
6655
6888
  * Cancel an import job
@@ -6676,7 +6909,7 @@ var SessionsImports = class extends APIResource {
6676
6909
  /**
6677
6910
  * Create a verification import job
6678
6911
  *
6679
- * 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.
6912
+ * 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.
6680
6913
  *
6681
6914
  * `POST /v3/session/imports/`
6682
6915
  */
@@ -6834,14 +7067,14 @@ var SessionsSignatures = class extends APIResource {
6834
7067
  /**
6835
7068
  * Download a signed document
6836
7069
  *
6837
- * 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.
7070
+ * 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.
6838
7071
  *
6839
- * 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).
7072
+ * 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).
6840
7073
  *
6841
7074
  * `GET /v3/session/{sessionId}/signatures/{nodeId}/documents/{documentId}/file/`
6842
7075
  *
6843
7076
  * @param sessionId The User Verification (KYC) or Business Verification (KYB) session.
6844
- * @param nodeId The Electronic Signature step: `node_id` of the item in `signatures[]`.
7077
+ * @param nodeId The E-signature step: `node_id` of the item in `signatures[]`.
6845
7078
  * @param documentId `id` of the document in `signatures[].documents[]`.
6846
7079
  */
6847
7080
  downloadDocument(sessionId, nodeId, documentId, options) {
@@ -6855,14 +7088,14 @@ var SessionsSignatures = class extends APIResource {
6855
7088
  /**
6856
7089
  * Download the signature evidence
6857
7090
  *
6858
- * 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[]`.
7091
+ * 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[]`.
6859
7092
  *
6860
7093
  * 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.
6861
7094
  *
6862
7095
  * `GET /v3/session/{sessionId}/signatures/{nodeId}/evidence/`
6863
7096
  *
6864
7097
  * @param sessionId The User Verification (KYC) or Business Verification (KYB) session.
6865
- * @param nodeId The Electronic Signature step: `node_id` of the item in `signatures[]`.
7098
+ * @param nodeId The E-signature step: `node_id` of the item in `signatures[]`.
6866
7099
  */
6867
7100
  downloadEvidence(sessionId, nodeId, params = {}, options) {
6868
7101
  return this._client.request(
@@ -6880,7 +7113,7 @@ var SessionsSignatures = class extends APIResource {
6880
7113
  * `GET /v3/session/{sessionId}/signatures/{nodeId}/fields/{fieldId}/image/`
6881
7114
  *
6882
7115
  * @param sessionId The User Verification (KYC) or Business Verification (KYB) session.
6883
- * @param nodeId The Electronic Signature step: `node_id` of the item in `signatures[]`.
7116
+ * @param nodeId The E-signature step: `node_id` of the item in `signatures[]`.
6884
7117
  * @param fieldId The field on this signer's copy, as in the field's `image_url`.
6885
7118
  */
6886
7119
  downloadFieldImage(sessionId, nodeId, fieldId, options) {
@@ -6894,14 +7127,14 @@ var SessionsSignatures = class extends APIResource {
6894
7127
  /**
6895
7128
  * Validate signatures again
6896
7129
  *
6897
- * 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.
7130
+ * 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.
6898
7131
  *
6899
7132
  * Needs `write:sessions`; your API key works. In the console it's the **Validate again** button.
6900
7133
  *
6901
7134
  * `POST /v3/session/{sessionId}/signatures/{nodeId}/validate/`
6902
7135
  *
6903
7136
  * @param sessionId The User Verification (KYC) or Business Verification (KYB) session.
6904
- * @param nodeId The Electronic Signature step: `node_id` of the item in `signatures[]`.
7137
+ * @param nodeId The E-signature step: `node_id` of the item in `signatures[]`.
6905
7138
  */
6906
7139
  validate(sessionId, nodeId, params = {}, options) {
6907
7140
  return this._client.request(SESSIONS_SIGNATURES_VALIDATE, [sessionId, nodeId], params, options);
@@ -7070,6 +7303,18 @@ var Sessions = class extends APIResource {
7070
7303
  create(params, options) {
7071
7304
  return this._client.request(SESSIONS_CREATE, [], params, options);
7072
7305
  }
7306
+ /**
7307
+ * Create a KYB party draft
7308
+ *
7309
+ * 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`.
7310
+ *
7311
+ * `POST /v3/session/{sessionId}/kyb/parties/drafts/`
7312
+ *
7313
+ * @param sessionId UUID of the Business Verification (KYB) session. It must belong to the application of the API key.
7314
+ */
7315
+ createKybPartyDraft(sessionId, params, options) {
7316
+ return this._client.request(SESSIONS_CREATE_KYB_PARTY_DRAFT, [sessionId], params, options);
7317
+ }
7073
7318
  /**
7074
7319
  * Delete a verification session (KYC or KYB)
7075
7320
  *
@@ -7077,7 +7322,7 @@ var Sessions = class extends APIResource {
7077
7322
  *
7078
7323
  * **What is deleted:**
7079
7324
  * - 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.
7080
- * - 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.
7325
+ * - 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.
7081
7326
  * - The session's face data. Its face embedding is deleted too, unless you choose to keep an image-free template (see **Face biometric data**).
7082
7327
  * - Webhook deliveries still queued for the session, and their retries. Webhooks already delivered are not affected.
7083
7328
  * - 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.
@@ -7111,10 +7356,28 @@ var Sessions = class extends APIResource {
7111
7356
  delete(sessionId, params = {}, options) {
7112
7357
  return this._client.request(SESSIONS_DELETE, [sessionId], params, options);
7113
7358
  }
7359
+ /**
7360
+ * Delete a KYB party draft
7361
+ *
7362
+ * Drop one party draft. Declared parties are not affected. Requires `write:businesses`.
7363
+ *
7364
+ * `DELETE /v3/session/{sessionId}/kyb/parties/drafts/{draftId}/`
7365
+ *
7366
+ * @param sessionId UUID of the Business Verification (KYB) session. It must belong to the application of the API key.
7367
+ * @param draftId UUID of the party draft (`draft_id` returned when it was created).
7368
+ */
7369
+ deleteKybPartyDraft(sessionId, draftId, params = {}, options) {
7370
+ return this._client.request(
7371
+ SESSIONS_DELETE_KYB_PARTY_DRAFT,
7372
+ [sessionId, draftId],
7373
+ params,
7374
+ options
7375
+ );
7376
+ }
7114
7377
  /**
7115
7378
  * Export AML screening history as CSV
7116
7379
  *
7117
- * 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`.
7380
+ * 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`.
7118
7381
  *
7119
7382
  * `GET /v3/session/{sessionId}/aml-screening-history/export/`
7120
7383
  *
@@ -7128,6 +7391,20 @@ var Sessions = class extends APIResource {
7128
7391
  options
7129
7392
  );
7130
7393
  }
7394
+ /**
7395
+ * Export every file of a session
7396
+ *
7397
+ * 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.
7398
+ *
7399
+ * 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.
7400
+ *
7401
+ * `POST /v3/session/{sessionId}/files-export/`
7402
+ *
7403
+ * @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`.
7404
+ */
7405
+ exportFiles(sessionId, options) {
7406
+ return this._client.request(SESSIONS_EXPORT_FILES, [sessionId], void 0, options);
7407
+ }
7131
7408
  /**
7132
7409
  * Download a PDF report for a verification session
7133
7410
  *
@@ -7162,6 +7439,24 @@ var Sessions = class extends APIResource {
7162
7439
  generatePdf(sessionId, options) {
7163
7440
  return this._client.request(SESSIONS_GENERATE_PDF, [sessionId], void 0, options);
7164
7441
  }
7442
+ /**
7443
+ * Get a session files export
7444
+ *
7445
+ * 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`.
7446
+ *
7447
+ * `GET /v3/session/{sessionId}/files-export/{exportId}/`
7448
+ *
7449
+ * @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`.
7450
+ * @param exportId The `export_id` returned by `POST /v3/session/{sessionId}/files-export/`.
7451
+ */
7452
+ getFilesExport(sessionId, exportId, options) {
7453
+ return this._client.request(
7454
+ SESSIONS_GET_FILES_EXPORT,
7455
+ [sessionId, exportId],
7456
+ void 0,
7457
+ options
7458
+ );
7459
+ }
7165
7460
  /**
7166
7461
  * Redeem a share token to clone a verification session into your application
7167
7462
  *
@@ -7204,7 +7499,7 @@ var Sessions = class extends APIResource {
7204
7499
  /**
7205
7500
  * List AML screening history
7206
7501
  *
7207
- * 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).
7502
+ * 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).
7208
7503
  *
7209
7504
  * `GET /v3/session/{sessionId}/aml-screening-history/`
7210
7505
  *
@@ -7246,6 +7541,30 @@ var Sessions = class extends APIResource {
7246
7541
  listFeatureOverrides(sessionId, options) {
7247
7542
  return this._client.request(SESSIONS_LIST_FEATURE_OVERRIDES, [sessionId], void 0, options);
7248
7543
  }
7544
+ /**
7545
+ * List the parties named by the uploaded documents
7546
+ *
7547
+ * 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`.
7548
+ *
7549
+ * `GET /v3/session/{sessionId}/kyb/extracted-parties/`
7550
+ *
7551
+ * @param sessionId UUID of the Business Verification (KYB) session. It must belong to the application of the API key.
7552
+ */
7553
+ listKybExtractedParties(sessionId, params = {}, options) {
7554
+ return this._client.request(SESSIONS_LIST_KYB_EXTRACTED_PARTIES, [sessionId], params, options);
7555
+ }
7556
+ /**
7557
+ * List the KYB party drafts
7558
+ *
7559
+ * 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`.
7560
+ *
7561
+ * `GET /v3/session/{sessionId}/kyb/parties/drafts/`
7562
+ *
7563
+ * @param sessionId UUID of the Business Verification (KYB) session. It must belong to the application of the API key.
7564
+ */
7565
+ listKybPartyDrafts(sessionId, params = {}, options) {
7566
+ return this._client.request(SESSIONS_LIST_KYB_PARTY_DRAFTS, [sessionId], params, options);
7567
+ }
7249
7568
  /**
7250
7569
  * List networks for a session
7251
7570
  *
@@ -7317,7 +7636,7 @@ var Sessions = class extends APIResource {
7317
7636
  *
7318
7637
  * 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"`).
7319
7638
  *
7320
- * **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.
7639
+ * **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.
7321
7640
  *
7322
7641
  * **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.
7323
7642
  *
@@ -7380,10 +7699,22 @@ var Sessions = class extends APIResource {
7380
7699
  simulate(sessionId, params = {}, options) {
7381
7700
  return this._client.request(SESSIONS_SIMULATE, [sessionId], params, options);
7382
7701
  }
7702
+ /**
7703
+ * Submit the KYB party drafts
7704
+ *
7705
+ * 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`.
7706
+ *
7707
+ * `POST /v3/session/{sessionId}/kyb/parties/submit/`
7708
+ *
7709
+ * @param sessionId UUID of the Business Verification (KYB) session. It must belong to the application of the API key.
7710
+ */
7711
+ submitKybParties(sessionId, params = {}, options) {
7712
+ return this._client.request(SESSIONS_SUBMIT_KYB_PARTIES, [sessionId], params, options);
7713
+ }
7383
7714
  /**
7384
7715
  * Update an AML hit review status
7385
7716
  *
7386
- * 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).
7717
+ * 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`.
7387
7718
  *
7388
7719
  * `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.
7389
7720
  *
@@ -7525,6 +7856,24 @@ var Sessions = class extends APIResource {
7525
7856
  updateKybParty(sessionId, partyUuid, params, options) {
7526
7857
  return this._client.request(SESSIONS_UPDATE_KYB_PARTY, [sessionId, partyUuid], params, options);
7527
7858
  }
7859
+ /**
7860
+ * Edit a KYB party draft
7861
+ *
7862
+ * 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`.
7863
+ *
7864
+ * `PATCH /v3/session/{sessionId}/kyb/parties/drafts/{draftId}/`
7865
+ *
7866
+ * @param sessionId UUID of the Business Verification (KYB) session. It must belong to the application of the API key.
7867
+ * @param draftId UUID of the party draft (`draft_id` returned when it was created).
7868
+ */
7869
+ updateKybPartyDraft(sessionId, draftId, params = {}, options) {
7870
+ return this._client.request(
7871
+ SESSIONS_UPDATE_KYB_PARTY_DRAFT,
7872
+ [sessionId, draftId],
7873
+ params,
7874
+ options
7875
+ );
7876
+ }
7528
7877
  /**
7529
7878
  * Update Proof of Address data extracted from the POA document on a verification session
7530
7879
  *
@@ -7567,6 +7916,18 @@ var Sessions = class extends APIResource {
7567
7916
  updateStatus(sessionId, params, options) {
7568
7917
  return this._client.request(SESSIONS_UPDATE_STATUS, [sessionId], params, options);
7569
7918
  }
7919
+ /**
7920
+ * Upload KYB documents to a session
7921
+ *
7922
+ * 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`.
7923
+ *
7924
+ * `POST /v3/session/{sessionId}/kyb/documents/`
7925
+ *
7926
+ * @param sessionId UUID of the Business Verification (KYB) session. It must belong to the application of the API key.
7927
+ */
7928
+ uploadKybDocuments(sessionId, params, options) {
7929
+ return this._client.request(SESSIONS_UPLOAD_KYB_DOCUMENTS, [sessionId], params, options);
7930
+ }
7570
7931
  };
7571
7932
 
7572
7933
  // src/resources/transactions.ts
@@ -7688,7 +8049,7 @@ var TRANSACTIONS_GENERATE_PDF = {
7688
8049
  var TRANSACTIONS_LIST = {
7689
8050
  method: "GET",
7690
8051
  path: "/v3/transactions/",
7691
- query: ["limit", "offset", "travel_rule_status"],
8052
+ query: ["limit", "offset", "travel_rule_status", "assignee"],
7692
8053
  dates: {
7693
8054
  p: {
7694
8055
  results: { i: { p: { txn_date: 1, created_at: 1, travel_rule: "TransactionTravelRule" } } }
@@ -8120,6 +8481,29 @@ var TRAVEL_RULE_TRANSFERS_LIST = {
8120
8481
  ],
8121
8482
  dates: { p: { results: { i: "TravelRuleTransferRow" } } }
8122
8483
  };
8484
+ var TRAVEL_RULE_UNMATCHED_DEPOSITS_LIST = {
8485
+ method: "GET",
8486
+ path: "/v3/travel-rule/unmatched/",
8487
+ query: [
8488
+ "direction",
8489
+ "status",
8490
+ "rail",
8491
+ "kind",
8492
+ "currency",
8493
+ "start_date",
8494
+ "end_date",
8495
+ "counterparty",
8496
+ "limit",
8497
+ "offset"
8498
+ ],
8499
+ dates: { p: { results: { i: "TravelRuleTransferRow" } } }
8500
+ };
8501
+ var TRAVEL_RULE_UNMATCHED_DEPOSITS_MATCH = {
8502
+ method: "POST",
8503
+ path: "/v3/travel-rule/unmatched/{transaction_uuid}/match/",
8504
+ body: "json",
8505
+ dates: "TravelRuleManualMatchResponse"
8506
+ };
8123
8507
  var TRAVEL_RULE_WALLET_ADDRESSES_BULK_IMPORT = {
8124
8508
  method: "POST",
8125
8509
  path: "/v3/travel-rule/wallet-addresses/import/",
@@ -8388,6 +8772,35 @@ var TravelRuleTransfers = class extends APIResource {
8388
8772
  return this._client.requestPage(TRAVEL_RULE_TRANSFERS_LIST, [], params, options);
8389
8773
  }
8390
8774
  };
8775
+ var TravelRuleUnmatchedDeposits = class extends APIResource {
8776
+ /**
8777
+ * List unmatched Travel Rule deposits
8778
+ *
8779
+ * 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/`.
8780
+ *
8781
+ * `GET /v3/travel-rule/unmatched/`
8782
+ */
8783
+ list(params = {}, options) {
8784
+ return this._client.requestPage(TRAVEL_RULE_UNMATCHED_DEPOSITS_LIST, [], params, options);
8785
+ }
8786
+ /**
8787
+ * Match a Travel Rule deposit to a received message
8788
+ *
8789
+ * 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`.
8790
+ *
8791
+ * `POST /v3/travel-rule/unmatched/{transaction_uuid}/match/`
8792
+ *
8793
+ * @param transactionUuid The `transaction_id` of the unmatched deposit.
8794
+ */
8795
+ match(transactionUuid, params, options) {
8796
+ return this._client.request(
8797
+ TRAVEL_RULE_UNMATCHED_DEPOSITS_MATCH,
8798
+ [transactionUuid],
8799
+ params,
8800
+ options
8801
+ );
8802
+ }
8803
+ };
8391
8804
  var TravelRuleWalletAddresses = class extends APIResource {
8392
8805
  /**
8393
8806
  * Import wallet addresses in bulk
@@ -8539,6 +8952,9 @@ var TravelRule = class extends APIResource {
8539
8952
  counterpartyContacts = new TravelRuleCounterpartyContacts(this._client);
8540
8953
  networks = new TravelRuleNetworks(this._client);
8541
8954
  transfers = new TravelRuleTransfers(this._client);
8955
+ unmatchedDeposits = new TravelRuleUnmatchedDeposits(
8956
+ this._client
8957
+ );
8542
8958
  walletAddresses = new TravelRuleWalletAddresses(this._client);
8543
8959
  walletProofs = new TravelRuleWalletProofs(this._client);
8544
8960
  workspace = new TravelRuleWorkspaceResource(this._client);
@@ -8792,7 +9208,7 @@ var Users = class extends APIResource {
8792
9208
  *
8793
9209
  * **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.
8794
9210
  *
8795
- * **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.
9211
+ * **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.
8796
9212
  *
8797
9213
  * **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.
8798
9214
  *
@@ -11250,6 +11666,6 @@ function createNonce() {
11250
11666
  // src/index.ts
11251
11667
  var index_default = Didit;
11252
11668
 
11253
- 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, index_default as default, fileFromPath, parsePublishableKey, toFile, verifyWebhook, verifyWebhookParsed, webhooks };
11669
+ 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, index_default as default, fileFromPath, parsePublishableKey, toFile, verifyWebhook, verifyWebhookParsed, webhooks };
11254
11670
  //# sourceMappingURL=index.js.map
11255
11671
  //# sourceMappingURL=index.js.map