/**
* This file was auto-generated by swagger-to-ts.
* Do not make direct changes to the file.
*/
export declare interface Core {
/**
* Valid ID types
* - "OTHER": Generic document type. Unspecified.
* - "DRIVERS_LICENCE": Driver's licence.
* - "PASSPORT": Passport
* - "VISA": Visa document (not Visa payment card)
* - "IMMIGRATION": Immigration card
* - "NATIONAL_ID": Any national ID card
* - "TAX_ID": Any national tax identifier
* - "NATIONAL_HEALTH_ID": Any national health program ID card (e.g. Medicare, NHS)
* - "CONCESSION": State issued concession card
* - "HEALTH_CONCESSION": State issued health specific concession card
* - "PENSION": State issued pension ID
* - "MILITARY_ID": Military ID
* - "BIRTH_CERT": Birth certificate
* - "CITIZENSHIP": Citizenship certificate
* - "MARRIAGE_CERT": Marriage certificate
* - "DEATH_CERT": Death certificate
* - "NAME_CHANGE": Name chage confirmation
* - "UTILITY_BILL": Regulated utility bill, such as electricity, gas, etc
* - "BANK_STATEMENT": Bank/card statement
* - "BANK_ACCOUNT": Bank account
* - "INTENT_PROOF": A proof of intent. Generally a photo/video, or a scanned letter
* - "ATTESTATION": A document of attestation (e.g. Statutory Declaration)
* - "SELF_IMAGE": A "selfie" used for comparisions
* - "EMAIL_ADDRESS": An email address
* - "MSISDN": A mobile phone number
* - "DEVICE": A device ID
* - "VEHICLE_REGISTRATION": Vehicle registration number
* Business related documentation
* - "EXTERNAL_ADMIN": Details of appointed administrator.
* - "CHARGES": Details of any charges that have been laid against a company or director
* - "PRE_ASIC": Any documents that are Pre-ASIC
* - "ANNUAL_RETURN": Details of a company's annual return
* - "REPORT": Frankie generated report.
* Special document types
* - "CHECK_RESULTS": A special document type for specifying results of checks completed other than through Frankie.
*/
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";
/**
* Used to describe the contents of the KVP data.
*
* The general.* and raw.* types are pretty much what they say on the tin.
*
* 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.
*
* 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.
*
* id.external can be used to capture an object's ID on an external service, and can potentially be searchable in the index
* Note - This is different from a result.id.
*
* defunct is used to mark an existing KVP deleted when the value must be retained, for example for audit purposes.
*
* result.* are used to capture response codes and transaction IDs from external services
*
* error.* types can be used when processing a document that returns an error, but doesn't necessarily require a full blown error response.
*/
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";
/**
* Valid ID document scan general types.
* - "PHOTO": Any photo
* - "VIDEO": Any video
* - "AUDIO": Any audio
* - "PDF": PDF or PS (may contain text, images or both)
* - "DOC": Word doc, RTF, etc
* - "ZIP": Any compressed file(s)
*/
enumScanType: "PHOTO" | "VIDEO" | "AUDIO" | "PDF" | "DOC" | "ZIP";
/**
* Describes if a scan is of the "F"ront or "B"ack of an ID. If not supplied, Front is always assumed.
*/
enumScanSide: "F" | "B";
/**
* Used to indicate of the entity in question is:
* - "M"ale
* - "F"emale
* - "U"nspecified
* - "O"ther (for want of a better option)
*/
enumGender: "U" | "F" | "M" | "O";
/**
* Used to indicate marital status of the Applicant
* - Single
* - Married
* - Widowed
* - Divorced
*/
enumMaritalStatus: "Single" | "Married" | "Widowed" | "Divorced";
/**
* The standard MIME type of the file being uploaded. We'll double-check to be certain, but this can help speed things up
*/
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";
/**
* The reason why the scanData in a response is missing.
* - "NORMAL": The scanData was retrieved and is included. If it is empty then it was never provided or was provided empty.
* - "EXCLUDED": The retrieval request was not for 'full' data, or the object has 'ScanDelete' set so the scanData is not included
* - "FAILED": The scanData could not be retrieved from the secure document store.
*
* 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.
*/
enumScanDataRetrievalState: "NORMAL" | "EXCLUDED" | "FAILED";
/**
* Used to indicate what sort address this is, such as residential, business, postal, etc.
*
* RESIDENTIAL1-4 can be used to indicate the reverse chronological order of addresses.
* RESIDENTIAL or RESIDENTIAL1 is the current address
* RESIDENTIAL2 is the previous address, and so on.
*
* For Individual postal/mailing addresses, use POSTAL.
* For Businesses, use OFFICIAL_CORRESPONDANCE
*/
enumAddressType: "OTHER" | "RESIDENTIAL" | "RESIDENTIAL1" | "RESIDENTIAL2" | "RESIDENTIAL3" | "RESIDENTIAL4" | "BUSINESS" | "POSTAL" | "REGISTERED_OFFICE" | "PLACE_OF_BUSINESS" | "PLACE_OF_BIRTH" | "OFFICIAL_CORRESPONDANCE";
/**
* Current status of a document.
* - "INITIALISING": the state whilst you're uploading and updating
* - "SCAN_IN_PROGRESS": the state whilst it's being scanned.
* - "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.
* - "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.
*/
enumDocumentStatus: "INITIALISING" | "SCAN_IN_PROGRESS" | "DOC_SCANNED" | "DOC_CHECKED";
/**
* Check state for an individual data point
* - "UNCHECKED": Check has not yet been performed
* - "NOT_SUPPORTED": the requested check type or industry function is not supported by this connector.
* - "CHECKING": Checks are underway.
* - "UNPROCESSABLE": The data supplied was unprocessable.
* - "NO_MATCH": All checks complete, no records found that matched the details supplied
* - "CHECKED_PARTIAL_SUCCESS": All checks complete, but only some succeeded.
* - "CHECKED_SUCCESS_WITH_NOTES": All checks complete, but there are some notes (e.g. PEP or sanctions).
* - "CHECKED_SUCCESS_CLEAR": All checks complete, no additional notes
* - "CHECKED_FAILED": All checks complete, but all failed.
*/
enumCheckResultState: "UNCHECKED" | "CHECKING" | "UNPROCESSABLE" | "NOT_SUPPORTED" | "NO_MATCH" | "CHECKED_PARTIAL_SUCCESS" | "CHECKED_SUCCESS_WITH_NOTES" | "CHECKED_SUCCESS_CLEAR" | "CHECKED_FAILED";
/**
* Different types of checks available.
* 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.
*/
enumBackgroundCheckType: "PEP" | "SANCTION" | "WATCHLIST" | "MEDIA" | "GROUP";
/**
* Current state, based on the most recent check.
* - "CLEAR": The no checks have ever turned up results
* - "PAST_HITS": Past checks have returned hits, but now they're clear.
* - "POSSIBLE_HIT": The most recent checks turned up some results that may be relevant
* - "ACTIVE_HITS": The current checks are returning definitive hits.
*/
enumBackgroundCheckState: "CLEAR" | "PAST_HITS" | "POSSIBLE_HIT" | "ACTIVE_HITS";
/**
* How often these checks run.
*/
enumBackgroundCheckFrequency: "ADHOC" | "YEARLY" | "QUARTERLY" | "MONTHY" | "WEEKLY" | "DAILY";
/**
* Defines how close a match we were able to make based on search results.
* - "LOW": The item does match the minimum criteria given, but is potentially one of a number of possible hits
* - "MEDIUM": The item matches multiple search criteria, but there is still some potential ambiguity with other hits
* - "HIGH": Matches all given search criteria, but there were other potential hits
* - "DEFINITE": Was the only item to match all given search criteria.
*/
enumSearchResultConfidence: "LOW" | "MEDIUM" | "HIGH" | "DEFINITE";
/**
* High level indication of the final disposition of a backgrounded function
* - "COMPLETED": the request completed (not that the final result is a success, just that we completed)
* - "FAILED": the request failed.
* - "INCOMPLETE": could not complete the request.
*/
enumFunctionStatus: "COMPLETED" | "FAILED" | "INCOMPLETE";
/**
* Indicates the type of notification being pushed.
* - "FUNCTION": A request that you previously backgrounded has completed and this is the notification that is it complete (success is another matter)
* - "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.
* - "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.
* - "ALERT": Like the EVENT, except that the severity of the notification indicates that action is almost certainly required.
*/
enumNotificationType: "FUNCTION" | "RESULT" | "EVENT" | "ALERT";
/**
* Indicates the status of a check result as set by a user.
* - "UNKNOWN": The user has not decided so the actual check result applies as normal.
* - "TRUE_POSITIVE": The check result has been acknowledged as correct but the final effect (accept/reject) has not been decided.
* - "TRUE_POSITIVE_ACCEPT": The check result is correct but will be ignored. This is also known as 'whitelisting'
* - "TRUE_POSITIVE_REJECT": The check result is correct and will be used.
* - "FALSE_POSITIVE": The check result is not applicable and will be ignored.
* - "STALE": The check result will become invisible, will not be considered
* and will not count towards due diligence requirements.
*/
enumCheckResultManualStatus: "UNKNOWN" | "TRUE_POSITIVE" | "TRUE_POSITIVE_ACCEPT" | "TRUE_POSITIVE_REJECT" | "FALSE_POSITIVE" | "STALE";
/**
* Indicates the type of an entity.
* - "INDIVIDUAL": An individual.
* - "TRUST": A trust.
* - "ORGANISATION": An organisation.
*/
enumEntityType: "INDIVIDUAL" | "TRUST" | "ORGANISATION";
/**
Enum of risk assessment groupings, e.g. customer, device, transaction, AML, PEP as determined by the risk checking service
- CUSTOMER
- DEVICE
- TRANSACTION
- AML
- FRAUD
*/
enumRiskResultType: "CUSTOMER" | "DEVICE" | "TRANSACTION" | "AML" | "FRAUD";
/**
An enumerated list of risk as determined by the checking service
- NONE
- LOW
- MEDIUM
- HIGH
- VERY_HIGH
*/
enumRiskLevelType: "NONE" | "LOW" | "MEDIUM" | "HIGH" | "VERY_HIGH";
/**
The type of payment that the transaction used
- CARD
- BANK
- WIRE
- CRYPTO
- OTHER
*/
enumPaymentType: "CARD" | "BANK" | "WIRE" | "CRYPTO" | "OTHER";
/**
Type of the Activity that has occurred
- REGISTRATION
- LOGIN
- FIAT_WITHDRAWAL
- FIAT_DEPOSIT
- CRYPTO_WITHDRAWAL
- CRYPTO_DEPOSIT
*/
enumActivityType: "REGISTRATION" | "LOGIN" | "FIAT_WITHDRAWAL" | "FIAT_DEPOSIT" | "CRYPTO_WITHDRAWAL" | "CRYPTO_DEPOSIT";
/**
Enum of risk assessment groupings, e.g. customer, device, transaction, AML, PEP as determined by the risk checking service
*/
enumIssueType: "CUSTOMER" | "DEVICE" | "TRANSACTION" | "AML" | "FRAUD";
/**
Current Status of the Case
- PENDING
- APPROVED
- MANUALLY_DECLINED
*/
enumCheckCaseStatus: "PENDING" | "APPROVED" | "MANUALLY_DECLINED";
/**
* Individual key-value pair
*/
KeyValuePairObject: {
/**
* Name of the data
*/
kvpKey?: string;
/**
* Value of the data
*/
kvpValue?: string;
kvpType?: Core["enumKVPType"];
};
/**
* Unique identifier for every request. Can be used for tracking down answers with technical support.
*
* Uses the ULID format (a time-based, sortable UUID)
*
* Note: this will be different for every request.
*/
RequestIDObject: string;
/**
* Provides details of the confidence level we have that this is the item we're looking for.
*/
SearchResultConfidenceObject: {
/**
* Numeric score on a scale of 0 (none) to 100 (as certain as possible) on which the confidence level is based. Whole integers only.
*/
score?: number;
level?: Core["enumSearchResultConfidence"];
/**
* Free-form list of descriptions around any partial matches
*/
notes?: string[];
};
ErrorObject: {
requestId: Core["RequestIDObject"];
/**
* Deprecated:
* HTTP status code. Same as that which is passed back in the header.
*/
httpStatusCode?: number;
/**
* Frankie error code
*/
errorCode: string;
/**
* Will describe the error
*/
errorMsg: string;
/**
* Server version indication
*/
commit?: string;
issues?: {
/**
* Will describe the field or data location of the issue
*/
issueLocation: string;
/**
* Description of the problem
*/
issue?: string;
}[];
};
BasicStatusResultObject: {
requestId: Core["RequestIDObject"];
/**
* Simple message describing the final status of the process. Only to be used in success case responses. Otherwise, use the ErrorObject.
*/
statusMsg: string;
};
/**
* 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.
*/
NotificationResultObject: {
requestId?: Core["RequestIDObject"];
notificationType?: Core["enumNotificationType"];
/**
* Only supplied if the original request was tied to a document. This will be the same ID that was sent in the original acceptance.
*/
documentId?: string;
/**
* Only supplied if the original request was tied to an entity. This will be the same ID that was sent in the original acceptance.
*/
entityId?: string;
/**
* 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
*/
entityCustomerReference?: string;
/**
* Short description of the original function called, or function that was triggered.
*/
function?: string;
functionResult?: Core["enumFunctionStatus"];
/**
* 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).
*/
checkId?: string;
/**
* URI for resource containing more details about the reason for the notification.
*/
linkReference?: string;
/**
* A brief, human readable message describing the reason for the notification.
*/
message?: string;
/**
* The portal username that initiated the operation that led to this notification. If applicable and available.
*/
username?: string;
};
/**
* When sent a notification or alert, you'll call the /retrive/response/{requestId} function
*
* This will return the original response
*/
RetrievedResponseObject: {
/**
* This will be the HTTP response code that was returned originally (200, 404, etc).
*
* 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.
*/
origHTTPstatus?: number;
/**
* 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.
*/
payload?: {
[key: string]: any;
};
};
/**
* 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.
*/
AcceptedDocumentResultObject: {
requestId?: Core["RequestIDObject"];
/**
* 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.
*/
documentId?: string;
/**
* Short description of the function called.
*/
function?: string;
/**
* 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).
*/
checkId?: string;
};
/**
* the document to be attached and optionally scanned (if supported)
*/
ScannedDocumentObject: {
/**
* 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.
*/
scanDocId?: string;
scanType?: Core["enumScanType"];
scanSide?: Core["enumScanSide"];
/**
* 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
*/
scanFilename?: string;
/**
* 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.
*/
scanPageNum?: number;
scanMIME?: Core["enumMIMEType"];
/**
* 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.
*
* 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)
*/
ScanDelete?: boolean;
/**
* 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.
*
* In a result message, this field will be left blank, unless the "full" action is requested.
*/
scanData?: string;
scanDataRetrievalState?: Core["enumScanDataRetrievalState"];
/**
* 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.
*/
scanCreated?: string;
};
IdentityDocumentObject: {
/**
* 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.
*/
documentId?: string;
idType: Core["enumIdType"];
/**
* The sub-type of identity document. Very document specific.
*/
idSubType?: string;
/**
* The ISO-3166-alpha3 country code of the issuing national. Once set, this cannot be changed.
*
* See https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes for more
*/
country: string;
/**
* Regional variant of the ID (e.g. VIC drivers licence)
*
* You should always use the local abbreviation for this.
* E.g.
* - VIC for The Australian state of Victoria
* - MA for the US state of Massachusetts
* - etc
*/
region?: string;
/**
* The ID number of the document (if known).
*/
idNumber?: string;
/**
* The expiry date of the document (if known) in YYYY-MM-DD format.
*/
idExpiry?: string;
/**
* The issued date of the document (if known) in YYYY-MM-DD format.
*/
idIssued?: string;
documentStatus?: Core["enumDocumentStatus"];
/**
* 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.
*/
createdFromScan?: boolean;
/**
* 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.
*/
manuallyModified?: boolean;
/**
* 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.
*
* 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)
*/
extraData?: Core["KeyValuePairObject"][];
/**
* 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.
*
* 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
*/
docScan?: Core["ScannedDocumentObject"][];
};
/**
* This is the document that we want to compare to the original toDocument.
*
* In the case of a selfie-check against a drivers licence:
*
* * compareDocument will be the the selfie
* * toDocument will be the drivers licence photo
*/
ComparisonSet: {
compareDocument?: Core["IdentityDocumentObject"];
toDocument?: Core["IdentityDocumentObject"];
};
/**
* 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.
*
* 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.
*
* 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.
*
* The EntityObject can take one of two forms.
*
* - 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.
* - 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.
*
* If you wish to save the entity, use the /entity comments instead to create the entity and attach the document there.
*/
DocumentVerify: {
document?: Core["IdentityDocumentObject"];
entityData?: Core["EntityObject"];
};
/**
* Collection of fraud check results for the entity.
*
* Contains fraud list and/or background result arrays. Other fraud check types will appear over time
*/
FraudCheckResultObject: {
fraudListResults?: Core["ProcessResultObject"][];
fraudBackgroundCheckResults?: Core["ProcessResultObject"][];
};
/**
* Stores the generic results of a process (check, scan, compare, verify, etc)
*/
ProcessResultObject: {
checkId?: Core["CheckIDObject"];
/**
* Short indication of the type of check that was done.
*
* When used as a summary, it will the the checkType that was requested
*
* For granular results, it will be the individual check performed.
*/
checkType?: string;
resultState?: Core["enumCheckResultState"];
/**
* Any additional notes that may relate to the state. These are returned as typed KVPs
*/
resultNotes?: Core["KeyValuePairObject"][];
/**
* The date and time the item was checked to provide this result.
*/
checkDate?: string;
/**
* Confidence in the result on a scale of 0 (no match) to 100 (strong/identical match). Whole integers only.
*
* Negative values are used to indicate untrusted results.
*/
confidenceLevel?: number;
/**
* 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.
*
* Some examples might include:
*
* * Current level of ID checks passed
* * Device ID scores
* * Current PEP/Sanctions/etc checks
* * Jurisdictional risk based on addresses, documents and other KVPs
* * Fraud check results
*
* In this case a higher score is a bad thing. General rule of thumb:
*
* * 0 - 30 = Low Risk
* * 31 - 50 = Medium Risk
* * 50 - 75 = High Risk
* * 75+ = Unacceptable
*/
riskLevel?: number;
/**
* Service provider that performed the check. Basically the name of the connector, without the leading con_
*/
checkPerformedBy?: string;
/**
* 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")
*
* Note, this will actually be normalised by the core service into a standfardised result so that we're not accidentally counting sources twice.
* Original source will then be copied into the KVPs
*/
checkSource?: string;
/**
* 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
*/
providerCheckID?: string;
};
/**
* The result of a scan will contain 4 parts
*
* * The requestid - that's always there, and is the same that was passed in in the header.
*
* * The results of the process and the meta data around it, including confidence levels, service used and the like
*
* * 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.
*
* * Any additional data extracted from the service that does not fit into the standard identity document fields will be placed into the extraData KVPs.
*
* * extractedEntity - the service will attempt to create the basics of an entity's name, address, DoB, gender from the data returned from the scan.
* You can then use this entity data to create a new entity for a wider check if needed.
*
* * Note if you plan on doing this, make sure you include the extractedDocument reference in the "new" entity.
*
* * EXTRA SPECIAL NOTE: If no useful data was returned in the scan, extractedDocument will be left unchanged, and extractedEntity will be left out
*/
DocumentScanResultObject: {
requestId: Core["RequestIDObject"];
extractedDocument?: Core["IdentityDocumentObject"];
extractedEntity?: Core["EntityObject"];
processResult: Core["ProcessResultObject"];
};
/**
* Contains the details of a check on a given data point
*/
DocumentVerificationResultObject: {
/**
* This is a direct copy from the document object passed in for verifcation.
*/
documentId?: string;
processResult?: Core["ProcessResultObject"];
};
/**
* Contains the results of a given document upload.
*/
DocumentVerifyResultObject: {
requestId: Core["RequestIDObject"];
documentVerificationResults?: Core["DocumentVerificationResultObject"];
};
/**
* Contains the details of a comparison between two documents
*/
DocumentComparisonResultObject: {
/**
* This is a direct copy from the compareDocument object passed in the request. You MUST supply this.
*/
compareDocumentId?: string;
/**
* This is a direct copy from the toDocument object passed in the request. You MUST supply this.
*/
toDocumentId?: string;
processResult?: Core["ProcessResultObject"];
};
/**
* Contains the results of a given document upload.
*/
DocumentCompareResultObject: {
requestId: Core["RequestIDObject"];
documentComparisonResults: Core["DocumentComparisonResultObject"];
};
/**
* Contains the results of a given document upload.
*/
DocumentChecksResultObject: {
requestId: Core["RequestIDObject"];
checkResults?: Core["IdentityDocumentCheckResultObject"];
};
/**
* Contains the individual search results for a document.
*/
DocumentSearchResultListItem: {
confidence?: Core["SearchResultConfidenceObject"];
document?: Core["IdentityDocumentObject"];
};
/**
* Contains the results of a given document search.
*/
DocumentSearchResultObject: {
requestId: Core["RequestIDObject"];
/**
* The list of (potentially) matching documents with confidence levels.
*
* 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.
* 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)
*/
documentSearchResults?: Core["DocumentSearchResultListItem"][];
};
/**
* Utility industry comparison process result object. Used to wrap up industry-specific resultsets.
*/
DocumentIndustryUtilityProcessResultObject: {
industryProcess?: string;
requestId?: Core["RequestIDObject"];
/**
* The document that was used to generate these results.
*/
documentId?: string;
/**
* The utility comparison service can return either an error response or a result.
*
* One of error or result will be returned in this case, the other will either be a nil value, or not supplied.
*/
utilityCompareResult?: {
error?: Core["ComparisonError"];
result?: Core["ComparisonResponse"];
};
};
/**
* Utility industry explicit consent response object. Used to wrap up industry-specific resultsets.
*/
DocumentIndustryUtilityConsentResultObject: {
industryProcess?: string;
requestId?: Core["RequestIDObject"];
/**
* The document that was used to generate these results.
*/
documentId?: string;
/**
* The utility consent service can return either an error response or a result.
*
* One of error or result will be returned in this case, the other will either be a nil value, or not supplied.
*/
utilityConsentResult?: {
error?: Core["EICError"];
result?: Core["EICResponse"];
};
};
/**
* Utility industry comparison process result object. Used to wrap up industry-specific resultsets.
*/
DocumentIndustryUtilitySwitchResultObject: {
industryProcess?: string;
requestId?: Core["RequestIDObject"];
/**
* The document that was used to generate these results.
*/
documentId?: string;
/**
* The utility switching service can return either an error response or a result.
*
* One of error or result will be returned in this case, the other will either be a nil value, or not supplied.
*/
utilitySwitchResult?: {
error?: Core["SwitchError"];
result?: Core["SwitchResponse"];
};
};
ComparisonError: {
/**
* The correlationId as passed in the request
*/
correlationId: string;
/**
* Timestamp of when the attempted comparison took place
*/
comparisonDate: string;
/**
* * `1000` - Document not recognised (i.e. not valid pdf or image)
* * `1001` - Bill is not SME or Domestic
* * `1004` - Bill is gas (if to be excluded)
* * `1005` - Template Not Found – The document was a pdf but service did not recognise the uploaded document against any of it’s templates
* * `1008` - Unsupported distributor – bill is from jurisdiction that is unsupported
* * `1009` - Unsupported distributor – bill is from jurisdiction that is unsupported
* * `1030` - Invoice from date is missing
* * `1031` - Invoice to date is missing
* * `1033` - Supply address is missing
* * `1039` - NMI is missing
* * `1041` - Bill is a predictive plan making comparison hard
* * `1044` - Bill is on embedded network
* * `1045` - Incompatible charge item – manual comparison needed
* * `1062` - C&I Bill loaded
* * `1080` - API failed to reconcile bill usually meaning that not all cost items were picked up
*/
errorCode: number;
/**
* Description of error that can be displayed as user feedback. e.g. "Uploaded document not a PDF"
*/
message: string;
/**
* Version of the API on which the error took place. This value should be reported with any issue raised.
*/
version: string;
};
ComparisonResponse: {
/**
* The correlationId as passed in the request
*/
correlationId: string;
/**
* Timestamp of when the comparison took place
*/
comparisonDate: string;
/**
* Array of plans, sorted from best to worst saving, for the uploaded bill
*/
plans: Core["Plan"][];
currentBillData: Core["CurrentBillData"];
/**
* 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.
*/
maximumSaving: number;
defaultOffer: Core["DefaultOffer"];
/**
* Optional disclaimer statment
*/
marketDisclosure?: {
/**
* Name of this section when rendering
*/
name?: string;
/**
* Disclaimer text
*/
value?: string;
};
/**
* Version of the API on which the comparison took place. This value should be reported with any issue raised.
*/
version: string;
};
EICRequest: {
/**
* Correlation ID as passed to comparison request
*/
correlationId: string;
/**
* Unique ID of plan, selected from comparison results
*/
planId: string;
details?: Core["EICDetails"];
};
EICError: {
/**
* The correlationId as passed in the request
*/
correlationId: string;
/**
* * `400` - The request was malformed
* * `422` - Invalid request parameter
*/
errorCode: number;
/**
* Text to provide more details on errorCode
*/
message: string;
/**
* Version of the API on which the EIC request took place. This value should be reported with any issue raised.
*/
version: string;
};
EICResponse: {
/**
* The correlationId as passed in the request
*/
correlationId: string;
plan: Core["Plan"];
/**
* Hierarchical list of objects for rendering EIC statement and Terms and Conditions
*/
eic: Core["DisplayMarkUp"][];
/**
* Version of the API on which the EIC request took place. This value should be reported with any issue raised.
*/
version: string;
};
SwitchRequest: {
/**
* Correlation ID as passed to comparison request
*/
correlationId: string;
details: Core["SwitchDetails"];
/**
* 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.
*/
confirmation?: string[];
};
SwitchError: {
/**
* The correlationId as passed in the request
*/
correlationId: string;
/**
* * `400` - The request was malformed
* * `422` - Invalid request parameter
*/
errorCode: number;
/**
* Text to provide more details on errorCode
*/
message: string;
/**
* Version of the API on which the switch response took place. This value should be reported with any issue raised.
*/
version: string;
};
SwitchResponse: {
/**
* The correlationId as passed in the request
*/
correlationId: string;
/**
* A unique reference for this switch request
*/
reference: string;
/**
* Timestamp of switch request
*/
switchDate: string;
plan: Core["Plan"];
/**
* Hierarchical list of objects for rendering the next steps
*/
nextSteps?: Core["DisplayMarkUp"][];
/**
* Version of the API on which the switch request took place. This value should be reported with any issue raised.
*/
version: string;
};
/**
* All information associated with a given plan
*/
Plan: {
/**
* Unique identifier for this plan. This ID is passed when calling the switch API.
*/
id: number;
/**
* Name of the plan
*/
name: string;
retailer: Core["Retailer"];
/**
* Estimated cost of this plan, based on the usage from uploaded bill, with all conditional discounts applied.
*/
estimatedTotalCost: number;
/**
* 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.
*/
estimatedBaseCost: number;
/**
* The estimated saving the customer could have realised if they had been on this plan during the billing period
*/
estimatedSaving: number;
rates: Core["Rates"];
/**
* The type of energy plan
* * `SR` - Single Rate
* * `TOU` - Time Of Use
*/
type: "SR" | "TOU";
/**
* Link to BPID (Basic Plan Information Document (NSW, SA, QLD, ACT)) or EPFS (Energy Price Fact Sheet (VIC))
*/
url: string;
/**
* Default Offer (DMO/VDO) text to be displayed for this plan
*/
defaultOfferMessage: string;
/**
* Is pay on time required in order to subscribe to this plan
*/
payOnTimeRequired: boolean;
/**
* Is payment by direct debit required in order to subscribe to this plan
*/
directDebitRequired: boolean;
/**
* Conditional discounts that may be applied to plan. These values can be used to modify the estimatedBaseCost for client-side filtering and reordering.
*/
discounts?: {
/**
* Pay On Time discount amount
*/
payOnTime?: number;
/**
* Direct Debit discount amount
*/
directDebit?: number;
};
benefits?: Core["Benefits"];
contract?: Core["Contract"];
conditions?: Core["Conditions"];
paymentOptions?: Core["NameValue"];
greenOptions?: Core["NameValue"];
feesAndCharges?: Core["Fees"];
};
/**
* Data from uploaded bill
*/
CurrentBillData: {
/**
* Customer name.
*/
accountName: string;
/**
* Account (Billing) address.
*/
accountAddress: string;
/**
* Supply address. This may differ from account address if bill payers address is different from account address.
*/
supplyAddress: string;
retailer: Core["Retailer"];
/**
* National Meter identifier (NMI)
*/
nmi: string;
/**
* Customer account number
*/
accountNumber: string;
/**
* * `E` - Electricity
*/
fuelType: "E";
/**
* Start date for billing period
*/
billDateFrom: string;
/**
* End date for billing period
*/
billDateTo: string;
/**
* Number of days in billing period (billDateTo - billDateFrom)
*/
days: number;
/**
* 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.
*/
actualPlanTotalCost: number;
/**
* Total value of all unconditional discounts applied to the bill
*/
discount: number;
/**
* Rates and charges for each period on the bill
*/
periods: Core["Period"][];
/**
* 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.
*/
solar?: {
/**
* Solar rate from bill
*/
rate?: number;
/**
* Solar value from bill
*/
value?: number;
}[];
};
/**
* 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.
*/
DefaultOffer: {
/**
* Title/Header for the default offer when presented to the user.
*/
name?: "Default Market Offer (DMO)" | "Victorial Default Offer (VDO)";
/**
* Text containing the default offer comparison with the current plan
*/
value?: string;
};
/**
* Retailer details
*/
Retailer: {
/**
* Unique identifier for the retailer
*/
id: number;
/**
* Name of the retailer
*/
name: string;
/**
* Contact phone number for retailer customer support/queries
*/
phone?: string;
/**
* Contact email address for retailer cusomter support/queries
*/
email?: string;
};
/**
* Plan benefits to be displayed to customer
*/
Benefits: {
/**
* Name of this section when rendering
*/
name: string;
/**
* Discounts available for this plan
*/
discounts: {
/**
* Name of the discount.
*/
name?: string;
/**
* Value of the discount. This can either be a dollar amount (starting with $) or a percentage (ending with %)
*/
value?: string;
/**
* Conditions applied to discount
*/
condition?: string;
}[];
/**
* Inventives available for this plan
*/
incentives: {
/**
* Name of the incentive
*/
name?: string;
/**
* Description of incentive
*/
value?: string;
}[];
};
/**
* Plan conditions to be displayed to customer
*/
Conditions: {
name: string;
value: Core["NameValue"][];
};
/**
* Plan fees and other charges to be displayed to customer
*/
Fees: {
/**
* Name of this section when rendering
*/
name: string;
/**
* Fee information for the plan
*/
value: Core["NameValueDescription"][];
/**
* Any additional fee information for the plan
*/
additionalFeeInfo?: string;
};
/**
* Plan rates to be displayed to customer
*/
Rates: {
/**
* Name of this section when rendering
*/
name?: string;
/**
* Rates for this plan
*/
value?: Core["NameValueUnit"][];
};
/**
* Plan contract details to be displayed to customer
*/
Contract: {
/**
* Name of this section when rendering
*/
name: string;
/**
* Contract details for this plan
*/
value: Core["NameValue"][];
};
RateValue: {
rate: number;
value: number;
};
/**
* Name/Value pair
*/
NameValue: {
name: string;
value: string[];
};
/**
* Name/Value pair
*/
NameValueDescription: {
name: string;
value: string;
description: string;
};
NameValueUnit: {
/**
* Name of this property.
*/
name: string;
/**
* Value of this property.
*/
value: string;
/**
* Unit of measure for this property.
*/
unit: string;
};
/**
* Rates, by period, for the uploaded bill
*/
Period: {
peak?: Core["RateValue"];
peakStep1?: Core["RateValue"];
peakStep2?: Core["RateValue"];
peakStep3?: Core["RateValue"];
offPeak?: Core["RateValue"];
offPeakStep1?: Core["RateValue"];
offPeakStep2?: Core["RateValue"];
shoulder?: Core["RateValue"];
controlledLoad1?: Core["RateValue"];
controlledLoad2?: Core["RateValue"];
supplyCharge?: Core["RateValue"];
};
DisplayMarkUp: {
/**
* Type of component to be used for rendering
*/
type?: "text" | "unorderedlist" | "orderedlist";
/**
* Text to display as header/title of value.
*/
name?: string;
/**
* 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).