You don’t talk to Socure for evaluation — Polymarket US does. You call the KYC endpoints on your participant’s behalf, and Polymarket US handles the Socure evaluation and account provisioning. The only time a participant’s device touches Socure directly is the optional Digital Intelligence script and, when required, the document-upload (DocV) UI.
What a participant experiences
- They complete an identity form on your platform (name, address, SSN, date of birth) and accept the participant agreement.
- In most cases, verification is instant — approved or rejected within seconds.
- Sometimes Socure asks them to upload a photo ID (document verification, “DocV”) via a web URL or a mobile SDK.
- In a small number of cases, the application needs manual review by the Polymarket US compliance team — no action required from the participant.
- Once approved, their trading account is ready and you receive a webhook.
The four outcomes
EveryPOST /v1/kyc/start resolves to one of four outcomes:
| Outcome | What it means | Your next step |
|---|---|---|
| Instant approval | The identity was verified immediately | Await the kyc.approved webhook for the provisioned participantId (provisioning is async — see below) |
| Document verification (DocV) | The provider needs a photo ID | Direct the participant to docv.url or the Socure SDK |
| Manual compliance review | Automated checks were inconclusive | Tell the participant to wait; await the webhook |
| Rejection | Verification or risk assessment failed | Notify the participant — they cannot trade |
Integration architecture
Polymarket US sits between your platform and Socure. You never call Socure directly for evaluation; for document verification, the participant’s browser or app connects to Socure’s hosted UI.Endpoints
| Method | Endpoint | Description |
|---|---|---|
POST | /v1/kyc/start | Submit a participant for verification (primary endpoint) |
GET | /v1/kyc/status | Poll the current status of a participant |
POST | /v1/kyc/webhook | Register your webhook URL (once per firm) |
Field naming
The KYC API mixes casing conventions, so map fields by meaning rather than assuming one style across the whole flow:- Request bodies and query parameters use
snake_case(e.g.external_id,date_of_birth). - REST JSON responses use
camelCase(e.g.externalId,participantId,subStatus) — they follow protobuf JSON naming. - Webhook payloads use
snake_case(e.g.external_id,provisioned_participant).
Prerequisites
Before going live, make sure you have:| Item | Provided by |
|---|---|
| API credentials (Client ID + private key) | Polymarket US onboarding team |
| Socure Digital Intelligence SDK key | Polymarket US onboarding team |
| Participant agreement version string | Polymarket US onboarding team |
An HTTPS webhook URL, registered via POST /v1/kyc/webhook | You |
| Socure mobile SDK (only if you have a native app) | Socure |
Next steps
Digital Intelligence
Capture the
session_token that keeps your approval rate high.Verification Flow
Submit a participant and handle each of the four outcomes.
Webhooks
Receive the async decision instead of polling.