再処理
再処理は、終わったセッションを「利用者の手続き中」(collecting)に戻す操作です。書類を撮り直してもらいたいときなどに使います。
| 今の status | 再処理 |
|---|---|
completed / failed / reviewing | できる。collecting に戻り、期限(expiresAt)が再処理の時点から設定し直される |
expired | できない(409)。新しいセッションを作る |
created / collecting / deciding | できない(409) |
個人情報が消去済み(purgedAt が入っている)のセッションも再処理できません(409)。新しいセッションを作ってください。
POST /v1/verification-sessions/{id}/reprocessを呼ぶ(本文は不要)- 管理画面で、そのセッションの検証 URL を再発行する。再処理の応答に検証 URL は含まれません。以前の URL は使わず、再発行した URL を送ってください
- 再発行した URL を利用者に渡し、もう一度手続きしてもらう
- 新しい判定が出ると webhook がもう一度届く(前回とは別のイベント ID)。取得 API の
outcomeは最新の判定になる
// セッションを再処理する(Node 20 以降・サーバー側で実行する)。
const requireEnv = (name: string): string => { const value = process.env[name]; if (!value) throw new Error(`環境変数 ${name} を設定してください`); return value;};
const API_BASE = requireEnv("SUPATRUST_API_BASE");const API_KEY = requireEnv("SUPATRUST_API_KEY");
export type ReprocessResult = | { kind: "reprocessed"; status: string; expiresAt: string } | { kind: "not_found" } | { kind: "not_allowed" };
export async function reprocessSession(sessionId: string): Promise<ReprocessResult> { const response = await fetch( `${API_BASE}/v1/verification-sessions/${encodeURIComponent(sessionId)}/reprocess`, { method: "POST", headers: { authorization: `Bearer ${API_KEY}` } }, ); if (response.status === 404) return { kind: "not_found" }; // 今の状態では再処理できない。状態は GET で確かめる(期限切れのセッションは新しく作り直す) if (response.status === 409) return { kind: "not_allowed" }; if (!response.ok) throw new Error(`再処理できませんでした: ${response.status}`); const session = (await response.json()) as { status: string; expiresAt: string }; return { kind: "reprocessed", status: session.status, expiresAt: session.expiresAt };}
// 使い方const result = await reprocessSession(process.argv[2] ?? "");console.info(result);// 再処理の応答に検証 URL は含まれない。利用者にもう一度手続きしてもらうには、// 管理画面で検証 URL を再発行して渡す- 200: セッションの基本情報(
id・status・expiresAtなど)。個人情報は含みません - 404: セッションが無い(別のテナントのもの・ID の形式違いも同じ)
- 409: 今の状態では再処理できない。状態は取得 API で確かめてください。同じセッションへの操作が重なったときも 409 になります
- 再処理の前に届いた判定の通知と、再処理の後に届く通知は、どちらも同じセッション ID を持ちます。自社側では、取得 API で取り直した最新の状態で上書きしてください
reviewing(審査待ち)のセッションを再処理すると、審査を待たずに利用者の手続きへ戻ります