Shipping daily
Nov 1DATAAll 646 projects re-verified: 6,419 developer claims tested against registers, courts and pressNov 1DATAMalaysia TEDUH and Philippines DHSUD licence checks: expired licences and approved delays foundNov 1DATAThailand ONEP register: 2 condos found selling before environmental approvalNov 1DATAMexico PROFECO contract register checks: one sales registration belonged to a laundryNov 1DATAAbu Dhabi ADREC inspections and RAK RERA permit list added: % built straight from the regulatorNov 1SHIPPEDNew stage filter: completed but still sellingNov 1SHIPPEDPublic database page: verification levels, disclosure distribution, every marketNov 1DATA+212 projects in one day, round 3: USA, Caribbean, Gulf, Africa, Japan, AustraliaNov 1SHIPPEDStage on every case: off-plan or under constructionOct 31SHIPPEDVerification level per check on every case card: registry, independent, developer, contradicted
Changelog →

Kolaboro / Tools / PDF check

Was this PDF changed after it was made?

Drop the reservation form, contract or payment schedule a developer sent you. You see every save inside the file, what each save changed, whether signatures still cover the document, and where the metadata and fonts disagree.

Your file never leaves this device. The check runs in your browser with code you can read (pdfx.js). This page sends no request with your file, and keeps working if you go offline after it has loaded. Site analytics are masked on this tool: they never see the file, its name or the results.

No file at hand? Try a sample we made:

How it works

What the check reads, and its limits

Saves (incremental updates)

A PDF editor that saves changes usually appends them to the end of the file and adds a new end-of-file marker. We find every marker, attribute each object to the save that wrote it, and say what each save changed: page text, fonts, notes, form fields, signatures or metadata. Because earlier bytes are never overwritten, each earlier version can be opened again.

Signatures

For each signature we check that the signed byte range starts at the beginning of the file, whether it reaches the end, which saves came after it, and whether the hash stored in the signature matches a fresh hash of the signed bytes. We do not check the certificate chain, trust or revocation.

Metadata and fonts

The producer, creating program and dates are read from both the Info block and the XMP block and compared. Fonts are read from each page's content, so a font that is only available but never used is not counted. A font first written in a later save is the clearest sign of text added afterwards.

What this cannot see

  • A document that was edited and then exported again as a new file looks like an original.
  • Scanned documents are images: changes to the picture are not detected.
  • Encrypted files can only be checked at the structure level.
  • Nothing here is legal advice. A finding is a reason to ask the sender, and to have a lawyer check the original.

Tested on generated files with known histories (one save, two incremental edits, linearized, compressed object streams, scripts and attachments, signed, signed then edited, signed then altered by one byte) and on real contracts and brochures. The engine is about 550 lines of plain JavaScript with no third-party code.

Protect my purchase