@frankieone/one-sdk 0.1.0-poc.15

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 (45) hide show
  1. package/README.md +25 -0
  2. package/dist/index.esm.js +2 -0
  3. package/dist/index.esm.js.map +1 -0
  4. package/dist/index.umd.js +2 -0
  5. package/dist/index.umd.js.map +1 -0
  6. package/dist/types/api/ExternalIdvClient.d.ts +19 -0
  7. package/dist/types/api/FrankieApiClient.d.ts +54 -0
  8. package/dist/types/api/index.d.ts +1 -0
  9. package/dist/types/facades/POC/reactComponent.d.ts +644 -0
  10. package/dist/types/facades/POC/routing.d.ts +3 -0
  11. package/dist/types/facades/POC/viewWrapper.d.ts +4 -0
  12. package/dist/types/facades/POC/webEntry.d.ts +6 -0
  13. package/dist/types/index.d.ts +11 -0
  14. package/dist/types/models/Address.d.ts +67 -0
  15. package/dist/types/models/Admin.d.ts +1295 -0
  16. package/dist/types/models/Applicant.d.ts +115 -0
  17. package/dist/types/models/CheckSummary.d.ts +164 -0
  18. package/dist/types/models/ConfigurationReader.d.ts +7 -0
  19. package/dist/types/models/Core.d.ts +2725 -0
  20. package/dist/types/models/Document.d.ts +112 -0
  21. package/dist/types/models/General.d.ts +196 -0
  22. package/dist/types/models/Organisation.d.ts +36 -0
  23. package/dist/types/models/Profile.d.ts +27 -0
  24. package/dist/types/models/SupportingDocument.d.ts +95 -0
  25. package/dist/types/models/User.d.ts +27 -0
  26. package/dist/types/models/index.d.ts +14 -0
  27. package/dist/types/models/transformers/apiState.d.ts +23 -0
  28. package/dist/types/models/utils/address.d.ts +2 -0
  29. package/dist/types/models/utils/base64.d.ts +11 -0
  30. package/dist/types/models/utils/buildCycleUtils.d.ts +1 -0
  31. package/dist/types/models/utils/constants.d.ts +75 -0
  32. package/dist/types/models/utils/date.d.ts +5 -0
  33. package/dist/types/models/utils/getCountryDetails.d.ts +9 -0
  34. package/dist/types/models/utils/getDocumentDetails.d.ts +8 -0
  35. package/dist/types/models/utils/helper.d.ts +4 -0
  36. package/dist/types/models/utils/index.d.ts +11 -0
  37. package/dist/types/models/utils/isEmpty.d.ts +5 -0
  38. package/dist/types/models/utils/sanitiser.d.ts +8 -0
  39. package/dist/types/modules/router/ReactDictionaryRouter.d.ts +15 -0
  40. package/dist/types/modules/router/common/routing.d.ts +25 -0
  41. package/dist/types/modules/store/ReactInMemoryStore.d.ts +24 -0
  42. package/dist/types/uiComponents/reactWeb.d.ts +8 -0
  43. package/dist/types/utils/base64.d.ts +11 -0
  44. package/dist/types/utils/env2Url.d.ts +1 -0
  45. package/package.json +64 -0
@@ -0,0 +1,2725 @@
1
+ /**
2
+ * This file was auto-generated by swagger-to-ts.
3
+ * Do not make direct changes to the file.
4
+ */
5
+ export declare interface Core {
6
+ /**
7
+ * Valid ID types
8
+ * - "OTHER": Generic document type. Unspecified.
9
+ * - "DRIVERS_LICENCE": Driver's licence.
10
+ * - "PASSPORT": Passport
11
+ * - "VISA": Visa document (not Visa payment card)
12
+ * - "IMMIGRATION": Immigration card
13
+ * - "NATIONAL_ID": Any national ID card
14
+ * - "TAX_ID": Any national tax identifier
15
+ * - "NATIONAL_HEALTH_ID": Any national health program ID card (e.g. Medicare, NHS)
16
+ * - "CONCESSION": State issued concession card
17
+ * - "HEALTH_CONCESSION": State issued health specific concession card
18
+ * - "PENSION": State issued pension ID
19
+ * - "MILITARY_ID": Military ID
20
+ * - "BIRTH_CERT": Birth certificate
21
+ * - "CITIZENSHIP": Citizenship certificate
22
+ * - "MARRIAGE_CERT": Marriage certificate
23
+ * - "DEATH_CERT": Death certificate
24
+ * - "NAME_CHANGE": Name chage confirmation
25
+ * - "UTILITY_BILL": Regulated utility bill, such as electricity, gas, etc
26
+ * - "BANK_STATEMENT": Bank/card statement
27
+ * - "BANK_ACCOUNT": Bank account
28
+ * - "INTENT_PROOF": A proof of intent. Generally a photo/video, or a scanned letter
29
+ * - "ATTESTATION": A document of attestation (e.g. Statutory Declaration)
30
+ * - "SELF_IMAGE": A "selfie" used for comparisions
31
+ * - "EMAIL_ADDRESS": An email address
32
+ * - "MSISDN": A mobile phone number
33
+ * - "DEVICE": A device ID
34
+ * - "VEHICLE_REGISTRATION": Vehicle registration number
35
+ * Business related documentation
36
+ * - "EXTERNAL_ADMIN": Details of appointed administrator.
37
+ * - "CHARGES": Details of any charges that have been laid against a company or director
38
+ * - "PRE_ASIC": Any documents that are Pre-ASIC
39
+ * - "ANNUAL_RETURN": Details of a company's annual return
40
+ * - "REPORT": Frankie generated report.
41
+ * Special document types
42
+ * - "CHECK_RESULTS": A special document type for specifying results of checks completed other than through Frankie.
43
+ */
44
+ enumIdType: "OTHER" | "DRIVERS_LICENCE" | "PASSPORT" | "VISA" | "IMMIGRATION" | "NATIONAL_ID" | "TAX_ID" | "NATIONAL_HEALTH_ID" | "CONCESSION" | "HEALTH_CONCESSION" | "PENSION" | "MILITARY_ID" | "BIRTH_CERT" | "CITIZENSHIP" | "MARRIAGE_CERT" | "DEATH_CERT" | "NAME_CHANGE" | "MOBILE_PHONE" | "UTILITY_BILL" | "BANK_STATEMENT" | "BANK_ACCOUNT" | "INTENT_PROOF" | "ATTESTATION" | "SELF_IMAGE" | "EMAIL_ADDRESS" | "MSISDN" | "DEVICE" | "VEHICLE_REGISTRATION" | "EXTERNAL_ADMIN" | "CHARGES" | "PRE_ASIC" | "ANNUAL_RETURN" | "REPORT" | "CHECK_RESULTS" | "PROOF_OF_ADDRESS" | "TRUST_DEED" | "PARTNERSHIP_AGREEMENT" | "ADMIN_CHANGE" | "COMPANY_REPORT" | "RENTAL_AGREEMENT" | "TAX_STATEMENT" | "HOUSE_REGISTRATION" | "YELLOW_HOUSE_REGISTRATION" | "WORK_PERMIT" | "EMPLOYMENT_CERTIFICATE" | "NOTARY_PUBLIC_ID";
45
+ /**
46
+ * Used to describe the contents of the KVP data.
47
+ *
48
+ * The general.* and raw.* types are pretty much what they say on the tin.
49
+ *
50
+ * All raw.* fields will be base64 encoded so as to not interfere with JSON structuring. These are useful for returning/storing large quantities of data that doesn't necessarily require processing now, or may be useful to a calling client.
51
+ *
52
+ * The id.* and pii.* are used to indicate that this is data that can be used to create new document objects, or entities. They should also be treated with the utmost care and attention when it comes to securing them too.
53
+ *
54
+ * id.external can be used to capture an object's ID on an external service, and can potentially be searchable in the index
55
+ * Note - This is different from a result.id.
56
+ *
57
+ * defunct is used to mark an existing KVP deleted when the value must be retained, for example for audit purposes.
58
+ *
59
+ * result.* are used to capture response codes and transaction IDs from external services
60
+ *
61
+ * error.* types can be used when processing a document that returns an error, but doesn't necessarily require a full blown error response.
62
+ */
63
+ enumKVPType: "defunct" | "general.string" | "general.integer" | "general.float" | "general.bool" | "general.date" | "general.datetime" | "raw.json.base64" | "raw.xml.base64" | "raw.base64" | "error.code" | "error.message" | "result.code" | "result.id" | "id.external" | "id.number.primary" | "id.number.additional" | "id.msisdn" | "id.email" | "id.device" | "pii.name.full" | "pii.name.familyname" | "pii.name.givenname" | "pii.name.middlename" | "pii.gender" | "pii.address.longform" | "pii.address.street1" | "pii.address.street2" | "pii.address.postalcode" | "pii.address.town" | "pii.address.suburb" | "pii.address.region" | "pii.address.state" | "pii.address.country" | "pii.dob" | "transient.string";
64
+ /**
65
+ * Valid ID document scan general types.
66
+ * - "PHOTO": Any photo
67
+ * - "VIDEO": Any video
68
+ * - "AUDIO": Any audio
69
+ * - "PDF": PDF or PS (may contain text, images or both)
70
+ * - "DOC": Word doc, RTF, etc
71
+ * - "ZIP": Any compressed file(s)
72
+ */
73
+ enumScanType: "PHOTO" | "VIDEO" | "AUDIO" | "PDF" | "DOC" | "ZIP";
74
+ /**
75
+ * Describes if a scan is of the "F"ront or "B"ack of an ID. If not supplied, Front is always assumed.
76
+ */
77
+ enumScanSide: "F" | "B";
78
+ /**
79
+ * Used to indicate of the entity in question is:
80
+ * - "M"ale
81
+ * - "F"emale
82
+ * - "U"nspecified
83
+ * - "O"ther (for want of a better option)
84
+ */
85
+ enumGender: "U" | "F" | "M" | "O";
86
+ /**
87
+ * Used to indicate marital status of the Applicant
88
+ * - Single
89
+ * - Married
90
+ * - Widowed
91
+ * - Divorced
92
+ */
93
+ enumMaritalStatus: "Single" | "Married" | "Widowed" | "Divorced";
94
+ /**
95
+ * The standard MIME type of the file being uploaded. We'll double-check to be certain, but this can help speed things up
96
+ */
97
+ enumMIMEType: "image/jpeg" | "image/png" | "image/gif" | "image/webp" | "image/tiff" | "image/bmp" | "application/zip" | "application/x-tar" | "application/x-rar-compressed" | "application/gzip" | "application/x-bzip2" | "application/x-7z-compressed" | "application/pdf" | "application/rtf" | "application/postscript" | "application/json" | "audio/mpeg" | "audio/m4a" | "audio/x-wav" | "audio/amr" | "application/msword" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "application/vnd.ms-powerpoint" | "application/vnd.openxmlformats-officedocument.presentationml.presentation" | "video/mp4" | "video/webm" | "video/quicktime" | "video/x-msvideo" | "video/x-ms-wmv" | "video/mpeg";
98
+ /**
99
+ * The reason why the scanData in a response is missing.
100
+ * - "NORMAL": The scanData was retrieved and is included. If it is empty then it was never provided or was provided empty.
101
+ * - "EXCLUDED": The retrieval request was not for 'full' data, or the object has 'ScanDelete' set so the scanData is not included
102
+ * - "FAILED": The scanData could not be retrieved from the secure document store.
103
+ *
104
+ * The enumScanDataRetrievalState will not usually be set in a request. If a ScannedDocumentObject in a response has a 'FAILED' retrieval state then that object should not be sent back in a future possible update. It should either be omitted or the original data should be resent if it is available from another source. However it is safe to send the object in an update with the state received in a response. Any state other than 'NORMAL' (or '') will cause the blank scanData to be ignored, but other fields in the object will be updated if needed.
105
+ */
106
+ enumScanDataRetrievalState: "NORMAL" | "EXCLUDED" | "FAILED";
107
+ /**
108
+ * Used to indicate what sort address this is, such as residential, business, postal, etc.
109
+ *
110
+ * RESIDENTIAL1-4 can be used to indicate the reverse chronological order of addresses.
111
+ * RESIDENTIAL or RESIDENTIAL1 is the current address
112
+ * RESIDENTIAL2 is the previous address, and so on.
113
+ *
114
+ * For Individual postal/mailing addresses, use POSTAL.
115
+ * For Businesses, use OFFICIAL_CORRESPONDANCE
116
+ */
117
+ enumAddressType: "OTHER" | "RESIDENTIAL" | "RESIDENTIAL1" | "RESIDENTIAL2" | "RESIDENTIAL3" | "RESIDENTIAL4" | "BUSINESS" | "POSTAL" | "REGISTERED_OFFICE" | "PLACE_OF_BUSINESS" | "PLACE_OF_BIRTH" | "OFFICIAL_CORRESPONDANCE";
118
+ /**
119
+ * Current status of a document.
120
+ * - "INITIALISING": the state whilst you're uploading and updating
121
+ * - "SCAN_IN_PROGRESS": the state whilst it's being scanned.
122
+ * - "DOC_SCANNED": the document has been scanned and data extracted as best as possible. It's still possible to update the details and add more scans if you wish.
123
+ * - "DOC_CHECKED": the document has been used as part of a check that has been finalised in some way. You can no longer update this document and any attempt will generate an error.
124
+ */
125
+ enumDocumentStatus: "INITIALISING" | "SCAN_IN_PROGRESS" | "DOC_SCANNED" | "DOC_CHECKED";
126
+ /**
127
+ * Check state for an individual data point
128
+ * - "UNCHECKED": Check has not yet been performed
129
+ * - "NOT_SUPPORTED": the requested check type or industry function is not supported by this connector.
130
+ * - "CHECKING": Checks are underway.
131
+ * - "UNPROCESSABLE": The data supplied was unprocessable.
132
+ * - "NO_MATCH": All checks complete, no records found that matched the details supplied
133
+ * - "CHECKED_PARTIAL_SUCCESS": All checks complete, but only some succeeded.
134
+ * - "CHECKED_SUCCESS_WITH_NOTES": All checks complete, but there are some notes (e.g. PEP or sanctions).
135
+ * - "CHECKED_SUCCESS_CLEAR": All checks complete, no additional notes
136
+ * - "CHECKED_FAILED": All checks complete, but all failed.
137
+ */
138
+ enumCheckResultState: "UNCHECKED" | "CHECKING" | "UNPROCESSABLE" | "NOT_SUPPORTED" | "NO_MATCH" | "CHECKED_PARTIAL_SUCCESS" | "CHECKED_SUCCESS_WITH_NOTES" | "CHECKED_SUCCESS_CLEAR" | "CHECKED_FAILED";
139
+ /**
140
+ * Different types of checks available.
141
+ * Note: WATCHLIST can also cover PEP and/or SANCTION as well, depending on source provider used. GROUP is an internal 'meta-check' to store the group details for an AMLResultSet.
142
+ */
143
+ enumBackgroundCheckType: "PEP" | "SANCTION" | "WATCHLIST" | "MEDIA" | "GROUP";
144
+ /**
145
+ * Current state, based on the most recent check.
146
+ * - "CLEAR": The no checks have ever turned up results
147
+ * - "PAST_HITS": Past checks have returned hits, but now they're clear.
148
+ * - "POSSIBLE_HIT": The most recent checks turned up some results that may be relevant
149
+ * - "ACTIVE_HITS": The current checks are returning definitive hits.
150
+ */
151
+ enumBackgroundCheckState: "CLEAR" | "PAST_HITS" | "POSSIBLE_HIT" | "ACTIVE_HITS";
152
+ /**
153
+ * How often these checks run.
154
+ */
155
+ enumBackgroundCheckFrequency: "ADHOC" | "YEARLY" | "QUARTERLY" | "MONTHY" | "WEEKLY" | "DAILY";
156
+ /**
157
+ * Defines how close a match we were able to make based on search results.
158
+ * - "LOW": The item does match the minimum criteria given, but is potentially one of a number of possible hits
159
+ * - "MEDIUM": The item matches multiple search criteria, but there is still some potential ambiguity with other hits
160
+ * - "HIGH": Matches all given search criteria, but there were other potential hits
161
+ * - "DEFINITE": Was the only item to match all given search criteria.
162
+ */
163
+ enumSearchResultConfidence: "LOW" | "MEDIUM" | "HIGH" | "DEFINITE";
164
+ /**
165
+ * High level indication of the final disposition of a backgrounded function
166
+ * - "COMPLETED": the request completed (not that the final result is a success, just that we completed)
167
+ * - "FAILED": the request failed.
168
+ * - "INCOMPLETE": could not complete the request.
169
+ */
170
+ enumFunctionStatus: "COMPLETED" | "FAILED" | "INCOMPLETE";
171
+ /**
172
+ * Indicates the type of notification being pushed.
173
+ * - "FUNCTION": A request that you previously backgrounded has completed and this is the notification that is it complete (success is another matter)
174
+ * - "RESULT": Like the FUNCTION notification, this tells you that a previously backgrounded request has completed, and that there is a set of results in the payload pointer.
175
+ * - "EVENT": There has been a stateful change in a document, entity or some other piece of data that we are holding/monitoring for you. This is an indication that you may wish to take some action.
176
+ * - "ALERT": Like the EVENT, except that the severity of the notification indicates that action is almost certainly required.
177
+ */
178
+ enumNotificationType: "FUNCTION" | "RESULT" | "EVENT" | "ALERT";
179
+ /**
180
+ * Indicates the status of a check result as set by a user.
181
+ * - "UNKNOWN": The user has not decided so the actual check result applies as normal.
182
+ * - "TRUE_POSITIVE": The check result has been acknowledged as correct but the final effect (accept/reject) has not been decided.
183
+ * - "TRUE_POSITIVE_ACCEPT": The check result is correct but will be ignored. This is also known as 'whitelisting'
184
+ * - "TRUE_POSITIVE_REJECT": The check result is correct and will be used.
185
+ * - "FALSE_POSITIVE": The check result is not applicable and will be ignored.
186
+ * - "STALE": The check result will become invisible, will not be considered
187
+ * and will not count towards due diligence requirements.
188
+ */
189
+ enumCheckResultManualStatus: "UNKNOWN" | "TRUE_POSITIVE" | "TRUE_POSITIVE_ACCEPT" | "TRUE_POSITIVE_REJECT" | "FALSE_POSITIVE" | "STALE";
190
+ /**
191
+ * Indicates the type of an entity.
192
+ * - "INDIVIDUAL": An individual.
193
+ * - "TRUST": A trust.
194
+ * - "ORGANISATION": An organisation.
195
+ */
196
+ enumEntityType: "INDIVIDUAL" | "TRUST" | "ORGANISATION";
197
+ /**
198
+ * Individual key-value pair
199
+ */
200
+ KeyValuePairObject: {
201
+ /**
202
+ * Name of the data
203
+ */
204
+ kvpKey?: string;
205
+ /**
206
+ * Value of the data
207
+ */
208
+ kvpValue?: string;
209
+ kvpType?: Core["enumKVPType"];
210
+ };
211
+ /**
212
+ * Unique identifier for every request. Can be used for tracking down answers with technical support.
213
+ *
214
+ * Uses the ULID format (a time-based, sortable UUID)
215
+ *
216
+ * Note: this will be different for every request.
217
+ */
218
+ RequestIDObject: string;
219
+ /**
220
+ * Provides details of the confidence level we have that this is the item we're looking for.
221
+ */
222
+ SearchResultConfidenceObject: {
223
+ /**
224
+ * Numeric score on a scale of 0 (none) to 100 (as certain as possible) on which the confidence level is based. Whole integers only.
225
+ */
226
+ score?: number;
227
+ level?: Core["enumSearchResultConfidence"];
228
+ /**
229
+ * Free-form list of descriptions around any partial matches
230
+ */
231
+ notes?: string[];
232
+ };
233
+ ErrorObject: {
234
+ requestId: Core["RequestIDObject"];
235
+ /**
236
+ * Deprecated:
237
+ * HTTP status code. Same as that which is passed back in the header.
238
+ */
239
+ httpStatusCode?: number;
240
+ /**
241
+ * Frankie error code
242
+ */
243
+ errorCode: string;
244
+ /**
245
+ * Will describe the error
246
+ */
247
+ errorMsg: string;
248
+ /**
249
+ * Server version indication
250
+ */
251
+ commit?: string;
252
+ issues?: {
253
+ /**
254
+ * Will describe the field or data location of the issue
255
+ */
256
+ issueLocation: string;
257
+ /**
258
+ * Description of the problem
259
+ */
260
+ issue?: string;
261
+ }[];
262
+ };
263
+ BasicStatusResultObject: {
264
+ requestId: Core["RequestIDObject"];
265
+ /**
266
+ * Simple message describing the final status of the process. Only to be used in success case responses. Otherwise, use the ErrorObject.
267
+ */
268
+ statusMsg: string;
269
+ };
270
+ /**
271
+ * The following fields represent the data you need in order to retrieve the results of the requested function. See the details of the notification API for more.
272
+ */
273
+ NotificationResultObject: {
274
+ requestId?: Core["RequestIDObject"];
275
+ notificationType?: Core["enumNotificationType"];
276
+ /**
277
+ * Only supplied if the original request was tied to a document. This will be the same ID that was sent in the original acceptance.
278
+ */
279
+ documentId?: string;
280
+ /**
281
+ * Only supplied if the original request was tied to an entity. This will be the same ID that was sent in the original acceptance.
282
+ */
283
+ entityId?: string;
284
+ /**
285
+ * If the entity in entityId above has had an external service ID attached to it in the entity extraData with kvpKey = customer_reference, then this is that kvpValue
286
+ */
287
+ entityCustomerReference?: string;
288
+ /**
289
+ * Short description of the original function called, or function that was triggered.
290
+ */
291
+ function?: string;
292
+ functionResult?: Core["enumFunctionStatus"];
293
+ /**
294
+ * If you're calling a processing function of some kind, a check number will be issued. This field will only be present if the function you're calling would normally return a checkId (such as scan, verify, and compare).
295
+ */
296
+ checkId?: string;
297
+ /**
298
+ * URI for resource containing more details about the reason for the notification.
299
+ */
300
+ linkReference?: string;
301
+ /**
302
+ * A brief, human readable message describing the reason for the notification.
303
+ */
304
+ message?: string;
305
+ /**
306
+ * The portal username that initiated the operation that led to this notification. If applicable and available.
307
+ */
308
+ username?: string;
309
+ };
310
+ /**
311
+ * When sent a notification or alert, you'll call the /retrive/response/{requestId} function
312
+ *
313
+ * This will return the original response
314
+ */
315
+ RetrievedResponseObject: {
316
+ /**
317
+ * This will be the HTTP response code that was returned originally (200, 404, etc).
318
+ *
319
+ * In the case where you're requesting the result of a callback (previously backgrounded call), then this is the response that would have been sent, had you waited for the call to finish.
320
+ */
321
+ origHTTPstatus?: number;
322
+ /**
323
+ * This is a placeholder field. It will actually be a JSON object that is the payload that would have been returned (or was returned) in the original request. You'll need to process this as if it were the original response, and act accordingly.
324
+ */
325
+ payload?: {
326
+ [key: string]: any;
327
+ };
328
+ };
329
+ /**
330
+ * The following fields represent the data you need in order to retrieve the results of the requested function. See the details of the notification API for more.
331
+ */
332
+ AcceptedDocumentResultObject: {
333
+ requestId?: Core["RequestIDObject"];
334
+ /**
335
+ * When an ID document is created/uploaded, it is assigned a documentId. You'll see this in a successful response or successfully accepted response. This can then be referenced in subsequent calls if you're uploading more/updated data.
336
+ */
337
+ documentId?: string;
338
+ /**
339
+ * Short description of the function called.
340
+ */
341
+ function?: string;
342
+ /**
343
+ * If you're calling a processing function of some kind, a check number will be issued. This field will only be present if the function you're calling would normally return a checkId (such as scan, verify, and compare).
344
+ */
345
+ checkId?: string;
346
+ };
347
+ /**
348
+ * the document to be attached and optionally scanned (if supported)
349
+ */
350
+ ScannedDocumentObject: {
351
+ /**
352
+ * When an document scan is created/uploaded, it is assigned a scanDocId. You'll see this in a successful response or successfully accepted response. This can then be referenced in subsequent calls if you're uploading more/updated data.
353
+ */
354
+ scanDocId?: string;
355
+ scanType?: Core["enumScanType"];
356
+ scanSide?: Core["enumScanSide"];
357
+ /**
358
+ * If you're uploading a file where it's important to keep the original filename, then you can provide that here. Otherwise the Frankie service will assign an arbitrary name based on the scanDocIdand an extension based on the MIME type
359
+ */
360
+ scanFilename?: string;
361
+ /**
362
+ * If uploading multiple pages - it's handy to keep a track of these. There is no enforcement of these numbers at all. You can have 10 page 1's and a page 29 if you wish.
363
+ */
364
+ scanPageNum?: number;
365
+ scanMIME?: Core["enumMIMEType"];
366
+ /**
367
+ * Used as a way of indicating to the service that the original scanned document is not to be kept after it has been processed. We will retain any metadata and the results of processing (where required by regulation or the customer), but the original file uploaded will eventually be remnoved once processing is complete.
368
+ *
369
+ * If ScanDelete is set to true, any call with /full at the end will still not return the file contents, regardless of whether the file has been deleted yet (the deletion process is a background task that can take a few minutes to occur)
370
+ */
371
+ ScanDelete?: boolean;
372
+ /**
373
+ * Base64 encoded string of a photo or scan of an ID document to be verified. If supplied and of a supported type, the Frankie service will attempt to use OCR tech to extract the data from the scanned doc/image.
374
+ *
375
+ * In a result message, this field will be left blank, unless the "full" action is requested.
376
+ */
377
+ scanData?: string;
378
+ scanDataRetrievalState?: Core["enumScanDataRetrievalState"];
379
+ /**
380
+ * The date and time the scan was created. Not the date of the scanned document, which should be in the idIssued attribute of the document that owns this scan.
381
+ */
382
+ scanCreated?: string;
383
+ };
384
+ IdentityDocumentObject: {
385
+ /**
386
+ * When an ID document is created/uploaded, it is assigned a documentId. You'll see this in a successful response or successfully accepted response. This can then be referenced in subsequent calls if you're uploading more/updated data.
387
+ */
388
+ documentId?: string;
389
+ idType: Core["enumIdType"];
390
+ /**
391
+ * The sub-type of identity document. Very document specific.
392
+ */
393
+ idSubType?: string;
394
+ /**
395
+ * The ISO-3166-alpha3 country code of the issuing national. Once set, this cannot be changed.
396
+ *
397
+ * See https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes for more
398
+ */
399
+ country: string;
400
+ /**
401
+ * Regional variant of the ID (e.g. VIC drivers licence)
402
+ *
403
+ * You should always use the local abbreviation for this.
404
+ * E.g.
405
+ * - VIC for The Australian state of Victoria
406
+ * - MA for the US state of Massachusetts
407
+ * - etc
408
+ */
409
+ region?: string;
410
+ /**
411
+ * The ID number of the document (if known).
412
+ */
413
+ idNumber?: string;
414
+ /**
415
+ * The expiry date of the document (if known) in YYYY-MM-DD format.
416
+ */
417
+ idExpiry?: string;
418
+ /**
419
+ * The issued date of the document (if known) in YYYY-MM-DD format.
420
+ */
421
+ idIssued?: string;
422
+ documentStatus?: Core["enumDocumentStatus"];
423
+ /**
424
+ * This document's data was initially created from scanned and processed images. The value cannot be set manually and any attempt to do so will just be ignored.
425
+ */
426
+ createdFromScan?: boolean;
427
+ /**
428
+ * If this document was originally populated from scanned data, then manually adjusted (e.g. if the scan's results weren't 100% correct or data was missing), then this will be set to true. The value cannot be set manually and any attempt to do so will just be ignored.
429
+ */
430
+ manuallyModified?: boolean;
431
+ /**
432
+ * Set of key-value pairs that provide ID type-specific data. If updating an existing document, then existing values with the same name will be overwritten. New values will be added.
433
+ *
434
+ * If this document is scanned through OCR or similar processes, then extracted data will be found here (Some may be used to populate other fields like idNumber and idExpiry as well)
435
+ */
436
+ extraData?: Core["KeyValuePairObject"][];
437
+ /**
438
+ * Collection of one or more objects that describe scan(s) that need to be put through OCR or facial recognition. These should all be from the one ID document, such as front/back, or page 1, 2, 3, etc. You can upload multiple scans in a single call, or in multiple calls.
439
+ *
440
+ * Note: if you do upload over multiple calls, make sure you include the documentId (see above), and indicate that this is happening with a "more_data" checkAction
441
+ */
442
+ docScan?: Core["ScannedDocumentObject"][];
443
+ };
444
+ /**
445
+ * This is the document that we want to compare to the original toDocument.
446
+ *
447
+ * In the case of a selfie-check against a drivers licence:
448
+ *
449
+ * * compareDocument will be the the selfie
450
+ * * toDocument will be the drivers licence photo
451
+ */
452
+ ComparisonSet: {
453
+ compareDocument?: Core["IdentityDocumentObject"];
454
+ toDocument?: Core["IdentityDocumentObject"];
455
+ };
456
+ /**
457
+ * This is the document we wish to verify in some way, along with an entity object that contains some/all of the details we wish to verify.
458
+ *
459
+ * For example, if we're attempting to verify a drivers licence, we generally need to pass in a name, address, DoB, etc as well. the entity gives the structure to be able to do this.
460
+ *
461
+ * Note, only the document in the "document" parameter is to be processed. any additional documents found in the entity (there shouldn't be, but given the way this has been defined, there can be) will be ignored. Only the Name, Address, DoB and Gender fields will be potentially used during the verification process.
462
+ *
463
+ * The EntityObject can take one of two forms.
464
+ *
465
+ * - It can be a single entityId - in which case the details will be pulled from the database. If using an existing document, then the entity must also own the document or the request will fail.
466
+ * - You can supply a "single use" entity with fields, etc. In this case the entity details will be used to verify the document, then will be discarded.
467
+ *
468
+ * If you wish to save the entity, use the /entity comments instead to create the entity and attach the document there.
469
+ */
470
+ DocumentVerify: {
471
+ document?: Core["IdentityDocumentObject"];
472
+ entityData?: Core["EntityObject"];
473
+ };
474
+ /**
475
+ * Collection of fraud check results for the entity.
476
+ *
477
+ * Contains fraud list and/or background result arrays. Other fraud check types will appear over time
478
+ */
479
+ FraudCheckResultObject: {
480
+ fraudListResults?: Core["ProcessResultObject"][];
481
+ fraudBackgroundCheckResults?: Core["ProcessResultObject"][];
482
+ };
483
+ /**
484
+ * Stores the generic results of a process (check, scan, compare, verify, etc)
485
+ */
486
+ ProcessResultObject: {
487
+ checkId?: Core["CheckIDObject"];
488
+ /**
489
+ * Short indication of the type of check that was done.
490
+ *
491
+ * When used as a summary, it will the the checkType that was requested
492
+ *
493
+ * For granular results, it will be the individual check performed.
494
+ */
495
+ checkType?: string;
496
+ resultState?: Core["enumCheckResultState"];
497
+ /**
498
+ * Any additional notes that may relate to the state. These are returned as typed KVPs
499
+ */
500
+ resultNotes?: Core["KeyValuePairObject"][];
501
+ /**
502
+ * The date and time the item was checked to provide this result.
503
+ */
504
+ checkDate?: string;
505
+ /**
506
+ * Confidence in the result on a scale of 0 (no match) to 100 (strong/identical match). Whole integers only.
507
+ *
508
+ * Negative values are used to indicate untrusted results.
509
+ */
510
+ confidenceLevel?: number;
511
+ /**
512
+ * Only supplied in a summary result. Used to indicate the ovall risk score for the entity at this point in time, based on configurable rules.
513
+ *
514
+ * Some examples might include:
515
+ *
516
+ * * Current level of ID checks passed
517
+ * * Device ID scores
518
+ * * Current PEP/Sanctions/etc checks
519
+ * * Jurisdictional risk based on addresses, documents and other KVPs
520
+ * * Fraud check results
521
+ *
522
+ * In this case a higher score is a bad thing. General rule of thumb:
523
+ *
524
+ * * 0 - 30 = Low Risk
525
+ * * 31 - 50 = Medium Risk
526
+ * * 50 - 75 = High Risk
527
+ * * 75+ = Unacceptable
528
+ */
529
+ riskLevel?: number;
530
+ /**
531
+ * Service provider that performed the check. Basically the name of the connector, without the leading con_
532
+ */
533
+ checkPerformedBy?: string;
534
+ /**
535
+ * Code that can be used to determine the underlying nature or data source of the checks performed. This may or may not be known by the connector, or may be a provider specific type (e.g. type "O")
536
+ *
537
+ * Note, this will actually be normalised by the core service into a standfardised result so that we're not accidentally counting sources twice.
538
+ * Original source will then be copied into the KVPs
539
+ */
540
+ checkSource?: string;
541
+ /**
542
+ * The service provider will give us a receipt, transaction id, check number, or some such that gives us a unique id on their side that we can reconcile with
543
+ */
544
+ providerCheckID?: string;
545
+ };
546
+ /**
547
+ * The result of a scan will contain 4 parts
548
+ *
549
+ * * The requestid - that's always there, and is the same that was passed in in the header.
550
+ *
551
+ * * The results of the process and the meta data around it, including confidence levels, service used and the like
552
+ *
553
+ * * extractedDocument - this will be an updated version of the document object passed in for scanning with results of the scan inserted. You can subsequently update this data as needed (say after confirmation with the end-consumer) through the various update functions.
554
+ *
555
+ * * Any additional data extracted from the service that does not fit into the standard identity document fields will be placed into the extraData KVPs.
556
+ *
557
+ * * extractedEntity - the service will attempt to create the basics of an entity's name, address, DoB, gender from the data returned from the scan.
558
+ * You can then use this entity data to create a new entity for a wider check if needed.
559
+ *
560
+ * * Note if you plan on doing this, make sure you include the extractedDocument reference in the "new" entity.
561
+ *
562
+ * * EXTRA SPECIAL NOTE: If no useful data was returned in the scan, extractedDocument will be left unchanged, and extractedEntity will be left out
563
+ */
564
+ DocumentScanResultObject: {
565
+ requestId: Core["RequestIDObject"];
566
+ extractedDocument?: Core["IdentityDocumentObject"];
567
+ extractedEntity?: Core["EntityObject"];
568
+ processResult: Core["ProcessResultObject"];
569
+ };
570
+ /**
571
+ * Contains the details of a check on a given data point
572
+ */
573
+ DocumentVerificationResultObject: {
574
+ /**
575
+ * This is a direct copy from the document object passed in for verifcation.
576
+ */
577
+ documentId?: string;
578
+ processResult?: Core["ProcessResultObject"];
579
+ };
580
+ /**
581
+ * Contains the results of a given document upload.
582
+ */
583
+ DocumentVerifyResultObject: {
584
+ requestId: Core["RequestIDObject"];
585
+ documentVerificationResults?: Core["DocumentVerificationResultObject"];
586
+ };
587
+ /**
588
+ * Contains the details of a comparison between two documents
589
+ */
590
+ DocumentComparisonResultObject: {
591
+ /**
592
+ * This is a direct copy from the compareDocument object passed in the request. You MUST supply this.
593
+ */
594
+ compareDocumentId?: string;
595
+ /**
596
+ * This is a direct copy from the toDocument object passed in the request. You MUST supply this.
597
+ */
598
+ toDocumentId?: string;
599
+ processResult?: Core["ProcessResultObject"];
600
+ };
601
+ /**
602
+ * Contains the results of a given document upload.
603
+ */
604
+ DocumentCompareResultObject: {
605
+ requestId: Core["RequestIDObject"];
606
+ documentComparisonResults: Core["DocumentComparisonResultObject"];
607
+ };
608
+ /**
609
+ * Contains the results of a given document upload.
610
+ */
611
+ DocumentChecksResultObject: {
612
+ requestId: Core["RequestIDObject"];
613
+ checkResults?: Core["IdentityDocumentCheckResultObject"];
614
+ };
615
+ /**
616
+ * Contains the individual search results for a document.
617
+ */
618
+ DocumentSearchResultListItem: {
619
+ confidence?: Core["SearchResultConfidenceObject"];
620
+ document?: Core["IdentityDocumentObject"];
621
+ };
622
+ /**
623
+ * Contains the results of a given document search.
624
+ */
625
+ DocumentSearchResultObject: {
626
+ requestId: Core["RequestIDObject"];
627
+ /**
628
+ * The list of (potentially) matching documents with confidence levels.
629
+ *
630
+ * If you are the "owner" of the document - i.e. the same CustomerID and CustomerChildID (if relevant) - then the full details of the document will be returned, except for the contents of any attached scans.
631
+ * If you are not the owner of the document, then just the ID and confidence level is returned. You can still use this ID to retrieve any check results (see GET /document/{documentId}/checks)
632
+ */
633
+ documentSearchResults?: Core["DocumentSearchResultListItem"][];
634
+ };
635
+ /**
636
+ * Utility industry comparison process result object. Used to wrap up industry-specific resultsets.
637
+ */
638
+ DocumentIndustryUtilityProcessResultObject: {
639
+ industryProcess?: string;
640
+ requestId?: Core["RequestIDObject"];
641
+ /**
642
+ * The document that was used to generate these results.
643
+ */
644
+ documentId?: string;
645
+ /**
646
+ * The utility comparison service can return either an error response or a result.
647
+ *
648
+ * One of error or result will be returned in this case, the other will either be a nil value, or not supplied.
649
+ */
650
+ utilityCompareResult?: {
651
+ error?: Core["ComparisonError"];
652
+ result?: Core["ComparisonResponse"];
653
+ };
654
+ };
655
+ /**
656
+ * Utility industry explicit consent response object. Used to wrap up industry-specific resultsets.
657
+ */
658
+ DocumentIndustryUtilityConsentResultObject: {
659
+ industryProcess?: string;
660
+ requestId?: Core["RequestIDObject"];
661
+ /**
662
+ * The document that was used to generate these results.
663
+ */
664
+ documentId?: string;
665
+ /**
666
+ * The utility consent service can return either an error response or a result.
667
+ *
668
+ * One of error or result will be returned in this case, the other will either be a nil value, or not supplied.
669
+ */
670
+ utilityConsentResult?: {
671
+ error?: Core["EICError"];
672
+ result?: Core["EICResponse"];
673
+ };
674
+ };
675
+ /**
676
+ * Utility industry comparison process result object. Used to wrap up industry-specific resultsets.
677
+ */
678
+ DocumentIndustryUtilitySwitchResultObject: {
679
+ industryProcess?: string;
680
+ requestId?: Core["RequestIDObject"];
681
+ /**
682
+ * The document that was used to generate these results.
683
+ */
684
+ documentId?: string;
685
+ /**
686
+ * The utility switching service can return either an error response or a result.
687
+ *
688
+ * One of error or result will be returned in this case, the other will either be a nil value, or not supplied.
689
+ */
690
+ utilitySwitchResult?: {
691
+ error?: Core["SwitchError"];
692
+ result?: Core["SwitchResponse"];
693
+ };
694
+ };
695
+ ComparisonError: {
696
+ /**
697
+ * The correlationId as passed in the request
698
+ */
699
+ correlationId: string;
700
+ /**
701
+ * Timestamp of when the attempted comparison took place
702
+ */
703
+ comparisonDate: string;
704
+ /**
705
+ * * `1000` - Document not recognised (i.e. not valid pdf or image)
706
+ * * `1001` - Bill is not SME or Domestic
707
+ * * `1004` - Bill is gas (if to be excluded)
708
+ * * `1005` - Template Not Found – The document was a pdf but service did not recognise the uploaded document against any of it’s templates
709
+ * * `1008` - Unsupported distributor – bill is from jurisdiction that is unsupported
710
+ * * `1009` - Unsupported distributor – bill is from jurisdiction that is unsupported
711
+ * * `1030` - Invoice from date is missing
712
+ * * `1031` - Invoice to date is missing
713
+ * * `1033` - Supply address is missing
714
+ * * `1039` - NMI is missing
715
+ * * `1041` - Bill is a predictive plan making comparison hard
716
+ * * `1044` - Bill is on embedded network
717
+ * * `1045` - Incompatible charge item – manual comparison needed
718
+ * * `1062` - C&I Bill loaded
719
+ * * `1080` - API failed to reconcile bill usually meaning that not all cost items were picked up
720
+ */
721
+ errorCode: number;
722
+ /**
723
+ * Description of error that can be displayed as user feedback. e.g. "Uploaded document not a PDF"
724
+ */
725
+ message: string;
726
+ /**
727
+ * Version of the API on which the error took place. This value should be reported with any issue raised.
728
+ */
729
+ version: string;
730
+ };
731
+ ComparisonResponse: {
732
+ /**
733
+ * The correlationId as passed in the request
734
+ */
735
+ correlationId: string;
736
+ /**
737
+ * Timestamp of when the comparison took place
738
+ */
739
+ comparisonDate: string;
740
+ /**
741
+ * Array of plans, sorted from best to worst saving, for the uploaded bill
742
+ */
743
+ plans: Core["Plan"][];
744
+ currentBillData: Core["CurrentBillData"];
745
+ /**
746
+ * What is the maximum saving that can be achieved if the user switches to a new plan. This number may be negative if the user is already on the best plan for their usage and no saving can be found.
747
+ */
748
+ maximumSaving: number;
749
+ defaultOffer: Core["DefaultOffer"];
750
+ /**
751
+ * Optional disclaimer statment
752
+ */
753
+ marketDisclosure?: {
754
+ /**
755
+ * Name of this section when rendering
756
+ */
757
+ name?: string;
758
+ /**
759
+ * Disclaimer text
760
+ */
761
+ value?: string;
762
+ };
763
+ /**
764
+ * Version of the API on which the comparison took place. This value should be reported with any issue raised.
765
+ */
766
+ version: string;
767
+ };
768
+ EICRequest: {
769
+ /**
770
+ * Correlation ID as passed to comparison request
771
+ */
772
+ correlationId: string;
773
+ /**
774
+ * Unique ID of plan, selected from comparison results
775
+ */
776
+ planId: string;
777
+ details?: Core["EICDetails"];
778
+ };
779
+ EICError: {
780
+ /**
781
+ * The correlationId as passed in the request
782
+ */
783
+ correlationId: string;
784
+ /**
785
+ * * `400` - The request was malformed
786
+ * * `422` - Invalid request parameter
787
+ */
788
+ errorCode: number;
789
+ /**
790
+ * Text to provide more details on errorCode
791
+ */
792
+ message: string;
793
+ /**
794
+ * Version of the API on which the EIC request took place. This value should be reported with any issue raised.
795
+ */
796
+ version: string;
797
+ };
798
+ EICResponse: {
799
+ /**
800
+ * The correlationId as passed in the request
801
+ */
802
+ correlationId: string;
803
+ plan: Core["Plan"];
804
+ /**
805
+ * Hierarchical list of objects for rendering EIC statement and Terms and Conditions
806
+ */
807
+ eic: Core["DisplayMarkUp"][];
808
+ /**
809
+ * Version of the API on which the EIC request took place. This value should be reported with any issue raised.
810
+ */
811
+ version: string;
812
+ };
813
+ SwitchRequest: {
814
+ /**
815
+ * Correlation ID as passed to comparison request
816
+ */
817
+ correlationId: string;
818
+ details: Core["SwitchDetails"];
819
+ /**
820
+ * Array of strings containing all the keys of the elements that required confirmation in the EIC. The absence of any key for a mandatory confirmation will result in an error response.
821
+ */
822
+ confirmation?: string[];
823
+ };
824
+ SwitchError: {
825
+ /**
826
+ * The correlationId as passed in the request
827
+ */
828
+ correlationId: string;
829
+ /**
830
+ * * `400` - The request was malformed
831
+ * * `422` - Invalid request parameter
832
+ */
833
+ errorCode: number;
834
+ /**
835
+ * Text to provide more details on errorCode
836
+ */
837
+ message: string;
838
+ /**
839
+ * Version of the API on which the switch response took place. This value should be reported with any issue raised.
840
+ */
841
+ version: string;
842
+ };
843
+ SwitchResponse: {
844
+ /**
845
+ * The correlationId as passed in the request
846
+ */
847
+ correlationId: string;
848
+ /**
849
+ * A unique reference for this switch request
850
+ */
851
+ reference: string;
852
+ /**
853
+ * Timestamp of switch request
854
+ */
855
+ switchDate: string;
856
+ plan: Core["Plan"];
857
+ /**
858
+ * Hierarchical list of objects for rendering the next steps
859
+ */
860
+ nextSteps?: Core["DisplayMarkUp"][];
861
+ /**
862
+ * Version of the API on which the switch request took place. This value should be reported with any issue raised.
863
+ */
864
+ version: string;
865
+ };
866
+ /**
867
+ * All information associated with a given plan
868
+ */
869
+ Plan: {
870
+ /**
871
+ * Unique identifier for this plan. This ID is passed when calling the switch API.
872
+ */
873
+ id: number;
874
+ /**
875
+ * Name of the plan
876
+ */
877
+ name: string;
878
+ retailer: Core["Retailer"];
879
+ /**
880
+ * Estimated cost of this plan, based on the usage from uploaded bill, with all conditional discounts applied.
881
+ */
882
+ estimatedTotalCost: number;
883
+ /**
884
+ * Estimated cost of this plan, based on the usage from the uploaded bill, with no conditional discounts applied. If this plan offers no conditional discounts the estimatedTotalCost and the estimatedBaseCost will be the same.
885
+ */
886
+ estimatedBaseCost: number;
887
+ /**
888
+ * The estimated saving the customer could have realised if they had been on this plan during the billing period
889
+ */
890
+ estimatedSaving: number;
891
+ rates: Core["Rates"];
892
+ /**
893
+ * The type of energy plan
894
+ * * `SR` - Single Rate
895
+ * * `TOU` - Time Of Use
896
+ */
897
+ type: "SR" | "TOU";
898
+ /**
899
+ * Link to BPID (Basic Plan Information Document (NSW, SA, QLD, ACT)) or EPFS (Energy Price Fact Sheet (VIC))
900
+ */
901
+ url: string;
902
+ /**
903
+ * Default Offer (DMO/VDO) text to be displayed for this plan
904
+ */
905
+ defaultOfferMessage: string;
906
+ /**
907
+ * Is pay on time required in order to subscribe to this plan
908
+ */
909
+ payOnTimeRequired: boolean;
910
+ /**
911
+ * Is payment by direct debit required in order to subscribe to this plan
912
+ */
913
+ directDebitRequired: boolean;
914
+ /**
915
+ * Conditional discounts that may be applied to plan. These values can be used to modify the estimatedBaseCost for client-side filtering and reordering.
916
+ */
917
+ discounts?: {
918
+ /**
919
+ * Pay On Time discount amount
920
+ */
921
+ payOnTime?: number;
922
+ /**
923
+ * Direct Debit discount amount
924
+ */
925
+ directDebit?: number;
926
+ };
927
+ benefits?: Core["Benefits"];
928
+ contract?: Core["Contract"];
929
+ conditions?: Core["Conditions"];
930
+ paymentOptions?: Core["NameValue"];
931
+ greenOptions?: Core["NameValue"];
932
+ feesAndCharges?: Core["Fees"];
933
+ };
934
+ /**
935
+ * Data from uploaded bill
936
+ */
937
+ CurrentBillData: {
938
+ /**
939
+ * Customer name.
940
+ */
941
+ accountName: string;
942
+ /**
943
+ * Account (Billing) address.
944
+ */
945
+ accountAddress: string;
946
+ /**
947
+ * Supply address. This may differ from account address if bill payers address is different from account address.
948
+ */
949
+ supplyAddress: string;
950
+ retailer: Core["Retailer"];
951
+ /**
952
+ * National Meter identifier (NMI)
953
+ */
954
+ nmi: string;
955
+ /**
956
+ * Customer account number
957
+ */
958
+ accountNumber: string;
959
+ /**
960
+ * * `E` - Electricity
961
+ */
962
+ fuelType: "E";
963
+ /**
964
+ * Start date for billing period
965
+ */
966
+ billDateFrom: string;
967
+ /**
968
+ * End date for billing period
969
+ */
970
+ billDateTo: string;
971
+ /**
972
+ * Number of days in billing period (billDateTo - billDateFrom)
973
+ */
974
+ days: number;
975
+ /**
976
+ * Recalculated cost of the plan based on users comsumption and plan rates including discounts, rebates, concessions etc... Additional fees such as credit card processing fees are ignored.
977
+ */
978
+ actualPlanTotalCost: number;
979
+ /**
980
+ * Total value of all unconditional discounts applied to the bill
981
+ */
982
+ discount: number;
983
+ /**
984
+ * Rates and charges for each period on the bill
985
+ */
986
+ periods: Core["Period"][];
987
+ /**
988
+ * Array of rates and charges for solar on the bill, by period. If no solar is present on the uploaded bill this object will not be present.
989
+ */
990
+ solar?: {
991
+ /**
992
+ * Solar rate from bill
993
+ */
994
+ rate?: number;
995
+ /**
996
+ * Solar value from bill
997
+ */
998
+ value?: number;
999
+ }[];
1000
+ };
1001
+ /**
1002
+ * A comparison to the default offer (VDO/DMO) must displayed for each plan. This object contains the title and the message for that presentation. Please refer to the layout guidelines for more information.
1003
+ */
1004
+ DefaultOffer: {
1005
+ /**
1006
+ * Title/Header for the default offer when presented to the user.
1007
+ */
1008
+ name?: "Default Market Offer (DMO)" | "Victorial Default Offer (VDO)";
1009
+ /**
1010
+ * Text containing the default offer comparison with the current plan
1011
+ */
1012
+ value?: string;
1013
+ };
1014
+ /**
1015
+ * Retailer details
1016
+ */
1017
+ Retailer: {
1018
+ /**
1019
+ * Unique identifier for the retailer
1020
+ */
1021
+ id: number;
1022
+ /**
1023
+ * Name of the retailer
1024
+ */
1025
+ name: string;
1026
+ /**
1027
+ * Contact phone number for retailer customer support/queries
1028
+ */
1029
+ phone?: string;
1030
+ /**
1031
+ * Contact email address for retailer cusomter support/queries
1032
+ */
1033
+ email?: string;
1034
+ };
1035
+ /**
1036
+ * Plan benefits to be displayed to customer
1037
+ */
1038
+ Benefits: {
1039
+ /**
1040
+ * Name of this section when rendering
1041
+ */
1042
+ name: string;
1043
+ /**
1044
+ * Discounts available for this plan
1045
+ */
1046
+ discounts: {
1047
+ /**
1048
+ * Name of the discount.
1049
+ */
1050
+ name?: string;
1051
+ /**
1052
+ * Value of the discount. This can either be a dollar amount (starting with $) or a percentage (ending with %)
1053
+ */
1054
+ value?: string;
1055
+ /**
1056
+ * Conditions applied to discount
1057
+ */
1058
+ condition?: string;
1059
+ }[];
1060
+ /**
1061
+ * Inventives available for this plan
1062
+ */
1063
+ incentives: {
1064
+ /**
1065
+ * Name of the incentive
1066
+ */
1067
+ name?: string;
1068
+ /**
1069
+ * Description of incentive
1070
+ */
1071
+ value?: string;
1072
+ }[];
1073
+ };
1074
+ /**
1075
+ * Plan conditions to be displayed to customer
1076
+ */
1077
+ Conditions: {
1078
+ name: string;
1079
+ value: Core["NameValue"][];
1080
+ };
1081
+ /**
1082
+ * Plan fees and other charges to be displayed to customer
1083
+ */
1084
+ Fees: {
1085
+ /**
1086
+ * Name of this section when rendering
1087
+ */
1088
+ name: string;
1089
+ /**
1090
+ * Fee information for the plan
1091
+ */
1092
+ value: Core["NameValueDescription"][];
1093
+ /**
1094
+ * Any additional fee information for the plan
1095
+ */
1096
+ additionalFeeInfo?: string;
1097
+ };
1098
+ /**
1099
+ * Plan rates to be displayed to customer
1100
+ */
1101
+ Rates: {
1102
+ /**
1103
+ * Name of this section when rendering
1104
+ */
1105
+ name?: string;
1106
+ /**
1107
+ * Rates for this plan
1108
+ */
1109
+ value?: Core["NameValueUnit"][];
1110
+ };
1111
+ /**
1112
+ * Plan contract details to be displayed to customer
1113
+ */
1114
+ Contract: {
1115
+ /**
1116
+ * Name of this section when rendering
1117
+ */
1118
+ name: string;
1119
+ /**
1120
+ * Contract details for this plan
1121
+ */
1122
+ value: Core["NameValue"][];
1123
+ };
1124
+ RateValue: {
1125
+ rate: number;
1126
+ value: number;
1127
+ };
1128
+ /**
1129
+ * Name/Value pair
1130
+ */
1131
+ NameValue: {
1132
+ name: string;
1133
+ value: string[];
1134
+ };
1135
+ /**
1136
+ * Name/Value pair
1137
+ */
1138
+ NameValueDescription: {
1139
+ name: string;
1140
+ value: string;
1141
+ description: string;
1142
+ };
1143
+ NameValueUnit: {
1144
+ /**
1145
+ * Name of this property.
1146
+ */
1147
+ name: string;
1148
+ /**
1149
+ * Value of this property.
1150
+ */
1151
+ value: string;
1152
+ /**
1153
+ * Unit of measure for this property.
1154
+ */
1155
+ unit: string;
1156
+ };
1157
+ /**
1158
+ * Rates, by period, for the uploaded bill
1159
+ */
1160
+ Period: {
1161
+ peak?: Core["RateValue"];
1162
+ peakStep1?: Core["RateValue"];
1163
+ peakStep2?: Core["RateValue"];
1164
+ peakStep3?: Core["RateValue"];
1165
+ offPeak?: Core["RateValue"];
1166
+ offPeakStep1?: Core["RateValue"];
1167
+ offPeakStep2?: Core["RateValue"];
1168
+ shoulder?: Core["RateValue"];
1169
+ controlledLoad1?: Core["RateValue"];
1170
+ controlledLoad2?: Core["RateValue"];
1171
+ supplyCharge?: Core["RateValue"];
1172
+ };
1173
+ DisplayMarkUp: {
1174
+ /**
1175
+ * Type of component to be used for rendering
1176
+ */
1177
+ type?: "text" | "unorderedlist" | "orderedlist";
1178
+ /**
1179
+ * Text to display as header/title of value.
1180
+ */
1181
+ name?: string;
1182
+ /**
1183
+ * Data to be rendered. This data can contain data bindings (contained in {{ }}). If present in the string the parameters object will contain a key with the same name and the associated data (e.g a link).<br><br><div style="background-color:black;color:white;">{<br>&nbsp;&nbsp;"type":&nbsp;"text",<br>&nbsp;&nbsp;"value":&nbsp;"I&nbsp;accept&nbsp;the&nbsp;{{Terms&nbsp;and&nbsp;Conditions}}.",<br>&nbsp;&nbsp;"parameters":&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;"Terms&nbsp;and&nbsp;Conditions":&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"type":&nbsp;"link",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"value":&nbsp;"https://www.accurassi.com.au/sample-terms-and-conditions/"<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;}<br>}</div>
1184
+ */
1185
+ value?: string;
1186
+ /**
1187
+ * For elements that require confirmation, the key of each element that the user has accepted must be send in the switch request. The absence of any mandatory confirmation will result in an error response from the switch request.
1188
+ */
1189
+ key?: string;
1190
+ /**
1191
+ * Comma seperated list of attributes to apply to value when rendering.
1192
+ */
1193
+ attribute?: "bold";
1194
+ /**
1195
+ * Does this statement need to be confirmed (with a checkbox)? Confirmation can be mandatory or optional. When the confirmation element is present a key element must also be present. The keys of all confirmed statements must be sent in the switch request. The absence of any mandatory confirmation will result in an error response from the switch request.
1196
+ */
1197
+ confirmation?: "optional" | "mandatory";
1198
+ /**
1199
+ * Optional element which has a keyvalue pair associated with every data binding contained in the value element of the current object.
1200
+ */
1201
+ parameters?: {
1202
+ [key: string]: object;
1203
+ };
1204
+ /**
1205
+ * Children of element. This data structure is recursive with a DisplayMarkup element having 0 or more DisplayMarkup children
1206
+ */
1207
+ children?: Core["DisplayMarkUp"][];
1208
+ };
1209
+ /**
1210
+ * Information for the residents of the property being supplied
1211
+ */
1212
+ EICDetails: {
1213
+ /**
1214
+ * Vulnerability information for residents of the property being supplied
1215
+ */
1216
+ vulnerabilities?: {
1217
+ /**
1218
+ * Is anyone in the property dependent on electricity for life support equipment?
1219
+ */
1220
+ dependencyType: "Life Support" | "Sensitive Load";
1221
+ };
1222
+ /**
1223
+ * Customer concession card details
1224
+ */
1225
+ concessionCard?: {
1226
+ /**
1227
+ * Customer Reference Number (CRN) on the concession card
1228
+ */
1229
+ customerReferenceNumber: string;
1230
+ /**
1231
+ * The type of evidence used to prove eligibility for concessions
1232
+ */
1233
+ concessionEvidenceType: "Pensioner Concession Card" | "Gold Repatriation Health Card" | "Health Care Card" | "NSW Life Support Rebate Without Concession Card" | "Queensland Seniors Card";
1234
+ /**
1235
+ * Concession card start date
1236
+ */
1237
+ startDate: string;
1238
+ /**
1239
+ * Concession card end expiry date
1240
+ */
1241
+ endDate: string;
1242
+ /**
1243
+ * First name on the concession card
1244
+ */
1245
+ firstName: string;
1246
+ /**
1247
+ * Last name on the concession card
1248
+ */
1249
+ lastName: string;
1250
+ /**
1251
+ * Concessions linked to the customer's concession card
1252
+ */
1253
+ concessionType: "Life Support" | "Medical Cooling" | "Service to Property Charge" | "Off-Peak Electricity" | "Annual Electricity" | "Transfer Fee Waiver" | "Excess Electricity" | "Controlled Load" | "Low Income Household" | "Medical Energy" | "NSW Government Life Support Rebate" | "Queensland Electricity Rebate" | "Winter Gas" | "Excess Gas Consumption";
1254
+ };
1255
+ };
1256
+ Passport: {
1257
+ /**
1258
+ * Document identifier
1259
+ */
1260
+ type: "passport";
1261
+ /**
1262
+ * Passport Number
1263
+ */
1264
+ number: string;
1265
+ /**
1266
+ * Country of Issue
1267
+ */
1268
+ country: string;
1269
+ /**
1270
+ * Expiry date of passport
1271
+ */
1272
+ expiryDate?: string;
1273
+ };
1274
+ DriversLicence: {
1275
+ /**
1276
+ * Document identifier
1277
+ */
1278
+ type: "driverslicence";
1279
+ /**
1280
+ * Drivers Licence Number
1281
+ */
1282
+ number: string;
1283
+ /**
1284
+ * State of Issue
1285
+ */
1286
+ state: string;
1287
+ /**
1288
+ * Expiry date of drivers licence
1289
+ */
1290
+ expiryDate?: string;
1291
+ };
1292
+ MedicareCard: {
1293
+ /**
1294
+ * Document identifier
1295
+ */
1296
+ type: "medicare";
1297
+ /**
1298
+ * Medicare Card Number
1299
+ */
1300
+ number: string;
1301
+ /**
1302
+ * Medicare Card Reference Number
1303
+ */
1304
+ referenceNumber?: string;
1305
+ /**
1306
+ * Middle Name on Card
1307
+ */
1308
+ middleName?: string;
1309
+ /**
1310
+ * Expiry date of drivers licence
1311
+ */
1312
+ expiryDate: string;
1313
+ /**
1314
+ * Card color
1315
+ */
1316
+ cardColor?: "green" | "blue" | "yellow";
1317
+ };
1318
+ /**
1319
+ * Details required to switch retailers
1320
+ */
1321
+ SwitchDetails: {
1322
+ /**
1323
+ * Customer's details required to switch retailers
1324
+ */
1325
+ customerDetails: {
1326
+ /**
1327
+ * Name of customer switching
1328
+ */
1329
+ name: {
1330
+ /**
1331
+ * Customers title (e.g. Mr, Mrs, Miss, Dr)
1332
+ */
1333
+ title: string;
1334
+ /**
1335
+ * Customer's first name
1336
+ */
1337
+ first: string;
1338
+ /**
1339
+ * Customer's middle name
1340
+ */
1341
+ middle?: string;
1342
+ /**
1343
+ * Customer's last name
1344
+ */
1345
+ last: string;
1346
+ };
1347
+ /**
1348
+ * Customer's supply address address. If no address is passed, the supply address as read off the bill will be used
1349
+ */
1350
+ address?: string;
1351
+ /**
1352
+ * Customer's email address
1353
+ */
1354
+ email: string;
1355
+ /**
1356
+ * Customer's phone number
1357
+ */
1358
+ mobile: string;
1359
+ /**
1360
+ * Customer's date of birth
1361
+ */
1362
+ dateOfBirth: string;
1363
+ /**
1364
+ * Allows a user to select one of the following forms of ID to validate against:
1365
+ *
1366
+ * - Passport
1367
+ * - Drivers Licence
1368
+ * - Medicare card
1369
+ */
1370
+ evidenceOfIdentity: {
1371
+ Passport?: Core["Passport"];
1372
+ DriversLicence?: Core["DriversLicence"];
1373
+ MedicareCard?: Core["MedicareCard"];
1374
+ };
1375
+ };
1376
+ };
1377
+ /**
1378
+ * Contains the results of a given document upload.
1379
+ */
1380
+ DocumentResultObject: {
1381
+ requestId: Core["RequestIDObject"];
1382
+ document: Core["IdentityDocumentObject"];
1383
+ };
1384
+ /**
1385
+ * The following fields represent the data you need in order to retrieve the results of the requested function. See the details of the notification API for more.
1386
+ */
1387
+ AcceptedEntityResultObject: {
1388
+ requestId?: Core["RequestIDObject"];
1389
+ /**
1390
+ * When an entity is created/uploaded, or generated from a document scan, it is assigned an entityId. This can then be referenced in subsequent calls if you're uploading more/updated data.
1391
+ */
1392
+ entityId?: string;
1393
+ /**
1394
+ * Short description of the function called.
1395
+ */
1396
+ function?: string;
1397
+ /**
1398
+ * If you're calling a processing function of some kind, a check number will be issued. This field will only be present if the function you're calling would normally return a checkId (such as scan, verify, and compare).
1399
+ */
1400
+ checkId?: string;
1401
+ /**
1402
+ * Optional link that can be returned - used by the Push To Mobile service to allow API users to manage the use of the onboarding link themselves.
1403
+ */
1404
+ linkURL?: string;
1405
+ };
1406
+ /**
1407
+ * Similar to a KVP, the flag has a key (the flag you're indicating) and an integer value.
1408
+ *
1409
+ * Values are tied to the specific flag (see table below). Generally they're true (1)/false(0) indicators.
1410
+ *
1411
+ * | flag | values | Description |
1412
+ * | ------- | -------- | -------- |
1413
+ * | ongoing_pep | 0, 1, 2 | 0 = no, 1 = pep/sanctions, 2 = 1+media |
1414
+ * | | | |
1415
+ */
1416
+ EntityFlagObject: {
1417
+ /**
1418
+ * Name of the flag
1419
+ */
1420
+ flag?: string;
1421
+ /**
1422
+ * flag value.
1423
+ */
1424
+ value?: number;
1425
+ };
1426
+ PersonalNameObject: {
1427
+ /**
1428
+ * Mr/Ms/Dr/Dame/Dato/etc.
1429
+ */
1430
+ honourific?: string;
1431
+ /**
1432
+ * Family name / Surname of the individual.
1433
+ */
1434
+ familyName: string;
1435
+ /**
1436
+ * First / Given name
1437
+ */
1438
+ givenName?: string;
1439
+ /**
1440
+ * Middle name(s) / Initials
1441
+ */
1442
+ middleName?: string;
1443
+ /**
1444
+ * In some cases, the name will need to be supplied in "long form", such as when it is determined from a document scan, or is un-parsable in some way.
1445
+ * The service will attempt to convert it to it's constituent parts where possible.
1446
+ */
1447
+ displayName?: string;
1448
+ };
1449
+ DOBObject: {
1450
+ /**
1451
+ * Year of birth or "unknown". This will be autoextracted if dateOfBirth is supplied.
1452
+ */
1453
+ yearOfBirth?: string;
1454
+ /**
1455
+ * Date of Birth in YYYY-MM-DD format
1456
+ */
1457
+ dateOfBirth?: string;
1458
+ /**
1459
+ * Place of birth other than country If locality is given, then country must also be provided.
1460
+ */
1461
+ locality?: string;
1462
+ /**
1463
+ * ISO-3166-1 code for the country of birth. You must use the alpha3 country code (e.g. AUS, USA, IDR, KOR, etc) We'll convert as needed.
1464
+ *
1465
+ * See https://en.wikipedia.org/wiki/ISO_3166-1
1466
+ */
1467
+ country?: string;
1468
+ };
1469
+ AddressObject: {
1470
+ /**
1471
+ * As addresses are added to an entity, they're assigned an id to assist with tracking.
1472
+ *
1473
+ * If you're adjusting an address, you will need to include the addressId so as to be able to reference it correctly in the list.
1474
+ */
1475
+ addressId?: string;
1476
+ addressType?: Core["enumAddressType"];
1477
+ /**
1478
+ * The date this address first because active. Used mostly with business addresses.
1479
+ */
1480
+ startDate?: string;
1481
+ /**
1482
+ * The date this address was no longer used (if available). Used mostly with business addresses.
1483
+ */
1484
+ endDate?: string;
1485
+ /**
1486
+ * Individual or business name at this address if not the same as the name of the entity to which this address belongs.
1487
+ */
1488
+ careOf?: string;
1489
+ /**
1490
+ * Unit/Apartment/Flat/Suite/etc number
1491
+ */
1492
+ unitNumber?: string;
1493
+ /**
1494
+ * The number on the street. Generally a number, but can also be alphanumeric (e.g. 3A)
1495
+ */
1496
+ streetNumber?: string;
1497
+ /**
1498
+ * The name of the street
1499
+ *
1500
+ * This field can in fact be a bit flexible, potentially containing the streetNumber and streetType as well. Most services in use can work it out.
1501
+ *
1502
+ * If this field has been auto-populated by Google (see writeup here:
1503
+ * https://help.frankiefinancial.com/hc/en-au/articles/900001754546-Additional-Data-Notes-Addresses
1504
+ *
1505
+ * If you can avoid it though, please try and keep things separate.
1506
+ */
1507
+ streetName?: string;
1508
+ /**
1509
+ * The street "type" - e.g. Road, St, Ave, Circuit, etc
1510
+ */
1511
+ streetType?: string;
1512
+ /**
1513
+ * The name of the building, apartment block, condo, etc
1514
+ */
1515
+ buildingName?: string;
1516
+ /**
1517
+ * The suburb in the town/city. Only use this if you require a suburb AND a town/city, otherwise, just use the "town" parameter.
1518
+ */
1519
+ suburb?: string;
1520
+ /**
1521
+ * The town/village/suburb/city
1522
+ */
1523
+ town?: string;
1524
+ /**
1525
+ * The county, province, cantonment
1526
+ */
1527
+ region?: string;
1528
+ /**
1529
+ * The state. Use local abbreviations, such as VIC(toria) or TX (Texas)
1530
+ */
1531
+ state?: string;
1532
+ /**
1533
+ * The ISO-3166-1 country. You must use the alpha3 country code (e.g. AUS, USA, IDR, KOR, etc) We'll convert as needed.
1534
+ *
1535
+ * See: https://en.wikipedia.org/wiki/ISO_3166-1
1536
+ */
1537
+ country: string;
1538
+ /**
1539
+ * The post code of the address.
1540
+ */
1541
+ postalCode?: string;
1542
+ /**
1543
+ * In some cases, the address will need to be supplied in "long form", such as when it is determined from a document scan, or is un-parsable in some way.
1544
+ * The service will attempt to convert it to it's constituent parts where possible.
1545
+ *
1546
+ * WARNING: Use of longForm is not guaranteed to produce perfect results, due to the variety of potential formats. You've been warned.
1547
+ * Failure to break down or disambiguate the address will result in an error.
1548
+ */
1549
+ longForm?: string;
1550
+ };
1551
+ /**
1552
+ * Describes all of the data being used to verify an entity.
1553
+ */
1554
+ EntityObject: {
1555
+ /**
1556
+ * When an entity is first created, it is assigned an ID. When updating an entity, make sure you set the entityId
1557
+ * One exception to this is when an entity is created from a document object. It is expected that this object would be passed into a /check or /entity call to set it.
1558
+ */
1559
+ entityId?: string;
1560
+ entityType?: Core["enumEntityType"];
1561
+ /**
1562
+ * If the entity is using the new profiles feature, then their profile name will be found here.
1563
+ *
1564
+ * Note: If setting a profile, you must ensure that the profile matches a known configuration.
1565
+ *
1566
+ * Please contact Frankie developer support if you're unsure as to what valid values are.
1567
+ */
1568
+ entityProfile?: string;
1569
+ name?: Core["PersonalNameObject"];
1570
+ dateOfBirth?: Core["DOBObject"];
1571
+ gender?: Core["enumGender"];
1572
+ /**
1573
+ * Collection of address objects.
1574
+ */
1575
+ addresses?: Core["AddressObject"][];
1576
+ /**
1577
+ * Used to set additional information flags with regards to this entity and for ongoing processing.
1578
+ *
1579
+ * Flags might include having the entity (not) participate in regular pep/sanctions screening
1580
+ * Others will follow over time.
1581
+ */
1582
+ flags?: Core["EntityFlagObject"][];
1583
+ /**
1584
+ * Set of key-value pairs that provide arbitrary additional type-specific data. You can use these fields to store external IDs, or other non-identity related items if you need to.
1585
+ * If updating an existing entity, then existing values with the same name will be overwritten. New values will be added.
1586
+ *
1587
+ * See here for more information about possible values you can use:
1588
+ * https://help.frankiefinancial.com/hc/en-au/articles/900001758123-Entity-extraData-Specific-Examples
1589
+ */
1590
+ extraData?: Core["KeyValuePairObject"][];
1591
+ /**
1592
+ * Collection of identity documents (photos, scans, selfies, etc)
1593
+ */
1594
+ identityDocs?: Core["IdentityDocumentObject"][];
1595
+ organisationData?: Core["OrganisationDataObject"];
1596
+ };
1597
+ /**
1598
+ * Contains any/all details we want to pass on to the device/biometric checking service as part of an activity / transaction. A transaction isn't just a payment, but can represent a number of different interaction types. See below for more.
1599
+ */
1600
+ DeviceCheckDetailsObject: {
1601
+ /**
1602
+ * Describes the type of check service we need to verify with. Choices are:
1603
+ *
1604
+ * - DEVICE: Services that will be checking device characteristics
1605
+ * - BIOMETRIC: Services that will be checking biomentric characteristics
1606
+ */
1607
+ checkType?: "DEVICE" | "BIOMETRIC";
1608
+ /**
1609
+ * The type of activity we're checking. Choices are:
1610
+ *
1611
+ * - SIGNUP: Used when an entity is signing up to your service
1612
+ * - LOGIN: Used when an already registered entity is logging in to your service
1613
+ * - PAYMENT: Used when you wish to check that all is well for a payment
1614
+ * - CONFIRMATION: User has confirmed an action and you wish to double check they're still legitimate
1615
+ *
1616
+ * You can also supply vendor specific activityTypes if you know them. To do this, make the first character an underscore _.
1617
+ * So for example, to use BioCatch's LOGIN_3 type, you can send "_LOGIN_3" as a value. Note, if you do this, there is no error checking on the Frankie side, and thus if you supply an incorrect value, the call will fail.
1618
+ */
1619
+ activityType?: "SIGNUP" | "LOGIN" | "PAYMENT" | "CONFIRMATION" | "_<Vendor Specific List>";
1620
+ /**
1621
+ * the unique session based ID that will be checked against the service.
1622
+ */
1623
+ checkSessionKey?: string;
1624
+ /**
1625
+ * Collection of additional data points you wish to add to the activity check. These are defined in conjunction with the Customer and the device checking service being used.
1626
+ *
1627
+ * Standard values are supplied upon request:
1628
+ *
1629
+ * | kvpKey | kvpType | kvpValue |
1630
+ * | ------- | -------- | -------- |
1631
+ * | detectedIp | general.string | The IP address you detect the transaction coming from |
1632
+ * | accountId.src | id.external | Your account identifier. Can be a SHA hash or similar |
1633
+ * | accountId.dst | id.external | Target/payee account identifier. Can be a SHA hash or similar |
1634
+ * | entityId | id.external | Use this to override the Frankie entityID that would be used to identify |
1635
+ * | amount | general.float | Amount involved in the transaction |
1636
+ * | platform | general.string | One of APP, WEB, MOBILE_WEB. Assumes APP if not supplied |
1637
+ * | | |
1638
+ *
1639
+ *
1640
+ * Like the activityType, you can also specify vendor specific additional data parameters by adding a leading underscore "_" to the kvpKey. You can set the kvpType to one of the available types, or just use general.string (recommended)
1641
+ */
1642
+ additionalData?: Core["KeyValuePairObject"][];
1643
+ };
1644
+ /**
1645
+ * Contains all the details we'll check regarding an Entity. It is assumed that this will grow over time.
1646
+ *
1647
+ * Current supported check parameters:
1648
+ *
1649
+ * - entity: The Entity we're checking. This must be supplied.
1650
+ * - deviceCheckDetails: |
1651
+ * An optional array of parameters for us to check the device and biometric characteristics against. This may map to a session key or device identifier, along with additional information that we can use to check against services like ThreatMetrix, BioCatch (or whatever has been configured for the Customer)
1652
+ */
1653
+ EntityCheckDetailsObject: {
1654
+ entity: Core["EntityObject"];
1655
+ deviceCheckDetails?: Core["DeviceCheckDetailsObject"][];
1656
+ };
1657
+ /**
1658
+ * Contains all the details we need to create/update an entity and generate an IDV token
1659
+ */
1660
+ EntityIDVDetailsObject: {
1661
+ entity: Core["EntityObject"];
1662
+ /**
1663
+ * The applicantId previously supplied when creating a token for the first time for an entity.
1664
+ * Only required if re-submitting for a fresh token on a previously created applicant.
1665
+ */
1666
+ applicantId?: string;
1667
+ /**
1668
+ * If this is for a native application SDK, then we need the applicationId as reported by the SDK. This will then be tied to the token so it cannot be used in another application or handset.
1669
+ *
1670
+ * You must send either an applicationID or a referrer (see below)
1671
+ */
1672
+ applicationId?: string;
1673
+ /**
1674
+ * If this is for a web SDK, then you need to supply the referrer domain so that the token can be validated by the IDV service
1675
+ *
1676
+ * You must send either a referrer or an applicationID (see above)
1677
+ */
1678
+ referrer?: string;
1679
+ };
1680
+ /**
1681
+ * Contains the results of a check against an entity profile.
1682
+ *
1683
+ * The entityProfileResult will be returned instead of a checkSummary to provide the full details of the verification process.
1684
+ */
1685
+ EntityProfileResultObject: {
1686
+ /**
1687
+ * Unique ID for the entity.
1688
+ */
1689
+ entityId?: string;
1690
+ checkId?: Core["CheckIDObject"];
1691
+ /**
1692
+ * The name of the profile used for this check.
1693
+ */
1694
+ profileName?: string;
1695
+ /**
1696
+ * The name of the policy within the profile used for this check. This may or may not incorporate the 'riskPolicy' that is also an attribute in this object.
1697
+ */
1698
+ policyName?: string;
1699
+ /**
1700
+ * The date and time of the last check that contributed to this result.
1701
+ */
1702
+ latestCheckDate?: string;
1703
+ /**
1704
+ * Comma separated list of checks required for the entity profile.
1705
+ */
1706
+ checkType?: string;
1707
+ /**
1708
+ * The basic result for each check type required for the profile.
1709
+ *
1710
+ * The results are listed in the order they are run so you can also see how far progressed through a check process you are.
1711
+ */
1712
+ checkResults?: Core["EntityProfileCheckResultMessage"][];
1713
+ /**
1714
+ * The recommended onboarding action for this entity after the profile check this result refers to. The action can also be an entity state set by you.
1715
+ * - UNCHECKED: New entity with no checks applied
1716
+ * - PASS
1717
+ * - FAIL
1718
+ * - PASS_MANUAL: Manual intervention was applied to achieve a pass
1719
+ * - FAIL_MANUAL: Manual intervention was applied but the entity still fails
1720
+ * - REFER: Manual intervention required
1721
+ * - WAIT: Externally applied state, waiting for more entity details
1722
+ * - ARCHIVED: Externally applied state, entity hidden from on onboarding list
1723
+ * - INACTIVE: Externally applied state, entity hidden from on onboarding list, indexes and further changes will be blocked.
1724
+ */
1725
+ actionRecommended?: string;
1726
+ issueList?: string[];
1727
+ /**
1728
+ * Indicates if any manual actions have been involved in the check result.
1729
+ */
1730
+ manualIntervention?: boolean;
1731
+ /**
1732
+ * List of vendors from failed credit header sources.
1733
+ */
1734
+ creditHeaderFailures?: string[];
1735
+ /**
1736
+ * Risk level. One of:
1737
+ * - LOW,
1738
+ * - MEDIUM,
1739
+ * - HIGH,
1740
+ * - UACCEPTABLE
1741
+ * - or UNKNOWN
1742
+ */
1743
+ riskLevel?: string;
1744
+ /**
1745
+ * Risk policy. Contents depend on account configuration but would typically be one of:
1746
+ * - SDD,
1747
+ * - CDD,
1748
+ * - EDD
1749
+ * - or FAIL
1750
+ */
1751
+ riskPolicy?: string;
1752
+ /**
1753
+ * Summary of KYC match counts.
1754
+ */
1755
+ kycResults?: Core["EntityProfileKYCMatchResultObject"][];
1756
+ /**
1757
+ * KYC match counts for each checked document, whether matched or not. The keys in this map are the document IDs. The match type in the value will be either "gov_id" or "other_id". The resultant structure would look like:
1758
+ *
1759
+ * documentResults: {
1760
+ * "documentId" : {
1761
+ * "matchType": "gov_id",
1762
+ * "matchCount": 5,
1763
+ * "verified": true
1764
+ * },
1765
+ * "documentId": {
1766
+ * "matchType": "other_id",
1767
+ * "matchCount": 5,
1768
+ * "verified": true
1769
+ * }
1770
+ * }
1771
+ */
1772
+ documentResults?: {
1773
+ [key: string]: Core["EntityProfileItemMatchResultObject"];
1774
+ };
1775
+ /**
1776
+ * KYC match counts for each checked address, whether matched or not. The keys in this map are the address IDs. The match type in the value will be either "curr_addr" or "prev_addr". The resultant structure would look like:
1777
+ *
1778
+ * "addressResults": {
1779
+ * "addressId": {
1780
+ * "matchType": "curr_addr",
1781
+ * "matchCount": 5,
1782
+ * "verified": true
1783
+ * },
1784
+ * "addressId": {
1785
+ * "matchType": "prev_addr",
1786
+ * "matchCount": 5,
1787
+ * "verified": true
1788
+ * }
1789
+ * }
1790
+ */
1791
+ addressResults?: {
1792
+ [key: string]: Core["EntityProfileItemMatchResultObject"];
1793
+ };
1794
+ };
1795
+ EntityProfileCheckResultMessage: {
1796
+ /**
1797
+ * A single check type that this result message applies to.
1798
+ */
1799
+ checkType?: string;
1800
+ /**
1801
+ * The current state of the check. One of:
1802
+ * - PASS
1803
+ * - FAIL
1804
+ * - UNCHECKED: Not attempted or service not available. For example AML not attempted if KYC fails.
1805
+ * - NA: Not required. For example Visa check when there is no visa document and your account configuration indicates the check can be skipped.
1806
+ */
1807
+ result?: string;
1808
+ /**
1809
+ * Short description of why not passed
1810
+ */
1811
+ message?: string;
1812
+ /**
1813
+ * Alphanumeric code that is unique for each failure message to simplify result processing and display. Values to be decided.
1814
+ */
1815
+ code?: string;
1816
+ };
1817
+ /**
1818
+ * Match summary for a single checked address or document
1819
+ */
1820
+ EntityProfileItemMatchResultObject: {
1821
+ /**
1822
+ * The match type that this count and result refer to. For document matches this will be "gov_id" or "other_id". For addresses ir will be "curr_addr" or "prev_addr" depending on the status of the address at the time of the check.
1823
+ */
1824
+ matchType?: string;
1825
+ /**
1826
+ * The number of distinct sources that matched this address or document
1827
+ */
1828
+ matchCount?: number;
1829
+ /**
1830
+ * List of sources that matched. The matchCount will be the number of entries in this list.
1831
+ */
1832
+ matchSources?: string[];
1833
+ /**
1834
+ * True if an attempt was made to verify
1835
+ */
1836
+ checked?: boolean;
1837
+ /**
1838
+ * True if there is at least one match
1839
+ */
1840
+ verified?: boolean;
1841
+ };
1842
+ /**
1843
+ * Summary of all KYC matches
1844
+ */
1845
+ EntityProfileKYCMatchResultObject: {
1846
+ /**
1847
+ * The match types that this overall count and result refer to. Currently one or more of:
1848
+ * - name
1849
+ * - address
1850
+ * - dob
1851
+ * - gender
1852
+ * - gov_id
1853
+ * - other_id
1854
+ *
1855
+ * These will be keys in a map whose values hold the values for the individual match types. The resultant structure would look like the following. Here dob has zero matches and is not verfied but it was check, so other than the checked flag the value object is simply empty. A completely empty object would imply that match type was not checked.
1856
+ *
1857
+ * "matchTypes": {
1858
+ * "address": {
1859
+ * "matchCount": 1,
1860
+ * "matchSources": [ "au-elec-roll" ],
1861
+ * "checked": true,
1862
+ * "verified": true
1863
+ * },
1864
+ * "dob": {
1865
+ * "checked": true
1866
+ * }
1867
+ * }
1868
+ *
1869
+ * So for a one_plus KYC check there will be two EntityProfileKYCMatchResultObject records. One for 'name' and one for 'address, dob' (like the sample above).
1870
+ */
1871
+ matchTypes?: {
1872
+ [key: string]: object;
1873
+ };
1874
+ /**
1875
+ * Number of matches for this set of match types. In other words the sum of the matchCounts in the matchTypes map. Note that for match sets that include government ID (gov_id) this will not neccessaily be the count of matched sources.
1876
+ */
1877
+ matchCount?: number;
1878
+ /**
1879
+ * Number of distinct matches (sources and/or matched government ID documents) required for this set of match types.
1880
+ */
1881
+ matchCountRequired?: number;
1882
+ /**
1883
+ * True if there are enough matches to meet the requirement
1884
+ */
1885
+ verified?: boolean;
1886
+ };
1887
+ /**
1888
+ * Contains the results of a given document entity create/update or GET request.
1889
+ */
1890
+ EntityResultObject: {
1891
+ requestId: Core["RequestIDObject"];
1892
+ entity: Core["EntityObject"];
1893
+ };
1894
+ /**
1895
+ * Contains the results of a given document entity create/update and IDV token details.
1896
+ */
1897
+ EntityIDVResultObject: {
1898
+ requestId: Core["RequestIDObject"];
1899
+ entity: Core["EntityObject"];
1900
+ /**
1901
+ * Token to be used in the SDK to authenticate the applicant and application/referrer.
1902
+ *
1903
+ * Tokens are time limited (1 hour) and can only be used with the applicantId supplied.
1904
+ */
1905
+ token: string;
1906
+ /**
1907
+ * The applicantId is either the same one that was supplied in the request for a fresh token, or a new one.
1908
+ * This ID must be supplied along with the token to your SDK so that it knows who any uploaded documents are for.
1909
+ *
1910
+ * The latest applicant will also be written to the extraData of the entity as well for safe keeping. Older applicantIds will be overwritten.
1911
+ */
1912
+ applicantId: string;
1913
+ };
1914
+ /**
1915
+ * Contains the individual search results for an entity.
1916
+ */
1917
+ EntitySearchResultListItem: {
1918
+ confidence?: Core["SearchResultConfidenceObject"];
1919
+ entity?: Core["EntityObject"];
1920
+ /**
1921
+ * If this entity has any level of name match then this is an array of document IDs for the entity where the document has an entity name and it doesn't match any entity names being sought.
1922
+ */
1923
+ documentNameMismatches?: string[];
1924
+ /**
1925
+ * Array of descriptons of entity field matches used to score this search.
1926
+ */
1927
+ entityMatchTypes?: string[];
1928
+ /**
1929
+ * Array of descriptons of document field matches used to score this search. This is a summary for all the documents for the matched entity.
1930
+ */
1931
+ documentMatchTypes?: string[];
1932
+ };
1933
+ /**
1934
+ * Contains the results of a given entity search.
1935
+ */
1936
+ EntitySearchResultObject: {
1937
+ requestId: Core["RequestIDObject"];
1938
+ /**
1939
+ * The list of (potentially) matching entities with confidence levels.
1940
+ *
1941
+ * If you are the "owner" of the entity - i.e. the same CustomerID and CustomerChildID (if relevant) - then the full details of the entity and any owned documents will be returned, except for the contents of any attached scans.
1942
+ *
1943
+ * If you are not the owner of the entity (or linked documents), then just the ID and confidence level is returned. You can still use this ID to retrieve any check results (see GET /entity/{entityId}/checks and GET /document/{documentId}/checks)
1944
+ */
1945
+ entitySearchResults?: Core["EntitySearchResultListItem"][];
1946
+ };
1947
+ /**
1948
+ * Details of the status changes to be made to a check result.
1949
+ */
1950
+ CheckResultUpdateObject: {
1951
+ comment: string;
1952
+ status?: Core["enumCheckResultManualStatus"];
1953
+ checkClassIds?: string[];
1954
+ };
1955
+ /**
1956
+ * Unique identifier for every check/comparison/verification. Make sure you reference this ID whenever updating check details. This ID will also be used when pushing check results back to you.
1957
+ */
1958
+ CheckIDObject: string;
1959
+ /**
1960
+ * Contains the details of a check on a given data point
1961
+ */
1962
+ generalCheckResultObject: {
1963
+ checkProcessResults?: Core["ProcessResultObject"];
1964
+ /**
1965
+ * Who performed the check. If it was the calling customer, the value will be "You".
1966
+ * If it was another institution that has previously validated this data, then a generic description of their industry will be provided, such as "Bank", "Insurance", "Other FI".
1967
+ */
1968
+ checkRequestedBy?: string;
1969
+ };
1970
+ /**
1971
+ * An array in reverse chronological order of all checks done on this data point for the given entity. Older checks may have been previously done by you or another institution, and if so, these will be listed.
1972
+ */
1973
+ generalCheckResultArray: Core["generalCheckResultObject"][];
1974
+ /**
1975
+ * Wraps up a BCRO with its internal ID.
1976
+ */
1977
+ backgroundCheckResultObjectContainer: {
1978
+ /**
1979
+ * Internal ID of this BCRO. Use this if you need to set the status.
1980
+ */
1981
+ id?: string;
1982
+ bcro?: Core["backgroundCheckResultObject"];
1983
+ };
1984
+ /**
1985
+ * Contains the details of a background check for a given entity. Background checks include Politically Exposed Person (PEP), sanctions lists, watchlists and adverse media.
1986
+ */
1987
+ backgroundCheckResultObject: {
1988
+ checkId?: Core["CheckIDObject"];
1989
+ backgroundCheckType?: Core["enumBackgroundCheckType"];
1990
+ currentState?: Core["enumBackgroundCheckState"];
1991
+ /**
1992
+ * The date and time the item was first checked.
1993
+ */
1994
+ firstCheckDate?: string;
1995
+ /**
1996
+ * The date and time the item was last checked to provide this result.
1997
+ */
1998
+ latestCheckDate?: string;
1999
+ checkFrequency?: Core["enumBackgroundCheckFrequency"];
2000
+ /**
2001
+ * Confidence in the current results on a scale of 0 (none) to 100 (as certain as possible). Whole integers only.
2002
+ */
2003
+ confidenceLevel?: number;
2004
+ /**
2005
+ * Service provider that performed the check. Basically the name of the connector, without the leading con_
2006
+ */
2007
+ checkPerformedBy?: string;
2008
+ /**
2009
+ * Code that can be used to determine the underlying nature or data source of the checks performed. This may or may not be known by the connector, or may be a provider specific type (e.g. type "O")
2010
+ */
2011
+ checkSource?: string;
2012
+ /**
2013
+ * Any additional notes that may relate to the state. Free form notes that may contain JSON blobs needing further interpretation.
2014
+ */
2015
+ checkDetails?: Core["KeyValuePairObject"][];
2016
+ };
2017
+ PersonalNameCheckResultObject: {
2018
+ name?: Core["PersonalNameObject"];
2019
+ checkResult?: Core["generalCheckResultArray"];
2020
+ };
2021
+ DOBCheckResultObject: {
2022
+ dob?: Core["DOBObject"];
2023
+ checkResult?: Core["generalCheckResultArray"];
2024
+ };
2025
+ GenderCheckResultObject: {
2026
+ gender?: Core["enumGender"];
2027
+ checkResult?: Core["generalCheckResultArray"];
2028
+ };
2029
+ /**
2030
+ * This object holds the address that was checked and the results associated with said checks.
2031
+ * You can also leave the checkResult blank/nil if there are no results for that address if you wish.
2032
+ * This is useful for returning results on a freshly crerated entity where the API user would want to confirm that the data has indeed been stored, and be able to capture relevant addressIDs - perhaps to address issues as to why it wasn't checked.
2033
+ */
2034
+ AddressCheckResultObject: {
2035
+ address?: Core["AddressObject"];
2036
+ checkResult?: Core["generalCheckResultArray"];
2037
+ };
2038
+ /**
2039
+ * This object holds the identityDocument that was checked and the results associated with said checks.
2040
+ * You can also leave the checkResult blank/nil if there are no results for that identityDocument if you wish.
2041
+ * This is useful for returning results on a freshly crerated entity where the API user would want to confirm that the data has indeed been stored, and be able to capture relevant documentIds - perhaps to address issues as to why it wasn't checked.
2042
+ */
2043
+ IdentityDocumentCheckResultObject: {
2044
+ idDocument?: Core["IdentityDocumentObject"];
2045
+ checkResult?: Core["generalCheckResultArray"];
2046
+ };
2047
+ /**
2048
+ * Wrapper object to contain a single set of AML check results.
2049
+ */
2050
+ AMLResultSet: {
2051
+ groupDetails?: Core["backgroundCheckResultObjectContainer"];
2052
+ /**
2053
+ * Collection of check results for the entity being a Politically Exposed Person
2054
+ *
2055
+ * An array sorted by type, then reverse chronological order of some/all background checks done on this entity. Older checks may have been previously done by you or another institution, and if so, these will be listed and appropriately anonymised/obfuscated.
2056
+ */
2057
+ checkResultsListPEP?: Core["backgroundCheckResultObjectContainer"][];
2058
+ /**
2059
+ * Collection of check results for the entity being on a sanctions list
2060
+ *
2061
+ * An array sorted by type, then reverse chronological order of some/all background checks done on this entity. Older checks may have been previously done by you or another institution, and if so, these will be listed and appropriately anonymised/obfuscated.
2062
+ */
2063
+ checkResultsListSanctions?: Core["backgroundCheckResultObjectContainer"][];
2064
+ /**
2065
+ * Collection of check results for the entity being on a watchlist
2066
+ *
2067
+ * An array sorted by type, then reverse chronological order of some/all background checks done on this entity. Older checks may have been previously done by you or another institution, and if so, these will be listed and appropriately anonymised/obfuscated.
2068
+ */
2069
+ checkResultsListWatchlists?: Core["backgroundCheckResultObjectContainer"][];
2070
+ /**
2071
+ * Collection of check results for the entity being found in any adverse media
2072
+ *
2073
+ * An array sorted by type, then reverse chronological order of some/all background checks done on this entity. Older checks may have been previously done by you or another institution, and if so, these will be listed and appropriately anonymised/obfuscated.
2074
+ */
2075
+ checkResultsListMedia?: Core["backgroundCheckResultObjectContainer"][];
2076
+ };
2077
+ /**
2078
+ * Describes all of the checks that were carried out against an entity as part of our cascading check process. Because there are a number of steps involved in checking an entity, (including the use of past checks done by you or others), there is an overall summary check result that will tell you the final disposition of the the check you requested.
2079
+ *
2080
+ * So if you requested a 2+2+governmentID+pep/sanctions/etc (i.e. everything) then there would have been several checks done in order to meet this requirement. Some may have even failed, but eventually we got there. The summary gives the final assessment, based on all available data.
2081
+ *
2082
+ * Detailed writeups on how this all works can be found here:
2083
+ * https://help.frankiefinancial.com/hc/en-au/articles/900001758203-Non-Profile-Entity-Verify-Understanding-the-Results
2084
+ * and here:
2085
+ * https://help.frankiefinancial.com/hc/en-au/articles/900001758243-Non-Profile-Entity-Verify-Interpreting-the-Results
2086
+ */
2087
+ CheckEntityCheckResultObject: {
2088
+ requestId?: Core["RequestIDObject"];
2089
+ checkSummary?: Core["ProcessResultObject"];
2090
+ /**
2091
+ * Contains a list of all checkSummary records (one for each check)
2092
+ */
2093
+ checkResultsListSummaries?: Core["ProcessResultObject"][];
2094
+ checkRisk?: Core["ProcessResultObject"];
2095
+ /**
2096
+ * This will hold all of the check results that were performed against the
2097
+ */
2098
+ entityResult?: {
2099
+ /**
2100
+ * Unique ID for the entity.
2101
+ */
2102
+ entityId?: string;
2103
+ nameCheck?: Core["PersonalNameCheckResultObject"];
2104
+ dateOfBirthCheck?: Core["DOBCheckResultObject"];
2105
+ genderCheck?: Core["GenderCheckResultObject"];
2106
+ /**
2107
+ * Collection of address objects.
2108
+ */
2109
+ addressesCheck?: Core["AddressCheckResultObject"][];
2110
+ /**
2111
+ * Collection of identity documents (photos, scans, selfies, etc), and their check results
2112
+ */
2113
+ identityDocsCheck?: Core["IdentityDocumentCheckResultObject"][];
2114
+ /**
2115
+ * !!!!! DEPRECATED !!!!!
2116
+ * Please use the multi-result AMLResultSets structure instead.
2117
+ *
2118
+ * Note: This single check result structure will be retired in v1.3
2119
+ * !!!!! DEPRECATED !!!!!
2120
+ *
2121
+ * Collection of check results for the entity being a Politically Exposed Person
2122
+ *
2123
+ * An array sorted by type, then reverse chronological order of some/all background checks done on this entity. Older checks may have been previously done by you or another institution, and if so, these will be listed and appropriately anonymised/obfuscated.
2124
+ */
2125
+ pepCheck?: Core["backgroundCheckResultObject"][];
2126
+ /**
2127
+ * !!!!! DEPRECATED !!!!!
2128
+ * Please use the multi-result AMLResultSets structure instead.
2129
+ *
2130
+ * Note: This single check result structure will be retired in v1.3
2131
+ * !!!!! DEPRECATED !!!!!
2132
+ *
2133
+ * Collection of check results for the entity being on a sanctions list
2134
+ *
2135
+ * An array sorted by type, then reverse chronological order of some/all background checks done on this entity. Older checks may have been previously done by you or another institution, and if so, these will be listed and appropriately anonymised/obfuscated.
2136
+ */
2137
+ sanctionsCheck?: Core["backgroundCheckResultObject"][];
2138
+ /**
2139
+ * !!!!! DEPRECATED !!!!!
2140
+ * Please use the multi-result AMLResultSets structure instead.
2141
+ *
2142
+ * Note: This single check result structure will be retired in v1.3
2143
+ * !!!!! DEPRECATED !!!!!
2144
+ *
2145
+ * Collection of check results for the entity being on a watchlist
2146
+ *
2147
+ * An array sorted by type, then reverse chronological order of some/all background checks done on this entity. Older checks may have been previously done by you or another institution, and if so, these will be listed and appropriately anonymised/obfuscated.
2148
+ */
2149
+ watchlistCheck?: Core["backgroundCheckResultObject"][];
2150
+ /**
2151
+ * !!!!! DEPRECATED !!!!!
2152
+ * Please use the multi-result AMLResultSets structure instead.
2153
+ *
2154
+ * Note: This single check result structure will be retired in v1.3
2155
+ * !!!!! DEPRECATED !!!!!
2156
+ *
2157
+ * Collection of check results for the entity being found in any adverse media
2158
+ *
2159
+ * An array sorted by type, then reverse chronological order of some/all background checks done on this entity. Older checks may have been previously done by you or another institution, and if so, these will be listed and appropriately anonymised/obfuscated.
2160
+ */
2161
+ adverseMediaCheck?: Core["backgroundCheckResultObject"][];
2162
+ /**
2163
+ * An array of Collections of PEP/Sanctions/WL/Media objects, as AML providers can return multiple results
2164
+ */
2165
+ amlResultSets?: Core["AMLResultSet"][];
2166
+ };
2167
+ entityProfileResult?: Core["EntityProfileResultObject"];
2168
+ /**
2169
+ * Collection of check results for the entity having previously been checked.
2170
+ *
2171
+ * An array of matched checked entities sorted by match confidence level (highest first).
2172
+ */
2173
+ duplicateCheckResults?: Core["ProcessResultObject"][];
2174
+ /**
2175
+ * Collection of check results for the entity having been previously blacklisted.
2176
+ *
2177
+ * An array of matched blacklisted entities sorted by match confidence level (highest first).
2178
+ */
2179
+ blacklistCheckResults?: Core["ProcessResultObject"][];
2180
+ /**
2181
+ * Collection of check results for the manual KYC.
2182
+ *
2183
+ * An array of one entry with the manual check result.
2184
+ */
2185
+ manualCheckResults?: Core["ProcessResultObject"][];
2186
+ fraudCheckResults?: Core["FraudCheckResultObject"];
2187
+ /**
2188
+ * We can perform a number of device checks on an entity, such as those from ThreatMetrix and/or BioCatch. If one of these checks was incorporated into the ID check, then these will appear here.
2189
+ */
2190
+ deviceCheckResults?: Core["ProcessResultObject"][];
2191
+ };
2192
+ /**
2193
+ * All valid customers get a puppy. Otherwise, no puppy for you!
2194
+ */
2195
+ PuppyObject: {
2196
+ puppy: boolean;
2197
+ /**
2198
+ * Server version indication
2199
+ */
2200
+ commit?: string;
2201
+ };
2202
+ /**
2203
+ * A common pairing of a short code and a long description.
2204
+ */
2205
+ CodeDescription: {
2206
+ code?: string;
2207
+ description?: string;
2208
+ };
2209
+ /**
2210
+ * Details of a shareholding as returned from an ASIC report.
2211
+ */
2212
+ ShareholdingObject: {
2213
+ docNumber?: string;
2214
+ docNumberQualifier?: string;
2215
+ shareCapitalClassCode?: string;
2216
+ numberHeld?: number;
2217
+ beneficiallyOwned?: boolean;
2218
+ fullyPaid?: boolean;
2219
+ members?: string[];
2220
+ };
2221
+ /**
2222
+ * Officer court details as returned from an ASIC report.
2223
+ */
2224
+ CourtDetailsObject: {
2225
+ type?: Core["CodeDescription"];
2226
+ state?: string;
2227
+ country?: string;
2228
+ applicationNumber?: string;
2229
+ applicationYear?: number;
2230
+ };
2231
+ /**
2232
+ * Officer details as returned from an ASIC report.
2233
+ */
2234
+ OfficerObject: {
2235
+ entityId?: string;
2236
+ type?: string;
2237
+ typeDescription?: string;
2238
+ status?: string;
2239
+ docNumber?: string;
2240
+ docNumberQualifier?: string;
2241
+ appointmentDate?: string;
2242
+ courtDetails?: Core["CourtDetailsObject"];
2243
+ };
2244
+ /**
2245
+ * Describes a collection of shares of a particular type and their attributes,
2246
+ * One or more ShareStructures make up a company's shares that are then parcelled out as shareholdings.
2247
+ */
2248
+ ShareStructureObject: {
2249
+ status?: string;
2250
+ docNumber?: string;
2251
+ docNumberQualifier?: string;
2252
+ classCode?: string;
2253
+ classTitle?: string;
2254
+ sharesIssued?: number;
2255
+ amountPaid?: number;
2256
+ amountDue?: number;
2257
+ };
2258
+ /**
2259
+ * Organisation details for entities. Returned from an ASIC report.
2260
+ */
2261
+ OrganisationDataObject: {
2262
+ registeredName?: string;
2263
+ registration?: {
2264
+ state?: string;
2265
+ previousNumber?: string;
2266
+ date?: string;
2267
+ };
2268
+ type?: Core["CodeDescription"];
2269
+ class?: Core["CodeDescription"];
2270
+ subclass?: Core["CodeDescription"];
2271
+ status?: Core["CodeDescription"];
2272
+ shareStructure?: Core["ShareStructureObject"][];
2273
+ disclosingEntityIndicator?: boolean;
2274
+ kycCustomerType?: string;
2275
+ includesNonBeneficiallyHeld?: boolean;
2276
+ lastCheckDate?: string;
2277
+ ownershipResolved?: boolean;
2278
+ adverseCreditDataPresent?: boolean;
2279
+ startDate?: string;
2280
+ };
2281
+ BeneficialOwnerObject: {
2282
+ /**
2283
+ * The entityId of the owner.
2284
+ */
2285
+ entityId?: string;
2286
+ percentageHeld?: {
2287
+ beneficially?: number;
2288
+ nonBeneficially?: number;
2289
+ jointly?: number;
2290
+ total?: number;
2291
+ };
2292
+ };
2293
+ /**
2294
+ * Details of the organisation for which ownership should be queried. This should at least contain the ACN in the externalIds.
2295
+ */
2296
+ OwnershipQuery: {
2297
+ organisation: Core["EntityObject"];
2298
+ };
2299
+ /**
2300
+ * Frankie internal use only.
2301
+ *
2302
+ * The result of an /business/ownership/query call as returned by a suitable service connector.
2303
+ */
2304
+ OwnershipQueryResponseObject: {
2305
+ requestId?: Core["RequestIDObject"];
2306
+ checkId?: string;
2307
+ /**
2308
+ * If a result is provided in this response then this is the date and time the service provided that result.
2309
+ */
2310
+ checkDate?: string;
2311
+ /**
2312
+ * Unique identifier provided by the service.
2313
+ */
2314
+ providerCheckId?: string;
2315
+ ownershipQueryResult?: Core["OwnershipQueryResultObject"];
2316
+ };
2317
+ /**
2318
+ * The data that was initially supplied to check in the batch file
2319
+ */
2320
+ SuppliedData: {
2321
+ /**
2322
+ * The name of the company to be verified
2323
+ */
2324
+ name: string;
2325
+ /**
2326
+ * The type of company on file. Use the ABR's company types, as given here:
2327
+ *
2328
+ * https://abr.business.gov.au/Documentation/ReferenceData (entity types)
2329
+ */
2330
+ company_type: "PRV" | "PUB";
2331
+ /**
2332
+ * Australian Company Number on file - MUST be zero left-padded to 9 digits
2333
+ */
2334
+ acn: string;
2335
+ /**
2336
+ * Australian Business Number - MUST be 11 digits. Can be supplied in lieu of the ACN
2337
+ */
2338
+ abn: string;
2339
+ /**
2340
+ * Your reference number for this company
2341
+ */
2342
+ customer_reference: string;
2343
+ };
2344
+ /**
2345
+ * The results of the comparison of the supplied data (above) to that found on file with the ABR.
2346
+ * If the value is missing, then the comparison was not run. There will likely be an issue highlighted in the issues_list
2347
+ */
2348
+ SuppliedDataMatches: {
2349
+ /**
2350
+ * Did the supplied name match (or closely match) the name on file with the ABR
2351
+ */
2352
+ matched_name: boolean;
2353
+ /**
2354
+ * Did the supplied ACN match the ACN on file with the ABR? Only truly relevant if ABN is supplied as well.
2355
+ */
2356
+ matched_acn: boolean;
2357
+ /**
2358
+ * Did the supplied company type match the company type on file with the ABR?
2359
+ */
2360
+ matched_company_type: boolean;
2361
+ };
2362
+ /**
2363
+ * A key/value pair of strings that describe the location of the issue (key) and an issue description (value). Also inclused is a severity
2364
+ */
2365
+ IssueListItems: {
2366
+ /**
2367
+ * Where the issue occured. It will describe a location in the response structure
2368
+ */
2369
+ issue_location?: string;
2370
+ /**
2371
+ * Human readable description of the issue
2372
+ */
2373
+ issue_description?: string;
2374
+ /**
2375
+ * The impact of the issue on the process.
2376
+ *
2377
+ * Is it just informational, such as a trivial different in a name match?
2378
+ * Is it a warning to highlight something that is important, but did not prevent the process from completing?
2379
+ * Is it a critical issue that prevented the check from completing successfully?
2380
+ * Is it a stop condition that prevented the checks from being run at all?
2381
+ */
2382
+ issue_severity?: "INFO" | "WARN" | "CRIT" | "STOP";
2383
+ };
2384
+ /**
2385
+ * If a company is listed, then this object will be populated with whatever data has been determined.
2386
+ */
2387
+ StockExchangeData: {
2388
+ exchange?: string;
2389
+ exchange_ticker?: string;
2390
+ approved_exchange?: boolean;
2391
+ supporting_evidence_in_pdf?: boolean;
2392
+ supporting_document_links?: string[];
2393
+ };
2394
+ /**
2395
+ * The results of a safe harbour KYC check of an individual
2396
+ */
2397
+ KYCScreeningResult: {
2398
+ /**
2399
+ * The disposition of the 2+2 Safe Harbour check
2400
+ */
2401
+ check_result?: "NOT_SCREENED" | "PASS" | "REFER" | "FAIL";
2402
+ /**
2403
+ * The number of name matches
2404
+ */
2405
+ name_match_count: number;
2406
+ /**
2407
+ * The number of date of birth matches
2408
+ */
2409
+ dob_match_count: number;
2410
+ /**
2411
+ * The number of address matches
2412
+ */
2413
+ address_match_count: number;
2414
+ /**
2415
+ * The is of matching data sources that produced a success match for the person being screened
2416
+ * Example given is not indicative of the actual sources available.
2417
+ */
2418
+ matching_sources?: string[];
2419
+ };
2420
+ /**
2421
+ * The results of any AML/Adverse media screening undertaken
2422
+ */
2423
+ AMLScreeningResult: {
2424
+ /**
2425
+ * The overall result
2426
+ */
2427
+ check_result?: "NOT_SCREENED" | "CLEAR" | "POSSIBLE_HIT";
2428
+ /**
2429
+ * The number of adverse media hits.
2430
+ */
2431
+ media_hit_count?: number;
2432
+ };
2433
+ /**
2434
+ * Contains the results (if any) of the KYC and AML/Media checks performed
2435
+ */
2436
+ ScreeningResult: {
2437
+ kyc_result?: Core["KYCScreeningResult"];
2438
+ aml_result?: Core["AMLScreeningResult"];
2439
+ };
2440
+ RegulatoryInformation: {
2441
+ regulatory_body?: string;
2442
+ licence_details?: string;
2443
+ licence_number?: string;
2444
+ licence_verified?: boolean;
2445
+ };
2446
+ /**
2447
+ * The details of the company being checked
2448
+ */
2449
+ BusinessDetails: {
2450
+ /**
2451
+ * Frankie's unique identifier for the business.
2452
+ *
2453
+ * Uses a non-versioned UUID format
2454
+ */
2455
+ entity_id?: string;
2456
+ registered_name: string;
2457
+ business_names?: string[];
2458
+ trading_names?: string[];
2459
+ ABN: string;
2460
+ ACN: string;
2461
+ ARBN: string;
2462
+ asic_company_type?: string;
2463
+ public_company?: boolean;
2464
+ registered_office?: Core["AddressObject"];
2465
+ place_of_business?: Core["AddressObject"];
2466
+ date_registered_with_asic?: string;
2467
+ state_registered_with_asic?: string;
2468
+ giin: string;
2469
+ anzsic_code: string;
2470
+ stock_exchange_data?: Core["StockExchangeData"];
2471
+ regulatory_information?: Core["RegulatoryInformation"];
2472
+ };
2473
+ /**
2474
+ * x
2475
+ */
2476
+ IndividualData: {
2477
+ /**
2478
+ * Name of the individual
2479
+ */
2480
+ name?: string;
2481
+ /**
2482
+ * If this individual has a role as an officeholder, such as director, then this will be described here. May be blank.
2483
+ */
2484
+ role: string;
2485
+ /**
2486
+ * If describing an (ultimate) beneficial owner, the percentage of the company owned by this Individual
2487
+ */
2488
+ percent_owned: number;
2489
+ /**
2490
+ * If describing an (ultimate) beneficial owner, then if any of the shared held are not benefially held, this field will be set to "false"
2491
+ */
2492
+ beneficially_held: boolean;
2493
+ /**
2494
+ * RFC3339 formatted date
2495
+ */
2496
+ date_of_birth?: string;
2497
+ /**
2498
+ * List of all found addresses associated with this person
2499
+ */
2500
+ addresses?: Core["AddressObject"][];
2501
+ screening_result?: Core["ScreeningResult"];
2502
+ };
2503
+ /**
2504
+ * x
2505
+ */
2506
+ NonIndividualBeneficialOwner: {
2507
+ /**
2508
+ * Name of the company/entity
2509
+ */
2510
+ name?: string;
2511
+ /**
2512
+ * The ASIC type of the company/entity
2513
+ */
2514
+ entity_type?: string;
2515
+ /**
2516
+ * If describing an (ultimate) beneficial owner, the percentage of the company owned
2517
+ */
2518
+ percent_owned: number;
2519
+ /**
2520
+ * If describing an (ultimate) beneficial owner, then if any of the shared held are not benefially held, this field will be set to "false"
2521
+ */
2522
+ beneficially_held: boolean;
2523
+ stock_exchange_data?: Core["StockExchangeData"];
2524
+ };
2525
+ UBOResponse: {
2526
+ /**
2527
+ * Only populated if there was an error whilst trying to initiate the UBO check.
2528
+ *
2529
+ * Signifies that no other result data will be supplied
2530
+ */
2531
+ error_message?: string;
2532
+ /**
2533
+ * If an ASIC search was conducted, what was the date/time in RFC-3339 format
2534
+ */
2535
+ asic_search_timestamp?: string;
2536
+ /**
2537
+ * The full URI of the UBO report PDF created as a part of this process (if requested)
2538
+ */
2539
+ ubo_report?: string;
2540
+ supplied_data: Core["SuppliedData"];
2541
+ supplied_data_matches?: Core["SuppliedDataMatches"];
2542
+ /**
2543
+ * A list of issues encountered whilst processing the UBO request and subsequent KYC/AML checks.
2544
+ */
2545
+ issues_list?: Core["IssueListItems"][];
2546
+ business_details?: Core["BusinessDetails"];
2547
+ business_screening_result?: Core["ScreeningResult"];
2548
+ /**
2549
+ * A list of individuals who have been determined to own, either directly or indirectly, 25% or more of the company
2550
+ */
2551
+ ultimate_beneficial_owners?: Core["IndividualData"][];
2552
+ /**
2553
+ * A list of organisations who have been determined to own a (potentially) beneficial interest the company.
2554
+ *
2555
+ * The presence of non_individual_beneficial_owners indicates that not all individual ultimate beneficial owners could be determined.
2556
+ * Examples may include public companies, listed companies, foreign companies, corporate trusts or other entities whose beneficial owners are not readily available.
2557
+ */
2558
+ non_individual_beneficial_owners?: Core["NonIndividualBeneficialOwner"][];
2559
+ /**
2560
+ * A list of individuals who serve as current office holders the company
2561
+ */
2562
+ officeholders?: Core["IndividualData"][];
2563
+ };
2564
+ /**
2565
+ * The result of an /business/ownership/query call retrieved via GET /retrieve/response/{requestId} after you receive a notification that the result is ready.
2566
+ */
2567
+ OrganisationCheckResponseObject: {
2568
+ requestId?: Core["RequestIDObject"];
2569
+ /**
2570
+ * Unique identifier for the ownership check.
2571
+ */
2572
+ ownershipCheckId?: string;
2573
+ /**
2574
+ * If an ownership result is provided in this response then this is the date and time the service provided that result.
2575
+ */
2576
+ ownershipCheckDate?: string;
2577
+ /**
2578
+ * Batch identifier for the KYC/AML check results if any.
2579
+ */
2580
+ organisationCheckId?: string;
2581
+ uboResponse?: Core["UBOResponse"];
2582
+ ownershipQueryResult?: Core["OwnershipQueryResultObject"];
2583
+ organisationCheckResult?: Core["OrganisationCheckResultObject"];
2584
+ ownershipQueryError?: Core["ErrorObject"];
2585
+ /**
2586
+ * Used to set additional information flags for this response.
2587
+ */
2588
+ flags?: Core["EntityFlagObject"][];
2589
+ reportResult?: Core["BusinessReportResultObject"];
2590
+ reportError?: Core["ErrorObject"];
2591
+ };
2592
+ /**
2593
+ * The positive result of a report generation request if any.
2594
+ */
2595
+ BusinessReportResultObject: {
2596
+ location?: string;
2597
+ documentId?: string;
2598
+ scanDocId?: string;
2599
+ };
2600
+ OwnershipQueryResultObject: {
2601
+ /**
2602
+ * The entityId of the organisation for which this result was created. The details will be in the ownershipDetails map with this ID as the key.
2603
+ */
2604
+ entityId?: string;
2605
+ /**
2606
+ * List of all entities (both individuals and organisations) associated with this ownership result. These objects will be referenced by entityId in the shareholdings and officers lists in the following ownership details.
2607
+ */
2608
+ associatedEntities?: {
2609
+ [key: string]: Core["EntityObject"];
2610
+ };
2611
+ /**
2612
+ * List of entity IDs (that should be in the associatedEntities list) who blocked the ultimate beneficial ownership tree traversal. These are likely to be entities that cannot be checked automatically (such as trusts) or who have no UBO's of their own, such as public companies.
2613
+ *
2614
+ * The presence of data in this array also signifies that the full UBO list is not complete.
2615
+ */
2616
+ blockingEntityIds?: string[];
2617
+ /**
2618
+ * A map of entityId to ownershipDetailsObjects with at least one entry being for the root organisation that the overall result relates to. Any remaining entries will be for further results for organisational owners referenced in the root ownershipDetailsObject and so on.
2619
+ */
2620
+ ownershipDetails?: {
2621
+ [key: string]: Core["OwnershipDetailsObject"];
2622
+ };
2623
+ };
2624
+ /**
2625
+ * The ownership details for one organisation.
2626
+ */
2627
+ OwnershipDetailsObject: {
2628
+ organisation?: Core["EntityObject"];
2629
+ /**
2630
+ * Parcels of shares held by one or more shareholders.
2631
+ */
2632
+ shareholdings?: Core["ShareholdingObject"][];
2633
+ /**
2634
+ * Company office holders.
2635
+ */
2636
+ officers?: Core["OfficerObject"][];
2637
+ /**
2638
+ * The ultimate beneficial owners of the company.
2639
+ */
2640
+ ultimateBeneficialOwners?: Core["BeneficialOwnerObject"][];
2641
+ /**
2642
+ * The beneficial owners of the company, who aren't necessarily UBO's.
2643
+ */
2644
+ beneficialOwners?: Core["BeneficialOwnerObject"][];
2645
+ };
2646
+ /**
2647
+ * The results of KYC/AML check on a organisation with a prior ownership query. This will be retrived via GET /retrieve/response/{requestId} after you receive a notification that the results are ready.
2648
+ */
2649
+ OrganisationCheckResultObject: {
2650
+ /**
2651
+ * The entityId of the organisation for which this result was created.
2652
+ */
2653
+ entityId?: string;
2654
+ /**
2655
+ * The unique ID for grouping all new KYC/AML checks in this result. This is only for Frankie internal use.
2656
+ */
2657
+ groupId?: string;
2658
+ /**
2659
+ * A map of the entity categories that were selected for checks and an array of the entity IDs for each. The results for each entity ID will be in either the entityCheckResults or entityCheckErrors maps. Entities may appear in more than one category.
2660
+ */
2661
+ entityCategories?: {
2662
+ [key: string]: string[];
2663
+ };
2664
+ /**
2665
+ * List of all entities check results (both individuals and organisations) other than outright errors. These objects will be referenced by entity ID in the entity category map.
2666
+ */
2667
+ entityCheckResults?: {
2668
+ [key: string]: Core["CheckEntityCheckResultObject"];
2669
+ };
2670
+ /**
2671
+ * A map of outright errors (failure to generate any kind of result). These objects will be referenced by entity ID in the entity category map.
2672
+ */
2673
+ entityCheckErrors?: {
2674
+ [key: string]: Core["ErrorObject"];
2675
+ };
2676
+ };
2677
+ BusinessReportResponseDetails: {
2678
+ requestId?: Core["RequestIDObject"];
2679
+ /**
2680
+ * Unique identifier for the report operation.
2681
+ */
2682
+ checkId?: string;
2683
+ /**
2684
+ * The entity after it has been added/updated in the service
2685
+ */
2686
+ entity?: Core["EntityObject"];
2687
+ /**
2688
+ * The collection of requested business reports.
2689
+ */
2690
+ reports?: Array<Core["BusinessReportResponseObject"]>;
2691
+ };
2692
+ BusinessReportResponseObject: {
2693
+ details?: Core["BusinessReportDetailsObject"];
2694
+ /**
2695
+ * The requested report object. This will be one of: - ReportCreditScore - ReportCreditReport
2696
+ */
2697
+ report?: any;
2698
+ };
2699
+ BusinessReportDetailsObject: {
2700
+ /**
2701
+ * The name of the requested report
2702
+ */
2703
+ reportName?: string;
2704
+ /**
2705
+ * If the report provider generated an ID or recipt number for the report, it goes here
2706
+ */
2707
+ reportId?: string;
2708
+ /**
2709
+ * The ISO UTC date and time the report was generated
2710
+ */
2711
+ reportDateTime?: Date;
2712
+ /**
2713
+ * The name of the service provider that generated the report.
2714
+ */
2715
+ reportProvider?: string;
2716
+ /**
2717
+ * Whether the report was successfully run or not
2718
+ */
2719
+ reportRun?: boolean;
2720
+ /**
2721
+ * Any details of what is happening with the report of not run. Will be one of: - OK (the report was run) - LATER (the report will be sent later as a response notification) - An error message as to why the report did not work
2722
+ */
2723
+ reportStatus?: string;
2724
+ };
2725
+ }