Skip to main content
POST
Document verification
Use this endpoint to verify a document without creating a Trust Validation. Send the front image as a JPEG or PNG data URL. Include the back image when the document has two sides. The response includes the overall recommendation, individual authenticity checks, process indicators, extracted document fields, and the configuration applied to the request. When returnFullResolutionImage is true, the images array also includes the full document image.

Verification configuration

returnFullResolutionImage

Controls whether the response includes the original full-resolution document image.

screenMatchLevel

Determines how strictly the service checks for screen replay attacks. Higher levels detect digital displays more aggressively but may reject valid physical documents. Select LEVEL_1 through LEVEL_10. LEVEL_1 is the least strict and LEVEL_10 is the most strict.

photoForgeryMatchLevel

Controls how strictly the service checks for photo forgery, including photo replacement, face swapping, and digital editing. Higher levels apply stricter checks but may reject more genuine documents. Select LEVEL_1 through LEVEL_10. LEVEL_1 is the least strict and LEVEL_10 is the most strict.

staticSecurityFeaturesMatchLevel

Controls how strictly the service verifies visible security features such as background patterns, microprinting, fine-line artwork, and document-design consistency. Higher levels provide stricter fraud detection but may increase false rejections. Select LEVEL_1 through LEVEL_10. LEVEL_1 is the least strict and LEVEL_10 is the most strict. Set this field to Disabled to skip the check.

documentTypeFilter

Restricts verification to the specified issuing country and document types. Set country to an ISO 3166-1 alpha-3 country code and list one or more supported values in cardType. The following filter accepts only Malaysian driver’s licences:

Supported document types

Use PHL as the country value.
The detected document must match both country and one of the values in cardType. Check data.response.documentTypeFilter.documentTypeMatchesFilter in the response to confirm the match.

Example configuration

This configuration verifies Malaysian driver’s licences, applies level 5 screen detection and level 3 photo-forgery detection, skips static-security-feature validation, and returns the full-resolution image.

Interpret the response

success: true means the API processed the request. Use verificationStatus, data.response.verification.recommendedOutcome, and data.response.verification.result to determine the verification outcome. NotPerformed means that a check was disabled, unsupported, or not applicable to the submitted document. It does not by itself mean the document failed verification.

Authorizations

Authorization
string
header
required

Use your API token as a Bearer token in the Authorization header.

Headers

Authorization
string
required
Example:

"Bearer {your_api_token}"

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

Body

application/json
imageFrontSide
string
required

Front document image as a JPEG or PNG data URL containing base64-encoded image data.

Example:

"data:image/jpeg;base64,/9j/4AAQSkZJRg..."

imageBackSide
string | null

Back document image as a JPEG or PNG data URL. Include this field for a two-sided document.

Example:

"data:image/jpeg;base64,/9j/4AAQSkZJRg..."

metadata
object | null

Your reference data. The API returns this object unchanged in the response.

Example:
returnFullResolutionImage
boolean

Whether to return the full-resolution document image in data.response.images.

Example:

true

screenMatchLevel
enum<string>

Controls how strictly the service checks for screen replay attacks. LEVEL_1 is the least strict and LEVEL_10 is the most strict. Higher levels may reject more valid physical documents.

Available options:
LEVEL_1,
LEVEL_2,
LEVEL_3,
LEVEL_4,
LEVEL_5,
LEVEL_6,
LEVEL_7,
LEVEL_8,
LEVEL_9,
LEVEL_10
Example:

"LEVEL_5"

photoForgeryMatchLevel
enum<string>

Controls how strictly the service checks for photo forgery. LEVEL_1 is the least strict and LEVEL_10 is the most strict. Higher levels may reject more genuine documents.

Available options:
LEVEL_1,
LEVEL_2,
LEVEL_3,
LEVEL_4,
LEVEL_5,
LEVEL_6,
LEVEL_7,
LEVEL_8,
LEVEL_9,
LEVEL_10
Example:

"LEVEL_3"

staticSecurityFeaturesMatchLevel
enum<string>

Controls how strictly the service verifies visible security features. LEVEL_1 is the least strict and LEVEL_10 is the most strict. Higher levels may increase false rejections. Use Disabled to skip this check.

Available options:
Disabled,
LEVEL_1,
LEVEL_2,
LEVEL_3,
LEVEL_4,
LEVEL_5,
LEVEL_6,
LEVEL_7,
LEVEL_8,
LEVEL_9,
LEVEL_10
Example:

"Disabled"

documentTypeFilter
object

Response

Document verification completed. Use verificationStatus and the nested verification result to determine the business outcome.

success
boolean
required

Whether the request was processed successfully.

message
string
required
data
object
required
verificationStatus
string
required

Business outcome for the verification request.

Example:

"VERIFIED"

verificationStatusCode
integer
required

Numeric code for verificationStatus.

Example:

3

transactionId
string<uuid>
required
verificationType
string
required
Example:

"document_verification"

createdAt
string
required

UTC timestamp when the verification record was created.

metadata
object | null

Metadata supplied in the request.