How HTPBE? Proves a PDF Was Altered After It Was Issued
63 forensic checks run on every file you submit – catching structural manipulation that visual review and KYC platforms miss. Under 3 seconds per document, no original file required.
Why structural analysis
Visual tools check appearance. HTPBE? checks what the software wrote.
A growing class of document fraud detection tools operates on what a PDF looks like – scanning for pixel-level inconsistencies, lighting artifacts, or unusual noise patterns. For physical documents that have been photographed, this has genuine value. For native digital PDFs – the kind a bank, payroll platform, or accounting system generates directly – it addresses the wrong question.
Sophisticated document fraud does not alter the image of a number. It replaces the underlying data while leaving the visual presentation intact. The resulting document passes every pixel-level check cleanly, because visually nothing changed.
HTPBE? examines the internal revision history, the object structure, the font assembly records, the signature coverage maps – layers that rendering engines never expose to the eye. A document can look exactly right and be structurally compromised. We find the second kind.
This is what it means to verify a PDF is genuine at the file level. Not confirming the facts a document states — proving the file itself was not edited after it was issued. If you need to know whether a PDF was modified — a date moved, a number swapped, a signature stripped — that is the question answered here, from the file’s own structure.
Every check derives from the PDF specification itself — ISO 32000, the open ISO standard that defines how a conforming PDF is built. That is why a verdict is deterministic and explainable, not a probabilistic guess: the same file always yields the same result, traceable to a rule in the spec.
Detection coverage
What the 63 checks cover
Each domain below answers a question a fraud analyst would ask by hand – did the dates contradict each other on a bank statement? was a signature stripped after signing? — automated by 63 forensic checks that flag tampered documents in seconds.
Every document runs all checks independently. Multiple findings can fire simultaneously – each reported separately with its own confidence level. Under the hood, those 63 checks evaluate 131 distinct structural signals – independent conditions we test in the file’s bytes, structure, and metadata.
Metadata & Timestamps
- Recorded dates showing the document was changed after creation
HTPBE_DATES_DISAGREE - Internal timestamp anomalies indicating a later change
HTPBE_TIMESTAMP_LAYERS_DISAGREE - Document properties indicating later alteration
HTPBE_IDENTITY_LAYERS_DISAGREE - Timestamp values that are physically impossible
HTPBE_IMPOSSIBLE_TIMESTAMP - Date information that is malformed
HTPBE_INVALID_TIMEZONE - Annotation dates that do not fit the document’s timeline
HTPBE_ANNOTATION_PREDATES_CREATION - Signs that a document-unlocking or editing tool processed this file
HTPBE_UNLOCK_TOOL_RESIDUE - Metadata timing indicating a later change
HTPBE_XMP_DATES_DESYNCED - Time-zone evidence of a later change
HTPBE_TIMEZONE_LAYERS_DISAGREE
Digital Signatures
- Content changed after the document was digitally signed
HTPBE_POST_SIGNATURE_EDIT - Evidence that a digital signature was stripped after signing
HTPBE_SIGNATURE_REMOVED
Incremental Update History
- Saved revisions showing the document was modified after creation
HTPBE_MULTIPLE_REVISION_LAYERS - A post-creation revision consistent with targeted alteration
HTPBE_METADATA_ONLY_REVISION - Signs the file was rebuilt after its original production
HTPBE_FLATTENED_EDIT_HISTORY
Generator Fingerprinting
- Structural evidence that contradicts the file’s stated origin
HTPBE_TOOL_VS_STRUCTURE_MISMATCH - Font handling that points to a different producer
HTPBE_FONT_VS_TOOL_MISMATCH - Evidence of an earlier production history behind the current file
HTPBE_RESIDUAL_PRIOR_GENERATOR - Fingerprints of PDF editing software
HTPBE_EDITING_TOOL_FINGERPRINT - Document re-saved by another tool after its original creation
HTPBE_DOCUMENT_RESTAMPED_AFTER_CREATION - Signs of processing by an online PDF editing or conversion service
HTPBE_ONLINE_EDITOR_ORIGIN - Origin information partly removed or edited
HTPBE_SELECTIVE_IDENTITY_EDIT - Origin information replaced with that of different software
HTPBE_IDENTITY_OVERWRITTEN - Metadata showing signs of having been rewritten
HTPBE_UNKNOWN_IDENTITY_CLAIM - Active scripting added to the document after its original creation
HTPBE_SCRIPTING_ON_REEMITTED - Claims about the producing software that do not hold up
HTPBE_LAYERED_IDENTITY_DISAGREEMENT - An implausible chain of production software
HTPBE_IMPOSSIBLE_TOOL_PIPELINE - Identifying details stripped from the document after production
HTPBE_IDENTITY_BLANKED - Page content composed from separately produced parts
HTPBE_DESIGN_TEMPLATE_ASSEMBLY - A font whose identity appears altered
HTPBE_ALTERED_TYPEFACE_IDENTITY - Traces of other software in the document’s production
HTPBE_TOOLCHAIN_DEFAULT_METADATA_RESIDUE - Signs of alteration in a document that was re-printed to PDF
HTPBE_PRINT_PIPELINE_TAMPERING - Typography indicating the document was not produced by its stated issuer
HTPBE_FONT_LAYER_INCONSISTENT_WITH_ISSUER - Fabricated origin details that misstate how the document was produced
HTPBE_PRODUCER_IDENTITY_FORGED
Document Assembly
- Pages assembled from more than one source
HTPBE_PAGES_FROM_MULTIPLE_SOURCES - Remnants of a different document inside this file
HTPBE_RESIDUAL_DOCUMENT_STRUCTURE - Pages that went through different production routes in one document
HTPBE_MIXED_TOOLING_CLASSES - Image-based page content mixed into a digitally produced document
HTPBE_SCAN_IN_DIGITAL_DOC - Pages re-exported from an existing PDF
HTPBE_REEXPORTED_THROUGH_OFFICE_SUITE - Page layout evidence of pages combined from separate documents
HTPBE_MIXED_PAGE_DIMENSIONS - Page template evidence of pages from another source
HTPBE_TEMPLATE_PATTERN_BREAK - Document reconstructed as a new file rather than produced as the original
HTPBE_REBUILT_FROM_LOCAL_SOURCE
Content Stream Analysis
- Editing traces within the document’s pages
HTPBE_CONTENT_STREAM_EDITING_MARKERS - Page drawing evidence consistent with editing
HTPBE_DRAWING_OPS_INCONSISTENT - Document printed to a new PDF after its original creation
HTPBE_PRINTED_OUT_OF_PDF_READER - Signs of text added over existing page content
HTPBE_TEXT_OVERLAY_ON_SCAN - Hidden text on the page consistent with an edit to visible text
HTPBE_INVISIBLE_DUPLICATE_TEXT - Localised edits placed over the original page text
HTPBE_CHARACTER_OVERLAY_EDIT - Individual characters that appear replaced after authoring
HTPBE_GLYPH_LEVEL_EDIT - Font usage on a page that points to text added after authoring
HTPBE_MIXED_FONT_EMBEDDING - Original fonts that appear partly replaced after authoring
HTPBE_PARTIAL_FONT_REPLACEMENT - Annotations that appear merged into the page content
HTPBE_BURNED_IN_ANNOTATIONS - A form field showing signs of alteration
HTPBE_WIDGET_APPEARANCE_MISMATCH - A redaction that did not fully conceal its content
HTPBE_INCOMPLETE_REDACTION - Signs that part of a page was replaced after creation
HTPBE_PAGE_REGION_SUBSTITUTED
Image Forensics
- Embedded image showing signs of having been edited and re-saved
HTPBE_IMAGE_EDITED_AND_RESAVED - Document content converted to images after creation
HTPBE_COLLAPSED_TO_RASTER - A page captured from a physical copy rather than the original file
HTPBE_PHYSICAL_SCAN_GEOMETRY - A scan origin that does not hold up
HTPBE_FAKE_SCANNER_ORIGIN - Scan-like pages with signs of software rendering
HTPBE_RENDERED_PSEUDO_SCAN
Structural Integrity
- Internal file structure showing signs of tampering
HTPBE_NAVIGATION_TABLE_MISMATCH - File layout altered after the file was finalised
HTPBE_DECLARED_SIZE_MISMATCH - Unexplained data added to the file after it was finalised
HTPBE_TRAILING_BYTES_AFTER_EOF - An additional integrity finding whose method is not disclosed
HTPBE_PROPRIETARY_SIGNAL
How it works
Three steps, under 3 seconds
Send a PDF URL
POST a publicly accessible URL to /api/v1/analyze. No file upload, no size limit for the API. You get back a check ID immediately.
8 forensic domains analyzed
All 63 checks run in parallel across metadata, structure, digital signatures, generator fingerprinting, document assembly, content streams, image forensics, and structural integrity.
Verdict + named markers
GET /api/v1/result/{id} for a structured verdict — intact, modified, or inconclusive — with every triggered finding named individually and confidence rated.
Example API response
What you get back
A bank statement with a removed digital signature and mismatched timestamps returns this. Each marker is a named, actionable forensic finding – not a score.
{
"id": "9f3a2c1d-8b47-4e6f-a012-3d5e7f890123",
"status": "modified",
"modification_confidence": "certain",
"modification_markers": [
"HTPBE_SIGNATURE_REMOVED",
"HTPBE_DATES_DISAGREE"
],
"creator": "Adobe Acrobat Pro DC",
"has_incremental_updates": true,
"update_chain_length": 3,
"xref_count": 4,
"page_count": 12
}Full schema and all marker descriptions in the API reference →
Close the structural gap your KYC stack leaves open
Start with welcome credits, no card required. Point the API at a PDF URL and read the verdict in seconds.
Verdicts
Three possible outcomes
intactNo modification detected
No structural evidence of post-creation changes was found in the file.
Intact confirms the file was not modified. It does not guarantee the content is truthful – a document fabricated from scratch with false data can return intact.
inconclusiveIntegrity couldn’t be determined
For some files the check cannot decide either way — it can’t confirm the document is unchanged, and it hasn’t found that it was changed.
For fraud teams: a missing flag here is not a clean result, and inconclusive is not by itself a judgment about the document. Weigh it against the document’s expected source, and for anything that matters, verify it with the issuer directly.
modifiedForensic evidence of tampering
One or more structural markers confirm post-creation modification. Confidence is either certain — reserved for the most unambiguous structural evidence, such as a removed signature or contradicting timestamps — or high for all other markers.
Regression testing
Every release is proved against several thousand forgeries first
Before any change to the algorithm ships, it runs against a regression corpus of several thousand synthetic PDFs built to cover every known method of document forgery — incremental-update edits, overlay patches, spliced page assemblies, template reuse, forged scans, and injected metadata among them.
A change is released only when it holds its verdict across the entire corpus. That is how a new rule can never quietly break an old one, and why the algorithm changelog moves forward without regressions.
Secure your workflow
Create your account – check PDFs on the web or with an API key, both ready on signup.
No sales call. Cancel any time.