Retrieve and Understand the Result#
The result of the verification needs to be collected on the server side. The result is available in the Dashboard, via the API, or via Webhooks. For testing it may be easier to use the API to retrieve the results by querying the status of an applicationID
that has completed in the UI.
For live production scenarios we recommend using the webhooks, as it is the fastest way to get the results and minimizes call overhead.
In both cases the returned data and the JSON structure is the same.
Use API to retrieve results#
A simple way of getting the result is done by querying for the status of the applicationID
. This will return a JSON object with the status of the verification.
curl --location 'https://[PARTNER].sb.getid.dev/api/v1/application/{ApplicationID}' \
--header 'X-API-Key: {YourAPIKey}' \
--header 'Content-Type: application/json'
Verification response#
The response retrieves all information gathered from the application. Notable fields for processing are:
processingState
: The state of the verification process as a string, eitherdone
orprocessing
. If the state isprocessing
, the final result is not yet available.overallResult.status
: The final status of the verification, eitherapproved
,declined
,error
, orneeds-review
.overallResult.concerns
: Array of failed checks if the application is not approved.servicesResults
: Detailed information about the verification services used and their results.
The response also contains URI:s (links) to all the digital content such as images and videos. These should be downloaded separately if wanted. This is described later in the documentation.
Here is an example of a response, some parts have been shortened to make it easier to read
{
"id": "645cae276a9ba02a2daa09ff",
"application": {
"fields": [],
"documents": [
{
"issuingCountry": "unknown",
"documentType": "unknown",
"files": [
{
"id": "645cae2c6a9ba02a2daa1021",
"kind": "front",
"mediaType": "image/jpeg",
"uri": "https://[PARTNER].getid.ee/files/proxy/images/17f70.....jpeg?t=168....442"
},
{
"id": "645cae2c6a9ba02a2daa1022",
"kind": "back",
"mediaType": "image/jpeg",
"uri": "https://[PARTNER].getid.ee/files/proxy/images/fb133......jpeg?t=1683796112029&s=4fb...b247"
}
]
}
],
"selfie": {
"files": []
}
},
"processingState": "done",
"verificationTypes": ["data-extraction"],
"metadata": {
"platform": "web",
"sdkVersion": "v7.1.0",
"ipAddress": "85.253.24.175",
"country": "SWE",
"city": "Stockholm",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",
"savedRequestId": "0092b2d23215236b9e1c876efabadb8ab9b67eb8ebc29edf0ed27e1cadc2c3ed",
"createdAt": "2023-05-11T08:58:15.605Z",
"serverVersion": "v1.4.0",
"livenessSchemaVersion": "0.5",
"locale": "en",
"flowName": "[FLOW]"
},
"additionalFiles": [],
"overallResult": {
"status": "approved",
"comments": [
{
"service": "doc-check",
"status": "approved",
"comment": "No issues found."
}
],
"concerns": [],
"validationDate": "2023-05-11T08:58:19.562Z"
},
"servicesResults": {
"docCheck": {
"serviceType": "doc-check",
"verifier": "Doc-checker",
"comment": "No issues found.",
"processingState": "done",
"status": "approved",
"extracted": {
"ocr": [
{
"category": "Document number",
"content": "SPECI2021",
"contentType": "string"
},
{
"category": "Date of expiry",
"content": "2031-08-02",
"contentType": "date"
}
],
"mrz": [
{
"category": "Issue country",
"content": "NLD",
"contentType": "country",
"valid": true
},
{
"category": "Document number",
"content": "SPECI2021",
"contentType": "string",
"valid": true
}
],
"nfc": [],
"images": [
{
"kind": "front",
"uri": "https://[PARTNER].getid.ee/files/proxy/images/d73c......jpeg?t=1683796112030&s=659....b53"
},
{
"kind": "back",
"uri": "https://[PARTNER].getid.ee/files/proxy/images/d2132.....jpeg?t=1683796112030&s=3d33...4ed"
},
{
"kind": "barcode",
"uri": "https:/[PARTNER].getid.ee/files/proxy/images/3dcb.....jpeg?t=1683796112030&s=a6a02...2c4"
},
{
"kind": "portrait",
"uri": "https://[PARTNER].getid.ee/files/proxy/images/c9d2....jpeg?t=1683796112031&s=70da61...1a8"
},
{
"kind": "signature",
"uri": "https://[PARTNER].getid.ee/files/proxy/images/e000....jpeg?t=1683796112031&s=e2359d...627"
},
{
"kind": "ghost-portrait",
"uri": "https://[PARTNER].getid.ee/files/proxy/images/84ae....jpeg?t=1683796112031&s=25f472...f55"
},
{
"kind": "mrz",
"uri": "https://[PARTNER].getid.ee/files/proxy/images/13f4....jpeg?t=1683796112031&s=1708b1...9f7"
}
]
},
"documentDataChecking": [
{
"equal": true,
"valid": true,
"category": "Document number",
"conflicts": [],
"message": "Value is ok",
"status": "approved",
"ocr": "SPECI2021",
"mrz": "SPECI2021",
"nfc": "",
"barcode": ""
},
{
"equal": true,
"valid": true,
"category": "Date of expiry",
"conflicts": [],
"message": "Value is ok",
"status": "approved",
"ocr": "2031-08-02",
"mrz": "2031-08-02",
"nfc": "",
"barcode": ""
}
],
"dataExtractionConsistency": {
"group": "dataExtractionConsistency",
"description": "Consistency and validity of extracted data",
"considers": [
{
"name": "documentValidation",
"type": "clear",
"status": "approved",
"description": "Data extracted from the document is consistent and valid."
}
]
},
"documentPhotoQuality": {
"group": "documentPhotoQuality",
"description": "Document photo quality",
"considers": [
{
"name": "supportedDocument",
"type": "clear",
"status": "approved",
"description": "Document is supported for check."
}
]
}
}
},
"responseCode": 200
}
Findings as Concerns#
If the verification result in the overallResult.status
is not 'approved', the overallResult.concerns
array above will contain the failed checks. This is useful for understanding why the verification was not approved.
{
"overallResult": {
"status": "declined",
"concerns":[
{
"id":"DC045"
"message":"Found 2 issue(s)."
"service":"doc-check"
"status":"declined"
},
{
"id":"DC047"
"message":"Fields from ocr and mrz have conflict: ke?123457, ke1234572"
"service":"doc-check"
"status":"declined"
},
{
"id":"DC028"
"message":"Digital tampering of a document suspected."
"service":"doc-check"
"status":"declined"
}
]
},
}
Download collected documents via the API#
The response contains the full URI:s to all the digital content such as images and videos. These can be downloaded separately towards the files
endpoint.
Curl example:
curl --location 'https://[yourEnvironment].sb.getid.dev/files/proxy/images/13f4eeb0a573bf6c15cf2954c87a7f6fb7a872d279dbe249f2e1f009c712f8b0.jpeg?t=1683797273107&s=f2988897cb74c858f76c89d81cdb95268adcbdb0de935b3bb145249c1a24c878' \
--header 'x-sdk-key: {SDKKey}' \
--header 'Content-Type: application/json'