Marketplaces and gig platforms
Trust on both sides of the marketplace starts with one check.
Sellers, hosts, couriers and drivers verify in a hosted flow on their phone. You get a decision by webhook, and duplicate detection catches a removed account coming back under a new name.
- 1Consent
- 2Document
- 3Liveness
At submit
- Face match
- Duplicate detection
- AML screening
- steps on the phone
- 3
- apps or SDKs to install
- 0
- duplicate scope, or org across apps
- app
decision.auto_decline: true · a failed check declines
The problem
What this use case needs from verification.
Supply-side fraud
A seller banned last month can re-register with a new email. The same face or the same document is what gives them away.
Mobile-first
The hosted flow runs in the phone's browser, so there is nothing to install and no SDK to keep up to date.
Your brand
The flow shows your app name and primary colour, and can return the person to your app when they finish.
Recommended workflow
Steps the person sees, checks that decide.
Pass your user id as `vendor_data` so the webhook can be matched to the account without a lookup.
In the hosted flow
- 1Consent
- 2Document
- 3Liveness
At submit
- Face match
- Duplicate detection
- AML screening
- IP recorded for the audit trail
Keys left out of the config keep their defaults. Paste it into the workflow builder, or read every key on the workflows page.
{
"steps": {
"document": { "enabled": true, "reject_expired": true },
"liveness": { "enabled": true, "challenges": 3 },
"face_match": { "enabled": true },
"duplicate": { "enabled": true, "face_threshold": 0.55, "scope": "app" },
"aml": { "enabled": true }
},
"redirect_url": "https://example.com/onboarding/done"
}Signals
What happens when something is off.
Real cases for this industry, the check that sees each one and what the engine records. Codes are exactly as they appear in the decision.
| When | Seen by | Outcome |
|---|---|---|
| A banned seller re-registers with a new email | duplicate | reviewduplicate_found (face) |
| The same passport is used for two driver accounts | duplicate | reviewduplicate_found (document number) |
| Someone else's ID is held up to the camera | face_match | failedface_match_failed |
| The photo is too blurred to read | document | retakedocument_unreadable |
| The host's name is close to a listed entry | aml | reviewaml_potential_match |
Checks used
The capabilities behind it.
Each has its own page with an in-browser demo of the rule it applies.
Duplicate detection
Flags a document or a face already seen in another verification in the same app.
Fingerprints · embeddingsDocument verification
Passports, ID cards and residence permits through the ICAO 9303 MRZ; Indian cards through OCR.
ICAO 9303 · 7-3-1Liveness
Active challenge-response: turn left, turn right, smile, move closer, in a random order.
Active challenge-responseWorkflows
Choose the steps, the thresholds, the documents and the countries, without code.
No-code builderWebhooks and API
Signed webhooks with persisted retries, a sessions API and standalone check endpoints.
HMAC-SHA256 · v1
Regulatory context
Where the rules meet the product.
Marketplaces increasingly have to know who sells on them. The rules differ by market; here is how they meet KYCVerify. This is context, not legal advice.
Not legal advice. KYCVerify does not certify compliance with any law or regulator. Confirm how each rule applies to you with your compliance team and counsel.
EU Digital Services Act, Article 30
Online marketplaces must collect and make reasonable efforts to check information about traders, including identification, before letting them sell to consumers in the EU. A verified identity and a decision record support that effort.
India: Consumer Protection (E-Commerce) Rules, 2020
Place duties on marketplace entities about seller information. Map what you must collect to the workflow; KYCVerify verifies identity, not business registration (there is no KYB).
Platform workers and their data
Drivers and couriers are people with privacy rights. Tell them what you verify, keep it only as long as needed with retention_days, and let reviewers, not the machine, act on a duplicate.
What KYCVerify does not settle for you
- Duplicate detection compares within one app. Use one live app for every market where you want a returning person recognised.
Integrate
One call starts it.
Pass your user id as vendor_data; the webhook carries it back, and duplicate review lists the earlier session it matched.
- 1Create the session with this workflow and your own reference.
- 2Send the person the url, or open it on a device you control.
- 3Act on the signed session.status_updated webhook.
Create a session
curl -X POST https://kycverify.me/api/v1/sessions \
-H "x-api-key: $KYC_API_KEY" \
-H "content-type: application/json" \
-d '{
"workflow_id": "wf_0k3t1c8n5e2wpzr6g4ya",
"vendor_data": "seller-30917",
"metadata": {
"market": "in",
"category": "home-services"
},
"expires_in_hours": 168
}'201 Created
{
"session_id": "ses_0k3v9x2m4a7qhd8f1rtb",
"status": "not_started",
"url": "https://kycverify.me/verify/q3Xf…",
"session_token": "q3Xf…",
"workflow_id": "wf_0k3t1c8n5e2wpzr6g4ya",
"vendor_data": "seller-30917",
"expires_at": "2026-10-10T09:12:44Z"
}FAQ
Questions.
Can we verify without an integration first?
Yes. Reviewers can create verification links in the console and send them by any channel.
More solutions
Other ways teams use KYCVerify.
Build this workflow in the sandbox.
Set up the configuration above in the workflow builder and run a test session in minutes, then talk to us about going live.