sumsub-integrate-websdk — Claude Code skill: Sumsub KYC via WebSDK
Walks a web project through the full Sumsub KYC integration, from picking a level to the webhook that finally grants the user access.
npx skills add sumsub/agent-skills --skill sumsub-integrate-websdk -a claude-codeWhat sumsub-integrate-websdk does
The skill drives the whole loop. Stage one is a levelName that already lives in your workspace; if you don't have one, the agent talks through what the check should contain and hands the job to the sibling skill sumsub-create-level. It won't invent a questionnaire on its own.
Stage two is your backend. A route signs the request with HMAC and asks Sumsub for a short-lived access token scoped to one (userId, levelName) pair. The userId you pass becomes externalUserId, so keep it stable and opaque — a UUID or a database row id, never an email. Pick it badly and you get duplicate applicants, tickets about verifications stuck in submitted, and no way to resume a check the user abandoned.
On the client the skill loads sns-websdk-builder.js from the CDN, then initialises snsWebSdk and launches the widget. Here is the part teams usually get wrong: browser callbacks such as onApplicantStatusChanged are for the interface only. Gate access on the applicantReviewed webhook plus a server-side applicant read. You also need a sandbox App Token and secret pair, because a production token spins up sessions against real applicants.
What it helps with
- embed the Sumsub KYC widget on a page and start a check
- sign a server request and hand an access token to the browser
- refresh the token while the user is still verifying
- separate browser UX callbacks from the authoritative verdict
- test the whole flow in sandbox before going live
Example prompts for the agent
- Add the Sumsub WebSDK to the verification page using level
basic-kyc-level - Create a
POST /api/sumsub/access-tokenroute that returns a token for the logged-in user - Handle the
applicantReviewedwebhook and grant access from the verdict
How to install sumsub-integrate-websdk
1Skills CLI (Vercel)
npx skills add sumsub/agent-skills --skill sumsub-integrate-websdk -a claude-code2Manually: put the files in place
~/.claude/skills/sumsub-integrate-websdk/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/sumsub-integrate-websdk/
1Skills CLI (Vercel)
npx skills add sumsub/agent-skills --skill sumsub-integrate-websdk -a codex2Manually: put the files in place
.agents/skills/sumsub-integrate-websdk/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add sumsub/agent-skills --skill sumsub-integrate-websdk -a cursor2Manually: put the files in place
.cursor/skills/sumsub-integrate-websdk/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install sumsub/agent-skills sumsub-integrate-websdk2Manually: put the files in place
.github/skills/sumsub-integrate-websdk/SKILL.md1Skills CLI (Vercel)
npx skills add sumsub/agent-skills --skill sumsub-integrate-websdk -a gemini-cli2Platform CLI
gemini skills install https://github.com/sumsub/agent-skills --path skills/sumsub-integrate-websdkManually: put the files in place
.devin/skills/sumsub-integrate-websdk/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add sumsub/agent-skills --skill sumsub-integrate-websdk -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about sumsub-integrate-websdk
How do I install sumsub-integrate-websdk in Claude Code?
Run npx skills add sumsub/agent-skills --skill sumsub-integrate-websdk -a claude-code. The skill lands at ~/.claude/skills/sumsub-integrate-websdk/SKILL.md.
What does sumsub-integrate-websdk do?
It covers a Sumsub KYC integration end to end: level setup, server-side access-token signing, snsWebSdk init, lifecycle events, token refresh, webhooks and sandbox testing.
Can I use a production App Token during integration?
No. The skill insists on a sandbox App Token and secret pair, since a production token creates real SDK sessions tied to real applicants.