コンテンツにスキップ

セッションを取得する

GET
/v1/verification-sessions/{id}
curl --request GET \
--url https://api.trust.supa-stg.ai/v1/verification-sessions/example \
--header 'Authorization: Bearer <token>'

セッションの状態と判定結果に加えて、本人確認で得た個人情報(事前登録情報・利用者の入力・書類の読み取り値)を返す。webhook を受けたらここで結果を確かめる。個人情報を含むので応答をログに出さない。取得は記録される。個人情報の消去後も 404 にはならず、purgedAt が入り個人情報の項目が null になる

id
required
string

セッションの詳細。個人情報(preRegisteredInfo / userInputInfo / documentOcr)を含むので、応答をログに出さない

Media typeapplication/json
object
id
required

セッション ID(vs_ + 32 桁の 16 進)

/^vs_[0-9a-f]{32}$/
status
required

セッションの進み具合。created = 作成済み(利用者が未着手)/ collecting = 利用者が提出中 / deciding = 判定中 / reviewing = 手動レビュー待ち / completed = 判定が確定 / expired = 利用者が終えないまま期限切れ / failed = 回復できないエラーで終了。承認か否認かは status ではなく outcome.verdict で見る

string
Allowed values: created collecting deciding reviewing completed expired failed
plan
required

このセッションで行う確認の手順(作成時のテナント設定で決まる)

object
steps
required
Array<string>
Allowed values: document selfie
expiresAt
required

セッションの期限。created / collecting のままこの時刻を過ぎると expired になる

string
createdAt
required

作成日時

string
metadata
required
Any of:

自社側の相関用に渡す任意の JSON オブジェクト(自社のユーザー ID など)。JSON にして 8192 バイトまで。webhook にもそのまま載るので個人情報を入れない

object
completedAt
required
Any of:
string
purgedAt
required
Any of:
string
preRegisteredInfo
required
Any of:

事前に把握している本人の情報。書類の読み取り値・利用者の入力と照合する。1 項目以上。個人情報 — ログに出さない

object
birthDate

生年月日(YYYY-MM-DD)

/^\d{4}-\d{2}-\d{2}$/
lastName

>= 1 characters
<= 128 characters
firstName

>= 1 characters
<= 128 characters
address

住所

>= 1 characters
<= 512 characters
gender

性別

string
Allowed values: male female
userInputInfo
required
Any of:

利用者が入力した本人の情報。個人情報 — ログに出さない

object
lastName

string
firstName

string
lastNameKana

姓(カナ)

string
firstNameKana

名(カナ)

string
birthDate

生年月日(YYYY-MM-DD)

/^\d{4}-\d{2}-\d{2}$/
address

住所

string
documentOcr
required
Any of:

本人確認書類から読み取った項目。本人確認書類の読み取り値 = 個人情報 — ログに出さない

object
documentType
required
Any of:
string
fields
required

読み取った項目

Array<object>
object
side
required

読み取った面。front = 表 / back = 裏

string
Allowed values: front back
name
required

読み取った項目の名前

>= 1 characters
text
required
Any of:
string
normalized
required
Any of:
string
outcome
required
Any of:
object
session
required
object
sessionId
required

セッション ID(vs_ + 32 桁の 16 進)

/^vs_[0-9a-f]{32}$/
tenantId
required

テナント ID(tn_ + 32 桁の 16 進)

/^tn_[0-9a-f]{32}$/
verdict
required

判定。approved = 承認 / rejected = 否認 / needs_review = 手動レビュー待ち(レビューが確定すると approved か rejected の通知が別の id でもう 1 回届く)

string
Allowed values: approved rejected needs_review
decidedAt
required

判定が確定した日時

string
source
required

判定の出どころ。automatic = 自動判定 / manual_review = 手動レビュー

string
Allowed values: automatic manual_review
review
required
Any of:
object
reviewedAt
required

手動レビューが確定した日時

string
note
required
Any of:
string
checks
required

実施した確認の要約。個人情報は含まない

object
document
required
Any of:
object
performed
required

書類の確認を実施したか

boolean
documentType
required
Any of:
string
authenticity
required
Any of:
string
Allowed values: authentic suspicious unknown
selfie
required
Any of:
object
performed
required

顔の確認を実施したか

boolean
livenessConfidence
required
Any of:
<= 1
faceMatchConfidence
required
Any of:
<= 1
inputMatch
required
Any of:
object
performed
required

入力情報の照合を実施したか

boolean
matched
required
Any of:
boolean
fields
required
Any of:
object
key
additional properties
boolean
reasons
required

否認・要レビューの理由コード。語彙は増えるので、未知の値は無視する

Array<string>
Example
{
"id": "vs_00000000000000000000000000000001",
"status": "created",
"plan": {
"steps": [
"document"
]
},
"expiresAt": "2026-08-02T12:34:56.000Z",
"createdAt": "2026-08-02T12:34:56.000Z",
"metadata": {
"userId": "user_0001"
},
"completedAt": "2026-08-02T12:34:56.000Z",
"preRegisteredInfo": {
"birthDate": "1990-01-01",
"lastName": "見本",
"firstName": "花子",
"address": "東京都見本区見本町1-2-3",
"gender": "male"
},
"userInputInfo": {
"lastName": "見本",
"firstName": "花子",
"lastNameKana": "ミホン",
"firstNameKana": "ハナコ",
"birthDate": "1990-01-01",
"address": "東京都見本区見本町1-2-3"
},
"documentOcr": {
"documentType": "drivers_license",
"fields": [
{
"side": "front"
}
]
},
"outcome": {
"session": {
"sessionId": "vs_00000000000000000000000000000001",
"tenantId": "tn_00000000000000000000000000000001"
},
"verdict": "approved",
"decidedAt": "2026-08-02T12:34:56.000Z",
"source": "automatic",
"review": {
"reviewedAt": "2026-08-02T12:34:56.000Z"
},
"checks": {
"document": {
"documentType": "drivers_license",
"authenticity": "authentic"
},
"inputMatch": {
"fields": {
"name": true,
"birthDate": true,
"address": false
}
}
}
}
}

API キーが無い・正しくない・失効している(理由は区別しない)。Authorization: Bearer <API キー> を確かめる

Media typeapplication/json
object
_tag
required
string
Allowed values: Unauthorized
message
required
string
Example
{
"_tag": "Unauthorized"
}

テナントの IP 許可リストに無いアドレスからの呼び出し。API キーは有効。許可リストの設定を確かめる

Media typeapplication/json
object
_tag
required
string
Allowed values: IpNotAllowed
message
required
string
Example
{
"_tag": "IpNotAllowed"
}

セッションが無い。他テナントのセッション・形式が正しくない ID も同じく 404(個人情報を消去済みのセッションは 404 にならない)

Media typeapplication/json
object
_tag
required
string
Allowed values: SessionNotFound
id
required
string
Example
{
"_tag": "SessionNotFound"
}