Skip to main content

Overview

Three tiers of passport validation are available, from document-only OCR/MRZ validation through to full liveness detection.

Document Only

Validate passport via MRZ/OCR and authenticity checks

Document + Photo

Validate passport and match against a selfie

Document + Photo + Liveness

Full validation with liveness detection

Validate Passport

POST /Citizen/PassportValidation
curl -X POST "https://citizen.uat.securecitizen.cloud/Citizen/PassportValidation" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "ConsentReceived": true,
    "DocumentImage": "<base64_passport_photo_page>",
    "CRef": "REF00001"
  }'

Validate Passport + Photo

POST /Citizen/ValidatePassportAndPhoto
curl -X POST "https://citizen.uat.securecitizen.cloud/Citizen/ValidatePassportAndPhoto" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "ConsentReceived": true,
    "DocumentImage": "<base64_passport_photo_page>",
    "FaceString": "<base64_selfie>",
    "CRef": "REF00001"
  }'

Validate Passport + Photo + Liveness

POST /Citizen/ValidatePassportAndPhotoWithLiveness
curl -X POST "https://citizen.uat.securecitizen.cloud/Citizen/ValidatePassportAndPhotoWithLiveness" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "ConsentReceived": true,
    "DocumentImage": "<base64_passport_photo_page>",
    "FaceString": "<base64_selfie>",
    "CRef": "REF00001"
  }'

Response

{
  "response_object": {
    "ocr_result": {
      "document_number": "A12345678",
      "validation_passed": "valid",
      "comparison_field_list": [
        {
          "field_name": "DOCUMENT_NUMBER",
          "mrz_value": "A12345678",
          "visual_zone_value": "A12345678",
          "mrz_visual_match_ind_tristate": "true",
          "valid_ind_tristate": "true"
        },
        {
          "field_name": "ISSUING_STATE_CODE",
          "mrz_value": "ZAF",
          "valid_ind_tristate": "true"
        },
        {
          "field_name": "DATE_OF_BIRTH",
          "mrz_value": "1990-01-01",
          "valid_ind_tristate": "true"
        },
        {
          "field_name": "SURNAME",
          "mrz_value": "DOE",
          "visual_zone_value": "DOE",
          "mrz_visual_match_ind_tristate": "true",
          "valid_ind_tristate": "true"
        }
      ],
      "image_list": [
        {
          "image_name": "Portrait 1",
          "base64_image": "<base64_portrait>"
        }
      ]
    }
  },
  "result": true,
  "result_code": {
    "name": "Success",
    "id": 0
  },
  "Status": "Success"
}
Passport responses use MRZ (Machine Readable Zone) fields in addition to visual zone and barcode fields. The mrz_value field contains the value extracted from the passport’s MRZ strip.