curl --request POST \
--url https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/signature-matching-passthrough \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"image1": "<BASE64_ENCODED_SIGNATURE_IMAGE_1>",
"image2": "<BASE64_ENCODED_SIGNATURE_IMAGE_2>"
}
'{
"success": true,
"message": "Signature Matching processed successfully",
"data": {
"similarity": 92.75,
"verdict": "MATCH",
"verdictDisplay": "Match"
},
"verificationStatus": "VERIFIED",
"verificationStatusCode": 3,
"transactionId": "7636df44-e539-4876-a4d5-408884229a92",
"verificationType": "signature_matching",
"createdAt": "2026-10-06 06:15:00+0000"
}Signature Matching
Compare two signature images and return a similarity score and match verdict through the passthrough endpoint.
curl --request POST \
--url https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/signature-matching-passthrough \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"image1": "<BASE64_ENCODED_SIGNATURE_IMAGE_1>",
"image2": "<BASE64_ENCODED_SIGNATURE_IMAGE_2>"
}
'{
"success": true,
"message": "Signature Matching processed successfully",
"data": {
"similarity": 92.75,
"verdict": "MATCH",
"verdictDisplay": "Match"
},
"verificationStatus": "VERIFIED",
"verificationStatusCode": 3,
"transactionId": "7636df44-e539-4876-a4d5-408884229a92",
"verificationType": "signature_matching",
"createdAt": "2026-10-06 06:15:00+0000"
}Request fields
image1
The first signature image. For example, the reference signature you hold on file for the customer.
Required. Each image can be at most 2 MB after decoding.
image2
The second signature image to compare against image1. For example, a newly captured signature.
Required. Accepts the same formats as image1.
metadata
Optional client-provided correlation data, such as your own reference ID. The API returns this object unchanged in the response.
Supported image formats
- Base64 (JSON)
- File upload (multipart)
application/json with each image as a Base64-encoded string. The data URI prefix is optional.| Format | Example value |
|---|---|
| Base64 string | <BASE64_ENCODED_SIGNATURE_IMAGE_1> |
| Data URI | data:image/png;base64,<BASE64_ENCODED_SIGNATURE_IMAGE_1> |
{
"image1": "<BASE64_ENCODED_SIGNATURE_IMAGE_1>",
"image2": "<BASE64_ENCODED_SIGNATURE_IMAGE_2>"
}
multipart/form-data with each image as a file. Send each metadata key as its own form field.| Form field | Value |
|---|---|
image1 | First signature image file |
image2 | Second signature image file |
metadata[referenceId] | Your reference ID (optional) |
curl --request POST \
--url "https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/signature-matching-passthrough" \
--header "Authorization: Bearer <API_TOKEN>" \
--form "image1=@/path/to/signature-1.png" \
--form "image2=@/path/to/signature-2.png" \
--form "metadata[referenceId]=SIGNATURE-MATCH-0001"
Example request
This request compares a PNG signature with a JPEG signature sent as data URIs, and attaches a reference ID and source for correlation.{
"image1": "data:image/png;base64,<BASE64_ENCODED_SIGNATURE_IMAGE_1>",
"image2": "data:image/jpeg;base64,<BASE64_ENCODED_SIGNATURE_IMAGE_2>"
}
Interpret the response
success: true means the API completed the comparison. Use verificationStatus and data.verdict to determine the outcome.
| Field | Meaning |
|---|---|
data.similarity | Similarity score between the two signatures. Higher values indicate a closer match. |
data.verdict | Match verdict: MATCH, INCONCLUSIVE, or NO MATCH. |
data.verdictDisplay | Human-readable form of the verdict: Match, Inconclusive, or No Match. |
verificationStatus | Verification outcome derived from the verdict. |
transactionId | Identifier for this comparison. null when the request fails validation. |
metadata | The metadata object you sent, returned unchanged. |
data.verdict | verificationStatus | Code | HTTP | Billable |
|---|---|---|---|---|
MATCH | VERIFIED | 3 | 200 | Yes |
NO MATCH | REJECTED | 1 | 200 | Yes |
INCONCLUSIVE | REVIEW_NEEDED | 2 | 200 | Yes |
| No valid result | FAILED | 6 | 400 | No |
| Provider failure | FAILED | 6 | 502 | No |
REJECTED and REVIEW_NEEDED are completed comparisons, not API failures. FAILED means the comparison could not be completed, either because no signature was found in one of the images (HTTP 400) or because the verification provider is unavailable (HTTP 502). A request missing image1 or image2 also returns HTTP 400, before a transaction is created.Authorizations
Use your API token as a Bearer token in the Authorization header.
Headers
"Bearer {your_api_token}"
Body
First signature image. In JSON, a Base64-encoded image with or without a data URI prefix (for example data:image/png;base64,...). In multipart/form-data, an image file. Maximum 2 MB after decoding. URLs are not accepted.
Second signature image to compare against image1, in the same accepted formats. Maximum 2 MB after decoding. URLs are not accepted.
Optional client-provided correlation data, echoed back on the response.
{ "referenceId": "SIGNATURE-MATCH-0001" }
Response
Comparison completed. Verified, review-needed, and rejected outcomes all use HTTP 200 and are billed.
true
"Signature Matching processed successfully"
Show child attributes
Show child attributes
VERIFIED, REVIEW_NEEDED, REJECTED 3 = Verified, 2 = Review Needed, 1 = Rejected.
3, 2, 1 "signature_matching"
"2026-10-06 06:15:00+0000"

