Skip to main content
POST
/
api
/
v3
/
verifications
/
document-verification
Document Verification
curl --request POST \
  --url https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/document-verification \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "imageFrontSide": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD...",
  "trustFlowId": 0,
  "trustValidationId": "{your_trust_validation_id}"
}
'
{
  "success": true,
  "message": "Document verification processed successfully",
  "data": {
    "processingStatus": "Completed",
    "verification": {
      "recommendedOutcome": "Accept",
      "result": "Pass",
      "certaintyLevel": "High",
      "performedChecks": 16,
      "type": "DetailedCheck"
    },
    "checks": [
      {
        "name": "ExtractedDataCheck",
        "result": "Pass",
        "certaintyLevel": "High",
        "type": "DetailedCheck",
        "checks": [
          {
            "name": "MatchCheck",
            "result": "NotPerformed",
            "matchLevel": "Unknown",
            "type": "TieredCheck",
            "checks": [
              {
                "field": "FirstName",
                "result": "NotPerformed",
                "type": "FieldCheck"
              },
              {
                "field": "LastName",
                "result": "NotPerformed",
                "type": "FieldCheck"
              },
              {
                "field": "FullName",
                "result": "NotPerformed",
                "type": "FieldCheck"
              },
              {
                "field": "Address",
                "result": "NotPerformed",
                "type": "FieldCheck"
              },
              {
                "field": "PlaceOfBirth",
                "result": "NotPerformed",
                "type": "FieldCheck"
              },
              {
                "field": "Race",
                "result": "NotPerformed",
                "type": "FieldCheck"
              },
              {
                "field": "Religion",
                "result": "NotPerformed",
                "type": "FieldCheck"
              },
              {
                "field": "Profession",
                "result": "NotPerformed",
                "type": "FieldCheck"
              },
              {
                "field": "MaritalStatus",
                "result": "NotPerformed",
                "type": "FieldCheck"
              },
              {
                "field": "ResidentialStatus",
                "result": "NotPerformed",
                "type": "FieldCheck"
              },
              {
                "field": "Employer",
                "result": "NotPerformed",
                "type": "FieldCheck"
              },
              {
                "field": "Sex",
                "result": "NotPerformed",
                "type": "FieldCheck"
              },
              {
                "field": "DateOfBirth",
                "result": "NotPerformed",
                "type": "FieldCheck"
              },
              {
                "field": "DateOfIssue",
                "result": "NotPerformed",
                "type": "FieldCheck"
              },
              {
                "field": "DateOfExpiry",
                "result": "NotPerformed",
                "type": "FieldCheck"
              },
              {
                "field": "DocumentNumber",
                "result": "NotPerformed",
                "type": "FieldCheck"
              },
              {
                "field": "PersonalIdNumber",
                "result": "NotPerformed",
                "type": "FieldCheck"
              },
              {
                "field": "DocumentAdditionalNumber",
                "result": "NotPerformed",
                "type": "FieldCheck"
              },
              {
                "field": "DocumentOptionalAdditionalNumber",
                "result": "NotPerformed",
                "type": "FieldCheck"
              }
            ]
          },
          {
            "name": "LogicCheck",
            "result": "Pass",
            "type": "Check",
            "checks": [
              {
                "name": "DateLogicCheck",
                "result": "Pass",
                "type": "Check",
                "checks": [
                  {
                    "name": "DateOfBirthInPastCheck",
                    "result": "Pass",
                    "type": "Check"
                  }
                ]
              },
              {
                "name": "DocumentNumberLogic",
                "result": "Pass",
                "type": "Check"
              }
            ]
          },
          {
            "name": "FieldFormatCheck",
            "result": "Pass",
            "type": "Check",
            "checks": [
              {
                "field": "DateOfBirth",
                "result": "Pass",
                "type": "FieldCheck"
              },
              {
                "field": "DocumentNumber",
                "result": "Pass",
                "type": "FieldCheck"
              },
              {
                "field": "Sex",
                "result": "Pass",
                "type": "FieldCheck"
              }
            ]
          },
          {
            "name": "BarcodeAuthenticity",
            "result": "NotPerformed",
            "matchLevel": "Unknown",
            "type": "TieredCheck",
            "checks": [
              {
                "name": "ContentCheck",
                "result": "NotPerformed",
                "type": "Check"
              },
              {
                "name": "ReadCheck",
                "result": "NotPerformed",
                "type": "Check"
              }
            ]
          },
          {
            "name": "SuspiciousDataCheck",
            "result": "Pass",
            "certaintyLevel": "High",
            "type": "DetailedCheck",
            "checks": [
              {
                "name": "SuspiciousNumberCheck",
                "result": "Pass",
                "certaintyLevel": "High",
                "type": "DetailedCheck"
              },
              {
                "name": "SampleStringCheck",
                "result": "Pass",
                "certaintyLevel": "High",
                "type": "DetailedCheck"
              }
            ]
          },
          {
            "name": "DataIntegrityCheck",
            "result": "Pass",
            "type": "Check"
          },
          {
            "name": "MRZCheck",
            "result": "NotPerformed",
            "type": "Check",
            "checks": [
              {
                "name": "Parsed",
                "result": "NotPerformed",
                "type": "Check"
              },
              {
                "name": "CheckDigits",
                "result": "NotPerformed",
                "type": "Check"
              }
            ]
          }
        ]
      },
      {
        "name": "DocumentLivenessCheck",
        "result": "Pass",
        "type": "Check",
        "checks": [
          {
            "name": "ScreenCheck",
            "result": "Pass",
            "matchLevel": "Level10",
            "type": "TieredCheck"
          },
          {
            "name": "PhotocopyCheck",
            "result": "Pass",
            "matchLevel": "Level10",
            "type": "TieredCheck"
          }
        ]
      },
      {
        "name": "VisualCheck",
        "result": "Pass",
        "type": "Check",
        "checks": [
          {
            "name": "PhotoForgeryCheck",
            "result": "Pass",
            "matchLevel": "Level10",
            "type": "TieredCheck"
          },
          {
            "name": "SecurityFeatures",
            "result": "Pass",
            "matchLevel": "Level10",
            "type": "TieredCheck",
            "details": {
              "Segments": [
                {
                  "result": "Pass",
                  "type": "Rectangle",
                  "bounds": {
                    "x": 0.041353516,
                    "y": 0.019382654,
                    "width": 0.5466787,
                    "height": 0.20280664
                  }
                },
                {
                  "result": "Pass",
                  "type": "Rectangle",
                  "bounds": {
                    "x": 0.5870397,
                    "y": 0.0046767755,
                    "width": 0.15426645,
                    "height": 0.23176001
                  }
                },
                {
                  "result": "Pass",
                  "type": "Rectangle",
                  "bounds": {
                    "x": 0.7454213,
                    "y": 0.029417524,
                    "width": 0.2191328,
                    "height": 0.19485275
                  }
                },
                {
                  "result": "Pass",
                  "type": "Rectangle",
                  "bounds": {
                    "x": 0.09376193,
                    "y": 0.324977,
                    "width": 0.17347312,
                    "height": 0.24438348
                  }
                }
              ]
            }
          },
          {
            "name": "GenerativeAiCheck",
            "result": "NotPerformed",
            "matchLevel": "Unknown",
            "type": "TieredCheck"
          }
        ]
      },
      {
        "name": "DocumentValidityCheck",
        "result": "NotPerformed",
        "type": "Check",
        "checks": [
          {
            "name": "VersionCheck",
            "result": "NotPerformed",
            "type": "Check"
          },
          {
            "name": "ExpiredCheck",
            "result": "NotPerformed",
            "type": "Check"
          }
        ]
      }
    ],
    "processIndicators": [
      {
        "name": "Clarity",
        "type": "ImageQuality",
        "result": "Pass"
      },
      {
        "name": "HandPresence",
        "type": "ScanProcess",
        "result": "Fail"
      },
      {
        "name": "Cropped",
        "type": "ImageQuality",
        "result": "Pass"
      }
    ],
    "extraction": {
      "processingStatus": "AwaitingOtherSide",
      "recognitionStatus": "StageValid",
      "overall": [
        {
          "side": "Unknown",
          "script": "Latin",
          "value": "JOHN DOE",
          "type": "DetailedStringResult",
          "field": "FullName"
        },
        {
          "side": "Unknown",
          "script": "Latin",
          "value": "SAMPLE ADDRESS",
          "type": "DetailedStringResult",
          "field": "Address"
        },
        {
          "originalResult": [
            {
              "side": "Unknown",
              "script": "Latin",
              "value": "900101",
              "type": "DetailedStringResult"
            }
          ],
          "day": 1,
          "month": 1,
          "year": 1990,
          "successfullyParsed": true,
          "filledByDomainKnowledge": false,
          "type": "DetailedDateResult",
          "field": "DateOfBirth"
        },
        {
          "side": "Unknown",
          "script": "Latin",
          "value": "900101-08-5555",
          "type": "DetailedStringResult",
          "field": "DocumentNumber"
        },
        {
          "side": "Unknown",
          "script": "Latin",
          "value": "LELAKI",
          "type": "DetailedStringResult",
          "field": "Sex"
        }
      ],
      "viz": {
        "front": [
          {
            "side": "Front",
            "script": "Latin",
            "value": "JOHN DOE",
            "type": "DetailedStringResult",
            "field": "FullName"
          },
          {
            "side": "Front",
            "script": "Latin",
            "value": "SAMPLE ADDRESS",
            "type": "DetailedStringResult",
            "field": "Address"
          },
          {
            "originalResult": [
              {
                "side": "Unknown",
                "script": "Latin",
                "value": "900101",
                "type": "DetailedStringResult"
              }
            ],
            "day": 1,
            "month": 1,
            "year": 1990,
            "successfullyParsed": true,
            "filledByDomainKnowledge": false,
            "type": "DetailedDateResult",
            "field": "DateOfBirth"
          },
          {
            "side": "Front",
            "script": "Latin",
            "value": "900101-08-5555",
            "type": "DetailedStringResult",
            "field": "DocumentNumber"
          },
          {
            "side": "Front",
            "script": "Latin",
            "value": "LELAKI",
            "type": "DetailedStringResult",
            "field": "Sex"
          }
        ],
        "back": []
      },
      "barcode": [
        {
          "value": "",
          "type": "StringResult",
          "field": "RawDataBase64"
        }
      ],
      "classInfo": {
        "country": "Malaysia",
        "type": "MyKad",
        "region": "None",
        "isoAlpha3CountryCode": "MYS",
        "isoAlpha2CountryCode": "MY",
        "isoNumericCountryCode": "458"
      }
    },
    "images": [
      {
        "name": "FullDocumentFrontImage",
        "base64": "https://storage.googleapis.com/..."
      },
      {
        "name": "FaceImage",
        "base64": "https://storage.googleapis.com/..."
      }
    ]
  },
  "verificationStatus": "VERIFIED",
  "verificationStatusCode": 3,
  "trustFlowId": 0,
  "trustValidationId": "{your_trust_validation_id}",
  "verificationType": "document_verification",
  "metadata": null,
  "createdAt": "2026-06-15 08:14:31+0000"
}
When the request fails validation or image quality checks, the API may return an error whose message matches one of the entries below.
DescriptionMessage
Document uploaded is not an imageThe image front side must be an image.
Failure to upload front imageSomething went wrong
Failure to upload back imageSomething went wrong regarding back image status
Invalid front/back image extensionInvalid Image, only JPG, JPEG and PNG are allowed
Image uploaded is croppedThe provided document is fully cropped which is not in line with image quality guidelines.
Image extraction failure due to image qualityUnable to process due to extraction failure. Providing better-quality front and back images might solve this issue. Ensure the images are not cropped and that all edges are visible.
Missing front side imageThe image front side field is required.

Authorizations

Authorization
string
header
required

Use Bearer {your_api_token} in the Authorization header.

Headers

Accept
string
default:application/json
Content-Type
string
default:application/json

Body

application/json
imageFrontSide
string
required

Front-side document image as a base64 data URI (for example, data:image/jpeg;base64,...).

trustFlowId
integer
required

Identifier used to categorize or group requests for tracking or reporting.

trustValidationId
string
required

A unique ID used to identify your verification request.

imageBackSide
string

Back-side document image as a base64 data URI (for example, data:image/jpeg;base64,...).

Response

200 - application/json

Document verification completed successfully

success
boolean
required
message
string
required
data
object
required
verificationStatus
string
required
verificationStatusCode
integer
required
trustFlowId
integer
required

Trust flow identifier.

trustValidationId
string
required
verificationType
string
required
Example:

"finalize_trust_validation"

metadata
object