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,111 @@
1
+ # Code generated by codegen from openapi/*.json. DO NOT EDIT.
2
+ # frozen_string_literal: true
3
+
4
+ module Didit
5
+ module Types
6
+ # What the list holds: `face`, `document` (document number), `phone`, `email`, `ip_address` (IP address or CIDR
7
+ # range), `device_fingerprint`, `wallet_address`, `bank_account`, `country` (ISO 3166-1 alpha-3), `user` or
8
+ # `business` (your `vendor_data`), or `key` (any string). It decides how entry values are validated and matched.
9
+ # Cannot be changed later.
10
+ module ListsCreateParamsEntryType
11
+ FACE = "face"
12
+ DOCUMENT = "document"
13
+ PHONE = "phone"
14
+ EMAIL = "email"
15
+ IP_ADDRESS = "ip_address"
16
+ DEVICE_FINGERPRINT = "device_fingerprint"
17
+ WALLET_ADDRESS = "wallet_address"
18
+ BANK_ACCOUNT = "bank_account"
19
+ COUNTRY = "country"
20
+ USER = "user"
21
+ BUSINESS = "business"
22
+ KEY = "key"
23
+
24
+ VALUES = [FACE, DOCUMENT, PHONE, EMAIL, IP_ADDRESS, DEVICE_FINGERPRINT, WALLET_ADDRESS, BANK_ACCOUNT, COUNTRY, USER, BUSINESS, KEY].freeze
25
+ end
26
+
27
+ # `allowlist` or `custom`. `blocklist` is refused with `400`.
28
+ module ListsCreateParamsListType
29
+ ALLOWLIST = "allowlist"
30
+ CUSTOM = "custom"
31
+
32
+ VALUES = [ALLOWLIST, CUSTOM].freeze
33
+ end
34
+
35
+ # Face lists with `reference_session_id`: which of the session's images the face is taken from. `liveness`
36
+ # (default) is the liveness selfie. `front_image_camera_front` and `back_image_camera_front` are the selfies the
37
+ # front camera took while the user photographed the front or back of their document: accepted only on the system
38
+ # face blocklist, with `reference_session_id` and an empty `value`. Each selfie can be added once and must show
39
+ # one clear face.
40
+ module ListsEntriesCreateParamsFaceImageSource
41
+ LIVENESS = "liveness"
42
+ FRONT_IMAGE_CAMERA_FRONT = "front_image_camera_front"
43
+ BACK_IMAGE_CAMERA_FRONT = "back_image_camera_front"
44
+
45
+ VALUES = [LIVENESS, FRONT_IMAGE_CAMERA_FRONT, BACK_IMAGE_CAMERA_FRONT].freeze
46
+ end
47
+
48
+ # What `reference_object_uuid` points to.
49
+ module ListsEntriesCreateParamsMetadataReferenceType
50
+ TRANSACTION = "transaction"
51
+ VENDOR_USER = "vendor_user"
52
+ VENDOR_BUSINESS = "vendor_business"
53
+
54
+ VALUES = [TRANSACTION, VENDOR_USER, VENDOR_BUSINESS].freeze
55
+ end
56
+
57
+ # Known values of an open enum: the API may send others.
58
+ module ListsListParamsEntryType
59
+ FACE = "face"
60
+ DOCUMENT = "document"
61
+ PHONE = "phone"
62
+ EMAIL = "email"
63
+ IP_ADDRESS = "ip_address"
64
+ DEVICE_FINGERPRINT = "device_fingerprint"
65
+ WALLET_ADDRESS = "wallet_address"
66
+ BANK_ACCOUNT = "bank_account"
67
+ COUNTRY = "country"
68
+ USER = "user"
69
+ BUSINESS = "business"
70
+ KEY = "key"
71
+
72
+ VALUES = [FACE, DOCUMENT, PHONE, EMAIL, IP_ADDRESS, DEVICE_FINGERPRINT, WALLET_ADDRESS, BANK_ACCOUNT, COUNTRY, USER, BUSINESS, KEY].freeze
73
+ end
74
+
75
+ # Known values of an open enum: the API may send others.
76
+ module ListsListParamsListType
77
+ BLOCKLIST = "blocklist"
78
+ ALLOWLIST = "allowlist"
79
+ CUSTOM = "custom"
80
+
81
+ VALUES = [BLOCKLIST, ALLOWLIST, CUSTOM].freeze
82
+ end
83
+
84
+ # Known values of an open enum: the API may send others.
85
+ module ListsListParamsOrdering
86
+ CREATED_AT = "-created_at"
87
+ CREATED_AT_ = "created_at"
88
+
89
+ VALUES = [CREATED_AT, CREATED_AT_].freeze
90
+ end
91
+
92
+ class ListsEntriesListResponse < Didit::Model
93
+ field :count, "count", :integer
94
+ field :next, "next", :string
95
+ field :previous, "previous", :string
96
+ field :results, "results", [:array, "ComplianceListEntry"]
97
+ end
98
+
99
+ class ListsListResponse < Didit::Model
100
+ field :count, "count", :integer
101
+ field :next, "next", :string
102
+ field :previous, "previous", :string
103
+ field :results, "results", [:array, "ComplianceList"]
104
+ end
105
+
106
+ class ListsUpdateResponse < Didit::Model
107
+ field :name, "name", :string
108
+ field :description, "description", :string
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,235 @@
1
+ # Code generated by codegen from openapi/*.json. DO NOT EDIT.
2
+ # frozen_string_literal: true
3
+
4
+ module Didit
5
+ module Types
6
+ # `accepted`: stored and evaluated. `replayed`: already stored with the same content. `rejected`: not stored; see
7
+ # `errors`.
8
+ module MonitoringEventsCreateBatchResponseResultsOutcome
9
+ ACCEPTED = "accepted"
10
+ REPLAYED = "replayed"
11
+ REJECTED = "rejected"
12
+
13
+ VALUES = [ACCEPTED, REPLAYED, REJECTED].freeze
14
+ end
15
+
16
+ # Accepted and replayed items only.
17
+ module MonitoringEventsCreateBatchResponseResultsRetentionClass
18
+ LOW_VALUE = "low_value"
19
+ STANDARD = "standard"
20
+ RISK_RELEVANT = "risk_relevant"
21
+ MONETARY_OR_COMPLIANCE = "monetary_or_compliance"
22
+
23
+ VALUES = [LOW_VALUE, STANDARD, RISK_RELEVANT, MONETARY_OR_COMPLIANCE].freeze
24
+ end
25
+
26
+ # `TEST` rules record the match but apply no actions.
27
+ module MonitoringEventsCreateBatchResponseResultsRuleMatchesMode
28
+ ACTIVE = "ACTIVE"
29
+ TEST = "TEST"
30
+
31
+ VALUES = [ACTIVE, TEST].freeze
32
+ end
33
+
34
+ # Accepted and replayed items only.
35
+ module MonitoringEventsCreateBatchResponseResultsStatus
36
+ ACCEPTED = "ACCEPTED"
37
+ APPROVED = "APPROVED"
38
+ IN_REVIEW = "IN_REVIEW"
39
+ DECLINED = "DECLINED"
40
+
41
+ VALUES = [ACCEPTED, APPROVED, IN_REVIEW, DECLINED].freeze
42
+ end
43
+
44
+ # Event category.
45
+ module MonitoringEventsCreateParamsEventCategory
46
+ AUTH = "auth"
47
+ SESSION = "session"
48
+ GAMEPLAY = "gameplay"
49
+ BONUS = "bonus"
50
+ AFFILIATE = "affiliate"
51
+ PAYMENT = "payment"
52
+ DISPUTE = "dispute"
53
+ SECURITY = "security"
54
+ RESPONSIBLE_GAMBLING = "responsible_gambling"
55
+ CUSTOM = "custom"
56
+
57
+ VALUES = [AUTH, SESSION, GAMEPLAY, BONUS, AFFILIATE, PAYMENT, DISPUTE, SECURITY, RESPONSIBLE_GAMBLING, CUSTOM].freeze
58
+ end
59
+
60
+ # Known values of an open enum: the API may send others.
61
+ module MonitoringEventsCreateSdkTokenParamsAllowedEventCategories
62
+ AUTH = "auth"
63
+ SESSION = "session"
64
+ GAMEPLAY = "gameplay"
65
+ BONUS = "bonus"
66
+ AFFILIATE = "affiliate"
67
+ PAYMENT = "payment"
68
+ DISPUTE = "dispute"
69
+ SECURITY = "security"
70
+ RESPONSIBLE_GAMBLING = "responsible_gambling"
71
+ CUSTOM = "custom"
72
+
73
+ VALUES = [AUTH, SESSION, GAMEPLAY, BONUS, AFFILIATE, PAYMENT, DISPUTE, SECURITY, RESPONSIBLE_GAMBLING, CUSTOM].freeze
74
+ end
75
+
76
+ # Known values of an open enum: the API may send others.
77
+ module MonitoringEventsCreateSdkTokenResponseAllowedEventCategories
78
+ AUTH = "auth"
79
+ SESSION = "session"
80
+ GAMEPLAY = "gameplay"
81
+ BONUS = "bonus"
82
+ AFFILIATE = "affiliate"
83
+ PAYMENT = "payment"
84
+ DISPUTE = "dispute"
85
+ SECURITY = "security"
86
+ RESPONSIBLE_GAMBLING = "responsible_gambling"
87
+ CUSTOM = "custom"
88
+
89
+ VALUES = [AUTH, SESSION, GAMEPLAY, BONUS, AFFILIATE, PAYMENT, DISPUTE, SECURITY, RESPONSIBLE_GAMBLING, CUSTOM].freeze
90
+ end
91
+
92
+ # Known values of an open enum: the API may send others.
93
+ module MonitoringEventsListParamsEventCategory
94
+ AUTH = "auth"
95
+ SESSION = "session"
96
+ GAMEPLAY = "gameplay"
97
+ BONUS = "bonus"
98
+ AFFILIATE = "affiliate"
99
+ PAYMENT = "payment"
100
+ DISPUTE = "dispute"
101
+ SECURITY = "security"
102
+ RESPONSIBLE_GAMBLING = "responsible_gambling"
103
+ CUSTOM = "custom"
104
+
105
+ VALUES = [AUTH, SESSION, GAMEPLAY, BONUS, AFFILIATE, PAYMENT, DISPUTE, SECURITY, RESPONSIBLE_GAMBLING, CUSTOM].freeze
106
+ end
107
+
108
+ # Known values of an open enum: the API may send others.
109
+ module MonitoringEventsListParamsRetentionClass
110
+ LOW_VALUE = "low_value"
111
+ STANDARD = "standard"
112
+ RISK_RELEVANT = "risk_relevant"
113
+ MONETARY_OR_COMPLIANCE = "monetary_or_compliance"
114
+
115
+ VALUES = [LOW_VALUE, STANDARD, RISK_RELEVANT, MONETARY_OR_COMPLIANCE].freeze
116
+ end
117
+
118
+ # Known values of an open enum: the API may send others.
119
+ module MonitoringEventsListParamsStatus
120
+ ACCEPTED = "ACCEPTED"
121
+ APPROVED = "APPROVED"
122
+ IN_REVIEW = "IN_REVIEW"
123
+ DECLINED = "DECLINED"
124
+
125
+ VALUES = [ACCEPTED, APPROVED, IN_REVIEW, DECLINED].freeze
126
+ end
127
+
128
+ # Known values of an open enum: the API may send others.
129
+ module MonitoringEventsListParamsSubjectEntityType
130
+ INDIVIDUAL = "individual"
131
+ COMPANY = "company"
132
+
133
+ VALUES = [INDIVIDUAL, COMPANY].freeze
134
+ end
135
+
136
+ # Known values of an open enum: the API may send others.
137
+ module MonitoringEventsRetrieveSubjectTimelineParamsEntityType
138
+ INDIVIDUAL = "individual"
139
+ COMPANY = "company"
140
+
141
+ VALUES = [INDIVIDUAL, COMPANY].freeze
142
+ end
143
+
144
+ # Known values of an open enum: the API may send others.
145
+ module MonitoringEventsRetrieveSubjectTimelineParamsEventCategory
146
+ AUTH = "auth"
147
+ SESSION = "session"
148
+ GAMEPLAY = "gameplay"
149
+ BONUS = "bonus"
150
+ AFFILIATE = "affiliate"
151
+ PAYMENT = "payment"
152
+ DISPUTE = "dispute"
153
+ SECURITY = "security"
154
+ RESPONSIBLE_GAMBLING = "responsible_gambling"
155
+ CUSTOM = "custom"
156
+
157
+ VALUES = [AUTH, SESSION, GAMEPLAY, BONUS, AFFILIATE, PAYMENT, DISPUTE, SECURITY, RESPONSIBLE_GAMBLING, CUSTOM].freeze
158
+ end
159
+
160
+ # Known values of an open enum: the API may send others.
161
+ module MonitoringEventsRetrieveSubjectTimelineParamsRetentionClass
162
+ LOW_VALUE = "low_value"
163
+ STANDARD = "standard"
164
+ RISK_RELEVANT = "risk_relevant"
165
+ MONETARY_OR_COMPLIANCE = "monetary_or_compliance"
166
+
167
+ VALUES = [LOW_VALUE, STANDARD, RISK_RELEVANT, MONETARY_OR_COMPLIANCE].freeze
168
+ end
169
+
170
+ # Known values of an open enum: the API may send others.
171
+ module MonitoringEventsRetrieveSubjectTimelineParamsStatus
172
+ ACCEPTED = "ACCEPTED"
173
+ APPROVED = "APPROVED"
174
+ IN_REVIEW = "IN_REVIEW"
175
+ DECLINED = "DECLINED"
176
+
177
+ VALUES = [ACCEPTED, APPROVED, IN_REVIEW, DECLINED].freeze
178
+ end
179
+
180
+ class MonitoringEventsCreateBatchResponse < Didit::Model
181
+ field :accepted_count, "accepted_count", :integer
182
+ field :replayed_count, "replayed_count", :integer
183
+ field :rejected_count, "rejected_count", :integer
184
+ field :results, "results", [:array, "MonitoringEventsCreateBatchResponseResults"]
185
+ end
186
+
187
+ # Outcome of one item. Accepted and replayed items also carry every field of `MonitoringEventIngestResult`;
188
+ # rejected items carry `event_id` and `errors` instead.
189
+ class MonitoringEventsCreateBatchResponseResults < Didit::Model
190
+ field :index, "index", :integer
191
+ field :outcome, "outcome", :string
192
+ field :event_id, "event_id", :string
193
+ field :errors, "errors", :any
194
+ field :event_uuid, "event_uuid", :string
195
+ field :status, "status", :string
196
+ field :score, "score", :integer
197
+ field :rules_evaluated_count, "rules_evaluated_count", :integer
198
+ field :rules_matched_count, "rules_matched_count", :integer
199
+ field :correlation_pending, "correlation_pending", :boolean
200
+ field :retention_class, "retention_class", :string
201
+ field :expires_at, "expires_at", :datetime
202
+ field :idempotent_replay, "idempotent_replay", :boolean
203
+ field :rule_matches, "rule_matches", [:array, "MonitoringEventsCreateBatchResponseResultsRuleMatches"]
204
+ end
205
+
206
+ class MonitoringEventsCreateBatchResponseResultsRuleMatches < Didit::Model
207
+ field :rule_id, "rule_id", :string
208
+ field :library_key, "library_key", :string
209
+ field :mode, "mode", :string
210
+ field :is_async, "is_async", :boolean
211
+ end
212
+
213
+ class MonitoringEventsCreateSdkTokenResponse < Didit::Model
214
+ field :monitoring_token, "monitoring_token", :string
215
+ field :expires_at, "expires_at", :datetime
216
+ field :allowed_event_categories, "allowed_event_categories", [:array, :string]
217
+ field :max_uses, "max_uses", :integer
218
+ field :bind_to_origin, "bind_to_origin", :string
219
+ end
220
+
221
+ class MonitoringEventsRetrieveEnrichmentMetricsResponse < Didit::Model
222
+ field :events_ingested, "events_ingested", :integer
223
+ field :events_rejected, "events_rejected", :integer
224
+ field :enrichment_lookups, "enrichment_lookups", :integer
225
+ field :enrichment_cache_hits, "enrichment_cache_hits", :integer
226
+ field :enrichment_provider_calls, "enrichment_provider_calls", :integer
227
+ field :enrichment_skipped_low_value, "enrichment_skipped_low_value", :integer
228
+ field :unique_ips_seen, "unique_ips_seen", :integer
229
+ field :period_days, "period_days", :integer
230
+ field :cache_hit_rate, "cache_hit_rate", :float
231
+ field :unique_ip_ratio, "unique_ip_ratio", :float
232
+ field :provider_calls_per_1k_events, "provider_calls_per_1k_events", :float
233
+ end
234
+ end
235
+ end
@@ -0,0 +1,120 @@
1
+ # Code generated by codegen from openapi/*.json. DO NOT EDIT.
2
+ # frozen_string_literal: true
3
+
4
+ module Didit
5
+ module Types
6
+ # Known values of an open enum: the API may send others.
7
+ module NetworksListParamsScope
8
+ IDENTITY = "identity"
9
+ TRANSACTIONS = "transactions"
10
+
11
+ VALUES = [IDENTITY, TRANSACTIONS].freeze
12
+ end
13
+
14
+ # Why cross-organization signals do not apply, checked in this order. `plan`: the organization's plan does not
15
+ # include the cross-organization fraud network (it needs the Enterprise plan), whatever the sharing mode.
16
+ # `sharing_mode`: the plan includes it, but the sharing mode is `private` or `off`. Null when
17
+ # `cross_org_available` is `true`.
18
+ module NetworksListResponseCrossOrgUnavailableReason
19
+ PLAN = "plan"
20
+ SHARING_MODE = "sharing_mode"
21
+
22
+ VALUES = [PLAN, SHARING_MODE].freeze
23
+ end
24
+
25
+ # The organization's cross-organization sharing mode. Only `global` compares networks across organizations;
26
+ # `private` and `off` keep them to the organization's own history.
27
+ module NetworksListResponseSharingMode
28
+ OFF = "off"
29
+ PRIVATE = "private"
30
+ GLOBAL = "global"
31
+
32
+ VALUES = [OFF, PRIVATE, GLOBAL].freeze
33
+ end
34
+
35
+ # Known values of an open enum: the API may send others.
36
+ module NetworksRetrieveGraphParamsDepth
37
+ V_1 = "1"
38
+ V_2 = "2"
39
+ V_3 = "3"
40
+ ALL = "all"
41
+
42
+ VALUES = [V_1, V_2, V_3, ALL].freeze
43
+ end
44
+
45
+ # Known values of an open enum: the API may send others.
46
+ module NetworksRetrieveGraphParamsFocusKind
47
+ VENDOR_USER = "vendor_user"
48
+ VENDOR_BUSINESS = "vendor_business"
49
+ TRANSACTION_PARTY = "transaction_party"
50
+
51
+ VALUES = [VENDOR_USER, VENDOR_BUSINESS, TRANSACTION_PARTY].freeze
52
+ end
53
+
54
+ # Known values of an open enum: the API may send others.
55
+ module NetworksRetrieveTimelineParamsContract
56
+ V_2 = "2"
57
+
58
+ VALUES = [V_2].freeze
59
+ end
60
+
61
+ # Known values of an open enum: the API may send others.
62
+ module NetworksRetrieveTimelineParamsEventType
63
+ NETWORK_DETECTED = "network_detected"
64
+ SIGNAL_OBSERVED = "signal_observed"
65
+ NETWORK_ACTIVE = "network_active"
66
+ NETWORK_IN_REVIEW = "network_in_review"
67
+ NETWORK_RESOLVED = "network_resolved"
68
+ NETWORK_DISMISSED = "network_dismissed"
69
+ VERIFICATION_ATTEMPT = "verification_attempt"
70
+ TRANSACTION = "transaction"
71
+ LOGIN = "login"
72
+ RULE_HIT = "rule_hit"
73
+ CASE_LINKED = "case_linked"
74
+ NOTE_ADDED = "note_added"
75
+
76
+ VALUES = [NETWORK_DETECTED, SIGNAL_OBSERVED, NETWORK_ACTIVE, NETWORK_IN_REVIEW, NETWORK_RESOLVED, NETWORK_DISMISSED, VERIFICATION_ATTEMPT, TRANSACTION, LOGIN, RULE_HIT, CASE_LINKED, NOTE_ADDED].freeze
77
+ end
78
+
79
+ class NetworksListMembersResponse < Didit::Model
80
+ field :results, "results", [:array, "NetworkMember"]
81
+ end
82
+
83
+ class NetworksListResponse < Didit::Model
84
+ field :count, "count", :integer
85
+ field :next, "next", :integer
86
+ field :previous, "previous", :integer
87
+ field :results, "results", [:array, "NetworkListItem"]
88
+ field :kpis, "kpis", "NetworksListResponseKpis"
89
+ field :counts, "counts", "NetworkListCounts"
90
+ field :sharing_mode, "sharing_mode", :string
91
+ field :cross_org_available, "cross_org_available", :boolean
92
+ field :cross_org_unavailable_reason, "cross_org_unavailable_reason", :string
93
+ end
94
+
95
+ # Each key is {value, delta} over the results matching the current filters. Omitted when `summary=false`.
96
+ class NetworksListResponseKpis < Didit::Model
97
+ field :active, "active", :any
98
+ field :in_review, "in_review", :any
99
+ field :applicants_involved, "applicants_involved", :any
100
+ field :detected_this_period, "detected_this_period", :any
101
+ field :false_positive_rate, "false_positive_rate", :any
102
+ end
103
+
104
+ class NetworksListSignalsResponse < Didit::Model
105
+ field :results, "results", [:array, "NetworkSignal"]
106
+ end
107
+
108
+ class NetworksNotesListResponse < Didit::Model
109
+ field :count, "count", :integer
110
+ field :next, "next", :string
111
+ field :previous, "previous", :string
112
+ field :results, "results", [:array, "NetworkNote"]
113
+ end
114
+
115
+ class NetworksRetrieveTimelineResponse < Didit::Model
116
+ field :results, "results", [:array, "NetworkTimelineEvent"]
117
+ field :next_cursor, "next_cursor", :string
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,95 @@
1
+ # Code generated by codegen from openapi/*.json. DO NOT EDIT.
2
+ # frozen_string_literal: true
3
+
4
+ module Didit
5
+ module Types
6
+ # Always `PASSIVE` for this endpoint.
7
+ module PassiveLivenessCheckResponseLivenessMethod
8
+ PASSIVE = "PASSIVE"
9
+
10
+ VALUES = [PASSIVE].freeze
11
+ end
12
+
13
+ # `Declined` when at least one `error`-severity warning fired (no face, low score, presentation attack, or a
14
+ # blocklist hit); `Approved` otherwise. `warning`/`information` entries (multiple faces, duplicates) never decline
15
+ # on their own.
16
+ module PassiveLivenessCheckResponseLivenessStatus
17
+ APPROVED = "Approved"
18
+ DECLINED = "Declined"
19
+
20
+ VALUES = [APPROVED, DECLINED].freeze
21
+ end
22
+
23
+ # Feature that raised the warning. Always `LIVENESS` on this endpoint.
24
+ module PassiveLivenessCheckResponseLivenessWarningsFeature
25
+ LIVENESS = "LIVENESS"
26
+
27
+ VALUES = [LIVENESS].freeze
28
+ end
29
+
30
+ # Severity. `error` warnings drive `status` to `Declined`; `warning` and `information` entries are advisory and
31
+ # never decline on their own.
32
+ module PassiveLivenessCheckResponseLivenessWarningsLogType
33
+ ERROR = "error"
34
+ WARNING = "warning"
35
+ INFORMATION = "information"
36
+
37
+ VALUES = [ERROR, WARNING, INFORMATION].freeze
38
+ end
39
+
40
+ # Machine-readable risk code.
41
+ module PassiveLivenessCheckResponseLivenessWarningsRisk
42
+ NO_FACE_DETECTED = "NO_FACE_DETECTED"
43
+ LOW_LIVENESS_SCORE = "LOW_LIVENESS_SCORE"
44
+ LIVENESS_FACE_ATTACK = "LIVENESS_FACE_ATTACK"
45
+ MULTIPLE_FACES_DETECTED = "MULTIPLE_FACES_DETECTED"
46
+ FACE_IN_BLOCKLIST = "FACE_IN_BLOCKLIST"
47
+ POSSIBLE_FACE_IN_BLOCKLIST = "POSSIBLE_FACE_IN_BLOCKLIST"
48
+ DUPLICATED_FACE = "DUPLICATED_FACE"
49
+ POSSIBLE_DUPLICATED_FACE = "POSSIBLE_DUPLICATED_FACE"
50
+
51
+ VALUES = [NO_FACE_DETECTED, LOW_LIVENESS_SCORE, LIVENESS_FACE_ATTACK, MULTIPLE_FACES_DETECTED, FACE_IN_BLOCKLIST, POSSIBLE_FACE_IN_BLOCKLIST, DUPLICATED_FACE, POSSIBLE_DUPLICATED_FACE].freeze
52
+ end
53
+
54
+ class PassiveLivenessCheckResponse < Didit::Model
55
+ field :request_id, "request_id", :string
56
+ field :liveness, "liveness", "PassiveLivenessCheckResponseLiveness"
57
+ field :vendor_data, "vendor_data", :string
58
+ field :metadata, "metadata", :any
59
+ field :created_at, "created_at", :datetime
60
+ end
61
+
62
+ class PassiveLivenessCheckResponseLiveness < Didit::Model
63
+ field :status, "status", :string
64
+ field :method_, "method", :string
65
+ field :score, "score", :float
66
+ field :user_image, "user_image", "PassiveLivenessCheckResponseLivenessUserImage"
67
+ field :warnings, "warnings", [:array, "PassiveLivenessCheckResponseLivenessWarnings"]
68
+ field :face_quality, "face_quality", :float
69
+ field :face_luminance, "face_luminance", :float
70
+ end
71
+
72
+ # Face-detection results for the submitted image.
73
+ class PassiveLivenessCheckResponseLivenessUserImage < Didit::Model
74
+ field :entities, "entities", [:array, "PassiveLivenessCheckResponseLivenessUserImageEntities"]
75
+ field :best_angle, "best_angle", :integer
76
+ end
77
+
78
+ class PassiveLivenessCheckResponseLivenessUserImageEntities < Didit::Model
79
+ field :bbox, "bbox", [:array, :integer]
80
+ field :confidence, "confidence", :float
81
+ field :age, "age", :float
82
+ field :gender, "gender", :string
83
+ field :race, "race", :string
84
+ end
85
+
86
+ class PassiveLivenessCheckResponseLivenessWarnings < Didit::Model
87
+ field :risk, "risk", :string
88
+ field :feature, "feature", :string
89
+ field :additional_data, "additional_data", :any
90
+ field :log_type, "log_type", :string
91
+ field :short_description, "short_description", :string
92
+ field :long_description, "long_description", :string
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,69 @@
1
+ # Code generated by codegen from openapi/*.json. DO NOT EDIT.
2
+ # frozen_string_literal: true
3
+
4
+ module Didit
5
+ module Types
6
+ # What to do when the carrier lookup flags the number as a temporary/burner line (`phone.is_disposable`).
7
+ # `DECLINE` flips the final `status` to `Declined`; `NO_ACTION` records the risk in `phone.warnings`.
8
+ module PhoneCheckCodeParamsDisposableNumberAction
9
+ NO_ACTION = "NO_ACTION"
10
+ DECLINE = "DECLINE"
11
+
12
+ VALUES = [NO_ACTION, DECLINE].freeze
13
+ end
14
+
15
+ # What to do when the same number was already used by a different user (different `vendor_data`) of your
16
+ # application. `DECLINE` flips the final `status` to `Declined`; `NO_ACTION` records the risk in `phone.warnings`
17
+ # and fills `phone.matches`.
18
+ module PhoneCheckCodeParamsDuplicatedPhoneNumberAction
19
+ NO_ACTION = "NO_ACTION"
20
+ DECLINE = "DECLINE"
21
+
22
+ VALUES = [NO_ACTION, DECLINE].freeze
23
+ end
24
+
25
+ # Action when the social footprint check finds the number registered on none of the platforms it covers. Only
26
+ # NO_ACTION and DECLINE are accepted on this endpoint; REVIEW is available on the workflow configuration key of
27
+ # the same name.
28
+ module PhoneCheckCodeParamsPhoneNoSocialPresenceAction
29
+ NO_ACTION = "NO_ACTION"
30
+ DECLINE = "DECLINE"
31
+
32
+ VALUES = [NO_ACTION, DECLINE].freeze
33
+ end
34
+
35
+ # What to do when the carrier lookup reports a virtual line type - `voip`, `isp`, or `vpn` (`phone.is_virtual`).
36
+ # `DECLINE` flips the final `status` to `Declined`; `NO_ACTION` records the risk in `phone.warnings`.
37
+ module PhoneCheckCodeParamsVoipNumberAction
38
+ NO_ACTION = "NO_ACTION"
39
+ DECLINE = "DECLINE"
40
+
41
+ VALUES = [NO_ACTION, DECLINE].freeze
42
+ end
43
+
44
+ # Preferred delivery channel. If the channel is unavailable for the destination country or number, the message
45
+ # automatically falls back to SMS - the send still reports `Success`.
46
+ module PhoneSendCodeParamsOptionsPreferredChannel
47
+ WHATSAPP = "whatsapp"
48
+ SMS = "sms"
49
+ TELEGRAM = "telegram"
50
+ VOICE = "voice"
51
+ RCS = "rcs"
52
+ VIBER = "viber"
53
+ ZALO = "zalo"
54
+
55
+ VALUES = [WHATSAPP, SMS, TELEGRAM, VOICE, RCS, VIBER, ZALO].freeze
56
+ end
57
+
58
+ # Platform of the end user's device.
59
+ module PhoneSendCodeParamsSignalsDevicePlatform
60
+ ANDROID = "android"
61
+ IOS = "ios"
62
+ IPADOS = "ipados"
63
+ TVOS = "tvos"
64
+ WEB = "web"
65
+
66
+ VALUES = [ANDROID, IOS, IPADOS, TVOS, WEB].freeze
67
+ end
68
+ end
69
+ end