Skip to content

Fast onboarding. Real compliance.

Your customers expect to open an account in minutes. Regulators expect you to verify their address. Trusqo lets you do both: verify proof of address documents instantly, right inside your onboarding flow.

Get started
180+ Countries
50+ Languages
<3s Per check
Oakbridge Bank
Monthly statement
Closing balance €4,218.50
James L. Whitford
Acct 4401 7823
15 Rue de la Paix, Paris
Onboarding verification result
Name James L. Whitford 92%
Address 15 Rue de la Paix, Paris 96%
Doc type Bank statement Pass
Issued 31 Mar 2026 Pass
KYC status Standard Pass
Approved
Audit trail: a1b2c3d4…567890

Speed and compliance pull in opposite directions

Fintechs move fast. Customers sign up on their phone, verify their identity in seconds, and expect to start using the product immediately.

But proof of address is still a bottleneck. Documents arrive in different formats, languages, and layouts. Someone has to read each one, check the details, and make a decision. That's where the onboarding flow breaks.

Drop-off at document upload

Customers abandon onboarding when they're told to wait for manual review

Ops doesn't scale

Growing your user base means growing your review team at the same rate

Global customers, local documents

Documents arrive in dozens of languages and formats your team can't always read

From neobanks to embedded finance

Any company offering financial products needs to verify customer addresses. Here's how fintechs use trusqo.

Neobanks

Verify customer addresses during digital onboarding without branches or manual review.

Payment providers

EMI and PSP licence compliance requires address verification. Automate it from day one.

Lending platforms

Confirm borrower addresses before disbursement. Reduce fraud, meet regulatory requirements.

Embedded finance

If your platform offers financial products, you inherit KYC obligations. Add address verification via API.

Crypto & digital assets

Exchange and wallet providers need proof of address for licensing. Support global users in any language.

Insurtech

Policyholder address verification for underwriting and claims. Process documents in seconds.

Drop it into your onboarding flow

1

Upload

Utility bill, bank statement, government letter, or insurance document. Send it via API or the dashboard alongside the expected name and address.

curl -X POST https://app.trusqo.com/api/verify \
  -H "X-API-Key: $TRUSQO_KEY" \
  -F "name=James L. Whitford" \
  -F "address=15 Rue de la Paix, Paris" \
  -F "[email protected]"
2

Extract

Trusqo reads the document in any language, extracts name, address, date, and document type. Non-Latin scripts are transliterated automatically.

Name James L. Whitford
Address 15 Rue de la Paix, Paris
Type bank-statement
3

Verify

A clear pass or fail verdict with per-field match scores and a downloadable PDF report. Everything a regulator needs during an audit.

{
  "status": "approved",
  "nameMatchScore": 0.92,
  "addressMatchScore": 0.96,
  "extractedDocType": "bank-statement"
}

Built for products that move fast

<3s

Seconds, not days

Automated checks in under 3 seconds. Your team reviews edge cases, not every document.

14:30:00 Request submitted API
14:30:01 Document extracted System
14:30:02 Verdict: approved System
14:30:02 PDF report generated System

Audit-ready records

Every verification logged with extracted data, match scores, and decision reasoning. PDF reports for your compliance files.

Latin 中文 العربية Кириллица हिन्दी 日本語 ไทย Ελληνικά עברית 한국어 ქართული తెలుగు

Global coverage

Documents in any script processed natively. Automatic transliteration keeps your records in one alphabet regardless of the original language.

Utility bills
Bank statements
Gov. letters
Issue date 90 days

Configurable rules

Match thresholds, document age limits, and accepted types per your risk appetite. Adjust per request as regulations change.

POST /api/verify
Content-Type: multipart

→ 202 Accepted
→ { "requestId": "a1b2…" }

Simple integration

A single REST endpoint. Send the document, get a structured result with evidence.

EU-hosted, GDPR-native

All data processed and stored in the EU. Documents deleted automatically after retention.

Every second of delay costs you sign-ups

Research shows 40–70% of prospects drop off during KYC onboarding. Document upload and waiting for manual review are the two biggest friction points.

40–70% drop-off The average fintech onboarding flow loses most of its prospects before completion. Address verification is where the flow breaks.
Under 3 seconds Trusqo returns a verdict in seconds, not hours. Your customer never leaves the sign-up flow.
No ops scaling Doubling your user base doesn't mean doubling your review team. Automated checks handle the volume; your team handles exceptions.
Utility bill Bank statement Government letter Medical / Pharmacy bill Post office letter Life insurance
Issued within 5
days months years
Name 90 %
Address 70 %
Postcode 80 %

Document intelligence built in

Trusqo doesn't just read the text. Every document is analysed for signs of tampering, checked against its metadata, and classified by type before a verdict is returned.

Fraud signal detection File creation dates, modification history, and document structure checked for signs of tampering.
Document classification Automatically classified as utility bill, bank statement, government letter, or other type.
Revision history Multiple PDF revisions or mismatched timestamps are flagged as suspicious.
No signs of tampering detected
Format PDF
File size 102.8 KB
Pages 3
Created 2026-04-16T12:33:17
Modified 2026-04-16T12:33:17
Embedded text Yes
Digitally signed No
Revisions 1
Fingerprint 0234ca239f1733f293505de7e40b1f29

Common questions

What documents can my customers upload?

Utility bills, bank statements, government letters, insurance documents, medical bills, pharmacy bills, post office letters, and life insurance documents. You control which types are accepted per request, and trusqo auto-detects and rejects anything that doesn't match.

How long does verification take?

Most documents are verified in under 10 seconds. The API accepts the request asynchronously: you can poll for the result or receive it via webhook.

Does it work for international customers?

Yes. Trusqo processes documents in 50+ languages and scripts including Arabic, Cyrillic, Chinese, Japanese, Korean, Thai, and Hebrew. Non-Latin text is automatically transliterated to Latin characters for matching.

How do I integrate?

A single REST endpoint. Send a multipart POST with the document file and the expected name and address. Get back a request ID, then poll or use webhooks for the result. Full API docs are at docs.trusqo.com.

Is there a dashboard for my ops team?

Yes. Your operations team can submit, review, and manage verifications from a clean web interface without writing any code. The dashboard includes document preview, match details, and PDF report downloads.

Do I still need proof of address if I already verify identity?

In most jurisdictions, yes. ID verification confirms who someone is, but proof of address confirms where they live, a separate regulatory requirement under KYC and AML frameworks. EMI, PSP, and banking licences typically require both.

What happens when a document fails verification?

You get a structured response with the reason: mismatched name, expired document, unsupported document type, or low match scores. Your onboarding flow can prompt the customer to upload a different document automatically, no manual review needed for clear-cut failures.

Can I re-verify addresses for existing customers?

Yes. Use the same API endpoint for ongoing monitoring. Many regulators expect periodic re-verification every 1–3 years, and some risk-based frameworks require it on trigger events like address changes.

From signup to first verification in under an hour.

No contracts, no minimums, cancel any time. Every plan includes the full API, dashboard, and webhooks.

cURL
curl -X POST https://app.trusqo.com/api/verify \
  -H "X-API-Key: poa_live_..." \
  -F "[email protected]" \
  -F "name=John Doe" \
  -F "address=123 Main St"