Crypto OTC Proof-of-Funds PDF Fraud Detection

This article is a snapshot — content was accurate as of June 2026 (code examples tested against the API as of May 2026). The product evolves actively; specific counts, examples, and detection rules may have changed since publication — see the changelog for the current state.
A self-introduced broker emails the desk on Tuesday morning. The counterparty — a family office out of Singapore — wants to take a $25M position. Attached is a one-page PDF on what appears to be DBS Private Bank letterhead, signed by a named relationship manager, attesting to a balance “well in excess of USD 50 million” held with the bank. Reference number top-right. Wet-signature scan bottom-right. The compliance officer eyeballs the letterhead, runs the RM’s name against the bank’s public directory, finds a match, and clears the trade for settlement prep.
The PDF was an altered real letter for a balance two orders of magnitude smaller. The RM exists. The reference number was reused from a letter shopped to two other OTC desks the same week. No one called the bank.
This article is about the proof-of-funds (POF) attestation as a single-point-of-failure document in crypto OTC, prime brokerage, and private-wealth-desk crypto workflows — and the structural PDF layer that most desks have no automated coverage for today.
Why a Missed POF Is a Different Class of Loss
A missed forged bank statement on a $4,000 tenant application is a bad week. A missed forged POF on an institutional trade gate is a counterparty-risk event in an illustrative range from roughly $5M to $50M, depending on the desk’s position sizing and netting terms. The asymmetry shows up in three places.
Trade-size economics. Tenant screening processes thousands of applications per month per platform. OTC counterparty onboarding processes dozens. The per-document cost ceiling for forensic review is several orders of magnitude higher, which means the controls can afford to be slow and deep — a human callback to the issuing bank is the gold-standard control, and the economics support it.
Operational reality. Despite the economics, most OTC desks have no automated PDF structural layer. The POF letter arrives in an email thread alongside passport scans, articles of association, and a source-of-funds narrative. The compliance officer looks at the letterhead, signature, and headline number. Tooling stops at on-chain analytics — Chainalysis KYT, TRM Labs, Elliptic — which sees the counterparty’s wallet history but is silent on the PDF in the inbox.
Frequency masks risk. POF forgery is rare enough to be invisible in day-to-day operations and catastrophic when it lands. Crypto OTC desks, prime brokers, institutional custody gateways, and the private-wealth desks at trad-banks brokering crypto for HNWIs all share the same exposure. None publish POF-fraud incident rates, and that opacity is itself part of the problem. The parallel pattern on the lending side is covered in the document fraud detection fintech workflow.
Three Patterns That Hit the Inbox
POF letters claiming to be from private banks such as Standard Chartered Private, HSBC Private Bank, JP Morgan Private Bank, UBS, DBS Private Bank, or Bank of Singapore arrive in three structurally distinct forms. Each leaves a different trace.
Pattern 1: Altered Real Letter
The counterparty — or a broker the counterparty is paying — obtained a real POF letter at some point for a real, modest balance. The PDF was opened in Adobe Acrobat or routed through iLovePDF, Smallpdf, or PDF24, and the balance figure was typed over: USD 487,000 becomes USD 48,700,000. Sometimes the date is bumped forward, sometimes a digit is added to the reference number.
Structurally this is the easiest pattern to catch. Institutional banking documents are commonly produced by server-side generators — libraries like iText, Aspose.PDF, or PrinceXML, and vendor pipelines built on top of them are recurring entries in our known-tools database, though the exact toolchain varies by bank and is not always publicly disclosed. When a consumer tool overwrites the producer chain, the substitution is visible. The cross-reference table shows multiple write sessions. The modification timestamp lands days or weeks after the creation timestamp. HTPBE? returns modified with markers such as HTPBE_RESIDUAL_PRIOR_GENERATOR, HTPBE_MULTIPLE_REVISION_LAYERS, and HTPBE_DATES_DISAGREE.
Pattern 2: Screenshot-Wrapped Letterhead
A more careful operator takes a screenshot or high-resolution image of a real letterhead — sometimes a publicly leaked letter, sometimes a piece of marketing collateral — and wraps it in a fresh PDF using jsPDF, html2pdf, or img2pdf. A vector text layer is overlaid on top to carry the fabricated balance, reference number, and signatory line. The result looks correct in any PDF viewer.
Structurally this returns inconclusive, not modified. The file has no contradictory metadata because it has almost no metadata at all — it is a single full-page raster image with a programmatic text overlay, produced by a consumer toolchain that does not identify itself as an institutional banking system.
inconclusive on a POF letter that claims to come from a private bank is itself the signal. Private banks do not typically emit POF attestations through general-purpose client-side PDF wrappers. The verdict means the document was built in software that no documented private-bank workflow uses — the same logic applies here as in the meaning of inconclusive in PDF verification and the KYC PDF blind spot in lending.
Pattern 3: Clean Rebuild
The most sophisticated pattern. The operator does not start from a real letter at all. A stolen or recreated letterhead template is fed into PDFKit, ReportLab, or a similar programmatic PDF library, and the entire POF is generated from scratch — correct fonts, correct margins, plausible reference number, signature image dropped in as an embedded JPEG. There is no editing history because there was no editing. The cross-reference table has a single entry. The dates agree.
This also returns inconclusive — for the same reason as Pattern 2. The producer string says PDFKit or ReportLab, which are general-purpose programmatic PDF libraries not associated with any institutional banking document pipeline we have in our known-tools database. Empirical grounding is partial — private-bank document toolchains are not uniformly disclosed and our coverage is built from what surfaces in real-world institutional documents, not from a complete dataset — but the verdict tells the compliance officer that the file claims an institutional origin while presenting structurally as something else.
A technically careful forger can spoof the producer string to mimic an institutional generator. Structural fingerprints of the underlying library (font embedding patterns, object stream layout, default metadata residue) often diverge from the spoofed identity; markers HTPBE_PRODUCER_IDENTITY_FORGED and HTPBE_TOOLCHAIN_DEFAULT_METADATA_RESIDUE cover the common cases without claiming complete coverage — see the limits section.
What inconclusive Means at a POF Gate
modified is unambiguous — the file was edited after creation, route to callback or decline. The verdict that does the heavy lifting in this vertical is inconclusive. The rule: a POF letter claiming to come from a private bank, returning inconclusive, routes to a callback to the issuing bank using a number obtained independently from the document — the published switchboard from the bank’s actual website, with the relationship manager asked for by extension. Not the number on the letterhead.
This is not an auto-decline; it is an automated trigger for the callback the desk would have wanted to do anyway, applied consistently rather than depending on the compliance officer’s gut. A modified verdict routes the same way, with the bank notified that the document was tampered. An intact verdict reduces but does not eliminate the need for callback at the highest trade sizes — structural integrity is necessary but not sufficient for institutional attestation.
The Workflow Integration
Three steps, dropped into the counterparty onboarding pipeline before the trade desk sees the file:
- POF letter arrives in the compliance inbox — usually as an email attachment or via a counterparty portal upload.
- The desk’s system POSTs the file URL to
https://api.htpbe.tech/v1/analyzeand waits for the verdict. modifiedorinconclusive→ route to the callback queue, with the verdict and markers attached to the case file.intact→ proceed with the desk’s normal onboarding checks.
curl -X POST https://api.htpbe.tech/v1/analyze \
-H "Authorization: Bearer $HTPBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://your-storage.example.com/pof/counterparty-9421.pdf"}'A representative response on a Pattern 1 altered letter:
{
"id": "ck_8b1f3d2c-4a7e-4f9d-b2c6-3e8f1d0a9b7c",
"status": "modified",
"modification_confidence": "high",
"modification_markers": [
"HTPBE_RESIDUAL_PRIOR_GENERATOR",
"HTPBE_MULTIPLE_REVISION_LAYERS",
"HTPBE_DATES_DISAGREE"
],
"creator": "iText 7",
"producer": "Adobe Acrobat Pro 24.2",
"xref_count": 4,
"has_digital_signature": false,
"creation_date": 1748131200,
"modification_date": 1748563200
}A representative response on a Pattern 3 clean rebuild:
{
"id": "ck_2c9d4f1a-5b8e-4a3c-9e7f-1d2c3b4a5e6f",
"status": "inconclusive",
"modification_confidence": "none",
"modification_markers": [],
"creator": "PDFKit",
"producer": "PDFKit",
"xref_count": 1,
"has_digital_signature": false
}The second response is the one most desks misread today. inconclusive looks like “the system did not find anything,” which gets the file waved through. In a POF context the producer string PDFKit on a document claiming private-bank origin is the actionable signal. The case routes to callback.
The check itself usually takes a few seconds. For most OTC desks the volume is low — on the order of 30 to 200 POF checks per month — which puts the operational cost well below the loss-avoidance economics on a single missed POF. Integration is a single POST; the API reference covers the response schema, and pricing scales with monthly check volume.
Limits
Structural forensics is a fast filter for the callback queue, not a replacement for the callback. Four classes of fraud sit outside its reach.
Revolving POF. The same forged letter shopped to multiple OTC desks. Each desk sees a single PDF and can only assess that PDF on its own merits. Cross-desk reference-number reuse detection requires an industry-shared callback registry — out of scope for any single-document structural check. The defense is the bank callback itself: the bank’s records will show the reference number was never issued or was issued for a different amount.
On-chain identity is not off-chain attestation. Chainalysis KYT, TRM Labs, and Elliptic establish that a counterparty’s wallets are not connected to sanctioned addresses or known illicit flows. They do not establish that the counterparty has the dollar balance their POF letter claims. The two checks are complementary, not substitutable.
The technically careful forger. A sophisticated operator who spoofs the producer string, uses an institutional-style font subset, sets internally consistent timestamps, and matches institutional layout conventions can produce a Pattern 3 rebuild that returns intact rather than inconclusive. HTPBE?’s producer-spoofing detection layer (HTPBE_PRODUCER_IDENTITY_FORGED, HTPBE_TOOLCHAIN_DEFAULT_METADATA_RESIDUE) covers the common cases but is not absolute. At the trade sizes in scope, bank callback remains the control of last resort.
Born-synthetic forgeries. A POF letter that is internally consistent — correct fonts, correct geometry, plausible metadata, no editing history — will not be flagged on structural grounds because nothing about its structure is wrong. The wrongness lives in the content: the balance attested does not exist, the relationship manager did not sign it, the reference number was never issued. Content verification is a different product category. Structural forensics filters the firehose so that human callback bandwidth gets spent on the right documents.
Who Should Read This
Heads of Compliance and Heads of OTC Trading at crypto OTC desks and crypto prime brokers. CTOs and General Counsel at institutional gateways and custody platforms. The private-wealth desks at trad-banks brokering crypto for HNWIs. Counterparty due-diligence vendors whose customers already do on-chain dd via Chainalysis or TRM but receive PDF KYC documents from the counterparty too.
If your desk gates trades on a POF letter and the current control is an eyeball on the letterhead, structural forensics is the missing layer between the eyeball and the bank callback. The API covers integration; pricing scales with monthly volume.
FAQ
How is this different from KYC platforms like Persona or Alloy?
KYC and identity platforms confirm that the person submitting the document is who they claim to be — passport checks, watchlist screening, face matching. They do not analyze the structural integrity of submitted PDFs. A counterparty can pass KYC perfectly and still submit a forged POF letter. HTPBE? operates on the PDF itself, regardless of who submitted it.
What about a digital signature on the POF letter?
Private banks rarely apply a qualified digital signature to a POF letter — the format is overwhelmingly a wet-signature scan embedded as an image. When a real digital signature is present, HTPBE? verifies it and surfaces post-signature edits via HTPBE_POST_SIGNATURE_EDIT. The absence of a digital signature on a POF letter is not itself a fraud signal in this vertical.
Should we auto-decline on inconclusive?
No. inconclusive on a claimed private-bank POF letter should route to a callback to the issuing bank using independently obtained contact details. The auto-decline path is modified with high confidence, and even then most desks prefer to confirm with the bank before terminating the counterparty relationship.
Does HTPBE? see the trade size or counterparty identity?
No. HTPBE? analyzes the PDF’s structural layer — metadata, cross-reference tables, producer chain, content streams, image and font embedding. It does not parse the dollar amount on the page or attempt to identify the counterparty. The verdict is structural; the business decision stays with the desk.