Getting started
Quick start
Launch your first verification in five steps.
#1. Create an account and a key
Sign up at /dashboard/#signup. Open Developers → API keys and create a test key. It starts with sk_test_.
Warning
Keep
sk_ keys on your server. Never ship them in a browser or mobile app.#2. Create a workflow
Open Workflows, pick a template such as Standard KYC (ID + liveness + face match + AML) and press Publish. Copy the workflow ID (wf_…). You can also create one by API:
bash
curl -X POST https://{{HOST}}/v3/workflows/ \
-H "x-api-key: sk_test_..." -H "Content-Type: application/json" \
-d '{"workflow_label":"Standard KYC","features":[{"feature":"OCR"},{"feature":"LIVENESS"},{"feature":"FACE_MATCH"},{"feature":"AML"}]}'#3. Create a session
Call this from your backend when the user needs to verify. vendor_data is your own user ID.
bash
curl -X POST https://{{HOST}}/v3/session/ \
-H "x-api-key: sk_test_..." -H "Content-Type: application/json" \
-d '{"workflow_id":"wf_...","vendor_data":"user-123","callback":"https://yourapp.com/kyc/done"}'json
{ "session_id": "ver_...", "session_number": 1042, "session_token": "vs_...", "url": "https://{{HOST}}/verify/?token=vs_...", "status": "Not Started" }#4. Send the user to the flow
Redirect to url, open it in a mobile WebView, or embed it on your page:
html
<script src="https://{{HOST}}/sdk/kyc.js"></script>
<script>
KYC.open({ sessionToken: 'vs_...', onComplete: (e) => console.log('submitted', e) });
</script>When the user finishes, the hosted flow sends them to callback?verificationSessionId=….
#5. Get the result
Set a webhook URL in Developers → Webhooks to receive status.updated events, then read the full decision:
bash
curl https://{{HOST}}/v3/session/ver_.../decision/ -H "x-api-key: sk_test_..."Tip
In the sandbox, set the applicant's last name to
APPROVE, REVIEW or DECLINE to force an outcome.