Skip to content
ProofMartV0.9.14 BETA
Sign in
DOCUMENT FORENSICS · API

Every claim
on a document,
on the record.

ProofMart takes a PDF and returns a structured report of findings, each pinned to its pixel, each with the arithmetic. You read the rail, not the doc.

READ THE RESPONSE
SAMPLE SCAN · REQ_8FK2reads from the rail →
DOCUMENT
6pages
FINDINGS
42 FAIL · 2 REVIEW
VERDICT
× FAIL
REQ_8FK2 · LIVEDRAG A PDF ONTO THE RAIL ↓
hdfc_apr25_statement.pdf6 pages · 2.1 MB · 4.8s
FAIL4 markers
PAGE 04 · APR 2025continued from p3HDFC BANKStatement of AccountACCOUNTXXXX-XX-4821HOLDERRajesh SharmaPERIOD01 Apr 2025 – 30 Apr 2025PRODUCERMicrosoft Word 2016#DATEDESCRIPTIONDEBITCREDITBALANCE0612 AprSALARY CREDIT HDFCEMP·84,120.001,09,120.000712 AprUPI/rahul@ybl/456102250.00·1,08,870.000813 AprATM WDL BLR-KRMR-0135,000.00·1,03,870.000914 AprPOS/AMAZON RETAIL IN3,499.00·1,00,371.001015 AprEMI/HDFC-HOME LOAN 8811232,180.00·68,191.001116 AprRTGS IN/CLIENT-INV-1092·45,000.001,13,191.001217 AprPOS/BIGBASKET GROCERY2,140.00·1,11,051.001318 AprUPI/mom@sbi/PERSONAL10,000.00·1,01,051.001420 AprIMPS IN /INVOICE 2081·0.001,01,051.001522 AprPOS/APOLLO PHARMACY1,890.00·99,161.001624 AprPOS/UBER 5T4A914,951.00·84,210.001725 AprIMPS IN/JOE-K PAYMENT·12,500.0091,710.00CARRIED TO P591,710.00HDFC BANK LIMITED · REGD. OFFICE HDFC HOUSE, MUMBAICIN L65920MH1994PLC080618 · WWW.HDFCBANK.COMPAGE 4 / 6
page4of 6
SAMPLE · synthetic document. Drop, paste, or click to try a real one
04
FINDINGS
2 FAIL2 REVIEW0 CLEAR
↵
Tab · Enter to pin · Esc to clearproofmart.shop/d/req_8fk2
BUILT FOR
LENDING  ·  VERIFICATION  ·  RISK  ·  ACCOUNTING  ·  COMPLIANCE
§ 02 · PIPELINE

From bytes
to bounded evidence.

Every stage writes back to the same address space: page, x, y, run. When you click a finding in the rail you land on the exact glyph that produced it — because that glyph’s coordinates are what the finding was named after.

01210 ms
Ingest
Byte-exact PDF parse. Object streams decoded, xref reconstructed, embedded fonts hashed against the template registry.
producer · xref · fonts
021.4 s
Extract
Text runs recovered with sub-pixel coordinates. Table structure inferred from column occupancy, not ruled lines.
runs · cells · glyphs
032.9 s
Reason
Domain rules run over the run graph: arithmetic identities, template match, glyph metrics, semantic outliers.
markers · rules · verdict
04260 ms
Decide
Findings are ranked by verdict precedence, FAIL before REVIEW before CLEAR, and returned as JSON with a per-finding coordinate box for audit.
verdict · findings · coordinates
SAMPLE · timings from REQ_8FK2 on the rail above. Production timings vary with document, format, and marker set.
§ 03 · CATALOG

Every marker
is a rule with a citation.

01
BALANCE_BREAK
Running balance disagrees with prior balance plus credit minus debit in a reconstructed ledger table.
ARITHMETIC
×FAIL
cites · row · math · box
02
CROSS_PAGE_TOTAL_MISMATCH
Running balance fails to carry forward correctly across a page break.
ARITHMETIC
×FAIL
cites · row · page · box
03
DATE_SEQUENCE_ANOMALY
A row's date is earlier than the row immediately before it in a reconstructed ledger.
SEMANTIC
~REVIEW
cites · row · date · box
04
DUPLICATE_TRANSACTION
Two or more rows share an identical date and amount.
SEMANTIC
~REVIEW
cites · rows · match
05
OCR_LOW_CONFIDENCE
Page classified as needing OCR: its text layer is unreliable or absent.
EXTRACTION
~REVIEW
cites · page · confidence
06
ENCODING_ANOMALY
Broken font encoding or CID mapping detected somewhere in the document.
EXTRACTION
~REVIEW
cites · document · encoding
These are the only six markers the verification engine runs today. No others exist yet.
§ 04 · RUN

One call.
One structured response.

The API is small on purpose. Send a PDF; receive the same finding graph you inspected on the rail. Every field maps back to a rail address.

$ TERMINAL · SAMPLEreq_8fk2
$ curl https://proofmart.shop/v1/verify \
    -H "Authorization: Bearer $PROOFMART_API_KEY" \
    -F "file=@hdfc_apr25.pdf"

↳ 4.8s · verification returned inline · SAMPLE
✗ FAIL · req_8fk2 · 4 findings
   × BALANCE_BREAK             p4·r17
   × CROSS_PAGE_TOTAL_MISMATCH p3→p4
   ~ DUPLICATE_TRANSACTION     p2·r04
   ~ OCR_LOW_CONFIDENCE        p4·r14
STEP 01 · SEND
One multipart POST.
Files up to 50 pages, 20 MB. Timeout 30 s.
STEP 02 · RECEIVE
The full evidence graph.
Every finding carries page, box, expected/found, marker id: every value points back to the rail address you can screenshot.
STEP 03 · DECIDE
Deterministic, not guessed.
No LLM, no scoring model. A fixed precedence, FAIL beats REVIEW beats CLEAR, turns findings into one verdict, every time.
§ 05 · OUTPUTS

The JSON is real.
So is the dossier.

The JSON below is what the API returns today. A signed-in scan can also be exported as an Ed25519-signed PDF dossier your reviewers can countersign, built from the same finding graph — anyone can check that signature back against ProofMart, no account required.

POST /v1/verify → 200 OK
application/json
{
  "document": { "filename": "hdfc_apr25_statement.pdf", "pageCount": 6 },
  "verification": {
    "verdict": "FAIL",
    "findings": [{
      "markerId": "BALANCE_BREAK",
      "verdict": "FAIL",
      "evidence": { "summary": "Running balance differs by -5,000.00",
        "coordinates": [{ "page": 4, "rect": { "x": 548, "y": 528 } }]
      }
    }],
    "documentKind": "bank_statement"
  }
}
req_8fk2.dossier.pdfsigned-in scans only
ProofMart Dossier
REQ_8FK2 · 12 AUG 2026
SUBJECT
hdfc_apr25_statement.pdf
× FAIL4 markers · 2 fail, 2 review
01 · p4
BALANCE_BREAK
Running balance short ₹5,000 on row 17.
02 · p4
CROSS_PAGE_TOTAL_MISMATCH
Balance carried from page 3 to page 4 differs by ₹1,240.
SIGNATURE · ED25519
✓ SIGNED
The JSON above matches the live API response shape. The dossier PDF renders and signs from a saved, signed-in scan at /api/documents/[id]/dossier — anonymous scans aren’t saved, so there’s nothing to sign.
§ 06 · INTEGRATE

Four ways in.
Same engine, every time.

The upload flow above, the public API, webhook delivery, and the CLI all run through the same verification engine — one processing path, not a marketing demo backed by something thinner.

UploadLIVE TODAY
The upload flow on this page. Drop, paste, or pick a PDF and get real findings back, no account required.
APILIVE TODAY
/v1/verify, /v1/inspect, /v1/extract — the same engine this page calls, behind an API key you create at /account/api-keys.
WebhookLIVE TODAY
Register a URL at /account/webhooks and every /v1/verify call delivers an HMAC-signed verification.completed/failed callback, retried on failure.
CLILIVE TODAY
proofmart verify|inspect|extract file.pdf — a small dependency-free client for the same public API, nothing more.
§ 07 · PRICING

Flat monthly.
No per-document surprises.

One plan, one price, a monthly call limit on /v1/verify. No per-finding or per-scan metering.

FREE
₹0/ month

For trying ProofMart against real documents before committing to a plan.

·50 /v1/verify calls / month
·Web upload + JSON findings
·Rail review app
START FREE →
PRORECOMMENDED
₹999/ month

For teams running ProofMart in a review or underwriting loop.

·2,000 /v1/verify calls / month
·Everything in Free
·Priority email support
UPGRADE TO PRO →