Document Tamper Check
Documents & BiometricsDetect edited, forged or template-generated documents before you trust their contents.
Run a scanned ID, payslip, bank statement or certificate through forensic checks — pixel-level edits, font inconsistencies, metadata anomalies and known template fingerprints — and get a tamper score with the regions flagged.
Endpoint
POST
https://app.emver.io/api/sandbox/v1/document-tamper-check
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Accept: application/json
Request parameters
| Field | Type | Description |
|---|---|---|
document
required
|
file | Document image or PDF |
document_type
optional
|
string | Document type hint |
Example request
cURL
curl -X POST https://app.emver.io/api/sandbox/v1/document-tamper-check \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"document": "<base64>",
"document_type": "string"
}'
import requests
response = requests.post(
"https://app.emver.io/api/sandbox/v1/document-tamper-check",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Accept": "application/json",
},
json={
"document": "<base64>",
"document_type": "string"
},
timeout=60,
)
response.raise_for_status()
data = response.json()
const response = await fetch("https://app.emver.io/api/sandbox/v1/document-tamper-check", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
"Accept": "application/json",
},
body: JSON.stringify({
"document": "<base64>",
"document_type": "string"
}),
});
const data = await response.json();
$response = Http::withToken('YOUR_API_KEY')
->acceptJson()
->post('https://app.emver.io/api/sandbox/v1/document-tamper-check', {
"document": "<base64>",
"document_type": "string"
});
$data = $response->json();
Replace YOUR_API_KEY and the placeholder values. Use the switch above to see production URLs.
Response
Structure · 200
{
"status": INTEGER,
"message": STRING,
"data": {
"tampered": BOOLEAN,
"score": NUMBER,
"anomalies": ARRAY,
"regions": ARRAY
}
}
Example · 200
{
"status": 200,
"message": "string",
"data": {
"tampered": true,
"score": 0,
"anomalies": "string",
"regions": "string"
}
}
Error · 4xx / 5xx
{
"status": INTEGER,
"message": STRING
}
See Errors & status codes for what each status means and which calls are billed.
About this API
Upload the document image or PDF. The API returns an overall authenticity score, the specific anomalies found and, for images, the bounding boxes of suspect regions so reviewers can look exactly where it matters.
Typical uses
- Employment screening. Screen payslips, offer letters and experience letters before verification calls.
- Lending. Catch edited bank statements and ITRs at application.
Questions
- Does it read the contents too?
- Pair it with ID Document OCR or Bank Statement Analysis for extraction; this API focuses on whether the document itself can be trusted.