didit-sdk 1.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.
Files changed (234) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +25 -0
  3. data/LICENSE +21 -0
  4. data/README.md +277 -0
  5. data/lib/didit/authentication/base64_url.rb +34 -0
  6. data/lib/didit/authentication/cache.rb +201 -0
  7. data/lib/didit/authentication/http.rb +150 -0
  8. data/lib/didit/authentication/issuer.rb +115 -0
  9. data/lib/didit/authentication/jws.rb +231 -0
  10. data/lib/didit/authentication/key_set.rb +89 -0
  11. data/lib/didit/authentication/pkce.rb +64 -0
  12. data/lib/didit/authentication/types.rb +175 -0
  13. data/lib/didit/authentication.rb +546 -0
  14. data/lib/didit/client.rb +211 -0
  15. data/lib/didit/errors.rb +153 -0
  16. data/lib/didit/file_part.rb +85 -0
  17. data/lib/didit/internal/config.rb +94 -0
  18. data/lib/didit/internal/errors.rb +83 -0
  19. data/lib/didit/internal/log.rb +41 -0
  20. data/lib/didit/internal/multipart.rb +60 -0
  21. data/lib/didit/internal/request.rb +322 -0
  22. data/lib/didit/internal/transport.rb +198 -0
  23. data/lib/didit/internal/util.rb +76 -0
  24. data/lib/didit/internal.rb +15 -0
  25. data/lib/didit/model.rb +199 -0
  26. data/lib/didit/page.rb +130 -0
  27. data/lib/didit/raw_response.rb +57 -0
  28. data/lib/didit/resource.rb +15 -0
  29. data/lib/didit/resources/account.rb +309 -0
  30. data/lib/didit/resources/address_validation.rb +73 -0
  31. data/lib/didit/resources/age_estimation.rb +110 -0
  32. data/lib/didit/resources/aml.rb +166 -0
  33. data/lib/didit/resources/aml_monitoring.rb +30 -0
  34. data/lib/didit/resources/analytics.rb +87 -0
  35. data/lib/didit/resources/bank.rb +65 -0
  36. data/lib/didit/resources/billing.rb +61 -0
  37. data/lib/didit/resources/biometric_templates.rb +234 -0
  38. data/lib/didit/resources/blocklist.rb +130 -0
  39. data/lib/didit/resources/business_sessions.rb +29 -0
  40. data/lib/didit/resources/businesses.rb +471 -0
  41. data/lib/didit/resources/cases.rb +2116 -0
  42. data/lib/didit/resources/customization.rb +153 -0
  43. data/lib/didit/resources/database_validation.rb +327 -0
  44. data/lib/didit/resources/document_ai.rb +145 -0
  45. data/lib/didit/resources/email.rb +254 -0
  46. data/lib/didit/resources/face_match.rb +103 -0
  47. data/lib/didit/resources/face_search.rb +103 -0
  48. data/lib/didit/resources/fraud_checks.rb +130 -0
  49. data/lib/didit/resources/id_verification.rb +163 -0
  50. data/lib/didit/resources/id_wallets.rb +1468 -0
  51. data/lib/didit/resources/investigator.rb +419 -0
  52. data/lib/didit/resources/ip.rb +68 -0
  53. data/lib/didit/resources/kyb.rb +256 -0
  54. data/lib/didit/resources/lists.rb +332 -0
  55. data/lib/didit/resources/monitoring_events.rb +466 -0
  56. data/lib/didit/resources/networks.rb +427 -0
  57. data/lib/didit/resources/passive_liveness.rb +103 -0
  58. data/lib/didit/resources/phone.rb +271 -0
  59. data/lib/didit/resources/pricing.rb +40 -0
  60. data/lib/didit/resources/proof_of_address.rb +167 -0
  61. data/lib/didit/resources/questionnaires.rb +170 -0
  62. data/lib/didit/resources/regulatory_reports.rb +314 -0
  63. data/lib/didit/resources/report_templates.rb +146 -0
  64. data/lib/didit/resources/sessions.rb +2820 -0
  65. data/lib/didit/resources/transactions.rb +981 -0
  66. data/lib/didit/resources/travel_rule.rb +1202 -0
  67. data/lib/didit/resources/users.rb +521 -0
  68. data/lib/didit/resources/wallet_screening.rb +190 -0
  69. data/lib/didit/resources/webhooks.rb +396 -0
  70. data/lib/didit/resources/workflows.rb +214 -0
  71. data/lib/didit/resources.rb +263 -0
  72. data/lib/didit/types/account.rb +11 -0
  73. data/lib/didit/types/account_components.rb +105 -0
  74. data/lib/didit/types/address_validation.rb +8 -0
  75. data/lib/didit/types/age_estimation.rb +89 -0
  76. data/lib/didit/types/aml.rb +193 -0
  77. data/lib/didit/types/aml_monitoring.rb +73 -0
  78. data/lib/didit/types/analytics.rb +62 -0
  79. data/lib/didit/types/bank.rb +8 -0
  80. data/lib/didit/types/billing.rb +18 -0
  81. data/lib/didit/types/biometric_templates.rb +292 -0
  82. data/lib/didit/types/blocklist.rb +31 -0
  83. data/lib/didit/types/businesses.rb +45 -0
  84. data/lib/didit/types/cases.rb +368 -0
  85. data/lib/didit/types/components.rb +12206 -0
  86. data/lib/didit/types/customization.rb +8 -0
  87. data/lib/didit/types/database_validation.rb +177 -0
  88. data/lib/didit/types/document_ai.rb +135 -0
  89. data/lib/didit/types/email.rb +116 -0
  90. data/lib/didit/types/face_match.rb +93 -0
  91. data/lib/didit/types/face_search.rb +129 -0
  92. data/lib/didit/types/fraud_checks.rb +8 -0
  93. data/lib/didit/types/id_verification.rb +231 -0
  94. data/lib/didit/types/id_wallets.rb +8 -0
  95. data/lib/didit/types/investigator.rb +221 -0
  96. data/lib/didit/types/ip.rb +8 -0
  97. data/lib/didit/types/kyb.rb +1391 -0
  98. data/lib/didit/types/lists.rb +111 -0
  99. data/lib/didit/types/monitoring_events.rb +235 -0
  100. data/lib/didit/types/networks.rb +120 -0
  101. data/lib/didit/types/passive_liveness.rb +95 -0
  102. data/lib/didit/types/phone.rb +69 -0
  103. data/lib/didit/types/proof_of_address.rb +166 -0
  104. data/lib/didit/types/questionnaires.rb +29 -0
  105. data/lib/didit/types/regulatory_reports.rb +100 -0
  106. data/lib/didit/types/report_templates.rb +41 -0
  107. data/lib/didit/types/sessions.rb +1441 -0
  108. data/lib/didit/types/transactions.rb +245 -0
  109. data/lib/didit/types/travel_rule.rb +168 -0
  110. data/lib/didit/types/users.rb +180 -0
  111. data/lib/didit/types/wallet_screening.rb +49 -0
  112. data/lib/didit/types/webhooks.rb +355 -0
  113. data/lib/didit/types/workflows.rb +32 -0
  114. data/lib/didit/types.rb +1681 -0
  115. data/lib/didit/version.rb +5 -0
  116. data/lib/didit/webhooks/canonical_json.rb +187 -0
  117. data/lib/didit/webhooks/client_methods.rb +23 -0
  118. data/lib/didit/webhooks/events.rb +221 -0
  119. data/lib/didit/webhooks/headers.rb +83 -0
  120. data/lib/didit/webhooks/verifier.rb +260 -0
  121. data/lib/didit/webhooks.rb +99 -0
  122. data/lib/didit-sdk.rb +4 -0
  123. data/lib/didit.rb +31 -0
  124. data/sig/didit/authentication/base64_url.rbs +10 -0
  125. data/sig/didit/authentication/cache.rbs +60 -0
  126. data/sig/didit/authentication/http.rbs +37 -0
  127. data/sig/didit/authentication/issuer.rbs +17 -0
  128. data/sig/didit/authentication/jws.rbs +41 -0
  129. data/sig/didit/authentication/jwt.rbs +14 -0
  130. data/sig/didit/authentication/key_set.rbs +25 -0
  131. data/sig/didit/authentication/pkce.rbs +20 -0
  132. data/sig/didit/authentication/types.rbs +114 -0
  133. data/sig/didit/authentication.rbs +81 -0
  134. data/sig/didit/client.rbs +61 -0
  135. data/sig/didit/errors.rbs +80 -0
  136. data/sig/didit/file_part.rbs +19 -0
  137. data/sig/didit/internal.rbs +199 -0
  138. data/sig/didit/model.rbs +42 -0
  139. data/sig/didit/page.rbs +34 -0
  140. data/sig/didit/raw_response.rbs +20 -0
  141. data/sig/didit/resource.rbs +8 -0
  142. data/sig/didit/resources/account.rbs +23 -0
  143. data/sig/didit/resources/address_validation.rbs +9 -0
  144. data/sig/didit/resources/age_estimation.rbs +9 -0
  145. data/sig/didit/resources/aml.rbs +10 -0
  146. data/sig/didit/resources/aml_monitoring.rbs +9 -0
  147. data/sig/didit/resources/analytics.rbs +9 -0
  148. data/sig/didit/resources/bank.rbs +9 -0
  149. data/sig/didit/resources/billing.rbs +10 -0
  150. data/sig/didit/resources/biometric_templates.rbs +13 -0
  151. data/sig/didit/resources/blocklist.rbs +11 -0
  152. data/sig/didit/resources/business_sessions.rbs +9 -0
  153. data/sig/didit/resources/businesses.rbs +22 -0
  154. data/sig/didit/resources/cases.rbs +103 -0
  155. data/sig/didit/resources/customization.rbs +10 -0
  156. data/sig/didit/resources/database_validation.rbs +9 -0
  157. data/sig/didit/resources/document_ai.rbs +9 -0
  158. data/sig/didit/resources/email.rbs +11 -0
  159. data/sig/didit/resources/face_match.rbs +9 -0
  160. data/sig/didit/resources/face_search.rbs +9 -0
  161. data/sig/didit/resources/fraud_checks.rbs +11 -0
  162. data/sig/didit/resources/id_verification.rbs +9 -0
  163. data/sig/didit/resources/id_wallets.rbs +37 -0
  164. data/sig/didit/resources/investigator.rbs +23 -0
  165. data/sig/didit/resources/ip.rbs +9 -0
  166. data/sig/didit/resources/kyb.rbs +12 -0
  167. data/sig/didit/resources/lists.rbs +20 -0
  168. data/sig/didit/resources/monitoring_events.rbs +16 -0
  169. data/sig/didit/resources/networks.rbs +25 -0
  170. data/sig/didit/resources/passive_liveness.rbs +9 -0
  171. data/sig/didit/resources/phone.rbs +11 -0
  172. data/sig/didit/resources/pricing.rbs +9 -0
  173. data/sig/didit/resources/proof_of_address.rbs +9 -0
  174. data/sig/didit/resources/questionnaires.rbs +13 -0
  175. data/sig/didit/resources/regulatory_reports.rbs +16 -0
  176. data/sig/didit/resources/report_templates.rbs +13 -0
  177. data/sig/didit/resources/sessions.rbs +78 -0
  178. data/sig/didit/resources/transactions.rbs +43 -0
  179. data/sig/didit/resources/travel_rule.rbs +62 -0
  180. data/sig/didit/resources/users.rbs +21 -0
  181. data/sig/didit/resources/wallet_screening.rbs +11 -0
  182. data/sig/didit/resources/webhooks.rbs +23 -0
  183. data/sig/didit/resources/workflows.rbs +13 -0
  184. data/sig/didit/resources.rbs +50 -0
  185. data/sig/didit/types/account.rbs +22 -0
  186. data/sig/didit/types/account_components.rbs +94 -0
  187. data/sig/didit/types/address_validation.rbs +7 -0
  188. data/sig/didit/types/age_estimation.rbs +80 -0
  189. data/sig/didit/types/aml.rbs +174 -0
  190. data/sig/didit/types/aml_monitoring.rbs +67 -0
  191. data/sig/didit/types/analytics.rbs +57 -0
  192. data/sig/didit/types/bank.rbs +9 -0
  193. data/sig/didit/types/billing.rbs +19 -0
  194. data/sig/didit/types/biometric_templates.rbs +268 -0
  195. data/sig/didit/types/blocklist.rbs +33 -0
  196. data/sig/didit/types/businesses.rbs +54 -0
  197. data/sig/didit/types/cases.rbs +414 -0
  198. data/sig/didit/types/components.rbs +10920 -0
  199. data/sig/didit/types/customization.rbs +7 -0
  200. data/sig/didit/types/database_validation.rbs +152 -0
  201. data/sig/didit/types/document_ai.rbs +123 -0
  202. data/sig/didit/types/email.rbs +112 -0
  203. data/sig/didit/types/face_match.rbs +86 -0
  204. data/sig/didit/types/face_search.rbs +112 -0
  205. data/sig/didit/types/fraud_checks.rbs +9 -0
  206. data/sig/didit/types/id_verification.rbs +196 -0
  207. data/sig/didit/types/id_wallets.rbs +55 -0
  208. data/sig/didit/types/investigator.rbs +212 -0
  209. data/sig/didit/types/ip.rbs +7 -0
  210. data/sig/didit/types/kyb.rbs +1254 -0
  211. data/sig/didit/types/lists.rbs +106 -0
  212. data/sig/didit/types/monitoring_events.rbs +234 -0
  213. data/sig/didit/types/networks.rbs +113 -0
  214. data/sig/didit/types/passive_liveness.rbs +87 -0
  215. data/sig/didit/types/phone.rbs +65 -0
  216. data/sig/didit/types/proof_of_address.rbs +144 -0
  217. data/sig/didit/types/questionnaires.rbs +30 -0
  218. data/sig/didit/types/regulatory_reports.rbs +101 -0
  219. data/sig/didit/types/report_templates.rbs +42 -0
  220. data/sig/didit/types/sessions.rbs +1349 -0
  221. data/sig/didit/types/transactions.rbs +273 -0
  222. data/sig/didit/types/travel_rule.rbs +188 -0
  223. data/sig/didit/types/users.rbs +181 -0
  224. data/sig/didit/types/wallet_screening.rbs +40 -0
  225. data/sig/didit/types/webhooks.rbs +311 -0
  226. data/sig/didit/types/workflows.rbs +30 -0
  227. data/sig/didit/webhooks/canonical_json.rbs +25 -0
  228. data/sig/didit/webhooks/client_methods.rbs +11 -0
  229. data/sig/didit/webhooks/events.rbs +125 -0
  230. data/sig/didit/webhooks/headers.rbs +22 -0
  231. data/sig/didit/webhooks/verifier.rbs +54 -0
  232. data/sig/didit/webhooks.rbs +37 -0
  233. data/sig/didit.rbs +20 -0
  234. metadata +300 -0
@@ -0,0 +1,1441 @@
1
+ # Code generated by codegen from openapi/*.json. DO NOT EDIT.
2
+ # frozen_string_literal: true
3
+
4
+ module Didit
5
+ module Types
6
+ # `kyc` adds the file to the ID verification result, `poa` to the Proof of Address result.
7
+ module SessionsAddImagesParamsModelType
8
+ KYC = "kyc"
9
+ POA = "poa"
10
+
11
+ VALUES = [KYC, POA].freeze
12
+ end
13
+
14
+ # The class of instruction you are giving. `operational_session_delete` deletes the session and retains a template
15
+ # only when the policy or `retain_face_embeddings` says so. `privacy_erasure` purges every retained biometric
16
+ # template anchored to the session's User before deleting the session, cannot be overridden by the application
17
+ # policy, and cannot be combined with `retain_face_embeddings: true` (`400`).
18
+ module SessionsBatchDeleteParamsDeletionInstruction
19
+ OPERATIONAL_SESSION_DELETE = "operational_session_delete"
20
+ PRIVACY_ERASURE = "privacy_erasure"
21
+
22
+ VALUES = [OPERATIONAL_SESSION_DELETE, PRIVACY_ERASURE].freeze
23
+ end
24
+
25
+ # What happened to the session's face biometric data. `deleted`: the face embedding was deleted with the session
26
+ # (default). `retained_with_user`: the session is deleted and one image-free biometric template stays anchored to
27
+ # the User; see `biometric_template_uuid`. `none`: the session had no face embedding (for example a document-only
28
+ # KYC session without a liveness selfie; KYB sessions are never selected by this endpoint).
29
+ # `ineligible_no_vendor_user`: retention was requested but the session has no linked User, so the embedding was
30
+ # deleted with the session. `failed_retryable` (batch endpoint only): the group this session was deleted with
31
+ # could not be deleted (a storage service, a biometric store, or a monitoring provider was unavailable); this
32
+ # session is still in place, repeat the request for it.
33
+ module SessionsBatchDeleteResponseResultsFaceRetentionOutcome
34
+ RETAINED_WITH_USER = "retained_with_user"
35
+ DELETED = "deleted"
36
+ NONE = "none"
37
+ INELIGIBLE_NO_VENDOR_USER = "ineligible_no_vendor_user"
38
+ FAILED_RETRYABLE = "failed_retryable"
39
+
40
+ VALUES = [RETAINED_WITH_USER, DELETED, NONE, INELIGIBLE_NO_VENDOR_USER, FAILED_RETRYABLE].freeze
41
+ end
42
+
43
+ # Known values of an open enum: the API may send others.
44
+ module SessionsBulkUpdateAmlHitStatusParamsHitUpdatesReviewStatus
45
+ UNREVIEWED = "Unreviewed"
46
+ CONFIRMED_MATCH = "Confirmed Match"
47
+ FALSE_POSITIVE = "False Positive"
48
+ INCONCLUSIVE = "Inconclusive"
49
+
50
+ VALUES = [UNREVIEWED, CONFIRMED_MATCH, FALSE_POSITIVE, INCONCLUSIVE].freeze
51
+ end
52
+
53
+ # Determines which device should handle the redirect to the provided callback URL. Use `initiator` to redirect
54
+ # only the device that started the flow, `completer` for the device that finishes it, or `both` to allow either
55
+ # device to trigger the callback. If you ever notice the callback not triggering reliably, we recommend setting
56
+ # this value to `both`.
57
+ module SessionsCreateParamsCallbackMethod
58
+ INITIATOR = "initiator"
59
+ COMPLETER = "completer"
60
+ BOTH = "both"
61
+
62
+ VALUES = [INITIATOR, COMPLETER, BOTH].freeze
63
+ end
64
+
65
+ # Language code (ISO 639-1) for email notifications. Controls the language of all email communications (e.g.,
66
+ # "en", "es", "fr"). There is no stored default - when omitted, the verification invite email simply falls back to
67
+ # English (`en`) at send time. The enum below is a snapshot; the live source of truth for accepted values is the
68
+ # [supported languages](/integration/supported-languages) doc - always consult it before relying on a specific
69
+ # code.
70
+ module SessionsCreateParamsContactDetailsEmailLang
71
+ EN = "en"
72
+ AR = "ar"
73
+ BG = "bg"
74
+ BN = "bn"
75
+ BS = "bs"
76
+ CA = "ca"
77
+ CNR = "cnr"
78
+ CS = "cs"
79
+ DA = "da"
80
+ DE = "de"
81
+ EL = "el"
82
+ ES = "es"
83
+ ET = "et"
84
+ FA = "fa"
85
+ FI = "fi"
86
+ FR = "fr"
87
+ HE = "he"
88
+ HI = "hi"
89
+ HR = "hr"
90
+ HU = "hu"
91
+ HY = "hy"
92
+ ID = "id"
93
+ IT = "it"
94
+ JA = "ja"
95
+ KA = "ka"
96
+ KK = "kk"
97
+ KO = "ko"
98
+ KY = "ky"
99
+ LT = "lt"
100
+ LV = "lv"
101
+ MK = "mk"
102
+ MN = "mn"
103
+ MS = "ms"
104
+ NL = "nl"
105
+ NO = "no"
106
+ PL = "pl"
107
+ PT_BR = "pt-BR"
108
+ PT = "pt"
109
+ RO = "ro"
110
+ RU = "ru"
111
+ SK = "sk"
112
+ SL = "sl"
113
+ SO = "so"
114
+ SQ = "sq"
115
+ SR = "sr"
116
+ SV = "sv"
117
+ TH = "th"
118
+ TR = "tr"
119
+ UK = "uk"
120
+ UZ = "uz"
121
+ VI = "vi"
122
+ ZH_CN = "zh-CN"
123
+ ZH_TW = "zh-TW"
124
+ ZH = "zh"
125
+
126
+ VALUES = [EN, AR, BG, BN, BS, CA, CNR, CS, DA, DE, EL, ES, ET, FA, FI, FR, HE, HI, HR, HU, HY, ID, IT, JA, KA, KK, KO, KY, LT, LV, MK, MN, MS, NL, NO, PL, PT_BR, PT, RO, RU, SK, SL, SO, SQ, SR, SV, TH, TR, UK, UZ, VI, ZH_CN, ZH_TW, ZH].freeze
127
+ end
128
+
129
+ # Known values of an open enum: the API may send others.
130
+ module SessionsCreateParamsExpectedDetailsExpectedDocumentTypes
131
+ P = "P"
132
+ ID = "ID"
133
+ DL = "DL"
134
+ RP = "RP"
135
+ HIC = "HIC"
136
+ TC = "TC"
137
+ SSC = "SSC"
138
+
139
+ VALUES = [P, ID, DL, RP, HIC, TC, SSC].freeze
140
+ end
141
+
142
+ # User's gender. Must be either 'M', 'F', or null.
143
+ module SessionsCreateParamsExpectedDetailsGender
144
+ M = "M"
145
+ F = "F"
146
+
147
+ VALUES = [M, F].freeze
148
+ end
149
+
150
+ # Language code (ISO 639-1) for the verification process interface. Controls the language displayed to the end
151
+ # user during verification. If not provided, the browser's language will be automatically detected and used. Check
152
+ # all the supported languages [here](/integration/supported-languages).
153
+ module SessionsCreateParamsLanguage
154
+ EN = "en"
155
+ AR = "ar"
156
+ BG = "bg"
157
+ BN = "bn"
158
+ BS = "bs"
159
+ CA = "ca"
160
+ CNR = "cnr"
161
+ CS = "cs"
162
+ DA = "da"
163
+ DE = "de"
164
+ EL = "el"
165
+ ES = "es"
166
+ ET = "et"
167
+ FA = "fa"
168
+ FI = "fi"
169
+ FR = "fr"
170
+ HE = "he"
171
+ HI = "hi"
172
+ HR = "hr"
173
+ HU = "hu"
174
+ HY = "hy"
175
+ ID = "id"
176
+ IT = "it"
177
+ JA = "ja"
178
+ KA = "ka"
179
+ KK = "kk"
180
+ KO = "ko"
181
+ KY = "ky"
182
+ LT = "lt"
183
+ LV = "lv"
184
+ MK = "mk"
185
+ MN = "mn"
186
+ MS = "ms"
187
+ NL = "nl"
188
+ NO = "no"
189
+ PL = "pl"
190
+ PT_BR = "pt-BR"
191
+ PT = "pt"
192
+ RO = "ro"
193
+ RU = "ru"
194
+ SK = "sk"
195
+ SL = "sl"
196
+ SO = "so"
197
+ SQ = "sq"
198
+ SR = "sr"
199
+ SV = "sv"
200
+ TH = "th"
201
+ TR = "tr"
202
+ UK = "uk"
203
+ UZ = "uz"
204
+ VI = "vi"
205
+ ZH_CN = "zh-CN"
206
+ ZH_TW = "zh-TW"
207
+ ZH = "zh"
208
+
209
+ VALUES = [EN, AR, BG, BN, BS, CA, CNR, CS, DA, DE, EL, ES, ET, FA, FI, FR, HE, HI, HR, HU, HY, ID, IT, JA, KA, KK, KO, KY, LT, LV, MK, MN, MS, NL, NO, PL, PT_BR, PT, RO, RU, SK, SL, SO, SQ, SR, SV, TH, TR, UK, UZ, VI, ZH_CN, ZH_TW, ZH].freeze
210
+ end
211
+
212
+ # Current status of the session. Newly created sessions return `Not Started`. If a non-finished session already
213
+ # existed for the same `vendor_data` on the workflow's latest published version, the returned status reflects that
214
+ # existing session.
215
+ module SessionsCreateResponseStatus
216
+ NOT_STARTED = "Not Started"
217
+ IN_PROGRESS = "In Progress"
218
+ APPROVED = "Approved"
219
+ DECLINED = "Declined"
220
+ IN_REVIEW = "In Review"
221
+ EXPIRED = "Expired"
222
+ ABANDONED = "Abandoned"
223
+ KYC_EXPIRED = "Kyc Expired"
224
+ RESUBMITTED = "Resubmitted"
225
+ AWAITING_USER = "Awaiting User"
226
+
227
+ VALUES = [NOT_STARTED, IN_PROGRESS, APPROVED, DECLINED, IN_REVIEW, EXPIRED, ABANDONED, KYC_EXPIRED, RESUBMITTED, AWAITING_USER].freeze
228
+ end
229
+
230
+ # The class of instruction you are giving. `operational_session_delete` deletes the session and retains a template
231
+ # only when the policy or `retain_face_embeddings` says so. `privacy_erasure` purges every retained biometric
232
+ # template anchored to the session's User before deleting the session, cannot be overridden by the application
233
+ # policy, and cannot be combined with `retain_face_embeddings: true` (`400`).
234
+ module SessionsDeleteParamsDeletionInstruction
235
+ OPERATIONAL_SESSION_DELETE = "operational_session_delete"
236
+ PRIVACY_ERASURE = "privacy_erasure"
237
+
238
+ VALUES = [OPERATIONAL_SESSION_DELETE, PRIVACY_ERASURE].freeze
239
+ end
240
+
241
+ # What happened to the session's face biometric data. `deleted`: the face embedding was deleted with the session
242
+ # (default). `retained_with_user`: the session is deleted and one image-free biometric template stays anchored to
243
+ # the User; see `biometric_template_uuid`. `none`: the session had no face embedding (for example a KYB session,
244
+ # or a KYC session without a liveness selfie). `ineligible_no_vendor_user`: retention was requested but the
245
+ # session has no linked User, so the embedding was deleted with the session. A biometric-store failure is never
246
+ # reported through this field on this endpoint: it returns `503` and the session is not deleted.
247
+ module SessionsDeleteResponseFaceRetentionOutcome
248
+ RETAINED_WITH_USER = "retained_with_user"
249
+ DELETED = "deleted"
250
+ NONE = "none"
251
+ INELIGIBLE_NO_VENDOR_USER = "ineligible_no_vendor_user"
252
+
253
+ VALUES = [RETAINED_WITH_USER, DELETED, NONE, INELIGIBLE_NO_VENDOR_USER].freeze
254
+ end
255
+
256
+ # Migration source, from `GET /v3/session/imports/providers/`. Required when `source` is `provider`.
257
+ module SessionsImportsCheckProviderParamsProvider
258
+ SUMSUB = "sumsub"
259
+ JUMIO = "jumio"
260
+ VERIFF = "veriff"
261
+ ONFIDO = "onfido"
262
+ PERSONA = "persona"
263
+ METAMAP = "metamap"
264
+ SOCURE = "socure"
265
+ IDNOW = "idnow"
266
+ SHUFTI = "shufti"
267
+ IDENFY = "idenfy"
268
+ ONDATO = "ondato"
269
+ TRULIOO = "trulioo"
270
+ AU10TIX = "au10tix"
271
+ COMPLYCUBE = "complycube"
272
+ OTHER = "other"
273
+
274
+ VALUES = [SUMSUB, JUMIO, VERIFF, ONFIDO, PERSONA, METAMAP, SOCURE, IDNOW, SHUFTI, IDENFY, ONDATO, TRULIOO, AU10TIX, COMPLYCUBE, OTHER].freeze
275
+ end
276
+
277
+ # What to import: historical User Verification sessions, historical Business Verification sessions, workflow
278
+ # custom status rules, or historical transaction monitoring records.
279
+ module SessionsImportsCreateParamsImportType
280
+ USER_VERIFICATION = "user_verification"
281
+ BUSINESS_VERIFICATION = "business_verification"
282
+ STATUS_RULES = "status_rules"
283
+ TRANSACTIONS = "transactions"
284
+
285
+ VALUES = [USER_VERIFICATION, BUSINESS_VERIFICATION, STATUS_RULES, TRANSACTIONS].freeze
286
+ end
287
+
288
+ # Migration source, from `GET /v3/session/imports/providers/`. Required when `source` is `provider`.
289
+ module SessionsImportsCreateParamsProvider
290
+ SUMSUB = "sumsub"
291
+ JUMIO = "jumio"
292
+ VERIFF = "veriff"
293
+ ONFIDO = "onfido"
294
+ PERSONA = "persona"
295
+ METAMAP = "metamap"
296
+ SOCURE = "socure"
297
+ IDNOW = "idnow"
298
+ SHUFTI = "shufti"
299
+ IDENFY = "idenfy"
300
+ ONDATO = "ondato"
301
+ TRULIOO = "trulioo"
302
+ AU10TIX = "au10tix"
303
+ COMPLYCUBE = "complycube"
304
+ OTHER = "other"
305
+
306
+ VALUES = [SUMSUB, JUMIO, VERIFF, ONFIDO, PERSONA, METAMAP, SOCURE, IDNOW, SHUFTI, IDENFY, ONDATO, TRULIOO, AU10TIX, COMPLYCUBE, OTHER].freeze
307
+ end
308
+
309
+ # `provider` makes this a migration from another identity verification provider. Omit for a file import.
310
+ module SessionsImportsCreateParamsSource
311
+ FILE = "file"
312
+ PROVIDER = "provider"
313
+
314
+ VALUES = [FILE, PROVIDER].freeze
315
+ end
316
+
317
+ # Optional. Inferred from the URL's file extension when omitted.
318
+ module SessionsImportsCreateParamsSourceFormat
319
+ CSV = "csv"
320
+ NDJSON = "ndjson"
321
+
322
+ VALUES = [CSV, NDJSON].freeze
323
+ end
324
+
325
+ # Known values of an open enum: the API may send others.
326
+ module SessionsImportsCreateParamsStatusMappingValue
327
+ APPROVED = "Approved"
328
+ DECLINED = "Declined"
329
+ IN_REVIEW = "In Review"
330
+ EXPIRED = "Expired"
331
+ NOT_FINISHED = "Not Finished"
332
+ ABANDONED = "Abandoned"
333
+
334
+ VALUES = [APPROVED, DECLINED, IN_REVIEW, EXPIRED, NOT_FINISHED, ABANDONED].freeze
335
+ end
336
+
337
+ # Known values of an open enum: the API may send others.
338
+ module SessionsImportsListJobsParamsScope
339
+ ALL = "all"
340
+ SESSIONS = "sessions"
341
+ USERS = "users"
342
+ BUSINESSES = "businesses"
343
+
344
+ VALUES = [ALL, SESSIONS, USERS, BUSINESSES].freeze
345
+ end
346
+
347
+ # Known values of an open enum: the API may send others.
348
+ module SessionsImportsRetrieveTemplateParamsImportType
349
+ USER_VERIFICATION = "user_verification"
350
+ BUSINESS_VERIFICATION = "business_verification"
351
+ STATUS_RULES = "status_rules"
352
+ TRANSACTIONS = "transactions"
353
+
354
+ VALUES = [USER_VERIFICATION, BUSINESS_VERIFICATION, STATUS_RULES, TRANSACTIONS].freeze
355
+ end
356
+
357
+ # Known values of an open enum: the API may send others.
358
+ module SessionsImportsStartParamsStatusMappingValue
359
+ APPROVED = "Approved"
360
+ DECLINED = "Declined"
361
+ IN_REVIEW = "In Review"
362
+ EXPIRED = "Expired"
363
+ NOT_FINISHED = "Not Finished"
364
+ ABANDONED = "Abandoned"
365
+
366
+ VALUES = [APPROVED, DECLINED, IN_REVIEW, EXPIRED, NOT_FINISHED, ABANDONED].freeze
367
+ end
368
+
369
+ # Known values of an open enum: the API may send others.
370
+ module SessionsListParamsApiService
371
+ ID_VERIFICATION = "ID_VERIFICATION"
372
+ FACE_MATCH = "FACE_MATCH"
373
+ AGE_ESTIMATION = "AGE_ESTIMATION"
374
+ FACE_SEARCH = "FACE_SEARCH"
375
+ POA = "POA"
376
+ AML = "AML"
377
+ KYB_REGISTRY = "KYB_REGISTRY"
378
+ PASSIVE_LIVENESS = "PASSIVE_LIVENESS"
379
+ DATABASE_VALIDATION = "DATABASE_VALIDATION"
380
+ PHONE_VERIFICATION = "PHONE_VERIFICATION"
381
+ EMAIL_VERIFICATION = "EMAIL_VERIFICATION"
382
+
383
+ VALUES = [ID_VERIFICATION, FACE_MATCH, AGE_ESTIMATION, FACE_SEARCH, POA, AML, KYB_REGISTRY, PASSIVE_LIVENESS, DATABASE_VALIDATION, PHONE_VERIFICATION, EMAIL_VERIFICATION].freeze
384
+ end
385
+
386
+ # Known values of an open enum: the API may send others.
387
+ module SessionsListParamsSessionKind
388
+ USER = "user"
389
+ BUSINESS = "business"
390
+ ALL = "all"
391
+
392
+ VALUES = [USER, BUSINESS, ALL].freeze
393
+ end
394
+
395
+ # Human-readable type of the verified ID document. `null` before document verification completes, and also `null`
396
+ # after completion when the verified code has no display mapping (`SSC`, `WP`, `VISA`, `PSC`, `BC`, `OTHER`).
397
+ # Note: the `document_type` query parameter filters by short codes (`P`, `ID`, `DL`, `RP`, ...), not by these
398
+ # display values.
399
+ module SessionsListResponseResultsDocumentType
400
+ PASSPORT = "Passport"
401
+ IDENTITY_CARD = "Identity Card"
402
+ DRIVER_S_LICENSE = "Driver's License"
403
+ RESIDENCE_PERMIT = "Residence Permit"
404
+ HEALTH_INSURANCE_CARD = "Health Insurance Card"
405
+ TAX_CARD = "Tax Card"
406
+
407
+ VALUES = [PASSPORT, IDENTITY_CARD, DRIVER_S_LICENSE, RESIDENCE_PERMIT, HEALTH_INSURANCE_CARD, TAX_CARD].freeze
408
+ end
409
+
410
+ # Verification feature identifier.
411
+ module SessionsListResponseResultsFeaturesFeature
412
+ ID_VERIFICATION = "ID_VERIFICATION"
413
+ NFC = "NFC"
414
+ LIVENESS = "LIVENESS"
415
+ FACE_MATCH = "FACE_MATCH"
416
+ POA = "POA"
417
+ QUESTIONNAIRE = "QUESTIONNAIRE"
418
+ EMAIL_VERIFICATION = "EMAIL_VERIFICATION"
419
+ PHONE = "PHONE"
420
+ AML = "AML"
421
+ IP_ANALYSIS = "IP_ANALYSIS"
422
+ AGE_ESTIMATION = "AGE_ESTIMATION"
423
+ DATABASE_VALIDATION = "DATABASE_VALIDATION"
424
+
425
+ VALUES = [ID_VERIFICATION, NFC, LIVENESS, FACE_MATCH, POA, QUESTIONNAIRE, EMAIL_VERIFICATION, PHONE, AML, IP_ANALYSIS, AGE_ESTIMATION, DATABASE_VALIDATION].freeze
426
+ end
427
+
428
+ # Status of this feature. `Not Finished` until the step completes.
429
+ module SessionsListResponseResultsFeaturesStatus
430
+ NOT_FINISHED = "Not Finished"
431
+ APPROVED = "Approved"
432
+ DECLINED = "Declined"
433
+ IN_REVIEW = "In Review"
434
+ RESUB_REQUESTED = "Resub Requested"
435
+
436
+ VALUES = [NOT_FINISHED, APPROVED, DECLINED, IN_REVIEW, RESUB_REQUESTED].freeze
437
+ end
438
+
439
+ # Row discriminator. Always `"user"` for KYC rows; Business Verification (KYB) rows have `"business"` and a
440
+ # different shape.
441
+ module SessionsListResponseResultsSessionKind
442
+ USER = "user"
443
+
444
+ VALUES = [USER].freeze
445
+ end
446
+
447
+ # Overall session status. See the [Verification Statuses](/integration/verification-statuses) page for the
448
+ # lifecycle.
449
+ module SessionsListResponseResultsStatus
450
+ NOT_STARTED = "Not Started"
451
+ IN_PROGRESS = "In Progress"
452
+ APPROVED = "Approved"
453
+ DECLINED = "Declined"
454
+ IN_REVIEW = "In Review"
455
+ EXPIRED = "Expired"
456
+ ABANDONED = "Abandoned"
457
+ KYC_EXPIRED = "Kyc Expired"
458
+ RESUBMITTED = "Resubmitted"
459
+ AWAITING_USER = "Awaiting User"
460
+
461
+ VALUES = [NOT_STARTED, IN_PROGRESS, APPROVED, DECLINED, IN_REVIEW, EXPIRED, ABANDONED, KYC_EXPIRED, RESUBMITTED, AWAITING_USER].freeze
462
+ end
463
+
464
+ # The decision whose email you want to preview.
465
+ module SessionsPreviewDecisionEmailParamsNewStatus
466
+ APPROVED = "Approved"
467
+ DECLINED = "Declined"
468
+
469
+ VALUES = [APPROVED, DECLINED].freeze
470
+ end
471
+
472
+ # Why confirming would send no email, or `null` when it will be sent. `status_unchanged`: the session already has
473
+ # this status, so the update changes nothing and sends nothing. `notification_emails_disabled`: the session was
474
+ # created without `contact_details.send_notification_emails: true`, so no decision email goes to the address given
475
+ # in `contact_details`. `no_recipient`: no address is known for the person. `sandbox`: a sandbox session whose
476
+ # recipient has not opted into sandbox email delivery, so the send is only simulated.
477
+ module SessionsPreviewDecisionEmailResponseNotSentReason
478
+ STATUS_UNCHANGED = "status_unchanged"
479
+ NOTIFICATION_EMAILS_DISABLED = "notification_emails_disabled"
480
+ NO_RECIPIENT = "no_recipient"
481
+ SANDBOX = "sandbox"
482
+
483
+ VALUES = [STATUS_UNCHANGED, NOTIFICATION_EMAILS_DISABLED, NO_RECIPIENT, SANDBOX].freeze
484
+ end
485
+
486
+ # Where `recipient` comes from. `email_verification`: the address the person verified in an email verification
487
+ # step of the flow. `contact_details`: the address given in `contact_details` when the session was created. An
488
+ # empty string when there is no address.
489
+ module SessionsPreviewDecisionEmailResponseRecipientSource
490
+ EMAIL_VERIFICATION = "email_verification"
491
+ CONTACT_DETAILS = "contact_details"
492
+ VALUE = ""
493
+
494
+ VALUES = [EMAIL_VERIFICATION, CONTACT_DETAILS, VALUE].freeze
495
+ end
496
+
497
+ # `customer`: the email goes out from your application's verified sender domain (white label). `didit`: it goes
498
+ # out from Didit's own sender.
499
+ module SessionsPreviewDecisionEmailResponseSenderKind
500
+ CUSTOMER = "customer"
501
+ DIDIT = "didit"
502
+
503
+ VALUES = [CUSTOMER, DIDIT].freeze
504
+ end
505
+
506
+ # Feature type of the node. The aliases `ID_VERIFICATION`, `POA`, `PHONE`, and `EMAIL` are normalized server-side
507
+ # to `OCR`, `PROOF_OF_ADDRESS`, `PHONE_VERIFICATION`, and `EMAIL_VERIFICATION`. `KYB_REGISTRY`, `KYB_KEY_PEOPLE`,
508
+ # and `KYB` pass schema validation but are always rejected with the business-rule `400` shown in the examples.
509
+ module SessionsPreviewResubmissionParamsNodesToResubmitFeature
510
+ OCR = "OCR"
511
+ OCR_BACK = "OCR_BACK"
512
+ NFC = "NFC"
513
+ AML = "AML"
514
+ FACE = "FACE"
515
+ LIVENESS = "LIVENESS"
516
+ FACE_MATCH = "FACE_MATCH"
517
+ IP_ANALYSIS = "IP_ANALYSIS"
518
+ AGE_ESTIMATION = "AGE_ESTIMATION"
519
+ PROOF_OF_ADDRESS = "PROOF_OF_ADDRESS"
520
+ PHONE_VERIFICATION = "PHONE_VERIFICATION"
521
+ EMAIL_VERIFICATION = "EMAIL_VERIFICATION"
522
+ FACE_SEARCH = "FACE_SEARCH"
523
+ DATABASE_VALIDATION = "DATABASE_VALIDATION"
524
+ QUESTIONNAIRE = "QUESTIONNAIRE"
525
+ DOCUMENT_AI = "DOCUMENT_AI"
526
+ KYB_DOCUMENTS = "KYB_DOCUMENTS"
527
+ ID_VERIFICATION = "ID_VERIFICATION"
528
+ POA = "POA"
529
+ PHONE = "PHONE"
530
+ EMAIL = "EMAIL"
531
+ KYB_REGISTRY = "KYB_REGISTRY"
532
+ KYB_KEY_PEOPLE = "KYB_KEY_PEOPLE"
533
+ KYB = "KYB"
534
+
535
+ VALUES = [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].freeze
536
+ end
537
+
538
+ # Feature type of the node. The aliases `ID_VERIFICATION`, `POA`, `PHONE`, and `EMAIL` are normalized server-side
539
+ # to `OCR`, `PROOF_OF_ADDRESS`, `PHONE_VERIFICATION`, and `EMAIL_VERIFICATION`. `KYB_REGISTRY`, `KYB_KEY_PEOPLE`,
540
+ # and `KYB` pass schema validation but are always rejected with the business-rule `400` shown in the examples.
541
+ module SessionsPreviewResubmissionResponseNodesToResubmitFeature
542
+ OCR = "OCR"
543
+ OCR_BACK = "OCR_BACK"
544
+ NFC = "NFC"
545
+ AML = "AML"
546
+ FACE = "FACE"
547
+ LIVENESS = "LIVENESS"
548
+ FACE_MATCH = "FACE_MATCH"
549
+ IP_ANALYSIS = "IP_ANALYSIS"
550
+ AGE_ESTIMATION = "AGE_ESTIMATION"
551
+ PROOF_OF_ADDRESS = "PROOF_OF_ADDRESS"
552
+ PHONE_VERIFICATION = "PHONE_VERIFICATION"
553
+ EMAIL_VERIFICATION = "EMAIL_VERIFICATION"
554
+ FACE_SEARCH = "FACE_SEARCH"
555
+ DATABASE_VALIDATION = "DATABASE_VALIDATION"
556
+ QUESTIONNAIRE = "QUESTIONNAIRE"
557
+ DOCUMENT_AI = "DOCUMENT_AI"
558
+ KYB_DOCUMENTS = "KYB_DOCUMENTS"
559
+ ID_VERIFICATION = "ID_VERIFICATION"
560
+ POA = "POA"
561
+ PHONE = "PHONE"
562
+ EMAIL = "EMAIL"
563
+ KYB_REGISTRY = "KYB_REGISTRY"
564
+ KYB_KEY_PEOPLE = "KYB_KEY_PEOPLE"
565
+ KYB = "KYB"
566
+
567
+ VALUES = [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].freeze
568
+ end
569
+
570
+ # Why confirming would send no email, or `null` when it will be sent. `no_user_action`: every selected step runs
571
+ # without the person, so the resubmission finishes on its own and no email goes out. `no_recipient`: no address is
572
+ # known for the person and you passed none. `sandbox`: a sandbox session whose recipient has not opted into
573
+ # sandbox email delivery, so the send is only simulated.
574
+ module SessionsPreviewResubmissionResponseNotSentReason
575
+ NO_USER_ACTION = "no_user_action"
576
+ NO_RECIPIENT = "no_recipient"
577
+ SANDBOX = "sandbox"
578
+
579
+ VALUES = [NO_USER_ACTION, NO_RECIPIENT, SANDBOX].freeze
580
+ end
581
+
582
+ # Where `recipient` comes from. `request`: the `email_address` you passed. `email_verification`: the address the
583
+ # person verified in an email verification step of the flow. `contact_details`: the address given in
584
+ # `contact_details` when the session was created. An empty string when there is no address.
585
+ module SessionsPreviewResubmissionResponseRecipientSource
586
+ EMAIL_VERIFICATION = "email_verification"
587
+ CONTACT_DETAILS = "contact_details"
588
+ REQUEST = "request"
589
+ VALUE = ""
590
+
591
+ VALUES = [EMAIL_VERIFICATION, CONTACT_DETAILS, REQUEST, VALUE].freeze
592
+ end
593
+
594
+ # `customer`: the email goes out from your application's verified sender domain (white label). `didit`: it goes
595
+ # out from Didit's own sender.
596
+ module SessionsPreviewResubmissionResponseSenderKind
597
+ CUSTOMER = "customer"
598
+ DIDIT = "didit"
599
+
600
+ VALUES = [CUSTOMER, DIDIT].freeze
601
+ end
602
+
603
+ # Known values of an open enum: the API may send others.
604
+ module SessionsRetrieveDecisionParamsInclude
605
+ EVENTS = "events"
606
+ RESUBMISSIONS = "resubmissions"
607
+ EVENTS_RESUBMISSIONS = "events,resubmissions"
608
+
609
+ VALUES = [EVENTS, RESUBMISSIONS, EVENTS_RESUBMISSIONS].freeze
610
+ end
611
+
612
+ # Optional status label to record on the entry. Accepts any session status value, case-sensitive (`"approved"` is
613
+ # rejected with `400`). Recording a status here does **not** change the session's actual status - use the
614
+ # update-status endpoint for that.
615
+ module SessionsReviewsCreateParamsNewStatus
616
+ NOT_STARTED = "Not Started"
617
+ IN_PROGRESS = "In Progress"
618
+ APPROVED = "Approved"
619
+ DECLINED = "Declined"
620
+ IN_REVIEW = "In Review"
621
+ EXPIRED = "Expired"
622
+ ABANDONED = "Abandoned"
623
+ KYC_EXPIRED = "Kyc Expired"
624
+ RESUBMITTED = "Resubmitted"
625
+ AWAITING_USER = "Awaiting User"
626
+
627
+ VALUES = [NOT_STARTED, IN_PROGRESS, APPROVED, DECLINED, IN_REVIEW, EXPIRED, ABANDONED, KYC_EXPIRED, RESUBMITTED, AWAITING_USER].freeze
628
+ end
629
+
630
+ # The status label recorded on the entry, or `null` if none was sent. The session's actual status is not affected.
631
+ module SessionsReviewsCreateResponseNewStatus
632
+ NOT_STARTED = "Not Started"
633
+ IN_PROGRESS = "In Progress"
634
+ APPROVED = "Approved"
635
+ DECLINED = "Declined"
636
+ IN_REVIEW = "In Review"
637
+ EXPIRED = "Expired"
638
+ ABANDONED = "Abandoned"
639
+ KYC_EXPIRED = "Kyc Expired"
640
+ RESUBMITTED = "Resubmitted"
641
+ AWAITING_USER = "Awaiting User"
642
+
643
+ VALUES = [NOT_STARTED, IN_PROGRESS, APPROVED, DECLINED, IN_REVIEW, EXPIRED, ABANDONED, KYC_EXPIRED, RESUBMITTED, AWAITING_USER].freeze
644
+ end
645
+
646
+ # Whether the source session is a User Verification (KYC) or Business Verification (KYB) session.
647
+ module SessionsShareResponseSessionKind
648
+ USER = "user"
649
+ BUSINESS = "business"
650
+
651
+ VALUES = [USER, BUSINESS].freeze
652
+ end
653
+
654
+ # The status to set. When you leave it out, it defaults to the default status of the risk case (`risk`, or the
655
+ # first risk the scenario's magic values carry), else to the scenario's default status.
656
+ module SessionsSimulateParamsNewStatus
657
+ APPROVED = "Approved"
658
+ DECLINED = "Declined"
659
+ IN_REVIEW = "In Review"
660
+ EXPIRED = "Expired"
661
+ ABANDONED = "Abandoned"
662
+
663
+ VALUES = [APPROVED, DECLINED, IN_REVIEW, EXPIRED, ABANDONED].freeze
664
+ end
665
+
666
+ # The new review status for the hit.
667
+ module SessionsUpdateAmlHitStatusParamsReviewStatus
668
+ UNREVIEWED = "Unreviewed"
669
+ CONFIRMED_MATCH = "Confirmed Match"
670
+ FALSE_POSITIVE = "False Positive"
671
+ INCONCLUSIVE = "Inconclusive"
672
+
673
+ VALUES = [UNREVIEWED, CONFIRMED_MATCH, FALSE_POSITIVE, INCONCLUSIVE].freeze
674
+ end
675
+
676
+ # The review status now stored on the hit.
677
+ module SessionsUpdateAmlHitStatusResponseReviewStatus
678
+ UNREVIEWED = "Unreviewed"
679
+ CONFIRMED_MATCH = "Confirmed Match"
680
+ FALSE_POSITIVE = "False Positive"
681
+ INCONCLUSIVE = "Inconclusive"
682
+
683
+ VALUES = [UNREVIEWED, CONFIRMED_MATCH, FALSE_POSITIVE, INCONCLUSIVE].freeze
684
+ end
685
+
686
+ # New status of the AML check.
687
+ module SessionsUpdateAmlStatusParamsStatus
688
+ NOT_FINISHED = "Not Finished"
689
+ APPROVED = "Approved"
690
+ DECLINED = "Declined"
691
+ IN_REVIEW = "In Review"
692
+ RESUB_REQUESTED = "Resub Requested"
693
+
694
+ VALUES = [NOT_FINISHED, APPROVED, DECLINED, IN_REVIEW, RESUB_REQUESTED].freeze
695
+ end
696
+
697
+ # Status before the call. Equal to `status` when nothing changed.
698
+ module SessionsUpdateAmlStatusResponsePreviousStatus
699
+ NOT_FINISHED = "Not Finished"
700
+ APPROVED = "Approved"
701
+ DECLINED = "Declined"
702
+ IN_REVIEW = "In Review"
703
+ RESUB_REQUESTED = "Resub Requested"
704
+
705
+ VALUES = [NOT_FINISHED, APPROVED, DECLINED, IN_REVIEW, RESUB_REQUESTED].freeze
706
+ end
707
+
708
+ # Status of the AML check now.
709
+ module SessionsUpdateAmlStatusResponseStatus
710
+ NOT_FINISHED = "Not Finished"
711
+ APPROVED = "Approved"
712
+ DECLINED = "Declined"
713
+ IN_REVIEW = "In Review"
714
+ RESUB_REQUESTED = "Resub Requested"
715
+
716
+ VALUES = [NOT_FINISHED, APPROVED, DECLINED, IN_REVIEW, RESUB_REQUESTED].freeze
717
+ end
718
+
719
+ # Document type code. Accepts the short codes listed in the enum, plus six long-form aliases normalized
720
+ # server-side before validation: `Passport` → `P`, `Identity Card` → `ID`, `Driver's License` → `DL`, `Residence
721
+ # Permit` → `RP`, `Health Insurance Card` → `HIC`, `Tax Card` → `TC`. Any other value (including `PASSPORT` in
722
+ # caps) returns `400`.
723
+ module SessionsUpdateDataParamsDocumentType
724
+ P = "P"
725
+ DL = "DL"
726
+ ID = "ID"
727
+ RP = "RP"
728
+ SSC = "SSC"
729
+ HIC = "HIC"
730
+ WP = "WP"
731
+ TC = "TC"
732
+ VISA = "VISA"
733
+ PSC = "PSC"
734
+ BC = "BC"
735
+ OTHER = "OTHER"
736
+
737
+ VALUES = [P, DL, ID, RP, SSC, HIC, WP, TC, VISA, PSC, BC, OTHER].freeze
738
+ end
739
+
740
+ # Sex as printed on the document: `M` (male), `F` (female), or `U` (unknown). Any other value - including `X` -
741
+ # returns `400`.
742
+ module SessionsUpdateDataParamsGender
743
+ M = "M"
744
+ F = "F"
745
+ U = "U"
746
+
747
+ VALUES = [M, F, U].freeze
748
+ end
749
+
750
+ # Marital status where the document carries it. Any other value returns `400`.
751
+ module SessionsUpdateDataParamsMaritalStatus
752
+ SINGLE = "SINGLE"
753
+ MARRIED = "MARRIED"
754
+ DIVORCED = "DIVORCED"
755
+ WIDOWED = "WIDOWED"
756
+ UNKNOWN = "UNKNOWN"
757
+
758
+ VALUES = [SINGLE, MARRIED, DIVORCED, WIDOWED, UNKNOWN].freeze
759
+ end
760
+
761
+ # Document type code. Accepts the short codes listed in the enum, plus six long-form aliases normalized
762
+ # server-side before validation: `Passport` → `P`, `Identity Card` → `ID`, `Driver's License` → `DL`, `Residence
763
+ # Permit` → `RP`, `Health Insurance Card` → `HIC`, `Tax Card` → `TC`. Any other value (including `PASSPORT` in
764
+ # caps) returns `400`.
765
+ module SessionsUpdateDataResponseDocumentType
766
+ P = "P"
767
+ DL = "DL"
768
+ ID = "ID"
769
+ RP = "RP"
770
+ SSC = "SSC"
771
+ HIC = "HIC"
772
+ WP = "WP"
773
+ TC = "TC"
774
+ VISA = "VISA"
775
+ PSC = "PSC"
776
+ BC = "BC"
777
+ OTHER = "OTHER"
778
+
779
+ VALUES = [P, DL, ID, RP, SSC, HIC, WP, TC, VISA, PSC, BC, OTHER].freeze
780
+ end
781
+
782
+ # Sex as printed on the document: `M` (male), `F` (female), or `U` (unknown). Any other value - including `X` -
783
+ # returns `400`.
784
+ module SessionsUpdateDataResponseGender
785
+ M = "M"
786
+ F = "F"
787
+ U = "U"
788
+
789
+ VALUES = [M, F, U].freeze
790
+ end
791
+
792
+ # Marital status where the document carries it. Any other value returns `400`.
793
+ module SessionsUpdateDataResponseMaritalStatus
794
+ SINGLE = "SINGLE"
795
+ MARRIED = "MARRIED"
796
+ DIVORCED = "DIVORCED"
797
+ WIDOWED = "WIDOWED"
798
+ UNKNOWN = "UNKNOWN"
799
+
800
+ VALUES = [SINGLE, MARRIED, DIVORCED, WIDOWED, UNKNOWN].freeze
801
+ end
802
+
803
+ # New review status of the document.
804
+ module SessionsUpdateDocumentAiDataParamsStatus
805
+ APPROVED = "Approved"
806
+ DECLINED = "Declined"
807
+ IN_REVIEW = "In Review"
808
+ NOT_FINISHED = "Not Finished"
809
+
810
+ VALUES = [APPROVED, DECLINED, IN_REVIEW, NOT_FINISHED].freeze
811
+ end
812
+
813
+ # Review status of the document.
814
+ module SessionsUpdateDocumentAiDataResponseStatus
815
+ NOT_FINISHED = "Not Finished"
816
+ APPROVED = "Approved"
817
+ DECLINED = "Declined"
818
+ IN_REVIEW = "In Review"
819
+ RESUB_REQUESTED = "Resub Requested"
820
+
821
+ VALUES = [NOT_FINISHED, APPROVED, DECLINED, IN_REVIEW, RESUB_REQUESTED].freeze
822
+ end
823
+
824
+ # Which kind of step to target. Needed on non-graph workflows (`nodeId` = `default`), where every step shares no
825
+ # node; optional otherwise. An unknown value returns `400`.
826
+ module SessionsUpdateFeatureStatusParamsFeatureType
827
+ ID_VERIFICATION = "ID_VERIFICATION"
828
+ OCR = "OCR"
829
+ OCR_BACK = "OCR_BACK"
830
+ NFC = "NFC"
831
+ LIVENESS = "LIVENESS"
832
+ FACE = "FACE"
833
+ AGE_ESTIMATION = "AGE_ESTIMATION"
834
+ AGE_VERIFICATION = "AGE_VERIFICATION"
835
+ FACE_SEARCH = "FACE_SEARCH"
836
+ FACE_MATCH = "FACE_MATCH"
837
+ IP_ANALYSIS = "IP_ANALYSIS"
838
+ AML = "AML"
839
+ PHONE = "PHONE"
840
+ PHONE_VERIFICATION = "PHONE_VERIFICATION"
841
+ EMAIL = "EMAIL"
842
+ EMAIL_VERIFICATION = "EMAIL_VERIFICATION"
843
+ POA = "POA"
844
+ PROOF_OF_ADDRESS = "PROOF_OF_ADDRESS"
845
+ DATABASE_VALIDATION = "DATABASE_VALIDATION"
846
+ DATA_VALIDATION = "DATA_VALIDATION"
847
+ QUESTIONNAIRE = "QUESTIONNAIRE"
848
+ DOCUMENT_AI = "DOCUMENT_AI"
849
+ KYB_REGISTRY = "KYB_REGISTRY"
850
+ KYB_DOCUMENTS = "KYB_DOCUMENTS"
851
+ KYB_KEY_PEOPLE = "KYB_KEY_PEOPLE"
852
+ BANK_VERIFICATION = "BANK_VERIFICATION"
853
+ GEOLOCATION = "GEOLOCATION"
854
+
855
+ VALUES = [ID_VERIFICATION, OCR, OCR_BACK, NFC, LIVENESS, FACE, AGE_ESTIMATION, AGE_VERIFICATION, FACE_SEARCH, FACE_MATCH, IP_ANALYSIS, AML, PHONE, PHONE_VERIFICATION, EMAIL, EMAIL_VERIFICATION, POA, PROOF_OF_ADDRESS, DATABASE_VALIDATION, DATA_VALIDATION, QUESTIONNAIRE, DOCUMENT_AI, KYB_REGISTRY, KYB_DOCUMENTS, KYB_KEY_PEOPLE, BANK_VERIFICATION, GEOLOCATION].freeze
856
+ end
857
+
858
+ # Target status for this feature. Must differ from the current value.
859
+ module SessionsUpdateFeatureStatusParamsNewStatus
860
+ APPROVED = "Approved"
861
+ DECLINED = "Declined"
862
+ IN_REVIEW = "In Review"
863
+
864
+ VALUES = [APPROVED, DECLINED, IN_REVIEW].freeze
865
+ end
866
+
867
+ # Registry-reported company status. Lowercase, some values contain spaces (e.g. `struck off`, `no longer
868
+ # authorised`). Any other value returns `400`.
869
+ module SessionsUpdateKybCompanyDataParamsRegistryStatus
870
+ ACTIVE = "active"
871
+ DISSOLVED = "dissolved"
872
+ DEREGISTERED = "deregistered"
873
+ SEE_FULL_DETAILS = "see full details"
874
+ AUTHORISED = "authorised"
875
+ APPOINTED_REPRESENTATIVE = "appointed representative"
876
+ UNAUTHORISED = "unauthorised"
877
+ INACTIVE = "inactive"
878
+ NO_LONGER_AUTHORISED = "no longer authorised"
879
+ CLOSED = "closed"
880
+ STRUCK_OFF = "struck off"
881
+
882
+ VALUES = [ACTIVE, DISSOLVED, DEREGISTERED, SEE_FULL_DETAILS, AUTHORISED, APPOINTED_REPRESENTATIVE, UNAUTHORISED, INACTIVE, NO_LONGER_AUTHORISED, CLOSED, STRUCK_OFF].freeze
883
+ end
884
+
885
+ # Outcome of the registry verification. Any other value returns `400`.
886
+ module SessionsUpdateKybCompanyDataParamsVerificationStatus
887
+ VERIFIED = "verified"
888
+ FAILED = "failed"
889
+ UNKNOWN = "unknown"
890
+
891
+ VALUES = [VERIFIED, FAILED, UNKNOWN].freeze
892
+ end
893
+
894
+ # The source that decided `vat_validation_status`: an official registry, or `format_rules`. `null` when no check
895
+ # ran.
896
+ module SessionsUpdateKybCompanyDataResponseVatValidationSource
897
+ EU_VIES = "eu_vies"
898
+ PL_VAT_WHITE_LIST = "pl_vat_white_list"
899
+ NO_BRREG = "no_brreg"
900
+ CH_UID_REGISTER = "ch_uid_register"
901
+ BR_RECEITA_FEDERAL = "br_receita_federal"
902
+ CO_RUES = "co_rues"
903
+ CR_HACIENDA = "cr_hacienda"
904
+ EC_SRI = "ec_sri"
905
+ PY_DNIT = "py_dnit"
906
+ FORMAT_RULES = "format_rules"
907
+
908
+ VALUES = [EU_VIES, PL_VAT_WHITE_LIST, NO_BRREG, CH_UID_REGISTER, BR_RECEITA_FEDERAL, CO_RUES, CR_HACIENDA, EC_SRI, PY_DNIT, FORMAT_RULES].freeze
909
+ end
910
+
911
+ # Result of validating the VAT number or, when there is none, the `tax_number`, at registry submit. `valid` /
912
+ # `invalid`: decided by the official registry of the country (EU VIES, Norway, Switzerland, Brazil, Colombia,
913
+ # Costa Rica, Ecuador, Paraguay; Poland also by its domestic VAT register). `format_valid` / `invalid_format`:
914
+ # decided by the country's format and check-digit rules where no registry can be queried. `could_not_validate`:
915
+ # the registry was unavailable. `not_applicable`: no number, a country without registry or rules, or a sandbox
916
+ # session.
917
+ module SessionsUpdateKybCompanyDataResponseVatValidationStatus
918
+ VALID = "valid"
919
+ INVALID = "invalid"
920
+ FORMAT_VALID = "format_valid"
921
+ INVALID_FORMAT = "invalid_format"
922
+ COULD_NOT_VALIDATE = "could_not_validate"
923
+ NOT_APPLICABLE = "not_applicable"
924
+
925
+ VALUES = [VALID, INVALID, FORMAT_VALID, INVALID_FORMAT, COULD_NOT_VALIDATE, NOT_APPLICABLE].freeze
926
+ end
927
+
928
+ # Whether the party is an individual or a company.
929
+ module SessionsUpdateKybPartyResponseEntityType
930
+ PERSON = "person"
931
+ COMPANY = "company"
932
+
933
+ VALUES = [PERSON, COMPANY].freeze
934
+ end
935
+
936
+ # POA document category. Values are uppercase - lowercase variants like `utility_bill` return `400`.
937
+ module SessionsUpdatePoaDataParamsDocumentType
938
+ UTILITY_BILL = "UTILITY_BILL"
939
+ BANK_STATEMENT = "BANK_STATEMENT"
940
+ GOVERNMENT_ISSUED_DOCUMENT = "GOVERNMENT_ISSUED_DOCUMENT"
941
+ OTHER_POA_DOCUMENT = "OTHER_POA_DOCUMENT"
942
+ UNKNOWN = "UNKNOWN"
943
+
944
+ VALUES = [UTILITY_BILL, BANK_STATEMENT, GOVERNMENT_ISSUED_DOCUMENT, OTHER_POA_DOCUMENT, UNKNOWN].freeze
945
+ end
946
+
947
+ # POA document category. Values are uppercase - lowercase variants like `utility_bill` return `400`.
948
+ module SessionsUpdatePoaDataResponseDocumentType
949
+ UTILITY_BILL = "UTILITY_BILL"
950
+ BANK_STATEMENT = "BANK_STATEMENT"
951
+ GOVERNMENT_ISSUED_DOCUMENT = "GOVERNMENT_ISSUED_DOCUMENT"
952
+ OTHER_POA_DOCUMENT = "OTHER_POA_DOCUMENT"
953
+ UNKNOWN = "UNKNOWN"
954
+
955
+ VALUES = [UTILITY_BILL, BANK_STATEMENT, GOVERNMENT_ISSUED_DOCUMENT, OTHER_POA_DOCUMENT, UNKNOWN].freeze
956
+ end
957
+
958
+ # Target status. `Approved` and `Declined` record a final manual decision (each can also overturn the other).
959
+ # `Resubmitted` clears the selected steps and sends the session back to the user. Any other value returns `400`.
960
+ module SessionsUpdateStatusParamsNewStatus
961
+ APPROVED = "Approved"
962
+ DECLINED = "Declined"
963
+ RESUBMITTED = "Resubmitted"
964
+
965
+ VALUES = [APPROVED, DECLINED, RESUBMITTED].freeze
966
+ end
967
+
968
+ # Feature type of the node. The aliases `ID_VERIFICATION`, `POA`, `PHONE`, and `EMAIL` are normalized server-side
969
+ # to `OCR`, `PROOF_OF_ADDRESS`, `PHONE_VERIFICATION`, and `EMAIL_VERIFICATION`. `KYB_REGISTRY`, `KYB_KEY_PEOPLE`,
970
+ # and `KYB` pass schema validation but are always rejected with the business-rule `400` shown in the examples.
971
+ module SessionsUpdateStatusParamsNodesToResubmitFeature
972
+ OCR = "OCR"
973
+ OCR_BACK = "OCR_BACK"
974
+ NFC = "NFC"
975
+ AML = "AML"
976
+ FACE = "FACE"
977
+ LIVENESS = "LIVENESS"
978
+ FACE_MATCH = "FACE_MATCH"
979
+ IP_ANALYSIS = "IP_ANALYSIS"
980
+ AGE_ESTIMATION = "AGE_ESTIMATION"
981
+ PROOF_OF_ADDRESS = "PROOF_OF_ADDRESS"
982
+ PHONE_VERIFICATION = "PHONE_VERIFICATION"
983
+ EMAIL_VERIFICATION = "EMAIL_VERIFICATION"
984
+ FACE_SEARCH = "FACE_SEARCH"
985
+ DATABASE_VALIDATION = "DATABASE_VALIDATION"
986
+ QUESTIONNAIRE = "QUESTIONNAIRE"
987
+ DOCUMENT_AI = "DOCUMENT_AI"
988
+ KYB_DOCUMENTS = "KYB_DOCUMENTS"
989
+ ID_VERIFICATION = "ID_VERIFICATION"
990
+ POA = "POA"
991
+ PHONE = "PHONE"
992
+ EMAIL = "EMAIL"
993
+ KYB_REGISTRY = "KYB_REGISTRY"
994
+ KYB_KEY_PEOPLE = "KYB_KEY_PEOPLE"
995
+ KYB = "KYB"
996
+
997
+ VALUES = [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].freeze
998
+ end
999
+
1000
+ class SessionsAddImagesResponse < Didit::Model
1001
+ field :extra_files, "extra_files", [:array, :string]
1002
+ end
1003
+
1004
+ class SessionsBatchDeleteResponse < Didit::Model
1005
+ field :results, "results", [:array, "SessionsBatchDeleteResponseResults"]
1006
+ end
1007
+
1008
+ class SessionsBatchDeleteResponseResults < Didit::Model
1009
+ field :session_id, "session_id", :string
1010
+ field :session_number, "session_number", :integer
1011
+ field :face_retention_outcome, "face_retention_outcome", :string
1012
+ field :biometric_template_uuid, "biometric_template_uuid", :string
1013
+ field :biometric_template_expires_at, "biometric_template_expires_at", :datetime
1014
+ field :deleted_child_verifications, "deleted_child_verifications", :integer
1015
+ end
1016
+
1017
+ class SessionsBulkUpdateAmlHitStatusResponse < Didit::Model
1018
+ field :message, "message", :string
1019
+ field :updated_hits, "updated_hits", [:array, :string]
1020
+ end
1021
+
1022
+ class SessionsCreateResponse < Didit::Model
1023
+ field :session_id, "session_id", :string
1024
+ field :session_number, "session_number", :integer
1025
+ field :session_token, "session_token", :string
1026
+ field :url, "url", :string
1027
+ field :vendor_data, "vendor_data", :string
1028
+ field :metadata, "metadata", :any
1029
+ field :tags, "tags", [:array, :string]
1030
+ field :status, "status", :string
1031
+ field :callback, "callback", :string
1032
+ field :workflow_id, "workflow_id", :string
1033
+ field :workflow_version, "workflow_version", :integer
1034
+ end
1035
+
1036
+ class SessionsDeleteResponse < Didit::Model
1037
+ field :session_id, "session_id", :string
1038
+ field :session_number, "session_number", :integer
1039
+ field :face_retention_outcome, "face_retention_outcome", :string
1040
+ field :biometric_template_uuid, "biometric_template_uuid", :string
1041
+ field :biometric_template_expires_at, "biometric_template_expires_at", :datetime
1042
+ field :deleted_child_verifications, "deleted_child_verifications", :integer
1043
+ end
1044
+
1045
+ class SessionsImportsCheckProviderResponse < Didit::Model
1046
+ field :ok, "ok", :boolean
1047
+ field :provider, "provider", :string
1048
+ field :credential_hint, "credential_hint", :string
1049
+ end
1050
+
1051
+ class SessionsImportsListActiveJobsResponse < Didit::Model
1052
+ field :results, "results", [:array, "ImportJobSummary"]
1053
+ field :running, "running", :integer
1054
+ end
1055
+
1056
+ class SessionsImportsListErrorsResponse < Didit::Model
1057
+ field :count, "count", :integer
1058
+ field :next, "next", :string
1059
+ field :previous, "previous", :string
1060
+ field :results, "results", [:array, "SessionImportError"]
1061
+ end
1062
+
1063
+ class SessionsImportsListJobsResponse < Didit::Model
1064
+ field :results, "results", [:array, "ImportJobSummary"]
1065
+ field :counts, "counts", "SessionsImportsListJobsResponseCounts"
1066
+ end
1067
+
1068
+ class SessionsImportsListJobsResponseCounts < Didit::Model
1069
+ field :all, "all", :integer
1070
+ field :running_and_waiting, "running_and_waiting", :integer
1071
+ field :needs_attention, "needs_attention", :integer
1072
+ field :done, "done", :integer
1073
+ end
1074
+
1075
+ class SessionsImportsListProvidersResponse < Didit::Model
1076
+ field :providers, "providers", [:array, "ImportProvider"]
1077
+ field :mapping_targets, "mapping_targets", [:array, :string]
1078
+ field :skipped_statuses, "skipped_statuses", [:array, :string]
1079
+ end
1080
+
1081
+ class SessionsListAmlScreeningHistoryResponse < Didit::Model
1082
+ field :count, "count", :integer
1083
+ field :next, "next", :string
1084
+ field :previous, "previous", :string
1085
+ field :results, "results", [:array, "AMLScreeningRun"]
1086
+ end
1087
+
1088
+ class SessionsListEventsResponse < Didit::Model
1089
+ field :count, "count", :integer
1090
+ field :next, "next", :string
1091
+ field :previous, "previous", :string
1092
+ field :results, "results", [:array, "SessionEvent"]
1093
+ end
1094
+
1095
+ class SessionsListFeatureOverridesResponse < Didit::Model
1096
+ field :session_id, "session_id", :string
1097
+ field :person_in_flow, "person_in_flow", :boolean
1098
+ field :flow_finished_at, "flow_finished_at", :datetime
1099
+ field :overrides, "overrides", [:array, "FeatureStatusOverride"]
1100
+ end
1101
+
1102
+ class SessionsListResponse < Didit::Model
1103
+ field :count, "count", :integer
1104
+ field :next, "next", :string
1105
+ field :previous, "previous", :string
1106
+ field :results, "results", [:array, "SessionsListResponseResults"]
1107
+ end
1108
+
1109
+ class SessionsListResponseResults < Didit::Model
1110
+ field :session_id, "session_id", :string
1111
+ field :session_kind, "session_kind", :string
1112
+ field :session_number, "session_number", :integer
1113
+ field :session_url, "session_url", :string
1114
+ field :portrait_image, "portrait_image", :string
1115
+ field :document_type, "document_type", :string
1116
+ field :full_name, "full_name", :string
1117
+ field :country, "country", :string
1118
+ field :status, "status", :string
1119
+ field :vendor_data, "vendor_data", :string
1120
+ field :didit_internal_id, "didit_internal_id", :string
1121
+ field :created_at, "created_at", :datetime
1122
+ field :features, "features", [:array, "SessionsListResponseResultsFeatures"]
1123
+ field :phone_number, "phone_number", "SessionsListResponseResultsPhoneNumber"
1124
+ field :email_address, "email_address", "SessionsListResponseResultsEmailAddress"
1125
+ field :additional_details, "additional_details", "SessionsListResponseResultsAdditionalDetails"
1126
+ field :workflow_id, "workflow_id", :string
1127
+ field :workflow_type, "workflow_type", :string
1128
+ field :workflow_label, "workflow_label", :string
1129
+ field :company_name, "company_name", :string
1130
+ field :registration_number, "registration_number", :string
1131
+ end
1132
+
1133
+ # Compact per-feature extras. Only features that produced data appear as keys; `null` when no feature produced
1134
+ # extras. Fields excluded by the workflow's response-attributes configuration are omitted.
1135
+ class SessionsListResponseResultsAdditionalDetails < Didit::Model
1136
+ field :aml, "aml", "SessionsListResponseResultsAdditionalDetailsAml"
1137
+ field :database_validation, "database_validation", "SessionsListResponseResultsAdditionalDetailsDatabaseValidation"
1138
+ field :poa, "poa", "SessionsListResponseResultsAdditionalDetailsPoa"
1139
+ field :liveness, "liveness", "SessionsListResponseResultsAdditionalDetailsLiveness"
1140
+ field :face_match, "face_match", "SessionsListResponseResultsAdditionalDetailsFaceMatch"
1141
+ field :phone_verification, "phone_verification", "SessionsListResponseResultsAdditionalDetailsPhoneVerification"
1142
+ field :email_verification, "email_verification", "SessionsListResponseResultsAdditionalDetailsEmailVerification"
1143
+ end
1144
+
1145
+ # Present when AML screening ran.
1146
+ class SessionsListResponseResultsAdditionalDetailsAml < Didit::Model
1147
+ field :total_hits, "total_hits", :integer
1148
+ field :entity_type, "entity_type", :string
1149
+ field :is_adverse_media_fetched, "is_adverse_media_fetched", :boolean
1150
+ field :screened_data, "screened_data", "SessionsListResponseResultsAdditionalDetailsAmlScreenedData"
1151
+ end
1152
+
1153
+ # Subset of the data that was screened. Only non-empty keys are included.
1154
+ class SessionsListResponseResultsAdditionalDetailsAmlScreenedData < Didit::Model
1155
+ field :nationality, "nationality", :string
1156
+ field :document_number, "document_number", :string
1157
+ field :date_of_birth, "date_of_birth", :string
1158
+ end
1159
+
1160
+ # Present when database validation ran.
1161
+ class SessionsListResponseResultsAdditionalDetailsDatabaseValidation < Didit::Model
1162
+ field :validation_type, "validation_type", :string
1163
+ field :match_type, "match_type", :string
1164
+ field :identification_number, "identification_number", :string
1165
+ end
1166
+
1167
+ # Present when email verification ran.
1168
+ class SessionsListResponseResultsAdditionalDetailsEmailVerification < Didit::Model
1169
+ field :is_breached, "is_breached", :boolean
1170
+ field :is_disposable, "is_disposable", :boolean
1171
+ field :is_undeliverable, "is_undeliverable", :boolean
1172
+ field :is_blocklisted, "is_blocklisted", :boolean
1173
+ end
1174
+
1175
+ # Present when face match ran.
1176
+ class SessionsListResponseResultsAdditionalDetailsFaceMatch < Didit::Model
1177
+ field :score, "score", :float
1178
+ field :source_image, "source_image", :string
1179
+ field :target_image, "target_image", :string
1180
+ end
1181
+
1182
+ # Present when a liveness check ran.
1183
+ class SessionsListResponseResultsAdditionalDetailsLiveness < Didit::Model
1184
+ field :method_, "method", :string
1185
+ field :score, "score", :float
1186
+ end
1187
+
1188
+ # Present when phone verification ran.
1189
+ class SessionsListResponseResultsAdditionalDetailsPhoneVerification < Didit::Model
1190
+ field :country_code, "country_code", :string
1191
+ field :is_temporary, "is_temporary", :boolean
1192
+ field :is_ported, "is_ported", :boolean
1193
+ field :is_blocked, "is_blocked", :boolean
1194
+ end
1195
+
1196
+ # Present when proof of address ran.
1197
+ class SessionsListResponseResultsAdditionalDetailsPoa < Didit::Model
1198
+ field :document_type, "document_type", :string
1199
+ field :issuer, "issuer", :string
1200
+ field :address, "address", :string
1201
+ field :name_on_document, "name_on_document", :string
1202
+ end
1203
+
1204
+ # Email associated with the session: the verified email when email verification ran, otherwise the contact email
1205
+ # provided at session creation. `null` when neither exists.
1206
+ class SessionsListResponseResultsEmailAddress < Didit::Model
1207
+ field :email, "email", :string
1208
+ field :is_verified, "is_verified", :boolean
1209
+ end
1210
+
1211
+ class SessionsListResponseResultsFeatures < Didit::Model
1212
+ field :feature, "feature", :string
1213
+ field :status, "status", :string
1214
+ end
1215
+
1216
+ # Phone associated with the session: the verified phone when phone verification ran, otherwise the contact phone
1217
+ # provided at session creation. `null` when neither exists.
1218
+ class SessionsListResponseResultsPhoneNumber < Didit::Model
1219
+ field :number, "number", :string
1220
+ field :is_verified, "is_verified", :boolean
1221
+ end
1222
+
1223
+ class SessionsPreviewDecisionEmailResponse < Didit::Model
1224
+ field :recipient, "recipient", :string
1225
+ field :recipient_source, "recipient_source", :string
1226
+ field :sender, "sender", :string
1227
+ field :sender_name, "sender_name", :string
1228
+ field :sender_email, "sender_email", :string
1229
+ field :sender_kind, "sender_kind", :string
1230
+ field :subject, "subject", :string
1231
+ field :html, "html", :string
1232
+ field :language, "language", :string
1233
+ field :will_be_sent, "will_be_sent", :boolean
1234
+ field :not_sent_reason, "not_sent_reason", :string
1235
+ field :preview_token, "preview_token", :string
1236
+ end
1237
+
1238
+ class SessionsPreviewResubmissionResponse < Didit::Model
1239
+ field :recipient, "recipient", :string
1240
+ field :recipient_source, "recipient_source", :string
1241
+ field :sender, "sender", :string
1242
+ field :sender_name, "sender_name", :string
1243
+ field :sender_email, "sender_email", :string
1244
+ field :sender_kind, "sender_kind", :string
1245
+ field :subject, "subject", :string
1246
+ field :html, "html", :string
1247
+ field :language, "language", :string
1248
+ field :will_be_sent, "will_be_sent", :boolean
1249
+ field :not_sent_reason, "not_sent_reason", :string
1250
+ field :nodes_to_resubmit, "nodes_to_resubmit", [:array, "SessionsPreviewResubmissionResponseNodesToResubmit"]
1251
+ field :requires_user_action, "requires_user_action", :boolean
1252
+ field :preview_token, "preview_token", :string
1253
+ end
1254
+
1255
+ class SessionsPreviewResubmissionResponseNodesToResubmit < Didit::Model
1256
+ field :node_id, "node_id", :string
1257
+ field :feature, "feature", :string
1258
+ end
1259
+
1260
+ class SessionsReviewsCreateResponse < Didit::Model
1261
+ field :user, "user", :string
1262
+ field :new_status, "new_status", :string
1263
+ field :comment, "comment", :string
1264
+ field :created_at, "created_at", :datetime
1265
+ end
1266
+
1267
+ class SessionsReviewsListResponse < Didit::Model
1268
+ field :count, "count", :integer
1269
+ field :next, "next", :string
1270
+ field :previous, "previous", :string
1271
+ field :results, "results", [:array, "ReviewItem"]
1272
+ end
1273
+
1274
+ class SessionsShareResponse < Didit::Model
1275
+ field :share_token, "share_token", :string
1276
+ field :for_application_id, "for_application_id", :string
1277
+ field :session_kind, "session_kind", :string
1278
+ end
1279
+
1280
+ class SessionsSignaturesValidateResponse < Didit::Model
1281
+ field :signatures, "signatures", [:array, "SignatureResult"]
1282
+ end
1283
+
1284
+ class SessionsUpdateAmlHitStatusResponse < Didit::Model
1285
+ field :message, "message", :string
1286
+ field :hit_id, "hit_id", :string
1287
+ field :review_status, "review_status", :string
1288
+ end
1289
+
1290
+ class SessionsUpdateAmlStatusResponse < Didit::Model
1291
+ field :message, "message", :string
1292
+ field :status, "status", :string
1293
+ field :previous_status, "previous_status", :string
1294
+ end
1295
+
1296
+ class SessionsUpdateDataResponse < Didit::Model
1297
+ field :document_type, "document_type", :string
1298
+ field :document_subtype, "document_subtype", :string
1299
+ field :document_number, "document_number", :string
1300
+ field :personal_number, "personal_number", :string
1301
+ field :date_of_birth, "date_of_birth", :date
1302
+ field :date_of_issue, "date_of_issue", :date
1303
+ field :expiration_date, "expiration_date", :date
1304
+ field :issuing_state, "issuing_state", :string
1305
+ field :first_name, "first_name", :string
1306
+ field :last_name, "last_name", :string
1307
+ field :gender, "gender", :string
1308
+ field :address, "address", :string
1309
+ field :place_of_birth, "place_of_birth", :string
1310
+ field :nationality, "nationality", :string
1311
+ field :marital_status, "marital_status", :string
1312
+ field :extra_fields, "extra_fields", :any
1313
+ field :parsed_address, "parsed_address", "SessionsUpdateDataResponseParsedAddress"
1314
+ end
1315
+
1316
+ # Current structured address (with internal bookkeeping keys stripped), or `null` when none exists. Includes the
1317
+ # recomputed `formatted_address` alongside the seven editable keys.
1318
+ class SessionsUpdateDataResponseParsedAddress < Didit::Model
1319
+ field :address_type, "address_type", :string
1320
+ field :city, "city", :string
1321
+ field :region, "region", :string
1322
+ field :street_1, "street_1", :string
1323
+ field :street_2, "street_2", :string
1324
+ field :postal_code, "postal_code", :string
1325
+ field :country, "country", :string
1326
+ field :formatted_address, "formatted_address", :string
1327
+ end
1328
+
1329
+ class SessionsUpdateDocumentAiDataResponse < Didit::Model
1330
+ field :uuid, "uuid", :string
1331
+ field :document_key, "document_key", :string
1332
+ field :original_filename, "original_filename", :string
1333
+ field :file_url, "file_url", :string
1334
+ field :status, "status", :string
1335
+ field :extracted_data, "extracted_data", :any
1336
+ end
1337
+
1338
+ class SessionsUpdateFeatureStatusResponse < Didit::Model
1339
+ field :session_id, "session_id", :string
1340
+ field :node_id, "node_id", :string
1341
+ field :feature_type, "feature_type", :string
1342
+ field :new_status, "new_status", :string
1343
+ field :override, "override", "FeatureStatusOverride"
1344
+ end
1345
+
1346
+ # Full KYB company record - the same shape as the `company` object inside `registry_checks[]` on the business
1347
+ # session decision.
1348
+ class SessionsUpdateKybCompanyDataResponse < Didit::Model
1349
+ field :uuid, "uuid", :string
1350
+ field :node_id, "node_id", :string
1351
+ field :status, "status", :string
1352
+ field :registry_status, "registry_status", :string
1353
+ field :data_resolved, "data_resolved", :boolean
1354
+ field :company_name, "company_name", :string
1355
+ field :registration_number, "registration_number", :string
1356
+ field :country_code, "country_code", :string
1357
+ field :region, "region", :string
1358
+ field :company_type, "company_type", :string
1359
+ field :incorporation_date, "incorporation_date", :date
1360
+ field :registered_address, "registered_address", :string
1361
+ field :tax_number, "tax_number", :string
1362
+ field :risk_level, "risk_level", :string
1363
+ field :verification_status, "verification_status", :string
1364
+ field :is_from_registry, "is_from_registry", :boolean
1365
+ field :fetch_status, "fetch_status", :string
1366
+ field :alternative_names, "alternative_names", :string
1367
+ field :nature_of_business, "nature_of_business", :string
1368
+ field :registered_capital, "registered_capital", :string
1369
+ field :registered_capital_amount, "registered_capital_amount", :string
1370
+ field :registered_capital_currency, "registered_capital_currency", :string
1371
+ field :website, "website", :string
1372
+ field :email, "email", :string
1373
+ field :phone, "phone", :string
1374
+ field :legal_entity_identifier, "legal_entity_identifier", :string
1375
+ field :location_of_registration, "location_of_registration", :string
1376
+ field :vat_number, "vat_number", :string
1377
+ field :vat_validation_status, "vat_validation_status", :string
1378
+ field :vat_validated_number, "vat_validated_number", :string
1379
+ field :vat_validation_source, "vat_validation_source", :string
1380
+ field :vat_validated_name, "vat_validated_name", :string
1381
+ field :vat_validated_address, "vat_validated_address", :string
1382
+ field :vat_checked_at, "vat_checked_at", :datetime
1383
+ field :financial_summary, "financial_summary", :any
1384
+ field :officers, "officers", [:array, :any]
1385
+ field :beneficial_owners, "beneficial_owners", [:array, :any]
1386
+ field :addresses, "addresses", [:array, :any]
1387
+ field :industries, "industries", [:array, :any]
1388
+ field :accounts, "accounts", :any
1389
+ field :registry_data, "registry_data", :any
1390
+ field :user_provided_data, "user_provided_data", :any
1391
+ field :confirmed_by_user_at, "confirmed_by_user_at", :datetime
1392
+ field :last_console_edit_at, "last_console_edit_at", :datetime
1393
+ field :is_editable, "is_editable", :boolean
1394
+ end
1395
+
1396
+ # Key People party record - the same shape as an entry of `key_people_checks[].submitted.parties[]` on the
1397
+ # business session decision.
1398
+ class SessionsUpdateKybPartyResponse < Didit::Model
1399
+ field :uuid, "uuid", :string
1400
+ field :entity_type, "entity_type", :string
1401
+ field :name, "name", :string
1402
+ field :is_skipped, "is_skipped", :boolean
1403
+ field :requires_verification, "requires_verification", :boolean
1404
+ field :kyc_session_status, "kyc_session_status", :string
1405
+ field :kyc_session_url, "kyc_session_url", :string
1406
+ field :kyc_session_deleted, "kyc_session_deleted", :boolean
1407
+ field :kyb_sub_session_deleted, "kyb_sub_session_deleted", :boolean
1408
+ end
1409
+
1410
+ class SessionsUpdatePoaDataResponse < Didit::Model
1411
+ field :issuing_state, "issuing_state", :string
1412
+ field :document_type, "document_type", :string
1413
+ field :document_language, "document_language", :string
1414
+ field :issuer, "issuer", :string
1415
+ field :issue_date, "issue_date", :date
1416
+ field :poa_address, "poa_address", :string
1417
+ field :name_on_document, "name_on_document", :string
1418
+ field :extra_fields, "extra_fields", :any
1419
+ field :poa_parsed_address, "poa_parsed_address", "SessionsUpdatePoaDataResponsePoaParsedAddress"
1420
+ field :poa_formatted_address, "poa_formatted_address", :string
1421
+ end
1422
+
1423
+ # Current structured address, or `null` when none exists. Includes the recomputed `formatted_address` alongside
1424
+ # the seven editable keys. Returned as stored - after a server-side geocode it can contain bookkeeping keys (e.g.
1425
+ # `raw_results`) alongside the editable keys.
1426
+ class SessionsUpdatePoaDataResponsePoaParsedAddress < Didit::Model
1427
+ field :address_type, "address_type", :string
1428
+ field :city, "city", :string
1429
+ field :region, "region", :string
1430
+ field :street_1, "street_1", :string
1431
+ field :street_2, "street_2", :string
1432
+ field :postal_code, "postal_code", :string
1433
+ field :country, "country", :string
1434
+ field :formatted_address, "formatted_address", :string
1435
+ end
1436
+
1437
+ class SessionsUpdateStatusResponse < Didit::Model
1438
+ field :session_id, "session_id", :string
1439
+ end
1440
+ end
1441
+ end