Background Verification · Beta
Truuth
API integration
Ship Background Verification features without building the integration. Full Truuth API access via Proxy and 50+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Truuth
Common scenarios for SaaS companies building Truuth integrations for their customers.
Embed KYC/AML verification into onboarding flows
SaaS platforms in FinTech, lending, or global HR can offer their customers a native identity verification step during user or contractor onboarding, without building KYC infrastructure from scratch. Truto handles auth and API quirks so you can dispatch verification invites and pull back Sanctions/PEP reports directly into your product.
Ship a headless, white-labeled identity check
Product teams that want to keep users inside their own UI can capture documents and selfies natively, then run them through Truuth's document authenticity, textract, and face liveness APIs. This lets your customers offer a branded verification experience without redirecting users to a third-party page.
Detect repeat fraudsters across your customer base
Marketplaces, gig platforms, and Trust & Safety tools can offer their customers a fraud syndicate detection module powered by Truuth's Repeat Instances. Every onboarding image, text field, or user record gets indexed so banned or duplicate identities are flagged the moment they try to sign up again.
Surface document tampering evidence to risk teams
Compliance and fraud tooling vendors can embed Truuth's image overlay and delta imaging directly in their dashboards, giving investigators visual proof of where a document was altered. This turns your product into an evidence-backed decisioning system rather than a black-box score.
Add email and internet-based fraud signals to risk scoring
Lending, crypto, and neobank platforms can enrich their internal risk models with Truuth's email analysis (tumbling risk, domain velocity, IP routing) and internet image search to detect ID templates pulled from the web. This gives your customers pre-decision fraud signals without building their own data pipelines.
What You Can Build
Ship these features with Truto + Truuth
Concrete product features your team can ship faster by leveraging Truto’s Truuth integration instead of building from scratch.
Hosted verification invites with event polling
Trigger a Truuth verification invite from your app and stream progress into your UI by polling the verification events endpoint with cursor pagination until completion.
Auto-fill forms from ID documents
Run uploaded driver's licenses or passports through document textract to instantly populate application fields like name, DOB, and document number in your onboarding flow.
Face liveness + face match selfie check
Combine face liveness and face match calls to confirm the user is a real, live person and matches the photo on their submitted ID, all inside your native mobile or web experience.
Repeat fraudster detection database
Provision per-customer Repeat Image, Text, and User instances, index every new signup, and run match calls to flag serial fraudsters and previously banned users at account creation.
Document tampering evidence viewer
Use image overlay uploads to compare submitted IDs against authentic templates and render the returned delta and negative images inside your fraud investigation UI.
Downloadable compliance report vault
Pull Sanctions/PEP, fraud check, and full verification reports for each user and store the pre-signed PDF URLs against their profile for audit-ready evidence.
SuperAI
Truuth AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
create_a_truuth_verification
Create a verification invite in truuth, initiating the KYC identity verification journey for a customer. Returns: verificationId, inviteUrl, inviteQRCode.
get_single_truuth_verification_by_id
Get full verification details from truuth by id. Returns: verificationId, status, tenantAlias, externalRefId, batchRefId, batchRefDescription, shortDeepLink, faceImage, createdAt, updatedAt, completedAt, metadata, identityOwner, inviteeDetails, agentDetails, results. Required: id.
create_a_truuth_verification_invite
Send a verification invite in truuth by dispatching an invitation email containing a KYC URL to a customer to start their identity verification process. Returns: verificationId. No required body fields — all properties are optional.
list_all_truuth_verification_business_report
Get the business report for a truuth verification by returning a pre-signed URL to download the report in base64 format. Returns: content. Required: verification_id.
list_all_truuth_verification_document_image
Download a truuth verification document image in base64 format. Returns: image. Required: verification_id, document_id.
list_all_truuth_verification_face_image
Download the face image for a truuth verification in base64 format. The face image URL is provided as part of the callback result. Returns: image. Required: verification_id.
list_all_truuth_verification_fraud_check_report
Get the fraud check report pre-signed URL for a truuth verification. Returns: content. Required: verification_id.
list_all_truuth_verification_sanctions_pep_report
Get the Sanctions and PEP report pre-signed URL for a truuth verification. Returns the pre-signed URL (content) that can be used to download the report in base64 format; the URL is valid for 15 minutes. Required: verification_id.
list_all_truuth_verification_report
Get the pre-signed URL for a truuth identity verification report. Use the returned URL to download the Verification Report PDF in base64 format. Returns: content. Required: verification_id.
list_all_truuth_verification_event
List all events for a truuth verification without a cursor. Returns: cursor, nextAction, verificationEvents. Required: tenant_alias, verification_id.
create_a_truuth_document_classify
Classify a submitted ID document in truuth by providing one or more page images (base64-encoded or via URL). Returns: confidence, countryCode, documentType, timestamp, traceId. Required: images. Maximum 2 images per request.
create_a_truuth_document_textract
Extract OCR data from a submitted ID document in truuth by providing one or more document images. Returns: confidence, countryCode, documentType, pageCount, textract, timestamp, traceId. Required: images. Maximum 2 images per request; document will be auto-classified if countryCode and documentType are omitted.
create_a_truuth_document_authenticity
Verify the authenticity of a submitted ID document in truuth. Returns: authenticityChecks, authenticityScore, countryCode, documentType, timestamp, traceId. Required: images (array of up to 2 document-page images, each supplied as a base64-encoded image + mimeType pair or a URL).
create_a_truuth_email_analyze
Analyze an email address for fraud risk in truuth. Returns emailValidation (status, domainType, statusCode), emailActivity (dateFirstSeen, popularity, velocity), domainActivity (dateFirstSeen, popularity, velocity), and risk (score, queryId, tumblingRisk, domain risk score, and ip details including proxyType, routingType, and hostingFacility).
create_a_truuth_face_match
Verify in truuth whether the face on a photo ID document matches the face on a selfie image. Returns: liveness, similarity, status, timestamp, transactionId. Required: photoId, face.
create_a_truuth_face_liveness
Perform a face match in truuth by verifying whether the face on a photo ID document matches the face in a selfie, with optional liveness detection. Returns: liveness, similarity, status, timestamp, transactionId. Required: photoId, face.
create_a_truuth_internet_image_search
Search the internet in truuth for images matching one or more submitted images. Returns: matches. Required: images (at least one image must be provided; maximum 2 images allowed per request).
create_a_truuth_document_fraud_check
Submit a document to the truuth Document Fraud Checks Service for fraud analysis. Returns: documentVerifyId, batchRefId, status. Required: tenant_alias, document.
get_single_truuth_document_fraud_check_by_id
Get the result of a fraud check for a previously submitted document in truuth. Returns: documentVerifyId, batchRefId, status, checkResults, outcomes. Required: tenant_alias, id.
create_a_truuth_image_overlay
Generate image overlays comparing two submitted documents in Truuth's Document Fraud Checks Service. Returns: negative, delta. Supply original and matched documents using either a base64 content string with mimeType, or a publicly accessible url; set options.returnUrl to receive image URLs in the response instead of base64.
create_a_truuth_image_overlay_upload
Get a presigned upload URL for oversized documents or images in truuth. Returns: fileIdentifier, uploadUrl, documentId. Optionally supply documentId to associate the upload with a known document identifier.
delete_a_truuth_image_overlay_file_by_id
Delete an uploaded image file in truuth's Image Overlay Service by its file identifier. Returns an empty 204 response on success. Required:id.
create_a_truuth_repeat_image_instance
Provision a new Repeat Images instance in Truuth. Returns the provisioned instance object including instanceId, tenantAlias, name, description, instanceType, and settings.
list_all_truuth_repeat_image_instance
List Repeat Images instances in Truuth. Returns instance records including instanceId, tenantAlias, name, instanceType, and settings.
delete_a_truuth_repeat_image_instance_by_id
Delete a Repeat Images instance by id in Truuth. Returns: message. Required: id.
create_a_truuth_repeat_image_index
Index an image into a truuth Repeat Image Service instance, adding it to the instance's historic database. Returns: imageId, instanceId, embedding, externalAttributes, timestamp, traceId. Required: instance_id.
create_a_truuth_repeat_image_match
Submit a repeat image matching request in truuth to check a submitted image against the indexed historical dataset for a given instance. Returns: status, transactionId. Required: instance_id.
get_single_truuth_repeat_image_match_by_id
Get the repeat image matching results for a transaction in truuth. Returns: status, count, limit, page, pageCount, matchedImages, matchData, indexedData. Required: id.
list_all_truuth_repeat_image_transaction
List repeat image transactions in truuth. Returns: transactions, count, limit, page, pageCount, transactionId, status, result, matchCount, topMatchScore, updatedAt, agentDetails, externalAttributes. Supports optional filtering by status, result, agentId, batchrefid, date ranges, similarity score ranges, and a free-text search term.
list_all_truuth_repeat_image_match_delta_image
Get the delta image generated between a submitted and matched image for a repeat-image transaction in truuth. Returns: image, mimeType, url. Required: transaction_id.
list_all_truuth_repeat_image_match_image
List matched images for a repeat image transaction in truuth. Returns image records including image (base64-encoded photo data), mimeType, and url for each matched image associated with the given transaction. Required: transaction_id.
list_all_truuth_repeat_image_match_negative_image
Get the negative image generated between a submitted and matched image for a repeat-image transaction in truuth. Returns: image, mimeType, url. Required: transaction_id.
list_all_truuth_repeat_image_submitted_image
Get the submitted image for a repeat image match transaction in truuth. Returns: image, mimeType, url. Required: transaction_id.
delete_a_truuth_repeat_image_data_id_by_id
Delete a specific image by ID from a truuth Repeat Images instance. Returns the deletion result including deleteCount, instanceId, externalReferenceId, and deletedImage (with its imageId). Required: instance_id, id.
delete_a_truuth_repeat_image_datum_by_id
Delete images from a truuth Repeat Image Service instance, optionally filtered by external reference ID. Returns: deletedCount, deletedImages, externalReferenceId, instanceId. Required: instance_id.
create_a_truuth_repeat_text_instance
Provision a new Repeat Text Instance in truuth. Returns: instanceId, tenantAlias, name, description, settings, instanceType. Required: settings (including maxSimilarityThreshold and minSimilarityThreshold).
list_all_truuth_repeat_text_instance
List Repeat Text Instances in truuth. Returns: instanceId, tenantAlias, name, description, settings, instanceType.
delete_a_truuth_repeat_text_instance_by_id
Delete a Repeat Text Instance in truuth by id. Returns: message. Required: id.
create_a_truuth_repeat_text_index
Index documents (add data) to a Repeat Text instance in truuth. Returns the indexed record including instanceId, documentId, textId, segmentNumber, tenantAlias, createdAt, traceId, and timestamp. Required: instance_id.
create_a_truuth_repeat_text_match
Submit a repeat text matching request in truuth for a specified instance. Returns: status, transactionId. Required: instance_id, image.
get_single_truuth_repeat_text_match_by_id
Get the repeat text matching result for a transaction in truuth by id. Returns: status, transactionId, matchedDocuments, indexedData, count, limit, page, pageCount. Required: id.
list_all_truuth_repeat_text_transaction
List Repeat Text Match transactions in truuth. Returns: transactionId, status, result, matchCount, topMatchScore, updatedAt, externalAttributes, agentDetails. Supports filtering by status, result, batchrefid, agentId, date ranges, and similarity scores.
list_all_truuth_repeat_text_match_delta_image
Get the delta image generated between a submitted and matched repeat text image in truuth. Returns: url. Required: transaction_id.
list_all_truuth_repeat_text_match_image
List matched images for a repeat text transaction in truuth. Returns the matched image reference including the url field, which is an external URL (e.g. a presigned URL) supporting GET operations to retrieve the image. Required: transaction_id.
list_all_truuth_repeat_text_match_negative_image
Get the negative overlay image comparing a submitted text document against its matched record for a repeat text transaction in truuth. Returns a presigned or externally accessible URL (url) pointing to the negative image, which can be fetched via a standard HTTP GET. Required: transaction_id.
list_all_truuth_repeat_text_submitted_image
Get the submitted image for a repeat text match in truuth. Returns a presigned or permissioned external URL that supports a GET operation to retrieve the image. Required: transaction_id.
delete_a_truuth_repeat_text_data_id_by_id
Delete a repeat text document by id from a truuth instance. Returns: instanceId, externalReferenceId, deleteCount, deletedDocument. Required: instance_id, id.
delete_a_truuth_repeat_text_datum_by_id
Delete documents from a truuth repeat text instance, optionally filtered by external reference ID. Returns: instanceId, externalReferenceId, deletedCount, deletedDocuments. Required: instance_id.
create_a_truuth_repeat_user_instance
Provision a new Repeat User instance in truuth. Returns the provisioned instance object including instanceId, instanceType, name, description, tenantAlias, idDocument match rules, and identityOwner match rules.
list_all_truuth_repeat_user_instance
List Repeat User instances in truuth. Returns instance records including instanceId, instanceType, name, description, tenantAlias, idDocument match rules, and identityOwner match rules.
delete_a_truuth_repeat_user_instance_by_id
Delete a Repeat User instance in truuth by id. Returns a confirmation message. Required: id.
create_a_truuth_repeat_user_index
Index records into a truuth Repeat Users instance by submitting identity owner and/or ID document data. Returns: recordId, instanceId, externalAttributes, idDocument, identityOwner, timestamp, traceId. Required: instance_id.
create_a_truuth_repeat_user_match
Submit a Repeat User Matching request in truuth against a specific instance to check whether a user already exists in the system. Returns: status, transactionId. Required: instance_id.
get_single_truuth_repeat_user_match_by_id
Get the Repeat User Matching result for a previously submitted transaction in truuth. Returns: status, count, page, pageCount, limit, matchedRecords, indexedData, matchData. Required: id.
delete_a_truuth_repeat_user_data_id_by_id
Delete a repeat user data record by id in truuth. Returns: deleteCount, deletedRecord, externalReferenceId, instanceId. Required: instance_id, id.
delete_a_truuth_repeat_user_datum_by_id
Delete repeat user data records from a truuth instance, optionally filtered by external reference ID. Returns: deleteCount, deletedRecords, externalReferenceId, instanceId. Required: instance_id.
create_a_truuth_repeat_user_fraud_check
Submit a fraud check request in truuth by providing identity document and owner data for analysis. Returns: status, transactionId.
get_single_truuth_repeat_user_fraud_check_by_id
Get the result of a previously submitted fraud check in truuth by transaction id. Returns: outcome, message, count, page, limit, pageCount, anomalousRecords, indexedData, matchData. Required: id.
list_all_truuth_verification_events_using_cursor
Get the latest truuth verification events after a specific cursor position. Returns: cursor, nextAction, verificationEvents. Required: tenant_alias, verification_id, cursor.
Why Truto
Why use Truto’s MCP server for Truuth
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 550+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with Truuth in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Truuth account
Use Truto’s frontend SDK to connect your customer’s Truuth account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Truuth
Truto’s Proxy API is a 1-to-1 mapping of the Truuth API. You call us, we call Truuth, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Truuth’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Truuth on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
What integration patterns does Truuth support through Truto?
Three main patterns: a hosted flow using verification invites plus event polling, a headless flow that calls document, face, and email endpoints directly from your app, and a fraud-syndicate pattern built on Repeat Image, Text, and User instances for indexing and matching.
How do we track the status of an in-progress verification?
After creating a verification or invite, poll the verification events endpoint. Truto exposes a cursor-based listing so you can efficiently stream new events until the verification is marked complete, then fetch the associated reports and images.
How are compliance reports like Sanctions/PEP delivered?
Report endpoints return pre-signed URLs (short-lived, typically 15 minutes) pointing to the underlying PDF or image artifact. Your integration should either proxy or re-download and store these against the user record if you need long-term audit retention.
Can we run individual checks without triggering a full verification?
Yes. Truuth exposes standalone endpoints for document classification, textract, authenticity, face match, face liveness, email analysis, internet image search, and document fraud checks, so you can compose only the checks you need for a given workflow.
How does the Repeat Instances feature work for catching duplicate users?
You first create a Repeat Image, Text, or User instance (a scoped database), then call the corresponding index endpoint for every new signup. On subsequent onboardings you call the match endpoint, which returns any historical hits along with delta, negative, and submitted images for investigation.
Can end users disconnect or delete their indexed data?
Yes. Truuth exposes delete endpoints for repeat image, text, and user data IDs, as well as for entire repeat instances and uploaded overlay files, so you can honor deletion requests and support data retention policies for your customers.
Truuth
Get Truuth integrated into your app
Our team understands what it takes to make a Truuth integration successful. A short, crisp 30 minute call with folks who understand the problem.