Document Capture

Enroll

Estimated reading: 9 minutes 348 views

Enrollment Workflow Overview

There are two main ways of initiating an enrollment using document a document :

  • Initiating enrollment via a QR code scan
  • Initiating enrollment from the client application

Important Note

An enrollment with document capture requires both a face capture and a document capture. The face of the document capture is matched against the face taken at face capture to ensure the registering party is the same person.

The process involves 6 distinct steps:

  1. verify session token
  2. get public face key
  3. begin enrollment
  4. add device
  5. add face
  6. add document OCR

Base URL

www.awareid.aware-apis.com

Enrollment Step 1 - Get Access Token

  1. Our first step is to retrieve an “access_token”. This token will be used in our next api call to retrieve an enrollment token to proceed with enrollment.

POST /auth/realms/{{customer_name}}-consumers/protocol/openid-connect/token
Content-Type: 'application/x-www-form-urlencoded',

"client_id": client_id
"client_secret": client_secret
"scope": openid
"grant_type" : client_credentials

<aside> 💡 This is the only call whose content type of this call is “application/x-www-form-urlencoded”

</aside>

Response for openid-connect

STATUS CODE 200
{
    "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJCY2IxNXZJQkZsY2JYazVmQUdJZFZXV2pTUEtTaWpsazNydmFwMHp0ekN3In0.eyJleHAiOjE2NzM5OTExMjksImlhdCI6MTY3Mzk5MDgyOSwianRpIjoiN2MzYmY1MmItNjdlMC00ODNlLWFhZjAtYjlkNWJhODE3ZWJiIiwiaXNzIjoiaHR0cHM6Ly9hd2FyZWlkLWRldi5hd2FyZS1hcGlzLmNvbS9hdXRoL3JlYWxtcy9hbmRyYWUtY29uc3VtZXJzIiwic3ViIjoiOTU3ZWMyYmYtZTczOS00YjFjLWEyN2QtMTczMjQzMDIyYTE5IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiYmltYWFzLWIyYyIsImFjciI6IjEiLCJzY29wZSI6Im9wZW5pZCIsImNsaWVudElkIjoiYmltYWFzLWIyYyIsImNsaWVudEhvc3QiOiIzOC4xNDAuNTkuMjI2IiwiY2xpZW50QWRkcmVzcyI6IjM4LjE0MC41OS4yMjYifQ.OzggQ--Gl4w3NWZPg1BukkEg0fmsSyGgN-ag8eW0FARWl0Ic5fkrnrEdnIgsq5Molq0R52oe4Hy-8Tp4cOn9iCD51kPCPfTt15zVBIAYOvb5M5XZ0uPTygh02KjuFqsxIhbhH8CCUjHkpu3OhoWByc8bC8c9D_cFp3BFE-XIhNPaPxXdTLZOcJOqpdSVxsgxB66-xukI7AA8PWt10huO47l6TSBSnJIjUxNbEqR48ILfnkYY2bmyfoo-laKDv9XSSZ8hXU9sDkiGfpXOl112_f3L1sc6n1-UbRTJGFMd4fgntuanwEvN68TsyS5pz0izGlW-1T3fFJ3D2pGPefsWNA",
    "expires_in": 300,
    "refresh_expires_in": 0,
    "token_type": "Bearer",
    "id_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJCY2IxNXZJQkZsY2JYazVmQUdJZFZXV2pTUEtTaWpsazNydmFwMHp0ekN3In0.eyJleHAiOjE2NzM5OTExMjksImlhdCI6MTY3Mzk5MDgyOSwiYXV0aF90aW1lIjowLCJqdGkiOiJkYWNiNTc1NS1jMGEyLTQxZTEtYjMwMi05ZGEzOWRiNGNiYmUiLCJpc3MiOiJodHRwczovL2F3YXJlaWQtZGV2LmF3YXJlLWFwaXMuY29tL2F1dGgvcmVhbG1zL2FuZHJhZS1jb25zdW1lcnMiLCJhdWQiOiJiaW1hYXMtYjJjIiwic3ViIjoiOTU3ZWMyYmYtZTczOS00YjFjLWEyN2QtMTczMjQzMDIyYTE5IiwidHlwIjoiSUQiLCJhenAiOiJiaW1hYXMtYjJjIiwiYXRfaGFzaCI6IlcwbXNUU05WQUo1MG9oQ2JOR3dlTmciLCJhY3IiOiIxIiwiY2xpZW50SWQiOiJiaW1hYXMtYjJjIiwiY2xpZW50SG9zdCI6IjM4LjE0MC41OS4yMjYiLCJjbGllbnRBZGRyZXNzIjoiMzguMTQwLjU5LjIyNiJ9.MOgJ3giF0ikQnUAOBgK6eHpC0Tz3pCjhTX4IjHSjh3kzxx0KCLiWd494Fl3JSHiyvnNP7Ty1SXl4Bhq19f7y_lpGp4yLkbV9I1xsfC7m2D-EIf73D1LEluf1y97ISbh8668VqnGRG8U1FtXuwQGPZb7cgMiTbprECwLFj44_vM2qmLxFpOkOuVaqPmpgjt6MAmUbcWV8GDMAdxVnlZDZuzFkwOlb6S_WypNSYKHA6TFIe_FsA2EoxMu_9MAP3OLX7LIwX3jYIsT4z-TnUmyKC5RFzx6oc9D9Fr2eSTRBxC6QKGJrFAPt40p9_U3YFFi6VpzaGK9YQvCvdw70CVBe5Q",
    "not-before-policy": 0,
    "scope": "openid"
}

Enrollment Step 2 - Initiate An Enrollment

  1. With the method type we start onboarding with accessToken, sessionToken, apikey
POST /onboarding/enrollment/enroll
Authorization: 'Bearer AccessToken'
apikey: 'apikey'

{    
		"username":  "username",
		"firstName": "first name", //optional
		"lastName": "last name" //optional 
		"email": "user email", 
		"phoneNumber": "user phonenumber"
}

Response - Initiate An Enrollment

STATUS CODE 200
{
    "enrollmentToken": "enrollmentToken",
    "userExistsAlready": false,
    "requiredChecks": [
        "addDevice",
        "addFace",
	"addDocument"
    ]
}

Enrollment Step 3 - Add device

The device ID is checked when performing an authentication to confirm the device enrolled is the same as the device attempting.

This can be retrieved in Android by using the following code

Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);
POST /onboarding/enrollment/adddevice
Authorization: 'Bearer AccessToken'
apikey: 'apikey'

{
    "enrollmentToken": "enrollmentToken",
    "deviceId": "deviceID"
}

Response for add device

{
    "enrollmentStatus": 1,
    "registrationCode": ""
}

From here the response will include a registration code and enrollment status.

There are 3 enrollment statuses:

  • 0 = Enrollment Failed
  • 1 = Enrollment Pending
  • 2 = Enrollment Complete

Enrollment Step 4 - Add face sample and check if sample belongs to a live person

The add face API call requires the json package generated by the Face SDK.

POST /onboarding/enrollment/addFace
Authorization: 'Bearer AccessToken'
apikey: 'apikey'

{
    "enrollmentToken": "enrollmentToken",
    "faceLivenessData": 
       {
         "video": {
        "workflow_data": {
            "workflow": "hotel2",
            "rotation": 0,
            "frames": [
	"data":"face package data generated by face sdk",
	"data":"face package data generated by face sdk",
	"data":"face package data generated by face sdk"
						]
        },
        "meta_data": {
            "client_device_brand": "Unknown",
            "username": "username",
            "client_version": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.66"
        },
        "client_version": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.66"
    }
  }
}

Response for add face sample

The response from the enrollment call returns:

  • Liveness Result
    • This is a boolean value.
    • returns true if the sample is assessed to be a live sample
    • returns false is the sample is assessed to not be live
  • Enrollment Status
    • 0 = failed
    • 1 = pending
    • 2 = success
  • Registration Code
    • this code is used in the re-enrollment process
  • Face Liveness Result
    • Broken down into several fields giving feedback on the liveness score
STATUS CODE 200
{
    "livenessResult": true,
    "enrollmentStatus": 1,
    "registrationCode": "LLXL2N",
    "faceLivenessResults": {
        "video": {
            "liveness_result": {
                "decision": "LIVE",
                "feedback": [],
                "score_frr": 1.1757098732441127
            }
        }
    }
}

Enrollment Step 5 - Validate Document Type (Only used if sending images)

POST /onboarding/enrollment/validateDocumentType
Authorization: 'Bearer AccessToken'
apikey: 'apikey'

{
  "lightingScheme": 6,
  "image": "/9j/4AAQS ...",
  "format": ".jpeg"
}

Response - Validate Document Type

STATUS CODE 200
{
  "validDocument": true,
  "nextpageExpected": true,
  "rfidPresence": 0,
  "mrzPresence": false,
  "documentName": "United States - Massachusetts Driving License (2004)",
  "documentID": "1234567890",
  "fidType": 0,
  "fidTypeId": "49",
  "rotated180": false,
  "icaoCode": "USA",
  "year": "2014",
  "countryName": "United States"
}

Enrollment Step 6 - Add Document

POST /onboarding/enrollment/addDcoumentOCR
Authorization: 'Bearer AccessToken'
apikey: 'apikey'

{
      "documentsInfo": {
        "documentPayload": {
          "request": {"data": jsonData, "vendor": "REGULA"}
        },
        "processParam": {"alreadyCropped": true}
      },
      "enrollmentToken": enrollmentToken
    }

Response - Add Document

STATUS CODE 200

{
  "enrollmentStatus": 1,
  "documentVerificationResult": true,
  "registrationCode": "289794",
  "matchResult": true,
  "matchScore": 100,
  "retryDocumentCapture": true,
  "ocrResults": {
    "documentType": "United States - Massachusetts Driving License (2004)",
    "documentTypeId": "1234567890",
    "fidType": 0,
    "fidTypeId": "49",
    "overallResult": "OK",
    "overallResultInfo": {
      "numberOfImages": 2,
      "imagePairValid": true,
      "analysisEngineErrorCodes": [
        "OCR_NULL"
      ],
      "fieldErrorCodes": [
        "MRZ_NONE"
      ]
    },
    "fieldType": [
      {
        "name": "Issuing State Code",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "USA",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 1,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Document #",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "DL Number",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 2,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Date of expiry",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "VALIDATE_TRUE",
          "visual": "Expiration Date here",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 3,
        "overallResult": "OK"
      },
      {
        "name": "Date of issue",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "Issue Date here",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 4,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Date of birth",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "DOB here",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 5,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Surname",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "Last Name here",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 8,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Given names",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "First Name here",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 9,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Sex",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "M",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 12,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Height",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "176 Cms",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 13,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Eyes Color",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "Brown",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 15,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Address",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "Home Address here",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 17,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "DL Class",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "D",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 20,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "DL Endorsed",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "NONE",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 21,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "DL Restriction Code",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "NONE",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 22,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Surname And Given Names",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "First Name and Last Name here",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 25,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Issuing State",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "United States",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 38,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Street",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "Home Address",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 76,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "City",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "BOSTON",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 77,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Jurisdiction Code",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "MA",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 78,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Postal Code",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "01876-9854",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 79,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Record created",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "2018-07-18T00:00:00.000Z",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 175,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Age",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "33",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 185,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Revision Date",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "2016-02-22T00:00:00.000Z",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 270,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Document discriminator",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "01282020 Rev 02222016",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 334,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Months to expire",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "VALIDATE_TRUE",
          "visual": "32",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 364,
        "overallResult": "OK"
      },
      {
        "name": "Age at issue",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "33",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 522,
        "overallResult": "UNDEFINED"
      },
      {
        "name": "Years since issue",
        "fieldResult": {
          "isMrzStatusValid": "NOT_VALIDATED",
          "isBarcodeStatusValid": "NOT_VALIDATED",
          "mrz": "",
          "mrzVisualCompareValid": "NOT_COMPARED",
          "isVisualStatusValid": "NOT_VALIDATED",
          "visual": "2",
          "barcode": "",
          "mrzBarcodeCompareValid": "NOT_COMPARED",
          "visualBarcodeCompareValid": "NOT_COMPARED"
        },
        "typeId": 523,
        "overallResult": "UNDEFINED"
      }
    ],
    "mrzPresence": false,
    "rfidPresence": 0,
    "signatureImage": "ew0KICAgICJ2aWR...",
    "portraitImage": "ew0KICAgICJ2aWR...",
    "authenticityResult": {
      "authenticityImagePatternCheck": {
        "securityElements": [
          {
            "result": "OK",
            "percentValue": 93,
            "expectedImagePattern": "Base64 Image",
            "lightIndex": 6,
            "fragmentArea": {
              "top": 23,
              "left": 47,
              "bottom": 82,
              "right": 139
            },
            "locatedImageFragment": "Base64 Image",
            "diagnoseCode": 1,
            "elementType": 0
          }
        ],
        "overallResult": "OK"
      },
      "overallResult": "OK"
    }
  }
}
CONTENTS