UNPKG

openapi-directory

Version:

Building & bundling https://github.com/APIs-guru/openapi-directory for easy use from JS

1 lines 258 kB
{"openapi":"3.0.0","info":{"contact":{"email":"dev-support@frankiefinancial.com"},"description":"------ \nThis API allows developers to integrate the Frankie Financial Compliance Utility into their applications. The API allows:\n - Checking name, address, date of birth against national databases\n - Validating Australian driver's licences, passports, medicare, visas and other Australian national ID documents\n - Validating Australian electricity bills\n - Validating NZ driver's licences\n - Validating Chinese bank cards and national ID card\n - Validating International passports and national ID documents\n - PEP, Sanctions, Watchlist and adverse media checking\n - Australian visa checks \n - Fraud list and fraud background checks\n - ID validation and selfie check comparisons.\n \n------ \n \nIndustry specific services\n\n - Comparing Australian electricity retailers for a better deal.\n\n------ \n \nKYB specific services\n\n - Query organisation ownership\n - Perform KYC & AML checks on shareholders, beneficial owners and office bearers.\n - Query credit score and credit reports\n - International company searches\n - International company profiles\n \n------ \nThe full version of this documentation along with supplemental articles can be found here:\n - https://apidocs.frankiefinancial.com/\n\nThe traditional Swagger view of this documentation can be found here:\n - https://app.swaggerhub.com/apis-docs/FrankieFinancial/kycutility\n\n------ \nSandbox base URL is:\n - https://api.demo.frankiefinancial.io/compliance/v1.2\n \n - We do have an old sandbox at https://sandbox.frankiefinancial.com/compliance/v1.2 but this has been retired.\n\n - All calls are the same as production, only with canned data. \n\n - Full Swagger definition, along with test data for playing in the sandbox can be obtained once initial commercial discussions have commenced.\n\n - Production and optional UAT access will be opened up only to those with a signed commercial contract.\n \n------ \nContact us at hello@frankiefinancial.com to speak with a sales rep about issuing a Customer ID and Sandbox api key.\n","title":"Frankie Financial API","version":"1.5.3","x-apisguru-categories":["financial"],"x-origin":[{"format":"swagger","url":"https://app.swaggerhub.com/apiproxy/registry/FrankieFinancial/kycutility/1.5.3","version":"2.0"}],"x-providerName":"frankiefinancial.io"},"security":[{"api_key":[]}],"tags":[{"description":"Service status functions you can use to make sure things are up and running.","name":"Status"},{"description":"Operations on specific ID documents, specific to an entity (people).","name":"Document"},{"description":"Operations on specific entities (people / companies / etc)","name":"Entity"},{"description":"Operations on entities that are set to type ORGANISATION","name":"Business"},{"description":"Industry-specific operations on documents and entities.","name":"Industry"},{"description":"These are callback/webhook functions. If you've requested a callback, this will be what is sent to you. You do not need to implement these as a client, but you do need to be able to accept them as a server.","name":"Push Notification"},{"description":"Functions used for retrieving past results","name":"Retrieve"},{"description":"Operations on entities to set specific flags and states.","name":"Flag"}],"paths":{"/business/international/profile":{"post":{"description":"Using the Company Code retrieved from the search response (see above) you can pull back the details of the company.\n\nThe Frankie platform will save the details of the response as an ORGANISATION type entity with the profile attached as a report which you can potentially re-retrieve later if you wish.\n","operationId":"InternationalBusinessProfile","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternationalBusinessProfileCriteria"}}},"description":"The country, cxompany code and optional registry of the organisation to be queried.\n","required":true},"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessInternationalBusinessProfileResponse"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"405":{"$ref":"#/components/responses/respErr405NotAllowed"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"},"503":{"$ref":"#/components/responses/respErr503NoSourcesAvailable"}},"summary":"Retrieve a business profile from any country (AUS included).","tags":["Business"]}},"/business/international/search":{"post":{"description":"Search for a given business name or business number across international business registers.\n\nThe search will return a list of matching companies that you can then potentially query using the international profile query (see below).\nEach search result will have a CompanyCode that you use to retrieve the specific company details using the profile function.\n\nThis process will not save any details from the search results.\n","operationId":"InternationalBusinessSearch","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternationalBusinessSearchCriteria"}}},"description":"The country, name or business number of the organisation to be queried.\n","required":true},"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessInternationalBusinessSearchResponse"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"405":{"$ref":"#/components/responses/respErr405NotAllowed"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"},"503":{"$ref":"#/components/responses/respErr503NoSourcesAvailable"}},"summary":"Search for a business from any country (AUS included).","tags":["Business"]}},"/business/ownership/query":{"post":{"description":"Process a request for ownership details for an Australian organisation.\n\nSee below for more generic international queries.\n\nAt a minimum, you just need to supply an ACN or ABN and we can retrieve the rest.\nYou also have the option of supplying company name, type (as per ABR types) and both ABN/ACN and we'll attempt to verfy that that data matches what is on record before attempting any further verification and validation.\n\nKYC/AML for a selection of entities associated with an organisation and/or the organisation itself can optionally be run, but not by default. To enable KYC/AML checks one or more entity categories must be provided. If such a list of entity categories is given then default checks based on configuration will be run for those categories. If a check type is also provided in the request then that type will be used for entities representing individual entities, and the AML subset of that check will be used for organisations if any. Specifying a check type without an entity category will result in an error.\n\nNOTE: This query will always run asynchronously and you will only ever be returned a 202 ACCEPT response, or an error.\nResults will be pushed using the Push Notification API below and you will be able to retrieve the results using the Retrieve API.\n\nWe have supplied the 200 response in the definition below only so what will be sent to you when you later retrieve the details.\n\nMore details on how to use this API and interpret the results can be found here:\n \n https://apidocs.frankiefinancial.com/docs/which-function-to-use\n","operationId":"BusinessOwnershipQuery","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/BusinessCheckTypeQueryParameter"},{"$ref":"#/components/parameters/BusinessEntityCategoriesQueryParameter"},{"$ref":"#/components/parameters/BusinessCheckResultLevelQueryParameter"},{"$ref":"#/components/parameters/BusinessValidationParameter"},{"$ref":"#/components/parameters/BusinessGenerateReportQueryParameter"},{"$ref":"#/components/parameters/BusinessIncludeHistoricalQueryParameter"},{"$ref":"#/components/parameters/BusinessOnlyProfileQueryParameter"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipQuery"}}},"description":"The organisation to be queried. An entity object that must have an organisation object with at least one organisation number.\n","required":true},"responses":{"200":{"$ref":"#/components/responses/respOk200AcceptedOwnershipQuery"},"202":{"$ref":"#/components/responses/respOk202AcceptedOwnershipQuery"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"405":{"$ref":"#/components/responses/respErr405NotAllowed"},"422":{"$ref":"#/components/responses/respErr422Unprocessable"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"},"503":{"$ref":"#/components/responses/respErr503NoSourcesAvailable"}},"summary":"Create Business Entity and Query UBO (AUS Only)","tags":["Business"]}},"/business/reports":{"post":{"description":"NOTE: Australian companies ONLY.\nCreate or find and update an ORGANISATION type entity, then run the requested reports.\nReports include:\n - Credit Report\n - Credit Score\n\nAt a minimum, you just need to supply an ACN and/or ABN and an entity type set to ORGANISATION. Alternatively the entity ID of an existing ORGANISATION entity gan be given in the request body\n\nNote: these reports are different to the Ultimate Beneficial Owner and Business Detail requests - these reports are independent data and analysis over and above company information and verification details.\n\nYou can request multiple reports to be run at once and they will be returned as a group (where feasible).\n\nIf a report can only be generated over time, then a temporary response will be returned and a webhook notification will be pushed later once the report has been completed.\n","operationId":"RunBusinessReports","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/BusinessReportTypesQueryParameter"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityObject"}}},"description":"The organisation to be queried. An entity object that must have be an ORGANISATION type with at least one organisation number (ABN or ACN).\n","required":true},"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessBusinessReportsResponse"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"405":{"$ref":"#/components/responses/respErr405NotAllowed"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"},"503":{"$ref":"#/components/responses/respErr503NoSourcesAvailable"}},"summary":"Run Report(s) against a new or existing organisation entity (AUS Only).","tags":["Business"]}},"/business/{entityId}/verify":{"post":{"description":"Run KYC/AML for a selection of entities associated with an organisation and/or the organisation itself based on a previous ownership query.\nBy default AML will be checked for just the organisation itself. If a list of entity categories is given then default checks based on configuration will be run for those categories. If a check type is also provided in the request then that type will be used for entities representing individual entities, and the AML subset of that check will be used for organisations if any.\nIf no ownership query has been run, then this operation will return an error.\n","operationId":"CheckOrganisation","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/EntityIDPathParameter"},{"$ref":"#/components/parameters/BusinessCheckTypeQueryParameter"},{"$ref":"#/components/parameters/BusinessEntityCategoriesQueryParameter"},{"$ref":"#/components/parameters/BusinessCheckResultLevelQueryParameter"},{"$ref":"#/components/parameters/BusinessGenerateReportQueryParameter"}],"responses":{"202":{"$ref":"#/components/responses/respOk202AcceptedCheckOrganisation"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"405":{"$ref":"#/components/responses/respErr405NotAllowed"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"},"503":{"$ref":"#/components/responses/respErr503NoSourcesAvailable"}},"summary":"Run KYC/AML Checks on Organisation and/or Associated Individuals.","tags":["Business"]}},"/document":{"post":{"description":"Create a document object. A document object can be used to simply store data around a given identity or similar document. You can attach scans, PDFs, photos, videos, etc to the objectif you wish and these may be processed later (using the /scan function) to extract useful information. Or you can manually supply the extracted information if you choose.\nDocument objects can be used to create an entity, based on extracted or supplied data; or it may be attached to an existing entity, either directly or through an ID check.\n","operationId":"CreateDocument","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"}],"requestBody":{"$ref":"#/components/requestBodies/IdentityDocumentObject"},"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessDocument"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"415":{"$ref":"#/components/responses/respErr415UnsupportedMediaType"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"}},"summary":"Create New Document.","tags":["Document"]}},"/document/new/compare":{"post":{"description":"Creates a new document from the \"toDocument\" parameter (usual rules apply in that it must be a valid document, with no existing documentId).\nThe compareDocument can be an existing documentId, or it too can be new as well.\n * If existing (i.e. a valid DocumentId is supplied), it will be updated with any new data supplied before being sent to the comparison process.\n * If new, then a new document will be created too, and the ID returned in the result.\n \nThe document scans are then sent for processing and comparison, such as comparing a selfie-video against a drivers licence photo.\n\n* NOTE: This is NOT the verification process (see /document/verify)\n\n* NOTE: This is NOT the OCR data extraction process either (see /document/scan)\n","operationId":"CompareDocument","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/BackgroundHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComparisonSet"}}},"description":"Contains the document (compareDocument) we want to compare (toDocument)\n","required":true},"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessDocumentCompare"},"202":{"$ref":"#/components/responses/respOk202AcceptedDocument"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"405":{"$ref":"#/components/responses/respErr405NotAllowed"},"415":{"$ref":"#/components/responses/respErr415UnsupportedMediaType"},"422":{"$ref":"#/components/responses/respErr422Unprocessable"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"},"503":{"$ref":"#/components/responses/respErr503NoSourcesAvailable"}},"summary":"Create Document and Compare to Original.","tags":["Document"]}},"/document/new/scan":{"post":{"description":"Create a document object. This is then processed to extract useful information and create an entity; or it may be attached to an entity, either directly or through an ID check.\nThe service will attempt to extract relevant data from any/all uploaded images/documents and will place those in the extraData KVP block.\n","operationId":"CreateScanDocument","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/BackgroundHeader"}],"requestBody":{"$ref":"#/components/requestBodies/IdentityDocumentObject"},"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessDocumentScan"},"202":{"$ref":"#/components/responses/respOk202AcceptedDocument"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"415":{"$ref":"#/components/responses/respErr415UnsupportedMediaType"},"422":{"$ref":"#/components/responses/respErr422Unprocessable"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"}},"summary":"Create and OCR Scan Document.","tags":["Document"]}},"/document/new/utility/process/compare":{"post":{"description":"Create a document object. This is then processed to extract useful information, just like a normal OCR scan. The service will then push the document through an industry specific comparison process, where the details are used to find a better plan, based on the bill.\n\n100's of datapoints are accurately extracted from the uploaded document. This data is then used to compare the bill against the whole market. A personalised comparison is returned that is a best fit for the customer's energy profile.\n\n* NOTE: It is expected that the type of document being uploaded will be a PDF and the idType is UTILITY_BILL. (These values will be set automatically if not supplied). \n You can optionally include the utility name (e.g. Origin Energy) in the idSubType if you wish.\n","operationId":"CreateProcessIndustryUtilityDocument","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/BackgroundHeader"},{"$ref":"#/components/parameters/PlanLimitQueryParameter"}],"requestBody":{"$ref":"#/components/requestBodies/IdentityDocumentObject"},"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessIndustryUtilityDocument"},"202":{"$ref":"#/components/responses/respOk202AcceptedDocument"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"415":{"$ref":"#/components/responses/respErr415UnsupportedMediaType"},"422":{"$ref":"#/components/responses/respErr422Unprocessable"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"}},"summary":"Create Document and Run Utility Price Comparison.","tags":["Industry"]}},"/document/new/verify":{"post":{"description":"Send the document to an external service to have the detailed verified.\n\nFor example, we could send through the details of a drivers licence to be checked against a national database.\n\n* NOTE: This is NOT the OCR data extraction process (see /document/scan)\n* NOTE: This is NOT the comparison process (see /document/compare)\n","operationId":"VerifyDocument","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/BackgroundHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentVerify"}}},"description":"The document and (possibly) its associated scans to be verified.\n\nThere is also an entity object (normally stripped back to it's bare minimum) that can be used to provide supporting data, such as name, address, etc. The entity object may be empty/\n","required":true},"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessDocumentVerify"},"202":{"$ref":"#/components/responses/respOk202AcceptedDocument"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"405":{"$ref":"#/components/responses/respErr405NotAllowed"},"415":{"$ref":"#/components/responses/respErr415UnsupportedMediaType"},"422":{"$ref":"#/components/responses/respErr422Unprocessable"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"},"503":{"$ref":"#/components/responses/respErr503NoSourcesAvailable"}},"summary":"Create and Verify Document.","tags":["Document"]}},"/document/search":{"post":{"description":"\nSearch for an existing document that matches the criteria supplied\n\nThere are of course limits to what can be searched upon. For a document search to work, you must supply at a minimum:\n\n * idType\n * country\n * idNumber\n\nThe service will return a list of matching documents with confidence levels.\n\nIf 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.\nIf 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)\n\nNote: At this time, we cannot perform searches on document scans. But, you can supply extraData KVPs if they're known. These will help doublecheck search results with ambiguous results.\n","operationId":"SearchDocument","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityDocumentObject"}}},"description":"A document object with the parameters you wish to search on.\n","required":true},"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessDocumentSearch"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"405":{"$ref":"#/components/responses/respErr405NotAllowed"},"415":{"$ref":"#/components/responses/respErr415UnsupportedMediaType"},"422":{"$ref":"#/components/responses/respErr422Unprocessable"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"},"503":{"$ref":"#/components/responses/respErr503NoSourcesAvailable"}},"summary":"Search For a Document !! EXPERIMENTAL !!","tags":["Document"]}},"/document/{documentId}":{"delete":{"description":"Mark this document as deleted. It will then become effectively invisible to all queries, but will be available in anonymised form for a past check.\n","operationId":"DeleteDocument","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/BackgroundHeader"},{"$ref":"#/components/parameters/DocumentIDPathParameter"}],"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessDocumentDelete"},"202":{"$ref":"#/components/responses/respOk202AcceptedDocument"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"}},"summary":"Delete Document.","tags":["Document"]},"get":{"description":"Query the current status and details of a given documentId.\n","operationId":"QueryDocument","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/DocumentIDPathParameter"}],"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessDocument"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"}},"summary":"Retrieve Document Details","tags":["Document"]},"post":{"description":"Using a previously uploaded but incomplete document, you can optionally supply updated details (such as corrections on a previous scan), along with one or more additional ID scans (e.g. additional pages).\n","operationId":"UpdateDocument","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/BackgroundHeader"},{"$ref":"#/components/parameters/DocumentIDPathParameter"},{"$ref":"#/components/parameters/NoInvalidateQueryParameter"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityDocumentObject"}}},"description":"The document to be updated","required":true},"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessDocument"},"202":{"$ref":"#/components/responses/respOk202AcceptedDocument"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"405":{"$ref":"#/components/responses/respErr405NotAllowed"},"415":{"$ref":"#/components/responses/respErr415UnsupportedMediaType"},"422":{"$ref":"#/components/responses/respErr422Unprocessable"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"},"503":{"$ref":"#/components/responses/respErr503NoSourcesAvailable"}},"summary":"Update Existing Document.","tags":["Document"]}},"/document/{documentId}/checks":{"get":{"description":"Get the complete list of all checks that have been performed upon a given document, including the checks that have been performed by others (in those cases you just get the id, status and date run, none of the details).\n","operationId":"QueryDocumentChecks","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/BackgroundHeader"},{"$ref":"#/components/parameters/DocumentIDPathParameter"}],"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessDocumentChecks"},"202":{"$ref":"#/components/responses/respOk202AcceptedDocument"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"405":{"$ref":"#/components/responses/respErr405NotAllowed"},"422":{"$ref":"#/components/responses/respErr422Unprocessable"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"}},"summary":"Retrieve Document Verification Check Details.\n","tags":["Document"]}},"/document/{documentId}/compare":{"post":{"description":"Send the attached document scans to an external service for processing and comparison, such as comparing a selfie-video against a drivers licence photo.\n\n* NOTE: This is NOT the verification process (see /document/verify)\n\n* NOTE: This is NOT the OCR data extraction process either (see /document/scan)\n","operationId":"UpdateCompareDocument","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/BackgroundHeader"},{"$ref":"#/components/parameters/DocumentIDPathParameter"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComparisonSet"}}},"description":"Contains the document (compareDocument) we want to compare (toDocument).\n\nIn this case, the toDocument should be left blank, and is assumed to be \"this\" document\n","required":true},"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessDocumentCompare"},"202":{"$ref":"#/components/responses/respOk202AcceptedDocument"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"405":{"$ref":"#/components/responses/respErr405NotAllowed"},"415":{"$ref":"#/components/responses/respErr415UnsupportedMediaType"},"422":{"$ref":"#/components/responses/respErr422Unprocessable"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"},"503":{"$ref":"#/components/responses/respErr503NoSourcesAvailable"}},"summary":"Update Document and Compare to Original.","tags":["Document"]}},"/document/{documentId}/full":{"get":{"description":"Query the current status and details of a given documentId. Also returns all document file data, not just the metadata.\n","operationId":"QueryDocumentFull","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/DocumentIDPathParameter"}],"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessDocument"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"}},"summary":"Retrieve Document and Scan Data","tags":["Document"]}},"/document/{documentId}/scan":{"post":{"description":"Using a previously uploaded but potentially incomplete document, you can optionally supply updated details (such as corrections on a previous scan), along with one or more additional ID scans (e.g. additional pages). Includes a follow-on action as well initiating OCR processing proceedures immediately.\nThe service will attempt to extract relevant data from any/all uploaded images/documents and will place those in the extraData KVP block.\n","operationId":"UpdateScanDocument","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/BackgroundHeader"},{"$ref":"#/components/parameters/DocumentIDPathParameter"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityDocumentObject"}}},"description":"The entity to be optionally updated, then processed.\nIf updating a document, you only need to populate the fields you're actually adding/updating.\n","required":true},"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessDocumentScan"},"202":{"$ref":"#/components/responses/respOk202AcceptedDocument"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"405":{"$ref":"#/components/responses/respErr405NotAllowed"},"415":{"$ref":"#/components/responses/respErr415UnsupportedMediaType"},"422":{"$ref":"#/components/responses/respErr422Unprocessable"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"},"503":{"$ref":"#/components/responses/respErr503NoSourcesAvailable"}},"summary":"Update and OCR Scan Document","tags":["Document"]}},"/document/{documentId}/utility/process/compare":{"post":{"description":"Using a previously uploaded but incomplete document, you can optionally supply updated details or simply request that the document be re-processed through the industry comparison service. \n\n100's of datapoints are accurately extracted from the uploaded document. This data is then used to compare the bill against the whole market. A personalised comparison is returned that is a best fit for the customer's energy profile.\n\n* NOTE: It is expected that the type of document being uploaded will be a PDF and the idType is UTILITY_BILL. (These values will be set automatically if not supplied). \n You can optionally include the utility name (e.g. Origin Energy) in the idSubType if you wish.\n","operationId":"UpdateProcessIndustryUtilityDocument","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/BackgroundHeader"},{"$ref":"#/components/parameters/DocumentIDPathParameter"},{"$ref":"#/components/parameters/PlanLimitQueryParameter"}],"requestBody":{"$ref":"#/components/requestBodies/IdentityDocumentObject"},"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessIndustryUtilityDocument"},"202":{"$ref":"#/components/responses/respOk202AcceptedDocument"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"415":{"$ref":"#/components/responses/respErr415UnsupportedMediaType"},"422":{"$ref":"#/components/responses/respErr422Unprocessable"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"}},"summary":"Update Document and Run Utility Price Comparison.","tags":["Industry"]}},"/document/{documentId}/utility/process/consent":{"post":{"description":"Using a previously uploaded and processed document, the user must provide explicit consent before being able to call the /switch function. \n\nBefore entering into a contract with a new energy retailer, consumers are first obliged to review the retailer's contractual terms and conditions, confirm they understand these terms as well as give explicit, informed consent (EIC) for the switch to occur. This API call retrieves all information that must be displayed in order for a compliant EIC to be captured from a consumer.\n\n* NOTE: as part of this call, you must provide a previously returned corellationId that is associated with this document and the returned plan options. Failure to do so will result in an error response.\n","operationId":"UpdateProcessIndustryUtilityDocumentConsent","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/BackgroundHeader"},{"$ref":"#/components/parameters/DocumentIDPathParameter"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EICRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessIndustryUtilityConsent"},"202":{"$ref":"#/components/responses/respOk202AcceptedDocument"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"415":{"$ref":"#/components/responses/respErr415UnsupportedMediaType"},"422":{"$ref":"#/components/responses/respErr422Unprocessable"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"}},"summary":"Provide Explicit Consent to Switch Utility Plans.","tags":["Industry"]}},"/document/{documentId}/utility/process/switch":{"post":{"description":"Using a previously uploaded and processed document, the user must provide explicit consent before being able to call the /switch function. \n\nThe bill payer has uploaded their current bill, selected a new plan, accepted the terms and conditions and given their consent for the switch to occur. This API call will finalise the switch request and send all the customers data along with the requested plan to the selected retailer.\n\n* NOTE: as part of this call, you must provide a previously returned corellationId that is associated with this document and the returned plan options. Failure to do so will result in an error response.\n","operationId":"UpdateProcessIndustryUtilityDocumentSwitch","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/BackgroundHeader"},{"$ref":"#/components/parameters/DocumentIDPathParameter"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwitchRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessIndustryUtilitySwitch"},"202":{"$ref":"#/components/responses/respOk202AcceptedDocument"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"415":{"$ref":"#/components/responses/respErr415UnsupportedMediaType"},"422":{"$ref":"#/components/responses/respErr422Unprocessable"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"}},"summary":"Initiate Switching of Utility Plan.","tags":["Industry"]}},"/document/{documentId}/verify":{"post":{"description":"Using a previously uploaded but potentially incomplete document, you can optionally supply updated details (such as corrections on a previous scan), along with one or more additional ID scans (e.g. additional pages). Includes a follow-on action as well initiating verification proceedures immediately.\n\nSends the updated document to an external service to have the detailed verified.\n\nFor example, we could send through the details of a drivers licence to be checked against a national database.\n\n* NOTE: This is NOT the OCR data extraction process (see /document/scan)\n* NOTE: This is NOT the comparison process (see /document/compare)\n","operationId":"UpdateVerifyDocument","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/BackgroundHeader"},{"$ref":"#/components/parameters/DocumentIDPathParameter"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentVerify"}}},"description":"The document and (possibly) its associated scans to be verified.\n\nThere is also an optional entity object (normally stripped back to it's bare minimum) that can be used to provide supporting data, such as name, address, etc. The entity object may be empty, and is not processed or stored in any way.\n","required":true},"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessDocumentVerify"},"202":{"$ref":"#/components/responses/respOk202AcceptedDocument"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"405":{"$ref":"#/components/responses/respErr405NotAllowed"},"415":{"$ref":"#/components/responses/respErr415UnsupportedMediaType"},"422":{"$ref":"#/components/responses/respErr422Unprocessable"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"},"503":{"$ref":"#/components/responses/respErr503NoSourcesAvailable"}},"summary":"Update and Verify Document.","tags":["Document"]}},"/entity":{"post":{"description":"Create an entity object. An entity object can be used to simply store data around a given identity. You can attach ID documents, scans, PDFs, photos, videos, etc to the entity if you wish and these may be processed later (using the /scan function) to extract useful information. Or you can manually supply the information if you choose.\n\nEntity objects can be used to run a check, using the data held in the records.\n","operationId":"CreateEntity","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityObject"}}}},"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessEntity"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"415":{"$ref":"#/components/responses/respErr415UnsupportedMediaType"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"}},"summary":"Create New Entity.","tags":["Entity"]}},"/entity/new/idvalidate/getToken":{"post":{"description":"Create an entity object and if successful, obtain a token for use in an ID Validation service SDK (web or native app) \n\nAt a minimum, you will need to supply:\n - the entity familyName. \n - the entity givenName\n \n For best results, you should gather the DoB, address, ID document details as well before calling the initProcess function.\n\nSPECIAL NOTE 1: Tokens have a limited lifespan, typically only 1 hour. Make sure you've used it or you will need to create another using update version of this function. \n\nSPECIAL NOTE 2: This function will need to be followed up with a call to /entity/{id}/idvalidate/initProcess once you've collected all your data in your app/web capture process.\n","operationId":"CreateEntityGetIDVToken","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityIDVDetailsObject"}}},"description":"The entity and required data to generate an IDV token","required":true},"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessEntityIDV"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"405":{"$ref":"#/components/responses/respErr405NotAllowed"},"415":{"$ref":"#/components/responses/respErr415UnsupportedMediaType"},"422":{"$ref":"#/components/responses/respErr422Unprocessable"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"},"503":{"$ref":"#/components/responses/respErr503NoSourcesAvailable"}},"summary":"Create Entity and Get IDV Token","tags":["Entity"]}},"/entity/new/verify/pushToMobile":{"post":{"description":"Create an entity object and begin the process of verification after pushing a message to a mobile number. \nThe entity will receive a link on their mobile and will then be guided through a series of steps to capture and OCR scan their ID, and perform a selfie comparison. We'll then attempt to verify the data received and push a notification back to the calling customer.\n\nAt a minimum, you will need to supply the name and a MOBILE_PHONE document type. \n\nSPECIAL NOTE: This will only ever return a 202 response if successfully accepted. You will need to ensure your account is configured for push notifications. Contact developer supprt to arrange this.\n","operationId":"CreateCheckEntityPushToMobile","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/BackgroundHeader"},{"$ref":"#/components/parameters/NoPushQueryParameter"}],"requestBody":{"$ref":"#/components/requestBodies/EntityCheckDetailsObject"},"responses":{"202":{"$ref":"#/components/responses/respOk202AcceptedEntity"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"405":{"$ref":"#/components/responses/respErr405NotAllowed"},"415":{"$ref":"#/components/responses/respErr415UnsupportedMediaType"},"422":{"$ref":"#/components/responses/respErr422Unprocessable"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"},"503":{"$ref":"#/components/responses/respErr503NoSourcesAvailable"}},"summary":"Create Entity and Push Self-Verification Link","tags":["Entity"]}},"/entity/new/verify/{checkType}/{resultLevel}":{"post":{"description":"Create an entity object. An entity object can be used to simply store data around a given identity. You can attach ID documents, scans, PDFs, photos, videos, etc to the entity if you wish and these may be processed later (using the /scan function) to extract useful information. Or you can manually supply the information if you choose.\n\nIf the entity is successfully created, take the details and documents provided, and set about verifying them all.\nSo for example, you might extract:\n\n* The name from the entity.name object\n* The address from the entity.address object\n* The DoB..\n\nAll documents that are attached to the entity will also be verified (if possible).\n\nYou can also specify the level of detail returned using the resultLevel parameter. You can choose \"summary\" or \"full\". For the \"profile\" check type you can also select \"simple\" to only get the entity profile result.\n\nSPECIAL NOTE: A \"Full\" response includes details of all checks and how they map against each element, along with all the details of pep/sanctions/etc checks too.\n\nYour account also needs to be configured to support a full response too (talk to your account manager for more information). If you're not configured for full responses, we'll only return summary level data regardless.\n","operationId":"CreateCheckEntity","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"},{"$ref":"#/components/parameters/BackgroundHeader"},{"$ref":"#/components/parameters/CheckTypeParameter"},{"$ref":"#/components/parameters/ResultLevelPathParameter"}],"requestBody":{"$ref":"#/components/requestBodies/EntityCheckDetailsObject"},"responses":{"200":{"$ref":"#/components/responses/respOk200SuccessCheckEntity"},"202":{"$ref":"#/components/responses/respOk202AcceptedEntity"},"400":{"$ref":"#/components/responses/respErr400BadRequest"},"401":{"$ref":"#/components/responses/respErr401Unauthorized"},"404":{"$ref":"#/components/responses/respErr404CannotReturnResponse"},"405":{"$ref":"#/components/responses/respErr405NotAllowed"},"415":{"$ref":"#/components/responses/respErr415UnsupportedMediaType"},"422":{"$ref":"#/components/responses/respErr422Unprocessable"},"429":{"$ref":"#/components/responses/respErr429TooManyRequests"},"500":{"$ref":"#/components/responses/respErr500UnexpectedError"},"503":{"$ref":"#/components/responses/respErr503NoSourcesAvailable"}},"summary":"Create and Verify Entity","tags":["Entity"]}},"/entity/search":{"post":{"description":"\nSearch for an existing entity that matches the criteria supplied\n\nCriteria are supplied in the form of a populated entity object, with the name/address/DoB details supplied.\nYou can also include documents that can be used to further refine your search (see the /document/search function for minimum requirements for a document search)\n\nAt an absolute minimum, you must supply one of the following combinations:\n\n * name.familyName +\n * name.givenNames\n \n or\n \n * name.familyName +\n * one identityDocument object (that meets minimum criteria)\n \nObviously, the more data you provide, the better search results we can provide.\n\nThe service will return a list of matching entities with confidence levels.\n\nIf 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.\n\nIf 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)\n\nNote: This functionality must be enabled by Frankie administrators. Please contact your sales representative if you wish to discuss this.\n","operationId":"SearchEntity","parameters":[{"$ref":"#/components/parameters/CustomerIDHeader"},{"$ref":"#/components/parameters/CustomerChildIDHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityObject"}}},"description":"An entity objec