コンテンツにスキップ

再処理

再処理は、終わったセッションを「利用者の手続き中」(collecting)に戻す操作です。書類を撮り直してもらいたいときなどに使います。

今の status再処理
completed / failed / reviewingできる。collecting に戻り、期限(expiresAt)が再処理の時点から設定し直される
expiredできない(409)。新しいセッションを作る
created / collecting / decidingできない(409)

個人情報が消去済み(purgedAt が入っている)のセッションも再処理できません(409)。新しいセッションを作ってください。

  1. POST /v1/verification-sessions/{id}/reprocess を呼ぶ(本文は不要)
  2. 管理画面で、そのセッションの検証 URL を再発行する。再処理の応答に検証 URL は含まれません。以前の URL は使わず、再発行した URL を送ってください
  3. 再発行した URL を利用者に渡し、もう一度手続きしてもらう
  4. 新しい判定が出ると 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: セッションの基本情報(idstatusexpiresAt など)。個人情報は含みません
  • 404: セッションが無い(別のテナントのもの・ID の形式違いも同じ)
  • 409: 今の状態では再処理できない。状態は取得 API で確かめてください。同じセッションへの操作が重なったときも 409 になります
  • 再処理の前に届いた判定の通知と、再処理の後に届く通知は、どちらも同じセッション ID を持ちます。自社側では、取得 API で取り直した最新の状態で上書きしてください
  • reviewing(審査待ち)のセッションを再処理すると、審査を待たずに利用者の手続きへ戻ります