Recipes
📔
Retrieve Journey Result
Open Recipe

Usage

Use this API to get the final verification result.

Base URL by Region

The base URL you should use depends on the region where your services are hosted. Below are the available URLs for each region. By default, the EU region URL is used.

Authentication

Please refer to the API Credentials and Authentication page for more detailed information

Table of content

In this page you'll find a detailed documentation about the following models:

Response Model

Here is a sample top-level response you'll get from this API

{
	"journey_id": "12d62f80e15c1d50ff23db54",
	"customer_id": "123628d8-e456-4375-8ff6-6e84f54f8743",
	"journey_definintion_id":"6e84f54f8743-f345-7523-7ed4-342528d8",
	"flow_id":"6e84f54f8743-f345-7523-7ed4-342528d8",
	"reference_number": "abc-123-FE13",
	"start_time": "2023-01-26T08:12:00.962462",
	"end_time": "2023-01-26T08:13:00.454774",
	"system_decision": "Refer",
	"manual_decision": null,
	"final_decision":"Refer",
	"model_version": "3.0",
	"documents": {"document_id": DocumentModel},
	"selfie": {SelfieModel},
	"rule_results": {"rule_id": RuleResultModel},
	"applicant": {ApplicantModel},
	"aml":{AMLModel}, 
	"screening_checks":{"model_id": ScreeningChecksModel}
}
PropertyDescription
journey_idType: string, not_nullable
The unique identifier of the journey. This identifier is used across IDWise systems to refer to the journey and is auto-generated at the first moment the user starts the journey.
customer_idType: string, not nullable
The identifier of your account within the system. All journeys within your account share this identifier.
journey_definintion_idType: string, not nullable
The identifier of the flow that this journey belongs to
flow_idType: string, not nullable
The identifier of the flow that this journey belongs to
reference_numberType: string, nullable
This is a custom identifier you could attach to the journey when you start it and it will be available as part of the result graph. This is useful for example to link an identifier of the user in your system to the journey or journeys made by this user thus making it easier locate the user in your system after they finish the journey (this used to be called user_id).
start_timeType: datetime, not nullable
The date time stamp when this journey was initiated. This is formatted as a standard ISO 8601 Date Time string commonly used in JSON.
end_timeType: datetime, nullable
The date time stamp when this journey was finished. This field can be null if the journey is not finished yet. The format of this field is also ISO 8601 Date Time string like in start_time field.
system_decisionType: string (enum), not nullable
An enum value (encoded as a string) representing the outcome of the journey as evaluated by IDWise system. This decision accounts for the result of steps and the business rules configured on the journey to reach a conclusion on whether the journey passes automatically or needs referral to manual review. Check the following table for more details.
manual_decisionType: string (enum), nullable
An enum value (encoded as a string) representing the manual review decision.
final_decisionType: string (enum)
Is the latest decision so far. It will contain the system_decision (Complete or Refer) if there has not been manual review done. Otherwise it will contain the manual_decision (Approved, Rejected).
model_versionType: string, nullable
Represents which version of the result graph this journey follows. Different versions of the graph might have different elements.
documentsType: object, nullable
The processing results of documents submitted as part of the journey.
This is a dictionary (JSON object) where the key represents the step_id associated with a given document and the value represents the document object itself.
See the following sections for details on the format of document elements.
selfieType: object, nullable
Represents the processing results of the live selfie taken during the journey. If the journey is configured with no Selfie step then this element will be null.
[See the following sections for details on the format of the selfie element](Selfie Model).
rule_resultsType: object, nullable
The business rules that were applied on this journey and their outcomes. These rules can configure the acceptance criteria for a journey to pass. Examples include:
Acceptable types of documents to be provided, ensure the documents are non-expired.
applicantType: object, nullable
Common data representing the applicant (user) who made the journey.
Check the following section for detailed information about the applicant object.
amlType: object, nullable
Holds the results of carrying out AML (Anti-Money Laundering) and background checks. If the journey is not configured with AML checks enabled then this element will be null.
See the following sections for details on the format of the aml elements
screening_checksType: object
An object that contains multiple checks performed on provided documents or selfie images against government databases. Each element within screening_checks represents a specific type of check.
See the following sections for details on the format of the screening_checks elements.

System Decision Enum

Enum ValueDescription
IncompleteThe journey is not completed yet so a decision cannot be drawn yet.
CompleteThe journey was successfully completed and passed all configured checks and rules. If the journey status is marked as Complete, it should be considered as passed.
ReferThe journey was completed but has failed one or more of the configured checks or rules.

Manual Decision Enum

Enum ValueDescription
Approvedif the journey approved by the reviewer.
Rejectedif the journey rejected by the reviewer.

Document Model

This object represents the set of documents in this journey. Each child element inside documents contains the results of processed document that was submitted as part of the journey.

Document processing result includes the type of the document, the data extracted from the document and detailed validation check details carried out while processing the document.

This is an example for documents element (with detailed explanation below):

"documents": {
	"0": {
		"step_title": "UAE Passport",
		"progress": "Completed",
		"has_passed_rules": true,
		"document_type": "Passport",
		"document_subtype:"",
		"issuing_country": "United Arab Emirates",
		"issuing_country_code": "ARE",
		"extracted_fields": {
			"First Name": {
				"value": "Sami",
				"type": "string"
			}
		},
		"validation_result": {
			"validation_outcome": "Failed",
			"validation_checks": [
				{
					"name": "Document Classification (Front)",
					"description": "Verifies supportability of the type of document and its ability to be fully authenticated.",
					"result": "Failed",
					"result_description": "The document type could not be determined"
				}
			]
		},
		"face_match_result": {
			"is_matched": true,
			"score": 99,
			"images": [
				{
					"image_path": "625602fb54c...............1f15b957",
					"image_source": "Selfie"
				}
			]
		},
		"images": {
			"front_side_image_path": "98682fb54c...............1f181b938",
			"back_side_image_path": null,
			"front_side_cropped_image_path": "95602fb54...............81f181b9",
			"back_side_cropped_image_path": null,
			"portrait_image_path": "98682fb54c...............1bfcf12",
		}
	}
}

PropertyDescription
step_titleType:: string, nullable
UI specific name of the step for this document it is helpful to distinguish if you have multiple documents (e.g UAE Driving Licence or International Passport).
progressType:: string (enum), not nullable
Reflects the step progress, its value could be one of the following:

- Not Started: Indicates that at least one attempt, including both the front and back sides (if the back side is needed), has not been submitted.
- Started: Indicates that at least one attempt has been submitted.
- Completed: Indicates that all sides of the document have been processed and the step is concluded, meaning the step has either passed or reached the maximum number of retries.
- Skipped: Indicates that the step has been skipped. There are two ways to skip step by complete the journey before submitting any attempts to a step or by calling Process Journey Step with is_skipped flag, or from the SDK you can call skipStep method
has_passed_rulesType:: boolean, not nullable
Reflects the document validation, and rules. Its value could be either true or false.
document_typeType:: string, nullable
The type of this document. The most used document type values are: Passport, Driving Licence, Visa, Identity Card, Bank Statement and Utility Bill, there are some other documents supported as well.
document_subtypeType: string, nullable
The subtype of this document. The are many possible values e.g. Current Account Statement, Water Bill. When this field is used, it should not be utilised alone but in combination with document_type field above to fully qualify the subtype of the document. It might be empty if the document type doesn't have any subtypes.
issuing_countryType:: string, nullable
The name of the country which issued this document.
issuing_country_codeType:: string, nullable
The 3-letter ISO country code of the country which issued this document.
extracted_fieldsType:: dict[str, object], nullable
A dictionary (aka object) containing the data fields that were read from the document.
Check the following model that shows the model of each element.
validation_resultType:: list[object], nullable
A list of the checks that were run to check the authenticity of the document.
Please refer to the Validation Result Field Model for more details
face_match_resultType:: object, nullable
An object that represents the face match result between the portrait photo on the document with the submitted selfie image.
Plese refer to the Face Match Result Field Model page for more details
imagesType:: object, nullable
An object that of image identifiers for both input and output images.
Check the images field model

Extracted Field Model

PropertyDescription
The dictionary keyType:: string, not nullable
Check the Fields Extracted by IDWise page
typeType:: string (enum), nullable
An enum representing the type of the value.
Possible values are : `string, image`.
valueType:: string
The field value encoded as a string. For all date fields, the value will be encoded in ISO 8601 date format. if the field is of type image (e.g Signature field), value will be null.

Validation Result Field Model

PropertyDescription
nameType: string, not nullable
The name of the validation check.
descriptionType: string, nullable
A user friendly explanation.
resultType: string(enum), not nullable
The result of this individual validation check; it can be either Passed, Failed or Undetermined (which means the check couldn’t be carried out, for example if the prerequisites of the check were not present).
result_descriptionType: string, nullable
A user-friendly explanation of the result (e.g. why the check failed or passed, or not carried away).

Face Match Result Field Model

PropertyDescription
is_matchedType: boolean, not nullable
The conclusive face matching decision, it can be either true or false.
scoreType: number, nullable
The matching score between the images.
imagesType: list(object), nullable
an array of the images that are used in face matching. where each element has the following properties:

- image_path: Used to download that image using the GetImage endpoint
- image_source: The source of the image, can take either Selfie or Document

Images Field Model

The table below lists the image paths for each document step. All images can be retrieved using the Get Image API, which accepts the image path as a parameter and returns the binary image file.

PropertyDescription
front_image_pathType: string, nullable
The path of the front image was submitted by the user.
back_image_pathType: string, nullable
The path of the back image was submitted by the user. if the back image wasn’t submitted the value will be null.
front_cropped_image_pathType: string, nullable
The path of the front cropped image.
back_cropped_image_pathType: string, nullable
The path of the back cropped image. if the back image wasn’t submitted the value will be null
portrait_image_pathType: string, nullable
The path of the portrait photo on the id document, if the document is not recognised the path will be null.

Selfie Model

PropertyDescription
statusType: string (enum), not nullable
The conclusive status of the selfie step value could be Complete, Refer, and Not Started.
This element is the main element to be used to confirm whether the selfie passed or not.
is_liveType: boolean, nullable
Indicates whether the submitted selfie image is live or not. The liveness is already reflected on status element.
liveness_status_codeType: string (enum), nullable
The error code that indicates the cause of the liveness check failure.
Please refer to the list of all possible error codes available for your reference.
image_pathType: string, nullable, the path to the selfie image, you can use this API to download the image.
cropped_image_pathType: string, nullable, the path to the cropped selfie image, you can use this API to download the image.
video_pathType: string, nullable the path for the video recording for the selfie step. you can use this API to download the video

Liveness Status Codes

CodeDescription
FACE_TOO_CLOSEFace is too close to camera.
FACE_CLOSE_TO_BORDERFace is too close to the border of the image.
FACE_CROPPEDFace is cropped, and can be reduce the accuracy of the liveness detection because the face is not complete.
FACE_IS_OCCLUDEDPart of the face is covered by mask or another objects and it can reduce accuracy of the liveness detection.
FACE_NOT_FOUNDFailed to detec a face.
TOO_MANY_FACESToo many faces detected.
FACE_TOO_SMALLThe face area is not big enough to do the face liveness analysis.
BAD_QUALITY_IMAGEImage quality is too low for accurate analysis, possibly due to low resolution or blurring.
FACE_ANGLE_TOO_LARGEThe face is tilted or rotated beyond acceptable angles for reliable analysis.
NOT_LIVEThe ML model determined that the face does not appear to be live.

Rule Result Model

This object contains the business rule results. business rules are set of checks that can be defined by customers to apply some constraints on the onboarding journeys like what are acceptable document types for each step or prevent a user from submitting expired documents ..etc.

This is an example for the rule result object

"rule_results": {  
	"proof_policy": {  
		"name": "Proof Policy",  
		"result": "Passed",  
		"description": "Confirms that the document provided is of the accepted types for this journey step",  
		"information": "The document type and issuing country of the document provided by the user is checked against a list of allowed document types and/or issuing countries configured as accepted on this step. If the step is configured to accept a driving licence only but the user provided another type of document, this check would fail",  
		"tips": "Check the type of the document provided and the issuing country and confirm if they are accepted for this type of application",  
		"details": [
      RuleResultDetailsModel
		]  
	}  
}
PropertyDescription
The dictionary keyType: string, not nullable
Represents the rule's key. You may check the following table for a list of the rules.
nameType: string, not nullable
The rule name.
resultType: string (enum), not nullable
An enum value (encoded as a string) summaries the result of applied rules on each document, It can be either Passed or Failed., CouldNotApply
descriptionType: string, nullable
The description of the applied rule.
informationType: string, nullable
The information on the applied rule.
tipsType: string, nullable
An advice for the user on how to handle the result of this rule.
detailsType: object of RuleResultDetailsModel
Provides a list of the checks that were run on different provided documents and data.

Rule Result Details Model

Here is a sample object for the rule result details model, check the table below for more detailed information:

{
  "title": "Passport - Front",
  "result": "Passed",
  "result_description": "Document is confirmed to be of one of the accepted types",
  "reference_object": {
    "object_key": "documents",
    "instance_key": "passport_step"
  }
}
PropertyDescription
titlethe title of the check that presents the name of the document and the side to which the rule was applied against.
resultthe result of the check it can be either Passed or Failed.
result_descriptionA tailored description massage for each result status.
reference_objectShows the related object for the check. Where it has 2 keys:

- object_key: represents the referenced object type (for example: document)
- instance_key: the referenced object instance key (for example the document's id)

Supported Rules (Checks)

📘

Note

The rules you will get depend on the configuration of your flow. So some of these rules might not apply in your case.

KeyTitleDescriptionApplies to
document_validationAuthentic DocumentConfirms the authenticity of the submitted documents, likely free of any evidence of manipulation.POI, POA
same_subjectSame PersonVerifies that all steps in the journey belong to the same person.POI, Selfie
no_duplicate_documentsUnique DocumentConfirms that the same document is not submitted more than once.POI, POA
no_duplicate_applicantUnique ApplicantConfirms whether the applicant is matched with already existing applicants.
no_aml_recordsDatasets (e-KYC/AML)Confirms whether the applicant has records in electronic Know Your Customer (e-KYC) and Anti Money Laundering (AML) databases, screening for Politically Exposed Persons (PEPs) and Sanctions.
unrecognized_documentRecognised DocumentVerifies the recognition of the submitted documents as a precisely supported document type.POI, POA
proof_policyAccepted Document PolicyConfirms that the document provided is of the accepted type for each particular journey step.POI, POA
expired_documentExpired DocumentConfirms that the documents provided are not expired.POI
under_ageUnder AgeVerifies that the applicant is over minimum age (i.e 18 years old).POI
approved_nationalityApproved NationalityVerifies whether the nationality of the document holder is in the list of allowed nationalities.POI
selfie_livenessSelfie LivenessVerifies if the selfie step has passed and selfie belongs to Live person.Selfie
device_intelligenceDevice IntelligenceVerifies the device's integrity throughout the onboarding process. For more details on device intelligence checks, refer to the documentation.
document_qualityDocument QualityAssesses the quality of submitted documents to ensure they meet required standards for clarity, and readability. if the document is not readable it will fail.POI, POA
mandatory_information_presenceMandatory Information PresenceEnsures that all required fields are present in the document. this applicable only for Proof of Address documentsPOA
outdated_proof_of_addressOutdated Proof of AddressEnsures that the Proof of Address document is not outdated.POA
geolocationLocation ChecksEvaluates the proximity between the user's IP address geo-location and the address on the document, ensuring the two are in sufficient proximity. Applicable for Proof of Address.POA

POI: Stands for Proof of Identity.

POA: Stands for Proof of Address.


Applicant Field Model

Contains general information for the applicant.

PropertyDescription
applicant_idType: string, not nullable
This represents the identifier of the applicant (not the journey), this can be the same for different journeys.
profile_image_pathType: string, nullable
The path of the profile image.
full_nameType: string, nullable
The full name of the applicant.
personal_numberType: string, nullable
The personal number of the applicant.
birth_dateType: string - ISO Format, nullable
(e.g. 1980-01-01)
The birth date of the applicant.

AML Field Model

Shows the applicant’s records over Anti Money Laundering (AML) databases if exist. Here are the attributes that constitute an aml element:

PropertyDescription
applicabilityType: string (enum), not nullable
Shows the applicability of this check for the journey and it can be.
Check the following table about the enum values
matchesType: array [object], nullable
Presents the list of matched records in the datasets for the applicant, each record of matches has the following sub-elements
Check the AML Match Model for detailed information.

AML Applicability Enum

Enum ValueDescription
Not Ready YetWhen the journey is not completed.
SkippedWhen the personal information is not extracted properly.
DisabledWhen this check is not enabled.
ApplicableWhen all prerequisites for this check are satisfied and the check was performed. if there are matches will be reflected in matches element.

AML Match Model

PropertyDescription
nameType: string, not nullable
The name of the profile found in the associated database entry.
countriesType: string, nullable
The list of countries from the addresses and nationalities of this profile. It has the format of 2-letter ISO country code.
datesOfBirthType: string, nullable
Date in either YYYY-MM-DD or YYYY-MM or YYYY ISO format.
notesType: string, nullable
Notes.
datasetsType: array[string], nullable
The name of databases in which this match was found.
This could be one of the following values:

- Politically Exposed Person
-Sanctions
-Adverse Media
-Regulatory Enforcement List
-People of Interest
-Disqualified Director
-Insolvency
-Fitness Probity
aliasesType: array[object], nullable
Other names of the profile
addressesType: array[object], nullable
The list of addresses.
sexType: string, nullable
The gender of the person.
scoreType: float, not nullable
The search results are ranked based on a score included in the metadata. This score does not represent an absolute ranking of the matches but rather serves to order the search results and provide a relative indication of their relevance.
resourceIdUnique Id for individual match. Used for whitelist and match status update.

Screening Check Model

The screening_checks object contains all the checks performed on provided documents or selfie images against government databases. Each element within screening_checks represents a specific type of check.

"screening_checks": {
	"additional_face_db": {		
		"face_match_results": [
			{
				"is_matched": true,
				"score": 99,
				"images": [
					{
						"image_path": "95602fb54cfa6c15d477a44781f171b8",
						"image_source": "Selfie"
					}, 
					{
						"image_path": "05602fb54cfa6c15d477a44781f171b0",
						"image_source": "AdditionalFace"
					}
				]				
			}
		]
	}
}

In the example provided, the additional_face_db element represents a check where a submitted selfie image is compared to facial features stored in the government database. The additional_face_db element contains the following nested elements:

PropertyDescription
The dictionary keyType: string, not nullable
Represents the applied screening check id
The dictionary valueEach screening check has its own model, please check the listed checks below for detailed information.

Here is a list of the supported screening checks:

additional_face_db screening check

This check where a submitted selfie image is compared to facial features stored in the government database.

PropertyDescription
face_match_resultsType: array of objects
This element is an array of objects that contains the results of the facial recognition check. In the example provided, there is only one object in the array.

face_match_results Field Model

PropertyDescription
is_matched:Type: boolean
Indicates whether the submitted selfie image matches the facial features stored in the government database.
scoreType: integer
Indicates the confidence level of the facial recognition check. The higher the value, the higher the confidence level.
imagesType: array of objects
Contains information on the images that used in the face matching. each object contains the following elements:

- image_path: This element is a string value that serves as the image identifier. It can be used to retrieve the image through the Image Retrieval API.
- image_source: This element is a string value that indicates the source of the submitted image. In the example provided, the source is Selfie or AdditionalFaces.
Language
Credentials
Basic
base64
:
Click Try It! to start a request and see the response here!