# sumsub-create-level

Turns a short list of verification steps into a Sumsub applicant level, posts it to the API and shows what the server actually kept.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1200 installs · ★ 7
- Author: sumsub
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/sumsub/agent-skills/tree/HEAD/skills/sumsub-create-level/SKILL.md
- Updated: 2026-10-02
- HTML: https://affpapa.org/en/nevibecode/skills/sumsub-create-level

## What it does

The skill maps a plain list of checks — documents, selfie, proof of residence, questionnaire, KYB, e-sign — onto an `ApplicantLevel` body. New levels go out with `POST /resources/applicants/-/levels`, updates with `PATCH` on the same path and the `id` in the body, and `GET /resources/applicants/-/levels/{id}` reads a level back for comparison.

Scripts do the work: `build_level.py` turns a spec on stdin into the payload, while `post_level.sh`, `patch_level.sh` and `get_level.sh` talk to the API. Before the first POST the skill prints the resolved body and waits for your confirmation. You need `SUMSUB_APP_TOKEN` and `SUMSUB_SECRET_KEY`, and the token has to be a sandbox one — the helper rejects anything that does not start with `sbx:`. That is deliberate: creating a level writes to the whole workspace, so a production token is refused rather than quietly accepted.

Step 0 fetches tenant entitlements through `sumsub-check-permissions` and every feature-gated step is checked against them. A `PROOF_OF_RESIDENCE` step without a `poaPresetId` gets rejected by the server, so a preset may need creating first. On update, `PATCH` swaps the `requiredIdDocs.docSets` array as a whole — any field missing from a docSet you send is wiped server-side.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add sumsub/agent-skills --skill sumsub-create-level -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/sumsub-create-level/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/sumsub-create-level/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add sumsub/agent-skills --skill sumsub-create-level -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/sumsub-create-level/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add sumsub/agent-skills --skill sumsub-create-level -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/sumsub-create-level/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install sumsub/agent-skills sumsub-create-level
```

2. **Manually: put the files in place**
- File: `.github/skills/sumsub-create-level/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add sumsub/agent-skills --skill sumsub-create-level -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/sumsub/agent-skills --path skills/sumsub-create-level
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/sumsub-create-level/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add sumsub/agent-skills --skill sumsub-create-level -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/sumsub/agent-skills/tree/HEAD/skills/sumsub-create-level/SKILL.md

## When to use it
- build a verification level from a list of steps
- update an existing level without dropping fields
- read a level back and diff it against what was sent
- check whether tenant entitlements cover a step
- wire a questionnaire step to a specific questionnaireDefId

## Example prompts
- create a Sumsub level with ID document, selfie and proof of residence
- update the level and add a questionnaire step
- show me what the Sumsub level currently contains

## Similar
- [connect-required-verification-information](https://affpapa.org/en/nevibecode/skills/connect-required-verification-information.md) — skill · 1400 installs
- [testing-api-for-broken-object-level-authorization](https://affpapa.org/en/nevibecode/skills/testing-api-for-broken-object-level-authorization.md) — skill · 541 installs
- [chainlink-ace-skill](https://affpapa.org/en/nevibecode/skills/chainlink-ace-skill.md) — skill · 310 installs
- [create-tool](https://affpapa.org/en/nevibecode/skills/create-tool.md) — skill · 925 installs
- [create-squad](https://affpapa.org/en/nevibecode/skills/create-squad.md) — skill · 884 installs
- [x-ray-a-company](https://affpapa.org/en/nevibecode/skills/x-ray-a-company.md) — skill · 2100 installs

From the same set: [sumsub/agent-skills](https://affpapa.org/en/nevibecode/by/sumsub/agent-skills.md) — 3 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
