Skip to content

One dashboard. One API. Every address verified.

trusqo dashboard

From upload to verdict in seconds

Configure your rules, submit a document, get a result

01

Set your verification rules

Pick which document types to accept, how recent they need to be, and how strict the matching should be. Set it once in the dashboard or override per request via the API.

Verification rules settings
02

Submit the document and expected details

Upload a utility bill, bank statement, government letter, or any supported document as PDF, JPG, or PNG. Include the name and address to verify against. One API call or one form in the dashboard.

Submit document form
03

AI extracts the document data

trusqo reads the document and pulls out the name, address, postcode, document type, and date of issue. Works in any language or script — non-Latin text is automatically transliterated.

Extracted document data
04

Cross-check and match

Each extracted field is compared against what you provided. Fuzzy matching handles abbreviations, formatting differences, and transliteration. Document type and date are validated against your rules.

Verification results
05

Get a clear result

Receive an approved or declined verdict with match scores, reasoning notes, and all extracted data. Get results via API or webhook. Download a PDF audit report for compliance.

Clear verification result

One endpoint, full result

Submit a document with the expected data. Get back match scores, extracted fields, and a pass/fail verdict.

Request
curl -X POST https://app.trusqo.com/api/verify \
  -H "X-API-Key: your_api_key" \
  -F "name=Jane Smith" \
  -F "address=42 Oak Lane, London" \
  -F "postcode=SW1A 1AA" \
  -F "files=@utility-bill.pdf" \
  -F "acceptedDocTypes=[\"utility-bill\",\"bank-statement\"]" \
  -F "acceptedDateFrom=2025-09-01" \
  -F "nameMatchThreshold=0.8" \
  -F "addressMatchThreshold=0.7"
Response
{
  "id": "a1b2c3d4-...",
  "status": "approved",
  "extractedName": "Jane Smith",
  "nameMatchScore": 0.97,
  "nameMatchResult": "pass",
  "extractedAddress": "42 Oak Lane, London",
  "addressMatchScore": 0.94,
  "addressMatchResult": "pass",
  "postcodeMatchScore": 1.0,
  "postcodeMatchResult": "pass",
  "extractedDocType": "utility-bill",
  "docTypeResult": "pass",
  "extractedDateOfIssue": "2025-11-14",
  "dateResult": "pass"
}

Works with your AI assistant

Verify documents directly from Claude, Cursor, or any MCP-compatible client. No code required.

MCP config
{
  "mcpServers": {
    "trusqo": {
      "command": "npx",
      "args": ["-y", "trusqo-mcp"],
      "env": {
        "TRUSQO_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}
Available tools
verify_document

Submit a document with name and address. Returns a request ID for async verification.

get_verification_result

Check the status and match scores of a verification request.

download_verification_report

Download the PDF audit report for a completed verification.

Setup guide →

What trusqo verifies

Six checks per document. Every one configurable.

Name matching

Extracts all names from the document and fuzzy-matches against the name you provide. Configurable threshold (0–1) so you decide what counts as a match.

Address matching

Extracts street, city, state, country, and postcode from the document. Compares against your provided address with automatic transliteration for non-Latin scripts.

Postcode matching

Separate postcode verification with its own threshold. Enable or disable independently from the address check.

Document type validation

Detects whether the document is a utility bill, bank statement, government letter, medical bill, pharmacy bill, post office letter, or life insurance document. Only accepts the types you allow.

Date of issue validation

Extracts all dates from the document and identifies the issue date. Set an accepted date range so expired documents are automatically rejected.

PDF audit report

Download a compliance-ready PDF report for any verification. Includes match scores, extracted data, audit trail, timestamps, and reasoning for every check.

Any proof of address document

trusqo processes all common proof of address document types, in any language or script.

Utility bill
Bank statement
Government letter
Medical bill
Pharmacy bill
Post office letter
Life insurance
Other
More document types available on request

Any language, any script

Documents are processed in their original language with AI-powered text extraction. Automatic transliteration converts non-Latin text to Latin characters for seamless matching

Latin Chinese Arabic Devanagari Cyrillic Japanese Korean Thai Hebrew Georgian + more Bengali, Tamil, Telugu, Gujarati, Kannada, Malayalam, Punjabi, Sinhala, Myanmar, Khmer, Lao, Tibetan, Ethiopic, Armenian, Greek, Persian, Urdu, and others

Built different from enterprise KYC suites

Most identity platforms treat proof of address as a checkbox buried inside a bloated product. We made it the entire product.

One thing, done right

No facial recognition, no identity suite, no feature bloat. Trusqo does proof of address verification and nothing else. That focus means better accuracy and faster results.

Integrate in minutes

One REST endpoint. No SDKs to install, no templates to configure, no onboarding calls. Send a document and get a result. Most teams go live in under an hour.

Any country, any language

Documents in Cyrillic, Arabic, Chinese, or any other script are processed natively. Automatic transliteration handles cross-script matching.

Configurable rules

Choose which document types to accept, set date ranges, and define your own match thresholds for name, address, and postcode independently.

Transparent pricing

Starts at €5/month. Every price is on the website. No "contact sales", no minimum commitments, no annual contracts.

Full audit trail

Every verification is logged with match scores, reasoning, and timestamps. Download PDF reports for compliance. Ready for regulators whenever they ask.

Frequently asked questions

What document types are supported?

Utility bills, bank statements, government letters, medical bills, pharmacy bills, post office letters, and life insurance documents. More types available on request. The system auto-detects the document type and rejects anything that doesn't match your accepted types.

How accurate is the matching?

Matching is AI-powered with configurable thresholds. You set the sensitivity (0–1) for name, address, and postcode independently. The system provides match scores and reasoning notes so you can audit every decision.

How long does verification take?

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

Do you support non-Latin scripts?

Yes. Documents in Arabic, Cyrillic, Chinese, Japanese, Korean, Thai, Hebrew, Devanagari, and many other scripts are processed natively. Extracted addresses are automatically transliterated to Latin characters for cross-script matching.

How do I integrate?

One REST endpoint. Send a multipart POST with the document file(s) and the expected data (name, address, postcode). Get back a request ID, then poll or use webhooks for the result. Full API docs are available at docs.trusqo.com.

Is there a downloadable report?

Yes. Every completed verification has a downloadable PDF report with match scores, extracted data, audit trail, and reasoning. Use the API or dashboard to download it.

Start verifying addresses in minutes

Create an account, get an API key, and send your first verification. No sales calls, no setup fees.