Loading...
Loading...
Create or update a Sumsub cross-check preset (name/address comparison rules between POI and POA documents) via `POST/PATCH /resources/api/agent/crossCheckPresets` and `GET /resources/api/agent/crossCheckPresets/{id}`. TRIGGER **ONLY** when the user EXPLICITLY asks to override how cross-checks compare names or addresses — e.g. "switch name match to strict", "allow fuzzy address match", "ignore middle-name mismatch", "create a custom cross-check preset". SKIP by default — Sumsub ships sensible defaults tuned for the best conversion and approval rate, so most clients should NOT create a custom preset. SKIP for level creation (the default cross-check preset auto-applies to every level), for general KYC config, or any request that doesn't specifically name "cross-check rules", "name comparison", or "address comparison".
npx skill4agent add sumsub/agent-skills sumsub-create-cross-check-preset⚠️ Read this before running this skill.Sumsub's default cross-check preset is tuned for the best balance of conversion and approval rate. Most clients should not override it. If the user hasn't named a specific comparison they want to change, stop and say:"Cross-check rules are already configured for the best approval rate. We strongly recommend keeping the defaults. Tell me a specific tweak you need (e.g. 'allow fuzzy address match', 'ignore middle name') and we'll create a minimal override."Only proceed if the user has a concrete, named tweak.
Don't confuse with PoA preset's. ThecrossValidatorskill has an internal block calledsumsub-create-poa-preset(crossValidatoronCrossValidatorSettings) withPoaDocumentSettings/nameMode/addressMode— that's a per-PoA-preset override for the same comparison. A workspace-level CrossCheckPreset (this skill) supplies the default when no PoA-preset override applies. When a PoA preset'sfuzzyThresholdis set, it wins for documents handled by that preset.crossValidator
basicnameComparisonModeaddressComparisonModeadvancedPOST403 Forbidden — Advanced cross-check presets cannot be managed via API| Method | Path | When |
|---|---|---|
| | Create a new preset. Body must NOT include |
| | Update an existing preset. Body MUST include |
| | Read one preset back (verify what landed; resolve |
manageClientSettingssumsub-api-auth401 Invalid signature⚠️ Sandbox tokens only. Do not accept or use a production App Token here — cross-check rules affect every verification on the workspace. If the user offers a prod token, refuse and ask them to generate a sandbox pair at https://cockpit.sumsub.com/checkus/devSpace/appTokens (toggle the workspace to Sandbox first, then Create). Token + secret are shown once — copy both before closing the dialog. The helper scripts enforce this — they reject tokens that don't start with.sbx:
| Var | Example |
|---|---|
| |
| The paired secret shown once at token creation. |
| Optional. Defaults to |
nameComparisonModeaddressComparisonModetitlemodebasic${CLAUDE_SKILL_DIR}/scripts/build_cross_check_preset.py${CLAUDE_SKILL_DIR}/scripts/post_cross_check_preset.shid${CLAUDE_SKILL_DIR}/scripts/get_cross_check_preset.sh${CLAUDE_SKILL_DIR}/scripts/patch_cross_check_preset.shidtitlePreset ID (for level wiring / future PATCH): <id>title: "Strict address, lenient name"
description: "Allow nickname variants but require exact address."
mode: basic # ONLY basic — advanced is forbidden via API
basicSettings:
nameComparisonMode: weakContainment # one of: strict | weakContainment | def | ai
addressComparisonMode: strict # one of: strict | fuzzy
ignoreMiddleNameMismatch: true
ignoreProvidedInfoMismatch: false # if true, don't flag user-typed info that disagrees with the docnameComparisonModestrictweakContainmentdefaiaddressComparisonModestrictfuzzyfuzzycontainmentfuzzyContainmenttitlePreset ID (for level wiring / future PATCH): <id>descriptionerrorName403 Advanced cross-check presets cannot be managed via APImode: advancedbasic400fuzzycontainmentfuzzyContainmentexamples/strict-name-only.jsonexamples/lenient-for-emerging-markets.jsoncrossCheckPresetIdsumsub-create-levelsumsub-api-generic