sumsub-supported-id-documents について
Sumsubで国別に対応する本人確認書類と項目を調べるリファレンススキルです。組み込みカタログと顧客の現在の設定を区別し、大量の結果は要約します。
主な機能
- 01国別の対応書類を検索
- 02書類項目の利用可否を確認
- 03カタログと顧客設定を区別
- 04大量の検索結果を要約
活用シーン
- 01書類の現在の認識状況を確認
- 02特定項目に対応する国を検索
- 03期限・有効期間の設定を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sumsub/ agent-skills --skill sumsub-supported-id-documentsインストール後、Claude Code で/sumsub-supported-id-documentsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/fields-glossary.mdscripts/build_country_mappings.pydiff_country_mappings.pyget_entitlements.shget_extension_rules.shget_global_settings.shget_supported_docs.shput_country_mappings.shquery_supported_docs.pyrecognition_status.pyremove_country_mapping.py詳細
Sumsub — サポート対象書類のリファレンス
Sumsub の組み込みサポート対象書類カタログ
(documentsByCountries)に関する質問に回答します。国および書類タイプごとに、そのタイプがサポートされているか、両面書類か、デフォルトで抽出される OCR フィールドと任意で利用できるフィールドを確認できます。
カタログは大規模です(約 250 か国、約 1,350 件の国と書類タイプの組み合わせ)。このスキルは会話にカタログ全体を出力しません。ローカルの Python スクリプトがカタログ全体をプロセス内に保持し、関連する部分のみを返します。フラットなリストが大きすぎて役に立たない場合は、集約した概要にまとめます。
エンドポイント
| メソッド | パス | 用途 |
|---|---|---|
GET | /resources/api/agent/supportedDocs/documentsByCountries | 組み込みのサポート対象書類カタログを読み取ります(すべての国のデフォルト設定)。 |
GET | /resources/api/agent/globalSettings | クライアントの現在の設定を読み取ります。idDocSettings.countryMappings の上書き設定も含まれます。 |
GET | /resources/api/agent/globalSettings/extensionRules | Sumsub 組み込みの有効期限延長ルールを読み取ります(読み取り専用のリファレンス。「正式に延長された書類」の有効期限モードで使用されます)。 |
PUT | /resources/api/agent/globalSettings/idDocSettings/countryMappings | 全件置換 — 書き込み方法はこれのみです。 スクリプトが作成した完全なマップを必ず送信してください(編集時は読み取り・変更・書き込み、削除時はエントリーを 1 件除いたもの)。 |
すべて manageClientSettings を使用した App Token 認証が必要です。
カタログの GET は、{ "countryMappings": { "<ISO3>": { "<DOC_TYPE>": { supported, doubleSided, doubleSidedCanBeChanged, shouldBeSigned, acceptDigitalDoc, acceptScreenshots, expirationCheckMode, sidesSelectionMode, defaultFields[], availableFields[] } } } } を返します。
⚠️ レスポンスの形式は 2 種類あります — パスに注意してください。 カタログの GET では、
countryMappingsはトップレベルにあります。GET globalSettings では、1 階層下のidDocSettings.countryMappingsにあります(ルートにはminAge、poaCheckSettings、poiCheckSettings— キー全体に適用される有効期限モード — なども含まれます)。/tmp/current.json(globalSettings)をインラインのpython3 -cで読み取る場合は、['idDocSettings']['countryMappings']を使用してください。トップレベルのパスではKeyError: 'countryMappings'が発生します。
フィールドは
NON_NULLとしてシリアライズされます。JSON に存在しないフラグは、デフォルト値(未設定)です。受け入れフラグの場合、存在しない ⇒falseです(例:acceptScreenshotsキーがなければ、スクリーンショットは受け入れられません)。フラグがないことを理由に有効と報告してはいけません。デフォルト値を報告し、それがデフォルトであることを伝えてください。
PUT は全件置換です: バックエンドは、送信した内容で
countryMappingsマップ全体を置き換えます。送信から漏れた項目はすべて消去されます(カタログのデフォルト設定に戻ります)。そのため、すべての書き込みにスクリプトを使用してください。build_country_mappings.pyは、変更内容を現在のマップの最新のコピーに統合し、remove_country_mapping.pyはエントリーを 1 件除いたマップを作成します。不完全なペイロードを手作業で作成してはいけません。また、古い/tmp/current.jsonを再利用してはいけません。作成の直前に必ず再取得してください。そうしないと、ダッシュボードで同時に行われた編集が通知なく元に戻されます。
GET globalSettings のルートにあるキー全体に適用されるブロック(確認してください。見落とさないでください)
idDocSettings.countryMappings に加えて、globalSettings のルートには、書類に関する回答を変えるキー全体に適用されるブロックがあります。このスキルでは読み取り専用のコンテキストとして扱います(これらの編集は PUT countryMappings を通じてのみ行います)が、これらを見落とすと誤った回答になります。一見「未設定」に見える国別エントリーが、ルートのブロックによって制御されている場合があります。
| ルートパス | 内容 | 回答が変わるケース |
|---|---|---|
poiCheckSettings.expirationCheckMode | キー全体に適用される有効期限モード | 有効期限のフォールバック処理(C) |
poiCheckSettings.minimumResidualValidityInMonths | 書類があと N か月以上有効である必要があります。0 = 要件なし(C を参照) | 有効性に関するあらゆる回答の一部(C) |
ongoingMonitoringSettings (enabled, idDocExpireInDays) | 承認後の有効期限モニタリング(ライセンスが必要) | 「書類の有効期限が切れたらどうなりますか」 |
minAge / maxAge | キー全体に適用される年齢制限(生年月日と照合)。ダッシュボードでは保存時に自動入力されます(最小 16 歳、RUS ライセンスのキーでは 18 歳、最大 110 歳)。そのため、通常は設定されています | 「書類/申請者が年齢を理由に却下されたのはなぜですか」 |
idDocSettings.ekycSourceMappings | 国ごとの eKYC ソース。countryMappings と同じ階層にあり、同じダッシュボードの「Supported ID documents」画面で編集しますが、別のペイロードとして保存されます。PUT countryMappings はサーバー側のこの設定を保持します(エンドポイントが置き換えるのは countryMappings のみです) | eKYC に関する質問。countryMappings と混同しないでください |
enableAutoCompleteShortDates | OCR が日付の 2 桁年を自動補完します(ダッシュボードの「Birth date」チェックボックス) | 認識された日付の値 |
imageConstraints (minFileSize, maxFileSize) | アップロードサイズの制限(ダッシュボード:General → Applicant settings) | 「ファイルが受け付けられなかったのはなぜですか」 |
poaCheckSettings(非推奨) | POA の受け入れ(validMonths、acceptIdAsPoa、acceptSameDocAsPoa) | POA に関する質問 — 読み取り専用のコンテキストとして報告してください |
crossValidatorSettings | 書類とプロフィールの比較(nameComparisonMode、fuzzyThreshold、…)。API のみで、ダッシュボード UI はありません | 不一致/クロスチェックによる却下 |
ルートのその他すべて(watchListCheckSettings、cryptoCheckSettings、
bankCardCheckSettings、kybIntegrationSettings、uiSettings、
duplicateSettings、sourceKeysSettings、applicantTags、supportEmail、
disableSumsubId、idDocServiceSettings)はこのスキルの対象外です。これらのブロックを根拠に書類に関する質問へ回答したり、ここでの編集を申し出たりしないでください。
認証 — アプリトークン + シークレット(サンドボックスのみ)
他の書き込みスキルと同じ方式です。sumsub-api-authを参照してください。
| 変数 | 例 |
|---|---|
SUMSUB_APP_TOKEN | sbx:... — ダッシュボードで取得したサンドボックスのアプリトークンです。 |
SUMSUB_SECRET_KEY | トークン作成時に一度だけ表示される、対応するシークレットです。 |
SUMSUB_BASE | 任意です。既定値はhttps://api.sumsub.comです。 |
既定では、実効的な認識ステータス(A)を使用してください。 国や書類の種類が現在「何を認識するか」「何を収集するか」「何を利用できるか」を尋ねる質問は、「現在利用可能/認識済み/収集済みのフィールドは何か」「BRAで利用できるフィールドは何か」「パスポートでは何を収集するか」といった表現も含め、クライアントの実効状態に関するものです。そのため、**認識ステータス(A)**を使用してください。カタログの内容は既定値にすぎず、誤解を招く回答になります(カタログで「利用可能」≠このクライアントで有効)。
**カタログクエリ(B)**を使用するのは、ユーザーが抽象的に、または国をまたいで「可能なこと」を明示的に尋ねた場合に限ります。たとえば、「フィールドXに対応している国はどこか」「パスポートで性別を抽出できることはあるか」「BRAにはどんな書類の種類があるか」などです。
有効期限/有効性のチェックに関する質問(「どの有効性チェックが適用されるか」「期限切れの書類は受け付けられるか」)には、以下の**(C)**を使用してください。expirationCheckModeだけでなく、適用される具体的な延長ルール(60日以上/延長に関する説明)も報告してください。
書類の取り扱いに関する広範な質問(「受け付けのルール」「どの設定が適用されるか」「Xには何が設定されているか」)には、以下の**(D)を使用してください。GET globalSettingsから、実効的な(country, docType)エントリー全体を読み取り、オン・オフを問わずすべて**の設定を報告してください。必要なものだけを選んだり、推測したりせず、既定値のままのフラグも省略しないでください。
ユーザーの意図がわからない場合は、A(実効状態)を選んでください。これが誠実な回答であり、カタログで許可されている内容もわかります。
⚠️ 必ずこれらのスクリプトを使用してください。Palerのソースを読んではいけません。
palerリポジトリを開いている場合でも、そのファイル(documents-by-countries.json、Javaソースなど)をもとに回答しないでください。これらに含まれるのは組み込みカタログの既定値のみです。クライアントの実効状態(countryMappingsのオーバーライド +ADVANCED_OCR)はコードには一切含まれておらず、API経由でのみ取得できます。ソースを読むと既定値しかわからず、質問に対して誤った回答を知らないうちに返すことになります。データはget_global_settings.sh/get_supported_docs.sh/get_entitlements.shから取得してください。
A. 実効的な認識ステータス(実際に認識される内容)
S=${CLAUDE_SKILL_DIR}/scripts
$S/get_supported_docs.sh > /tmp/catalogue.json
$S/get_global_settings.sh > /tmp/current.json
ADV=$($S/get_entitlements.sh ADVANCED_OCR >/dev/null 2>&1 && echo true || echo false)
$S/recognition_status.py BRA PASSPORT \
--current-file /tmp/current.json \
--catalog-file /tmp/catalogue.json \
--advanced-ocr "$ADV"
# Omit the doc type to report ALL doc types for the country in one go
# (e.g. "fields for documents from Brazil"):
$S/recognition_status.py BRA \
--current-file /tmp/current.json --catalog-file /tmp/catalogue.json --advanced-ocr "$ADV"
各フィールドについて、✅ 認識済み(無料/有料)または⬜ 未認識(理由:既定でオフ/追加機能が未有効/ADVANCED_OCRがオフ)として報告します。これをユーザーに提示してください。これが「実際に何が認識されるか」への誠実な回答です。
B. カタログクエリ(可能な内容)
- カタログを一度取得します:
get_supported_docs.sh > /tmp/catalogue.json(後続の質問にも再利用してください。セッション中は大容量で、内容は変わりません)。 - 質問を簡潔なフィルター仕様に変換します(以下を参照)。
- クエリを実行します — 仕様は標準入力から渡し、カタログは
--data-fileで指定します。echo '{"countries": ["DEU"]}' \ | ${CLAUDE_SKILL_DIR}/scripts/query_supported_docs.py --data-file /tmp/catalogue.json - 結果を報告します。結果が
summary(判断ルールを参照)の場合は、一覧を作り上げず、対象範囲や分布を説明してください。
C. 有効期限/有効性チェック(モード+実際の延長ルール)
書類の有効期限/有効性チェックについて質問された場合(「どのような有効性チェックが適用されますか」「期限切れの X は受け入れられますか」「BRA ID の有効性ルール」など)、モードだけで終わらせず、以下の両方を回答してください。
-
モード — 国ごとのエントリーだけでなく、完全なカスケードをたどって解決してください(4 つのモードについては references/fields-glossary.md を参照)。
idDocSettings.countryMappings.<country>.<docType>.expirationCheckMode→ 設定されていない場合は、globalSettings ルートにあるキー全体のpoiCheckSettings.expirationCheckMode→ それも設定されていない場合は、ペアのカタログ既定値です。 クライアントの値はどちらも同じget_global_settings.shのレスポンスから取得します。(country, docType) のエントリーだけで終わらせないでください。国ごとのモードが未設定でも、poiCheckSettings.expirationCheckModeが設定されていれば、そのキー全体のモードがペアに適用されます。 -
実際の延長ルール — モードが延長された書類(
generallyAcceptedRegulations/localRegulations)を受け入れる場合は、適用される具体的なルールを取得して示してください。単に提示を申し出るだけでなく、必ず含めてください。$S/get_extension_rules.sh > /tmp/ext.json # then filter to the country/doc type, e.g.: python3 -c "import json;[print(r['docType']['idDocType'],'—',r.get('defaultDescription')) for r in json.load(open('/tmp/ext.json'))['rules'] if r['docType']['country']=='BRA' and r['docType']['idDocType']=='ID_CARD']"たとえば、BRA/ID_CARD では「所有者が 60 歳以上 ⇒ 無期限で有効」というルールが明らかになります。このルールこそが「どのような有効期限チェックが適用されますか」への実質的な回答です。モードだけでは不完全です。
-
その他の有効性設定 — 有効性について完全に回答するには、globalSettings ルートに設定されている場合、以下も報告してください。
poiCheckSettings.minimumResidualValidityInMonths— ⚠️0は「有効期間を問わない(要件なし)」という意味です。これはダッシュボードで既定のラジオボタンを選択したときに書き込まれる値です。「少なくとも 0 か月有効でなければならない」と報告してはいけません。0 以外の N は、チェック時点で書類が少なくともあと N か月有効でなければならないことを意味します(「期限切れでないこと」より厳しい条件です。ダッシュボードのカスタムオプションの既定値は 3 です)。ongoingMonitoringSettings.idDocExpireInDays(enabledが設定されている場合) — 承認後の有効期限モニタリングです。書類の有効期限が切れる N 日前にフラグが立ちます(ダッシュボードの既定値は 7 です)。未設定または 0 の場合、有効期限アラートはありません。このセクション全体はライセンスが必要です(バックグラウンドチェックの対象はONGOING_MONITORING_EXPIRED_DOCS)。
どちらもキー全体に適用され(国ごとの設定はありません)、同じ
get_global_settings.shのレスポンスから読み取ります。キー全体のモードを編集する場所: ダッシュボード → Global Settings → User Verification → ID verification → 「ID doc expiry settings」。この画面で設定できるのは
strict(「有効期間を尊重」)、generallyAcceptedRegulations、および追加のチェックボックスで設定するlocalRegulationsのみです。キー全体のallowExpiredはダッシュボードから設定できません(国ごとのエントリーでは、Supported Documents ドロワーまたは API から設定できます)。
D. 設定の全件ダンプ(オン/オフのすべて)
「この書類はどのように扱われるか/何が設定されているか」という広範な質問には、一部を選んで読むのではなく、有効な (country, docType) エントリー全体を読み取り、そこにあるすべての設定を報告します。
$S/get_global_settings.sh > /tmp/current.json # client's effective settings
$S/get_supported_docs.sh > /tmp/catalogue.json # catalogue, for the default baseline
# Pull the entry the client actually has (override), e.g. BRA/ID_CARD:
# NOTE: in GET globalSettings the map is nested under idDocSettings.countryMappings
# (NOT top-level — that's only the catalogue GET). Using the wrong path → KeyError.
python3 -c "import json;print(json.dumps(
json.load(open('/tmp/current.json'))['idDocSettings']['countryMappings'].get('BRA',{}).get('ID_CARD',{}),
indent=2, ensure_ascii=False))"
そのうえで、このエントリーにあるすべてのキーを設定として提示し、references/fields-glossary.md に基づいて、それぞれの UI 上の意味に置き換えます。対象には supported、sidesSelectionMode / doubleSided、shouldBeSigned、acceptDigitalDoc、acceptScreenshots、expirationCheckMode、ocrSettings、サブタイプのフラグ、defaultFields / availableFields など、ほかに存在するすべての項目が含まれます。
正確なダンプを行うためのルール:
- 取捨選択しないでください。 実際にエントリーにあるキーを確認し、「関係ない」と判断して除外しないでください。設定を省略すると、「設定されていない」と受け取られます。
- デフォルト値は存在しません(
NON_NULL)。 キーがない場合はデフォルト値です。画面に表示されないという意味ではありません。クライアントにこの組み合わせに対するオーバーライドがない場合、エントリー全体が存在しません。その場合はカタログのエントリー(/tmp/catalogue.json)をベースラインとして参照し、これらがクライアントの設定ではなく Sumsub のデフォルト値であることを明記してください。 - 独立したフラグはそれぞれ個別に報告してください。 特に
acceptDigitalDoc(アップロードされたファイル/スキャン/PDF)とacceptScreenshots(スクリーンショット)は別々のチェックです。それぞれを個別に記載し、決してまとめたり、「ライブカメラでの撮影のみ」と表現したりしないでください。 - 有効期限: エントリーに
expirationCheckModeがないからといって、カタログのデフォルト値を意味するわけではありません。まず、globalSettings ルートにあるキー全体のpoiCheckSettings.expirationCheckModeを確認してください(C のカスケード)。有効なモードが期限延長書類を許可している場合は、具体的な延長ルールも提示してください(C を参照)。モードだけでは不十分です。
手順(クライアントの対応書類を編集)— 読み取り・変更・書き込み + PUT
エンドポイントは全件置換のため、編集は読み取り・変更・書き込みで行います。現在の マップを取得し、ビルダーに変更をローカルでマージさせてから、結果全体を PUT します。 ビルダーには両方の入力ファイルが必要です。
-
カタログと現在の設定を読み取ります(
current.jsonを最新の状態で取得します。 古いスナップショットを使うと、その間に行われた編集が元に戻ります):${CLAUDE_SKILL_DIR}/scripts/get_supported_docs.sh > /tmp/catalogue.json ${CLAUDE_SKILL_DIR}/scripts/get_global_settings.sh > /tmp/current.json -
リクエストを簡潔な変更仕様に変換します(下記を参照)。変更する フィールドのみを、
(country, docType)ごとに指定します。 -
ペイロード全体を作成します(現在のマップ + マージした変更):
echo '<change spec>' | ${CLAUDE_SKILL_DIR}/scripts/build_country_mappings.py \ --current-file /tmp/current.json --catalog-file /tmp/catalogue.json > /tmp/payload.jsonスクリプトは列挙値と各フィールドが正しい列にあることを検証し、
Field changes:の概要を出力します。フィールドをもう一方の列へ自動で移動することは できません(もう一方の列のリストが意図せず置き換わるため)。エラーが出た場合は 仕様を修正してください。新しい(country, docType)の上書き設定には、supported、doubleSided、doubleSidedCanBeChanged、shouldBeSignedのカタログ既定値が 設定されます(仕様の値が優先されます。カタログ値が null の場合は設定されません)。 これにより、新しいエントリーは上書きする既定値と同じ動作を保ちます。たとえば、doubleSidedが null だと「どちらの面でも可」と解釈され、カタログの両面必須条件が 適用されなくなります。また、仕様でsidesSelectionModeを設定する場合は、非推奨のsupported/doubleSidedの組み合わせも対応する旧形式の値に同期されます (ダッシュボードと同じ二重書き込みです)。これにより、sidesSelectionMode導入前の リーダーでも同じ動作になります。どちらも概要に表示されます。 -
変更で
extraFieldsを設定する場合は、ADVANCED_OCR の利用権限を確認します (有料アドオンです。利用権限がない場合、バックエンドがこれらの項目を通知なく破棄します):${CLAUDE_SKILL_DIR}/scripts/get_entitlements.sh ADVANCED_OCR有効でない場合はユーザーに警告し、追加フィールドを適用しないでください。Default Fields に制限はありません。
4b. 重要な不正対策設定には明示的な警告が必要です。 変更で
acceptScreenshots: true(スクリーンショット保護を無効化)または
acceptDigitalDoc: true(簡単に改変できるアップロードファイルを受け入れる)を設定する場合、
ビルドスクリプトは warning: を出力します。これをそのままユーザーに伝え、適用前に
明確な「はい」を得てください。特にスクリーンショットを有効にすると、偽の申請が
承認され、クライアントが違約金やチャージバックを受けるおそれがあります。これらを
OFF にする場合は安全で、特別な警告は不要です。
-
差分を表示し、明示的な確認があるまで待ちます。 作成元と同じ
current.jsonと ペイロードを比較します(インラインのpython3 -cで差分を手書きしないでください):${CLAUDE_SKILL_DIR}/scripts/diff_country_mappings.py \ --current-file /tmp/current.json --payload-file /tmp/payload.jsonビルダーが変更なしで引き継いだエントリーは表示されないため、差分には変更内容のみが 表示されます。意図していない項目が REMOVED と表示された場合、誤った、または古い スナップショットをもとにペイロードが作成されています。再作成し、PUT はしないでください。 これはワークスペース全体に影響する変更です。明示的な「はい」がない限り、決して適用しないでください。
-
確認済みのペイロードを PUT します:
${CLAUDE_SKILL_DIR}/scripts/put_country_mappings.sh /tmp/payload.json -
****HTTP ステータスと変更内容を報告します。4xx の場合は、本文をそのまま提示します。 ADVANCED_OCR がない状態で
extraFieldsを設定した場合は、設定を再読み込みし、 追加フィールドがサーバー側で破棄されたことを伝えます。
列内の他の項目を失わずにフィールドを1つ変更する方法: 仕様内の列リストは、 その列全体を置き換えます。有効な追加フィールドを維持したまま、さらに1つ追加するには、 まず現在有効な項目を取得し(
recognition_status.py)、意図するextraFieldsのリストを すべて指定してください。
手順(削除/既定値に戻す)— PUT
(country, docType) をカタログの既定値に戻すには、全体マップからその上書き設定を削除し、
結果を PUT します:
${CLAUDE_SKILL_DIR}/scripts/get_global_settings.sh > /tmp/current.json
${CLAUDE_SKILL_DIR}/scripts/remove_country_mapping.py \
--current-file /tmp/current.json BRA:ID_CARD > /tmp/payload.json # full map MINUS the entry
# show the diff (the removal shows as REMOVED), confirm, then PUT:
${CLAUDE_SKILL_DIR}/scripts/diff_country_mappings.py \
--current-file /tmp/current.json --payload-file /tmp/payload.json
${CLAUDE_SKILL_DIR}/scripts/put_country_mappings.sh /tmp/payload.json # PUT (replace-all)
変更仕様
疎な仕様です。(country, docType) ごとに、変更するフィールドのみを列挙します。
フィールドキーは、ダッシュボードの「Fields management」画面にある2列のチェックボックス
(Default Fields/Extra Fields)に対応しています。
changes:
- country: DEU # ISO-3
docType: ID_CARD # IdDocType
expirationCheckMode: strict # scalar settings — merged locally, others preserved
ocrSettings: {ocrRuleMode: MRZ_DOC}
- country: BRA
docType: PASSPORT
extraFields: [placeOfBirth, gender] # REPLACES the Extra Fields column (PAID)
これは、メインの「対応する本人確認書類」画面のボタンに対応します。
- 書類を管理 — フィールド/モード/サブタイプを設定します(キーは以下を参照)。
- 書類の面を変更 —
sidesSelectionModeを設定します (oneSide/twoSides/smartMode。disabledは「受け付けない」オプションです)。 - デフォルト設定に戻す — ここでは行いません。これは削除操作です。上記の別の削除手順(
remove_country_mapping.py)を使用してください。ビルダーはremoveを拒否します。
認識と費用への対応(スクリプトが表示します):
- デフォルトフィールド — 無料です。チェックされたフィールドが認識されます。フィールドを省略するとチェックが外れます(認識を停止します)。デフォルトフィールドは既定でチェックされています。
- 追加フィールド — チェックされた場合にのみ認識され、これには
ADVANCED_OCRの利用権限(ステップ 4)が必要です。これらは有料フィールドです。 - フィールドの列はカタログで固定されています。フィールドを誤った列に指定することはできません。指定すると、スクリプトはエラーを出して正しい列を通知します(もう一方の列のリストを黙って置き換えることになるため、フィールドを自動で移動することはありません)。仕様を修正してください。カタログ(
{country, docType}クエリ)を参照し、各列にどのフィールドが含まれるか確認してください。 - スクリプトは、書類ごとに認識対象を無料と有料に分けた
Field recognition result:の概要を出力します。確認ステップでユーザーに提示してください。UI と同じ用語(「デフォルトフィールド」/「追加フィールド」)が使われています。
通信時には extraFields が API の availableFields になります。スクリプトが変換するため、UI の用語だけを扱えば大丈夫です。
「フィールド管理」画面のその他すべての設定も変更できます。変更仕様で対応するキーを設定してください。すべての UI コントロールと仕様キーの対応表(列挙値とマッピングを含む)は、references/fields-glossary.md にあります。主な項目は次のとおりです。
| ユーザーの要望 | 仕様キー | 値 |
|---|---|---|
| ライブカメラで撮影した写真だけでなく、画像/ファイル(スキャン画像、PDF)の送信も受け付ける | acceptDigitalDoc | true |
| スクリーンショットを特に受け付ける | acceptScreenshots | true |
| MRZ モード | ocrSettings: {ocrRuleMode: MRZ_DOC} | |
| ラテン文字以外の認識を優先する | ocrSettings: {preferNonLatinFromOcr: true} | |
| 有効期限のポリシー | expirationCheckMode | allowExpired/strict/generallyAcceptedRegulations/localRegulations |
| 一部のサブタイプのみ受け付ける/拒否する | allowedOcrDocumentTypes/forbiddenOcrDocumentTypes | サブタイプ ID のリスト |
| WebSDK でサブタイプを非表示にする | disableDocumentReferences | true |
| この書類タイプを受け付けるかどうか | sidesSelectionMode | 受け付けるには有効なモード、受け付けないようにするには disabled |
| 必要な面の数 | sidesSelectionMode | smartMode/oneSide/twoSides/disabled |
スクリプトは列挙値(expirationCheckMode、ocrRuleMode)を検証し、入力ミスがあると失敗します。用語集に記載されていない真に内部的なキー(shouldBeMaskedSettings、documentReferences、…)は、ベースラインから変更せずに引き継がれます。これらの値を独自に設定しないでください。
非推奨キーは設定できません。supported、doubleSided、doubleSidedCanBeChanged、acceptedAsPoa、acceptSameDocAsPoa はバックエンドで非推奨になっています。build_country_mappings.py は、代わりに使用する項目を示してこれらを拒否します(面/受け入れ可否は sidesSelectionMode に置き換えます。POA フラグには代替項目がないため、編集を断ってください)。GET レスポンスには引き続き表示されます。文脈を把握するために読み取るだけにし、変更仕様には含めないでください。これらが引き続き書き込まれる箇所は、新しいオーバーライドを作成する際のビルダーによる初期値の設定だけです。新しいエントリが従来のリーダーでもカタログのデフォルトと同じ動作を維持できるよう、GET /supportedDocs/documentsByCountries からデフォルト値がコピーされます。これは自動的に行われるため、仕様で指定する必要はありません。
ゲートで保護されたキーも設定できません — shouldBeSigned(showRejectByMissingSignatureSetting 機能フラグが有効な場合にのみダッシュボードで編集可能で、署名のない書類を自動的に却下します)と、shouldBeMasked(法的に保護される国民識別番号のマスキング — JPN/KOR/NLD/NGA/SGP。NGA の ID_CARD については、ダッシュボードで操作できるのも Sumsub のスタッフのみです)。build_country_mappings.py はどちらも拒否します。変更を求められた場合は、ゲートについて説明し、ダッシュボード(該当フラグを有効にした状態)または Sumsub サポートを案内してください。読み取りや報告は問題ありません。
defaultFields / availableFields の有効なエントリは、国と書類タイプごとに異なり、固定の共通リストではありません。変更仕様を作成する前に、カタログを読み取って(field レベルまたは {country, docType} のクエリ)、有効なフィールド名を確認してください。
フィルター仕様
すべてのキーは省略可能です。異なるキーは AND で結合され、各キー内のリストは OR で結合されます。
countries: [DEU, FRA] # ISO-3 codes
docTypes: [ID_CARD, DRIVERS] # document types
field: placeOfBirth # find where this OCR field exists (inverse query)
fieldKind: available | default | any # which list to search field in (default: any)
flags: # match per-doc boolean flags
supported: true # IMPLICIT DEFAULT — unsupported docs are excluded
doubleSided: false # unless you set supported:false explicitly
output: auto | list | summary # default: auto
limit: 100 # max items in a list before truncation
例
| 質問 | 仕様 |
|---|---|
| ドイツの ID カードで収集できる項目は何ですか? | {"countries":["DEU"],"docTypes":["ID_CARD"]} |
category フィールドを公開している国/タイプはどれですか? | {"field":"category","fieldKind":"available"} |
parentName1 を収集できる書類はどれですか? | {"field":"parentName1"} |
| フランスで両面対応の書類はどれですか? | {"countries":["FRA"],"flags":{"doubleSided":true}} |
| 非対応の書類も含める | {"countries":["DEU"],"flags":{"supported":false}} |
リストとサマリー(自動モード)
スクリプトは、結果がコンパクトな場合は mode: "list" を、フラットなリストでは役に立たない場合は mode: "summary" を返します。
- ほぼすべての項目にあるフィールド(一致するペアの 80% 以上に存在するフィールド。例:
dob、firstName):カバレッジとbyDocTypeを返します。フィールドが存在しない項目が少数の場合は、その補集合をabsentInとして返します。 - 一致件数が多すぎる場合(フィールドの有無に関する結果が 200 ペアを超える場合):切り詰めたリストではなく、カバレッジ、
byDocType、topCountriesの分布を返します。
それでもフラットなリストを強制するには、output: list を設定し、limit を大きくします。
注意点
- 非対応の書類はデフォルトで非表示です。
supported: falseの書類は設定できないため、flags.supported: falseを渡さない限り除外されます。これにより、カバレッジの計算が適切に保たれます(そうしないと、フィールドが空の非対応ペアによってすべての割合が薄まります)。 - これは組み込みカタログであり、クライアントの上書き設定ではありません。 特定のクライアントで実際に有効になっている設定は、そのクライアントのグローバル設定(
idDocSettings.countryMappings)にあります。これは別のエンドポイントです。このスキルは、何が可能かを確認するためのものであり、特定のアカウントで何が設定されているかを確認するものではありません。 PROFILE_SCREENSHOTや多数のマイナーな非 POI タイプ(OTHER、VISA、UTILITY_BILL、…)もこのカタログに含まれます。ユーザーがパスポート/ID カード/運転免許証だけを対象としている場合は、docTypesで絞り込んでください。- Verification Level の設定は Global Settings より優先されます。 このスキルで編集するのは、クライアントのグローバルな対応書類設定です。特定の Verification Level には、そのレベルの申請者に対してより高い優先度で適用される、独自の対応書類の上書き設定を持たせることができます。レベルでは
useCustomIdDocSettings: trueを設定してこれを有効にします。この設定がある場合、レベル独自のidDocSettings.countryMappingsがそのレベルのグローバル設定を完全に置き換えます(レベル側にないフラグはデフォルト値になり、グローバル設定は無視されます)。そのため、グローバル設定を変更しても、上書き設定のあるレベルには適用されないことがあります。ユーザーから「変更が適用されなかった」と報告された場合は、そのレベルを読み取り、useCustomIdDocSettingsとidDocSettingsを確認してください。レベルの書類設定を実際に編集するには、sumsub-create-levelスキルを使用します(レベルを GET し、idDocSettings内のフラグを変更して、レベル全体を PATCH で戻します)。